# Intermediate Ideals

## `IntermediateIdeals(I, J): AlgEtQIdl, AlgEtQIdl -> SetIndx[AlgEtQIdl]`

```magma
Minimal                    : BoolElt                    Default: false
Maximal                    : BoolElt                    Default: false
PrescribedMultiplicatorRing: BoolElt                    Default: false
```

Given fractional $S$-ideals $J \subset I$, returns all the fractional $S$-ideals $K$ such that $J \subset K \subset I$.

If `Minimal` is set true, only the minimal ideals are returned. If `Maximal` is set true, only the maximal ideals are returned. If `PrescribedMultiplicatorRing` is set true, only ideals $K$ with $(K:K) = S$ are returned. The computation is done recursively starting with the minimal or maximal ones.

## `IntermediateIdeals(I, J, O): AlgEtQIdl, AlgEtQIdl, AlgEtQOrd -> SetIndx[AlgEtQIdl]`

```magma
PrescribedMultiplicatorRing: BoolElt                    Default: false
```

Given fractional $S$-ideals $I$ and $J$ and an order $O$ such that $S \subseteq O$, $J \subseteq I$, and $O \subseteq (I:I)$, this function returns all the fractional $S$-ideals $K$ such that

- $J \subseteq K \subseteq I$, and

- $O \cdot K = I$.

If `PrescribedMultiplicatorRing` is set true, then the output contains only $K$ such that $(K:K)=S$. Note that the output may contain $I$. The output is produced by recursively computing maximal intermediate ideals.

## `IntermediateIdeals(I, J, N): AlgEtQIdl, AlgEtQIdl, RngIntElt -> SetIndx[AlgEtQIdl]`

Given ideals $J \subset I$ over the same order, and a positive integer $N$, it returns all the ideals $K$ such that

- $J \subset K \subset I$, and

- $[I:K]=N$.

These are computed by recursively searching for maximal submodules.
