# Elements of Orders

## Construction of Elements

### `O ! 0: AlgAssVOrd, RngIntElt -> AlgAssVOrdElt`

### `Zero(O): AlgAssVOrd -> AlgAssVOrdElt`

The zero element of the associative order $O$.

### `O ! 1: AlgAssVOrd, RngIntElt -> AlgAssVOrdElt`

### `One(O): AlgAssVOrd -> AlgAssVOrdElt`

The identity element of the associative order $O$.

### `O . i: AlgAssVOrd, RngIntElt -> AlgAssVElt`

Given an associative order $O$ and an integer $i$, returns the $i$th basis element as an order over the base ring. Note that the element $1$ may or may not be the first element of a basis. These basis elements are returned as elements of the algebra of $O$ not as elements of $O$ itself.

### `O ! x: AlgAssVOrd, Any -> AlgAssVOrdElt`

Return an element of the associative order $O$ described by $x$, where $x$ may be a sequence, an element of an associative order, an element coercible into the coefficient ring of $O$ or into the algebra of $O$.

## Arithmetic of Elements

### `x + y: AlgAssVOrdElt, AlgAssVOrdElt -> AlgAssVOrdElt`

The sum of elements $x$ and $y$ of an order of an associative algebra.

### `x - y: AlgAssVOrdElt, AlgAssVOrdElt -> AlgAssVOrdElt`

The difference of elements $x$ and $y$ of an order of an associative algebra.

### `- x: AlgAssVOrdElt -> AlgAssVOrdElt`

The negation of element $x$ of an order of an associative algebra.

### `x * y: AlgAssVOrdElt, AlgAssVOrdElt -> AlgAssVOrdElt`

The product of elements $x$ and $y$ of an associative algebra.

### `u * c: AlgAssVOrdElt, RngElt -> AlgAssVOrdElt`

### `c * u: RngElt, AlgAssVOrdElt -> AlgAssVOrdElt`

The product of the element $u$ of an associative order by the scalar $c$.

### `x / y: AlgAssVOrdElt, AlgAssVOrdElt -> AlgAssVElt`

The quotient of $x$ by the unit $y$ in the parent algebra.

### `x div y: AlgAssVOrdElt, AlgAssVOrdElt -> AlgAssVOrdElt`

The exact division of $x$ by $y$ in the order containing them.

### `x ^ n: AlgAssVOrdElt, RngIntElt -> AlgAssVOrdElt`

The product of the element $x$ of an associative order with itself $n$ times.

## Predicates on Elements

### `x eq y: AlgAssVOrdElt, AlgAssVOrdElt -> BoolElt`

Returns `true` if and only if the elements $x$ and $y$ are equal.

### `x ne y: AlgAssVOrdElt, AlgAssVOrdElt -> BoolElt`

Returns `true` if and only if the elements $x$ and $y$ are not equal.

### `IsZero(x): AlgAssVOrdElt -> BoolElt`

Return `true` if the element $x$ of an associative order is the zero element.

### `IsUnit(a): AlgAssVOrdElt -> BoolElt`

Return `true` if the element $x$ of an associative order is a unit in that order.

### `IsScalar(x): AlgAssVOrdElt -> BoolElt, RngElt`

Returns `true` if and only if $x$ is an element of the base ring of the order containing it, and if so returns the coerced element.

## Other Operations with Elements

### `ElementToSequence(x): AlgAssVOrdElt -> SeqEnum`

### `Eltseq(x): AlgAssVOrdElt -> SeqEnum`

Given an element $x$ of an associative order $O$, returns the sequence of coordinates of $x$ in terms of the basis of $O$.

### `Norm(x): AlgAssVOrdElt -> RngElt`

The norm of the element $x$ of an order as an element of its parent algebra.

### `Trace(x): AlgAssVOrdElt -> RngElt`

The trace of the element $x$ of an order as an element of its parent algebra.

### `LeftRepresentationMatrix(e): AlgAssVOrdElt -> AlgMatElt`

### `RightRepresentationMatrix(e): AlgAssVOrdElt -> AlgMatElt`

The representation matrix describing left (right) multiplication by the element $e$ of an associative order.

### `RepresentationMatrix(a): AlgAssVOrdElt -> AlgMatElt`

```magma
Side: MonStgElt                    Default: "Left"
```

The representation matrix of the element $a$ of an associative order. This describes left multiplication unless the parameter `Side` is set to `"Right"`.

### `CharacteristicPolynomial(x): AlgAssVOrdElt -> RngUPolElt`

The characteristic polynomial of the element $x$ of an order as an element of its parent algebra.

### `MinimalPolynomial(x): AlgAssVOrdElt -> RngUPolElt`

The minimal polynomial of the element $x$ of an order as an element of its parent algebra.
