1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551 |
- Codemist Standard Lisp 3.54 for DEC Alpha: May 23 1994
- Dump file created: Mon May 23 10:39:11 1994
- REDUCE 3.5, 15-Oct-93 ...
- Memory allocation: 6023424 bytes
- +++ About to read file tstlib.red
- CALI 2.1. Last update 22/10/93
- % Author H.-G. Graebe | Univ. Leipzig | Version 20.10.93
- % graebe@informatik.uni-leipzig.d400.de
- COMMENT
- This is an example session demonstrating and testing the facilities
- offered by the commutative algebra package CALI.
- END COMMENT;
- algebraic;
- on echo;
- % Example 1 : Generating ideals of affine and projective points.
- vars:={t,x,y,z};
- vars := {t,x,y,z}
- setring(vars,degreeorder vars,revlex);
- {{t,x,y,z},{{1,1,1,1}},revlex,{1,1,1,1}}
- mm:=mat((1,1,1,1),(1,2,3,4),(2,1,4,3));
- [1 1 1 1]
- [ ]
- mm := [1 2 3 4]
- [ ]
- [2 1 4 3]
- % The ideal with zero set at the point in A^4 with coordinates
- % equal to the row vectors of mm :
- setideal(m1,affine_points mm);
- 2
- {x - 3*x + 2,
- 2
- t - 3*t + 2,
- t*x - x - t + 1,
- z - 3*x - 2*t + 4,
- y - 2*x - 3*t + 4}
- % All parameters are as they should be :
- gbasis m1$
- dim m1;
- 0
- degree m1;
- 3
- groebfactor m1;
- {{z - 1,y - 1,x - 1,t - 1},
- {z - 3,y - 4,x - 1,t - 2},
- {z - 4,y - 3,x - 2,t - 1}}
- resolve m1$
- bettinumbers m1;
- {1,5,9,7,2}
- % The ideal with zero set at the point in P^3 with homogeneous
- % coordinates equal to the row vectors of mm :
- setideal(m2,proj_points mm);
- 2 2
- {2*y - 7*t*y - 2*t*x + 7*t ,
- 2
- 4*x*y - 5*t*y - 10*t*x + 11*t ,
- 2 2
- 8*x - 3*t*y - 18*t*x + 13*t ,
- z - y - x + t}
- % All parameters as they should be ?
- gbasis m2$
- dim m2;
- 1
- degree m2;
- 3
- groebfactor m2;
- 2 2
- {{7*t - 2*t*x - 7*t*y + 2*y ,
- 2
- 11*t - 10*t*x - 5*t*y + 4*x*y,
- 2 2
- 13*t - 18*t*x - 3*t*y + 8*x ,
- t - x - y + z}}
- % It seems to be prime ?
- isprime m2;
- no
- % Not, of course, but it is known to be unmixed. Hence we can use
- easyprimarydecomposition m2;
- {{{ - 3*t + 2*z, - 2*t + y, - t + 2*x},
- { - 3*t + 2*z, - 2*t + y, - t + 2*x}},
- {{ - t + z, - t + y, - t + x},
- { - t + z, - t + y, - t + x}},
- {{ - 4*t + z, - 3*t + y, - 2*t + x},
- { - 4*t + z, - 3*t + y, - 2*t + x}}}
-
- % Example 2 :
- % An affine monomial curve with generic point (t^7,t^9,t^10).
- setideal(m,affine_monomial_curve({7,9,10},{x,y,z}));
- 3 3
- { - z + x *y,
- 2 4
- - y *z + x ,
- 3 2
- y - x*z }
- % The base ring was changed as side effect :
- getring();
- {{x,y,z},{{7,9,10}},revlex,{7,9,10}}
-
- vars:=first getring m;
- vars := {x,y,z}
- % Some advanced commutative algebra .
- % The analytic spread of m.
- analytic_spread m;
- 3
- % The Rees ring Rees_R(vars) over R=S/m.
-
- blowup(m,vars,{u,v,w});
- 2 3
- {u *v*x - w ,
- 3 2
- u *x - v *w,
- 2 2
- u*v*x - w *z,
- 2 2
- u *x - v*w*y,
- 3 2
- v*x - w*z ,
- 3 2
- u*x - w*y ,
- 3 3
- x *y - z ,
- 4 2
- x - y *z,
- 2 3
- - u*w + v ,
- 2 2
- v *y - w *x,
- 2
- v*y - w*x*z,
- 2 3
- - x*z + y ,
- v*z - w*y,
- u*z - w*x,
- u*y - v*x}
-
- % gr_R(vars), the associated graded ring of the irrelevant ideal
- % over R. The short way.
- interreduce sub(x=0,y=0,z=0,ws);
- 3 2 2 3
- {w ,v *w, - u*w + v }
-
- % The long (and more general) way. Gives the result in another
- % embedding.
-
- % Reste the base ring, since it was changed by blowup as a side
- % effect.
- setring getring m$
- assgrad(m,vars,{u,v,w});
- 3
- {w ,
- 2
- v *w,
- z,
- y,
- x,
- 2 3
- - u*w + v }
-
- % Comparing the Rees algebra and the symmetric algebra of M :
-
- setring getring m$
- setideal(rees,blowup({},m,{a,b,c}));
- 2 2 3
- { - y *a + z *b + x *c,
- - x*a + y*b + z*c,
- 2 4 3 3
- y *z*a - x *a - z *b + x *y*b}
- setring getring m$
- setideal(sym,sym(m,{a,b,c}));
- 2 2 3
- {y *a - z *b - x *c,
- x*a - y*b - z*c}
- gbasis rees$
- gbasis sym$
- modequalp(rees,sym);
- yes
- % Symbolic powers :
- setring getring m$
- setideal(m2,idealpower(m,2));
- 6 3 3 6 2
- {z - 2*x *y*z + x *y ,
- 4 2 4 2 8
- y *z - 2*x *y *z + x ,
- 6 3 2 2 4
- y - 2*x*y *z + x *z ,
- 2 4 3 3 4 3 7
- y *z - x *y *z - x *z + x *y,
- 3 3 5 3 4 4 2
- y *z - x*z - x *y + x *y*z ,
- 5 2 3 4 3 5 2
- y *z - x*y *z - x *y + x *z }
- % Let's compute a second symbolic power :
- setideal(m3,symbolic_power(m,2));
- 6 3 3 6 2
- {z - 2*x *y*z + x *y ,
- 4 2 4 2 8
- y *z - 2*x *y *z + x ,
- 6 3 2 2 4
- y - 2*x*y *z + x *z ,
- 5 2 5 3 2 2 7
- y*z + x *y - 3*x *y *z + x *z,
- 2 4 3 3 4 3 7
- y *z - x *y *z - x *z + x *y,
- 3 3 5 3 4 4 2
- y *z - x*z - x *y + x *y*z ,
- 5 2 3 4 3 5 2
- y *z - x*y *z - x *y + x *z }
- % It is different from the ordinary second power.
- % Hence m2 has a trivial component.
- gbasis m2$
- gbasis m3$
- modequalp(m2,m3);
- no
- % Here is the primary decomposition :
- pd:=primarydecomposition m2;
- 6 2 3 3 6
- pd := {{{x *y - 2*x *y*z + z ,
- 8 4 2 4 2
- x - 2*x *y *z + y *z ,
- 2 4 3 2 6
- x *z - 2*x*y *z + y ,
- 7 3 2 2 2 5 5
- x *z - 3*x *y *z + x *y + y*z ,
- 7 4 3 3 3 2 4
- x *y - x *z - x *y *z + y *z ,
- 4 2 3 4 5 3 3
- x *y*z - x *y - x*z + y *z ,
- 5 2 4 3 2 3 5
- x *z - x *y - x*y *z + y *z},
- 3 3
- { - x *y + z ,
- 4 2
- - x + y *z,
- 2 3
- - x*z + y }},
- 6
- {{z ,
- 2 4
- y *z ,
- 3 3
- y *z ,
- 4 2
- y *z ,
- 5
- y *z,
- 6
- y ,
- x},
- {z,y,x}}}
- % Compare the result with m2 :
- setideal(m4,matintersect(first first pd, first second pd));
- 6 3 3 6 2
- {z - 2*x *y*z + x *y ,
- 4 2 4 2 8
- y *z - 2*x *y *z + x ,
- 6 3 2 2 4
- y - 2*x*y *z + x *z ,
- 5 3 5 4 2 2 8
- x*y*z + x *y - 3*x *y *z + x *z,
- 2 4 3 3 4 3 7
- y *z - x *y *z - x *z + x *y,
- 3 3 5 3 4 4 2
- y *z - x*z - x *y + x *y*z ,
- 5 2 3 4 3 5 2
- y *z - x*y *z - x *y + x *z }
- gbasis m4$
- modequalp(m2,m4);
- yes
- % Compare the result with m3 :
- setideal(m4,first first pd)$
- gbasis m4$
- modequalp(m3,m4);
- yes
- % The trivial component can also be removed with a
- % stable quotient computation :
- setideal(m5,matstabquot(m2,vars))$
- gbasis m5$
- modequalp(m3,m5);
- yes
- % Example 3 : The Macaulay curve.
- setideal(m,proj_monomial_curve({0,1,3,4},{w,x,y,z}));
- 3 2
- {y - x*z ,
- 2 2
- x *z - w*y ,
- 3 2
- x - w *y,
- x*y - w*z}
- vars:=first getring();
- vars := {w,x,y,z}
- gbasis m;
- 3 2
- {y - x*z ,
- 2 2
- x *z - w*y ,
- 3 2
- x - w *y,
- x*y - w*z}
-
- % Test whether m is prime :
- isprime m;
- yes
- % A resolution of m :
-
- resolve m;
- {
- [ 3 2 ]
- [ y - x*z ]
- [ ]
- [ 2 2]
- [x *z - w*y ]
- [ ]
- [ 3 2 ]
- [ x - w *y ]
- [ ]
- [ x*y - w*z ]
- ,
- [ 2 ]
- [x z 0 - y ]
- [ ]
- [w y 0 - x*z]
- [ ]
- [0 x - z w*y ]
- [ ]
- [ 2 ]
- [0 w - y x ]
- ,
- [w - x y - z]
- ,
- [0]
- }
- % m has depth = 1 as can be seen from the
-
- gradedbettinumbers m;
- {{0},{2,3,3,3},{4,4,4,4},{5}}
-
- % Another way to see the non perfectness of m :
-
- hilbseries m;
- 3 2
- - w + 2*w + 2*w + 1
- ------------------------
- 2
- w - 2*w + 1
-
- % Just a third approach. Divide out a parameter system :
- ps:=for i:=1:2 collect random_linear_form(vars,1000);
- ps := {274*w + 842*x - 589*y - 453*z,2*(105*w + 27*x + 33*y + 170*z)}
- setideal(m1,matsum(m,ps))$
- gbasis m1$
-
- % dim should be zero and degree > degree m = 4.
- dim m1;
- 0
-
- degree m1;
- 5
-
- % The projections of m on the coord. hyperplanes.
-
- for each x in vars collect eliminate(m,{x});
- 2 3
- {{ - x*z + y },
- 3 4
- { - w*z + y },
- 3 4
- { - w *z + x },
- 2 3
- { - w *y + x }}
-
- % Example 4 : Two submodules of S^4.
-
- % Get the stored result of the earlier computation.
- r:=resolve m$
- % See whether cali!=degrees contains a relict from earlier
- % computations.
-
- getdegrees();
- {}
- % Introduce the 2nd and 3rd syzygy module as new modules.
- % Both are submodules in S^4.
- setmodule(m1,second r)$
- setmodule(m2,third r)$
-
- gbasis m1;
- [ 2 ]
- [ - x - z 0 y ]
- [ ]
- [ - w - y 0 x*z]
- [ ]
- [ 0 x - z w*y]
- [ ]
- [ 2 ]
- [ 0 w - y x ]
- [ ]
- [ w*x x*y + w*z - y*z 0 ]
- [ ]
- [ 3 2 2 2 ]
- [ 0 x - w *y - x *z + w*y 0 ]
- [ ]
- [ 2 2 2 2 ]
- [ w *y x *z + w*y - x*z 0 ]
- [ ]
- [ 3 2 2 3 ]
- [ x x *z + w*y - y 0 ]
- [ ]
- [ 2 2 3 2 ]
- [x *z - w*y - y + x*z 0 0 ]
-
-
- % The second is already a gbasis.
- setgbasis m2;
- [w - x y - z]
-
- getleadterms m1;
- [ 2 ]
- [ 0 0 0 y ]
- [ ]
- [ 0 0 0 x*z]
- [ ]
- [ 0 0 0 w*y]
- [ ]
- [ 2 ]
- [ 0 0 0 x ]
- [ ]
- [w*x 0 0 0 ]
- [ ]
- [ 3 ]
- [ 0 x 0 0 ]
- [ ]
- [ 2 ]
- [w *y 0 0 0 ]
- [ ]
- [ 3 ]
- [ x 0 0 0 ]
- [ ]
- [ 2 ]
- [x *z 0 0 0 ]
- getleadterms m2;
- [w 0 0 0]
- % Since rk(F/M)=rk(F/in(M)), they have ranks 1 resp. 3.
- dim m1;
- 4
- indepvarsets m1;
- {{w,x,y,z}}
- % Its intersection is zero :
- matintersect(m1,m2);
- [0 0 0 0]
- % Its sum :
-
- setmodule(m3,matsum(m1,m2));
- [ 2 ]
- [ - x - z 0 y ]
- [ ]
- [ 2 ]
- [ 0 w - y x ]
- [ ]
- [ 0 x - z w*y ]
- [ ]
- [ w - x y - z ]
- [ ]
- [ 0 - y - x y x*z - z]
- gbasis m3;
- 2
- mat(( - x, - z,0,y ),
- 2
- (0,w, - y,x ),
- (0,x, - z,w*y),
- (w, - x,y, - z),
- 3 2 2 2
- (0,x - w *y, - x *z + w*y ,0),
- (0, - y - x,y,x*z - z),
- 3 3 3 2 2 2 2 2
- (0,0,x *z - x *y - w*y + w*x*z - w*x*y + w *y + x*y*z - w*z ,
- 0),
- 2
- (0,x*y + x + w*z + y + x, - y*z - x*y - y,z),
- 2 2 2 2
- (0,x *z + w*y - w*x - w *z - x*z - w*y - w*x,
- 2 2 2
- - x*z + w*y*z - w*y + w*x*y + z + w*y, - w*z),
- 3 2 2
- (x ,w*x + w *z + x*z + w*y + w*x,
- 3 2 2 2
- - y + x*z - w*y*z + w*y - w*x*y - z - w*y,w*z),
- 2
- (x *z - x*z,
- 3 2 2 2 2 2
- - y + x*z + w*y*z - w*x*z - w *y - z + y - x - y - x,
- 2 3 2 2 2 2 2
- - y *z + y + x*y*z - x*y - x *z + x *y + w*y - y + x*y + y,
- y*z - z),
- 3 2 2 2 3 2 2
- (0,w*y - w*x*z - 2*w *y*z + w *x*z + w *y + 2*w*z - 2*w*y
- 2 2 2 2 2
- + 2*w*x + w *z + y*z + 3*x*z + 2*w*y + 2*w*x, - x *z + x *y*z
- 2 3 2 2 2 2 2
- + 2*w*y *z - w*y - w*x*y*z + w*x*y + w*x *z - w*x *y - w *y
- 2 2 2 2
- - y*z + x*z - x*y*z - w*y*z + 2*w*y - 2*w*x*y - 2*z - y*z
- 2
- - 2*w*y,z + 2*w*z))
- dim m3;
- 3
- % Hence it has a nontrivial annihilator :
- annihilator m3;
- 2 2 2 2 3 2 3 3
- {w *y - w*x*y + w*x*z - w*y - w*z - x *y + x *z + x*y*z}
-
- % To get a meaningful Hilbert series make m1 homogeneous :
-
- setdegrees {1,x,x,x};
- {1,x,x,x}
-
-
- % Reevaluate m1 with the new column degrees.
- setmodule(m1,m1)$
- gbasis m1;
- [ 2 ]
- [ - x - z 0 y ]
- [ ]
- [ - w - y 0 x*z]
- [ ]
- [ 0 x - z w*y]
- [ ]
- [ 2 ]
- [ 0 w - y x ]
- [ ]
- [ w*x x*y + w*z - y*z 0 ]
- [ ]
- [ 3 2 2 2 ]
- [ 0 x - w *y - x *z + w*y 0 ]
- [ ]
- [ 2 2 2 2 ]
- [ w *y x *z + w*y - x*z 0 ]
- [ ]
- [ 3 2 3 2 ]
- [ - x + w *y 0 y - x*z 0 ]
- [ ]
- [ 2 2 3 2 ]
- [ - x *z + w*y y - x*z 0 0 ]
- hilbseries m1;
- 7 6 5 4 3
- w - 5*w + 8*w - 2*w - 5*w + 3*w + 1
- ------------------------------------------
- 4 3 2
- w - 4*w + 6*w - 4*w + 1
- % Example 5 : From the MACAULAY manual (D.Bayer, M.Stillman).
- % An elliptic curve on the Veronese in P^5.
- rvars:={x,y,z}$
- svars:={a,b,c,d,e,f}$
- r:=setring(rvars,degreeorder rvars,revlex)$
- s:=setring(svars,{for each x in svars collect 2},revlex)$
- map:={s,r,{a=x^2,b=x*y,c=x*z,d=y^2,e=y*z,f=z^2}};
- map := {{{a,
- b,
- c,
- d,
- e,
- f},
- {{2,2,2,2,2,2}},
- revlex,
- {1,1,1,1,1,1}},
- {{x,y,z},
- {{1,1,1}},
- revlex,
- {1,1,1}},
- 2
- {a=x ,
- b=x*y,
- c=x*z,
- 2
- d=y ,
- e=y*z,
- 2
- f=z }}
- preimage({y^2z-x^3-x*z^2},map);
- { - b*f + c*e,
- 2
- - a*f + c ,
- - a*e + b*c,
- 2
- - a*d + b ,
- 2
- - a*c - c*f + e ,
- - a*c - c*f + d*f,
- - a*b - b*f + d*e,
- 2
- - a - a*f + c*d,
- 2
- - a - a*f + b*e}
- % Example 6 : The preimage under a rational map.
- r:=setring({x,y},{},lex)$
- s:=setring({t},{},lex)$
- map:={r,s,{x=2t/(t^2+1),y=(t^2-1)/(t^2+1)}};
- map := {{{x,y},{},lex,{1,1}},
- {{t},{},lex,{1}},
- 2
- 2*t t - 1
- {x=--------,y=--------}}
- 2 2
- t + 1 t + 1
-
- % The preimage of (0) is the equation of the circle :
- ratpreimage({},map);
- 2 2
- {x + y - 1}
- % The preimage of the point (t=3/2) :
- ratpreimage({2t-3},map);
- {13*y - 5,13*x - 12}
- % Example 7 : A zerodimensional ideal.
- setring({x,y,z},{},lex)$
- setideal(n,{x**2 + y + z - 3,x + y**2 + z - 3,x + y + z**2 - 3});
- 2 2 2
- {x + y + z - 3,x + y + z - 3,x + y + z - 3}
- % The groebner algorithm with factorization :
- groebfactor n;
- 2
- {{x + z - 1,y + z - 1,z - 2*z - 1},
- 2
- {x - z,z - 2,y + z - 1},
- 2
- {y - z,z - 2,x + z - 1},
- {x + 3,y + 3,z + 3},
- {x - 1,y - 1,z - 1}}
- % Change the term order and reevaluate n :
- setring({x,y,z},{{1,1,1}},revlex)$
- setideal(n,n);
- 2 2 2
- {x + z + y - 3,y + z + x - 3,z + y + x - 3}
- gbasis n;
- 2 2 2
- {z + y + x - 3,y + z + x - 3,x + z + y - 3}
- % its primes :
-
- zeroprimes n;
- 2
- {{x - 2, - x + y,x + z - 1},
- 2
- {x - 2, - x + z,x + y - 1},
- 2
- {x - 2*x - 1,x + z - 1,x + y - 1},
- {z + 3,y + 3,x + 3},
- {z - 1,y - 1,x - 1}}
- % a vector space basis of S/n :
- getkbase n;
- {1,x,x*y,x*y*z,x*z,y,y*z,z}
- % Example 8 : A modular computation.
- on modular$
- setmod 181;
- 1
- setideal(n1,n);
- 2 2 2
- {x + z + y + 178,y + z + x + 178,z + y + x + 178}
- zeroprimes n1;
- 2
- {{x + 179,180*(x + 180*y),x + z + 180},
- 2
- {x + 179,180*(x + 180*z),x + y + 180},
- 2
- {x + 179*x + 180,x + z + 180,x + y + 180},
- {z + 180,y + 180,x + 180},
- {z + 3,y + 3,x + 3}}
- setmod 7;
- 181
- setideal(n1,n);
- 2 2 2
- {x + z + y + 4,y + z + x + 4,z + y + x + 4}
- zeroprimes n1;
- {{z + 6,y + 6,x + 6},
- {z + 4,y + 4,x + 2},
- {z + 4,y + 2,x + 4},
- {z + 2,y + 4,x + 4},
- {z + 3,y + 3,x + 3}}
-
- % Hence some of the primes glue together mod 7.
- zeroprimarydecomposition n1;
- {{{z + 6,y + 6,x + 6},
- {z + 6,y + 6,x + 6}},
- {{z + 4,y + 4,x + 2},
- {z + 4,y + 4,x + 2}},
- {{z + 4,y + 2,x + 4},
- {z + 4,y + 2,x + 4}},
- {{z + 2,y + 4,x + 4},
- {z + 2,y + 4,x + 4}},
- 2
- {{x + y + z + 4,
- 2
- x + y + z + 4,
- 2
- x + y + z + 4,
- 3*(x + 5*y*z + 2*y + 2*z + 5),
- x*z + 6*x + 3*y + 6*z + 1,
- x*y + 6*x + 6*y + 3*z + 1},
- {z + 3,y + 3,x + 3}}}
- off modular$
- % Example 9 : Independent sets once more.
-
- n:=10$
- vars:=for i:=1:(2*n) collect mkid(x,i)$
- setring(vars,{},lex)$
- setideal(m,for j:=0:n collect
- for i:=(j+1):(j+n) product mkid(x,i));
- {x1*x2*x3*x4*x5*x6*x7*x8*x9*x10,
- x2*x3*x4*x5*x6*x7*x8*x9*x10*x11,
- x3*x4*x5*x6*x7*x8*x9*x10*x11*x12,
- x4*x5*x6*x7*x8*x9*x10*x11*x12*x13,
- x5*x6*x7*x8*x9*x10*x11*x12*x13*x14,
- x6*x7*x8*x9*x10*x11*x12*x13*x14*x15,
- x7*x8*x9*x10*x11*x12*x13*x14*x15*x16,
- x8*x9*x10*x11*x12*x13*x14*x15*x16*x17,
- x9*x10*x11*x12*x13*x14*x15*x16*x17*x18,
- x10*x11*x12*x13*x14*x15*x16*x17*x18*x19,
- x11*x12*x13*x14*x15*x16*x17*x18*x19*x20}
- setgbasis m$
- indepvarsets m;
- {{x2,x3,x4,x5,x6,x7,x8,x9,x10,x12,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x3,x4,x5,x6,x7,x8,x9,x10,x12,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x4,x5,x6,x7,x8,x9,x10,x12,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x5,x6,x7,x8,x9,x10,x12,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x6,x7,x8,x9,x10,x12,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x7,x8,x9,x10,x12,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x8,x9,x10,x12,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x9,x10,x12,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x10,x12,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x9,x12,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x3,x4,x5,x6,x7,x8,x9,x10,x11,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x4,x5,x6,x7,x8,x9,x10,x11,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x5,x6,x7,x8,x9,x10,x11,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x6,x7,x8,x9,x10,x11,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x7,x8,x9,x10,x11,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x8,x9,x10,x11,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x9,x10,x11,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x10,x11,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x9,x11,x13,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x4,x5,x6,x7,x8,x9,x10,x11,x12,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x5,x6,x7,x8,x9,x10,x11,x12,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x6,x7,x8,x9,x10,x11,x12,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x7,x8,x9,x10,x11,x12,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x8,x9,x10,x11,x12,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x9,x10,x11,x12,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x10,x11,x12,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x9,x11,x12,x14,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x5,x6,x7,x8,x9,x10,x11,x12,x13,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x6,x7,x8,x9,x10,x11,x12,x13,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x7,x8,x9,x10,x11,x12,x13,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x8,x9,x10,x11,x12,x13,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x9,x10,x11,x12,x13,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x10,x11,x12,x13,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x9,x11,x12,x13,x15,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x6,x7,x8,x9,x10,x11,x12,x13,x14,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x7,x8,x9,x10,x11,x12,x13,x14,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x8,x9,x10,x11,x12,x13,x14,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x9,x10,x11,x12,x13,x14,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x10,x11,x12,x13,x14,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x9,x11,x12,x13,x14,x16,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x7,x8,x9,x10,x11,x12,x13,x14,x15,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x8,x9,x10,x11,x12,x13,x14,x15,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x9,x10,x11,x12,x13,x14,x15,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x10,x11,x12,x13,x14,x15,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x9,x11,x12,x13,x14,x15,x17,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x8,x9,x10,x11,x12,x13,x14,x15,x16,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x9,x10,x11,x12,x13,x14,x15,x16,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x10,x11,x12,x13,x14,x15,x16,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x9,x11,x12,x13,x14,x15,x16,x18,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x9,x10,x11,x12,x13,x14,x15,x16,x17,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x10,x11,x12,x13,x14,x15,x16,x17,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x9,x11,x12,x13,x14,x15,x16,x17,x19,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x10,x11,x12,x13,x14,x15,x16,x17,x18,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x9,x11,x12,x13,x14,x15,x16,x17,x18,x20},
- {x1,x2,x3,x4,x5,x6,x7,x8,x9,x11,x12,x13,x14,x15,x16,x17,x18,x19}}
- dim m;
- 18
- degree m;
- 55
- % Example 10 : An example from [ Alonso, Mora, Raimondo ]
- vars := {z,x,y}$
- r:=setring(vars,{},lex)$
- setideal(m,{x^3+(x^2-y^2)*z+z^4,y^3+(x^2-y^2)*z-z^4});
- 4 2 2 3
- {z + z*x - z*y + x ,
- 4 2 2 3
- - z + z*x - z*y + y }
- gbasis m$
- dim m;
- 1
- degree m;
- 12
- % 2 = codim m is the codimension of the curve m. The defining
- % equations of the singular locus with their nilpotent structure.
- singular_locus(m,2);
- 4 3 3
- {2*z + x - y ,
- 3 2 3 2 2 4
- 12*z *y + 8*x *y + 3*x *y - 11*y ,
- 2 2 3 3
- 2*z*x - 2*z*y + x + y ,
- 2 3 3 2 2 4
- 2*z*x*y - 2*z*y + x *y + 3*x *y + y ,
- 2 3 4 5 4 4 3 2 3
- 24*z *y - 42*z*y + 3*x + 3*x *y + 22*x + 18*x *y + 16*x *y
- 2 3 4 3 5 4
- + 21*x *y + 3*x*y - 16*x*y + 18*y - 22*y }
-
- groebfactor ws;
- {{z,x,y},
- {27*z - 64,81*x + 256,81*y - 256}}
-
- % Hence this curve has two singular points :
- % (x=y=z=0) and (y=-x=256/81,z=64/27)
- % Let's find the brances of the curve through the origin.
- % The first critical tropism is (-1,-1,-1).
- off noetherian$
- setring(vars,{{-1,-1,-1}},lex)$
- setideal(m,m);
- 2 2 3 4
- {z*x - z*y + x + z ,
- 2 2 3 4
- z*x - z*y + y - z }
- % Let's test Lazard's approach.
- off lazy$
- gbasis m;
- 3 3 4
- {x - y + 2*z ,
- 2 2 3 4
- z*x - z*y + y - z ,
- 2 3 3 5 4
- z*x*y - z*y - x*y + 2*z + z *x,
- 2 3 4 5 5 5 4 2 4 4 2
- x *y + x*y + y - 2*z *x - 2*z *y - z *x - z *x*y - z *y ,
- 5 5 6 6 6 5 5 2
- 6*z*y + 2*x*y - 2*y - 4*z *x - 4*z *y - 2*z *x*y - 8*z *y
- 4 3 4 2 4 3
- + z *x - 2*z *x*y + 3*z *y }
- dim m;
- 1
- degree m;
- 9
- % Find the tangent directions not in z-direction :
- tangentcone m;
- 3 3
- {x - y ,
- 2 2 3
- z*x - z*y + y ,
- 2 3 3
- z*x*y - z*y - x*y ,
- 2 3 4 5
- x *y + x*y + y ,
- 5 5 6
- 6*z*y + 2*x*y - 2*y }
-
- setideal(n,sub(z=1,ws));
- 3 3
- {x - y ,
- 2 2 3
- x - y + y ,
- 2 3 3
- x*y - y - x*y ,
- 2 3 4 5
- x *y + x*y + y ,
- 5 5 6
- 6*y + 2*x*y - 2*y }
- setring r$
- on noetherian$
- setideal(n,n)$
- gbasis n;
- 7 6 5
- {y - 3*y + 3*y ,
- 2 3 2
- x + y - y ,
- 2 6 5 4 3
- x*y - y + 2*y - y - y }
- degree n;
- 9
- % The points of n outside the origin.
- matstabquot(n,{x,y});
- 2
- {x - y + 3,y - 3*y + 3}
-
- % Hence there are two branches x=z'*(a-3+x'),y=z'*(a+y'),z=z'
- % with the algebraic number a : a^2-3a+3=0
- % and the new equations for (z',x',y') :
- setrules {a^2=>3a-3};
- 2
- {a => 3*a - 3}
- sub(x=z*(a-3+x),y=z*(a+y),m);
- 3 3 2 2 2 3 2
- {z *(a + 3*a *x - 9*a + 3*a*x - 16*a*x - 2*a*y + 21*a + x - 8*x
- 2
- + 21*x - y + z - 18),
- 3 3 2 2 2 3 2
- z *(a + 3*a *y + 2*a*x + 3*a*y - 2*a*y - 6*a + x - 6*x + y - y
- - z + 9)}
- setideal(m1,matqquot(ws,z));
- 3 2 3 2
- {x + (3*a - 7)*x - (5*a - 6)*x + y + (3*a - 2)*y + (5*a - 9)*y,
- 2 3 2
- z - x - (2*a - 6)*x - y - (3*a - 1)*y - (7*a - 9)*y}
- % This defines a loc. smooth system at the origin, since the
- % jacobian at the origin of the gbasis is nonsingular :
- off noetherian$
- % Test Mora's approach.
- on lazy$
- setring getring m;
- {{z,x,y},{{-1,-1,-1}},lex,{1,1,1}}
- setideal(m1,m1);
- 2 2 3 3
- { - (5*a - 6)*x + (5*a - 9)*y + (3*a - 7)*x + (3*a - 2)*y + x + y
- ,
- 2 2 3
- z - (2*a - 6)*x - (7*a - 9)*y - x - (3*a - 1)*y - y }
- gbasis m1;
- 2 2 3
- {z - (2*a - 6)*x - (7*a - 9)*y - x - (3*a - 1)*y - y ,
- 2 2 3 3
- - (5*a - 6)*x + (5*a - 9)*y + (3*a - 7)*x + (3*a - 2)*y + x + y
- }
- % clear the rules previously set.
- setrules {};
- {}
-
- % Example 11 : The standard basis of another example.
- % Comparing Mora's and Lazard's approaches.
- vars:={x,y}$
- setring(vars,localorder vars,lex);
- {{x,y},{{-1,-1}},lex,{1,1}}
- ff:=x^5+y^11+(x+x^3)*y^9;
- 5 3 9 9 11
- ff := x + x *y + x*y + y
- setideal(p,flatten matjac({ff},vars));
- 4 9 2 9
- {5*x + y + 3*x *y ,
- 8 10 3 8
- 9*x*y + 11*y + 9*x *y }
- % Mora's approach : Only top reduction allowed.
-
- gbasis p;
- 8 10 3 8
- {9*x*y + 11*y + 9*x *y ,
- 4 9 2 9
- 5*x + y + 3*x *y ,
- 16 7 10 3 14 17 10 8
- 73205*y - 120285*x *y + 239580*x *y + 6561*y - 32805*x *y
- 6 12 2 17
- + 147015*x *y + 19683*x *y }
- % Lazard's approach : Total normal forms of homogenized polynomials
- % allowed. Hence the computation produces other normal forms.
- off lazy;
- setideal(p,p)$
- gbasis p;
- 4 9 2 9
- {5*x + y + 3*x *y ,
- 8 10 3 8
- 9*x*y + 11*y + 9*x *y ,
- 16 17 10 8 6 12 2 16
- 73205*y + 6561*y - 32805*x *y + 294030*x *y - 292820*x *y
- 9 10 5 14 2 17
- + 120285*x *y - 239580*x *y + 19683*x *y }
- dim p;
- 0
- degree p;
- 40
- % Example 12 : A local intersection.
- setring({x,y,z},{},revlex);
- {{x,y,z},{},revlex,{1,1,1}}
- on lazy;
- m1:=matintersect({x-y^2,y-x^2},{x-z^2,z-x^2},{y-z^2,z-y^2});
- 2 2 3 3 2 2
- m1 := {y*z - y *z - x *y*z + x *y *z ,
- 2 4 4 2
- x*z - x*y - x *z + x *y ,
- 2 4 4 2
- x*y - x*y *z - x *y + x *y *z}
-
- % Delete polynomial units post factum :
-
- deleteunits ws;
- 2
- {y*z,x*(y - z),x*y}
- interreduce ws;
- {x*y,x*z,y*z}
- % Detecting polynomial units early :
- on detectunits;
- m1:=matintersect({x-y^2,y-x^2},{x-z^2,z-x^2},{y-z^2,z-y^2});
- m1 := {x*y,x*z,y*z}
- off detectunits;
- % Return to a noetherian term order:
-
- vars:={x,y,z}$
- setring(vars,degreeorder vars,revlex);
- {{x,y,z},{{1,1,1}},revlex,{1,1,1}}
- on noetherian;
- % Example 13 : Use of "mod".
- % Polynomials modulo ideals :
- setideal(m,{2x^2+y+5,3y^2+z+7,7z^2+x+1});
- 2 2 2
- {2*x + y + 5,3*y + z + 7,7*z + x + 1}
- x^2*y^2*z^2 mod m;
- - x*y*z - 7*x*y - 5*x*z - 35*x - y*z - 7*y - 5*z - 35
- --------------------------------------------------------
- 42
- % Lists of polynomials modulo ideals :
- {x^3,y^3,z^3} mod gbasis m;
- x*( - y - 5) y*( - z - 7) - z*(x + 1)
- {--------------,--------------,--------------}
- 2 3 7
- % Matrices modulo modules :
- mm:=mat((x^4,y^4,z^4));
- [ 4 4 4]
- mm := [x y z ]
- mm1:=tp<< ideal2mat m>>;
- [ 2 2 2 ]
- mm1 := [2*x + y + 5 3*y + z + 7 x + 7*z + 1]
- mm mod mm1;
- 2
- y + 10*y + 25 2 2 2 2 4 3
- mat((----------------,( - 6*x *y - 2*x *z - 14*x + 4*y + 3*y
- 4
- 2 3 2 2 2
- + 15*y + y*z + 7*y + 5*z + 35)/4,( - 2*x - 14*x *z - 2*x
- 2 4 2
- + x*y + 5*x + 7*y*z + y + 4*z + 35*z + 5)/4))
- % Example 14 : Powersums through elementary symmetric functions.
- vars:={a,b,c,d,e1,e2,e3,e4}$
- setring(vars,{},lex)$
- m:=interreduce {a+b+c+d-e1,
- a*b+a*c+a*d+b*c+b*d+c*d-e2,
- a*b*c+a*b*d+a*c*d+b*c*d-e3,
- a*b*c*d-e4};
- m := {a + b + c + d - e1,
- 4 3 2
- d - d *e1 + d *e2 - d*e3 + e4,
- 2 2 2
- b + b*c + b*d - b*e1 + c + c*d - c*e1 + d - d*e1 + e2,
- 3 2 2 2 3 2
- c + c *d - c *e1 + c*d - c*d*e1 + c*e2 + d - d *e1 + d*e2
- - e3}
-
- for n:=1:5 collect a^n+b^n+c^n+d^n mod m;
- {e1,
- 2
- e1 - 2*e2,
- 3
- e1 - 3*e1*e2 + 3*e3,
- 4 2 2
- e1 - 4*e1 *e2 + 4*e1*e3 + 2*e2 - 4*e4,
- 5 3 2 2
- e1 - 5*e1 *e2 + 5*e1 *e3 + 5*e1*e2 - 5*e1*e4 - 5*e2*e3}
-
- % Example 15 : The setrules mechanism.
- setring({x,y,z},{},lex)$
- setrules {aa^3=>aa+1};
- 3
- {aa => aa + 1}
- setideal(m,{x^2+y+z-aa,x+y^2+z-aa,x+y+z^2-aa});
- 2 2 2
- {x + y + z - aa,x + y + z - aa,x + y + z - aa}
- gbasis m;
- 2 2
- {y - y - z + z,
- 6 4 3 2 2
- z - (3*aa + 1)*z + 4*z + (3*aa - 2*aa - 2)*z - (4*aa - 4)*z
- 2
- + (3*aa - 3*aa - 1),
- 2
- x + y + z - aa,
- 2 4 2 2
- 2*y*z - (2*aa - 2)*y + z - (2*aa - 1)*z + (aa - aa)}
-
- % Clear the rules previously set.
- setrules {};
- {}
- % Example 16 : The same example with advanced coefficient domains.
- load arnum;
- defpoly aa^3-aa-1;
- setideal(m,{x^2+y+z-aa,x+y^2+z-aa,x+y+z^2-aa});
- 2 2 2
- {x + y + z - aa,x + y + z - aa,x + y + z - aa}
- gbasis m;
- 2 2
- {y - y - z + z,
- 6 4 3 2 2
- z - (3*aa + 1)*z + 4*z + (3*aa - 2*aa - 2)*z - (4*aa - 4)*z
- 2
- + (3*aa - 3*aa - 1),
- 2
- x + y + z - aa,
- 2 1 4 1 2 1 2 1
- y*z - (aa - 1)*y + ---*z - (aa - ---)*z + (---*aa - ---*aa)}
- 2 2 2 2
- % The following needs some more time since factorization of arnum's
- % is not so easy :
- groebfactor m;
- 2
- {{x + (aa - aa - 1),
- 2
- y - (aa - aa),
- 2
- z + (aa - aa - 1)},
- 2
- {x - (aa - aa - 1),
- 2
- y - (aa - aa - 1),
- 2
- z + (aa - aa - 2)},
- 2
- {x - (aa - aa - 1),
- 2
- y + (aa - aa - 2),
- 2
- z - (aa - aa - 1)},
- 2
- {x + (aa - aa - 1),
- 2
- y + (aa - aa - 1),
- 2
- z - (aa - aa)},
- 2
- {x - z,y - z,z + 2*z - aa},
- 2
- {x - (aa - aa),
- 2
- y + (aa - aa - 1),
- 2
- z + (aa - aa - 1)},
- 2
- {x + (aa - aa - 2),
- 2
- y - (aa - aa - 1),
- 2
- z - (aa - aa - 1)}}
- off arnum;
- off rational;
- % Example 17 : The square of the 2-minors of a symmetric 3x3-matrix.
- vars:=for i:=1:6 collect mkid(x,i);
- vars := {x1,
- x2,
- x3,
- x4,
- x5,
- x6}
- setring(vars,degreeorder vars,revlex);
- {{x1,x2,x3,x4,x5,x6},{{1,1,1,1,1,1}},revlex,{1,1,1,1,1,1}}
- % Generating the ideal :
- mm:=mat((x1,x2,x3),(x2,x4,x5),(x3,x5,x6));
- [x1 x2 x3]
- [ ]
- mm := [x2 x4 x5]
- [ ]
- [x3 x5 x6]
- m:=minors(mm,2);
- 2
- m := { - x4*x6 + x5 ,
- - x2*x6 + x3*x5,
- - x2*x5 + x3*x4,
- 2
- - x1*x6 + x3 ,
- - x1*x5 + x2*x3,
- 2
- - x1*x4 + x2 }
- setideal(n,idealpower(m,2));
- 4 2 2 2
- {x5 - 2*x4*x5 *x6 + x4 *x6 ,
- 2 2 2 2
- x3 *x5 - 2*x2*x3*x5*x6 + x2 *x6 ,
- 4 2 2 2
- x3 - 2*x1*x3 *x6 + x1 *x6 ,
- 2 2 2 2
- x2 *x3 - 2*x1*x2*x3*x5 + x1 *x5 ,
- 4 2 2 2
- x2 - 2*x1*x2 *x4 + x1 *x4 ,
- 3 2 2
- x3*x5 - x3*x4*x5*x6 - x2*x5 *x6 + x2*x4*x6 ,
- 2 2 3
- x3*x4*x5 - x3*x4 *x6 - x2*x5 + x2*x4*x5*x6,
- 3 2 2
- x3 *x5 - x2*x3 *x6 - x1*x3*x5*x6 + x1*x2*x6 ,
- 2 3
- x2*x3*x5 - x2*x3*x4*x6 - x1*x5 + x1*x4*x5*x6,
- 2 2 2
- x2*x3 *x5 - x2 *x3*x6 - x1*x3*x5 + x1*x2*x5*x6,
- 3 2 2
- x2*x3 - x1*x3 *x5 - x1*x2*x3*x6 + x1 *x5*x6,
- 2 2 2 2 2
- x2 *x5 - x2 *x4*x6 - x1*x4*x5 + x1*x4 *x6,
- 2 3
- x2 *x3*x5 - x2 *x6 - x1*x3*x4*x5 + x1*x2*x4*x6,
- 2 3 2
- x2 *x3*x4 - x2 *x5 - x1*x3*x4 + x1*x2*x4*x5,
- 3 2 2
- x2 *x3 - x1*x2*x3*x4 - x1*x2 *x5 + x1 *x4*x5,
- 2 2 2 2 2
- x3 *x4*x6 - 2*x2*x3*x5*x6 + x2 *x6 + x1*x5 *x6 - x1*x4*x6 ,
- 2 2 3
- x3 *x4*x5 - 2*x2*x3*x4*x6 + x2 *x5*x6 - x1*x5 + x1*x4*x5*x6,
- 2 2 2 2 2
- x3 *x4 - 2*x2*x3*x4*x5 + x2 *x4*x6 + x1*x4*x5 - x1*x4 *x6,
- 3 2 2
- x3 *x4 - x2 *x3*x6 - x1*x3*x5 - x1*x3*x4*x6 + 2*x1*x2*x5*x6,
- 2 3 2
- x2*x3 *x4 - x2 *x6 - 2*x1*x3*x4*x5 + x1*x2*x5 + x1*x2*x4*x6,
- 2 2 2 2 2
- x1*x3 *x4 - 2*x1*x2*x3*x5 + x1*x2 *x6 + x1 *x5 - x1 *x4*x6}
- % The ideal itself :
- gbasis n;
- 4 2 2 2
- {x5 - 2*x4*x5 *x6 + x4 *x6 ,
- 2 2 2 2
- x3 *x5 - 2*x2*x3*x5*x6 + x2 *x6 ,
- 4 2 2 2
- x3 - 2*x1*x3 *x6 + x1 *x6 ,
- 2 2 2 2
- x2 *x3 - 2*x1*x2*x3*x5 + x1 *x5 ,
- 4 2 2 2
- x2 - 2*x1*x2 *x4 + x1 *x4 ,
- 3 2 2
- x3*x5 - x3*x4*x5*x6 - x2*x5 *x6 + x2*x4*x6 ,
- 2 2 3
- x3*x4*x5 - x3*x4 *x6 - x2*x5 + x2*x4*x5*x6,
- 3 2 2
- x3 *x5 - x2*x3 *x6 - x1*x3*x5*x6 + x1*x2*x6 ,
- 2 3
- x2*x3*x5 - x2*x3*x4*x6 - x1*x5 + x1*x4*x5*x6,
- 2 2 2
- x2*x3 *x5 - x2 *x3*x6 - x1*x3*x5 + x1*x2*x5*x6,
- 3 2 2
- x2*x3 - x1*x3 *x5 - x1*x2*x3*x6 + x1 *x5*x6,
- 2 2 2 2 2
- x2 *x5 - x2 *x4*x6 - x1*x4*x5 + x1*x4 *x6,
- 2 3
- x2 *x3*x5 - x2 *x6 - x1*x3*x4*x5 + x1*x2*x4*x6,
- 2 3 2
- x2 *x3*x4 - x2 *x5 - x1*x3*x4 + x1*x2*x4*x5,
- 3 2 2
- x2 *x3 - x1*x2*x3*x4 - x1*x2 *x5 + x1 *x4*x5,
- 2 2 2 2 2
- x3 *x4*x6 - 2*x2*x3*x5*x6 + x2 *x6 + x1*x5 *x6 - x1*x4*x6 ,
- 2 2 3
- x3 *x4*x5 - 2*x2*x3*x4*x6 + x2 *x5*x6 - x1*x5 + x1*x4*x5*x6,
- 2 2 2 2 2
- x3 *x4 - 2*x2*x3*x4*x5 + x2 *x4*x6 + x1*x4*x5 - x1*x4 *x6,
- 3 2 2
- x3 *x4 - x2 *x3*x6 - x1*x3*x5 - x1*x3*x4*x6 + 2*x1*x2*x5*x6,
- 2 3 2
- x2*x3 *x4 - x2 *x6 - 2*x1*x3*x4*x5 + x1*x2*x5 + x1*x2*x4*x6,
- 2 2 2 2 2
- x1*x3 *x4 - 2*x1*x2*x3*x5 + x1*x2 *x6 + x1 *x5 - x1 *x4*x6}
- length n;
- 21
- dim n;
- 3
- degree n;
- 16
- % Its unmixed radical.
- unmixedradical n;
- 2
- { - x4*x6 + x5 ,
- - x2*x6 + x3*x5,
- 2
- - x1*x6 + x3 ,
- x2*x5 - x3*x4,
- - x1*x5 + x2*x3,
- 2
- - x1*x4 + x2 }
- % Its equidimensional hull. This needs some more time :
- n1:=eqhull n;
- 2 2 2 4
- n1 := {x4 *x6 - 2*x4*x5 *x6 + x5 ,
- 2 2 2 2
- x2 *x6 - 2*x2*x3*x5*x6 + x3 *x5 ,
- 2 2 2 4
- x1 *x6 - 2*x1*x3 *x6 + x3 ,
- 2 2 2 2
- x1 *x5 - 2*x1*x2*x3*x5 + x2 *x3 ,
- 2 2 2 4
- x1 *x4 - 2*x1*x2 *x4 + x2 ,
- 2 2 3
- x2*x4*x6 - x2*x5 *x6 - x3*x4*x5*x6 + x3*x5 ,
- 3 2 2
- x2*x4*x5*x6 - x2*x5 - x3*x4 *x6 + x3*x4*x5 ,
- 2 2 3
- x1*x2*x6 - x1*x3*x5*x6 - x2*x3 *x6 + x3 *x5,
- 3 2
- x1*x4*x5*x6 - x1*x5 - x2*x3*x4*x6 + x2*x3*x5 ,
- 2 2 2
- x1*x2*x5*x6 - x1*x3*x5 - x2 *x3*x6 + x2*x3 *x5,
- 2 2 3
- x1 *x5*x6 - x1*x2*x3*x6 - x1*x3 *x5 + x2*x3 ,
- 2 2 2 2 2
- x1*x4 *x6 - x1*x4*x5 - x2 *x4*x6 + x2 *x5 ,
- 3 2
- x1*x2*x4*x6 - x1*x3*x4*x5 - x2 *x6 + x2 *x3*x5,
- 2 3 2
- x1*x2*x4*x5 - x1*x3*x4 - x2 *x5 + x2 *x3*x4,
- 2 2 3
- x1 *x4*x5 - x1*x2 *x5 - x1*x2*x3*x4 + x2 *x3,
- 2 2 2
- - x1*x4*x6 + x1*x5 + x2 *x6 - 2*x2*x3*x5 + x3 *x4}
- length n1;
- 16
- setideal(n1,n1)$
- gbasis n1$
- submodulep(n,n1);
- yes
- submodulep(n1,n);
- no
- % Hence there is an embedded component. Let's find it making an
- % excursion to symbolic mode. Of course, this can be done also
- % algebraically.
- symbolic;
- nil
- n:=get('n,'basis);
- (dpmat 21 0 ((1 ((((0 0 0 0 0 4) 4) . 1) (((0 0 0 0 1 2 1) 4) . -2) (((0 0 0 0 2
- 0 2) 4) . 1)) 3 0 nil) (2 ((((0 0 0 2 0 2) 4) . 1) (((0 0 1 1 0 1 1) 4) . -2) ((
- (0 0 2 0 0 0 2) 4) . 1)) 3 0 nil) (3 ((((0 0 0 4) 4) . 1) (((0 1 0 2 0 0 1) 4) .
- -2) (((0 2 0 0 0 0 2) 4) . 1)) 3 0 nil) (4 ((((0 0 2 2) 4) . 1) (((0 1 1 1 0 1)
- 4) . -2) (((0 2 0 0 0 2) 4) . 1)) 3 0 nil) (5 ((((0 0 4) 4) . 1) (((0 1 2 0 1) 4
- ) . -2) (((0 2 0 0 2) 4) . 1)) 3 0 nil) (6 ((((0 0 0 1 0 3) 4) . 1) (((0 0 0 1 1
- 1 1) 4) . -1) (((0 0 1 0 0 2 1) 4) . -1) (((0 0 1 0 1 0 2) 4) . 1)) 4 0 nil) (7
- ((((0 0 0 1 1 2) 4) . 1) (((0 0 0 1 2 0 1) 4) . -1) (((0 0 1 0 0 3) 4) . -1) (((
- 0 0 1 0 1 1 1) 4) . 1)) 4 0 nil) (8 ((((0 0 0 3 0 1) 4) . 1) (((0 0 1 2 0 0 1) 4
- ) . -1) (((0 1 0 1 0 1 1) 4) . -1) (((0 1 1 0 0 0 2) 4) . 1)) 4 0 nil) (9 ((((0
- 0 1 1 0 2) 4) . 1) (((0 0 1 1 1 0 1) 4) . -1) (((0 1 0 0 0 3) 4) . -1) (((0 1 0
- 0 1 1 1) 4) . 1)) 4 0 nil) (10 ((((0 0 1 2 0 1) 4) . 1) (((0 0 2 1 0 0 1) 4) .
- -1) (((0 1 0 1 0 2) 4) . -1) (((0 1 1 0 0 1 1) 4) . 1)) 4 0 nil) (11 ((((0 0 1 3
- ) 4) . 1) (((0 1 0 2 0 1) 4) . -1) (((0 1 1 1 0 0 1) 4) . -1) (((0 2 0 0 0 1 1)
- 4) . 1)) 4 0 nil) (12 ((((0 0 2 0 0 2) 4) . 1) (((0 0 2 0 1 0 1) 4) . -1) (((0 1
- 0 0 1 2) 4) . -1) (((0 1 0 0 2 0 1) 4) . 1)) 4 0 nil) (13 ((((0 0 2 1 0 1) 4) .
- 1) (((0 0 3 0 0 0 1) 4) . -1) (((0 1 0 1 1 1) 4) . -1) (((0 1 1 0 1 0 1) 4) . 1)
- ) 4 0 nil) (14 ((((0 0 2 1 1) 4) . 1) (((0 0 3 0 0 1) 4) . -1) (((0 1 0 1 2) 4)
- . -1) (((0 1 1 0 1 1) 4) . 1)) 4 0 nil) (15 ((((0 0 3 1) 4) . 1) (((0 1 1 1 1) 4
- ) . -1) (((0 1 2 0 0 1) 4) . -1) (((0 2 0 0 1 1) 4) . 1)) 4 0 nil) (16 ((((0 0 0
- 2 1 0 1) 4) . 1) (((0 0 1 1 0 1 1) 4) . -2) (((0 0 2 0 0 0 2) 4) . 1) (((0 1 0 0
- 0 2 1) 4) . 1) (((0 1 0 0 1 0 2) 4) . -1)) 5 0 nil) (17 ((((0 0 0 2 1 1) 4) . 1)
- (((0 0 1 1 1 0 1) 4) . -2) (((0 0 2 0 0 1 1) 4) . 1) (((0 1 0 0 0 3) 4) . -1) ((
- (0 1 0 0 1 1 1) 4) . 1)) 5 0 nil) (18 ((((0 0 0 2 2) 4) . 1) (((0 0 1 1 1 1) 4)
- . -2) (((0 0 2 0 1 0 1) 4) . 1) (((0 1 0 0 1 2) 4) . 1) (((0 1 0 0 2 0 1) 4) .
- -1)) 5 0 nil) (19 ((((0 0 0 3 1) 4) . 1) (((0 0 2 1 0 0 1) 4) . -1) (((0 1 0 1 0
- 2) 4) . -1) (((0 1 0 1 1 0 1) 4) . -1) (((0 1 1 0 0 1 1) 4) . 2)) 5 0 nil) (20 (
- (((0 0 1 2 1) 4) . 1) (((0 0 3 0 0 0 1) 4) . -1) (((0 1 0 1 1 1) 4) . -2) (((0 1
- 1 0 0 2) 4) . 1) (((0 1 1 0 1 0 1) 4) . 1)) 5 0 nil) (21 ((((0 1 0 2 1) 4) . 1)
- (((0 1 1 1 0 1) 4) . -2) (((0 1 2 0 0 0 1) 4) . 1) (((0 2 0 0 0 2) 4) . 1) (((0
- 2 0 0 1 0 1) 4) . -1)) 5 0 nil)) nil)
- % This needs even more time than the eqhull, of course.
- u:=primarydecomposition!* n;
- (((dpmat 16 0 ((1 ((((0 0 0 0 0 4) 4) . 1) (((0 0 0 0 1 2 1) 4) . -2) (((0 0 0 0
- 2 0 2) 4) . 1)) 3 0 nil) (2 ((((0 0 0 4) 4) . 1) (((0 1 0 2 0 0 1) 4) . -2) (((0
- 2 0 0 0 0 2) 4) . 1)) 3 0 nil) (3 ((((0 0 4) 4) . 1) (((0 1 2 0 1) 4) . -2) (((0
- 2 0 0 2) 4) . 1)) 3 0 nil) (4 ((((0 0 0 2 0 2) 4) . 1) (((0 0 1 1 0 1 1) 4) . -2
- ) (((0 0 2 0 0 0 2) 4) . 1)) 3 0 nil) (5 ((((0 0 2 2) 4) . 1) (((0 1 1 1 0 1) 4)
- . -2) (((0 2 0 0 0 2) 4) . 1)) 3 0 nil) (6 ((((0 0 0 1 0 3) 4) . 1) (((0 0 0 1 1
- 1 1) 4) . -1) (((0 0 1 0 0 2 1) 4) . -1) (((0 0 1 0 1 0 2) 4) . 1)) 4 0 nil) (7
- ((((0 0 0 3 0 1) 4) . 1) (((0 0 1 2 0 0 1) 4) . -1) (((0 1 0 1 0 1 1) 4) . -1) (
- ((0 1 1 0 0 0 2) 4) . 1)) 4 0 nil) (8 ((((0 0 0 1 1 2) 4) . 1) (((0 0 0 1 2 0 1)
- 4) . -1) (((0 0 1 0 0 3) 4) . -1) (((0 0 1 0 1 1 1) 4) . 1)) 4 0 nil) (9 ((((0 0
- 1 3) 4) . 1) (((0 1 0 2 0 1) 4) . -1) (((0 1 1 1 0 0 1) 4) . -1) (((0 2 0 0 0 1
- 1) 4) . 1)) 4 0 nil) (10 ((((0 0 2 0 0 2) 4) . 1) (((0 0 2 0 1 0 1) 4) . -1) (((
- 0 1 0 0 1 2) 4) . -1) (((0 1 0 0 2 0 1) 4) . 1)) 4 0 nil) (11 ((((0 0 2 1 1) 4)
- . 1) (((0 0 3 0 0 1) 4) . -1) (((0 1 0 1 2) 4) . -1) (((0 1 1 0 1 1) 4) . 1)) 4
- 0 nil) (12 ((((0 0 3 1) 4) . 1) (((0 1 1 1 1) 4) . -1) (((0 1 2 0 0 1) 4) . -1)
- (((0 2 0 0 1 1) 4) . 1)) 4 0 nil) (13 ((((0 0 2 1 0 1) 4) . 1) (((0 0 3 0 0 0 1)
- 4) . -1) (((0 1 0 1 1 1) 4) . -1) (((0 1 1 0 1 0 1) 4) . 1)) 4 0 nil) (14 ((((0
- 0 1 2 0 1) 4) . 1) (((0 0 2 1 0 0 1) 4) . -1) (((0 1 0 1 0 2) 4) . -1) (((0 1 1
- 0 0 1 1) 4) . 1)) 4 0 nil) (15 ((((0 0 1 1 0 2) 4) . 1) (((0 0 1 1 1 0 1) 4) .
- -1) (((0 1 0 0 0 3) 4) . -1) (((0 1 0 0 1 1 1) 4) . 1)) 4 0 nil) (16 ((((0 0 0 2
- 1) 3) . 1) (((0 0 1 1 0 1) 3) . -2) (((0 0 2 0 0 0 1) 3) . 1) (((0 1 0 0 0 2) 3)
- . 1) (((0 1 0 0 1 0 1) 3) . -1)) 5 0 nil)) nil) (dpmat 6 0 ((1 ((((0 0 0 0 0 2)
- 2) . 1) (((0 0 0 0 1 0 1) 2) . -1)) 2 0 nil) (2 ((((0 0 0 1 0 1) 2) . 1) (((0 0
- 1 0 0 0 1) 2) . -1)) 2 0 nil) (3 ((((0 0 0 2) 2) . 1) (((0 1 0 0 0 0 1) 2) . -1)
- ) 2 0 nil) (4 ((((0 0 0 1 1) 2) . -1) (((0 0 1 0 0 1) 2) . 1)) 2 0 nil) (5 ((((0
- 0 1 1) 2) . 1) (((0 1 0 0 0 1) 2) . -1)) 2 0 nil) (6 ((((0 0 2) 2) . 1) (((0 1 0
- 0 1) 2) . -1)) 2 0 nil)) nil)) ((dpmat 18 0 ((1 ((((0 0 0 0 0 4) 4) . 1)) 1 0
- nil) (2 ((((0 0 0 1 0 3) 4) . 1)) 1 0 nil) (3 ((((0 0 0 2 0 2) 4) . 1)) 1 0 nil)
- (4 ((((0 0 0 3 0 1) 4) . 1)) 1 0 nil) (5 ((((0 0 0 4) 4) . 1)) 1 0 nil) (6 ((((0
- 0 1 0 0 3) 4) . 1)) 1 0 nil) (7 ((((0 0 1 1 0 2) 4) . 1)) 1 0 nil) (8 ((((0 0 1
- 2 0 1) 4) . 1)) 1 0 nil) (9 ((((0 0 1 3) 4) . 1)) 1 0 nil) (10 ((((0 0 2 0 0 2)
- 4) . 1)) 1 0 nil) (11 ((((0 0 2 1 0 1) 4) . 1)) 1 0 nil) (12 ((((0 0 2 2) 4) . 1
- )) 1 0 nil) (13 ((((0 0 3 0 0 1) 4) . 1)) 1 0 nil) (14 ((((0 0 3 1) 4) . 1)) 1 0
- nil) (15 ((((0 0 4) 4) . 1)) 1 0 nil) (16 ((((0 0 0 0 0 0 1) 1) . 1)) 1 0 nil) (
- 17 ((((0 0 0 0 1) 1) . 1)) 1 0 nil) (18 ((((0 1) 1) . 1)) 1 0 nil)) nil) (dpmat
- 6 0 ((1 ((((0 0 0 0 0 0 1) 1) . 1)) 1 0 nil) (2 ((((0 0 0 0 0 1) 1) . 1)) 1 0
- nil) (3 ((((0 0 0 0 1) 1) . 1)) 1 0 nil) (4 ((((0 0 0 1) 1) . 1)) 1 0 nil) (5 ((
- ((0 0 1) 1) . 1)) 1 0 nil) (6 ((((0 1) 1) . 1)) 1 0 nil)) nil)))
- for each x in u collect easydim!* second x;
- (3 0)
- for each x in u collect degree!* first x;
- (16 20)
- % Hence the embedded component is a trivial one. Let's divide it
- % out by a stable ideal quotient calculation :
- algebraic;
- setideal(n2,matstabquot(n,vars));
- 4 2 2 2
- {x5 - 2*x4*x5 *x6 + x4 *x6 ,
- 2 2 2 2
- x3 *x5 - 2*x2*x3*x5*x6 + x2 *x6 ,
- 4 2 2 2
- x3 - 2*x1*x3 *x6 + x1 *x6 ,
- 2 2 2 2
- x2 *x3 - 2*x1*x2*x3*x5 + x1 *x5 ,
- 4 2 2 2
- x2 - 2*x1*x2 *x4 + x1 *x4 ,
- 3 2 2
- x3*x5 - x3*x4*x5*x6 - x2*x5 *x6 + x2*x4*x6 ,
- 2 2 3
- x3*x4*x5 - x3*x4 *x6 - x2*x5 + x2*x4*x5*x6,
- 3 2 2
- x3 *x5 - x2*x3 *x6 - x1*x3*x5*x6 + x1*x2*x6 ,
- 2 3
- x2*x3*x5 - x2*x3*x4*x6 - x1*x5 + x1*x4*x5*x6,
- 2 2 2
- x2*x3 *x5 - x2 *x3*x6 - x1*x3*x5 + x1*x2*x5*x6,
- 3 2 2
- x2*x3 - x1*x3 *x5 - x1*x2*x3*x6 + x1 *x5*x6,
- 2 2 2 2 2
- x2 *x5 - x2 *x4*x6 - x1*x4*x5 + x1*x4 *x6,
- 2 3
- x2 *x3*x5 - x2 *x6 - x1*x3*x4*x5 + x1*x2*x4*x6,
- 2 3 2
- x2 *x3*x4 - x2 *x5 - x1*x3*x4 + x1*x2*x4*x5,
- 3 2 2
- x2 *x3 - x1*x2*x3*x4 - x1*x2 *x5 + x1 *x4*x5,
- 2 2 2
- x3 *x4 - 2*x2*x3*x5 + x2 *x6 + x1*x5 - x1*x4*x6}
- gbasis n2$
- modequalp(n1,n2);
- yes
- end;
- (cali 151861 4167)
- End of Lisp run after 151.87+4.96 seconds
|