# Ore extension solvable polynomial example, Gomez-Torrecillas, 2003 pcz = PolyRing(QQ(), "x,y,z") #is automatic: [one,x,y,z] = pcz.gens(); zrelations = [z, y, y * z + x] print "zrelations: = " + str([str(f) for f in zrelations]) print pz = SolvPolyRing(QQ(), "x,y,z", PolyRing.lex, zrelations) print "SolvPolyRing: " + str(pz) print pzq = SRF(pz) print "SolvableQuotientRing: " + str(pzq.ring.toScript()) # + ", assoz: " + str(pzq.ring.isAssociative()); #print "gens =" + str([ str(f) for f in pzq.ring.generators() ]); print pct = PolyRing(pzq, "t") #is automatic: [one,x,y,z,t] = p.gens(); trelations = [t, y, y * t + y, t, z, z * t - z] print "relations: = " + str([str(f) for f in trelations]) print pt = SolvPolyRing(pzq, "t", PolyRing.lex, trelations) print "SolvPolyRing: " + str(pt)
print #exit(0) ff = [u * (w - v), u * (v**2 + t), u * (v * u - x * y)] f = rs.ideal("", ff) print "f: " + str(f) print rf = f.rightGB() print "rf: " + str(rf) print #----- quotient of rsc: -------------- q = SRF(rcs) print "q: " + str(q.ring.toScript()) print #one,x,xi,y,yi,z,zi,t,ti = q.gens(); #print "x: " + str(x); #print "t: " + str(t); #print rm = PolyRing(q, "u,v,w", PolyRing.lex) #is automatic: [one,x,y,z,t,u,v,w] = rm.gens(); mrel = [v, u, u * v + x, w, v, v * w + y, w, u, u * w - z] print "mrel: = " + str([str(r) for r in mrel]) print
r = PolyRing(QQ(), "p1,q1") #is automatic: [one,p1,q1] = p.gens(); relations = [q1, p1, p1 * q1 + 1] print "relations: = " + str([str(f) for f in relations]) print rp = SolvPolyRing(QQ(), "p1,q1", PolyRing.lex, relations) print "SolvPolyRing: " + str(rp) print print "gens =" + str([str(f) for f in rp.gens()]) #is automatic: one,p1,q1 = rp.gens(); scp = SRF(rp) print "scp = " + str(scp) r2 = PolyRing(scp, "p2,q2") #is automatic: [one,p1,q1,p2,q2] = r2.gens(); relations2 = [q2, p2, p2 * q2 + 1] print "relations: = " + str([str(f) for f in relations2]) print rp2 = SolvPolyRing(scp, "p2,q2", PolyRing.lex, relations2) print "SolvPolyRing: " + str(rp2) print print "gens =" + str([str(f) for f in rp2.gens()])
tg = m.twosidedGB() print "seq twosided GB: " + str(tg) print "is twosided GB: " + str(tg.isTwosidedGB()) print "is right GB: " + str(tg.isRightGB()) print #exit() rg = m.rightGB() print "seq right GB: " + str(rg) print "is right GB: " + str(rg.isRightGB()) print # as quotients to coefficients rq = SRF(rs) rpq = PolyRing(rq, "v,w", PolyRing.lex) print "PolyRing: rpq = " + str(rpq) vrel = [v, t, t * v + x, w, t, t * w + y] print "vrel: = " + str([str(f) for f in vrel]) print rsq = SolvPolyRing(rq, "v,w", PolyRing.lex, vrel) print "SolvPolyRing: rsq = " + str(rsq) print r = SolvableModule("", rsq) print "SolvableModule: " + str(r)
#startLog(); sr = SRC(rgt, one) print "SolvableResidue: " + str(sr) print "SolvableResidue: " + str(sr - sr) print st = SRC(rgt, t - x) print "SolvableResidue: " + str(st) print "SolvableResidue: " + str(st - st) print "SolvableResidue: " + str(st**4 + 3 * st) print #exit(0); sc = SRF(rp, one) print "SolvableQuotient: " + str(sc) print "SolvableQuotient: " + str(sc - sc) print scx = SRF(rp, x) print "SolvableQuotient: " + str(scx) print "SolvableQuotient: " + str(scx * scx) print scy = SRF(rp, y) scyi = 1 / scy print "SolvableQuotient: " + str(scy) print "SolvableQuotient: " + str(scyi) print "SolvableQuotient: " + str(scyi * scy) print "SolvableQuotient: " + str(scy * scyi)