print "Ring: " + str(r); print; ps = """ ( ( 45 P + 35 S - 165 B - 36 ), ( 35 P + 40 Z + 25 T - 27 S ), ( 15 W + 25 S P + 30 Z - 18 T - 165 B**2 ), ( - 9 W + 15 T P + 20 S Z ), ( P W + 2 T Z - 11 B**3 ), ( 99 W - 11 B S + 3 B**2 ), ( B**2 + 33/50 B + 2673/10000 ) ) """; f = r.ideal( ps ); print "Ideal: " + str(f); print; #Katsura equations for N = 3: #r = Ring( "Rat(u0,u1,u2,u3) L" ); #print "Ring: " + str(r); #print; ps = """ ( u3*u3 + u2*u2 + u1*u1 + u0*u0 + u1*u1 + u2*u2 + u3*u3 - u0, u3*0 + u2*u3 + u1*u2 + u0*u1 + u1*u0 + u2*u1 + u3*u2 - u1, u3*0 + u2*0 + u1*u3 + u0*u2 + u1*u1 + u2*u0 + u3*u1 - u2,
r = Ring( "IntFunc(a, c, b) (y2, y1, z1, z2, x) G" ); print "Ring: " + str(r); print; [one,a,c,b,y2,y1,z1,z2,x] = r.gens(); p1 = x + 2 * y1 * z1 + 3 * a * y1**2 + 5 * y1**4 + 2 * c * y1; p2 = x + 2 * y2 * z2 + 3 * a * y2**2 + 5 * y2**4 + 2 * c * y2; p3 = 2 * z2 + 6 * a * y2 + 20 * y2**3 + 2 * c; p4 = 3 * z1**2 + y1**2 + b; p5 = 3 * z2**2 + y2**2 + b; F = [p1,p2,p3,p4,p5]; g = r.ideal( list=F ); print "Ideal: " + str(g); print; rg = g.GB(); rg = g.GB(); rg = g.GB(); rg = g.GB(); print "GB:", rg; print; bg = rg.isGB(); print "isGB:", bg; print; p7 = ( x + 1 ) / ( x**2 - x + 1 );
from jas import Ideal from edu.jas.gb import Katsura # katsura examples knum = 4 tnum = 2 k = Katsura(knum) r = Ring(k.varList("Rat", "G")) #r = Ring.new( k.varList("Mod 23","G") ); print "Ring: " + str(r) print ps = k.polyList() f = r.ideal(ps) print "Ideal: " + str(f) print rg = f.parGB(tnum) for th in range(tnum, 0, -1): rg = f.parGB(th) #print "par Output:", rg; #print; rg = f.GB() #print "seq Output:", rg; print
# mark, d-gb diplom example r = Ring( "Z(x,y,z) L" ); print "Ring: " + str(r); print; ps = """ ( ( z + x y**2 + 4 x**2 + 1 ), ( y**2 z + 2 x + 1 ), ( x**2 z + y**2 + x ) ) """; f = r.ideal( ps ); print "Ideal: " + str(f); print; from edu.jas.ring import EGroebnerBaseSeq; from edu.jas.ring import DGroebnerBaseSeq; egbs = EGroebnerBaseSeq(); dgbs = DGroebnerBaseSeq(); #startLog(); eg = egbs.GB( f.list ); rg = r.ideal(list=eg); print "seq e-GB:", rg; print "is e-GB:", egbs.isGB(eg);
# Frist polynomial produces a different e-GB. # Second polynomial reproduces the e-GB with the second polynomial. r = Ring("Z(x,y) L") print "Ring: " + str(r) print ps = """ ( ( y**6 + x**4 y**4 - x**2 y**4 - y**4 - x**4 y**2 + 2 x**2 y**2 + x**6 - x**4 ), ( 2 x**3 y**4 - x y**4 - 2 x**3 y**2 + 2 x y**2 + 3 x**5 - 2 x** 3 ), ( 3 y**5 + 2 x**4 y**3 - 2 x**2 y**3 - 2 y**3 - x**4 y + 2 x**2 y ) ) """ f = r.ideal(ps) print "Ideal: " + str(f) print from edu.jas.ring import EGroebnerBaseSeq from edu.jas.ring import DGroebnerBaseSeq egbs = EGroebnerBaseSeq() dgbs = DGroebnerBaseSeq() #startLog(); eg = egbs.GB(f.list) rg = r.ideal(list=eg) print "seq e-GB:", rg print "is e-GB:", egbs.isGB(eg)
Rat(x1,x2,x3,y1,y2) G|3| """; ps = """ ( ( y1 + y2 - 1 ), ( x1 - y1^2 - y1 - y2 ), ( x2 - y1 - y2^2 ), ( x3 - y1 y2 ) ) """; r = Ring( rs ); print "Ring: " + str(r); i = r.ideal( ps ); print "Ideal: " + str(i); g = i.GB(); print "seq GB:", g; rsi = """ # polynomial ring: Rat(x1,x2,x3) G """; ri = Ring( rsi ); print "Ring: " + str(ri);
f1 = 45 * P + 35 * S - 165 * B - 36 f2 = 35 * P + 40 * Z + 25 * T - 27 * S f3 = 15 * W + 25 * S * P + 30 * Z - 18 * T - 165 * B**2 f4 = -9 * W + 15 * T * P + 20 * S * Z f5 = P * W + 2 * T * Z - 11 * B**3 f6 = 99 * W - 11 * B * S + 3 * B**2 f7 = 10000 * B**2 + 6600 * B + 2673 #all ok: #f7 = f7 + e * f6**0; #f7 = f7 + 5959345574908321469098512640906154241024000000**2 * f6; #f7 = f7 + 35555./332 * f1; F = [f1, f2, f3, f4, f5, f6, f7] #F = [ f1, f2, f3, f4, f5, f6 ]; #print "F = ", [ str(f) for f in F ]; I = r.ideal("", list=F) print "Ideal: " + str(I) print #sys.exit(); rg = I.GB() print "seq Output:", rg print terminate() sys.exit() ps = """ ( ( 45 P + 35 S - 165 B - 36 ),
# ideal elimination example r = Ring( "Rat(x,y,z) G" ); print "Ring: " + str(r); print; ps1 = """ ( ( x^2 - 2 ), ( y^2 - 3 ), ( z^3 - x * y ) ) """; F1 = r.ideal( ps1 ); print "Ideal: " + str(F1); print; e = Ring( "Rat(z) G" ); print "Ring: " + str(e); print; #startLog(); rg1 = F1.eliminateRing(e); print "rg1 = ", rg1; print; rg2 = rg1.intersectRing(e); print "rg2 = ", rg2;
f1 = 45 * P + 35 * S - 165 * B - 36; f2 = 35 * P + 40 * Z + 25 * T - 27 * S; f3 = 15 * W + 25 * S * P + 30 * Z - 18 * T - 165 * B**2; f4 = - 9 * W + 15 * T * P + 20 * S * Z; f5 = P * W + 2 * T * Z - 11 * B**3; f6 = 99 * W - 11 *B * S + 3 * B**2; f7 = 10000.0 * B**2 + 6600 * B + 2673; #all ok: #f7 = f7 + e * f6**0; #f7 = f7 + 5959345574908321469098512640906154241024000000**2 * f6; #f7 = f7 + 35555./332 * f1; F = [ f1, f2, f3, f4, f5, f6, f7 ]; #F = [ f1, f2, f3, f4, f5, f6 ]; #print "F = ", [ str(f) for f in F ]; I = r.ideal( "", list=F ); print "Ideal: " + str(I); print; #sys.exit(); rg = I.GB(); print "seq Output:", rg; print; terminate(); sys.exit(); ps = """ ( ( 45 P + 35 S - 165 B - 36 ),
U3 U4^2 + 4137/800000 A46 U3 U4^2 - 7/20 A46^4 U3^2 U4 - 77/125 A46^3 U3^2 U4 - 23863/60000 A46^2 U3^2 U4 - 1078/9375 A46 U3^2 U4 - 24353/1920000 U3^2 U4 - 3/20 A46^4 U3^3 - 21/100 A46^3 U3^3 - 91/800 A46^2 U3^3 - 5887/200000 A46 U3^3 - 343/128000 U3^3 ) ) """ pp1 = """ ( 20 A46 + 7 ), """ pp2 = """ ( 5480334637123239936000000000000000000 A46^32 + 23330567455181792870400000000000000000 A46^31 - 22260410953422455439360000000000000000 A46^30 - 379039147753503876710400000000000000000 A46^29 - 1305289515920841108357120000000000000000 A46^28 - 2661894008686715272062566400000000000000 A46^27 - 3732109213267597335472373760000000000000 A46^26 - 3719328899522099347074318336000000000000 A46^25 - 2513175000419852400394764288000000000000 A46^24 - 801907472074794268996141056000000000000 A46^23 + 559468735767998648283977220096000000000 A46^22 + 1161692745234469227508358814105600000000 A46^21 + 1115120737963786660933876454522880000000 A46^20 + 754183677763034219243933188227072000000 A46^19 + 366205139138005719200006792439398400000 A46^18 + 95407136698255889087520898673541120000 A46^17 - 35897763757636362165902256717692928000 A46^16 - 68696958358719191677546842722559590400 A46^15 - 55382563098545072682320366954843996160 A46^14 - 32223104574376823941781148035505979392 A46^13 - 14867126462105106300205537184606126080 A46^12 - 5596017809975575801376014016653721600 A46^11 - 1730893404306213749794640488178116608 A46^10 - 438698743729822786570094575456788480 A46^9 - 90199241991532353478039712103521280 A46^8 - 14778859703096558479650421488297984 A46^7 - 1874056025467134008603806670325120 A46^6 - 174876413639867324175892636604160 A46^5 - 10843113615171040141214782270464 A46^4 - 325577720150105105056746125600 A46^3 + 6040454553390756509792153750 A46^2 + 761038687880048862537750000 A46 + 13745464623924567359765625 ), """ pp = ps % pp1 f = r.ideal(pp) print "Ideal: " + str(f) print startLog() rg = f.GB() print "seq Output:", rg print #sys.exit();
ks = """ ( ( a^2 - a ), ( f^2 - f ), ( p^2 - p ), ( u^2 - u ) ) """ ps = """ ( ( p f + p ), ( p u + p + u + 1 ), ( a + u + 1 ), ( a + p + 1 ) ) """ k = r.ideal(ks) p = r.ideal(ps) f = k.sum(p) print "Ideal: " + str(f) print rg = f.GB() print "Output:", rg print
U3^2 U4 - 1078/9375 A46 U3^2 U4 - 24353/1920000 U3^2 U4 - 3/20 A46^4 U3^3 - 21/100 A46^3 U3^3 - 91/800 A46^2 U3^3 - 5887/200000 A46 U3^3 - 343/128000 U3^3 ) ) """; pp1 = """ ( 20 A46 + 7 ), """; pp2 = """ ( 5480334637123239936000000000000000000 A46^32 + 23330567455181792870400000000000000000 A46^31 - 22260410953422455439360000000000000000 A46^30 - 379039147753503876710400000000000000000 A46^29 - 1305289515920841108357120000000000000000 A46^28 - 2661894008686715272062566400000000000000 A46^27 - 3732109213267597335472373760000000000000 A46^26 - 3719328899522099347074318336000000000000 A46^25 - 2513175000419852400394764288000000000000 A46^24 - 801907472074794268996141056000000000000 A46^23 + 559468735767998648283977220096000000000 A46^22 + 1161692745234469227508358814105600000000 A46^21 + 1115120737963786660933876454522880000000 A46^20 + 754183677763034219243933188227072000000 A46^19 + 366205139138005719200006792439398400000 A46^18 + 95407136698255889087520898673541120000 A46^17 - 35897763757636362165902256717692928000 A46^16 - 68696958358719191677546842722559590400 A46^15 - 55382563098545072682320366954843996160 A46^14 - 32223104574376823941781148035505979392 A46^13 - 14867126462105106300205537184606126080 A46^12 - 5596017809975575801376014016653721600 A46^11 - 1730893404306213749794640488178116608 A46^10 - 438698743729822786570094575456788480 A46^9 - 90199241991532353478039712103521280 A46^8 - 14778859703096558479650421488297984 A46^7 - 1874056025467134008603806670325120 A46^6 - 174876413639867324175892636604160 A46^5 - 10843113615171040141214782270464 A46^4 - 325577720150105105056746125600 A46^3 + 6040454553390756509792153750 A46^2 + 761038687880048862537750000 A46 + 13745464623924567359765625 ), """; pp = ps % pp1; f = r.ideal( pp ); print "Ideal: " + str(f); print; startLog(); rg = f.GB(); print "seq Output:", rg; print; #sys.exit();
Rat(x1,x2,x3,y1,y2) G|3| """ ps = """ ( ( y1 + y2 - 1 ), ( x1 - y1^2 - y1 - y2 ), ( x2 - y1 - y2^2 ), ( x3 - y1 y2 ) ) """ r = Ring(rs) print "Ring: " + str(r) i = r.ideal(ps) print "Ideal: " + str(i) g = i.GB() print "seq GB:", g rsi = """ # polynomial ring: Rat(x1,x2,x3) G """ ri = Ring(rsi) print "Ring: " + str(ri) y = application.Ideal(g.pset).intersect(ri.ring) len = y.list.size()
( ( x - 1 ), ( y - 1 ), ( z - 1 ) ) """; ps2 = """ ( ( x - 2 ), ( y - 3 ), ( z - 3 ) ) """; F1 = r.ideal( ps1 ); #print "Ideal: " + str(F1); #print; F2 = r.ideal( ps2 ); #print "Ideal: " + str(F2); #print; #startLog(); rg1 = F1.GB(); print "rg1 = ", rg1; print; rg2 = F2.GB(); print "rg2 = ", rg2;
) print "Ring: " + str(r) print ps = """ ( ( z1^3 z2 z3^2 - w1 ), ( z1^2 z2^2 z3 - w2 ), ( z1 z2^3 z3 - w3 ), ( z1 - w4 ), ( z2 - w5 ), ( z3 - w6 ) ) """ f = r.ideal(ps) print "Ideal: " + str(f) print rg = f.GB() print "seq Output:", rg print pf = """ ( ( z1^45 z2^21 z3^18 ) ) """ fp = r.ideal(pf) print "Ideal: " + str(fp)
r = Ring( "Rat(w1,w2,w3,w4,z1,z2) W( (0,0,0,0,1,1),(1,1,2,2,0,0) )" ); print "Ring: " + str(r); print; ps = """ ( ( z1^4 z2^2 - w1 ), ( z1^5 z2^3 - w2 ), ( z1 - w3 ), ( z2 - w4 ) ) """; f = r.ideal( ps ); print "Ideal: " + str(f); print; rg = f.GB(); print "seq Output:", rg; print; pf = """ ( ( z1^37 z2^20 ) ) """; fp = r.ideal( pf );
( a^2 - a ), ( f^2 - f ), ( p^2 - p ), ( u^2 - u ) ) """; ps = """ ( ( p f + p ), ( p u + p + u + 1 ), ( a + u + 1 ), ( a + p + 1 ) ) """; k = r.ideal( ks ); p = r.ideal( ps ); f = k.sum( p ); print "Ideal: " + str(f); print; rg = f.GB(); print "Output:", rg; print;
f1 = 45 * P + 35 * S - 165 * B - 36 f2 = 35 * P + 40 * Z + 25 * T - 27 * S f3 = 15 * W + 25 * S * P + 30 * Z - 18 * T - 165 * B ** 2 f4 = -9 * W + 15 * T * P + 20 * S * Z f5 = P * W + 2 * T * Z - 11 * B ** 3 f6 = 99 * W - 11 * B * S + 3 * B ** 2 f7 = 10000 * B ** 2 + 6600 * B + 2673 # all ok: # f7 = f7 + e * f6**0; # f7 = f7 + 5959345574908321469098512640906154241024000000**2 * f6; # f7 = f7 + 35555./332 * f1; F = [f1, f2, f3, f4, f5, f6, f7] # F = [ f1, f2, f3, f4, f5, f6 ]; # print "F = ", [ str(f) for f in F ]; I = r.ideal("", list=F) print "Ideal: " + str(I) print # sys.exit(); rg = I.GB() print "seq Output:", rg print terminate() sys.exit() ps = """ ( ( 45 P + 35 S - 165 B - 36 ),