# qthIntegralClosure -- computes integral closures in positive characteristic

## Synopsis

• Usage:
(fractions,relicR,icR,wticR) = qthIntegralClosure(wtR,Rq,GB)
• Inputs:
• wtR, weight matrix
• Rq, polynomial ring over ZZ/q with weight-over-grevlex order
• GB, set of generators for the ideal of relations
• Outputs:
• fractions, a list, numerators of P-module generating set, the first doubling as a common denominator, hence a conductor element as well
• relicR, a list, a Gr"obner basis for the ideal of induced relations
• icR, a ring, grevlex-over-weight polynomial ring over ZZ/q for the presentation
• wticR, , weight matrix for the integral closure

## Description

 i1 : wtR = matrix{{5,6,6},{3,6,0}}; 2 3 o1 : Matrix ZZ <--- ZZ i2 : Rq = ZZ/23[x,y,z,Weights=>entries weightGrevlex(wtR)]; i3 : GB = {x^6+x^3*z-y^3*z^2}; i4 : (fractions,relicR,icR,wticR) = qthIntegralClosure(wtR,Rq,GB) 2 2 5 2 4 3 2 2 2 2 o4 = ({y z, x*y z, x + x z, x y + x*y*z, x y , x y z}, {p - p p p + p p , 0 2 5 6 4 6 ------------------------------------------------------------------------ 2 2 2 3 p p + p - p p , p p - p p , p p - p p p , p p - p p , p + p - p , 0 1 0 3 5 0 2 5 6 0 3 4 5 6 0 4 1 6 1 1 5 ------------------------------------------------------------------------ 2 2 p p - p p , p p - p p , p p - p p + p , p - p p - p , p p - p p 1 2 4 5 1 3 0 5 1 4 2 5 4 2 0 5 3 2 3 1 6 ------------------------------------------------------------------------ 2 2 - p , p p - p p , p - p p , p p - p p , p - p }, icR, | 10 9 8 7 5 6 6 2 4 3 5 3 2 6 3 4 5 6 4 0 | 6 9 6 3 3 6 ------------------------------------------------------------------------ 6 |) 0 | o4 : Sequence

The presentation is therefore a quotient ring, icR ( with grevlex-over-weight monomial ordering implicit from wticR) modulo the ideal, relicR, of induced relations that define the P-algebra multiplication and possible P-linear dependencies. The fractions returned could be used to define a map from (fractions#0)icR to Rq. Note that if wtR*matrix{{6},{0},{0}} eq max{ wtR*matrix{{3},{0},{1}},wtR*matrix{{0},{3},{2}} in the example above, the algorithm will undoubtedly fail at some step.