Assuming that (a,b) are the maps of a right exact sequence
$0\to A\to B\to C \to 0$
with B, C free, the script produces a pair of maps sigma, tau with $tau: C \to B$ a splitting of b and $sigma: B \to A$ a splitting of a; that is,
$a*sigma+tau*b = 1_B$
$sigma*a = 1_A$
$b*tau = 1_C$
i1 : kk= ZZ/101 o1 = kk o1 : QuotientRing |
i2 : S = kk[x,y,z] o2 = S o2 : PolynomialRing |
i3 : setRandomSeed 0 o3 = 0 |
i4 : t = random(S^{2:-1,2:-2}, S^{3:-1,4:-2}) o4 = {1} | 24 -36 -30 39x-43y+45z 21x-15y-34z 34x-28y-48z 19x-47y-47z | {1} | -29 19 19 -47x+38y+47z -39x+2y+19z -18x+16y-16z -13x+22y+7z | {2} | 0 0 0 -10 -29 -8 -22 | {2} | 0 0 0 -29 -24 -38 -16 | 4 7 o4 : Matrix S <--- S |
i5 : ss = splittings(syz t, t) o5 = {{1} | 0 0 1 0 0 0 0 |, {1} | -27 2 13x-10y+43z 50x-34y-50z |} {2} | 0 0 0 0 0 -31 -6 | {1} | -4 35 22x+32y+43z -7x-8y-27z | {2} | 0 0 0 0 0 29 9 | {1} | 0 0 0 0 | {2} | 0 0 -25 26 | {2} | 0 0 26 -2 | {2} | 0 0 0 0 | {2} | 0 0 0 0 | o5 : List |
i6 : ss/betti 0 1 0 1 o6 = {total: 3 7, total: 7 4} 0: . 3 0: . 2 1: 1 4 1: 3 2 2: 2 . 2: 4 . o6 : List |
The object splittings is a method function.