# Basics

## Verbose Output

The verbosity level for modular symbols computations can be set using the command `SetVerbose("ModularSymbols",n)`, where `n` is $0$ (silent), $1$ (verbose), or $2$ (very verbose). (The verbose flag for modular symbols was called `ModularForms` in Magma version 2.7.)

## Categories

Spaces of modular symbols belong to the category `ModSym`. The category `SetCsp` has exactly one object `Cusps()`, which is the set $\bf P^1({\mathbb{Q}}) = {\mathbb{Q}}\cup \{\infty\}$ introduced above. The element $\infty$ of $\bf P^1({\mathbb{Q}})$ is entered using the expression `Cusps()!Infinity()`.

### `Example: Creation (ex-dfabe0)`

We compute a basis for the space of modular symbols of weight $2$, level $11$ and trivial character.

```magma
> M := ModularSymbols(11,2); M;
Full modular symbols space for Gamma_0(11) of weight 2 and dimension 3
over Rational Field
> Type(M);
ModSym
> Basis(M);
[
    {-1/7, 0},
    {-1/5, 0},
    {oo, 0}
]
> M!<1,[1/5,1]>;
{-1/5, 0}
> // the modular symbols {1/5,1} and {-1/5,0} are equal.
> Type(M!<1,[1/5,1]>);
ModSymElt

```

Using `SetVerbose`, we can see how the computation progresses.

```magma
> SetVerbose("ModularSymbols",2);
> M := ModularSymbols(11,2);
Computing space of modular symbols of level 11 and weight 2....
I.      Manin symbols list.
                (0 s)
II.     2-term relations.
                (0.019 s)
III.    3-term relations.
         Computing quotient by 4 relations.
                (0.009 s)
                (total time to create space = 0.029 s)
> SetVerbose("ModularSymbols",0);

```

Modular symbols can be input using `Cusps()`.

```magma
> M := ModularSymbols(11,2);
> P := Cusps(); P;
Set of all cusps
> Type(P);
SetCsp
> oo := P!Infinity();
> M!<1,[oo,P!0]>;       // note that 0 must be coerced into P.
{oo, 0}
> M!<1,[1/5,1]> + M!<1,[oo,P!0]>;
{-1/5, 0} + {oo, 0}

```

Modular symbols are also defined over finite fields.

```magma
> M := ModularSymbols(11,2,GF(7)); M;
Full modular symbols space for Gamma_0(11) of weight 2 and dimension 3
over Finite field of size 7
> BaseField(M);
Finite field of size 7
> 7*M!<1,[1/5,1]>;
0

```
