# Operations on Elements of an Algebra

## Operations on Elements

### `a + b: AlgGenElt, AlgGenElt -> AlgGenElt`

The sum of the elements $a$ and $b$ of an algebra $A$.

### `- a: AlgGenElt -> AlgGenElt`

The negation of the algebra element $a$.

### `a - b: AlgGenElt, AlgGenElt -> AlgGenElt`

The difference of the elements $a$ and $b$ of an algebra $A$.

### `a * b: AlgGenElt, AlgGenElt -> AlgGenElt`

The product of the elements $a$ and $b$ of an algebra $A$.

### `a * r: AlgGenElt, RngElt -> AlgGenElt`

### `r * a: RngElt, AlgGenElt -> AlgGenElt`

The product of the element $a$ of the algebra $A$ and the ring element $r \in R$, where $R$ is the coefficient ring of $A$.

### `a / r: AlgGenElt, RngElt -> AlgGenElt`

The product of the element $a$ of the $R$-algebra $A$ and the ring element $1 / r \in R$, where $R$ is a field.

### `a ^ n: AlgGenElt, RngIntElt -> AlgGenElt`

If $n$ is positive, form the (left-normed) $n$-th power $(( \ldots ((a*a)*a) \ldots )*a)$ of $a$; if the parent algebra $A$ of $a$ has an identity and $n$ is zero, return the identity; if $n < 0$ and $a$ has an inverse $a^{-1}$ in $A$, form the $n$-th power of $a^{-1}$.

### `MinimalPolynomial(a): AlgGenElt -> RngUPolElt`

If $R$ is a field or the integer ring, return the minimal polynomial of the algebra element $a$.

### `Parent(a): AlgGenElt -> AlgGen`

For an element $a$ in an algebra $A$ return $A$.

## Comparisons and Membership

### `a eq b: AlgGenElt, AlgGenElt -> BoolElt`

Returns `true` if the elements $a$ and $b$ of an algebra $A$ are equal; otherwise `false`.

### `a ne b: AlgGenElt, AlgGenElt -> BoolElt`

Returns `true` if the elements $a$ and $b$ of an algebra $A$ are not equal; otherwise `false`.

### `a in A: AlgGenElt, AlgGen -> BoolElt`

Returns `true` if $a$ is in the algebra $A$; otherwise `false`.

### `a notin A: AlgGenElt, AlgGen -> BoolElt`

Returns `true` if $a$ is not in the algebra $A$; otherwise `false`.

## Predicates on Elements

### `IsZero(a): AlgGenElt -> BoolElt`

Returns `true` if the algebra element $a$ is zero; otherwise `false`.

### `IsOne(a): AlgGenElt -> BoolElt`

Returns `true` if the algebra element $a$ is the identity; otherwise `false`.

### `IsMinusOne(a): AlgGenElt -> BoolElt`

Returns `true` if the algebra element $a$ is the negative of the identity element; otherwise `false`.

### `IsUnit(a): AlgGenElt -> BoolElt, AlgGenElt`

Returns `true` if the element $a$ is a unit, plus the inverse; otherwise `false`.

### `IsRegular(a): AlgGenElt -> BoolElt`

Returns `true` if the element $a$ is regular, that is, is not a zero divisor; otherwise `false`.

### `IsZeroDivisor(a): AlgGenElt -> BoolElt`

Returns `true` if the algebra element $a$ is a divisor of zero; otherwise `false`.

### `IsIdempotent(a): AlgGenElt -> BoolElt`

Returns `true` if the element $a$ is an idempotent, i.e. if $a^2 = a$; otherwise `false`.

### `IsNilpotent(a): AlgGenElt -> BoolElt, RngIntElt`

Returns `true` if the element $a$ is nilpotent, i.e. if $a^n = 0$ for some $n \geq 0$; otherwise `false`. If `true`, the minimal $n$ such that $a^n = 0$ is returned as a second value.
