# NumberFieldIntegralBasis(UP, F)ΒΆ

- UP: UnivariatePolynomialCategory Integer
- F: FramedAlgebra(Integer, UP)

In this package `F`

is a framed algebra over the integers (typically `F = Z[a]`

for some algebraic integer a). The package provides functions to compute the integral closure of `Z`

in the quotient field of `F`

.

- discriminant: () -> Integer
`discriminant()`

returns the discriminant of the integral closure of`Z`

in the quotient field of the framed algebra`F`

.

- integralBasis: () -> Record(basis: Matrix Integer, basisDen: Integer, basisInv: Matrix Integer)
`integralBasis()`

returns a record`[basis, basisDen, basisInv]`

containing information regarding the integral closure of`Z`

in the quotient field of`F`

, where`F`

is a framed algebra with`Z`

-module basis`w1, w2, ..., wn`

. If`basis`

is the matrix`(aij, i = 1..n, j = 1..n)`

, then the`i`

th element of the integral basis is`vi = (1/basisDen) * sum(aij * wj, j = 1..n)`

, i.e. the`i`

th row of`basis`

contains the coordinates of the`i`

th basis vector. Similarly, the`i`

th row of the matrix`basisInv`

contains the coordinates of`wi`

with respect to the basis`v1, ..., vn`

: if`basisInv`

is the matrix`(bij, i = 1..n, j = 1..n)`

, then`wi = sum(bij * vj, j = 1..n)`

.

- localIntegralBasis: Integer -> Record(basis: Matrix Integer, basisDen: Integer, basisInv: Matrix Integer)
`integralBasis(p)`

returns a record`[basis, basisDen, basisInv]`

containing information regarding the local integral closure of`Z`

at the prime`p`

in the quotient field of`F`

, where`F`

is a framed algebra with`Z`

-module basis`w1, w2, ..., wn`

. If`basis`

is the matrix`(aij, i = 1..n, j = 1..n)`

, then the`i`

th element of the integral basis is`vi = (1/basisDen) * sum(aij * wj, j = 1..n)`

, i.e. the`i`

th row of`basis`

contains the coordinates of the`i`

th basis vector. Similarly, the`i`

th row of the matrix`basisInv`

contains the coordinates of`wi`

with respect to the basis`v1, ..., vn`

: if`basisInv`

is the matrix`(bij, i = 1..n, j = 1..n)`

, then`wi = sum(bij * vj, j = 1..n)`

.