Given an n×n matrix U and a submodule M of a free module Rn, ascendModule finds the smallest submodule V of Rn containing M and which satisfies U1 + p + …+ pe-1 V⊆V[pe].
i1 : R = ZZ/2[a,b,c,d]; |
i2 : A = matrix {{b*c, a, 0}, {a^2* d, d^2 , c + d}}; 2 3 o2 : Matrix R <--- R |
i3 : M = image A; |
i4 : U = matrix {{a^4 + a*b*c^2 + a*b*c*d, a^2* b}, {a^2*c*d^3 , a^3* c*d + a^3 *d^2 + b*c*d^3}}; 2 2 o4 : Matrix R <--- R |
i5 : ascendModule(1, M, U) o5 = image | 0 a bc | | c+d d2 a2d | 2 o5 : R-module, submodule of R |
For ease of use, instead of passing the module M, one can instead pass a matrix A whose image is M, and ascendModule will return a matrix whose image is V.
i6 : ascendModule(1, A, U) o6 = | 0 a bc | | c+d d2 a2d | 2 3 o6 : Matrix R <--- R |
This method is described in M. Katzman and W. Zhang’s "Annihilators of Artinian modules compatible with a Frobenius map", under the name "star-closure".