# Creation Functions

## Ambient Spaces

An ambient supersingular divisors module is specified by giving an integer $N$ (the level) and a prime $p$ (the characteristic).

### `SupersingularModule(p, N : parameters): RngIntElt, RngInt -> ModSS`

```magma
Brandt: BoolElt                    Default: false
```

The module $M$ of supersingular points on $X_0(N)$ over $\overline{{\mathbb{F}}}_p$. Equivalently, this is the free abelian group on the supersingular elliptic curves in characteristic $p$ enhanced with level $N$ structure. We require that $N$ and $p$ are coprime.

### `SupersingularModule(p): RngIntElt -> ModForm`

The Hecke module $M$ of divisors of degree $0$ on the supersingular points on $X_0(1)$ over $\overline{{\mathbb{F}}}_p$. Equivalently, this is the free abelian group on the supersingular $j$-invariants in characteristic $p$.

### `Example: Creation Spaces (ex-ba21a6)`

```magma
> SupersingularModule(11);
Supersingular module associated to X_0(1)/GF(11) of dimension 2
> SupersingularModule(11,3);
Supersingular module associated to X_0(3)/GF(11) of dimension 4
> SupersingularModule(3,11);
Supersingular module associated to X_0(11)/GF(3) of dimension 2

```

The optional parameter `Brandt` forces computation of the supersingular module using quaternion arithmetic, even if this will be slower. (It’s not clear why anyone would want to do use this parameter except to compute the same thing using two different algorithms.)

```magma
> SupersingularModule(97);
Supersingular module associated to X_0(1)/GF(97) of dimension 8
> SupersingularModule(97 : Brandt := true);
Supersingular module associated to X_0(1)/GF(97) of dimension 8

```

## Elements

### `M . i: ModSS, RngIntElt -> ModSSElt`

The $i$th basis element of the module $M$.

### `M ! x: ModSS, . -> ModSSElt`

The coercion of $x$ into the module $M$.

### `Example: Creation Elements (ex-876e96)`

First we create the supersingular module attached to $p=11$, $N=3$. This is the free abelian group generated by the supersingular points on $X_0(3)$ in characteristic $11$, equipped with the structure of module over the Hecke algebra.

```magma
> X := SupersingularModule(11,3);
> P := X.1;
> P;
(5, 5)
> Eltseq(P);
[ 1, 0, 0, 0 ]
> X![ 1, 0, 0, 0 ];
(5, 5)

```

Note that the module associated to $p=3$, $N=11$ is computed using Brandt matrices (since $X_0(11)$ has positive genus), so elements are printed in a less informative way.

```magma
> Z := SupersingularModule(3,11); Z;
Supersingular module associated to X_0(11)/GF(3) of dimension 2
> P := Z.1;
> P;
[E1]
> Eltseq(P);
[ 1, 0 ]
> Z![1,0];
[E1]

```

## Subspaces

### `CuspidalSubspace(M): ModSS -> ModSS`

The cuspidal submodule $X$ of $M$. Thus $X$ is the submodule of divisors of degree $0$ on the supersingular points. It is “cuspidal” in the sense that $X\otimes {\mathbb{Q}}$ is isomorphic as a Hecke module to the space $S_2(\Gamma_0(Np);{\mathbb{Q}})^{\text{p-new}}$ of $p\;\;\!\!\!$-new cuspforms with Fourier coefficients in ${\mathbb{Q}}$. Explicitly, the cuspidal subspace is the subspace of elements such that the sum of the coefficients is $0$ (i.e., the subspace of divisors of degree $0$).

### `EisensteinSubspace(M): ModSS -> ModSS`

The Eisenstein submodule of $M$, i.e., the orthogonal complement of the cuspidal subspace of $M$ with respect to the monodromy pairing.

### `OrthogonalComplement(M): ModSS -> ModSS`

The orthogonal complement of the module $M$ in the ambient space with respect to the monodromy pairing.

### `Kernel(I, M): [Tup], ModSS -> ModSS`

The kernel of $I$ on the module $M$. This is the subspace of $M$ obtained by intersecting the kernels of the operators $f_n(T_{p_n})$, where $I$ is a sequence $[\langle p_1, f_1(x)\rangle,...,\langle p_n,f_n(x)\rangle]$ of pairs consisting of a prime number and a polynomial.

### `Decomposition(M, n): ModSS, RngIntElt -> [ModSS]`

Decomposition of the module $M$ with respect to the Hecke operators $T_1, T_2, \ldots, T_n$.

### `Example: Creation Subspaces (ex-b832c7)`

We compute bases for the cuspidal and eisenstein subspaces when $p=11$ and $N=1$.

```magma
> M := SupersingularModule(11); Basis(M);
[
    (1, 1),
    (0, 0)
]
> S := CuspidalSubspace(M);
> E := EisensteinSubspace(M);
> Basis(S);
[
    (1, 1) - (0, 0)
]
> Basis(E);
[
    3*(1, 1) + 2*(0, 0)
]

```

Next we compute the orthogonal complement of each subspace.

```magma
> Basis(OrthogonalComplement(E));
[
    (1, 1) - (0, 0)
]
> Basis(OrthogonalComplement(S));
[
    3*(1, 1) + 2*(0, 0)
]
> S eq OrthogonalComplement(E);
true

```

Note that the Hecke operator $T_2$ acts as $-2$ on the cuspidal subspace. Using the `Kernel` command, we compute the subspace of $M$ on which $T_2$ acts as $-2$, and recover the cuspidal subspace.

```magma
> R<x> := PolynomialRing(Integers());
> I := [<2, x + 2>];
> K := Kernel(I,M);
> Basis(K);
[
    (1, 1) - (0, 0)
]

```

We can also compute the decomposition of $M$ into submodules for the action of the first few Hecke operators (typically a few Hecke operators are enough to give a complete decomposition with respect to all Hecke operators).

```magma
> Decomposition(M,5);
[
    Supersingular module associated to X_0(1)/GF(11) of dimension 1,
    Supersingular module associated to X_0(1)/GF(11) of dimension 1
]

```
