This function can be useful to find isomorphisms between modules (since if there is an isomorphism, a random map between them will be such an isomorphism), as well as writing the canonical module as an ideal (up to degree shift) in the ring.
We start with a simpler application: duplicating the work of the simpler function random(ZZ,Ideal). Here are two ways to get a random element of degree 4 in the ideal $I$.
i1 : S = ZZ/101[a..d] o1 = S o1 : PolynomialRing |
i2 : I = monomialCurveIdeal(S, {2,5,9}) 2 2 4 2 3 3 5 3 2 o2 = ideal (b c - a d, c - a*b*d , a*c - b d, b - a c ) o2 : Ideal of S |
i3 : g = randomHomomorphism({4}, module I, S^1) o3 = {3} | 24a-36b-30c-29d | {4} | 19 | {4} | 19 | {5} | 0 | o3 : Matrix |
i4 : isWellDefined g o4 = true |
i5 : super g o5 = | 24ab2c-36b3c-30b2c2+19ac3+19c4-24a3d+36a2bd-19b3d+30a2cd-29b2cd+29a2d2 ------------------------------------------------------------------------ -19abd2 | 1 1 o5 : Matrix S <--- S |
i6 : J = ideal image g 2 3 2 2 3 4 3 2 3 o6 = ideal(24a*b c - 36b c - 30b c + 19a*c + 19c - 24a d + 36a b*d - 19b d ------------------------------------------------------------------------ 2 2 2 2 2 + 30a c*d - 29b c*d + 29a d - 19a*b*d ) o6 : Ideal of S |
i7 : random(4, I) 2 3 2 2 3 4 3 2 3 o7 = - 10a*b c - 29b c - 8b c - 24a*c - 29c + 10a d + 29a b*d + 24b d + ------------------------------------------------------------------------ 2 2 2 2 2 8a c*d - 22b c*d + 22a d + 29a*b*d o7 : S |
One important application of this function is to find an isomorphism of the canonical module of $R = S/I$ with an ideal $J \subset R$, up to a degree twist. See doubling for a function which uses this method.
i8 : R = S/I o8 = R o8 : QuotientRing |
i9 : E = Ext^2(comodule I, S^{{-4}}) o9 = cokernel {-1} | c a2 ad 0 b2 | {-1} | d b2 0 c2 0 | {0} | 0 0 -c b -a | 3 o9 : S-module, quotient of S |
i10 : ER = E ** R o10 = cokernel {-1} | c a2 ad 0 b2 | {-1} | d b2 0 c2 0 | {0} | 0 0 -c b -a | 3 o10 : R-module, quotient of R |
i11 : isHomogeneous ER o11 = true |
i12 : f = randomHomomorphism(3, R^1, ER) o12 = | -16ad+39bd-38cd 16ac-39bc+38c2 39c3-16b2d-38ad2 | o12 : Matrix |
i13 : isWellDefined f o13 = true |
i14 : source f == ER o14 = true |
i15 : target f == R^1 o15 = true |
i16 : degree f == {3} o16 = true |
i17 : ker f == 0 o17 = true |
i18 : J = ideal image f 2 3 2 o18 = ideal (- 16a*d + 39b*d - 38c*d, 16a*c - 39b*c + 38c , 39c - 16b d - ----------------------------------------------------------------------- 2 38a*d ) o18 : Ideal of R |
The object randomHomomorphism is a method function.