# Over Orders

## `IsMaximalAtPrime(R, P): AlgEtQOrd, AlgEtQIdl -> BoolElt`

Returns whether $R$ is maximal at the prime $P$, that is, if $(R:O)$ is not contained in $P$, where $O$ is the maximal order.

## `MinimalOverOrdersAtPrime(R, P): AlgEtQOrd, AlgEtQIdl -> SetIndx[AlgEtQOrd]`

Given an order $R$ and prime $P$ of $R$, it returns the minimal overorders $S$ of $R$ with conductor $(R:S)$ which is $P$-primary. The minimality assumption forces the conductor $(R:S)$ to be exactly $P$. Based on [[Hofmann and Sircana, 2020](../../references.md#cite-hofmannsircana)].

## `MinimalOverOrders(R): AlgEtQOrd -> SetIndx[AlgEtQOrd]`

Computes the minimal overorders of $R$.

## `OverOrdersAtPrime(R, P): AlgEtQOrd, AlgEtQIdl -> SeqEnum[AlgEtQOrd]`

Given an order $R$ and prime $P$ of $R$, it returns $R$ and the overorders $S$ of $R$ with conductor $(R:S)$ which is $P$-primary. We recursively produce the minimal $PP$-overorders where $PP$ are primes above $P$. Based on [[Hofmann and Sircana, 2020](../../references.md#cite-hofmannsircana)].

## `OverOrders(R): AlgEtQOrd -> SeqEnum[AlgEtQOrd]`

```magma
populateoo_in_oo: BoolElt                    Default: false
```

We compute all the overorders of $R$. The parameter `populateoo_in_oo` (default `false`) determines whether we should fill the attribute `T`OverOrders` for every overorder $T$ of $R$. The computation is based on [[Hofmann and Sircana, 2020](../../references.md#cite-hofmannsircana)].

## `Example: Over Orders Example (ex-1d4978)`

```magma
> _<x> := PolynomialRing(Integers());
> f := (x^4+16)*(x^4+81);
> A := EtaleAlgebra(f);
> E := EquationOrder(A);
> oo := OverOrders(E);
> #oo;
2288
> pp := SingularPrimes(E);
> // We see that the size of the lattice of inclusions of the overorders is the
> // product of the sizes of local component of the lattice.
> #oo eq &*[ #OverOrdersAtPrime(E,P) : P in pp ];
true
> // Now we consider only the P-overorders S for the first singular prime P.
> // We verify that there is always a positive integer i such that (R:S)^i is
> // invertible in its multiplicator ring.
> ooP := OverOrdersAtPrime(E,pp[1]);
> #ooP;
11
> forall{exists{IsInvertible(Ti!!Ci) where Ti:=MultiplicatorRing(Ci)
> where Ci:=C^i : i in [1..10]} where C := ColonIdeal(E,E!!OneIdeal(S))
>                                                             : S in ooP};
true

```

## `FindOverOrders(R): AlgEtQOrd -> SetIndx[AlgEtQOrd]`

```magma
populateoo_in_oo: BoolElt                    Default: false
```

We compute all the overorders of $R$. The parameter `populateoo_in_oo` (default `false`) determines whether we should fill the attribute `T`OverOrders` for every overorder $T$ of $R$. The computation is based on [[Hofmann and Sircana, 2020](../../references.md#cite-hofmannsircana)].
