Given an $n\times n$ matrix $U$ and a submodule $M$ of a free module $R^n$, ascendModule finds the smallest submodule $V$ of $R^n$ containing $M$ and which satisfies $U^{1 + p + \cdots + p^{e-1}} V\subseteq V^{[p^e]}$.
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".
The object ascendModule is a method function.