123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307 |
- Tue Apr 15 00:35:15 2008 run on win32
- % ----------------------------------------------------------------------
- % $Id: cgb.tst,v 1.3 2003/10/12 14:55:24 sturm Exp $
- % ----------------------------------------------------------------------
- % Copyright (c) 1999 Andreas Dolzmann and Thomas Sturm
- % ----------------------------------------------------------------------
- % $Log: cgb.tst,v $
- % Revision 1.3 2003/10/12 14:55:24 sturm
- % The bootstrapping technique via remflag('(load!-package),'eval); does
- % not work for CSL. Added corresponding preprocessing directive for now.
- % As a consequence, under CSL "redlog" has to be loaded explicitly when
- % using CGB.
- %
- % Revision 1.2 1999/04/13 21:50:44 sturm
- % Removed echo, and gbverbose settings. There is no gbverbose.
- %
- % Revision 1.1 1999/04/05 08:30:45 dolzmann
- % Copied and overworked Rev. 1.6 of the old cgb version.
- %
- % ----------------------------------------------------------------------
- load_package redlog;
- % Examples taken from the manual:
- load_package groebner;
- % 1 Introduction
- oo := torder({x,y},lex)$
- cgb {a*x,x+y};
- {x + y,a*x,a*y}
- gsys {a*x,x+y};
- {{a <> 0,{x + y,a*x,a*y}},
- {a = 0,{x + y}}}
- torder oo;
- {{x,y},lex}
- % 4 CGB: Comprehensive Groebner Basis
- oo := torder({x,y},lex)$
- cgb {a*x+y,x+b*y};
- {x + b*y,a*x + y,(a*b - 1)*y}
- torder oo;
- {{x,y},lex}
- % 5 GSYS: Groebner System
- oo := torder({x,y},lex)$
- gsys {a*x+y,x+b*y};
- {{a*b - 1 <> 0 and a <> 0,
- {a*x + y,x + b*y,(a*b - 1)*y}},
- {a <> 0 and a*b - 1 = 0,
- {a*x + y,x + b*y}},
- {a = 0,{a*x + y,x + b*y}}}
- torder oo;
- {{x,y},lex}
- % 6 GSYS2CGB: Groebner System to CGB
- oo := torder({x,y},lex)$
- gsys {a*x+y,x+b*y};
- {{a*b - 1 <> 0 and a <> 0,
- {a*x + y,x + b*y,(a*b - 1)*y}},
- {a <> 0 and a*b - 1 = 0,
- {a*x + y,x + b*y}},
- {a = 0,{a*x + y,x + b*y}}}
- gsys2cgb ws;
- {x + b*y,a*x + y,(a*b - 1)*y}
- torder oo;
- {{x,y},lex}
- % 7 Switch CGBREAL: Computing over the Real Numbers
- oo := torder({x,y},lex)$
- off cgbreal;
- gsys {a*x+y,x-a*y};
- 2
- {{a + 1 <> 0 and a <> 0,
- 2
- {a*x + y,x - a*y,(a + 1)*y}},
- 2
- {a <> 0 and a + 1 = 0,{a*x + y,x - a*y}},
- {a = 0,{a*x + y,x - a*y}}}
- on cgbreal;
- gsys({a*x+y,x-a*y});
- {{a <> 0,
- 2
- {a*x + y,x - a*y,(a + 1)*y}},
- {a = 0,{a*x + y,x - a*y}}}
- torder oo;
- {{x,y},lex}
- % Miscellaneous examples:
- % Dolzmann's Example
- oo := torder({x,y,z},lex);
- oo := {{},lex}
- cgb({a*x+b*y,c*x+d*y,(a*d-b*c)*z});
- {c*x + d*y,
- a*x + b*y,
- (a*d - b*c)*y,
- (a*d - b*c)*z}
- gsys({a*x+b*y,c*x+d*y,(a*d-b*c)*z});
- {{a*d - b*c <> 0 and a <> 0 and c <> 0,
- {a*x + b*y,
- c*x + d*y,
- (a*d - b*c)*y,
- (a*d - b*c)*z}},
- {a*d - b*c <> 0 and a <> 0 and d <> 0 and c = 0,
- {a*x + b*y,c*x + d*y,(a*d - b*c)*z}},
- {a*d - b*c <> 0 and a <> 0 and c = 0 and d = 0,
- {a*x + b*y,(a*d - b*c)*z}},
- {a*d - b*c <> 0 and b <> 0 and c <> 0 and a = 0,
- {a*x + b*y,c*x + d*y,(a*d - b*c)*z}},
- {a*d - b*c <> 0 and b <> 0 and d <> 0 and a = 0 and c = 0,
- {a*x + b*y,c*x + d*y,(a*d - b*c)*z}},
- {a*d - b*c <> 0 and b <> 0 and a = 0 and c = 0 and d = 0,
- {a*x + b*y,(a*d - b*c)*z}},
- {a*d - b*c <> 0 and c <> 0 and a = 0 and b = 0,
- {c*x + d*y,(a*d - b*c)*z}},
- {a*d - b*c <> 0 and d <> 0 and a = 0 and b = 0 and c = 0,
- {c*x + d*y,(a*d - b*c)*z}},
- {a*d - b*c <> 0 and a = 0 and b = 0 and c = 0 and d = 0,
- {(a*d - b*c)*z}},
- {a <> 0 and c <> 0 and a*d - b*c = 0,
- {a*x + b*y,c*x + d*y}},
- {a <> 0 and d <> 0 and a*d - b*c = 0 and c = 0,
- {a*x + b*y,c*x + d*y}},
- {a <> 0 and a*d - b*c = 0 and c = 0 and d = 0,
- {a*x + b*y}},
- {b <> 0 and c <> 0 and a*d - b*c = 0 and a = 0,
- {a*x + b*y,c*x + d*y}},
- {b <> 0 and d <> 0 and a*d - b*c = 0 and a = 0 and c = 0,
- {a*x + b*y,c*x + d*y}},
- {b <> 0 and a*d - b*c = 0 and a = 0 and c = 0 and d = 0,
- {a*x + b*y}},
- {c <> 0 and a*d - b*c = 0 and a = 0 and b = 0,
- {c*x + d*y}},
- {d <> 0 and a*d - b*c = 0 and a = 0 and b = 0 and c = 0,
- {c*x + d*y}},
- {a*d - b*c = 0 and a = 0 and b = 0 and c = 0 and d = 0,
- {}}}
- gsys2cgb ws;
- {c*x + d*y,
- a*x + b*y,
- (a*d - b*c)*y,
- (a*d - b*c)*z}
- torder oo;
- {{x,y,z},lex}
- % Forsman's Example (hybrid control system).
- oo := torder({x1,x2,y2,y1,y0},lex);
- oo := {{},lex}
- gsys({(u1*u2-u1)*x1+u2*x2+y2,(u2-1)*x1+u2*x2+y1,-x2+y0});
- {{u1*u2 - u1 <> 0,
- {(u1*u2 - u1)*x1 + u2*x2 + y2,
- (u2 - 1)*x1 + u2*x2 + y1,
- x2 - y0,
- y2 - u1*y1 - (u1*u2 - u2)*y0}},
- {u2 - 1 <> 0 and u2 <> 0 and u1*u2 - u1 = 0,
- {(u1*u2 - u1)*x1 + u2*x2 + y2,
- (u2 - 1)*x1 + u2*x2 + y1,
- (u1*u2 - u1)*x1 + y2 + u2*y0,
- x2 - y0}},
- {u1*u2 - u1 = 0 and u2 - 1 = 0,
- {(u1*u2 - u1)*x1 + u2*x2 + y2,
- (u2 - 1)*x1 + u2*x2 + y1,
- (u1*u2 - u1 - u2 + 1)*x1 + y2 - y1,
- (u2 - 1)*x1 + y1 + u2*y0,
- x2 - y0}},
- {u1*u2 - u1 = 0 and u2 = 0,
- {(u1*u2 - u1)*x1 + u2*x2 + y2,
- (u2 - 1)*x1 + u2*x2 + y1,
- x2 - y0}}}
- torder oo;
- {{x1,x2,y2,y1,y0},lex}
- % Weispfenning's Example
- oo := torder({x,y},lex);
- oo := {{},lex}
- gsys({v*x*y + x,u*y^2 + x^2});
- {{u*v <> 0 and v <> 0,
- 2 2
- {x + u*y ,
- v*x*y + x,
- 3 2
- (u*v)*y + u*y }},
- {u <> 0 and v <> 0 and u*v = 0,
- 2 2
- {x + u*y ,
- 3 3
- (u*v )*x*y + u*x,
- v*x*y + x,
- 3 2
- (u*v)*y + u*y }},
- {u <> 0 and v = 0,
- 2 2
- {v*x *y - u*y ,
- 2 2
- x + u*y ,
- v*x*y + x}},
- {v <> 0 and u*v = 0 and u = 0,
- 2 2
- {x + u*y ,v*x*y + x}},
- {u = 0 and v = 0,
- 2 2
- {x + u*y ,v*x*y + x}}}
- torder oo;
- {{x,y},lex}
- % The folllowing three examples are taken from
- % Weispfenning, Comprehensive Groebner Bases,
- % J. Symbolic Computation (1992) 14, 1-29
-
- % Weispfenning's Example 7.1
- oo := torder({x},lex);
- oo := {{},lex}
- gsys({a0*x**2 + a1*x + a2,b0*x**2 + b1*x + b2});
- 3 2 2 2 2 2 2
- {{a0 *b2 - a0 *a1*b1*b2 - 2*a0 *a2*b0*b2 + a0 *a2*b1 + a0*a1 *b0*b2
- 2 2
- - a0*a1*a2*b0*b1 + a0*a2 *b0 <> 0 and a0*b1 - a1*b0 <> 0 and a0 <> 0
- and b0 <> 0,
- 3 2 2 2 2 2 2
- {a0 *b2 - a0 *a1*b1*b2 - 2*a0 *a2*b0*b2 + a0 *a2*b1 + a0*a1 *b0*b2
- 2 2
- - a0*a1*a2*b0*b1 + a0*a2 *b0 }},
- 3 2 2
- {a0*b1 - a1*b0 <> 0 and a0 <> 0 and b0 <> 0 and a0 *b2 - a0 *a1*b1*b2
- 2 2 2 2 2 2
- - 2*a0 *a2*b0*b2 + a0 *a2*b1 + a0*a1 *b0*b2 - a0*a1*a2*b0*b1 + a0*a2 *b0
- = 0,
- 2
- {a0*x + a1*x + a2,
- 2
- b0*x + b1*x + b2,
- (a0*b1 - a1*b0)*x + (a0*b2 - a2*b0)}},
- 2 2
- {a0*b2 - a1*b1*b2 + a2*b1 <> 0 and a0 <> 0 and b1 <> 0 and b0 = 0,
- 3 2 2 2
- {(a0*b0*b1)*x - (a0*b0*b2 - a1*b0*b1)*x - (a0*b2 - a1*b1*b2 + a2*b1 )}},
- {a0*b2 - a2*b0 <> 0 and a0 <> 0 and b0 <> 0 and a0*b1 - a1*b0 = 0,
- {(a0*b1 - a1*b0)*x + (a0*b2 - a2*b0)}},
- {a0 <> 0 and b0 <> 0 and a0*b1 - a1*b0 = 0 and a0*b2 - a2*b0 = 0,
- 2 2
- {a0*x + a1*x + a2,b0*x + b1*x + b2}},
- 2 2
- {a0 <> 0 and b1 <> 0 and a0*b2 - a1*b1*b2 + a2*b1 = 0 and b0 = 0,
- 2 2
- {a0*x + a1*x + a2,b0*x + b1*x + b2}},
- {a0 <> 0 and b2 <> 0 and b0 = 0 and b1 = 0,
- 2
- {b0*x + b1*x + b2}},
- {a0 <> 0 and b0 = 0 and b1 = 0 and b2 = 0,
- 2
- {a0*x + a1*x + a2}},
- 2 2
- {a1 *b2 - a1*a2*b1 + a2 *b0 <> 0 and a1 <> 0 and b0 <> 0 and a0 = 0,
- 3 2 2 2
- {(a0*a1*b0)*x + (a0*a1*b1 - a0*a2*b0)*x - (a1 *b2 - a1*a2*b1 + a2 *b0)}},
- {a1*b2 - a2*b1 <> 0 and a1 <> 0 and b1 <> 0 and a0 = 0 and b0 = 0,
- 2
- {(a0*b1 - a1*b0)*x - (a1*b2 - a2*b1)}},
- 2 2
- {a1 <> 0 and b0 <> 0 and a0 = 0 and a1 *b2 - a1*a2*b1 + a2 *b0 = 0,
- 2 2
- {a0*x + a1*x + a2,b0*x + b1*x + b2}},
- {a1 <> 0 and b1 <> 0 and a0 = 0 and a1*b2 - a2*b1 = 0 and b0 = 0,
- 2 2
- {a0*x + a1*x + a2,b0*x + b1*x + b2}},
- {a1 <> 0 and b2 <> 0 and a0 = 0 and b0 = 0 and b1 = 0,
- 2
- {b0*x + b1*x + b2}},
- {a1 <> 0 and a0 = 0 and b0 = 0 and b1 = 0 and b2 = 0,
- 2
- {a0*x + a1*x + a2}},
- {a2 <> 0 and a0 = 0 and a1 = 0,
- 2
- {a0*x + a1*x + a2}},
- {b0 <> 0 and a0 = 0 and a1 = 0 and a2 = 0,
- 2
- {b0*x + b1*x + b2}},
- {b1 <> 0 and a0 = 0 and a1 = 0 and a2 = 0 and b0 = 0,
- 2
- {b0*x + b1*x + b2}},
- {b2 <> 0 and a0 = 0 and a1 = 0 and a2 = 0 and b0 = 0 and b1 = 0,
- 2
- {b0*x + b1*x + b2}},
- {a0 = 0 and a1 = 0 and a2 = 0 and b0 = 0 and b1 = 0 and b2 = 0,
- {}}}
- torder oo;
- {{x},lex}
- % Weispfenning's Example 7.2
- oo := torder({x,y},lex);
- oo := {{},lex}
- gsys({v*x*y + u*x**2 + x,u*y**2 + x**2});
- 4 3
- {{u *v + u*v <> 0 and u <> 0 and v <> 0,
- 2
- {u*x + v*x*y + x,
- 2 2
- x + u*y ,
- 2 2
- v*x*y + x - u *y ,
- 3 5 2 3 3 5 2 2 2
- u *x + (u *v + u *v )*y - (u - u *v )*y ,
- 7 2 4 4 4 4 3 3 4 2 2
- (u *v + u *v )*y + (2*u *v )*y + (u *v )*y }},
- 4 3
- {u <> 0 and v <> 0 and u *v + u*v = 0,
- 2
- {u*x + v*x*y + x,
- 2 2
- x + u*y ,
- 2 2
- v*x*y + x - u *y ,
- 3 5 2 3 3 5 2 2 2
- u *x + (u *v + u *v )*y - (u - u *v )*y ,
- 7 2 4 4 4 4 3 3 4 2 2
- (u *v + u *v )*y + (2*u *v )*y + (u *v )*y }},
- {u <> 0 and v = 0,
- 2 3 3 5 4 2 2
- {(u*v)*x *y + (u *v)*x*y - u *y - u *y ,
- 2
- u*x + v*x*y + x,
- 2 2
- x + u*y ,
- 2 2
- v*x*y + x - u *y }},
- {v <> 0 and u = 0,
- 2 2 2
- {u*x + v*x*y + x,x + u*y }},
- {u = 0 and v = 0,
- 2 2 2
- {u*x + v*x*y + x,x + u*y }}}
- torder oo;
- {{x,y},lex}
- % Weispfenning's Example 7.3
- oo := torder({x1,x2,x3,x4},lex);
- oo := {{},lex}
- gsys {x4 - (a4-a2),x1 + x2 + x3 + x4 + (a1 + a3 + a4),
- x1*x3 + x1*x4 + x2*x3 + x3*x4 - (a1*a4 + a1*a3 + a3*a4),x1*x3*x4 - a1*a3*a4};
- 2 2 3 2 2
- {{a1*a2 - a1*a2*a3 - 3*a1*a2*a4 + 2*a1*a4 - a2 + a2 *a3 + 4*a2 *a4
- 2 2 3
- - 3*a2*a3*a4 - 5*a2*a4 + 2*a3*a4 + 2*a4 <> 0 and a2 - a4 = 0,
- 2
- {(a2 - a4)*x2*x3 - (a2 - a4)*x2*x4 + (a1*a2 - a1*a2*a3 - 3*a1*a2*a4
- 2 3 2 2 2 2
- + 2*a1*a4 - a2 + a2 *a3 + 4*a2 *a4 - 3*a2*a3*a4 - 5*a2*a4 + 2*a3*a4
- 3
- + 2*a4 )}},
- {a2 - a4 <> 0,
- {x1*x3*x4 - a1*a3*a4,
- x1*x3 + x1*x4 + x2*x3 + x3*x4 - (a1*a3 + a1*a4 + a3*a4),
- x1 + x2 + x3 + x4 + (a1 + a3 + a4),
- 2
- (a2 - a4)*x2 - x3 - (a1 - a2 + a3 + 2*a4)*x3
- 2 2
- + (a1*a2 - a1*a3 - 2*a1*a4 - a2 + a2*a3 + 3*a2*a4 - 2*a3*a4 - 2*a4 ),
- 3 2
- x3 + (a1 + a3 + a4)*x3 + (a1*a3 + a1*a4 + a3*a4)*x3 - a1*a3*a4,
- x4 + (a2 - a4)}},
- 2 2 3 2 2
- {a1*a2 - a1*a2*a3 - 3*a1*a2*a4 + 2*a1*a4 - a2 + a2 *a3 + 4*a2 *a4
- 2 2 3
- - 3*a2*a3*a4 - 5*a2*a4 + 2*a3*a4 + 2*a4 = 0 and a2 - a4 = 0,
- {x1*x3*x4 - a1*a3*a4,
- x1*x3 + x1*x4 + x2*x3 + x3*x4 - (a1*a3 + a1*a4 + a3*a4),
- x1 + x2 + x3 + x4 + (a1 + a3 + a4),
- 2
- (a2 - a4)*x2 - x3 - (a1 - a2 + a3 + 2*a4)*x3
- 2 2
- + (a1*a2 - a1*a3 - 2*a1*a4 - a2 + a2*a3 + 3*a2*a4 - 2*a3*a4 - 2*a4 ),
- x4 + (a2 - a4)}}}
- torder oo;
- {{x1,x2,x3,x4},lex}
- % Pesch's example (Circle through three points)
- oo := torder({y,x},revgradlex);
- oo := {{},lex}
- gsys({2*b2*y + 2*a2*x - b2**2 + a2**2,2*b1*y + 2*a1*x - b1**2 + a1**2});
- 2 2 2 2
- {{a1 *a2 - a1*a2 + a1*b2 - a2*b1 <> 0 and a1 <> 0 and a2 <> 0 and b1 = 0
- and b2 = 0,
- 2 2 2 2
- {(2*a1*b2 - 2*a2*b1)*y - (a1 *a2 - a1*a2 + a1*b2 - a2*b1 )}},
- 2 2 2 2
- {a1 *b2 - a2 *b1 - b1 *b2 + b1*b2 <> 0 and b1 <> 0 and b2 <> 0
- and a1*b2 - a2*b1 = 0,
- 2 2 2 2
- {(2*a1*b2 - 2*a2*b1)*x + (a1 *b2 - a2 *b1 - b1 *b2 + b1*b2 )}},
- 2 2
- {a1 - b1 <> 0 and a1 = 0 and b1 = 0,
- 2 2
- {(2*b1)*y + (2*a1)*x + (a1 - b1 )}},
- {a1*b2 - a2*b1 <> 0 and b1 <> 0 and b2 <> 0,
- 2 2
- {(2*b1)*y + (2*a1)*x + (a1 - b1 ),
- 2 2
- (2*b2)*y + (2*a2)*x + (a2 - b2 ),
- 2 2 2 2
- (2*a1*b2 - 2*a2*b1)*x + (a1 *b2 - a2 *b1 - b1 *b2 + b1*b2 )}},
- 2 2
- {a1 <> 0 and a2 - b2 <> 0 and a2 = 0 and b1 = 0 and b2 = 0,
- 2 2
- {(2*b2)*y + (2*a2)*x + (a2 - b2 )}},
- 2 2 2 2
- {a1 <> 0 and a2 <> 0 and a1 *a2 - a1*a2 + a1*b2 - a2*b1 = 0 and b1 = 0
- and b2 = 0,
- 2 2
- {(2*b1)*y + (2*a1)*x + (a1 - b1 ),
- 2 2
- (2*b2)*y + (2*a2)*x + (a2 - b2 )}},
- {a1 <> 0 and b2 <> 0 and b1 = 0,
- 2 2
- {(2*b1)*y + (2*a1)*x + (a1 - b1 ),
- 2 2
- (2*b2)*y + (2*a2)*x + (a2 - b2 )}},
- 2 2
- {a1 <> 0 and a2 - b2 = 0 and a2 = 0 and b1 = 0 and b2 = 0,
- 2 2
- {(2*b1)*y + (2*a1)*x + (a1 - b1 )}},
- 2 2
- {a2 - b2 <> 0 and b1 <> 0 and a2 = 0 and b2 = 0,
- 2 2
- {(2*b2)*y + (2*a2)*x + (a2 - b2 )}},
- 2 2 2 2
- {a2 - b2 <> 0 and a1 - b1 = 0 and a1 = 0 and a2 = 0 and b1 = 0 and b2 = 0,
- 2 2
- {(2*b2)*y + (2*a2)*x + (a2 - b2 )}},
- {a2 <> 0 and b1 <> 0 and b2 = 0,
- 2 2
- {(2*b1)*y + (2*a1)*x + (a1 - b1 ),
- 2 2
- (2*b2)*y + (2*a2)*x + (a2 - b2 )}},
- 2 2
- {a2 <> 0 and a1 - b1 = 0 and a1 = 0 and b1 = 0 and b2 = 0,
- 2 2
- {(2*b2)*y + (2*a2)*x + (a2 - b2 )}},
- 2 2 2 2
- {b1 <> 0 and b2 <> 0 and a1 *b2 - a2 *b1 - b1 *b2 + b1*b2 = 0
- and a1*b2 - a2*b1 = 0,
- 2 2
- {(2*b1)*y + (2*a1)*x + (a1 - b1 ),
- 2 2
- (2*b2)*y + (2*a2)*x + (a2 - b2 )}},
- 2 2
- {b1 <> 0 and a2 - b2 = 0 and a2 = 0 and b2 = 0,
- 2 2
- {(2*b1)*y + (2*a1)*x + (a1 - b1 )}},
- 2 2
- {b2 <> 0 and a1 - b1 = 0 and a1 = 0 and b1 = 0,
- 2 2
- {(2*b2)*y + (2*a2)*x + (a2 - b2 )}},
- 2 2 2 2
- {a1 - b1 = 0 and a1 = 0 and a2 - b2 = 0 and a2 = 0 and b1 = 0 and b2 = 0,
- {}}}
- torder oo;
- {{y,x},revgradlex}
- % Effelterre's example (Aspect graphs)
- f1 := -4-4*v**2-4*u**2+40*v*v1+24*v-120*v1+8*u-40*v2-68*v1**2-100*v2**2+40*u*v2+
- 24*v1*v2-4*v1**2*u-4*v2**2*v**2+24*v2**2*v-24*v1*u*v2+8*v*v1*u*v2$
- f2 := 8*v*v1*u*v2-4*v1**2*u**2+4*v1**2-4*v2**2*v**2+4*v2**2-16*v**2-16*u**2+16$
- f3 := 16*v-48*u+16*v*v1**2-48*u*v2**2-12*v1**2*u+4*v2**2*v-36*v*v1*v2+
- 12*v1*u*v2+12*v*v2**2*u-
- 80*u*v1+80*v2*v-20*v1*u*v2**2+20*v2*v*v1**2-20*v1**3*u+20*v2**3*v-12*v1**2*v*u+
- 12*v2*v**2*v1-12*v1*u**2*v2$
- f4 := -160u*v2-1596v2**2+3200*v2-1596-4*u**2+160*u$
- % Special case I2, v1=0
- oo := torder({v,u},lex);
- oo := {{},lex}
- gsys(sub(v1=0,{f1,f2,f4}));
- 16 15 14
- {{1000557799569*v2 - 8971728968760*v2 + 32332553961916*v2
- 13 12 11
- - 56816638983720*v2 + 43557281160966*v2 - 2232864400680*v2
- 10 9 8
- - 2141149653636*v2 - 24710286679320*v2 + 22557177598385*v2
- 7 6 5
- - 4364899181280*v2 + 1970637124608*v2 - 2915313822720*v2
- 4 3 2
- + 1467702460416*v2 - 1340557025280*v2 + 685570158592*v2 - 140796887040*v2
- 7 6 5 4
- + 63647907840 <> 0 and 55175*v2 - 184787*v2 + 144885*v2 + 44895*v2
- 3 2
- - 13020*v2 - 35580*v2 + 320*v2 - 6368 <> 0,
- 16 15 14
- {1000557799569*v2 - 8971728968760*v2 + 32332553961916*v2
- 13 12 11
- - 56816638983720*v2 + 43557281160966*v2 - 2232864400680*v2
- 10 9 8
- - 2141149653636*v2 - 24710286679320*v2 + 22557177598385*v2
- 7 6 5
- - 4364899181280*v2 + 1970637124608*v2 - 2915313822720*v2
- 4 3 2
- + 1467702460416*v2 - 1340557025280*v2 + 685570158592*v2 - 140796887040*v2
- + 63647907840}},
- 8 7 6 5 4
- {3389663*v2 - 14658420*v2 + 20230730*v2 - 6945060*v2 - 3218385*v2
- 3 2 7
- - 497040*v2 + 1656704*v2 - 257280*v2 + 255872 <> 0 and 55175*v2
- 6 5 4 3 2
- - 184787*v2 + 144885*v2 + 44895*v2 - 13020*v2 - 35580*v2 + 320*v2 - 6368
- = 0,
- 7 6 5 4 3 2
- {(220700*v2 - 739148*v2 + 579540*v2 + 179580*v2 - 52080*v2 - 142320*v2
- 8 7 6
- + 1280*v2 - 25472)*u + (3389663*v2 - 14658420*v2 + 20230730*v2
- 5 4 3 2
- - 6945060*v2 - 3218385*v2 - 497040*v2 + 1656704*v2 - 257280*v2
- + 255872)}},
- 7 6 5 4 3 2
- {55175*v2 - 184787*v2 + 144885*v2 + 44895*v2 - 13020*v2 - 35580*v2
- 16 15
- + 320*v2 - 6368 <> 0 and 1000557799569*v2 - 8971728968760*v2
- 14 13 12
- + 32332553961916*v2 - 56816638983720*v2 + 43557281160966*v2
- 11 10 9
- - 2232864400680*v2 - 2141149653636*v2 - 24710286679320*v2
- 8 7 6
- + 22557177598385*v2 - 4364899181280*v2 + 1970637124608*v2
- 5 4 3
- - 2915313822720*v2 + 1467702460416*v2 - 1340557025280*v2
- 2
- + 685570158592*v2 - 140796887040*v2 + 63647907840 = 0,
- 2 2 2 2 2
- {(v2 + 1)*v - (6*v2 + 6)*v + u - (10*v2 + 2)*u + (25*v2 + 10*v2 + 1),
- 2 2 2 2
- (v2 + 4)*v + 4*u - (v2 + 4),
- 4 2 3 2
- (6*v2 + 30*v2 + 24)*v - (110*v2 - 122*v2 - 40*v2 - 8)*u
- 4 3 2
- - (1223*v2 - 2390*v2 + 1303*v2 + 40*v2 + 8),
- 2 2
- u + (40*v2 - 40)*u + (399*v2 - 800*v2 + 399),
- 7 6 5 4 3 2
- (220700*v2 - 739148*v2 + 579540*v2 + 179580*v2 - 52080*v2 - 142320*v2
- 8 7 6
- + 1280*v2 - 25472)*u + (3389663*v2 - 14658420*v2 + 20230730*v2
- 5 4 3 2
- - 6945060*v2 - 3218385*v2 - 497040*v2 + 1656704*v2 - 257280*v2
- + 255872)}},
- 8 7 6 5 4
- {3389663*v2 - 14658420*v2 + 20230730*v2 - 6945060*v2 - 3218385*v2
- 3 2 7
- - 497040*v2 + 1656704*v2 - 257280*v2 + 255872 = 0 and 55175*v2
- 6 5 4 3 2
- - 184787*v2 + 144885*v2 + 44895*v2 - 13020*v2 - 35580*v2 + 320*v2 - 6368
- = 0,
- 2 2 2 2 2
- {(v2 + 1)*v - (6*v2 + 6)*v + u - (10*v2 + 2)*u + (25*v2 + 10*v2 + 1),
- 2 2 2 2
- (v2 + 4)*v + 4*u - (v2 + 4),
- 4 2 3 2
- (6*v2 + 30*v2 + 24)*v - (110*v2 - 122*v2 - 40*v2 - 8)*u
- 4 3 2
- - (1223*v2 - 2390*v2 + 1303*v2 + 40*v2 + 8),
- 2 2
- u + (40*v2 - 40)*u + (399*v2 - 800*v2 + 399)}}}
- torder oo;
- {{v,u},lex}
- clear f1,f2,f3,f4;
- % Sit's Example 2.2
- oo := torder({z2,z2},revgradlex);
- oo := {{},lex}
- gsys({d*z2 + c*z1 - v,b*z2 + a*z1 - u});
- {{a*d*z1 - b*c*z1 + b*v - d*u <> 0 and b <> 0 and d <> 0,
- {a*d*z1 - b*c*z1 + b*v - d*u}},
- {a*z1 - u <> 0 and b = 0,
- {b*z2 + (a*z1 - u)}},
- {b <> 0 and c*z1 - v <> 0 and d = 0,
- {d*z2 + (c*z1 - v)}},
- {b <> 0 and d <> 0 and a*d*z1 - b*c*z1 + b*v - d*u = 0,
- {b*z2 + (a*z1 - u),d*z2 + (c*z1 - v)}},
- {b <> 0 and c*z1 - v = 0 and d = 0,
- {b*z2 + (a*z1 - u)}},
- {c*z1 - v <> 0 and a*z1 - u = 0 and b = 0 and d = 0,
- {d*z2 + (c*z1 - v)}},
- {d <> 0 and a*z1 - u = 0 and b = 0,
- {d*z2 + (c*z1 - v)}},
- {a*z1 - u = 0 and b = 0 and c*z1 - v = 0 and d = 0,
- {}}}
- torder oo;
- {{z2,z2},revgradlex}
- % Sit's Example 2.3
- oo := torder({z2,z2},revgradlex);
- oo := {{},lex}
- gsys({x**3*z2 + (x**2+1)*z1,x**2*z2 + x*z1 - 1});
- 2
- {{x *z1 + z1 <> 0 and x = 0,
- 3 2
- {x *z2 + (x *z1 + z1)}},
- 2
- {x*z1 - 1 <> 0 and x *z1 + z1 = 0 and x = 0,
- 2
- {x *z2 + (x*z1 - 1)}},
- {x + z1 <> 0 and x <> 0,{x + z1}},
- {x <> 0 and x + z1 = 0,
- 3 2 2
- {x *z2 + (x *z1 + z1),x *z2 + (x*z1 - 1)}},
- 2
- {x *z1 + z1 = 0 and x*z1 - 1 = 0 and x = 0,{}}}
- torder oo;
- {{z2,z2},revgradlex}
- % Sit's Example 3.3
- oo := torder({z3,z2,z2},revgradlex);
- oo := {{},lex}
- gsys({z3 + b*z2 + a*z1 - 1,a*z3 + z2 + b*z1 - 1,b*z3 + a*z2 + z1 - 1});
- 3 2
- {{a *z1 - a - 2*a*b*z1 + a*b + a + z1 - 1 <> 0 and a <> 0 and b = 0,
- 2 3 2
- {(a*b - b)*z3 - (a *z1 - a - 2*a*b*z1 + a*b + a + z1 - 1)}},
- 3 2 3 2 2
- {a *z1 - a - 3*a*b*z1 + a*b + a + b *z1 - b + b + z1 - 1 <> 0 and a - b <> 0
- and a <> 0 and b <> 0,
- 3 2 3 2
- {a *z1 - a - 3*a*b*z1 + a*b + a + b *z1 - b + b + z1 - 1}},
- 2
- {a *z1 - a - b*z1 + 1 <> 0 and a <> 0 and b <> 0 and a*b*z1 - b - z1 + 1 = 0
- 2
- and a*b - 1 = 0 and a - b = 0,
- 2
- {(a*b - 1)*z2 + (a *z1 - a - b*z1 + 1)}},
- 3 2
- {2*a*b*z1 - a - b *z1 + b - b - z1 + 1 <> 0 and b <> 0 and a = 0,
- 2 2 3 2
- {(a - a*b )*z3 + (2*a*b*z1 - a - b *z1 + b - b - z1 + 1)}},
- 2
- {a*b*z1 - b - z1 + 1 <> 0 and a <> 0 and b <> 0 and a - b = 0,
- 2
- {(a - b )*z2 - (a*b*z1 - b - z1 + 1)}},
- 2
- {a*b - 1 <> 0 and a <> 0 and b <> 0 and a*b*z1 - b - z1 + 1 = 0 and a - b = 0,
- {z3 + b*z2 + (a*z1 - 1),
- b*z3 + a*z2 + (z1 - 1),
- a*z3 + z2 + (b*z1 - 1),
- 2
- (a*b - 1)*z2 + (a *z1 - a - b*z1 + 1)}},
- 2
- {a - b <> 0 and a <> 0 and b <> 0
- 3 2 3 2
- and a *z1 - a - 3*a*b*z1 + a*b + a + b *z1 - b + b + z1 - 1 = 0,
- {z3 + b*z2 + (a*z1 - 1),
- b*z3 + a*z2 + (z1 - 1),
- a*z3 + z2 + (b*z1 - 1),
- 2
- (a - b )*z2 - (a*b*z1 - b - z1 + 1)}},
- 2
- {a <> 0 and b <> 0 and a *z1 - a - b*z1 + 1 = 0 and a*b*z1 - b - z1 + 1 = 0
- 2
- and a*b - 1 = 0 and a - b = 0,
- {z3 + b*z2 + (a*z1 - 1),
- b*z3 + a*z2 + (z1 - 1),
- a*z3 + z2 + (b*z1 - 1)}},
- 3 2
- {a <> 0 and a *z1 - a - 2*a*b*z1 + a*b + a + z1 - 1 = 0 and b = 0,
- {z3 + b*z2 + (a*z1 - 1),
- b*z3 + a*z2 + (z1 - 1),
- a*z3 + z2 + (b*z1 - 1)}},
- 3 2
- {b <> 0 and 2*a*b*z1 - a - b *z1 + b - b - z1 + 1 = 0 and a = 0,
- {z3 + b*z2 + (a*z1 - 1),
- b*z3 + a*z2 + (z1 - 1),
- a*z3 + z2 + (b*z1 - 1)}},
- {z1 - 1 <> 0 and a = 0 and b = 0,
- {b*z3 + a*z2 + (z1 - 1)}},
- {a = 0 and b = 0 and z1 - 1 = 0,
- {z3 + b*z2 + (a*z1 - 1),a*z3 + z2 + (b*z1 - 1)}}}
- torder oo;
- {{z3,z2,z2},revgradlex}
- % Sit's Example 8.3
- oo := torder({z4,z3,z2,z2},revgradlex);
- oo := {{},lex}
- gsys({z4 + c*z3 + b*z2 + a*z1 - w2,2*z4 + z2 - w1,a*z4 - z3 - w4,d*z4 + z3 +
- 2*z1 - w3,z4 + z1 - w5});
- 3 2 2 2 2 2 2 2 2
- {{a *c*z1 + a *b*c*w1 + a *c *w3 - 2*a *c *z1 + a *c*d*z1 - a *c*w2 + a *z1
- 2
- + a*b*c*d*w1 - 2*a*b*c*w3 - 2*a*b*c*w4 + 4*a*b*c*z1 + a*b*w1 - a*c *d*w4
- - a*c*d*w2 + 2*a*c*w3 + a*c*w4 - 4*a*c*z1 + a*d*z1 - a*w2 + b*d*w1 - 2*b*w3
- - 2*b*w4 + 4*b*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 <> 0 and a*b + b*d <> 0
- and a*c + 1 <> 0 and a <> 0 and d <> 0,
- 3 2 2 2 2 2 2 2 2
- {a *c*z1 + a *b*c*w1 + a *c *w3 - 2*a *c *z1 + a *c*d*z1 - a *c*w2 + a *z1
- 2
- + a*b*c*d*w1 - 2*a*b*c*w3 - 2*a*b*c*w4 + 4*a*b*c*z1 + a*b*w1 - a*c *d*w4
- - a*c*d*w2 + 2*a*c*w3 + a*c*w4 - 4*a*c*z1 + a*d*z1 - a*w2 + b*d*w1 - 2*b*w3
- - 2*b*w4 + 4*b*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1}},
- 3 2 2 2 2
- {a *c*z1 + a *b*c*w1 - a *c*w2 - a *c*w5 + a *c*z1 - 2*a*b*c*w4 + 2*a*b*w5
- - 2*a*b*z1 + 2*a*c*w4 - a*w5 + a*z1 - 2*b*w4 + w4 <> 0 and a*b <> 0
- and a*c - 2*b + 1 <> 0 and a <> 0 and d <> 0 and a*c + 1 = 0
- and a*w3 - 2*a*z1 - d*w4 = 0 and a + d = 0,
- 2 2 3 2 2
- {(a *c - 2*a*b*c + 2*a*c - 2*b + 1)*z3 + (a *c*z1 + a *b*c*w1 - a *c*w2
- 2 2
- - a *c*w5 + a *c*z1 - 2*a*b*c*w4 + 2*a*b*w5 - 2*a*b*z1 + 2*a*c*w4 - a*w5
- + a*z1 - 2*b*w4 + w4)}},
- 3 2 2 2 2 2
- {a *z1 + 2*a *b*c*w3 - 4*a *b*c*z1 + a *b*w1 + a *d*z1 - a *w2 - 2*a*b*c*d*w4
- + a*b*d*w1 - 2*a*b*w4 - a*d*w2 + a*w4 - 2*b*d*w4 + d*w4 <> 0 and a*b <> 0
- and a + d <> 0 and a <> 0 and d <> 0 and a*c + 1 = 0,
- 2 2 3
- {(2*a *b*c - a *c + 2*a*b*c*d + 2*a*b - a*c*d - a + 2*b*d - d)*z3 - (a *z1
- 2 2 2 2 2
- + 2*a *b*c*w3 - 4*a *b*c*z1 + a *b*w1 + a *d*z1 - a *w2 - 2*a*b*c*d*w4
- + a*b*d*w1 - 2*a*b*w4 - a*d*w2 + a*w4 - 2*b*d*w4 + d*w4)}},
- 2 2 2 2 2 2
- {a *c *w5 - a *c *z1 + a *c*z1 + a*b*c*w1 - 2*a*b*c*w5 + 2*a*b*c*z1 - a*c *w4
- - a*c*w2 + 2*a*c*w5 - 2*a*c*z1 + a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - c*w4 - w2
- + w5 - z1 <> 0 and a*c - 2*b + 1 <> 0 and a*c + 1 <> 0 and a <> 0 and d <> 0
- 2
- and a *z1 + a*c*w3 - 2*a*c*z1 + a*d*z1 - a*w2 - c*d*w4 - d*w2 + w3 + w4 - 2*z1
- = 0 and a*b + b*d = 0,
- 2 2 2 2 2 2
- {a *c *w5 - a *c *z1 + a *c*z1 + a*b*c*w1 - 2*a*b*c*w5 + 2*a*b*c*z1 - a*c *w4
- - a*c*w2 + 2*a*c*w5 - 2*a*c*z1 + a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - c*w4 - w2
- + w5 - z1}},
- 2 2 2 2
- {a *c*w3 - 2*a *c*z1 + a *w5 - a *z1 - a*c*d*w4 + a*d*w5 - a*d*z1 - a*w4 - d*w4
- 3
- <> 0 and a*b <> 0 and a + d <> 0 and a <> 0 and d <> 0 and a *z1
- 2 2 2 2 2
- + 2*a *b*c*w3 - 4*a *b*c*z1 + a *b*w1 + a *d*z1 - a *w2 - 2*a*b*c*d*w4
- + a*b*d*w1 - 2*a*b*w4 - a*d*w2 + a*w4 - 2*b*d*w4 + d*w4 = 0 and a*c + 1 = 0,
- 2 2 2 2 2
- {(a *c + a*c*d + a + d)*z3 - (a *c*w3 - 2*a *c*z1 + a *w5 - a *z1 - a*c*d*w4
- + a*d*w5 - a*d*z1 - a*w4 - d*w4)}},
- 2 2
- {a *c*w5 - a *c*z1 + a*c*d*w5 - a*c*d*z1 - a*c*w3 - a*c*w4 + 2*a*c*z1 + a*w5
- - a*z1 + d*w5 - d*z1 - w3 - w4 + 2*z1 <> 0 and a*b + b*d <> 0
- 3 2 2 2
- and a*c + 1 <> 0 and a <> 0 and d <> 0 and a *c*z1 + a *b*c*w1 + a *c *w3
- 2 2 2 2 2
- - 2*a *c *z1 + a *c*d*z1 - a *c*w2 + a *z1 + a*b*c*d*w1 - 2*a*b*c*w3
- 2
- - 2*a*b*c*w4 + 4*a*b*c*z1 + a*b*w1 - a*c *d*w4 - a*c*d*w2 + 2*a*c*w3 + a*c*w4
- - 4*a*c*z1 + a*d*z1 - a*w2 + b*d*w1 - 2*b*w3 - 2*b*w4 + 4*b*z1 - c*d*w4
- - d*w2 + w3 + w4 - 2*z1 = 0,
- 2 2
- {a *c*w5 - a *c*z1 + a*c*d*w5 - a*c*d*z1 - a*c*w3 - a*c*w4 + 2*a*c*z1 + a*w5
- - a*z1 + d*w5 - d*z1 - w3 - w4 + 2*z1}},
- 2
- {a *z1 + a*b*w1 + a*c*w3 - 2*a*c*z1 - a*w2 - 2*b*w3 - 2*b*w4 + 4*b*z1 + w3 + w4
- - 2*z1 <> 0 and a*b <> 0 and a <> 0 and d = 0,
- 2
- {(a*c*d - 2*b*d + d)*z4 - (a *z1 + a*b*w1 + a*c*w3 - 2*a*c*z1 - a*w2 - 2*b*w3
- - 2*b*w4 + 4*b*z1 + w3 + w4 - 2*z1)}},
- 2
- {a *z1 + a*b*w1 - a*w2 - 2*b*w4 + w4 <> 0 and a*b <> 0 and a <> 0 and d <> 0
- and a*c - 2*b + 1 = 0 and a*c + 1 = 0 and a*w3 - 2*a*z1 - d*w4 = 0
- and a + d = 0,
- 2
- {(a*c - 2*b + 1)*z3 + (a *z1 + a*b*w1 - a*w2 - 2*b*w4 + w4)}},
- 2
- {a *z1 + a*c*w3 - 2*a*c*z1 + a*d*z1 - a*w2 - c*d*w4 - d*w2 + w3 + w4 - 2*z1
- <> 0 and a*c + 1 <> 0 and a <> 0 and d <> 0 and a*b + b*d = 0,
- 2
- {(a*b + b*d)*z2 + (a *z1 + a*c*w3 - 2*a*c*z1 + a*d*z1 - a*w2 - c*d*w4 - d*w2
- + w3 + w4 - 2*z1)}},
- 2
- {a *z1 + a*c*w3 - 2*a*c*z1 - a*w2 + w3 + w4 - 2*z1 <> 0 and a <> 0 and a*b = 0
- and d = 0,
- {(a*c*d + d)*z4 - (a*b)*z2
- 2
- - (a *z1 + a*c*w3 - 2*a*c*z1 - a*w2 + w3 + w4 - 2*z1)}},
- 2
- {a *z1 - a*w2 + w4 <> 0 and a <> 0 and d <> 0 and a*b = 0 and a*c + 1 = 0,
- 2
- {(a*c + 1)*z3 + (a*b)*z2 + (a *z1 - a*w2 + w4)}},
- 3 2
- {a*b + b*d <> 0 and a*c + 1 <> 0 and a <> 0 and d <> 0 and a *c*z1 + a *b*c*w1
- 2 2 2 2 2 2 2
- + a *c *w3 - 2*a *c *z1 + a *c*d*z1 - a *c*w2 + a *z1 + a*b*c*d*w1
- 2
- - 2*a*b*c*w3 - 2*a*b*c*w4 + 4*a*b*c*z1 + a*b*w1 - a*c *d*w4 - a*c*d*w2
- + 2*a*c*w3 + a*c*w4 - 4*a*c*z1 + a*d*z1 - a*w2 + b*d*w1 - 2*b*w3 - 2*b*w4
- 2 2
- + 4*b*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 = 0 and a *c*w5 - a *c*z1
- + a*c*d*w5 - a*c*d*z1 - a*c*w3 - a*c*w4 + 2*a*c*z1 + a*w5 - a*z1 + d*w5
- - d*z1 - w3 - w4 + 2*z1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- 2
- (a*c + 1)*z3 + (a*b)*z2 + (a *z1 - a*w2 + w4),
- 2
- (a*b + b*d)*z2 + (a *z1 + a*c*w3 - 2*a*c*z1 + a*d*z1 - a*w2 - c*d*w4 - d*w2
- + w3 + w4 - 2*z1)}},
- 3 2
- {a*b <> 0 and a*c - 2*b + 1 <> 0 and a <> 0 and d <> 0 and a *c*z1 + a *b*c*w1
- 2 2 2
- - a *c*w2 - a *c*w5 + a *c*z1 - 2*a*b*c*w4 + 2*a*b*w5 - 2*a*b*z1 + 2*a*c*w4
- - a*w5 + a*z1 - 2*b*w4 + w4 = 0 and a*c + 1 = 0 and a*w3 - 2*a*z1 - d*w4 = 0
- and a + d = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- 2
- (a*c + 1)*z3 + (a*b)*z2 + (a *z1 - a*w2 + w4),
- 2
- (a*c - 2*b + 1)*z3 + (a *z1 + a*b*w1 - a*w2 - 2*b*w4 + w4)}},
- {a*b <> 0 and a*w3 - 2*a*z1 - d*w4 <> 0 and a <> 0 and d <> 0 and a*c + 1 = 0
- and a + d = 0,
- {(a + d)*z3 - (a*w3 - 2*a*z1 - d*w4)}},
- 2
- {a*b <> 0 and a*w5 - a*z1 - w3 - w4 + 2*z1 <> 0 and a <> 0 and a *z1 + a*b*w1
- + a*c*w3 - 2*a*c*z1 - a*w2 - 2*b*w3 - 2*b*w4 + 4*b*z1 + w3 + w4 - 2*z1 = 0
- and d = 0,
- {d*z4 + (a*w5 - a*z1 - w3 - w4 + 2*z1)}},
- 3 2
- {a*b <> 0 and a + d <> 0 and a <> 0 and d <> 0 and a *z1 + 2*a *b*c*w3
- 2 2 2 2
- - 4*a *b*c*z1 + a *b*w1 + a *d*z1 - a *w2 - 2*a*b*c*d*w4 + a*b*d*w1
- - 2*a*b*w4 - a*d*w2 + a*w4 - 2*b*d*w4 + d*w4 = 0 and
- 2 2 2 2
- a *c*w3 - 2*a *c*z1 + a *w5 - a *z1 - a*c*d*w4 + a*d*w5 - a*d*z1 - a*w4 - d*w4
- = 0 and a*c + 1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- 2
- (a*c + 1)*z3 + (a*b)*z2 + (a *z1 - a*w2 + w4),
- (a + d)*z3 - (a*w3 - 2*a*z1 - d*w4)}},
- 2
- {a*b <> 0 and a <> 0 and d <> 0 and a *z1 + a*b*w1 - a*w2 - 2*b*w4 + w4 = 0
- and a*c - 2*b + 1 = 0 and a*c + 1 = 0 and a*w3 - 2*a*z1 - d*w4 = 0
- and a + d = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- 2
- (a*c + 1)*z3 + (a*b)*z2 + (a *z1 - a*w2 + w4),
- z3 - (a*w5 - a*z1 - w4)}},
- 2
- {a*b <> 0 and a <> 0 and a *z1 + a*b*w1 + a*c*w3 - 2*a*c*z1 - a*w2 - 2*b*w3
- - 2*b*w4 + 4*b*z1 + w3 + w4 - 2*z1 = 0 and a*w5 - a*z1 - w3 - w4 + 2*z1 = 0
- and d = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- (a*c*d + d)*z4 - (a*b)*z2
- 2
- - (a *z1 + a*c*w3 - 2*a*c*z1 - a*w2 + w3 + w4 - 2*z1),
- z4 - (w5 - z1)}},
- 2 2
- {a*c*d *z1 + b*c*d *w1 - 2*b*c*d*w3 + 4*b*c*d*z1 - 2*b*d*w5 + 2*b*d*z1 + 2*b*w3
- 2 2 2
- - 4*b*z1 - c*d *w2 - c*d *w5 + c*d *z1 + 2*c*d*w3 - 4*c*d*z1 + d*w5 - d*z1
- - w3 + 2*z1 <> 0 and a <> 0 and b*d <> 0 and 2*b + c*d - 1 <> 0 and d <> 0
- 2
- and a *z1 - a*w2 + w4 = 0 and a*b = 0 and a*c + 1 = 0 and c*d - 1 = 0,
- 2 2 2 2
- {(2*b*c*d - 2*b + c *d - 2*c*d + 1)*z3 + (a*c*d *z1 + b*c*d *w1 - 2*b*c*d*w3
- 2 2
- + 4*b*c*d*z1 - 2*b*d*w5 + 2*b*d*z1 + 2*b*w3 - 4*b*z1 - c*d *w2 - c*d *w5
- 2
- + c*d *z1 + 2*c*d*w3 - 4*c*d*z1 + d*w5 - d*z1 - w3 + 2*z1)}},
- {a*c*d*z1 - a*z1 + b*c*d*w1 - 2*b*c*d*w5 + 2*b*c*d*z1 - b*w1 + 2*b*w5 - 2*b*z1
- 2 2 2 2 2 2
- - c *d *w5 + c *d *z1 + c *d*w3 - 2*c *d*z1 - c*d*w2 + 2*c*d*w5 - 2*c*d*z1
- - c*w3 + 2*c*z1 + w2 - w5 + z1 <> 0 and a <> 0 and 2*b + c*d - 1 <> 0
- 2
- and c*d - 1 <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0 and a*b = 0
- and a*c + 1 = 0,
- {a*c*d*z1 - a*z1 + b*c*d*w1 - 2*b*c*d*w5 + 2*b*c*d*z1 - b*w1 + 2*b*w5 - 2*b*z1
- 2 2 2 2 2 2
- - c *d *w5 + c *d *z1 + c *d*w3 - 2*c *d*z1 - c*d*w2 + 2*c*d*w5 - 2*c*d*z1
- - c*w3 + 2*c*z1 + w2 - w5 + z1}},
- {a*c*w1 + 2*a*z1 - 2*c*w4 + w1 - 2*w2 <> 0 and a*c + 1 <> 0 and a <> 0
- and d <> 0 and
- 2
- a *z1 + a*c*w3 - 2*a*c*z1 + a*d*z1 - a*w2 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 = 0
- and a*b + b*d = 0 and a*c - 2*b + 1 = 0,
- {(a*c - 2*b + 1)*z2 - (a*c*w1 + 2*a*z1 - 2*c*w4 + w1 - 2*w2)}},
- {a*c*w5 - a*c*z1 + a*z1 - c*w4 - w2 + w5 - z1 <> 0 and a*c + 1 <> 0 and a <> 0
- and d <> 0 and
- 2
- a *z1 + a*c*w3 - 2*a*c*z1 + a*d*z1 - a*w2 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 = 0
- and a*b + b*d = 0 and a*c*w1 + 2*a*z1 - 2*c*w4 + w1 - 2*w2 = 0
- and a*c - 2*b + 1 = 0 and b = 0,
- {b*z2 + (a*c*w5 - a*c*z1 + a*z1 - c*w4 - w2 + w5 - z1)}},
- 2 2
- {a*c - 2*b + 1 <> 0 and a*c + 1 <> 0 and a <> 0 and d <> 0 and a *c *w5
- 2 2 2 2
- - a *c *z1 + a *c*z1 + a*b*c*w1 - 2*a*b*c*w5 + 2*a*b*c*z1 - a*c *w4 - a*c*w2
- + 2*a*c*w5 - 2*a*c*z1 + a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - c*w4 - w2 + w5 - z1
- = 0 and
- 2
- a *z1 + a*c*w3 - 2*a*c*z1 + a*d*z1 - a*w2 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 = 0
- and a*b + b*d = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- 2
- (a*c + 1)*z3 + (a*b)*z2 + (a *z1 - a*w2 + w4),
- (a*c - 2*b + 1)*z2 - (a*c*w1 + 2*a*z1 - 2*c*w4 + w1 - 2*w2)}},
- {a*c + 1 <> 0 and a <> 0 and b <> 0 and d <> 0 and
- 2
- a *z1 + a*c*w3 - 2*a*c*z1 + a*d*z1 - a*w2 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 = 0
- and a*b + b*d = 0 and a*c*w1 + 2*a*z1 - 2*c*w4 + w1 - 2*w2 = 0
- and a*c - 2*b + 1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- 2
- (a*c + 1)*z3 + (a*b)*z2 + (a *z1 - a*w2 + w4),
- b*z2 + (a*c*w5 - a*c*z1 + a*z1 - c*w4 - w2 + w5 - z1)}},
- {a*c + 1 <> 0 and a <> 0 and d <> 0 and
- 2
- a *z1 + a*c*w3 - 2*a*c*z1 + a*d*z1 - a*w2 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 = 0
- and a*b + b*d = 0 and a*c*w1 + 2*a*z1 - 2*c*w4 + w1 - 2*w2 = 0
- and a*c*w5 - a*c*z1 + a*z1 - c*w4 - w2 + w5 - z1 = 0 and a*c - 2*b + 1 = 0
- and b = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- 2
- (a*c + 1)*z3 + (a*b)*z2 + (a *z1 - a*w2 + w4)}},
- {a*d*z1 + b*d*w1 - 2*b*w3 - 2*b*w4 + 4*b*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1
- <> 0 and b*d <> 0 and d <> 0 and a = 0,
- {(2*a*b + a*c*d - a)*z4 + (a*d*z1 + b*d*w1 - 2*b*w3 - 2*b*w4 + 4*b*z1 - c*d*w4
- - d*w2 + w3 + w4 - 2*z1)}},
- {a*d*z1 + b*d*w1 - 2*b*w3 + 4*b*z1 - d*w2 + w3 - 2*z1 <> 0 and a <> 0
- 2
- and b*d <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0 and a*b = 0 and a*c + 1 = 0
- and 2*b + c*d - 1 = 0 and c*d - 1 = 0,
- {(2*b + c*d - 1)*z3 + (a*d*z1 + b*d*w1 - 2*b*w3 + 4*b*z1 - d*w2 + w3 - 2*z1)}}
- ,
- {a*d*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 <> 0 and d <> 0 and a = 0 and b*d = 0,
- {(a*c*d - a)*z4 + (b*d)*z2 + (a*d*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1)}},
- 2
- {a*d*z1 - d*w2 + w3 - 2*z1 <> 0 and a <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0
- and a*b = 0 and a*c + 1 = 0 and b*d = 0 and c*d - 1 = 0,
- {(c*d - 1)*z3 + (b*d)*z2 + (a*d*z1 - d*w2 + w3 - 2*z1)}},
- {2*a*z1 - c*d*w1 + 2*c*w3 - 4*c*z1 + w1 - 2*w2 <> 0 and a <> 0 and c*d - 1 <> 0
- 2
- and d <> 0 and a *z1 - a*w2 + w4 = 0 and a*b = 0 and a*c + 1 = 0
- and 2*b + c*d - 1 = 0,
- {(2*b + c*d - 1)*z2 + (2*a*z1 - c*d*w1 + 2*c*w3 - 4*c*z1 + w1 - 2*w2)}},
- {2*a*z1 + 2*c*w3 - 4*c*z1 + w1 - 2*w2 <> 0 and a <> 0
- 2
- and a *z1 + a*c*w3 - 2*a*c*z1 - a*w2 + w3 + w4 - 2*z1 = 0 and a*b = 0
- and 2*b - 1 = 0 and d = 0,
- {(2*c*d)*z4 - (2*b - 1)*z2 - (2*a*z1 + 2*c*w3 - 4*c*z1 + w1 - 2*w2)}},
- {2*a*z1 - 2*c*w4 + w1 - 2*w2 <> 0 and d <> 0
- and a*d*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 = 0 and a = 0 and b*d = 0
- and 2*b - 1 = 0,
- {(2*a*c)*z4 + (2*b - 1)*z2 + (2*a*z1 - 2*c*w4 + w1 - 2*w2)}},
- {2*a*z1 - 2*c*w4 + w1 - 2*w2 <> 0 and a = 0 and 2*b - 1 = 0 and d = 0
- and w3 + w4 - 2*z1 = 0,
- {(2*a*c)*z4 + (2*b - 1)*z2 + (2*a*z1 - 2*c*w4 + w1 - 2*w2)}},
- 2
- {2*a*z1 + w1 - 2*w2 <> 0 and a <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0
- and a*b = 0 and a*c + 1 = 0 and a*d*z1 - d*w2 + w3 - 2*z1 = 0 and b*d = 0
- and 2*b - 1 = 0 and c*d - 1 = 0 and c = 0,
- {(2*c)*z3 + (2*b - 1)*z2 + (2*a*z1 + w1 - 2*w2)}},
- {a*z1 + b*w1 - 2*b*w5 + 2*b*z1 + c*w3 - 2*c*z1 - w2 + w5 - z1 <> 0 and a <> 0
- 2
- and 2*b - 1 <> 0 and a *z1 + a*c*w3 - 2*a*c*z1 - a*w2 + w3 + w4 - 2*z1 = 0
- and a*b = 0 and d = 0,
- {(c*d)*z4 - (a*z1 + b*w1 - 2*b*w5 + 2*b*z1 + c*w3 - 2*c*z1 - w2 + w5 - z1)}},
- {a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - c*w4 - w2 + w5 - z1 <> 0 and 2*b - 1 <> 0
- and d <> 0 and a*d*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 = 0 and a = 0
- and b*d = 0,
- {(a*c)*z4 + (a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - c*w4 - w2 + w5 - z1)}},
- {a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - c*w4 - w2 + w5 - z1 <> 0 and 2*b - 1 <> 0
- and a = 0 and d = 0 and w3 + w4 - 2*z1 = 0,
- {(a*c)*z4 + (a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - c*w4 - w2 + w5 - z1)}},
- {a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - w2 + w5 - z1 <> 0 and a <> 0 and 2*b - 1 <> 0
- 2
- and d <> 0 and a *z1 - a*w2 + w4 = 0 and a*b = 0 and a*c + 1 = 0
- and a*d*z1 - d*w2 + w3 - 2*z1 = 0 and b*d = 0 and c*d - 1 = 0 and c = 0,
- {c*z3 + (a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - w2 + w5 - z1)}},
- {a*z1 - c*d*w5 + c*d*z1 + c*w3 - 2*c*z1 - w2 + w5 - z1 <> 0 and a <> 0
- 2
- and c*d - 1 <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0 and a*b = 0
- and a*c + 1 = 0 and 2*a*z1 - c*d*w1 + 2*c*w3 - 4*c*z1 + w1 - 2*w2 = 0
- and 2*b + c*d - 1 = 0 and b = 0,
- {b*z2 + (a*z1 - c*d*w5 + c*d*z1 + c*w3 - 2*c*z1 - w2 + w5 - z1)}},
- {a <> 0 and b*d <> 0 and 2*b + c*d - 1 <> 0 and d <> 0
- 2 2 2
- and a *z1 - a*w2 + w4 = 0 and a*b = 0 and a*c*d *z1 + b*c*d *w1 - 2*b*c*d*w3
- 2 2
- + 4*b*c*d*z1 - 2*b*d*w5 + 2*b*d*z1 + 2*b*w3 - 4*b*z1 - c*d *w2 - c*d *w5
- 2
- + c*d *z1 + 2*c*d*w3 - 4*c*d*z1 + d*w5 - d*z1 - w3 + 2*z1 = 0 and a*c + 1 = 0
- and c*d - 1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- (c*d - 1)*z3 + (b*d)*z2 + (a*d*z1 - d*w2 + w3 - 2*z1),
- (2*b + c*d - 1)*z3 + (a*d*z1 + b*d*w1 - 2*b*w3 + 4*b*z1 - d*w2 + w3 - 2*z1)}}
- ,
- 2
- {a <> 0 and b*d <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0 and a*b = 0
- and a*c + 1 = 0 and a*d*z1 + b*d*w1 - 2*b*w3 + 4*b*z1 - d*w2 + w3 - 2*z1 = 0
- and 2*b + c*d - 1 = 0 and c*d - 1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- (c*d - 1)*z3 + (b*d)*z2 + (a*d*z1 - d*w2 + w3 - 2*z1),
- z3 + (d*w5 - d*z1 - w3 + 2*z1)}},
- {a <> 0 and 2*b + c*d - 1 <> 0 and c*d - 1 <> 0 and d <> 0
- 2
- and a *z1 - a*w2 + w4 = 0 and a*b = 0 and a*c*d*z1 - a*z1 + b*c*d*w1
- 2 2 2 2
- - 2*b*c*d*w5 + 2*b*c*d*z1 - b*w1 + 2*b*w5 - 2*b*z1 - c *d *w5 + c *d *z1
- 2 2
- + c *d*w3 - 2*c *d*z1 - c*d*w2 + 2*c*d*w5 - 2*c*d*z1 - c*w3 + 2*c*z1 + w2
- - w5 + z1 = 0 and a*c + 1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- (c*d - 1)*z3 + (b*d)*z2 + (a*d*z1 - d*w2 + w3 - 2*z1),
- (2*b + c*d - 1)*z2 + (2*a*z1 - c*d*w1 + 2*c*w3 - 4*c*z1 + w1 - 2*w2)}},
- 2
- {a <> 0 and 2*b - 1 <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0 and a*b = 0
- and a*c + 1 = 0 and a*d*z1 - d*w2 + w3 - 2*z1 = 0
- and a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - w2 + w5 - z1 = 0 and b*d = 0
- and c*d - 1 = 0 and c = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- (2*c)*z3 + (2*b - 1)*z2 + (2*a*z1 + w1 - 2*w2)}},
- {a <> 0 and 2*b - 1 <> 0
- 2
- and a *z1 + a*c*w3 - 2*a*c*z1 - a*w2 + w3 + w4 - 2*z1 = 0 and a*b = 0
- and a*z1 + b*w1 - 2*b*w5 + 2*b*z1 + c*w3 - 2*c*z1 - w2 + w5 - z1 = 0
- and d = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- (2*c*d)*z4 - (2*b - 1)*z2 - (2*a*z1 + 2*c*w3 - 4*c*z1 + w1 - 2*w2),
- z4 - (w5 - z1)}},
- 2
- {a <> 0 and b <> 0 and c*d - 1 <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0
- and a*b = 0 and a*c + 1 = 0
- and 2*a*z1 - c*d*w1 + 2*c*w3 - 4*c*z1 + w1 - 2*w2 = 0 and 2*b + c*d - 1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- (c*d - 1)*z3 + (b*d)*z2 + (a*d*z1 - d*w2 + w3 - 2*z1),
- b*z2 + (a*z1 - c*d*w5 + c*d*z1 + c*w3 - 2*c*z1 - w2 + w5 - z1)}},
- 2
- {a <> 0 and c*d - 1 <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0 and a*b = 0
- and a*c + 1 = 0 and 2*a*z1 - c*d*w1 + 2*c*w3 - 4*c*z1 + w1 - 2*w2 = 0
- and a*z1 - c*d*w5 + c*d*z1 + c*w3 - 2*c*z1 - w2 + w5 - z1 = 0
- and 2*b + c*d - 1 = 0 and b = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- (c*d - 1)*z3 + (b*d)*z2 + (a*d*z1 - d*w2 + w3 - 2*z1)}},
- 2
- {a <> 0 and c <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0 and a*b = 0
- and a*c + 1 = 0 and a*d*z1 - d*w2 + w3 - 2*z1 = 0 and b*d = 0 and c*d - 1 = 0
- ,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- (2*c)*z3 + (2*b - 1)*z2 + (2*a*z1 + w1 - 2*w2),
- z2 - (w1 - 2*w5 + 2*z1)}},
- 2
- {a <> 0 and d <> 0 and a *z1 - a*w2 + w4 = 0 and a*b = 0 and a*c + 1 = 0
- and a*d*z1 - d*w2 + w3 - 2*z1 = 0 and 2*a*z1 + w1 - 2*w2 = 0 and b*d = 0
- and 2*b - 1 = 0 and c*d - 1 = 0 and c = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- z4 - (w5 - z1),
- c*z3 + b*z2 + (a*z1 - w2 + w5 - z1)}},
- 2
- {a <> 0 and a *z1 + a*c*w3 - 2*a*c*z1 - a*w2 + w3 + w4 - 2*z1 = 0 and a*b = 0
- and 2*a*z1 + 2*c*w3 - 4*c*z1 + w1 - 2*w2 = 0 and 2*b - 1 = 0 and d = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- (c*d)*z4 - b*z2 - (a*z1 + c*w3 - 2*c*z1 - w2 + w5 - z1),
- z4 - (w5 - z1)}},
- {b*d <> 0 and d*w5 - d*z1 - w3 - w4 + 2*z1 <> 0 and d <> 0 and
- a*d*z1 + b*d*w1 - 2*b*w3 - 2*b*w4 + 4*b*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1
- = 0 and a = 0,
- {a*z4 + (d*w5 - d*z1 - w3 - w4 + 2*z1)}},
- {b*d <> 0 and d <> 0 and
- a*d*z1 + b*d*w1 - 2*b*w3 - 2*b*w4 + 4*b*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1
- = 0 and a = 0 and d*w5 - d*z1 - w3 - w4 + 2*z1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- (a*c*d - a)*z4 + (b*d)*z2 + (a*d*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1),
- z4 - (w5 - z1)}},
- {2*b - 1 <> 0 and d <> 0 and a*d*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 = 0
- and a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - c*w4 - w2 + w5 - z1 = 0 and a = 0
- and b*d = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- (2*a*c)*z4 + (2*b - 1)*z2 + (2*a*z1 - 2*c*w4 + w1 - 2*w2),
- z4 - (w5 - z1)}},
- {2*b - 1 <> 0 and a*z1 + b*w1 - 2*b*w5 + 2*b*z1 - c*w4 - w2 + w5 - z1 = 0
- and a = 0 and d = 0 and w3 + w4 - 2*z1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- (2*a*c)*z4 + (2*b - 1)*z2 + (2*a*z1 - 2*c*w4 + w1 - 2*w2),
- z4 - (w5 - z1)}},
- {d <> 0 and a*d*z1 - c*d*w4 - d*w2 + w3 + w4 - 2*z1 = 0
- and 2*a*z1 - 2*c*w4 + w1 - 2*w2 = 0 and a = 0 and b*d = 0 and 2*b - 1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- (a*c)*z4 + b*z2 + (a*z1 - c*w4 - w2 + w5 - z1),
- z4 - (w5 - z1)}},
- {w3 + w4 - 2*z1 <> 0 and a = 0 and d = 0,
- {(a + d)*z4 - (w3 + w4 - 2*z1)}},
- {2*a*z1 - 2*c*w4 + w1 - 2*w2 = 0 and a = 0 and 2*b - 1 = 0 and d = 0
- and w3 + w4 - 2*z1 = 0,
- {z4 + c*z3 + b*z2 + (a*z1 - w2),
- a*z4 - z3 - w4,
- d*z4 + z3 - (w3 - 2*z1),
- 2*z4 + z2 - w1,
- (a*c)*z4 + b*z2 + (a*z1 - c*w4 - w2 + w5 - z1),
- z4 - (w5 - z1)}}}
- torder oo;
- {{z4,z3,z2,z2},revgradlex}
- % Two dimensional transportation problem
- oo := torder({x33,x32,x31,x23,x22,x21,x13,x12,x11},lex);
- oo := {{},lex}
- gsys({x11+x12+x13-a1,x11+x21+x31-b1,x12+x22+x32-b2,x13+x23+x33-b3,
- x21+x22+x23-a2,x31+x32+x33-a3});
- {{a1 + a2 + a3 - b1 - b2 - b3 <> 0,
- {a1 + a2 + a3 - b1 - b2 - b3}},
- {a1 + a2 + a3 - b1 - b2 - b3 = 0,
- {x33 + x32 + x31 - a3,
- x33 + x23 + x13 - b3,
- x32 + x22 + x12 - b2,
- x31 + x21 + x11 - b1,
- x23 + x22 + x21 - a2,
- x13 + x12 + x11 - a1}}}
- torder oo;
- {{x33,x32,x31,x23,x22,x21,x13,x12,x11},lex}
- % Thomas Weis's Example 1
- oo := torder({x,y,z},lex);
- oo := {{},lex}
- gsys({z*y*x-b*y*x-b*z*x+b**2*x-b*z*y+b**2*y+b**2*z-(n3+b**3),
- z*y*x-a*y*x-a*z*x+a**2*x-a*z*y+a**2*y+a**2*z-(n3+a**3),
- z*y*x-n1});
- 3 3
- {{a *b - a*b + a*n1 - a*n3 - b*n1 + b*n3 <> 0 and a - b <> 0
- 2 2
- and a *b - a*b = 0,
- 2 2 2 2 2 2
- {(a *b - a*b )*x + (a *b - a*b )*y + (a *b - a*b )*z
- 3 3
- - (a *b - a*b + a*n1 - a*n3 - b*n1 + b*n3)}},
- 3
- {a - n1 + n3 <> 0 and a - b = 0 and a = 0,
- 2 2 2 3
- {a*x*y + a*x*z - a *x + a*y*z - a *y - a *z + (a - n1 + n3)}},
- 2 2
- {a *b - a*b <> 0 and a - b <> 0,
- 2 2 2 3
- {x*y*z - a*x*y - a*x*z + a *x - a*y*z + a *y + a *z - (a + n3),
- 2 2 2 3
- x*y*z - b*x*y - b*x*z + b *x - b*y*z + b *y + b *z - (b + n3),
- x*y*z - n1,
- 2 2 2 2
- (a - b)*x*y + (a - b)*x*z - (a - b )*x + (a - b)*y*z - (a - b )*y
- 2 2 3 3
- - (a - b )*z + (a - b ),
- 2 2 2 2 2 2
- (a *b - a*b )*x + (a *b - a*b )*y + (a *b - a*b )*z
- 3 3
- - (a *b - a*b + a*n1 - a*n3 - b*n1 + b*n3),
- 2 2 2 2 2
- (a *b - a*b )*y + (a *b - a*b )*y*z
- 3 3 2 2 2
- - (a *b - a*b + a*n1 - a*n3 - b*n1 + b*n3)*y + (a *b - a*b )*z
- 3 3
- - (a *b - a*b + a*n1 - a*n3 - b*n1 + b*n3)*z
- 3 2 2 3 2 2 2 2
- + (a *b - a *b + a *n1 - a *n3 - b *n1 + b *n3),
- 2 2 3 3 3 2
- (a *b - a*b )*z - (a *b - a*b + a*n1 - a*n3 - b*n1 + b*n3)*z
- 3 2 2 3 2 2 2 2 2 2
- + (a *b - a *b + a *n1 - a *n3 - b *n1 + b *n3)*z - (a *b*n1 - a*b *n1)}},
- 3 3 2 2
- {a - b <> 0 and a *b - a*b + a*n1 - a*n3 - b*n1 + b*n3 = 0 and a *b - a*b = 0
- ,
- 2 2 2 3
- {x*y*z - a*x*y - a*x*z + a *x - a*y*z + a *y + a *z - (a + n3),
- 2 2 2 3
- x*y*z - b*x*y - b*x*z + b *x - b*y*z + b *y + b *z - (b + n3),
- x*y*z - n1,
- 2 2 2 2
- (a - b)*x*y + (a - b)*x*z - (a - b )*x + (a - b)*y*z - (a - b )*y
- 2 2 3 3
- - (a - b )*z + (a - b ),
- 2 2 2 2 2 2 2 2
- (a - b)*x*z - (a - b )*x*z + (a *b - a*b )*x + (a - b)*y*z - (a - b )*y*z
- 2 2 2 2 2 3 2 2 3
- + (a *b - a*b )*y - (a - b )*z + (a + a *b - a*b - b )*z
- 3 3
- - (a *b - a*b - a*n3 + b*n3),
- 2 2 2 2 2 2 2 2 2 2 2
- (a - b)*y *z - (a - b )*y *z + (a *b - a*b )*y - (a - b )*y*z
- 3 2 2 3 3 3
- + (a + a *b - a*b - b )*y*z - (a *b - a*b - a*n3 + b*n3)*y
- 2 2 2 3 3
- + (a *b - a*b )*z - (a *b - a*b - a*n3 + b*n3)*z
- 3 2 2 3 2 2
- + (a *b - a *b - a *n3 + b *n3)}},
- {a <> 0 and a - b = 0,
- 2 2 2 3
- {x*y*z - a*x*y - a*x*z + a *x - a*y*z + a *y + a *z - (a + n3),
- 2 2 2 3
- x*y*z - b*x*y - b*x*z + b *x - b*y*z + b *y + b *z - (b + n3),
- x*y*z - n1,
- 2 2 2 3
- a*x*y + a*x*z - a *x + a*y*z - a *y - a *z + (a - n1 + n3),
- 2 2 2 2 2 2 3
- a*x*z - a *x*z + a*y*z - a *y*z - a *z + (a - n1 + n3)*z + a*n1,
- 2 2 2 2 2 2 3
- a*y *z - a *y *z - a *y*z + (a - n1 + n3)*y*z + (a*n1)*y + (a*n1)*z
- 2
- - a *n1}},
- 3
- {a - n1 + n3 = 0 and a - b = 0 and a = 0,
- 2 2 2 3
- {x*y*z - a*x*y - a*x*z + a *x - a*y*z + a *y + a *z - (a + n3),
- 2 2 2 3
- x*y*z - b*x*y - b*x*z + b *x - b*y*z + b *y + b *z - (b + n3),
- x*y*z - n1}}}
- torder oo;
- {{x,y,z},lex}
- % Thomas Weis's Example 2
- oo := torder({z,y,x,w},lex);
- oo := {{},lex}
- gsys({w*x*y*z-x*y*z-w*y*z+y*z-w*x*z+x*z+w*z-z-w*x*y+x*y+w*y-
- y+w*x-x-w-(b-1),
- w*x*y*z-2*x*y*z-2*w*y*z+4*y*z-2*w*x*z+4*x*z+4*w*z-8*z-2*w*x*y+4x*y+
- 4*w*y-8*y+4*w*x-8*x-8*w-(c-16),
- w*x*y*z-a,z+y+x+w-v});
- {{true,
- {z*y*x*w - z*y*x - z*y*w + z*y - z*x*w + z*x + z*w - z - y*x*w + y*x + y*w - y
- + x*w - x - w - (b - 1),
- z*y*x*w - 2*z*y*x - 2*z*y*w + 4*z*y - 2*z*x*w + 4*z*x + 4*z*w - 8*z - 2*y*x*w
- + 4*y*x + 4*y*w - 8*y + 4*x*w - 8*x - 8*w - (c - 16),
- z*y*x*w - a,
- z + y + x + w - v,
- 2 2 2 2 2
- y *x + y *w - 3*y + y*x + 2*y*x*w - (v + 3)*y*x + y*w - (v + 3)*y*w
- 2 2 2 2
- + (3*v)*y + x *w - 3*x + x*w - (v + 3)*x*w + (3*v)*x - 3*w + (3*v)*w
- + (b - c - 7*v + 15),
- 2 2 2
- 2*y + 2*y*x + 2*y*w - (2*v)*y + 2*x + 2*x*w - (2*v)*x + 2*w - (2*v)*w
- + (a - 2*b + c + 6*v - 14),
- 3 2 2 2
- 2*x + 2*x *w - (2*v)*x + 2*x*w - (2*v)*x*w + (a - 2*b + c + 6*v - 14)*x
- 3 2
- + 2*w - (2*v)*w + (a - 2*b + c + 6*v - 14)*w - (3*a - 4*b + c + 4*v - 12),
- 4 3 2
- 2*w - (2*v)*w + (a - 2*b + c + 6*v - 14)*w - (3*a - 4*b + c + 4*v - 12)*w
- + 2*a}}}
- torder oo;
- {{z,y,x,w},lex}
- end;
- Time for test: 451 ms, plus GC time: 21 ms
|