# Predicates

## `IsAmbientSpace(M): ModSS -> BoolElt`

Returns `true` if the supersingular module $M$ is the full module of supersingular points and not a submodule.

## `M1 eq M2: ModSS, ModSS -> BoolElt`

Returns `true` if the supersingular module $M_1$ equals $M_2$.

## `P eq Q: ModSSElt, ModSSElt -> BoolElt`

Returns `true` if the module element $P$ equals $Q$.

## `M1 subset M2: ModSS, ModSS -> BoolElt`

Returns `true` if the supersingular module $M_1$ is a subset of $M_2$.

## `UsesBrandt(M): ModSS -> BoolElt`

Returns `true` if the underlying computations on the supersingular module $M$ are done using Brandt modules.

## `UsesMestre(M): ModSS -> BoolElt`

Returns `true` if the underlying computations on the supersingular module $M$ are done using the Mestre-Oesterle method of graphs.

## `Example: Predicates (ex-999e2e)`

In this example we illustrate each of the above predicates.

```magma
> M := SupersingularModule(11);
> S := CuspidalSubspace(M);
> IsAmbientSpace(S);
false
> IsAmbientSpace(M);
true
> S eq M;
false
> S eq S;
true
> S.1 eq S.1;
true
> S.1 eq M.1 - M.2;
true
> S.1 eq M.1;
false
> S subset M;
true
> UsesBrandt(S);
false
> UsesMestre(S);
true
> M := SupersingularModule(11 : Brandt := true);
> UsesBrandt(M);
true
> UsesMestre(M);
false

```
