/* Just used once to produce the expressions in the tests below. calculate() = { G = \ lift(\ Mod(1, 2) * (\ (S5T01 + S4T11*T + S3T21*T^2 + S2T31*T^3 + S1T41*T^4 + S0T51*T^5)^5 +\ (S5T02 + S4T12*T + S3T22*T^2 + S2T32*T^3 + S1T42*T^4 + S0T52*T^5)^5 +\ (S5T03 + S4T13*T + S3T23*T^2 + S2T33*T^3 + S1T43*T^4 + S0T53*T^5)^5 +\ (S5T04 + S4T14*T + S3T24*T^2 + S2T34*T^3 + S1T44*T^4 + S0T54*T^5)^5 +\ (S5T05 + S4T15*T + S3T25*T^2 + S2T35*T^3 + S1T45*T^4 + S0T55*T^5)^5 +\ (S5T06 + S4T16*T + S3T26*T^2 + S2T36*T^3 + S1T46*T^4 + S0T56*T^5)^5\ )\ ); for(i = 0, 25, print("(", polcoeff(G, i, T), " == 0) && ")); } */ do_it() = { local(i, i5, i4, i3, i2, i1, i0, G0, G1, G2, G3, G4, G5,\ S5T01, S4T11, S3T21, S2T31, S1T41, S0T51,\ S5T02, S4T12, S3T22, S2T32, S1T42, S0T52,\ S5T03, S4T13, S3T23, S2T33, S1T43, S0T53,\ S5T04, S4T14, S3T24, S2T34, S1T44, S0T54,\ S5T05, S4T15, S3T25, S2T35, S1T45, S0T55,\ S5T06, S4T16, S3T26, S2T36, S1T46, S0T56); i=0; for(s5 = 0, 31, i5 = s5; S5T01 = Mod(i5, 2); i5 = i5 >> 1; S5T02 = Mod(i5, 2); i5 = i5 >> 1; S5T03 = Mod(i5, 2); i5 = i5 >> 1; S5T04 = Mod(i5, 2); i5 = i5 >> 1; S5T05 = Mod(i5, 2); S5T06 = S5T01 + S5T02 + S5T03 + S5T04 + S5T05; for(s4 = 0, 31, i4 = s4; S4T11 = Mod(i4, 2); i5 = i4 >> 1; S4T12 = Mod(i4, 2); i5 = i4 >> 1; S4T13 = Mod(i4, 2); i5 = i4 >> 1; S4T14 = Mod(i4, 2); i5 = i4 >> 1; S4T15 = Mod(i4, 2); S4T16 = S4T11 + S4T12 + S4T13 + S4T14 + S4T15 + 1; if((S4T11*S5T01 + (S4T12*S5T02 + (S4T13*S5T03 + (S4T14*S5T04 + (S4T15*S5T05 + S4T16*S5T06)))) == 0), for(s3 = 0, 31, i++; if(i % 100 == 0, print("Here s5 = ", s5, " and s4 = ", s4, " and s3 = ", s3)); i3 = s3; S3T21 = Mod(i3, 2); i3 = i3 >> 1; S3T22 = Mod(i3, 2); i3 = i3 >> 1; S3T23 = Mod(i3, 2); i3 = i3 >> 1; S3T24 = Mod(i3, 2); i3 = i3 >> 1; S3T25 = Mod(i3, 2); S3T26 = S3T21 + S3T22 + S3T23 + S3T24 + S3T25; if((S3T21*S5T01 + (S3T22*S5T02 + (S3T23*S5T03 + (S3T24*S5T04 + (S3T25*S5T05 + S3T26*S5T06)))) == 0) && ((S3T21*S4T11 + (S3T22*S4T12 + (S3T23*S4T13 + (S3T24*S4T14 + (S3T25*S4T15 + S3T26*S4T16))))) == 0), for(s2 = 0, 31, i2 = s2; S2T31 = Mod(i2, 2); i2 = i2 >> 1; S2T32 = Mod(i2, 2); i2 = i2 >> 1; S2T33 = Mod(i2, 2); i2 = i2 >> 1; S2T34 = Mod(i2, 2); i2 = i2 >> 1; S2T35 = Mod(i2, 2); /* print(S2T31, S2T32, S2T33, S2T34, S2T35); */ S2T36 = S2T31 + S2T32 + S2T33 + S2T34 + S2T35; for(s1 = 0, 31, i1 = s1; S1T41 = Mod(i1, 2); i1 = i1 >> 1; S1T42 = Mod(i1, 2); i1 = i1 >> 1; S1T43 = Mod(i1, 2); i1 = i1 >> 1; S1T44 = Mod(i1, 2); i1 = i1 >> 1; S1T45 = Mod(i1, 2); S1T46 = S1T41 + S1T42 + S1T43 + S1T44 + S1T45 + 1; for(s0 = 0, 31, i0 = s0; S0T51 = Mod(i0, 2); i0 = i0 >> 1; S0T52 = Mod(i0, 2); i0 = i0 >> 1; S0T53 = Mod(i0, 2); i0 = i0 >> 1; S0T54 = Mod(i0, 2); i0 = i0 >> 1; S0T55 = Mod(i0, 2); S0T56 = S0T51 + S0T52 + S0T53 + S0T54 + S0T55; if(\ (S2T31*S5T01 + (S2T32*S5T02 + (S2T33*S5T03 + (S2T34*S5T04 + (S2T35*S5T05 + S2T36*S5T06)))) == 0) && (S1T41*S5T01 + S4T11*S5T01 + (S1T42*S5T02 + S4T12*S5T02 + (S1T43*S5T03 + S4T13*S5T03 + (S1T44*S5T04 + S4T14*S5T04 + (S1T45*S5T05 + S4T15*S5T05 + (S1T46*S5T06 + S4T16*S5T06))))) == 0) && (S0T51*S5T01 + (S4T11 + (S0T52*S5T02 + (S4T12 + (S0T53*S5T03 + (S4T13 + (S0T54*S5T04 + (S4T14 + (S0T55*S5T05 + (S4T15 + (S0T56*S5T06 + S4T16)))))))))) == 0) && ((S2T31*S4T11 + (S2T32*S4T12 + (S2T33*S4T13 + (S2T34*S4T14 + (S2T35*S4T15 + S2T36*S4T16))))) == 0) && (S3T21*S5T01 + (S1T41*S4T11 + (S3T22*S5T02 + (S1T42*S4T12 + (S3T23*S5T03 + (S1T43*S4T13 + (S3T24*S5T04 + (S1T44*S4T14 + (S3T25*S5T05 + (S1T45*S4T15 + (S3T26*S5T06 + S1T46*S4T16)))))))))) == 0) && ((S0T51*S4T11 + S3T21*S4T11 + (S0T52*S4T12 + S3T22*S4T12 + (S0T53*S4T13 + S3T23*S4T13 + (S0T54*S4T14 + S3T24*S4T14 + (S0T55*S4T15 + S3T25*S4T15 + (S0T56*S4T16 + S3T26*S4T16)))))) == 0) && ((S2T31*S3T21 + (S2T32*S3T22 + (S2T33*S3T23 + (S2T34*S3T24 + (S2T35*S3T25 + S2T36*S3T26))))) == 0) && (S2T31*S5T01 + (S1T41*S3T21 + (S2T32*S5T02 + (S1T42*S3T22 + (S2T33*S5T03 + (S1T43*S3T23 + (S2T34*S5T04 + (S1T44*S3T24 + (S2T35*S5T05 + (S1T45*S3T25 + (S2T36*S5T06 + S1T46*S3T26)))))))))) == 0) && ((S2T31*S4T11 + (S0T51*S3T21 + (S2T32*S4T12 + (S0T52*S3T22 + (S2T33*S4T13 + (S0T53*S3T23 + (S2T34*S4T14 + (S0T54*S3T24 + (S2T35*S4T15 + (S0T55*S3T25 + (S2T36*S4T16 + S0T56*S3T26))))))))))) == 0) && ((S2T31*S3T21 + (S2T32*S3T22 + (S2T33*S3T23 + (S2T34*S3T24 + (S2T35*S3T25 + S2T36*S3T26))))) == 0) && (S1T41*S5T01 + (S1T41*S2T31 + (S1T42*S5T02 + (S1T42*S2T32 + (S1T43*S5T03 + (S1T43*S2T33 + (S1T44*S5T04 + (S1T44*S2T34 + (S1T45*S5T05 + (S1T45*S2T35 + (S1T46*S5T06 + S1T46*S2T36)))))))))) == 0) && ((S1T41*S4T11 + (S0T51*S2T31 + (S1T42*S4T12 + (S0T52*S2T32 + (S1T43*S4T13 + (S0T53*S2T33 + (S1T44*S4T14 + (S0T54*S2T34 + (S1T45*S4T15 + (S0T55*S2T35 + (S1T46*S4T16 + S0T56*S2T36))))))))))) == 0) && ((S1T41*S3T21 + (S1T42*S3T22 + (S1T43*S3T23 + (S1T44*S3T24 + (S1T45*S3T25 + S1T46*S3T26))))) == 0) && ((S1T41*S2T31 + (S1T42*S2T32 + (S1T43*S2T33 + (S1T44*S2T34 + (S1T45*S2T35 + S1T46*S2T36))))) == 0) && (S0T51*S5T01 + (S1T41 + (S0T52*S5T02 + (S1T42 + (S0T53*S5T03 + (S1T43 + (S0T54*S5T04 + (S1T44 + (S0T55*S5T05 + (S1T45 + (S0T56*S5T06 + S1T46)))))))))) == 0) && ((S0T51*S4T11 + (S0T51*S1T41 + (S0T52*S4T12 + (S0T52*S1T42 + (S0T53*S4T13 + (S0T53*S1T43 + (S0T54*S4T14 + (S0T54*S1T44 + (S0T55*S4T15 + (S0T55*S1T45 + (S0T56*S4T16 + S0T56*S1T46))))))))))) == 0) && ((S0T51*S3T21 + (S0T52*S3T22 + (S0T53*S3T23 + (S0T54*S3T24 + (S0T55*S3T25 + S0T56*S3T26))))) == 0) && ((S0T51*S2T31 + (S0T52*S2T32 + (S0T53*S2T33 + (S0T54*S2T34 + (S0T55*S2T35 + S0T56*S2T36))))) == 0) && ((S0T51*S1T41 + (S0T52*S1T42 + (S0T53*S1T43 + (S0T54*S1T44 + (S0T55*S1T45 + S0T56*S1T46))))) == 0) && (matrank([S5T01, S4T11, S3T21, S2T31, S1T41, S0T51; S5T02, S4T12, S3T22, S2T32, S1T42, S0T52; S5T03, S4T13, S3T23, S2T33, S1T43, S0T53; S5T04, S4T14, S3T24, S2T34, S1T44, S0T54; S5T05, S4T15, S3T25, S2T35, S1T45, S0T55; S5T06, S4T16, S3T26, S2T36, S1T46, S0T56]) == 6) && (S5T01 + (S5T02 + (S5T03 + (S5T04 + (S5T05 + S5T06)))) == 0) && ((S3T21 + (S3T22 + (S3T23 + (S3T24 + (S3T25 + S3T26))))) == 0) && ((S2T31 + (S2T32 + (S2T33 + (S2T34 + (S2T35 + S2T36))))) == 0) && ((S0T51 + (S0T52 + (S0T53 + (S0T54 + (S0T55 + S0T56))))) == 0), G0 = (S5T01 + S4T11*T + S3T21*T^2 + S2T31*T^3 + S1T41*T^4 + S0T51*T^5); G1 = (S5T02 + S4T12*T + S3T22*T^2 + S2T32*T^3 + S1T42*T^4 + S0T52*T^5); G2 = (S5T03 + S4T13*T + S3T23*T^2 + S2T33*T^3 + S1T43*T^4 + S0T53*T^5); G3 = (S5T04 + S4T14*T + S3T24*T^2 + S2T34*T^3 + S1T44*T^4 + S0T54*T^5); G4 = (S5T05 + S4T15*T + S3T25*T^2 + S2T35*T^3 + S1T45*T^4 + S0T55*T^5); G5 = (S5T06 + S4T16*T + S3T26*T^2 + S2T36*T^3 + S1T46*T^4 + S0T56*T^5); print("Here is a solution: "); print("G0 = ", lift(G0)); print("G1 = ", lift(G1)); print("G2 = ", lift(G2)); print("G3 = ", lift(G3)); print("G4 = ", lift(G4)); print("G5 = ", lift(G5)); ) ) ) ) ) ) ) ) ) }