# Elementary Functions

Various simple properties of a module can be retrieved using the following functions.

## `BaseRing(M): ModDed -> Rng`

## `CoefficientRing(M): ModDed -> Rng`

The Dedekind domain which $M$ is a module over.

## `Degree(M): ModDed -> RngIntElt`

The dimension of the vector space the module $M$ embeds into.

## `Ngens(M): ModDed -> RngIntElt`

## `NumberOfGenerators(M): ModDed -> RngIntElt`

The minimum number of vectors and ideals which generate the module $M$.

## `M . i: ModDed, RngIntElt -> ModTupRngElt`

The vector of the $ith$ vector and ideal pair generating the module $M$.

## `Determinant(M): ModDed -> RngOrdIdl`

## `Determinant(M): ModDed -> RngFunOrdIdl`

The determinant of the module $M$.

## `Dimension(M): ModDed -> RngIntElt`

The dimension of the vector space spanned by the module $M$ over its coefficient ring. This is the same as the number of generators of a pseudo basis of $M$.

## `Contents(M): ModDed -> RngOrdFracIdl`

```magma
UseBasis: BoolElt                    Default: false
```

The contents of the module $M$, ie. the gcd of the ideals obtained by multiplying the coefficient ideals by the ideal generated by the coefficients in the corresponding generators. The parameter `UseBasis` decides whether a pseudo basis or pseudo generators are used.

## `Simplify(M): ModDed -> ModDed`

```magma
UseBasis: BoolElt                    Default: false
```

Computes a module of contents $1$ by scaling each coefficient ideal by the inverse of the contents of the module $M$. The parameter `UseBasis` determines if the operations are performed on the pseudo generators or the pseudo basis of $M$.

## `EmbeddingSpace(M): ModDed -> Mod`

The canonical vector space containing the module $M$, ie.. $M$ tensored with the field of fractions of the coefficient ring.

## `Example: elementary (ex-5e5c19)`

The use of some elementary functions on a module is shown below.

```magma
> P<x> := PolynomialRing(Rationals());
> P<y> := PolynomialRing(P);
> F<c> := FunctionField(x^2 - y);
> M := MaximalOrderFinite(F);
> Vs := RModule(M, 2);
> s := [Vs | [1, 3], [2, 3]];
> Mods := Module(s);
> CoefficientRing(Mods);
Maximal Equation Order of F over Univariate Polynomial Ring in x over Rational
Field
> Mods.1;
(1 0)
> Determinant(Mods);
Ideal of M
Generator:
-3
> Vs := RSpace(M, 2);
> s := [Vs | [1, 3], [2, 3]];
> Mods := Module(s);
> sMods := sub<Mods | Mods!Vs![1, 3]>;
> qMods := quo<Mods | sMods>;
> Degree(Mods);
2
> Ngens(Mods);
2
> Ngens(sMods);
1
> Degree(sMods);
2
> Degree(qMods);
2
> Ngens(qMods);
2
> Determinant(Mods);
Ideal of M
Basis:
[1]
> Determinant(sMods);
>>   Determinant(sMods);
               ^
Runtime error in `Determinant': Module must be square
> Determinant(qMods);
Ideal of M
Basis:
[1]

```
