In this package K is a finite field, R is a ring of univariate polynomials over K, and F is a monogenic algebra over R. We require that F is monogenic, i.e. that F = K[x, y]/(f(x, y)), because the integral basis algorithm used will factor the polynomial f(x, y). The package provides a function to compute the integral closure of R in the quotient field of F as well as a function to compute a “local integral basis” at a specific prime.

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

integralBasis() returns a record [basis, basisDen, basisInv] \  containing information regarding the integral closure of \ R in the quotient field of the framed algebra F. F is a framed algebra with R-module basis w1, w2, ..., wn. If ‘basis’ is the matrix (aij, i = 1..n, j = 1..n), then the ith element of the integral basis is vi = (1/basisDen) * sum(aij * wj, j = 1..n), i.e. the ith row of ‘basis’ contains the coordinates of the ith basis vector. Similarly, the ith 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: R -> Record(basis: Matrix R, basisDen: R, basisInv: Matrix R)

integralBasis(p) returns a record [basis, basisDen, basisInv] \  containing information regarding the local integral closure of \ R at the prime p in the quotient field of the framed algebra F. F is a framed algebra with R-module basis w1, w2, ..., wn. If ‘basis’ is the matrix (aij, i = 1..n, j = 1..n), then the ith element of the local integral basis is vi = (1/basisDen) * sum(aij * wj, j = 1..n), i.e. the ith row of ‘basis’ contains the coordinates of the ith basis vector. Similarly, the ith 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).

reducedDiscriminant: UP -> R

reducedDiscriminant(up) undocumented