# Operations on FP-Algebras

This section describes operations on fp-algebras. Most of the operations are very similar to those for noncommutative free algebras; such operations are done by mapping the computation to the preimage ideal and then by mapping the result back into the fp-algebra. See the corresponding functions for the noncommutative free algebras for details.

## `A . i: AlgFP, RngIntElt -> AlgFPElt`

Given an fp-algebra $A$, return the $i$-th indeterminate of $A$ as an element of $A$.

## `CoefficientRing(A): AlgFP -> Rng`

Return the coefficient ring of the fp-algebra $A$.

## `Rank(A): AlgFP -> RngIntElt`

Return the rank of the fp-algebra $A$ (the number of indeterminates of $A$).

## `DivisorIdeal(I): AlgFP -> AlgFr`

Given an ideal $I$ of an fp-algebra $A$ which is the quotient ring $F/J$, where $F$ is a free algebra and $J$ an ideal of $F$, return the ideal $J$.

## `PreimageIdeal(I): AlgFP -> AlgFr`

Given an ideal $I$ of an fp-algebra $A$ which is the quotient ring $F/J$, where $F$ is a free algebra and $J$ an ideal of $F$, return the ideal $I'$ of $F$ such that the image of $I'$ under the natural epimorphism $F\rightarrow A$ is $I$.

## `PreimageRing(A): AlgFP -> AlgFr`

Given an fp-algebra $A$ which is the quotient ring $F/J$, where $F$ is a free algebra and $J$ an ideal of $F$, return the free algebra $F$.

## `OriginalRing(A): AlgFP -> Rng`

Return the generic free algebra $F$ such that $A$ is $F/J$ for some ideal $J$ of $F$.

## `IsCommutative(A): AlgFP -> BoolElt`

Return whether the algebra $A$ is commutative.

## `I eq J: AlgFP, AlgFP -> BoolElt`

Given two ideals $I$ and $J$ of the same fp-algebra $A$, return `true` if and only if $I$ and $J$ are equal.

## `I subset J: AlgFP, AlgFP -> BoolElt`

Given two ideals $I$ and $J$ of the same fp-algebra $A$, return `true` if and only if $I$ is contained in $J$.

## `I + J: AlgFP, AlgFP -> AlgFP`

Given two ideals $I$ and $J$ of the same fp-algebra $A$, return the sum $I+J$.

## `I * J: AlgFP, AlgFP -> AlgFP`

Given two ideals $I$ and $J$ of the same fp-algebra $A$, return the product $I*J$.

## `IsProper(I): AlgFP -> BoolElt`

Given an ideal $I$ of the fp-algebra $A$, return whether $I$ is proper; that is, whether $I$ is strictly contained in $A$.

## `IsZero(I): AlgFP -> BoolElt`

Given an ideal $I$ of the fp-algebra $A$, return whether $I$ is the zero ideal. Note that this is equivalent to whether the preimage ideal of $I$ is the divisor ideal of $A$.
