CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
/home/daniel/maple/lib9/Involutive.............................................................................................................................................................................................................................�,�F����nvolutiveInvolutiveTInvolutiveAInvolutive/versionInvolutive/compiledInvolutive/homalgInvolutiveQS/homalgInvolutive/copyright_InvolutiveInvolutive/pplexInvolutive/pplex_ZInvolutive/pplex_POTInvolutive/pplex_Z_POTInvolutive/pplex_entr_blockInvolutive/pplex_Z_entr_blockInvolutive/pplex_blockInvolutive/pplex3Involutive/pnegplexInvolutive/pnegplex_ZInvolutive/pnegplex_POTInvolutive/pnegplex_Z_POTInvolutive/pnegplex_entr_blockInvolutive/pnegplex_Z_entr_blockInvolutive/pnegplex_blockInvolutive/pdegrevlexInvolutive/pdegrevlex_ZInvolutive/pdegrevlex_POTInvolutive/pdegrevlex_Z_POTInvolutive/pdegrevlex_entr_blockInvolutive/pdegrevlex_Z_entr_blockInvolutive/pdegrevlex_blockInvolutive/pdegrevlex3................,uM7R0
I3Involutive/pplex_Zf*6$%"aG%"bG6#%"iG6#%jnCopyright~(C)~2004-2010~by~Daniel~Ro
bertz.~All~rights~reserved.G6"C%?(8$"""F/-%%nopsG6#&9$6#F/%%trueG@&2&F36#F.&&9%
F5F:-%'RETURNG6#F62F;F9-F?6#%&falseG@&2-%$absG6#&F=6#""$-FH6#&F4FKFB2FMFGF>@%2&
F46#""#&F=FTFDF6F+F+F+F+
M7R0
IEInvolutive/pdegrevlex_deg_entr_blockf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCo
pyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C)@&2&%,_entrbl
ocksG6#&9$6#""#&F36#&9%F7-%'RETURNG6#%&falseG2F9F2-F>6#%%trueG>8%-%%nopsG6#&F66
#""">8&-%$addG6$*&&FJ6#8$FL&%(_vardegGFTFL/FU;FLFF>8'-FP6$*&&&F<FKFTFLFVFLFX@'2
FNFenFB2FenFNF=?(FUFF!""FLFD@&2FinFSFB2FSFinF=@$2F5F;F=FDF.F.F.F.
M7R0
IBInvolutive/pdeglex_deg_entr_blockf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCopyr
ight~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C)@&2&%,_entrblock
sG6#&9$6#""#&F36#&9%F7-%'RETURNG6#%&falseG2F9F2-F>6#%%trueG>8%-%%nopsG6#&F66#""
">8&-%$addG6$*&&FJ6#8$FL&%(_vardegGFTFL/FU;FLFF>8'-FP6$*&&&F<FKFTFLFVFLFX@'2FNF
enFB2FenFNF=?(FUFLFLFFFD@&2FinFSF=2FSFinFB@$2F5F;F=FDF.F.F.F.
M7R0
ICInvolutive/pnegdeglex_Z_entr_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyrigh
t~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C)@&2&%,_entrblocksG6
#&9$6#""#&F26#&9%F6-%'RETURNG6#%&falseG2F8F1-F=6#%%trueG>8%-%(convertG6$&F56#""
"%"+G>8&-FG6$&F;FJFL@'2FEFNF<2FNFEFA?(8$FKFK-%%nopsG6#FIFC@&2&FQ6#FV&FIFgnF<2Fh
nFfnFA@&2-%$absG6#&F;6#""$-F]o6#&F5F`oF<2FboF\oFA@$2F4F:F<FCF-F-F-F-
M7R0
I<Involutive/pnegdeglex_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2
004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8%-%(convertG6$&9$6#"""%"
+G>8&-F26$&9%F6F8@'2F0F:-%'RETURNG6#%&falseG2F:F0-FB6#%%trueG?(8$F7F7-%%nopsG6#
F4FH@&2&F=6#FJ&F4FQFA2FRFPFFFHF-F-F-F-
M7R0
I@Involutive/block_ord_entr_blockf*6&%"aG%"bG%$sepG%+termordersG6#%"iG6#%jnCopy
right~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C$@&2&%,_entrbloc
ksG6#&9$6#""#&F26#&9%F6-%'RETURNG6#%&falseG2F8F1-F=6#%%trueG@'4-&9'6#"""6$7$&&F
5FI6#;FJ&9&FIF47$&&F;FIFOF:F?/FMFTC$?(8$F7FJ-%%nopsG6#FRFC@&4-&FH6#FY6$7$&FN6#;
,&&FR6#,&FYFJ!""FJFJFJFJ&FRF[oF47$&FUF_oF:F<0F^oFhoFA@%2F4F:F?FCFCF-F-F-F-
M7R0
I;Involutive/nonmult_prolongf*6%'%"aG%%listG%"dG'%"bGF'6#%"iG6#%jnCopyright~(C)
~2005-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@$0&9$6#""#&9&F5-%'RETUR
NG6#%&falseG?(8$"""F?%&_nvarG%%trueG@(2&F86$F?F>&F4FEF9/,&FFF?F?F?FD@%2""!&9%6#
F>F9[2FFFDF9>F>,&F>F?F?F??(F/F?F?F/31F>F@/FFFD>F>FR-%&evalbG6#2F@F>F/F/F/F/
M7R0
I9Involutive/cancel_locvarf*6&%"pG%'lmprocG%$varG%(loc_varG64%"cG%"dG%#d2G%#dmG
%"iG%"jG%"kG%"mG%"qG%%nvarG%#lvG%$nlvG%"uG%#uiG%'nounitG%%contG%*leadcoeffG%*fi
rst_runG6#%epCopyright~(C)~2000-2010~by~Daniel~Robertz~and~Markus~Lange-Hegerma
nn.~All~rights~reserved.G6"C,>8--%%nopsG6#9&>8.7#-%$seqG6$&FE6#&9'6#8(/FQ;"""-F
C6#FO>8/-%'removeG6%%$hasG7#-%"$G6#;FTFAFO>8,9$>82%&falseG>85%%trueG>80FT>FQFT?
(F>FTFTF>34F`o1FQ-FC6#F]oC%>8+&F]oFP@&3-Ffn6$F`pFG-%%typeG6$F`p%"+GC'>8$Fdo>8%"
"!>8*FT?(F>FTFTF>3F\q1Faq-FC6#F`pC$@%/F^qF_q>F^q7#-FJ6$-%'degreeG6$-%#opG6$FaqF
`p&FE6#8)/FfrF[oC'>8&F[r>8'7#-FJ6$-%$minG6$&F^qFer&FjrFerFgr>FfrFT?(F>FTFTF>31F
fr-FC6#FXF\qC$@$0&Fjr6#&FXFer&F^qF_tC$>F\qFao>F`oFdo>Ffr,&FfrFTFTFT>F^qF\s>Faq,
&FaqFTFTFT@%F\qC$>81-%'expandG6#*&F`pFT-%$mulG6$)FdrFcsFgr!""@%/-%(ldegreeG6$F]
uFEF_qC$@%FcoC$>FfoF]u>FcoFao>Ffo-%$gcdG6$FfoF]u@$/-F_r6$FfoFEF_qC$>F\qFao>F`oF
do>F`oFdo>F`oFdo0F`pF_q>F`oFdo>FQ,&FQFTFTFT@%31""&9#&9"6#Few-%'RETURNG6#FfoC$@$
FjoC'>83-%(contentGFhv@$0-%&minusG6$-%'indetsG6#Fax<#-%&aliasGF><">%)_inv_denG7
$-Fbr6#FayFax>84&-9%6#F^o6$""#FT@$0-Fgx6$-Fjx6#FfyF\yF_y>Fay7$FcyFfy>F]o-%$mapG
6$f*6#F%F>6$%)operatorG%&arrowGF>-%)simplifyG6#*&F^oFTT#FfuF>F>6$F6FfoF]o-F[xF]
pF>FdyF>F>
M7R0
I6Involutive/pjanet_divf*6%%"LG%%seqvG%(loc_varG6.%"aG%"iG%"jG%"lG%"FG%"QG%"kG%
"nG%#suG%$conG%(allmultG%'bufferG6#%\pCopyright~(C)~2000-2009~by~Carlos~F.~Cid~
and~Daniel~Robertz.~All~rights~reserved.G6"C*>8+-%%nopsG6#9$@$/F:""!-%'RETURNG6
#7$F>7">8.7#-%"$G6$%)infinityG%&_nvarG>8(F>>8)FF@%09&FF>FP-%'subsopG6$/F:7*&FP6
$F:"""&FP6$F:""#&FP6$F:""$7#-FK6$FAFNFH&FP6$F:""'FF&FP6$F:"")FP>FPFW?(8%,&F:Fhn
!""FhnF\pFhn%%trueGC(>8,FH>8-&FP6$Fjo""%>8&Fhn?(F7FhnFhnF731FgpFN/&FP6&,&FjoFhn
FhnFhnF^oFhnFgp&FP6&FjoF^oFhnFgpC%>F`p-FX6$/Fgp&FP6%F^q""&FgpF`p@%2&F`p6#FgpFM@
$0&FbpF\r,&F[rFhnFhnFhnC%>8/-%(collectG6%7$-%$mapG6$f*6#F)F76$%)operatorG%&arro
wGF7*&)&T$6#T%,&&T'FdsFhnFhnFhnFhnF>FhnF7F76(F&9%F+FgpF1F`p&FP6%FjoFhnFhn-Fir6$
f*F\sF7F]sF7F`sF7F7Fis&FP6%FjoFhnF[oFjs%,distributedG>FR7$-%#opG6#FR7*Fcr&FP6$F
joF[o-FX6$/Fhn-FX6$/Fgp,(F_qFhnF[rFhnFhnFhn&FP6%FjoF^oFhn&FP6$FjoF^oF_oFH7$&FP6
%FjoFdoFhn*&)&FjsF\rF`rFhn&FP6%FjoFdoF[oFhnFdu-%5Involutive/ecart_lm1G6&&FP6$Fj
oFhnFitFjsFU>Fbp-FX6$/FgpF`rFbp>Fbp-FX6$/FgpFAFbp>Fgp,&FgpFhnFhnFhn@$FjpC$@%%5I
nvolutive/janetlikeGC%>8',&F\qFhnF_qF\p>F`p-FX6$/Fgp,&FcwFhnF\pFhnF`p@$0F_rFcwC
%>Fcr-Fer6%7$-Fir6$f*F\sF7F]sF7*&)FbsFhsFhnF>FhnF7F76(F&FjsF+FgpF,FcwF[t-Fir6$f
*F\sF7F]sF7FdxF7F7FfxF`tFjsFbt>FR7$Fet7*FcrFit-FX6$/Fhn-FX6$/Fgp,&F_qFhnFcwFhnF
buFduF_oFH7$Fgu*&)F[vFcwFhnF\vFhnFduF^v>Fbp-FX6$/FgpFcwFbpC$>F`p-FX6$FjvF`p@$/F
_rFAC%>Fcr-Fer6%7$-Fir6$f*F\sF7F]sF7*&FbsFhnF>FhnF7F76&F&FjsF+FgpF[t-Fir6$f*F\s
F7F]sF7FizF7F7FjzF`tFjsFbt>FR7$Fet7*FcrFit-FX6$/Fhn-FX6$/Fgp,&F_qFhnFhnFhnFbuFd
uF_oFH7$Fgu*&F[vFhnF\vFhnFduF^v>Fbp-FX6$/FgpFhnFbp>Fbp-FX6$-%$seqG6$/8*FA/Fe\l;
F\wFNFbp>FP-FX6$/Fjo-FX6$/FepFbp-FX6$/FhqF`p&FP6#FjoFP-FC6#7$FPFRF76#FNF7F7
M7R0
I9Involutive/autoreductionf*6('%"LG%%listG%'N_FormG%%seqvG%'lmprocG%'ppprocG%(l
oc_varG6*%"gG%"hG%"iG%#lmG%"FG%"TG%*zero_listG%.rhs_zero_listG6#%jnCopyright~(C
)~2002-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(>8*7#-%"$G6$""!-%%nopsG
6#&9$6%"""FGFG>8+7#-F>6$F@-FB6#&FE6%FGFG""#>8(FE>8&FG?(F8FGFGF81FU-FB6#FSC&>8$&
FS6#FU>8)-%'subsopG6$/FU%%NULLGFS>8%-9%6(&Ffn6#FGFjn9&9'9(9)@%/Fao7$F;FI>FSF[oC
&>8'-Fho6#&FaoFfo@$4%4Involutive/ratcoeffG>Fap-F\o6$/FG7$-%#opG6#&FapFfo&&Fap6#
FQFfoFap@%/&FfnFcqF`q>FS-F\o6$/FU7*FaoFfqF`q&Ffn6#""%&Ffn6#""&Fbq7"-%1Involutiv
e/ecartG6&FaoFapFgoFjoFS>FS-F\o6$/FU7*FaoFfqF`q7#-F>6$F@%&_nvarGF_rFbqFbrFcrFS>
FU,&FUFGFGFGFSF8F8F8F8
M7R0
I<Involutive/readbinaryoutputf*6#%&fnameG6$%"iG%"nG6#%jnCopyright~(C)~2006-2010
~by~Daniel~Robertz.~All~rights~reserved.G6">8%-%$catG6$9$Q(.binaryF+F+6&%+_JB_f
actorG%3_JB_factor_multvarG%(_JB_varG%*_JB_compaGF+F+
M7R0
I2Involutive/NotHasf*6%%"GG'%%varsG%%listG'%#viGF(66%"aG%"iG%"lG%"FG%#NGG%$varG
%%var2G%(var_ordG%'vt_degG%(deg_ordG%'lmprocG%,force_evalaG%)tup_permG%'n_entrG
%)rhs_entrG%'no_rhsG%%seqvG%&m_ordG%)tmp_nvarG%)entr_posG6#%jnCopyright~(C)~200
0-2010~by~Daniel~Robertz.~All~rights~reserved.G6"CC>8'-%6Involutive/proc_inputG
6#9$>81&FE6#""">82&FE6#""#>83&FE6#""$>8/&FE6#""&>8)-%5Involutive/proc_varsG6$9%
FK>8+&FinFR>8,&FinFW>8-&Fin6#""%>80&FinFfn>87&Fin6#""'>Fin&FinFM>86%&_nvarG>Fep
-%%nopsG6#Fin>847#-%$seqG6$-%$catG6$%#_xG8%/Fdq;FNFep>F_o-%%subsG6$7#-F^q6$/&Fi
n6#Fdq&F[qF`rFeqF_o>FE-%(collectG6%&FEFgoFin%,distributedG@%0F[qFinC$>FE-%$mapG
6$f*6#F,FB6$%)operatorG%&arrowGFB-Fiq6$7#-F^q6$/&T'6#T%&T#F\t/F]tFfqFIFBFB6(F<F
[qF-FdqF1FinFE>8*-F]s6$f*F`sFBFasFBFdsFBFBFat9&>FctFgt@%/F_o7">85Fho>F]u7#-%"$G
6$Fho-Fhp6#F_o?(FdqFhoFN9#%%trueG@'5-%%typeG6$&9"F`r%(integerG-F[v6$F]vF(>F]uF]
v-F[v6$F]v%'stringGC$>8&F]v?(8$FNFN-%'lengthG6#FhvFgu@&/&Fhv6#FjvQ"SFB>FZFgu0F`
wQ!FB-%&ERRORG6#%?option~must~be~the~string~"S".G-Fgw6#%0invalid~option.G>Fhv-%
4Involutive/proc_ordG6*F]uFinF_oFboFeoF[qF]p4FZ@$&FhvFgo>F]pF[u@$/&Fbo6#;,&FepF
NFNFN,&FepFNFKFN7#-Fau6$""!FK>FboF_y>8.-%&parseG6#-Faq6/Q@g->`Involutive/pol_le
ad_mon`(g,FB-%(convertG6$FKFevQ",FB-Fjy6$F[qFevF\z-Fjy6$&FhvFMFevF\z-Fjy6$F]pFe
vF\z-Fjy6$&FhvFfnFevF\z-Fjy6$FboFevQ")FB@$0Fjo7#-Fau6#;FNFK>FE-F]s6$f*6#F-6#%"j
GFBFB-%'subsopG6$/FN7#-F^q6$&&FIFM6#&F_tFaw/Fjv;FNF]tFIFBFB6&F8FjoF9FKFE>8(F[u?
(FdqFNFN-Fhp6#FEFguC$>Fhv-Fby6#&&FEF`rFM@$4-%$hasG6$&Fhv6$FSFSFct>Ff\l7$-%#opG6
#Ff\lF_]l@$Fir>Ff\l-F]s6$f*F`sFBFasFBFdsFBFB6(F1FinF-FdqF<F[qFf\l@$F[[lC$>Fjo-F
]s6$f*Fd[lFe[lFBFBC$-%'memberG6%FIF_t.FjvFjvFBFB6$F8FjoF\[l>Ff\l-F]s6$f*Fd[lFe[
lFBFBFg[lFBFBFd\lFf\l@$/FKFN>Ff\l-F]s6$f*F`sFBFasFB-Fh[l6$/FN-Fj]l6#F_\lFIFBFBF
BFf\l@%FU>Ff\l-F]s6$f*F`sFBFasFBF_\lFBFBFBFf\l@%/FPFN>Ff\l-F]s6$f*F`sFBFasFB/F_
\l-Fj]l6#&FIFRFBFBFBFf\l>Ff\l-F]s6$f*F`sFBFasFB/F_\lF[alFBFBFBFf\l>FepFdp-%'RET
URNGF[^lFB6#FepFBFB
M7R0
I5Involutive/jetsgrankf*6#%"MG6$%"iG%#zlG6#%inCopyright~(C)~2000-2002~by~Gehrt~
Hartjen.~All~rights~reserved.G6"C&>8$-&%'linalgG6#%'rowdimG6#9$>8%7#-%"$G6$""!-
&F16#%'coldimGF4?(F+"""FBF+32F<F./-%(convertG6$-&F16#%$rowG6$F5F.%%listGF7>F.,&
F.FB!""FBF.F+F+F+F+
M7R0
I7Involutive/jetszerocolf*6#%"MG6#%#ZLG6#%inCopyright~(C)~2000-2002~by~Gehrt~Ha
rtjen.~All~rights~reserved.G6"C$>8$7#-%"$G6$""!-&%'linalgG6#%'rowdimG6#9$-%$map
G6$f*6#%"iGF*6$%)operatorG%&arrowGF*@%-%&evalbG6#/-%(convertG6$-&F56#%$colG6$T&
F9%%listGT#F9%%NULLGF*F*6&F'F-F%F97#-F06#;"""-&F56#%'coldimGF8F*F*F*F*
M7R0
I:Involutive/PolMinPolyGINVf*6%%"pG'%"BG%%listG'%%varsGF(6S%"aG%"bG%"cG%"iG%"jG
%"kG%"lG%"nG%"rG%"sG%"vG%"xG%"zG%#hsG%"FG%"SG%'n_entrG%)rhs_entrG%'no_rhsG%$var
G%)entr_posG%(var_ordG%)tup_permG%(deg_ordG%'vt_degG%%fextG%&m_ordG%)alg_elemG%
+trans_elemG%(algextsG%-algextindetsG%/transextindetsG%*low_boundG%*upp_boundG%
*donotreadG%)radicalsG%(nocheckG%'compatG%*checkginvG%(rootofsG%,ginvrootofsG%+
tracedenomG%*quietmodeG%+time_boundG%'minpolG%#suG%+f_alg_elemG%+B_alg_elemG%%a
lgoG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"Cho@
$0%7Involutive/initializedG.%%trueG-%0Involutive/initGFin@$4%4Involutive/ratcoe
ffG-%&ERRORG6#%fnnot~implemented~yet~for~involutive~bases~over~the~integers.G>8
2-%6Involutive/proc_inputG6#9%>84&Fjo6#""">85&Fjo6#""#>86&Fjo6#""$>8?&Fjo6#""'>
8SF_q>8@&Fjo6#""(@$52FcpF`p4Fjp-Ffo6#%goexpecting~an~ideal~rather~than~a~module
~of~tuples~(and~no~right~hand~sides).G>87-%5Involutive/proc_varsG6$9&F`p>89&Fbr
Fgp>8<&FbrF\q>8;&Fbr6#""%>8:&Fbr6#""&>88&FbrFaq>Fbr&FbrFbp@$4-%%typeG6$9$-%(pol
ynomG6$%)anythingGFbr-Ffo6#-%$catG6%%9expecting~polynomial~in~G-%(convertG6$Fbr
%'stringG%4~as~first~argument.G>Ffq-%'removeG6$f*6#F/Fin6$%)operatorG%&arrowGFi
n-%'memberG6$FatT#FinFin6$F?FbrFfq>8&%2Involutive/characG>8/.%'lambdaG>8Q""!>8E
"#I>8A7">8BF^w>8CF^w>8=Q!Fin>8OFhv>8.-F]u6$-%+kerneloptsG6#%(versionGF_u>8N-%&e
valbG6#52Fhv-%+searchtextG6$Q&APPLEFinFiw/-%*substringG6$-F]u6$-%*interfaceG6#.
F_xF_u;Fcp"#GQ=Standard~Worksheet~InterfaceFin>8T%%NULLG>8F%&falseG>8MF]z>8HF]z
>8>Fas?(8'FasFcp9#F_o@)5-F_t6$&9"6#Fez%(integerG-F_t6$F[[lF(>FczF[[l-F_t6$F[[l%
)equationGC$@$4-F_t6$-%#opG6$FcpF[[lF_u-Ffo6#%\oexpecting~a~string~on~the~left~
hand~side~of~an~optional~equation.G@;/Fj[lQ%NameFinC$@$4-F_t6$-F[\l6$FhpF[[lF_u
-Ffo6#%Fexpecting~a~string~for~option~"Name".G>FdwFh\l/Fj[lQ%charFinC$@$4-F_t6$
Fh\l%*nonnegintG-Ffo6#%Qexpecting~0~or~a~prime~number~for~option~"char".G>F`vFh
\l/Fj[lQ%timeFinC$@$Fb]l-Ffo6#%Sexpecting~time~bound~in~seconds~for~option~"tim
e".G>FgwFh\l/Fj[lQ&quietFinC$@$4-F_t6$Fh\l%(booleanG-Ffo6#%Lexpecting~boolean~v
alue~for~option~"quiet".G>FaxFh\l/Fj[lQ&denomFinC$@$Ff^l-Ffo6#%Lexpecting~boole
an~value~for~option~"denom".G>F_zFh\l/Fj[lQ*algorithmFin>FiyF[[l/Fj[lQ*donotrea
dFinC$@$Ff^l-Ffo6#%Pexpecting~boolean~value~for~option~"donotread".G>F\zFh\l5/F
j[lQ'degreeFin/Fj[lQ'maxdegFinC$@$4-F_t6$Fh\l%'posintG-Ffo6#%Nexpecting~a~posit
ive~integer~as~degree~bound.G>FjvFh\l/-F]y6$Fj[l;FcpF]qQ$varFinC$@$4-F_t6$Fh\l%
%nameG-Ffo6#%\oexpecting~a~name~for~the~indeterminate~of~the~minimal~polynomial
.G>FcvFh\l/-F]y6$Fj[l;FcpFasQ%subsFin>FgvFh\l/Fj[lQ'algextFin@%-F_t6$Fh\lF(?&8)
Fh\lF_oC&>80-%&minusG6$-%'indetsG6#F[cl<%-F[\l6#Fbw-F[\l6#F`w-F[\l6#-%$mapG6%F]
uF_qFjal@$50-%%nopsG6#F^clFcp4-F_t6$F[cl-Fct6$FetF^cl-Ffo6#%`sexpecting~a~univa
riate~polynomial~(possibly~with~rational~coefficients~in~previously~defined~alg
ebraic~elements)~for~option~"algext".G@$0-%*intersectG6$F^cl<#-F[\l6#Fbr<"-Ffo6
#%_qthe~univariate~polynomial~for~option~"algext"~may~not~contain~indeterminate
s~of~the~polynomial~ring.G@$4-F[v6$-F[\lFddlF`wC$>F]w7$-F[\l6#F]wF[cl>F`w7$Fhcl
F]flC&>F^cl-F`cl6$-Fccl6#Fh\lFecl@$5Fadl4-F_t6$Fh\lFhdlFjdl@$F^elFfel@$FjelC$>F
]w7$FaflFh\l>F`wFdfl/Fj[lQ)transextFin@'-F_t6$Fh\l-F(6#Fjal?&F[clFh\lF_o@$4-F[v
6$F[cl7$-F[\l6#FfqFfcl>Fbw7$FfclF[clFhal@$4-F[v6$Fh\lFbhl>Fbw7$FfclFh\l-Ffo6#%S
expecting~(list~of)~name(s)~for~option~"transext".G-Ffo6#%0invalid~option.G-F_t
6$F[[lF_u@%/F[[lFj_l>F\zF_oC$>83F[[l?(8(FcpFcp-%'lengthG6#FjilF_o@&/&Fjil6#F\jl
Q"LFin>FazF_o0FbjlQ"SFinF`ilF`il>%&_nvarG-FcdlFdel@$30FhrF^w4-F_t6$FczF(>Fcz7#-
%"$G6$Fcz-Fcdl6#Fhr@$0Fcs7#-Fd[m6#;FcpF`p>Fjo-%'subsopG6$/Fas-F]dl6$f*Ffu6#F0Fi
nFin-F`\m6$/Fcp7#-%$seqG6$&&FatFbp6#&F]v6#8$/Fc]m;FcpT%FatFinFin6&FBFcsF<F`p&Fj
oF`sFjo>8J-%7Involutive/checkIBginvG6/FjoFbrF`vFczFhrFhs&F[s6#;FcpFijl&F[s6#;,&
FijlFcpFcpFcp,&FijlFcpF`pFcpF]wF`wFbwFdwFaz>F_q&Fj]mFgp>8G&Fj]m6#"#5>Ffq&Fj]mF\
q>F`w&Fj]mF`s>F]w&Fj]mFes>FezFcp?(FinFcpFcpFin1Fez-FcdlFicl@%-F[v6$&F`wF][l-F]d
l6$%&parseG-F]dl6%F]u7#-%&aliasGFinF_uC%@$4-F[v6$Fj_m-F]dl6$F]`m-F]dl6%F]uF_qF_
u>F_q7$-F[\l6#F_q-F]`m6#-F]u6$Fj_mF_u>F`w-F`\m6$/FezFjyF`w>F]w-F`\m6$FgamF]w>Fe
z,&FezFcpFcpFcp>F_q-Fcu6$f*FfuFinFguFin-F[v6$Fat-F]dl6$%$rhsG&F]vFhqFinFin6$FRF
j]mF_q>8K&Fj]mFaq>8L&Fj]mFhq>FezFcp?(FinFcpFcpFin2Fez-Fcdl6#F\cmC$>F\cm7$-F[\l6
#&F\cm6#;FcpFez-F[\l6#-%%subsG6$/-Febm6#&F\cmF][l-%$lhsGFbdm&F\cm6#;F\bm!"">Fez
F\bm@$0&Fj]m6#"")Fhv>FczF]em>8I&Fj]mFbp>Fjo-F\p6#7#Fat>8R-Fcu6$f*FfuFinFguFinFj
uFinFin6$FGF_qF`q>Fiem-%>Involutive/algebraicextensionG6)Fh]mFiemF]wF`wFfqFibmF
i^m>Fh]m&FiemFbp>F]w&FiemF\q>F`w&FiemF`s>Fi^m&FiemFes>Fibm&FiemFaq>Ffq&FiemFhq>
Fbem3Fbem4&FiemF^em>Fiem&FiemFgp@$0Fi^mF^wC$>F]w-F^dm6$Fi^mF]w>Fh]m-F^dm6$Fi^mF
h]m@$0-F`cl6$<#-F[\l6#Fgq<$FchlFcelFeelC%>FbemF]z>F[cl7#-F[\l6#F_hm>Fbw7$Ffcl-F
[\lFdcl@$4FbemC$>F_q-%'selectG6$f*FfuFinFguFinFjuFinFin6$FenFdqF_q@%F\em-%?Invo
lutive/InvolutiveBasisGINVG6'&F\[l6#;FhpFidmF]emFiy/FfblF]w/FgglFbhl-Fiim6&F[jm
FiyF^jmF_jm@$4-%$hasG6$FatFbr@%0FgvFhv-%'RETURNG6#,&FgvFcpFatFidm-Fjjm6#,&FcvFc
pFatFidm@%/F`pFcp>8P-%7Involutive/ginvMinPolyG69&&Fh]mFbpFbpFbrF_qFfqF`pFepFjpF
`vFczFhr7#F`pF^^mFa^mF]wF`wFbwFdwF\zF_zFaxFcvFjv%)lowboundG-Ffo6#%Imodule~case~
not~implemented~yet~in~ginv.G@$F\z-Fjjm6#F^w@$/&Fc[nFbpFhv-Ffo6#%apstopped~calc
ulation~of~minimal~polynomial~since~upper~bound~for~the~degree~is~reached.G@$Fe
gm>Fc[n-F^dm6$-F]dl6$f*FfuFinFguFin/-Febm6#Fat-FedmF`]nFinFinFinFi^mFc[n?(Fez-F
cdl6#FibmFidmFcpF_o>Fc[n-F^dm6$&FibmF][lFc[n?(FezFacmFidmFcpF_o>Fc[n-F^dm6$Fcdm
Fc[n@%2Fhv,&-FcdlF_amFcpFf_mFcp@%Fhjm@%/FavFhv-F^dm6$/FcvFgv-%(collectG6$Fc\nFc
v-%$modG6$Fd^nFavFg^n@%Fhjm@%Fc^n-F^dm6$Ff^n-Fh^n6$-%'normalG6#*&Fc\nFcp-%'lcoe
ffGFi^nFidmFcv-F[_n6$F__nFavFa_nFin6#FijlFinFin
M7R0
I;Involutive/DependsOnPowersf*6''%"qG%(polynomG'%"pGF''%"JG%%listG'%%varsGF,'%#
FBGF,68%"aG%"iG%"jG%"nG%"vG%"xG%$denG%$varG%"FG%"MG%"QG%"SG%"UG%"VG%*low_boundG
%*upp_boundG%'paramsG%*firstevalG%*evalpointG%*paramdegsG%3printfactordegreesG%
)lessevalG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G
6"CC>8(-%*substringG6$-%(convertG6$-%+kerneloptsG6#%(versionG%'stringG;""""")@$
5/FMQ)Maple~V,FJ/FMQ)Maple~6.FJ-%&ERRORG6#%]othis~procedure~is~only~available~f
or~Maple~8.0~and~newer~versions.G@$0%7Involutive/initializedG.%%trueG-%0Involut
ive/initGFJ@$4%4Involutive/ratcoeffG-F]o6#%fnnot~implemented~yet~for~involutive
~bases~over~the~integers.G@$0%2Involutive/characG""!-F]o6#%Ithe~modular~case~is
~not~implemented~yet.G>8).%'lambdaG>82F`p>83"#I>8*FZ>8-%%NULLG>84Faq>85Faq>86Fa
q>87Faq>887">89%&falseG?(8%""'FZ9#Fdo@%-%%typeG6$&9"6#Far%)equationGC$@$4-Ffr6$
-%#opG6$FZFhrFX-F]o6#%\oexpecting~a~string~on~the~left~hand~side~of~an~optional
~equation.G@9/FasQ'paramsFJC$@$4-Ffr6$-Fbs6$""#FhrF,-F]o6#%Fexpecting~a~list~fo
r~option~"params".G>FcqF_t/FasQ*firstevalFJC$@$34-Ffr6$F_t%'posintG0F_t%)infini
tyG-F]o6#%Uexpecting~a~positive~integer~for~option~"firsteval".G>FeqF_t/FasQ*ev
alpointFJC$@$F\t-F]o6#%Uexpecting~a~list~of~integers~for~option~"evalpoint".G>F
gqF_t/FasQ)lessevalFJC$@$4-Ffr6$F_t%(booleanG-F]o6#%Sexpecting~"true"~or~"false
"~for~option~"lesseval".G>F^rF_t/FasQ*paramdegsFJC$@$4-Ffr6$F_t-F,6#%*nonnegint
G-F]o6#%\oexpecting~a~list~of~non-negative~integers~for~option~"paramdegs".G>Fi
qF_t/FasQ&denomFJ>F^qF_t/FasQ3printfactordegreesFJC$@$4-Ffr6$F_t%%nameG-F]o6#%f
nexpecting~an~indeterminate~for~option~"printfactordegrees".G>F[rF_t/FasQ*PolRe
presFJC$@$45-Ffr6$F_t%'matrixG-Ffr6$F_t%'MatrixG-F]o6#%Kexpecting~a~matrix~for~
option~"PolRepres".G>F`q-FRF`y5/FasQ'degreeFJ/FasQ'maxdegFJC$@$F[u-F]o6#%Nexpec
ting~a~positive~integer~as~degree~bound.G>F[qF_t/FasQ'mindegFJC$@$F[uF^z>FipF_t
/-FO6$Fas;FZ""$Q$varFJC$@$F^x-F]o6#%\oexpecting~a~name~for~the~indeterminate~of
~the~minimal~polynomial.G>FepF_t-F]o6#%0invalid~option.GFc[l>8,-%6Involutive/pr
oc_inputG6#9&>8+&-%5Involutive/proc_varsG6$9'&Fg[l6#FZFd\l@%/FcqFaq>Fcq-%'remov
eG6%%2Involutive/hasvarG&Fg[l6#""(F]\l@$-FR6$-%$mapG6%%'memberGFcqF]\l%#orG-F]o
6#%Xthe~lists~of~variables~and~parameters~must~be~disjoint.G@$0FcqF\rC$@%/FgqFa
qC$@%/FeqFaq>Fgq7#-%$maxG6$",+++++"*$-%4Involutive/maxcoeffG6#&Fg[l6#""%Fat>Fgq
7#Feq>Fgq7$-Fbs6#Fgq-%$seqG6$Far/Far;FZ,&-%%nopsG6#FcqFZ!""FZ@$0-F\`lFd_lF[`l-F
]o6#%Rexpecting~an~evaluation~point~for~each~parameter.G@$/FiqFaq>Fiq7#-%"$G6$F
`uF[`l>8'-F\`l6#9(@$/F]alF`p-%'RETURNG6#Fep@$/F`qFaq>F`q-FR6$-%5Involutive/PolR
epresG6&9%F[\lFb\lF`alFay@$0F^qFZ>F`q-%&evalaG6#*&F^qFZF`qFZ>8.-%:Involutive/mo
nomcoefflistG6%-%8Involutive/PolInvReduceG6%9$F[\lFb\lF]\lF`al@%-&%'linalgG6#%'
iszeroG6#FgblFcal>Fgbl-FR6$Fgbl%'VectorG>817#-Ficl6$F]alf*6#F4FJ6$%)operatorG%&
arrowGFJ@%/F^clFZFZF`pFJFJFJ>8/-%&solveG6$<#-Ff_l6$,&*&&&F[dlFd\l6#8$FZ&80Fd\lF
ZFZ&FgblFbelFZ/Fcel;FZF^al<#Fdel@$0FgdlFaq-Fdal6#-%%subsG6$Fgdl,&FepFZFdelFZ>Fa
rFZ?(FJFZFZFJ1FarF[qC&-%)userinfoG6&F[[l%2PolMinPolyRatFuncG%+degree~~~~GFar>F[
dl7$-Fbs6#F[dl-&%.LinearAlgebraG6#%5MatrixVectorMultiplyG6$F`q&F[dl6#F^`l@$1Fip
Far@%/F_pF`p@%/FcqF\rC&-Fgfl6%F^_lFifl%.solve~startedG>Fgdl-Fidl6$<#-Ff_l6$,&-%
$addG6$*&&&F[dl6#,&8&FZFZFZFbelFZ&Feel6#F`ilFZ/F`il;F`pFarFZFfelFZFgel<#-Ff_l6$
FailFcil-Fgfl6%F^_lFifl%/solve~finishedG@$F[fl-Fdal6#-F_fl6$Fgdl,&)Fep,&FarFZFZ
FZFZ-Fihl6$*&FailFZ)FepF`ilFZFcilFZC&-Fgfl6%F^_lFifl%6solveinterpol~startedG>Fg
dl-%9Involutive/solveinterpolG6+FdhlFeilF`jlFcqFgqF[rF^rFiqF[`l-Fgfl6%F^_lFifl%
7solveinterpol~finishedG@$F[fl-Fdal6#Fgdl-F]o6#%5not~implemented~yet.G>FarFbjl-
F]o6#%apstopped~calculation~of~minimal~polynomial~since~upper~bound~for~the~deg
ree~is~reached.GFJFJFJFJ
M7R0
I2Involutive/PolSumf*6%%#M1G%#M2G'%$varG%%listG6"6#%[oCopyright~(C)~2003-2005~b
y~Mohamed~Barakat.~All~rights~reserved.GF*-%7Involutive/PolCokernelG6#9"F*F*F*F
*
M7R0
I;Involutive/PolIntersectionf*6%%$_R1G%$_R2G'%$varG%%listG6*%"aG%"nG%#R1G%#R2G%
#R0G%"ZG%*_inv_den2G%$resG6#%^pCopyright~(C)~2003-2010~by~Mohamed~Barakat~and~D
aniel~Robertz.~All~rights~reserved.G6"C.>8&-%$mapG6$f*6#F+F56$%)operatorG%&arro
wGF5&9$6#"""F5F5F5&-%6Involutive/proc_inputG6#FB6#""%>8'-F:6$f*F=F5F>F5FAF5F5F5
&-FG6#9%FI>8%-%%nopsG6#&F8FC>8(-F:6$%#opG7$-F:6$f*F=F5F>F5-F:6$Fhn7$FBFBF5F5F5F
8-F:6$f*F=F5F>F5-F:6$Fhn7$FB-%"$G6$""!T#F5F56$F,FUFL>8+-%;Involutive/Involutive
BasisG6%Fen9&""#>8*%)_inv_denG@$-%)assignedG6#%2PRINTelimfinishedG-%&printG6#Q5
elimination~finishedF5>8)-F:6$f*F=F5F>F5@$/&FB6#;FDFjo7#Ffo&FB6#;,&FjoFDFDFD!""
F5F5F[pF]p@$/F`q7">F`q7#7#-Fgo6$FioFU>F]p-F_p6%F`qFap&9"6#;FJ9#>Fep7#-Fhn6#-%&u
nionG6$<#-Fhn6#Fep<#-Fhn6#Fdp-%'RETURNG6#F]pF5FhsF5F5
M7R0
IBInvolutive/findezugehoerigenpunktf*6$'%"nG%*nonnegintG'%#ALG-%%listG6#%'posin
tG6$%"iG%"LG6#%[oCopyright~(C)~2007-2010~by~Moritz~Schroeer.~All~rights~reserve
d.G6"C$@$1-%$mulG6$&9%6#8$/F=;"""-%%nopsG6#F;9$-%&ERRORG6#%4Index~out~of~range.
G@%/F;7"FK7$-%%iquoG6$FD-F86$F:/F=;""#FA-%#opG6#-F"6$-%%iremGFO&F;6#;FT!""F3F3F
3F3
M7R0
I@homalg/Involutive/PolInvoReducef*6%%"pG%#_MG%$varG6$%"MG%"vG6#%jnCopyright~(C
)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C%>8$-%6homalg/NormalizeI
nputG6$9%%+InvolutiveG>8%-%5homalg/NormalizeRingG6$9&F5@%/&F76#""#7"-%8Involuti
ve/PolInvReduceG6%9$F0&F76#"""-FC6&FEF0F>FFF-F-F-F-
M7R0
I8homalg/Involutive/mklstf*6#%"aG6"6#%[oCopyright~(C)~2004-2010~by~Mohamed~Bara
kat.~All~rights~reserved.GF&@%-%%typeG6$9$%"=G/-F"6#-%$lhsG6#F--F"6#-%$rhsGF4@%
-F+6$F-%%listGF-7#F-F&F&F&F&
M7R0
I;Involutive/LocalReduceGINVf*6%%#bbG%"MG%$varG6"6#%boCopyright~(C)~2007-2010~b
y~Markus~Lange-Hegermann.~All~rights~reserved.GF(C$@$5-%%typeG6$9$%)listlistG3-
F/6$F1-%%listG6#<$%"=GF7-F/6$-%$mapG6$%5Involutive/RemoveRHSGF1F2-%'RETURNG6#-F
>6$f*6#%"aGF(6$%)operatorG%&arrowGF(-%7Involutive/LocalReduceG6&F1T$T&Q%ginvF(F
(F(6&F&9%F'9&F1-FM6&F1FSFTFQF(F(F(F(
M7R0
I;Involutive/AugmentInvBasisf*6#%"pG6ho%"aG%"dG%"gG%"hG%"iG%"jG%"kG%"lG%#lmG%"m
G%"FG%"GG%#GBG%"HG%"RG%"QG%#Q2G%&ib_gbG%&m_ordG%&B_OrdG%&N_OrdG%&Q_OrdG%'lmproc
G%/default_lmprocG%'N_FormG%*N_Form_lmG%/N_Form_autoredG%'pseudoG%(seq_varG%%va
rsG%$varG%(var_ordG%'vt_degG%(deg_ordG%)tup_permG%-inv_tup_permG%.force_collect
G%,force_evalaG%'n_entrG%)rhs_entrG%*zero_listG%(allmultG%.rhs_zero_listG%'no_r
hsG%(do_normG%,no_transferG%%seqvG%(loc_varG%)critprocG%#ppG%#eqG%.last_was_zer
oG%.head_red_percG%+start_timeG%+time_boundG%+trans_elemG%)entr_posG%*pnumber_q
G%)strategyG%/tail_reductionG%'fbasisG%'Q2_valG%(newcritG%,newcrit_addG%+factor
timeG%/lastfactortimeG%,factorTsizeG%*printtimeG%.lastprinttimeG%,forceexpandG%
+savecharacG%-saveratcoeffG%*nowarningG%*denomlistG%,commondenomG%#hcG6#%jnCopy
right~(C)~2008-2010~by~Daniel~Robertz.~All~rights~reserved.G6"Cbq@$4-%)assigned
G6#%)P_T_ListG-%&ERRORG6#%Umissing~involutive~basis;~run~InvolutiveBasis~first.
G>8.-%6Involutive/proc_inputG6#7#9$>8J&F\q6#""">8K&F\q6#""#>8O&F\q6#""$>8I&F\q6
#""&>8en&F\q6#""(>F\q&F\q6#""%@%332F[r9#-%%typeG6$&9"F_r%%listG4-Fes6$Fgs-Fis6#
%(integerGC)>8BFgs>82-F^q6#&FhsFjq@$2Ffq&FdtFeq-Fhp6#%Xexpecting~list~of~relati
ons~for~the~residue~class~ring.G@$4&FdtF_r-Fhp6#%foright~hand~sides~for~relatio
ns~of~the~residue~class~ring~are~not~supported.G>Fdt&FdtF]s@%/&Fdt6$FfqFfq7#""!
>Fdt7"C$>Fdt7#-%$seqG6$-Fbv6$7$-%'subsopG6$/8(&Fdt6%8)FfqFfq7#-%"$G6$F[vFcq7#-F
aw6$F[vFhq/F[w;FfqFcq/F^w;Ffq-%%nopsG6#Fdt>F\q7$-%#opG6#F\q-F`xF\x>F[wF^sC&@$2F
csF[r-Fhp6#%Pexpecting~list~of~variables~as~second~argument.G>FbtFgt>FdtF]v>F[w
F`r>8A-%5Involutive/proc_varsG6$FbtFcq>8C&F^yFjq>8D&F^yF_r>8E&F^yF]s>8F&F^yFdr>
8fn&F^y6#""'>Fbt&F^yFeq>%&_nvarG-F[x6#Fbt@%0%2Involutive/characGF[v>F\q-%$modG6
$-%(collectG6%F\qFbt%,distributedGF[[l>F\qF`[l@$-%$hasG6$-%$mapG6$f*6#F'F_p6$%)
operatorG%&arrowGF_p3-Fes6$&FaqFeq-Fis6#-%(polynomG6$%)anythingGT#-Fes6$&FaqFjq
Fe\lF_pF_p6$FEFbtF\q%&falseG-Fhp6#-%$catG6%%Oexpecting~a~list~of~(lists~of)~pol
ynomials~in~G-%(convertG6$Fbt%'stringG%4~as~first~argument.G>8H-%&evalbG6#0-%&m
inusG6$<#-F`x6#Fgr<#-F`xFhz<">8R7#-Fbv6$-Fd]l6$%#_xGF^w/F^w;FfqFfz>8M7#-Faw6$%)
infinityGFfz>%(_nnformGF[v>%'_reducGF[v>%'_crit1GF[v>%'_crit2GF[v>%'_crit3GF[v>
%'_crit4GF[v>%,_inv_roundsGF[v>8QF[v>Fcy-%%subsG6$7#-Fbv6$/&Fbt6#F^w&F\_lFdalFc
_lFcy@$4%4Involutive/ratcoeffG@&0-Fc^l6$-%'indetsG6#-Fj[l6$f*F]\lF_pF^\lF_pFd\l
F_pF_pF_pF\qFh^lFj^l-Fhp6#%cono~parameters~allowed~in~involutive~basis~computat
ion~over~the~integers.GFbr-Fhp6#%apno~algebraic~extensions~are~allowed~in~invol
utive~basis~computation~over~the~integers.G>8;4Fbr>8P%%trueG@%/FcyF]v>86F^s>Fbc
l7#-Faw6$F^s-F[x6#Fcy>8ZF[v>8aoF[v>80F`]l>8inF^cl>8hnF[v>8X"$+">8jnF]v>8\oF`]l>
8]oF[v>8^oF[v>8`oF[v>8coF`]l>8foF`]l>8doF[[l>8eoFhal?(F^wF[wFfqFcsF^cl@)-Fes6$&
FhsFdalFj]l@%/F\flQ&denomF_pF_pC$>8/F\fl?(8*FfqFfq-%'lengthG6#FbflF^cl@(/&Fbfl6
#FdflQ"NF_p>F]clF`]l/FjflQ"SF_pC$>FbrF^cl>FjblF`]l0FjflQ!F_p-Fhp6#%aooptions~mu
st~be~given~by~a~string~consisting~of~letters~in~|fr"N",~"S"|hr.G5-Fes6$F\flF_t
-Fes6$F\flFis>FbclF\fl-Fes6$F\fl%)equationG@G/-F`x6$FfqF\flQ%charF_p@%3-Fes6$-F
`x6$F[rF\flF_t5/FjhlF[v-%(isprimeG6#FjhlC$>F[[lFjhl@$Fjz>FhalF^cl-Fhp6#%Texpect
ing~zero~or~a~prime~number~for~option~"char".G/FchlQ%timeF_pC$@$4-Fes6$Fjhl%*no
nnegintG-Fhp6#%Sexpecting~time~bound~in~seconds~for~option~"time".G>FjclFjhl/Fc
hlQ*printtimeF_pC$@$F\jl-Fhp6#%Yexpecting~time~period~in~seconds~for~option~"pr
inttime".G>F\dlFjhl/FchlQ(percentF_pC$@$4-Fes6$Fjhl%'posintG-Fhp6#%Sexpecting~a
~positive~integer~for~option~"percent".G>FddlFjhl/FchlQ&quietF_pF_p/FchlQ)Groeb
nerF_pC$@$4-Fes6$Fjhl%(booleanG-Fhp6#%Oexpecting~boolean~value~for~option~"Groe
bner".G>F^dlFjhl/FchlQ'expandF_pC%@$/FhalF`]l-Fhp6#%gooption~'expand'~is~not~im
plemented~for~the~case~of~integer~coefficients~yet.G@$F^\m-Fhp6#%Mexpecting~boo
lean~value~for~option~"expand".G>FaelFjhl/FchlQ.tailreductionF_pC$@$F^\m-Fhp6#%
Texpecting~boolean~value~for~option~"tailreduction".G>F`dlFjhl/FchlQ*nowarningF
_pC$@$F^\m-Fhp6#%Pexpecting~boolean~value~for~option~"nowarning".G>FcelFjhl/Fch
lF_flF_p3/FchlQ*strategyIF_p/FjhlF^cl>FbdlFfq3/FchlQ+strategyIIF_pFg^m>FbdlF[r3
/FchlQ,strategyIIIF_pFg^m>FbdlF`r/FchlQ&basisF_pC$@$4-Fes6$FjhlFis-Fhp6#%Cexpec
ting~list~for~option~"basis".G>FgdlFjhl3/FchlQ$neuF_pFg^m>FidlF^cl/FchlQ(neu_ad
dF_pC$@$F\jl-Fhp6#%Texpecting~nonnegative~integer~for~option~"neu_add".G>F[elFj
hl/FchlQ+factortimeF_pC$@$F\jl-Fhp6#%Yexpecting~time~bound~in~seconds~for~optio
n~"factortime".G>F]elFjhl/FchlQ,factorTsizeF_pC$@$F\jl-Fhp6#%Xexpecting~nonnega
tive~integer~for~option~"factorTsize".G>F_elFjhl-Fhp6#%0invalid~option.GFham>8+
-%4Involutive/proc_ordG6*FbclFbtFcyFfyFiyF\_lF_zFjbl>88&F\bmFjq>87&F\bmF_r@$&F\
bmF]s>F_zF]v>8S&F\bmFaz@)0FjbmF]vC%@$Fgal-Fhp6#Q_ocase~of~non-rational~coeffici
ents~not~implemented~in~the~local~case.F_p?(F[wFfqFfq-F[xFaxF^clC&>8go-Fj[l6$f*
F]\lF_pF^\lF_p-%&denomG6#FaqF_pF_pF_p&F\q6$F[wFfq>8ho-%$lcmG6#-F`x6#Fgcm@$4-%7I
nvolutive/LocalIsUnitG6%FadmFbtFjbm-Fhp6#QHfound~a~denominator~that~is~not~a~un
it.F_p>&F\q6#F[w7$-Fj[l6$f*F]\lF_pF^\lF_p-%'normalG6#*&F[]lFfqFaqFfqF_pF_p6$F[p
FadmF^dm-Fj[l6$f*F]\lF_pF^\lF_pFfemF_pF_pFjem&F\q6$F[wF[r@)FbrC'>F\q-%&evalaGFa
x>8<%DInvolutive/pnormal_form_evala_localG>8=%GInvolutive/pnormal_form_evala_lm
_localG>8>Fgfm@%/F[[lF[v>8U%:Involutive/simp_prim_partG>F`gmf*6%F%FE%"qGF_pF_pF
_p7$Faq9&F_pF_pF_pF]^lC&>Fffm%FInvolutive/pnormal_form_collect_localG>Fifm%IInv
olutive/pnormal_form_collect_lm_localG>F\gmFjgm>F`gmFagmFaelC&>Fffm%EInvolutive
/pnormal_form_expand_localG>Fifm%HInvolutive/pnormal_form_expand_lm_localG>F\gm
%EInvolutive/pnormal_form_ecpand_localG>F`gmFagmC&>Fffm%>Involutive/pnormal_for
m_localG>Fifm%AInvolutive/pnormal_form_lm_localG>F\gmFihm>F`gmFagmFbrC%>F\qFcfm
@%FhalC%>Fffm%>Involutive/pnormal_form_evalaG>Fifm%AInvolutive/pnormal_form_eva
la_lmG>F\gmFcimC%>Fffm%?Involutive/simp_pnormal_form_ZG>Fifm%BInvolutive/simp_p
normal_form_Z_lmG@%%2Involutive/absremG>F\gm%CInvolutive/simp_pnormal_form_Z_ab
sG>F\gm%FInvolutive/simp_pnormal_form_Z_nonnegG@%F^gm>F`gmFagm>F`gmf*FdgmF_pF_p
F_pFfgmF_pF_pF_pF]^lC$@%FhalC%>Fffm%@Involutive/pnormal_form_collectG>Fifm%CInv
olutive/pnormal_form_collect_lmG>F\gmFjjmC%>FffmFiim>FifmF[jm@%F]jm>F\gmF_jm>F\
gmFajm>F`gmFagmC$@%FhalC%>Fffm%8Involutive/pnormal_formG>Fifm%;Involutive/pnorm
al_form_lmG>F\gmFi[nC%>Fffm%:Involutive/pnormal_form_ZG>Fifm%=Involutive/pnorma
l_form_Z_lmG@%F]jm>F\gm%>Involutive/pnormal_form_Z_absG>F\gm%AInvolutive/pnorma
l_form_Z_nonnegG>F`gm%5Involutive/prim_partG@$FaelC$>Fffm%?Involutive/pnormal_f
orm_expandG>Fifm%BInvolutive/pnormal_form_expand_lmG>8Vf*6$F'%"bGF_pF_pF_p-F_^l
6#/&Faq6#;FfqF[r&9%Fh]nF_pF_pF_p>89f*6$%#_aG%#_bG6%F-%#n1G%#n2GF_pF_p@%/&FaqF_r
&F[^nF_r@'30F^]lFg^n/&F[^nFjqFh^nF^cl3/F^]lFg^n0F]_nFh^nF`]lC%>8%-%*numboccurG6
$&Fd\lFeqF[v>8&-Fe_n6$&&F[^nFeqFeqF[v@'2Fi_nFc_nF^cl2Fc_nFi_nF`]l-F_^l6#2-F[x6#
-%$addG6$&Fg_n6#8$/F[an;FfqF[]l-F[x6#-Fg`n6$&F\`nFj`nF\an-T%6$FaqF[^nF_pF_p6&FM
FcqF;Fabm@$F]cm>F]^nf*F_^nFb^nF_pF_pC%@&2&Faq6#"")&F[^nF^bn-%'RETURNG6#F^cl2F`b
nF]bn-Fbbn6#F`]l@$Ff^n@'Fj^nFabnF^_nFebnC%>Fc_nFd_n>Fi_nFj_n@'F_`nFabnF``nFebnC
$Fa`nO%"%G-Fbbn6#FcanF_pF_pFfan@$/&Ffy6#;,&FfzFfqFfqFfq,&FfzFfqFcqFfqF_w>FfyF[v
>8:-%&parseG6#-Fd]l6/Q@g->`Involutive/pol_lead_mon`(g,F_p-Fh]l6$FcqFj]lQ",F_p-F
h]l6$F\_lFj]lFddn-Fh]l6$&F\bmFeqFj]lFddn-Fh]l6$F_zFj]lFddn-Fh]l6$&F\bmFdrFj]lFd
dn-Fh]l6$FfyFj]lQ")F_p@%0F\z7#-Faw6#FgwC$>F\q-Fj[l6$f*6#F+6#F,F_pF_p-Fhv6$/Ffq7
#-Fbv6$&Fd\l6#&F[]lFj`n/F[an;FfqFdanFaqF_pF_p6&FIF\zFMFcqF\q>8G-Fj[l6$f*F\fnF]f
nF_pF_pC$-%'memberG6%FaqF[]l.F[anF[anF_pF_p6$FIF\zFden>F[gnF\z@$0F\_lFbtC%>F\q-
Fj[l6$f*F]\lF_pF^\lF_p-F]al6$7#-Fbv6$/&T'6#Fdan&F[]lFehn/FdanFd_lFaqF_pF_p6(FUF
\_lF,F^wFEFbtF\q>Fdt-Fj[l6$f*F]\lF_pF^\lF_pF]hnF_pF_pFhhnFdt>Fgdl-Fj[l6$f*F]\lF
_pF^\lF_pF]hnF_pF_pFhhnFgdl>8LF_w>8N7#-Faw6$F[v-F[x6#&F\q6$FfqF[r@+/%3Involutiv
e/invcritGF]v>8Tf*F_pF_pF_pF_pF`]lF_pF_pF_p/F^jn7$FfqF[r>F`jn%7Involutive/pcrit
eria12G/F^jn7%FfqF[rF`r>F`jn%8Involutive/pcriteria123G/F^jn7&FfqF[rF`rF^s>F`jn%
9Involutive/pcriteria1234G-Fhp6#%Wundefined~involutive~criteria;~see~?Involutiv
eOptions.G>%+_JB_factorG.Fb[o>%3_JB_factor_multvarG.Fe[o>%(_JB_varG.Fh[o>%*_JB_
compaG.F[\o>%&P_HOMGF]v>%)_inv_denGF]v>8Y-%%timeGF_p>8_oFb\o>8boFb\o>83F]v>8gnF
[v?(F[wFfqFfqFdcmF^cl@&53F^gm0F^dmFbin3Fjz0-F^[l6$F^dmF[[lFbinC(@%F]cm>Fi_n7#-%
=Involutive/cancel_locvar_rhsG6'F^dmF^fmF[dnF\_lFjbm>Fi_nF`em@$Fhal>Fi_n-F`gm6%
&Fi_nFeqF\_l&Fi_nFjq>Fi_n7$-Fj[l6$f*F]\lF_pF^\lF_p-Fa[l6%FaqF[]lFc[lF_pF_p6$FUF
\_lFb^oFc^o>8,-F[dn6#Fb^o@%Fhal>Fj\o-%:Involutive/pbinary_insertG6)7*Fi_n&F]_oF
eqFf_o7#-Faw6$F[vFfzFf_l&F]_oFjqF]v-%1Involutive/ecartG6&Fi_nF]_oF\_lFjbmFj\oFf
qF\]oF\]oF]^nF`]n>Fj\o-Fc_o6)7*Fi_n7$-F`x6#Ff_o&Fj_oFeqFb`oFg_oFf_lFj_oF]vF[`oF
j\oFfqF\]oF\]oF]^nF`]n>F\]o-F[x6#Fj\o53F^gm0F^fmFdin3Fjz0-F^[l6$F^fmF[[lFdin>F^
\o7$-F`x6#F^\oF^fm@$/F\]oF[vC1@%/FcqFfq>FbflF[v>FbflFbin@$4F]r@%/FhqFfq>Fbfl/Fb
flF[v>Fbfl/FbflFdin@$Fggn>F^\o-Fj[l6$f*F]\lF_pF^\lF_pF]hnF_pF_p6(FEFbtF+F[wFUF\
_lF^\o@$F^bo>F^\o-Fj[l6$f*F]\lF_pF^\lF_p-F`xF]dmF_pF_pF_pF^\o@%Fhal>Ffp7#7*7$Fb
inFdin7$Fg_oFfqFdcoFg_oFf_l7$F[vFfqF]vF[v>Ffp7#7*Fcco7%Fg_oFfqFfqFicoFg_oFf_lFe
coF]vF[v>%*pnumber_tGFfq>F[[lFeel>FhalFgel>%&_pvarGF^y>%)_pno_rhsGF]r>%0_pforce
_collectGF]^l>%._pforce_evalaGFbr>%+PolTab_VarG7#7%F[v-%5Involutive/pmult_varG6
$Ff_lFbtF[v>%(_StatssG7*F\`lF^`lF``lFb`lFd`lFf`lFfqFj`l@%32F[vFjclFcel-Fbbn6#7$
7#FbflF^cl-Fbbn6#Ffeo?(F_pFfqFfqF_p30Fj\oF]v5/FjclF[v2,&Fc\oFfqFb\o!""FjclC5>Fh
`l,&Fh`lFfqFfqFfq@$-Fdp6#%)PRINTnoTG-%&printG6$Q##TF_p-F[xFep@$-Fdp6#%)PRINTlmT
G?(F[wF\goF`foFfqF^cl-Fifo6#&&FfpFaemF_r@$-Fdp6#%)PRINTlcTG?(F[wF\goF`foFfqF^cl
-Fifo6#&FegoFaz@$-Fdp6#%'PRINTTG?(F[wF\goF`foFfqF^cl-Fifo6#Fego@$-Fdp6#%)PRINTn
oQG-Fifo6$Q##QF_pFg`o@$-Fdp6#%)PRINTlmQG?(F[wFg`oF`foFfqF^cl-Fifo6#&&Fj\oFaemF_
r@$-Fdp6#%,PRINTdegncQG?(F[wFg`oF`foFfqF^cl-Fifo6$-Fh]l6$&FcioFeq%"+G-F[x6#&&Fd
ioFazFeq@$-Fdp6#%)PRINTlcQG?(F[wFg`oF`foFfqF^cl-Fifo6#Fcjo@$-Fdp6#%'PRINTQG?(F[
wFg`oF`foFfqF^cl-Fifo6#Fdio@$33-Fdp6#%(PRINTHSG-Fes6$Fg[pFc[m/-F^[l6$F\goFg[pF[
v-Fifo6#-%<Involutive/PolHilbertSeriesGF_p@$32F[vF\dl1F\dl,&Fc\oFfqFh\oF`foC%Fh
foF]\p>Fh\oFc\o@$532F[vF_el1F_elF[do32F[vF]el2F]el,&Fc\oFfqFf\oF`foC&>817$-F`x6
#-Fj[l6$f*F]\lF_pF^\lF_p&&FaqFazFjqF_pF_pF_pFfp-F`x6#-Fj[l6$f*F]\lF_pF^\lF_pFj]
pF_pF_pF_pFj\o>Fc]p-F]al6$7#-Fbv6$/&F\_lFaem&FbtFaem/F[wFd_lFc]p-Fifo6$Q"HF_pFc
]p>Ff\oFc\o>F[wFfq>8--%$maxG6$-%&truncG6#,$*&FddlFfqF\]oFfq#FfqFedlFfq>84F]v@$F
[foC&@$2F[vFbdl@%5/FbclF^s/FbclF[r>Fc_n-Fh]l6$&&&Fj\oFeqF_rFeqF_jo>Fc_nFi`p>8WF
^cl>8?F`]l?(F_pFfqFfqF_p3F[fo53/FbdlF[v5F]ap1F[wFa_p3F``p553Fb`p/Ff`pFc_n330Fbc
lF^s0FbclF[r/Fi`pFc_nF]apC'>Fi_nFj`p>Fj\o-Fhv6$/Ffq%%NULLGFj\o>F\]o,&F\]oFfqF`f
oFfq@%33/FjbmF]vFhal-F`jn6#Fi_n>F]apF^clC$@'0FgdlF]v>8'-Fffm6(Fb^oFfpF\_lF[dnF`
gmFjbm2FbdlF[r@%Fhal>Fecp-FifmFgcp>6$FecpF_apF[dp>FecpFfcp@%0&FecpFeqFbinC%>F]_
o-F[dn6#Fadp@%Fgal@%0Fb`o&Fi_nF_rC$@%-Fes6$Fe`o%'negintG>F\`p-Fc_o6)7*-%'expand
G6#,$FecpF`fo7$Fc`o,$Fe`oF`foFgepFg_oFf_l7$Fhep&Fj_oFjqF]v-F\`o6&FecpF]_oF\_lFj
bmF\`pFfq-F[x6#F\`pF]fpF]^nF`]n>F\`p-Fc_o6)7*FecpFb`oFb`oFg_oFf_lFj_oF]vF[fpF\`
pFfqF]fpF]fpF]^nF`]n@$F_ap>F\`p-Fc_o6)Fi_nF\`pFfqF]fpF]fpF]^nF`]n>F\`pFefp@%0Ff
_oFidp>F\`p-Fc_o6)7*FecpFf_oFf_oFg_oFf_lFj_oF]vF[fpF\`pFfqF]fpF]fpF]^nF`]n>F\`p
Fefp>F]apF`]l>F]apF^cl>F[w,&F[wFfqFfqFfq@$0F\`pF]v@%1F[rFbdlC'>Fc]pF\`p@$-Fdp6#
%)PRINTnoHG-Fifo6$Q##HF_p-F[x6#Fc]p@$-Fdp6#%)PRINTlmHG?(F[wF`hpF`foFfqF^cl-Fifo
6#&&Fc]pFaemF_r?(F[wFfqFfqF`hpF^clC$>6$FfpFdfl-%>Involutive/pbinary_insert_posG
6)-Fhv6%/FerFf_l/FjrF]vFjhpFfpFfqF[doF[doFabmF`]n@%2FdflF\goC'?(F^w,&FdflFfqFfq
FfqFfqF\goF^clC$>Fj\o-Fc_o6)&FfpFdalFj\oFfqF\]oF\]oF]^nF`]n>F\]oFg`o>Ffp&Ffp6#;
FfqFdfl>F[doFdfl>Fj`l,&Fj`lFfqFfqFfq-%7Involutive/ptransfer_TG6$FbclFabm>F[doF\
go?&F^w-%8Involutive/pjanet_separG6&F\_lFjbmFbclFabmF^clC$>Fj\o-Fc_o6)F^wFj\oFf
qF\]oF\]oF]^nF`]n>F\]oFg`oC-@$-Fdp6#%*PRINTnoQ2G-Fifo6$Q$#Q2F_pF]fp@$-Fdp6#%(PR
INTQ2G?(F[wF]fpF`foFfqF^cl-Fifo6#&F\`pFaem@$F^\q?(F[wF]fpF`foFfqF^cl-Fifo6#-F]a
l6$7#-Fbv6$/FealFcalFc_lFd\q@$-Fdp6#%*PRINTlmQ2G?(F[wF]fpF`foFfqF^cl-Fifo6#&Fd\
qF_r@%3Fccp/FidlF^clC)>8[o-Fj[l6$f*F\fnF_pF^\lF_p-%@Involutive/count_non_basis_
elemG6%Fg_nF[]lFdanF_pF_p6&F]oFgdlFUF\_lF\`p>Fdfl-%$minG6#-F`x6#F\^q@%/FdflFfqC
$>F^wF[v?(F[wFfqFfq-F[xFi^qF^clC$@$3/&F\^qFaemFfq-%9Involutive/is_janet_elemG6%
&&Fd\qFeqFeqFgdlF\_lC$>F^wF[w[@$31Fd_q,&FdflFfqF[elFfq/F^wF[v>F^wF[wC$>F^wFfq?(
F[wFfqFfqF__qF^cl@$F_`qC$>F^wF[wF\`q@$-Fdp6#%+PRINTvalQ2G-Fifo6$Q'val~Q2F_pF\^q
@$-Fdp6#%+PRINTminQ2G@%-Ff_q6%&&&F\`pFdalFeqFeqFgdlF\_l-Fifo6&Q'min~Q2F_pF^w&F\
^qFdalQ"*F_p-Fifo6%F\bqF^wF]bq>Fi_nFiaq>F\`p-Fhv6$/F^wFgbpF\`pC$>Fi_n&F\`pFeq>F
\`p-Fhv6$FfbpF\`p@$-Fdp6#%'PRINTgG-Fifo6$Q"gF_pFb^o@%F`dl>FecpFfcp>FecpFb^o@$-F
dp6#%'PRINThG-Fifo6$Q"hF_pFecp>F]_oFddp@$Fgal>F]_o-Fhv6$/FfqFb`oF]_o@'/F[doF[vC
&>Ffp7#7*FecpFc^oFf_oFg_oFf_lFj_oF]vF[fp>F[do,&F[doFfqFfqFfq>F\`p7$-F`xF^fp-F`x
6#F][q?&F^wF\`pF^clC$>Fj\oFb[q>F\]oFg`o/Fc^oFf_oC&>F^ip-F`ip6)7*FecpFc^oFf_o&Fi
_nF]sFf_lFj_oF]vF[fpFfpFfqF[doF[doFabmF`]n@%FgipC'?(F^wFjipFfqF\goF^clC$>Fj\oF]
jp>F\]oFg`o>FfpFbjp>F[doFdfl>Fj`lFgjpFhjp>F[doF\go>F\`pF\eq?&F^wF\`pF^clC$>Fj\o
Fb[q>F\]oFg`oC&>Ffp-Fc_o6)FhdqFfpFfqF[doF[doFabmF`]n>F[doFjdq>F\`pF\eq?&F^wF\`p
F^clC$>Fj\oFb[q>F\]oFg`o@$3F]cmF]rC%>8io-%6Involutive/compute_hcG6&F[dnFdbmF\_l
Fjbm>Ffp-%8Involutive/reduce_by_hcG6(FfpFhgqF[dnFdbmF\_lFjbm>Fj\o-F^hq6(Fj\oFhg
qF[dnFdbmF\_lFjbm@$33Fbeo4Fcel1FjclF_fo-%(WARNINGG6#%[ocomputation~of~involutiv
e~basis~stopped~due~to~time~restriction.G@$32FfqF[doF`dlC&@$3FgalF]cl?(F[wFfqFf
qF\goF^cl@$-Fes6$&Ffp6%F[wFbzFfqF^ep@%/&FfpF_fm&Ffp6$F[wF`r>Ffp-Fhv6$/F[w-Fhv6$
/Ffq-Fj[l6$f*F]\lF_pF^\lF_p-Fj[l6$f*6#F*F_pF^\lF_p-Fdep6#,$FaqF`foF_pF_pF_pFaqF
_pF_pF_p&FfpF_dm-Fhv6$/F[r7$-F`x6#&FjiqFh]n,$&FjiqF_rF`fo-Fhv6$/F`r7$-F`x6#&F[j
qFh]n,$&F[jqF_rF`fo-Fhv6$/Fbz7$-Fdep6#,$FfiqF`fo&Ffp6%F[wFbzF[rFegoFfp>Ffp-Fhv6
$/F[w-Fhv6$/Ffq-Fj[l6$f*F]\lF_pF^\lF_p-Fj[l6$f*FjjqF_pF^\lF_pF[[rF_pF_pF_pFaqF_
pF_pF_pF^[rFa\rFfp>Ffp-%9Involutive/autoreductionG6(FfpF\gmF\_lF[dnF`gmFjbm@$3F
efo0F\goF[do-Fifo6#Q/autoreduction!F_p>F[doF\go@$50F_z7#FcqFgal>Ffp-%%sortG6$Ff
pFdbm@$F]cl@%Fhal@%Fjz?(F[wFfqFfqF\goF^clC$@$0-Fc^l6$-F^bl6#Ffiq<#-%&aliasGF_pF
j^l>F`\o7$-F`x6#F`\oFfiq@%Fbr>Ffp-Fhv6$/F[w-Fhv6$/Ffq-Fj[l6$f*F]\lF_pF^\lF_p-F^
[l6$-Fdfm6#-%)SimplifyG6#-Fa[l6%-Fj[l6$f*FjjqF_pF^\lF_p*&FaqFfq&Ffp6%F[]lFbzFfq
F`foF_pF_p6$F+FdanFaqF[]lFc[lF[[lF_pF_p6&FUF\_lF+F[wF^[r-Fhv6$/Fbz7$FfqFh\rFego
Ffp>Ffp-Fhv6$/F[w-Fhv6$/Ffq-Fj[l6$f*F]\lF_pF^\lF_p-Fa[l6%-Fj[l6$f*FjjqF_pF^\lF_
p-F^[l6$-%'NormalG6#FcarF[[lF_pF_pFfarFaqF[]lFc[lF_pF_pFgarF^[rFharFfp?(F[wFfqF
fqF\goF^clC$@$F`_r>F`\oFi_r@%Fbr>Ffp-Fhv6$/F[w-Fhv6$/Ffq-Fj[l6$f*F]\lF_pF^\lF_p
-Fdfm6#-Fa[l6%-Fj[l6$f*FjjqF_pF^\lF_p-FgemF_crF_pF_pFfarFaqF[]lFc[lF_pF_pFgarF^
[rFharFfp>Ffp-Fhv6$/F[w-Fhv6$/Ffq-Fj[l6$f*F]\lF_pF^\lF_p-Fa[l6%-Fj[l6$f*FjjqF_p
F^\lF_pFfdrF_pF_pFfarFaqF[]lFc[lF_pF_pFgarF^[rFharFfp@$4F]iq?(F[wFfqFfqF\goF^cl
@$Fdiq@%Fiiq>Ffp-Fhv6$/F[w-Fhv6$/Ffq-Fj[l6$f*F]\lF_pF^\lF_p-Fj[l6$f*FjjqF_pF^\l
F_pF[[rF_pF_pF_pFaqF_pF_pF_pF^[rF_[rFfp>Ffp-Fhv6$/F[w-Fhv6$/Ffq-Fj[l6$f*F]\lF_p
F^\lF_p-Fj[l6$f*FjjqF_pF^\lF_pF[[rF_pF_pF_pFaqF_pF_pF_pF^[rFa\rFfp>F[wFfq?(F_pF
fqFfqF_p31F[wF[doFiiq>F[wFbgp@%/F[wFjdq>85Ffq>F]hrF[v@%3F^dl/F]hrF[v>Fbfl-Fj[l6
$f*F]\lF_pF^\lF_p@$F__nFd\lF_pF_pF_pFfp>Fbfl-Fj[l6$f*F]\lF_pF^\lF_pFd\lF_pF_pF_
pFfp>8@Fd^p@%FggnC$>Fbfl-Fj[l6$f*F]\lF_pF^\lF_p-F]al6$F[]lFaqF_pF_p6$FCF\ir-%<I
nvolutive/pairstoequationsG6'FbflF]rFcqFhqF[gn>F^\o-Fj[l6$f*F]\lF_pF^\lF_pFcirF
_pF_pFeirF^\o>FbflFfir@$F^bo>F^\o-Fj[l6$f*F]\lF_pF^\lF_pF^coF_pF_pF_pF^\o>F[[lF
eel>FhalFgel>F_doF^y>FadoF]r>FcdoF]^l>FedoFbr>F^eo7*F\`lF^`lF``lFb`lFd`lFf`lF]h
rFj`l@%Fhao>Fgdo-%$zipG6%f*6$F+F,F_pF^\lF_p7$Faq-F`x6#F[^nF_pF_pF_p-F]al6$F\ir-
Fgir6'-Fj[l6$f*F]\lF_pF^\lF_pFd\lF_pF_pF_pFfpF]rFcqFhqF[gn-Fj[l6$f*F]\lF_pF^\lF
_p7$-F[eo6$&Ffp6$FaqFerF[]l-F]al6$Fdan*&&Ffp6%FaqFbzFfqFfq&Ffp6%FaqFbzF[rFfqF_p
F_p6&FEFbtFCF\ir7#-Faw6#;FfqF[do>Fgdo-F^[s6%f*Fa[sF_pF^\lF_pFb[sF_pF_pF_p-F]al6
$F\ir-Fgir6'-Fj[l6$f*F]\lF_pF^\lF_pFd\lF_pF_pF_pFfpF]rFcqFhqF[gn-Fj[l6$f*F]\lF_
pF^\lF_p7$F`\s7$Fd\s&Fdhn6#&Ffp6%FaqF`rF[rF_pF_p6(FEFbtFCF\irFIF\zF\]s@%Faeo7$F
bfl-F_^l6#F^foFbflF_p6:FfzF_doFadoFcdoFedoFgdoF^\oF\`lF^`lF``lFb`lFd`lFf`lFh`lF
[doFfpF^eoF`\oFb[oFe[oFh[oF[\oF[[lFhalF_pF_p
M7R0
I8Involutive/saveP_T_Listf*6"F$6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~
All~rights~reserved.GF$73%)P_T_ListG%*pnumber_tG%+PolTab_VarG%&_nvarG%&_pvarG%(
_vardegG%(_tupdegG%,_entrblocksG%&P_HOMG%)_pno_rhsG%0_pforce_collectG%._pforce_
evalaG%)_inv_denG%+_JB_factorG%3_JB_factor_multvarG%(_JB_varG%*_JB_compaGF$F$F$
F$
M7R0
IDhomalg/Involutive/FactorModuleBasisf*6$%"MG'%$varG%%listG6%%"iG%+invbasargsG%
(fmbargsG6#%jnCopyright~(C)~2008-2010~by~Daniel~Robertz.~All~rights~reserved.G6
"@'/%5Involutive/InvoBasisG%>Involutive/InvBasisFastAssertG-%AInvolutive/Factor
ModuleBasisFastG6#9"/F2%>Involutive/InvBasisGINVAssertG-%AInvolutive/FactorModu
leBasisGINVGF6C)>8%6$"""""#>8&FA?(8$""$F@9#%%trueG@%-%%typeG6$&F76#FE%'stringG@
%552""!-%+searchtextG6$Q"CF/FM2FT-FV6$Q"GF/FM2FT-FV6$Q"LF/FM>FC6$FCFE>F>6$F>FE>
F>F^o>F>7#F>>FC7#FC-%9homalg/Involutive/IBasisG6#-%$seqG6$&F76#&F>FN/FE;F@-%%no
psG6#F>-%=Involutive/FactorModuleBasisG6#-Fho6$&F76#&FCFN/FE;F@-F`p6#FCF/F/F/F/
M7R0
I9Involutive/pjanet_stddivf*6%%"LG%%seqvG%(loc_varG6.%"aG%"iG%"jG%"lG%"FG%"QG%"
kG%"nG%#suG%$conG%(allmultG%'bufferG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~C
id~and~Daniel~Robertz.~All~rights~reserved.G6"C*>8+-%%nopsG6#9$@$/F:""!-%'RETUR
NG6#7$F>7">8.7#-%"$G6$%)infinityG%&_nvarG>8(F>>8)FF@%09&FF>FP-%'subsopG6$/F:7*&
FP6$F:"""&FP6$F:""#&FP6$F:""$7#-FK6$FAFNFH&FP6$F:""'FF&FP6$F:"")FP>FPFW?(8%,&F:
Fhn!""FhnF\pFhn%%trueGC(>8,FH>8-&FP6$Fjo""%>8&Fhn?(F7FhnFhnF731FgpFN/&FP6&,&Fjo
FhnFhnFhnF^oFhnFgp&FP6&FjoF^oFhnFgpC%>F`p-FX6$/Fgp&FP6%F^q""&FgpF`p@%2&F`p6#Fgp
FM@$0&FbpF\r,&F[rFhnFhnFhnC%>8/-%(collectG6%7$-%$mapG6$f*6#F)F76$%)operatorG%&a
rrowGF7*&)&T$6#T%,&&T'FdsFhnFhnFhnFhnF>FhnF7F76(F&9%F+FgpF1F`p&FP6%FjoFhnFhn-Fi
r6$f*F\sF7F]sF7F`sF7F7Fis&FP6%FjoFhnF[oFjs%,distributedG>FR7$-%#opG6#FR7*Fcr&FP
6$FjoF[o-FX6$/Fhn-FX6$/Fgp,(F_qFhnF[rFhnFhnFhn&FP6%FjoF^oFhn&FP6$FjoF^oF_oFH7$&
FP6%FjoFdoFhn*&)&FjsF\rF`rFhn&FP6%FjoFdoF[oFhnFdu-%5Involutive/ecart_lm1G6&&FP6
$FjoFhnFitFjsFU>Fbp-FX6$/FgpF`rFbp>Fbp-FX6$/FgpFAFbp>Fgp,&FgpFhnFhnFhn@$FjpC$@%
%5Involutive/janetlikeGC%>8',&F\qFhnF_qF\p>F`p-FX6$/Fgp,&FcwFhnF\pFhnF`p@$0F_rF
cwC%>Fcr-Fer6%7$-Fir6$f*F\sF7F]sF7*&)FbsFhsFhnF>FhnF7F76(F&FjsF+FgpF,FcwF[t-Fir
6$f*F\sF7F]sF7FdxF7F7FfxF`tFjsFbt>FR7$Fet7*FcrFit-FX6$/Fhn-FX6$/Fgp,&F_qFhnFcwF
hnFbuFduF_oFH7$Fgu*&)F[vFcwFhnF\vFhnFduF^v>Fbp-FX6$/FgpFcwFbpC$>F`p-FX6$FjvF`p@
$/F_rFAC%>Fcr-Fer6%7$-Fir6$f*F\sF7F]sF7*&FbsFhnF>FhnF7F76&F&FjsF+FgpF[t-Fir6$f*
F\sF7F]sF7FizF7F7FjzF`tFjsFbt>FR7$Fet7*FcrFit-FX6$/Fhn-FX6$/Fgp,&F_qFhnFhnFhnFb
uFduF_oFH7$Fgu*&F[vFhnF\vFhnFduF^v>Fbp-FX6$/FgpFhnFbp>Fbp-FX6$-%$seqG6$/8*FA/Fe
\l;F\wFNFbp>FP-FX6$/Fjo-FX6$/FepFbp-FX6$/FhqF`p&FP6#FjoFP7$FPFRF76#FNF7F7
M7R0
I6Involutive/pdegrevlexf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%\pCopyright~(C)~2000-20
10~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C&>8%-%(convertG
6$&9$6#"""%"+G>8&-F26$&9%F6F8@'2F0F:-%'RETURNG6#%%trueG2F:F0-FB6#%&falseG?(8$-%
%nopsG6#F4!""F7FD@&2&F=6#FJ&F4FRFA2FSFQFF@%2&F56#""#&F>FXFHFDF-F-F-F-
M7R0
I<Involutive/pnegdeglex_Z_POTf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2
004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@&2&9$6#""#&9%F3-%'RETURNG
6#%&falseG2F5F1-F86#%%trueG>8%-%(convertG6$&F26#"""%"+G>8&-FB6$&F6FEFG@'2F@FIF7
2FIF@F<?(8$FFFF-%%nopsG6#FDF>@&2&FL6#FQ&FDFXF72FYFWF<@%2-%$absG6#&F66#""$-Fhn6#
&F2F[oF:F>F-F-F-F-
M7R0
I5Involutive/block_ordf*6&%"aG%"bG%$sepG%+termordersG6#%"iG6#%jnCopyright~(C)~2
004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"@'4-&9'6#"""6$7$&&9$F36#;F4&
9&F3&F96#""#7$&&9%F3F:&FDF?%&falseG/F7FBC$?(8$F@F4-%%nopsG6#F=%%trueG@&4-&F26#F
J6$7$&F86#;,&&F=6#,&FJF4!""F4F4F4F4&F=FSF>7$&FCFWFE-%'RETURNG6#FF0FVFjn-F\o6#FN
@%2F>FEFFFNFNF-F-F-F-
M7R0
I5Involutive/remove_lmf*6$%"LG%'lmprocG6'%"iG%"jG%"FG%#lmG%#LMG6#%jnCopyright~(
C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'>8&9$>8(7">8$"""?(F/F9
F9F/1F8-%%nopsG6#F2C$>8'-9%6#&&&F26#F86#F9FI@%-%'memberG6$&&FA6#""#FPF5>F2-%'su
bsopG6$/F8%%NULLGF2C$>F57$-%#opG6#F5FN>F8,&F8F9F9F9F2F/F/F/F/
M7R0
I5Involutive/ginvBasisf*6G%"FG%$varG%)alg_elemG%(tr_elemG%'n_entrG%)rhs_entrG%'
no_rhsG%"cG%&m_ordG%(var_ordG%)entr_posG%'vardegG%'tupdegG%(algextsG%-algextind
etsG%/transextindetsG%%fextG%1extendbasis_fextG%%algoG%+time_boundG%#trG%*quiet
modeG%#GBG%%contG%*donotreadG%*nowarningG%+tracedenomG%+movedboundG%-qlengthbou
ndG%,degreeboundG%,whichoutputG%)tup_permG%(do_normG%(rootofsG%)radicalsG%#hfG%
)dolaunchG6,%%fileG%&fnameG%-extend_fnameG%"iG%"rG%"tG%%nvarG%+trans_elemG%'std
_wsG%"SG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"
CG@%9*@$2"'++59(-%&ERRORG6#%Alength~of~tuples~exceeds~100000.G@$2Fgn,&Fhn"""-%%
nopsG6#&&9$6#F`o6#""#F`oFin>8*-Fbo6#9%>8+-%'removeG6$f*6#FNFW6$%)operatorG%&arr
owGFW-%'memberG6$FfoT$FWFW6$F3929'@$0907#-%"$G6$""!Fhn-Fjn6#%Yup~to~now,~no~deg
rees~can~be~assigned~to~tuples~in~ginv.G@$2Fio-Fbo6#9--Fjn6#%bpup~to~now,~only~
two~blocks~of~variables~for~elimination~ordering~are~supported~by~ginv.G@$2Fio-
Fbo6#9.-Fjn6#%_pup~to~now,~only~two~blocks~of~tuples~for~elimination~ordering~a
re~supported~by~ginv.G@$32Fio,&-Fbo6#F`pF`o-Fbo6#93F`o0%2Involutive/characGFgq-
Fjn6#%_qup~to~now,~transcendental~extensions~of~degree~greater~than~2~are~only~
supported~over~the~rationals.G@$32FgqF^s4%4Involutive/ratcoeffG-Fjn6#%doup~to~n
ow,~transcendental~extensions~are~not~supported~over~the~integers.G@'2Fgq-%+sea
rchtextG6$Q&linuxFW-%+kerneloptsG6#%(versionGC$@%/-Fht6#%)wordsizeG"#k@$2"+[O[Z
@9+-Fjn6#%?characteristic~must~be~<~2^31.G@$2"&oF$Feu-Fjn6#%?characteristic~mus
t~be~<~2^15.G@%/-%*substringG6$-%(convertG6$-%*interfaceG6#.Fjt%'stringG;F`o"#G
Q=Standard~Worksheet~InterfaceFWC$>8%-%CInvolutive/stdinterface_gettmpnameGFW>8
,%%trueGC&@$4-%;Involutive/ssystem_booleanG6#%3test~-d~/tmp/$USERGC$>8(-%(ssyst
emG6#%1mkdir~/tmp/$USERG@$0&F`xFhoQ!FW-Fjn6#%Ecannot~write~temporary~file~to~/t
mp.G>Faw-Fbx6#%Gecho~/tmp/$USER/Involutive-$PPID-$USERG@%2Fgq-Fdt6$Q"$FW&FawFho
>FawQ0/tmp/InvolutiveFW>Faw-%=Involutive/remove_whitespaceG6#Fey>Few%&falseG2Fg
q-Fdt6$Q&APPLEFWFgtC%@$FjuF\v>FawFbw>FewFfwC%@$FjuF\v>FawQ1\TEMP\InvolutiveFW>F
ewF]z@$095Fhx>8&-%$catG6%FawF][lQ(.binaryFW@$9HC&>F`x-Fev6$FgtF[w@$5550-Fbv6$F`
x;F`o""(Q(Maple~1FW/-Fbv6$F`x;F`o"")Q)Maple~10FW/Fe\lQ)Maple~11FW/Fe\lQ)Maple~1
2FW-Fjn6#%Ucan~only~'launch'~GINV~in~Maple~version~13~or~newer.G>Faw-Fa[l6%FawQ
(-launchFW-Fev6$%;Involutive/launchGINVcountGF[w>Fg]l,&Fg]lF`oF`oF`o>Faw-Fa[l6$
Faw94>8$-%&fopenG6$Faw%&WRITEG-%<Involutive/writeGINV1headerG63F_^lF^p9&F`pFhn9
)FZFeu9,F_rFgr9/Fbq91F^qFcs9>-%(fprintfG6$F_^lQ*eqs~=~[\|+FW?(8'F`oF`o-Fbo6#Ffo
FfwC&@%FZ@%/FhnF`o>8--Fa[l6$-Fev6$-%#opG6#&Ffo6$Fb_lF`oF[wQ"~FW>Fj_l-Fev6$Fb`lF
[w>Fj_l-Fev6$-%$mapG6$F``l&Ffo6#Fb_lF[w?(FWF`oF`oFW2Fgn-%'lengthG6#Fj_lC&>F`x-F
dt6$Q"|+FWFj_l?(FWF`oF`oFW2FgqF`xC&@%32F`oF`x/&Fj_l6#,&F`xF`o!""F`oQ"\FW-F^_l6%
F_^lQ#%aFW-Fbv6$Fj_l;F`o,&F`xF`o!"#F`o-F^_l6%F_^lFhbl-Fbv6$Fj_l;F`oFcbl-F^_l6$F
_^lQ#\|+FW>Fj_l-Fbv6$Fj_l;,&F`xF`oF`oF`oFdbl>F`xFgal-F^_l6%F_^lFhblFj_l>Fj_lFhx
@$2FgqFbalF\dl@$2Fb_lFc_l-F^_l6$F_^lQ$,\|+FW-F^_l6$F_^lQ#]|+FW@$F\t@%3Fh_lFZ-F^
_l6$F_^lQineqs~=~map(lambda~eq:~"("~+~eq.encode('latin1')~+~")*@~",~eqs)|+FW-F^
_l6$F_^l-Fa[l6%QReqs~=~map(lambda~eq:~(ginv.Poly(ip,~eq)).prolong(FW-Fev6$F[pF[
wQ)),~eqs)|+FW@$F\[lC(-F^_l6$F_^lQ<oldbasis~=~ginv.basisLoad("FW-F^_l6$F_^lF_[l
-F^_l6$F_^lQ.",~"TQ",~iD)|+FW-F^_l6$F_^lQ=for~i~in~oldbasis.iterIB():|+FW-F^_l6
$F_^lQ1~~eqs.append(i)|+FW-F^_l6$F_^lQ.del~oldbasis|+FW>Fj_lQ:basis~=~ginv.basi
sBuild("FW@%096Fhx>Fj_l-Fa[l6$Fj_lF^gl@%333/F_r7"5/Fi^lFio/Fi^l""%5/FgrFggl3/Fe
rF`o/&FgrFgoFhn/Fj^l7#-Feq6$F`oF[p>Fj_l-Fa[l6$Fj_lQ)TQDegreeFW>Fj_l-Fa[l6$Fj_lQ
#TQFW>Fj_l-Fa[l6$Fj_lQ(",~iD,~FW@%52Fgq9?2Fgq9@C1-F^_l6$F_^lQWeqs2~=~[]|+for~i~
in~eqs:|+~~~~eqs2.append(i)|+runden~=~0|+FW-F^_l6$F_^lQ-while~True:|+FW-F^_l6$F
_^lQX~~~~runden~=~runden+1|+~~~~print~"NEUE~RUNDE:~",~runden|+FW-F^_l6$F_^lQbo~
~~~print~"Eingabe:~",~len(eqs),~"~letzte~Basis:~",~len(eqs2)-len(eqs)|+FW@%Fdil
@%FfilC&-F^_l6$F_^l-Fa[l6%Q%~~~~FWFj_lQ2eqs2,~MovedBound=FW-F^_l6$F_^l-Fev6$Fei
lF[w-F^_l6$F_^lQ0,~QlengthBound=FW-F^_l6$F_^l-Fev6$FgilF[wC$FhjlF^[mC$-F^_l6$F_
^l-Fa[l6%F\[mFj_lQ4eqs2,~QlengthBound=FWFe[m@$2Fgq97C$-F^_l6$F_^lQ(,~time=FW-F^
_l6$F_^l-Fev6$Fb\mF[w@$2Fgq9AC$-F^_l6$F_^lQ/,~DegreeBound=FW-F^_l6$F_^l-Fev6$F]
]mF[w@$99-F^_l6$F_^lQ*,~quiet=1FW@$%2Involutive/absremG-F^_l6$F_^lQ@,~absolutel
ySmallestRemainder=1FW@$49;-F^_l6$F_^lQ,,~content=0FW-F^_l6$F_^lQ6,~skipHilbert
Poly=1)|+FW@%Fa\m-F^_l6$F_^lQio~~~~if~not~basis.computationInterrupted()~or~bas
is.outOfTime():|+~~~~~~~~break|+FW-F^_l6$F_^lQZ~~~~if~not~basis.computationInte
rrupted():|+~~~~~~~~break|+FW-F^_l6$F_^lQN~~~~del~eqs2|+~~~~eqs2~=~[]|+~~~~for~
i~in~eqs:|+FW-F^_l6$F_^lQU~~~~~~~~eqs2.append(i)|+~~~~for~i~in~basis.iterIB():|
+FW-F^_l6$F_^lQR~~~~~~~~eqs2.append(str(i)~+~'~')|+~~~~del~basis|+|+FWC*-F^_l6$
F_^l-Fa[l6$Fj_lQ$eqsFW@$Fa\mC$Fd\mFg\m@$F\]mC$F_]mFb]m@$F\^mF]^m@$Fa^mFc^m-F^_l
6$F_^lQ4,~skipHilbertPoly=1FW@$09GFgglC$-F^_l6$F_^lQ3,~hilbertFunction=FW-F^_l6
$F_^l-Fev6$Fj`mF[w-F^_l6$F_^lQ#)|+FW-F^_l6$F_^lQ1ginv.basisSave("FW-F^_l6$F_^l-
Fa[l6$FawFc[l-F^_l6$F_^lQ+",~basis)|+FW-%AInvolutive/writeGINV1MapleOutputG6,F_
^lFawQ&basisFWFhnFZ9:Fb\m9<9BF\_l@$Fe[lC&-F^_l6$F_^lQ+f~=~file("FW-F^_l6$F_^l-F
a[l6$FawQ'.readyFW-F^_l6$F_^lQ)",~"w")|+FW-F^_l6$F_^lQ+f.close()|+FW-%'fcloseG6
#F_^l@%Fe[lC&>F`x-Fbx6#-Fa[l6%Q'rm~-f~FWFawF`cm@$0&F`xFgoFgq-Fjn6#%>cannot~remo
ve~temporary~file.G>&%:Involutive/GINVlaunchdataG6#Fg]l73FawFhnFh^lFZFeuF^pFj^l
Fbq9C9E9F9DFdbm9=Fb\mF\_lFfbm-%'RETURNG6#7$,&Fg]lF`oFdblF`o-&%'systemG6#%'launc
hG6$Q(runginvFWFawC$@%Fg]m@%FewC%>F`x-Fbx6#-Fa[l6$Q)runginv~FWFaw@$/F`x%%NULLG-
Fjn6#%Acould~not~run~program~'runginv'.G>F`xFddmC$>F`x-Fbx6#-Fa[l6%FgfmFawQ-~>~
/dev/nullFW@%3/FddmFgq/FgxFhx>F`xFgq>F`xF`oC$>F`x-FiemFdfm@$FifmF[gm@$0F`xFgq-F
jn6#%Merror~during~call~of~Python~or~interruption.G@$FbtC%>F`x-Fbx6#-Fa[l6'Q&if
~[~FWFawQ,.janet~-ot~FWFawQ:~];~then~echo~-n~true;~fiFW@$2Fgq-Fcal6#Fgx-Fjn6#%d
poutput~file~of~ginv~is~older~than~input~file~(probably,~program~ginv~stopped~a
bnormally).G@$4FebmC$>F`x-Fbx6#-Fa[l6%Q*filesize~FWFawQ'.janetFW@$30F`xFjfmFhgm
C$>Fb_l-%'sscanfG6$FgxQ#%dFW@$334Faem2Fgq-FboF_al2"'++I&Fb_lFgo-%(WARNINGG6#Q\o
resulting~involutive~basis~is~big;~reading~it~may~take~a~while...FW@$Febm-Fcem6
#FgglA-Fa[l6$FawF_jm@$333F\[nFa\m-%)assignedG6#%6_IB_RESULTout_of_timeG/Fc\n.%%
TrueG-Fc[n6#%[ocomputation~of~involutive~basis~stopped~due~to~time~restriction.
G>%*_JB_compaG.F[]n@$F\_l>%._GINV_inv_denG%0_IB_RESULTdenomG@+5/FfbmFggl/-Fbv6$
Ffbm;F`o"#dQZinvbasis,invbasislm,invbasisanc,multvar,factormodulebasisFWC%@$543
33-Fa\n6#%+_IB_RESULTG-Fa\n6#%-_IB_RESULTlmG-Fa\n6#%._IB_RESULTancG-Fa\n6#%2_IB
_RESULTmultvarG3F]t43-Fa\n6#%1_IB_RESULTfactorG-Fa\n6#%8_IB_RESULTfactormultvar
G-Fjn6#%Cerror~in~computation~or~interface.G@$F]tC%>8)&-%4Involutive/proc_ordG6
*F[hlF^pFggl7$-F``l6#Fj^l-F``l6#FbqFgglF^p7#FhnFfw6#""&@%2F`oFhnC%>%+_JB_factor
G-%%sortG6$-%$zipG6%f*6$FN%"jGFWFfpFW7$FfoF^pFWFWFWFb_nFe_nf*FeanFWFWFW@'2&&F^p
FgoFhoFdoFfw2FdoF[bnF]z-T#6$&FeoFgo&F\bnFgoFWFW6$FPF\`n>%3_JB_factor_multvarG-F
\al6$f*FepFWFfpFW&FfoFhoFWFWFWF]an>F]an-F\al6$f*FepFWFfpFW-%'subsopG6$/,&FdoF`o
F`oF`oFabn7#-Feq6$FgqF\qFWFW6$F)FhnF]anC%>F]an-F_an6$-Fban6%f*FeanFWFfpFWFganFW
FWFWFb_nFe_nf*FeanFWFfpFW-F_bn6$FeoF\bnFWFWFcbn>Febn-F\al6$f*FepFWFfpFWFibnFWFW
FWF]an>F]an-F\al6$f*FepFWFfpFWFeoFWFWFWF]an>%(_JB_varGF^p-Fcem6#7&Fc^nFi^nFf^nF
\_n/-Fbv6$Ffbm;F`o"#RQHinvbasis,invbasislm,invbasisanc,multvarFWC$@$F]^nFf_nF[e
n/FfbmQ)invbasisFWC$@$4Fa^nFf_n-Fcem6#7&Fc^nFgglFgglFggl/FfbmQ2factormodulebasi
sFWC&@$F^_nFf_n>F\`nF]`n@%Fj`nC%>F]an-F_an6$-Fban6%f*FeanFWFfpFWFganFWFWFWFb_nF
e_nf*FeanFWFWFW@'FjanFfwF]bnF]zF^bnFWFWFcbn>Febn-F\al6$f*FepFWFfpFWFibnFWFWFWF]
an>F]an-F\al6$f*FepFWFfpFWF^cnFWFWFfcnF]anC%>F]an-F_an6$-Fban6%f*FeanFWFfpFWFga
nFWFWFWFb_nFe_nf*FeanFWFfpFWF_dnFWFWFcbn>Febn-F\al6$f*FepFWFfpFWFibnFWFWFWF]an>
F]an-F\al6$f*FepFWFfpFWFeoFWFWFWF]an>FjdnF^p-Fjn6#%4error~in~interface.GFW6)F]a
nFebnFjdnF[]nF_]nFg]lFjdmFWFW
M7R0
I9Involutive/GroebnerBasisf*6"6)%"iG%"GG%*tmp_P_HOMG%,tmp_inv_denG%-tmp_JB_comp
aG%*nowarningG%+time_boundG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~
rights~reserved.GF$C)@$0%7Involutive/initializedG.%%trueG-%0Involutive/initGF$>
8*""!>8)%&falseG?(8$""$"""9#F4@$-%%typeG6$&9"6#F>%)equationG@&/-%#opG6$F@FFQ*no
warningF$C$@$4-FD6$-FM6$""#FF%(booleanG-%&ERRORG6#%Pexpecting~boolean~value~for
~option~"nowarning".G>F;FU/FLQ%timeF$C$@$4-FD6$FU%*nonnegintG-FZ6#%Sexpecting~t
ime~bound~in~seconds~for~option~"time".G>F8FU>8%-%6Involutive/GroebBasisG6#FG@$
/Fgo%=Involutive/GroebnerBasisFastGC)>8&%&P_HOMG>8'%)_inv_denG>8(%*_JB_compaG@%
32F9F8F;-%4Involutive/InvBasisG6$&Feo6#F@&FG6#;FWFA-Fjp6$FeoF^q>F_pF^p>FbpFap>F
epFdpFeoF$6%F_pFbpFepF$F$
M7R0
I9Involutive/PolResolutionf*6#%"LG6P%#_aG%"eG%"iG%"jG%"kG%"lG%#lmG%"pG%"tG%"vG%
"BG%#BBG%"FG%#L2G%"MG%#MsG%#MVG%$MV2G%"RG%#RRG%"SG%"TG%#IBG%'lmprocG%$lmpG%'n_e
ntrG%$varG%%varsG%)new_varsG%(var_ordG%'vt_degG%(deg_ordG%+deg_or_matG%)tup_per
mG%&paramG%%seqvG%&m_ordG%*m_ord_POTG%#trG%*cmp_basisG%.force_collectG%,force_e
valaG%)simp_optG%+trans_elemG%)entr_posG%/tail_reductionG6#%jnCopyright~(C)~200
0-2010~by~Daniel~Robertz.~All~rights~reserved.G6"CE@$0%7Involutive/initializedG
.%%trueG-%0Involutive/initGFW>80-%6Involutive/proc_inputG6#9$@$4&F[o6#""$-%&ERR
ORG6#%Fexpecting~L~without~right~hand~sides.G>8=&F[o6#""">8M&F[o6#""&>8O&F[o6#"
"(@%332""#9#-%%typeG6$&9"Fco%%listG4-F_q6$Faq-Fcq6#%(integerGC(>8?Faq>86-F]o6#&
Fbq6#F\q@$2F]p&F^rF\p-Ffo6#%Xexpecting~list~of~relations~for~the~residue~class~
ring.G@$4&F^rFco-Ffo6#%foright~hand~sides~for~relations~of~the~residue~class~ri
ng~are~not~supported.G@%/&F^r6%""%F]pF]p7#""!>F^r7">F^rFar>8(FcsC&@$2F]qF\q-Ffo
6#%Pexpecting~list~of~variables~as~second~argument.G>F\rFar>F^rFgs>FjsFdo>8>-%5
Involutive/proc_varsG6$F\rFjo>8A&FetFbr>8B&FetFco>8C&Fet6#Fcs>8E&FetFap>8P&Fet6
#""'>Fet&FetF\p>%&_nvarG-%%nopsG6#Fet>8G7#-%$seqG6$-%$catG6$%#_xG8'/F\w;F]pF^v>
8L-%&evalbG6#0-%&minusG6$<#-%#opG6#Fdp<#-FjwFav<">8DF]p>8+Fes>8JFes>8:%%NULLG>8
HF\q>8K%&falseG>8QFgx?(F\wFjsF]pF]qFgnC$>88&Fbq6#F\w@)-F_q6$Fby%'stringG?(8&F]p
F]p-%'lengthG6#FbyFgn@2/&Fby6#FjyQ"CFW>F[yFgn/F`zQ"DFW>F`xFes/F`zQ"GFWC$>FbxF\q
>8F-Fiv6$-%*substringG6$Fby;F]p,&FjyF]p!""F]p-F`[l6$Fby;,&FjyF]pF]pF]pF[z/F`zQ"
MFW>F`xF]p/F`zQ"OFW>FbxF]p/F`zQ"SFW>F_pFgn/F`zQ"TFW>FixFcs0F`zQ!FW-Ffo6#%fropti
ons~must~be~given~by~a~string~consisting~of~letters~in~|fr"C",~"D",~"G",~"M",~"
O",~"S"|hr,~not~containing~both~"D"~and~"M".G-F_q6$Fby%'posintG>FdxFby-F_q6$Fby
%)equationG@'/-Fjw6$F]pFbyQ%TRELFW@%-F_q6$-Fjw6$F\qFbyFcq>FfxFi]l-Ffo6#%Wexpect
ing~a~list~as~right~hand~side~for~option~"TREL".G/Fc]lQ.tailreductionFWC$@$4-F_
q6$-Fjw6$F\qFcy%(booleanG-Ffo6#%Texpecting~boolean~value~for~option~"tailreduct
ion".G>F^yFby-Ffo6#%0invalid~option.GF]_l@$3/FixFcs/FbxFes>FbxFdo@%0FjtFgsC$>Fi
x7#-%"$G6$Fix-F`v6#Fjt>8I7#-F[`l6$F\qF]`l>F``lF\q@%F_p>8NF`\l>Fg`lFf\l@+0F^rFgs
C(@$/FdxFes>Fdx%?Involutive/ResolutionAutoTruncG>83Fgs@'-F_q6$F_o%)listlistG>8.
F_o-F_q6$F_oFcq>Fgal-%$mapG6$f*6#F'FW6$%)operatorG%&arrowGFW7#F_oFWFWFWF_o>Fgal
-%(convertGFdal@$F_p>Fgal-%)simplifyG6#Fgal?(FWF]pF]pFW34-&%'linalgG6#%'iszeroG
F[cl2,&-F`v6#FaalF]pFd[lF]pFdxC&>8)-F`vF[cl>Faal7$-%6Involutive/matrixtypeGF[cl
-FjwFgcl>Fgal-Ffbl6$-%8Involutive/PolKernelEmbG6&-%7Involutive/jetsdiagmatG6#-F
[`l6$F^rFjcl-%'matrixGF[cl-Fhdl6#-F[`l6$F^rFjoFetFeal>FjoFjcl>FaalF]dlFc_lC(>Fj
cl-%4Involutive/proc_ordG6*F``lFetFjtF]uF`uFetFgu4F_p>8;&FjclF\p>Fgal-%;Involut
ive/InvolutiveBasisG6'F_oF\rF``lFg`lF^y>89-%%subsG6$7#-Ffv6$/&Fcv6#Fjs&FetF[gl/
FjsF^w%)P_T_ListG@%/F`xF]p@%/F_dl%'MatrixG>Faal7#-Fcgl6%F[dlFjo-F\bl6$f*F_blFWF
WFW@%FhalF_oFcblFWFWFWFgal>Faal7#-F]el6%F[dlFjoFgalC%>82Fgs?(FjyF]pF]pF[dlFgnC&
>F\wF]p?(FWF]pF]pFW31F\wFjo/&Fbfl6&FjyF]pF]pF\wFes>F\w,&F\wF]pF]pF]p>8*-Fdfl6$7
#-Ffv6$/F\gl)8,&F]uF[glF]gl&-F[fl6#FjhlFbr>Fbhl7$-Fjw6#Fbhl,&-%'degreeG6$F_ilFg
ilF]p&F]u6#,&F^vF]pF\wF]pF]p>Faal7#Fbhl?(FWF]pF]pFW32FesF[dl5F]alFdclC)@%/&F]u6
#;,&F_vF]pF]pF]p,&F_vF]pFjoF]p7#-F[`l6$FesFjo>8<-%&parseG6#-Fiv6-QB_a->`Involut
ive/pol_lead_mon`(_a,FW-Ffbl6$FjoFhyQ",FW-Ffbl6$FetFhyFb\m-Ffbl6$F\flFhyFb\m-Ff
bl6$7#FjoFhyFb\m-Ffbl6$&FjclFapFhyQ%,~0)FW>Fi[m-F[\m6#-Fiv6/F_\mF`\mFb\mFc\mFb\
mFe\mFb\mFg\mFb\mFj\mFb\m-Ffbl6$F]uFhyQ")FW>84-F\bl6$f*F_blFWF`blFW&F_oFapFWFWF
WFbfl>85Fgs>F_ilFgs>81Fgs?(FjyF]pF]pF[dlFgn@$0&Fg]mFaz7#-F[`l6$%)infinityGF^v?(
F\wF]pF]pF^vFgn@$0&Fg]m6$FjyF\wFh^mC'@%%4Involutive/ratcoeffG@'F_p>87-%8Involut
ive/invred_evalaG6)7$-F\bl6$f*6#F+FWF`blFW-%(collectG6%*&)&T#6#T%,&&T'6$T)Fd`mF
]pF]pF]pF]pF_oF]pFb`m%,distributedGFWFW6*FAFetF*F\wF7Fg]mF)Fjy&&&FbflFazF\pF\pF
dsFbflFgnFgnFetFi[m&FjclFiuF`w>Fc_m-%:Involutive/invred_collectG6)7$-F\bl6$f*F[
`mFWF`blFWF\`mFWFWF[amF\amFdsFbflFgnFgnFetFi[mF_am>Fc_m-%2Involutive/invredG6)7
$-%'expandG6#*&)&FetFdy,&F\_mF]pF]pF]pF]pF\amF]pFdsFbflFgnFgnFetFi[mF_am@'F_p@%
%2Involutive/absremG>Fc_m-%=Involutive/simp_invred_Z_absG6)7$-F\bl6$f*F[`mFWF`b
lFWF\`mFWFWF[amF\amFdsFbflFgnFgnFetFi[mF_am>Fc_m-%@Involutive/simp_invred_Z_non
negG6)7$-F\bl6$f*F[`mFWF`blFWF\`mFWFWF[amF\amFdsFbflFgnFgnFetFi[mF_amF`w@%Ffbm>
Fc_m-Fibm6)7$-F\bl6$f*F[`mFWF`blFWF\`mFWFWF[amF\amFdsFbflFgnFgnFetFi[mF_am>Fc_m
-Facm6)7$-F\bl6$f*F[`mFWF`blFWF\`mFWFWF[amF\amFdsFbflFgnFgnFetFi[mF_am@%Ffbm>Fc
_m-%8Involutive/invred_Z_absGF[bm>Fc_m-%;Involutive/invred_Z_nonnegGF[bm@$0&&Fc
_mF\pF\pFe[m-Ffo6#%-wrong~basis!G@%F_p@%0%2Involutive/characGFes>F`^m7$-Fjw6#F`
^m-%$modG6$-Fjbl6#,&-%'subsopG6$/FjyFabm7#-F[`l6$FesF[dlF]p&Fc_mFbrFd[lFgem>F`^
m7$FjemF_fm@%Ffem>F`^m7$Fjem-F]fm6$FafmFgem>F`^m7$FjemFafm>F]^m7$-Fjw6#F]^m7$-F
jw6#&Fd^m6#;F]p,&F\wF]pFd[lF]p-F[`l6$Fh^m,(F^vF]pF\wFd[lF]pF]p@%F`_m>F_il7$-Fjw
6#F_il7$7$-Fcfm6$/F\wFcbm7#-F[`l6$FesF^vFjy7$F]pFabm>F_il7$Fdhm7$7%FhhmFjyF]pF^
im@%2Fes-F`vF[fmC'>FjoF[dl>Fbfl-%%sortG6$7#-Ffv6$7*7$&F`^mFazFds&F_il6$FjyF]pFb
jmF[im&F]^mFaz&F_il6$FjyF\qFgs-%1Involutive/ecartG6&Fajm&F_ilFazFcv%(loc_varG/F
jy;F]pFeim%7Involutive/pdegrevlex3G>Fgal-F\bl6$f*F_blFWF`blFW&&F_oF\pF\pFWFWFWF
bfl@%/F`xFesC%>FbhlFgs?(FjyF]pF]pF[dlFgnC&>F\wF]p?(FWF]pF]pFWFghl>F\wF]il>F_ilF
`il>Fbhl7$F^jl,&FajlF]p&Faal6$F]pF\wF]p>Faal7$FbhlF`dlC$@%Fbgl>Fbhl-Fcgl6%F[dlF
jo-F\bl6$f*F_blFWFWFW@%FhalF_oFcblFWFWFWFgal>FbhlF^hl>Faal7$-%%copyGF_jlF`dl>F]
u7$&-Fjw6#F]u6#F^wFf[m>FgalFgs/FbxF]pC+>Fjcl-Fgel6*FixFetFjtF]uF`uFetFguFiel>F[
flF\fl>Fgal-%9Involutive/GroebnerBasisG6&-F\bl6$f*6#F)FWF`blFWFd[nFWFWFW&F[oFbu
F\rFixFg`l>FjclF[dl@%F`gl@%Fbgl>Faal7#-Fcgl6%FjclFjo-F\bl6$f*F_blFWFWFW@%FhalF_
oFcblFWFWFWFgal>Faal7#-F]el6%FjclFjoFgalC%>FbhlFgs?(FjyF]pF]pFjclFgnC(>8%&FgalF
az@$/FjoF]p>F^`n7#F^`n>F\wF]p?(FWF]pF]pFW3Fhhl/&F^`nFdyFes>F\wF]il>F_il-Fdfl6$F
bil&-F[fl6#Fh`nFbr>FbhlF]jl>FaalFhjl>F`^m7#-Ffv6$/F_`n-Fcfm6$/FjyF]p7#-F[`l6$Fe
sFjcl/Fjy;F]pFjcl-Fc^n6&F`^mF\rFixFg`l>Fby-%4Involutive/SyzygiesGF`bn?(FWF]pF]p
FW32Fes-F`vF]zF\[mC)>FjoFeim>Fgal-Fc^n6&FbyF\rFixFg`l>FjclF[dl@%Ff[nC%>FbhlFgs?
(FjyF]pF]pFjclFgnC(>F^`nF_`n@$Fa`n>F^`nFc`n>F\wF]p?(FWF]pF]pFWFf`n>F\wF]il>F_il
F[an>FbhlF`\n>FaalFe\nC$@%Fbgl>Fbhl-Fcgl6%FjclFjo-F\bl6$f*F_blFWFWFW@%FhalF_oFc
blFWFWFWFgal>FbhlFg_n>FaalFa]n>F`^mFcanF_bn>FbyFbbn/FbxF\qC+>FjclF^^n>F[flF\fl@
%F_p>F[o-F\bl6$f*Fh^nFWF`blFWFd[nFWFWFW-F]`m6%-%&evalaG6#Fi^nFetFj`m>F[o-F\bl6$
f*Fh^nFWF`blFWFd[nFWFWFW-F]`m6%Fi^nFetFj`m@%F`glC$@%Fbgl>Faal7#-Fcgl6%-F`v6#F[o
Fjo-F\bl6$f*F_blFWFWFW@%FhalF_oFcblFWFWFWF[o>Faal7#-F]el6%FdfnFjoF[o>8@F\rC&>Fb
hlFgs?(FjyF]pF]pFdfnFgnC'>F^`n&F[oFaz>F\wF]p?(FWF]pF]pFW31F\w-F`v6#F^`nFg`n>F\w
F]il>F_ilF[an>FbhlF]jl>FaalFhjl>F_gn7$-Ffv6$/&FetFaz&F]uFaz/FjyF^w-Ffv6$/Fjy&Fb
hlFaz/Fjy;F]pFdfn>F`^m-%2Involutive/AddRhsGFefn@$0FfxFgx>F`^m7$Fjem-Fjw6#-F\bl6
$f*F_blFWF`blFW/F_o7#-F[`l6$Fes-F`v6#Fb`mFWFW6$F3F[oFfx-F_fl6'F`^mF\rFixFg`lF^y
>FgalFbbn@$0FgalFgs@%/FdxF]pC%>8/-F_fl6'FgalF\rFixFg`lF^y@$54F[y2-F`v6#FjjnF[dl
>FgalFjjn@%F`gl@%Fbgl>Faal7$-Fcgl6%F[dlFdfn-F\bl6$f*F_blFWFWFW@%FhalF_oFcblFWFW
FWFgalF`dl>Faal7$-F]el6%F[dlFdfnFgalF`dlC%>FbhlFgs?(FjyF]pF]pF[dlFgnC'>F^`nF_`n
>F\wF]p?(FWF]pF]pFWFhgn>F\wF]il>F_ilF[an>FbhlF`\n>FaalFe\nC$@$2FesFdx>F\[l6$F\[
l,&FdxF]pFd[lF]p>Faal7$-Fjw6#-F"6%FgalF_gnF\[lF`dlC/>FjclF^^n>F[flF\fl@%F_p>F`^
m-F\bl6$f*Fh^nFWF`blFWFd[nFWFWFWFben>F`^m-F\bl6$f*Fh^nFWF`blFWFd[nFWFWFWF[fn>Fg
al7#-Ffv6$/Fajm-Fcfm6$Fian7#-F[`l6$FesFeimF\[n>FgalF[[o>FbxF\y@$5F_[o2F[dlFeimC
$>FbxFgn>F`^m-F\bl6$f*Fh^nFWF`blFW-%$lhsGF^oFWFWFWFgal@%F`gl@%Fbgl>Faal7#-Fcgl6
%FeimFjo-F\bl6$f*F_blFWFWFW@%FhalF_oFcblFWFWFWF`^m>Faal7#-F]el6%FeimFjoF`^mC%>F
bhlFgs?(FjyF]pF]pFeimFgnC(>F^`nFajm@$Fa`n>F^`nFc`n>F\wF]p?(FWF]pF]pFWFf`n>F\wF]
il>F_ilF[an>FbhlF]jl>FaalFhjl>FjclFeim>F`^m7#-Ffv6$/FajmFganF]bn@$FbxFajn>FbyFb
bn?(FWF]pF]pFWFebnC->Fjo-F`v6#&FbyF\p>F`^mFby>FgalFf^o>FgalF[[o>FbxF\y@$Fb_oC$>
FbxFgn>F`^m-F\bl6$f*Fh^nFWF`blFWFj_oFWFWFWFgal@%Ff[nC%>FbhlFgs?(FjyF]pF]pFeimFg
nC(>F^`nFajm@$Fa`n>F^`nFc`n>F\wF]p?(FWF]pF]pFWFf`n>F\wF]il>F_ilF[an>FbhlF`\n>Fa
alFe\nC$@%Fbgl>Fbhl-Fcgl6%FeimFjcl-F\bl6$f*F_blFWFWFW@%FhalF_oFcblFWFWFWF`^m>Fb
hl-F]el6%FeimFjclF`^m>FaalFa]n>FjclFeim>F`^mFiao@$FbxFajn>FbyFbbn>F^gl.F^gl>%+P
olTab_VarG.Fbeo>%(_StatssG.Feeo>%+_JB_factorG.Fheo>%3_JB_factor_multvarG.F[fo-%
'RETURNGFgclFW6(F^vF^glFbeoFeeoFheoF[foFWFW
M7R0
I@Involutive/PolShorterResolutionf*6$'%"FG%%listG'%%varsGF'6'%"iG%"jG%"lG%"vG%%
betaG6#%\pCopyright~(C)~2004-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~righ
ts~reserved.G6"C&>8'-%*substringG6$-%(convertG6$-%+kerneloptsG6#%(versionG%'str
ingG;""""")@$45-%%typeG6$9$-F'6#%'matrixG330F5Q)Maple~V,F20F5Q)Maple~6.F2-FH6$F
J-F'6#%'MatrixG-%&ERRORG6#%]oexpecting~a~free~resolution~as~list~of~matrices~as
~first~argument.G>8&-%%nopsG6#FJ@%1FhnFBFJC$>8(-%;Involutive/PolRightInverseG6$
&FJ6#FB9%@%/F`o%%FAILGFJ@%/Fhn""#7#-F:6$-%$zipG6%f*6$F+F,F26$%)operatorG%&arrow
GF27$-%#opGF[o-Fjp6#FfoF2F2F2-F:6$&FJ6#F\p%)listlistG-F:6$F`oFaq%6Involutive/ma
trixtypeG7%-F:6$-Fap6%f*FdpF2FepF2FhpF2F2F2F]qFbqFdq-F:6$7$-Fjp6#-F:6$&FJ6#""$F
aq-%"$G6$7#-Ffr6$""!-&%'linalgG6#%'coldimG6#Fbr-F]s6#F`oFdq-%$seqG6$-%%copyG6#&
FJ6#8$/F\t;""%FhnF2F2F2F2
M7R0
I9Involutive/PolRepresFastf*6&'%"mG%(polynomG'%"BG%%listG'%%varsGF*'%#FBGF*61%"
iG%"jG%"lG%"rG%&m_ordG%$varG%)tup_permG%'compatG%%seqvG%(loc_varG%)entr_posG%'n
_entrG%,as_listlistG%"FG%(nocheckG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robert
z.~All~rights~reserved.G6"C3@$0%7Involutive/initializedG.%%trueG-%0Involutive/i
nitGFA@$4%4Involutive/ratcoeffG-%&ERRORG6#%fnnot~implemented~yet~for~involutive
~bases~over~the~integers.G@&/9'7"-FN6#%Gfactor~module~basis~must~not~be~empty.G
45-%%typeG6$&FS6#"""F*-Fen6$FgnF'-FN6#%Dfactor~module~basis~must~be~finite.G>8(
""%>80%&falseG>82Fdo?(8$""&Fin9#FG@)5-Fen6$&9"6#Fho%(integerG-Fen6$F_pF*>F`oF_p
/F_pQ)listlistFA>FcoFG-Fen6$F_p%'stringGC$>81F_p?(8%FinFin-%'lengthG6#F^qFG@&/&
F^q6#F`qQ"LFA>FfoFG0FfqQ"SFA-FN6#%0invalid~option.GF\r>8+-%7Involutive/checkIBf
astG6(9%9&%2Involutive/characGFaoQ!FAFfo>8/&F`r6#""#>8)&F`r6#Fio>%&_nvarG-%%nop
sG6#F^s>8*&F`r6#""'>8.&F`r6#"")@$4&F`rFhn-%?Involutive/InvolutiveBasisFastG6%Fd
rFer/Q%charFAFfr@$4-%$hasG6$9$F^s-%'RETURNG6#-%6Involutive/matrixtypeG6%-Fds6#F
SFduf*6$F0F1FAFAFA@%/F]uFdrT$""!FAFA6$F&F]u@$0-%&minusG6$-%'indetsG6#F]u<#-%#op
GFes<"-FN6#%Hno~parameters~allowed~in~PolRepresFast.G@%/FirFin@'FcoC$>8'-%$mapG
6&%:Involutive/monomcoefflistG-%8Involutive/cppInvReduceG6%-Fcw6$f*6#F3FA6$%)op
eratorG%&arrowGFA-%'expandG6#*&FjuFinF]uFinFAFAF\vFSFgrFGF^sFS7#-%$seqG6$-Fcw6$
f*6#F2FAF]xFA-Fgv6$T#F]uFAFA6$F0FhoFaw/Fho;FinFdu/Fbu%'MatrixG-&%.LinearAlgebra
G6#%*TransposeG6#-Fcy6#-Fcw6&Few-Fgw6%-Fcw6$f*F\xFAF]xFAF`xFAFAF\vFSFgrFGF^sFS-
&%'linalgG6#%*transposeG6#-%&evalmG6#-Fcw6&Few-Fgw6%-Fcw6$f*F\xFAF]xFAF`xFAFAF\
vFSFgrFGF^sFSC'>F^q7#-%"$G6$FTFir>8&7#-Ffx6$,&FirFinFho!""/Fho;F[v,&FirFinF_\lF
in>F`qFir?(FhoFinFinFduFGC%?(FAFinFinFA31FinF`q/&&FSFapFgqF[v>F`q,&F`qFinF_\lFi
n@$2F`qFin-FN6#%_oexpecting~factor~module~basis~to~be~the~result~of~FactorModul
eBasis.G>F^q-%'subsopG6$/F`q7$-Fgv6#FfqFj\lF^q@'FcoC$>Faw-Fcw6$f*6#F0FAF]xFA-Fc
w6$Fgv-%8Involutive/tupcoefflistG6&F]uF^yT%T'FAFA6(F5F^sF=F^qF2Fj[l-Fgw6%-Fcw6$
f*F\xFAF]xFAF`xFAFAF\vFSFgrFG7#-Ffx6$-Fcw6$f*F[yFAF]xFAF\yFAFAF_yFawF`yFby-Fey6
#-Fcy6#-Fcw6$f*Fa^lFAF]xFAFb^lFAFAFi^l-Fgw6%-Fcw6$f*F\xFAF]xFAF`xFAFAF\vFSFgrFG
-Fdz6#-Fjz6#-Fcw6$f*Fa^lFAF]xFAFb^lFAFAFi^l-Fgw6%-Fcw6$f*F\xFAF]xFAF`xFAFAF\vFS
FgrFGFA6#FbsFAFA
M7R0
I5Involutive/PolKernelf*6&%#_MG%#_AG%#_NG'%$varG%%listG6(%"MG%"AG%"NG%$resG%"BG
%$kerG6#%[oCopyright~(C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C
*>8$-%$mapG6$f*6#%"aGF46$%)operatorG%&arrowGF4&9$6#"""F4F4F4&-%6Involutive/proc
_inputG6#FB6#""%>8%-F96$f*F<F4F>F4FAF4F4F4&-FG6#9%FI>8&-F96$f*F<F4F>F4FAF4F4F4&
-FG6#9&FI@%32FJ9#-%%typeG6$&9"6#!""%'stringG>8'-%9Involutive/PolResolutionG6'FL
9'/Q%TRELF4FUF^oFD>Fdo-Ffo6'FLFhoFioQ$CGTF4FD@%2FD-%%nopsG6#Fdo>8(&Fdo6#!"#>Fep
7#7#-%"$G6$""!-&%'linalgG6#%'rowdimG6#&FdoF`o>8)-%8Involutive/PolSubFactorG6%Fe
pF7Fho@$3Fin-F\o6$&F_o6#""&%'symbolG@%/%6Involutive/matrixtypeG%'MatrixG-%'assi
gnG6$F`r-%(convertG6$-%5Involutive/jetsmkmatG6#-F96$f*F<F4F>F4-%$rhsGFHF4F4F4&F
hqFCFgr-Fir6$F`r-F_s6#-F96$f*F<F4F>F4FdsF4F4F4FfsFhqF4F4F4F4
M7R0
I7Involutive/PolCheckHomf*6&%#_MG%#_AG%#_NG'%$varG%%listG6&%"MG%"AG%"NG%#ING6#%
[oCopyright~(C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$-%$ma
pG6$f*6#%"aGF26$%)operatorG%&arrowGF2&9$6#"""F2F2F2&-%6Involutive/proc_inputG6#
F@6#""%>8%-F76$f*F:F2F<F2F?F2F2F2&-FE6#9%FG>8&-F76$f*F:F2F<F2F?F2F2F2&-FE6#9&FG
>8'-%;Involutive/InvolutiveBasisG6$FS9'-%)simplifyG6#-F76&%8Involutive/PolInvRe
duceG-%(convertG6$-%&evalmG6#-%#&*G6$F5FJ%)listlistGFfnFjnF2F2F2F2
M7R0
I4Involutive/PolSyzOpf*6$%#_AG'%$varG%%listG6$%"AG%$resG6#%[oCopyright~(C)~2003
-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-%5Involutive/jetsmkmatG6
#-%$mapG6$f*6#%"aGF.6$%)operatorG%&arrowGF.&9$6#"""F.F.F.&-%6Involutive/proc_in
putG6#F?6#""%>8%-%9Involutive/PolResolutionG6&F19%Q$CGTF.FA@%2FA-%%nopsG6#FI-%%
copyG6#&FI6#!"#-FU6#-%6Involutive/matrixtypeG6#7#7#-%"$G6$""!-&%'linalgG6#%'row
dimG6#&FI6#!""F.F.F.F.
M7R0
I>Involutive/PolParametrizationf*6$%$_R1G'%$varG%%listG6%%#R1G%$AR1G%$AR0G6#%^p
Copyright~(C)~2003-2010~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reser
ved.G6"C&>8$-%$mapG6$f*6#%"aGF/6$%)operatorG%&arrowGF/&9$6#"""F/F/F/&-%6Involut
ive/proc_inputG6#F=6#""%>8%-&%'linalgG6#%*transposeG6#F2>8&-%4Involutive/PolSyz
OpG6$FG9%@%/%6Involutive/matrixtypeG%'MatrixG-&%.LinearAlgebraG6#%*TransposeG6#
FO-FIFgnF/F/F/F/
M7R0
I?Involutive/PolTorsionfreeParamf*6$%$AR1G'%%varsG%%listG6(%"aG%$invG%$AR0G%#R0
G%#R1G%$RR1G6#%^pCopyright~(C)~2000-2010~by~Mohamed~Barakat~and~Daniel~Robertz.
~All~rights~reserved.G6"C(@%/%6Involutive/matrixtypeG%'MatrixG>8%&%.LinearAlgeb
raG6#%*TransposeG>F9&%'linalgG6#%*transposeG>8(-F?6#-%5Involutive/jetsmkmatG6#-
%$mapG6$f*6#F*F26$%)operatorG%&arrowGF2&9$6#"""F2F2F2&-%6Involutive/proc_inputG
6#FS6#""%>8&-%4Involutive/PolSyzOpG6$FS9%>8'-F96#Fgn>8)-Fin6$F]oF[o7$-%%copyG6#
Fao-Ffo6#F]oF2F2F2F2
M7R0
I;Involutive/PolBettiDiagramf*6$%"LG%%varsG6@%"bG%"iG%"jG%"kG%"dG%"lG%"mG%"pG%"
rG%"tG%"vG%$indG%#lmG%0remove_prev_rowG%0remove_next_colG%$varG%%nvarG%'n_entrG
%'vt_degG%(var_ordG%(deg_ordG%)entr_posG%'lmprocG%"BG%"RG%*resol_optG%*check_ho
mG%)minimizeG%&sumupG%'warnedG6#%jnCopyright~(C)~2007-2010~by~Daniel~Robertz.~A
ll~rights~reserved.G6"C=>8=%%NULLG>8>%%trueG>8?%&falseG>8@FR?(8%""$"""9#FO@+-%%
typeG6$&9"6#FV%)equationG@)/-%#opG6$FXFhnQ$sumFHC$@$4-Ffn6$-F_o6$""#Fhn%(boolea
nG-%&ERRORG6#%Jexpecting~boolean~value~for~option~"sum".G>FTFgo/F^oQ-checkgradi
ngFHC$@$Fdo-F\p6#%Sexpecting~boolean~value~for~option~"checkgrading".G>FNFgo/F^
oQ(minimalFHC$@$Fdo-F\p6#%Nexpecting~boolean~value~for~option~"minimal".G>FQFgo
-F\p6#%0invalid~option.G/FhnFao>FTFO/FhnFap>FNFO/FhnFip>FQFO>FK6$FKFhn>8.-%*sub
stringG6$-%(convertG6$-%+kerneloptsG6#%(versionG%'stringG;FX"")@%5-Ffn6$9$-%%li
stG6#%'matrixG330F\rQ)Maple~V,FH0F\rQ)Maple~6.FH-Ffn6$F^s-F`s6#%'MatrixG>8<F^sC
$>F_t-%9Involutive/PolResolutionG6%F^s9%FK>FQFO>85-&%'linalgG6#%'coldimG6#&F_t6
#!"">83-%5Involutive/proc_varsG6$FetFht>87&Fcu6#Fio>86&Fcu6#FW>88&Fcu6#""%>89&F
cu6#""'>Fcu&Fcu6#FX>84-%%nopsG6#Fcu>8)-%4Involutive/proc_ordG6*FioFcuFhuF\vF`vF
cuFevFR>8:&FbwF[w>8+-F_w6#F_t>&8(6#,&FjwFXFXFX&F\v6#;,&F]wFXFXFX,&F]wFXFhtFX>8*
-%$maxG6#-F_o6#F^x>8;7#7#-%$seqG6$-%*numboccurG6$FbxFV/FV;""!Fhx>8AFR>827"?(8&F
jwFauFXFOC*>&F_x6#FazF_z>8/-%'removeG6%%$hasG7#-%"$G6#;FX-Fjt6#&F_tFezF^z>81F_z
>F^zF_z?(FVFXFX-&F[u6#%'rowdimGFb[lFOC&>8,-Far6$-&F[u6#%$rowG6$Fc[lFVF`s>8'FX?(
FHFXFXFH31Fg\l-F_w6#Fgz/&F^\l6#&Fgz6#Fg\lFjy>Fg\l,&Fg\lFXFXFX@%Fj\lC%>807#-Fgw6
#F^]l@%FQ@%/-%'degreeG6$&Fg]lFju<#-F_oF`wFjyC&>Fe[l7$-F_o6#Fe[lF`]l>F^z7$-F_o6#
F^zFV>Fgz-%'subsopG6$/Fg\lFLFgz>8$FjyC$>Fc_l,&F^^lFX&&F_x6#,&FazFXFXFXF_]lFX@$F
N?(FHFXFXFHFj\lC$@$0F^]lFjyC$>Fg]lFh]l@$34F\z0Fc_lFf_lC$>F\zFO-%(WARNINGG6#QPfr
ee~modules~in~given~resolution~are~not~gradedFH>Fg\lFc]lC$>Fc_lFf_l@$FN?(FHFXFX
FHFj\lC$@$F_`lC$>Fg]lFh]l@$Fc`lC$>F\zFOFh`l>Fg\lFc]l>Fdz7$-F_o6#FdzFc_l-F\p6#%C
unexpected~zero~row~in~resolution.G?&FVFe[lFO>Fh_l-F__l6$/FVFjyFh_l>Fhx-Fjx6#F[
bl>F_y7$-F_o6#F_y7#-Fcy6$-Ffy6$FdzFbw/Fbw;,(FjwFXFazFauFXFXFhx>Fhx-Fjx6#-F_o6#-
%$mapG6$F_wF_y@%FT>F_y-Fjcl6$f*6#F)FH6$%)operatorG%&arrowGFH7%-Far6$F^s%"+G-F_o
6#F^s-F^[l6$Fjy,&T#FX-F_wFjdlFauFHFH6$F.FhxF_y>F_y-Fjcl6$f*FadlFHFbdlFH7$FidlF[
elFHFHF`elF_y-Far6$-&F[u6#%*transposeGF[cl%6Involutive/matrixtypeGFHFHFHFH
M7R0
IFhomalg/InvolutiveZeroSets/PolSyzygiesf*6%%#M1G%#M2G'%$varG%%listG6%%"vG%"LG%$
retG6#%jnCopyright~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8
$-%5homalg/NormalizeRingG6$9&%+InvolutiveG>8%-%2Involutive/AddRhsG6#9$@%/&F36#"
"#7"@%4-%%typeG6$9%F)C&-%;Involutive/InvolutiveBasisG6$7$-%#opG6#F:-FQ6#-%(conv
ertG6$FJ%)listlistG&F36#"""@%-%)assignedG6#%-_InvZeroSetsG>Fjn7$-FQFin-FQ6#-%7I
nvolutive/PolZeroSetsGF0>FjnF`o>8&-%4Involutive/SyzygiesGFN>FjnF\oC&-FM6$7$FP-F
Q6#FJFY@%Fgn>FjnF\o>FjnF`o>Fdo-FfoFjo>Fjn7$F]oF`o@%FFC&-FM6%FOFAFY@%Fgn>FjnF\o>
FjnF`o>FdoFeo>FjnFdpC&-FM6%F[pFAFY@%Fgn>FjnF\o>FjnF`o>FdoFbp>FjnF\o@%55/FdoFD/F
do7#""!33-FH6$FdoFX/-%%nopsG6#FdoFen/Fdo7#7#-%"$G6$F\r-Fcr6#&FdoFZFD-%Dhomalg/I
nvolutive/PolNormalizeInputGFdrF0FinF0F0
M7R0
IFInvolutive/pnormal_form_collect_localf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(l
oc_varG6"6#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~rights~res
erved.GF+-%'RETURNG6#-%>Involutive/pnormal_form_localG6)9$9%9&9'9(9)""%F+F+F+F+
M7R0
I7Involutive/LocalReducef*6%%#bbG%"MG%$varG6-%"JG%%pvarG%#NFG%'pinputG%"LG%(nrR
ightG%"bG%"rG%&rightG%&BasisG%*ReductionG6#%boCopyright~(C)~2007-2010~by~Markus
~Lange-Hegermann.~All~rights~reserved.G6"C2@%1""%9#@%/&9"6#F:Q%ginvF6C$>8-%?Inv
olutive/InvolutiveBasisGINVG>8.%<Involutive/PolInvReduceGINVGC$>FD%;Involutive/
InvolutiveBasisG>FG%8Involutive/PolInvReduceGC$>FDFK>FGFM>8*9$@$5-%%typeG6$FR%)
listlistG3-FW6$FR-%%listG6#<$%"=GFhn-FW6$-%$mapG6$%5Involutive/RemoveRHSGFRFY-%
'RETURNG6#-F_o6$f*6#F%F66$%)operatorG%&arrowGF6-F"6%FST$T&F6F66&F&9%F'9&FR>8'-%
6Involutive/proc_inputG6#Fap@$4-FW6$&FdpF@Fhn>F\q&-%#opG6#F\q6#"""@%-FW6$Fbp-Fh
n6#%'symbolG>8%Fbp>F[r&-%5Involutive/proc_varsG6$FbpFcqFbq>8)&Fdp6#""#>8$-%>Inv
olutive/LocalBasisIdentityG6$7$-F`qFgpFRF[r>8(&Fgr6#;Fcq!"#>FR&Fgr6#!"">F^s-F_o
6$f*6#%"lGF6FioF6@%-FW6$FSF[o/-%$lhsG6#FS7$""!-F`q6#-%$rhsGFct/FS7#-%"$G6$Fet,&
T#FcqFcqFcqF6F66$F.FbrF^s@%-FW6$FRF[o>F^s7$-F`q6#F^s-F`q6#-F_o6$f*6#%#pvGF6FioF
6-%'expandG6#/*&FSFcq-Fbt6#F`uFcq7$FS-F`q6#-Fav6#*&FSFcq-FitFfvFcqF6F66$F/FRF[r
>F^s7$Fgu-F`q6#-F_o6$f*F^vF6FioF6-Fav6#/*&FSFcqT%Fcq7$FS-F]u6$FetF`uF6F66&F.Fbr
F/FRF[r>Fgr-FD6$F^sFbp@%Fcu>8&-FG6%/-Fbt6#FR7$Fcq-F`q6#-FitFixFgrFbp>Fdx-FG6%/F
R7$Fcq-F]u6$Fet-%%nopsG6#,&FbrFcqFcqFcqFgrFbp>Fdx/-Fbt6#Fdx-F_o6$f*6#F0F6FioF6*
&&F]wFctFcq&F]wFbqFfsF6F66$F+Fdx7#-F]u6#;FerFhy@%FcuFdxF[zF6F6F6F6
M7R0
ICInvolutive/PolIntersectionListGINVf*6$%"lG'%$varG%%listG6&%$resG%"LG%*_inv_de
n2G%,trace_denomG6#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~ri
ghts~reserved.G6"C(@%31""$9#/&9"6#F5Q&denomF0>8'%%trueGC$>F=%&falseG>%)_inv_den
G.FC>8$&9$6#""">8&<"?&8%&FH6#;""#!""F>@%F=C$>FF-%4PolIntersectionGINVG6&FFFO9%F
;>FL-%&unionG6$FL<#-%#opG6#FC>FF-FY6%FFFOFen@%F=C$>FF-%?Involutive/InvolutiveBa
sisGINVG6%FFFen&F96#;F5F6>FC7#-F\o6#Fgn>FFFdo-%'RETURNG6#FFF0F]oF0F0
M7R0
I@Involutive/NoetherNormalizationf*6$%"LG%%varsG6A%"bG%"dG%"iG%"jG%"kG%"tG%"vG%
"wG%$degG%#lmG%&lmvarG%&m_ordG%%headG%#suG%'all_suG%#trG%,force_evalaG%$varG%(v
ar_ordG%'vt_degG%(deg_ordG%%stepG%'n_entrG%"FG%"JG%%newpG%%lastG%&princG%%mindG
%%minvG%*IBoptionsG6#%jnCopyright~(C)~2007-2010~by~Daniel~Robertz.~All~rights~r
eserved.G6"C@>8;-%6Involutive/proc_inputG6#9$>8:&FL6#""">84&FL6#""&@$0FRFU-%&ER
RORG6#%Sexpecting~an~ideal~rather~than~a~module~of~tuples.G>FRFU>85-%5Involutiv
e/proc_varsG6$9%FR>86&F]o6#""#>87&F]o6#""$>88&F]o6#""%@%/Fco7">8/F`p>Fep7#-%"$G
6$F`p-%%nopsG6#Fco>F]o&F]oFT>8)&-%4Involutive/proc_ordG6*FepF]oFcoFhoF]pF]o7#FR
4FWFY>8>%&falseG>8?Fjq>8B%%NULLG?(8&F[pFU9#%%trueG@)/&9"6#FarQ'deglexFI>Fep""'/
FfrQ"LFI>FiqFcr/FfrQ"PFI>F\rFcr>F^r6$F^rFfr>8<-%;Involutive/InvolutiveBasisG6&F
PFaoFepF^r@$3F\r/-F\q6#FesFUC&@$/Fes7#""!-%'RETURNG6#7$Fes-%$zipG6%f*6$F*F+FI6$
%)operatorG%&arrowGFI/FPFaoFIFIFIF]oF]o>8@%)infinityG?(FarFUFU-F\q6#F]oFcrC$>8%
-%'degreeG6$&FesFT&F]oFhr@$/-%*intersectG6$-%'indetsG6#-%&coeffG6%F\vF]vFhu<#-%
#opGFeu<"@$2FhuFauC$>FauFhu>8AFar@$2FauFbu-Fdt6#7%Fes-Fht6%f*F[uFIF\uFIF_uFIFIF
IF]oF]o&F]o6#Fbw>Fhu-%8Involutive/PolDimensionGFI@$2FhuFbt-Fdt6#7$Fes-Fht6%f*F[
uFIF\uFIF_uFIFIFIF]oF]o>FL-%=Involutive/FactorModuleBasisG6#Fao>8*-%%sortG6$7#-
F[w6#-Fdv6#-%&denomG6#FLFaq-%)userinfoG6%F[p%5NoetherNormalizationG-%$catG6$%-d
imension~=~G-%(convertG6$Fhu%'stringG>89Fbt>82Fcp?(FIFUFUFI2Fhu-F\q6#F]yC4>Ffz,
&FfzFUFUFU-Fjy6%F[pF\z-F^z6$%-step~~~~~~=~G-Fbz6$FfzFdz-Fjy6%F`pF\z-F^z6$%-roun
ds~~~~=~G-Fbz6$%,_inv_roundsGFdz-Fjy6%F[pF\z-F^z6$%-v~~~~~~~~~=~G-Fbz6$F]yFdz>8
-7#-Fip6#;FUF\t>Fg\l-%'removeG6$f*6#F*FIF\uFI-%$hasG6$&&%+PolTab_VarGFOFjo-%&mi
nusG6$<#-F[w6#T#<#-F[w6#T%FIFI6&F9F]oF.F]yFg\l@$/Fg\lFcp-Fhn6#%Rcannot~find~any
~good~leading~monomial~to~proceed.G>Fg\l-F_y6$Fg\lf*F[uFIFIFI@'2-F\q6#-Fi]l6$-F
av6$-Fdv6#Fe]lF[^l<#&Fb^l6#!""-F\q6#-Fi]l6$-Fav6$-Fdv6#&&Fg]lF[yFjoF[^lFg_lFcr2
F[`lF__lFjq-T'6$Fe]lFc`lFIFI6(F9F]oF.F]yF-Faq@%2"#I-F\q6#Fg\l-Fjy6%F[pF\z-F^z6$
%-lm~~~~~~~~=~G-Fbz6$7$-F[w6#-%$mapG6$f*Fa]lFIF\uFIFe]lFIFIFI&Fg\l6#;FUF\al%$..
.GFdz-Fjy6%F[pF\z-F^z6$Fcal-Fbz6$-Fjal6$f*Fa]lFIF\uFIFe]lFIFIFIFg\lFdz>8.-Fav6$
-Fdv6#&&Fg]l6#&Fg\lFTFjoFiv>8+7#-F[w6#-Fi]l6$F[cl<#&F]yFi_l@%/%2Involutive/char
acGFbtC(>8,-Fju6$F`clF[cl>8$7#-Fip6$FU-F\q6#Fecl@%-%%typeG6$&FaclFT%"+G>80-F^]l
6%Fc]l-%'selectG6$f*Fa]lFIF\uFI/-Fju6$FPF_^lF^^lFIFI6&F0FbdlF9F]oF`el-Fi]l6$Fiv
F[cl>FcelF`el>8(FU?(FIFUFUFI4-Fc]l6$-%(collectG6%-%%subsG6$7#-%$seqG6$/&FeclFhr
,&FbglFU*&&FfdlFhrFUF\dlFUFj_l/Far;FUFjdlFcelF]o%,distributedG)F\dlFbdlC$>Ffdl-
%'subsopG6$/Fbfl,&&Ffdl6#FbflFUFUFUFfdl>Fbfl,&-%$modG6$FbflFjdlFUFUFU>81F]glC(>
FfdlFgdl>FbflFU>Fihl7#-F_gl6$/Fbgl,&FbglFU)F\dlFeglFj_lFfgl>8=-Ffhl6$-Fhfl6%-F[
gl6$FihlF`elF]oFhglF_dl>Fbdl-Fju6$FeilFiv?(FIFUFUFI4-Fc]l6$FeilFiglC(-Fjy6%FZF\
z-F^z6$%.reject~su~=~~G-Fbz6$FihlFdz>FfdlF\hl>FbflFdhl>FihlF^il>FeilFfil>FbdlF]
jl-Fjy6%F[pF\z-F^z6$%-su~~~~~~~~=~GFijl>Fhz7$-F[w6#FhzFihl-Fjy6%F[pF\z-F^z6$%-n
ew~lm~~~~=~G-Fbz6$-%;Involutive/LeadingMonomialG6%FjilFaoFepFdz>Fes-Fgs6&-F[gl6
$FihlFesFaoFepF^r>FLFix>F]yF^y@$FiqC$>Fbfl-F^]l6$f*Fa]lFIF\uFI-%'memberG6$FP&F^
^l6#;,$Fb^lFj_lFj_lFIFI6&F9F]oF)FhuF]y@$2Fbt-F\qFbhlC&>Fecl-F^]l6$f*Fa]lFIF\uFI
-Fa]m6$FPF^^lFIFI6$F.F]y&F]o6#;,$FhuFj_lFj_l>Fihl7$-F[w6#-Fht6%f*F[uFIF\uFIF_uF
IFIFIFbflFecl-F[w6#-Fht6%f*F[uFIF\uFIF_uFIFIFIFeclFbfl>FhzFf[m>FesFd\m>83F]o?(F
arFUFU-F\qFh[mFcr>Ff_m-F[gl6$&FhzFhrFf_m7$Fes-Fht6%f*F[uFIF\uFIF_uFIFIFIF]oFf_m
FIFIFIFI
M7R0
I<Involutive/writeGINV1headerf*63%%fileG%$varG%)alg_elemG%+trans_elemG%'n_entrG
%)rhs_entrG%'no_rhsG%"cG%&m_ordG%(var_ordG%)entr_posG%'vardegG%'tupdegG%(algext
sG%-algextindetsG%/transextindetsG%+tracedenomG6&%"iG%"rG%%nvarG%#mpG6#%jnCopyr
ight~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C9>8&-%%nopsG6#9%-
%(fprintfG6$9$Q8#!~/usr/bin/env~python|+F=-FF6$FHQY#~temporary~file~created~by~
the~Maple~package~InvolutiveF=-FF6$FHQ+~(version~F=-FF6$FH-%(convertG6$%3Involu
tive/versionG%'stringG-FF6$FHQ#)|+F=-FF6$FHQ-import~ginv|+F=@%3/9("""9*-FF6$FHQ
Dst~=~ginv.SystemType("Polynomial")|+F=C%-FF6$FHQKst~=~ginv.SystemType("Polynom
ial",~module=F=@%F\o-FF6$FH-FS6$FjnFVC%-FF6$FH-FS6$,&FjnF[o9)F[oFV-FF6$FHQ-,~ri
ghtPart=F=FeoFW@'09-7"@%Fhn@%/9/7#-%"$G6$F[oF@-FF6$FHQGim~=~ginv.MonomInterface
("Elim",~st,~[F=-FF6$FHQJim~=~ginv.MonomInterface("ElimDeg",~st,~[F=@%/<#-%#opG
6#9,<#""#@%Fip-FF6$FHQJim~=~ginv.MonomInterface("PotElim",~st,~[F=-FF6$FHQMim~=
~ginv.MonomInterface("PotElimDeg",~st,~[F=@%Fip-FF6$FHQJim~=~ginv.MonomInterfac
e("TopElim",~st,~[F=-FF6$FHQMim~=~ginv.MonomInterface("TopElimDeg",~st,~[F=5/9.
Ffp3/-FB6#F^sF[o/&F^s6#F[oFjn@+/F[rF[o@%Fhn-FF6$FHQFim~=~ginv.MonomInterface("L
ex",~st,~[F=-FF6$FHQIim~=~ginv.MonomInterface("PotLex",~st,~[F=/F[rF]r@%Fhn@%Fi
p-FF6$FHQLim~=~ginv.MonomInterface("DegRevLex",~st,~[F=-FF6$FHQOim~=~ginv.Monom
Interface("DegRevLexDeg",~st,~[F=@%Fip-FF6$FHQOim~=~ginv.MonomInterface("PotDeg
RevLex",~st,~[F=-FF6$FHQRim~=~ginv.MonomInterface("PotDegRevLexDeg",~st,~[F=/F[
r""$@%FhnFis-FF6$FHQIim~=~ginv.MonomInterface("TopLex",~st,~[F=/F[r""%@%Fhn@%Fi
pFbtFet@%Fip-FF6$FHQOim~=~ginv.MonomInterface("TopDegRevLex",~st,~[F=-FF6$FHQRi
m~=~ginv.MonomInterface("TopDegRevLexDeg",~st,~[F=C$-%'fcloseG6#FH-%&ERRORG6#%\
oup~to~now,~the~chosen~monomial~ordering~is~not~supported~by~ginv.GC%@%Fdp@%Fip
-FF6$FHQTim~=~ginv.MonomInterface("PosElimElim",~st,~tupSep=F=-FF6$FHQWim~=~gin
v.MonomInterface("PosElimElimDeg",~st,~tupSep=F=@'F_u-FF6$FHQSim~=~ginv.MonomIn
terface("PosElimLex",~st,~tupSep=F=Feu@%Fip-FF6$FHQYim~=~ginv.MonomInterface("P
osElimDegRevLex",~st,~tupSep=F=-FF6$FHQfnim~=~ginv.MonomInterface("PosElimDegRe
vLexDeg",~st,~tupSep=F=C$FavFdv-FF6$FH-FS6$FdsFV-FF6$FHQ-,~independ=[F=?(8$F[oF
[oF@%%trueGC$-FF6$FH-%$catG6%Q"'F=-FS6$&FD6#FexFVF]y@$2FexF@-FF6$FHQ#,~F=@$4%4I
nvolutive/ratcoeffG-FF6$FHQ&,~'@'F=-FF6$FHQ"]F=@&FdpC$-FF6$FHQ*,~varSep=F=-FF6$
FH-FS6$-FB6#&FepFesFV3F`s0FdsFjnC$FbzF]x@$0FjpF[qC$-FF6$FHQ+,~degrees=F=@%Fiy-F
F6$FH-FS6$FjpFV-FF6$FH-FS6$7$-Fiq6#FjpF[oFVFW@%Fiy@%09+""!@+3/,&-FB6#9&F[o-FB6#
91F[oFe\l/,&-FB6#9'F[o-FB6#93F[oFe\lC$-FF6$FHQenic~=~ginv.CoeffInterface("Modul
arShort",~st,~modularShort=F=-FF6$FH-FS6$Fd\lFV32Fe\lFi\lF`]lC+-FF6$FHQjoic~=~g
inv.CoeffInterface("AlgebraicFieldExtensionModularShort",~st,~parameter=[F=>8'F
fp?(FexF[oF[oFj\lFfxC(@$0-Fiq6$Fe\l&F\]lFay%'RootOfGC$Fav-Fev6#-F[y6$-FS6$F^_lF
V%3~is~not~algebraic.G>Fg^l7$-Fiq6#Fg^l-%8Involutive/algext2aliasG6#-Fiq6$F[oF^
_l>8%-%&minusG6$-%'indetsG6#&Fg^l6#!""<$-Fiq6#-%$mapG6%FSF\]l%%nameG-Fiq6#92>Fg
^l-%'subsopG6$/F[al-F[y6$-%=Involutive/remove_backquotesG6#-FS6$-%%subsG6$/&Fb`
lFesF^_lFi`lFVQ"~F=Fg^l-FF6$FH-F[y6%Q""F=Fe_lF\cl@$2FexFj\lFdy?(FexF[oF[o-FBFda
lFfxC$@$52F[oFex2Fe\lFj\lFdy-FF6$FH-F[y6%F\cl-FS6$&FealFayFVF\cl-FF6$FHQ/],~ext
ension=[F=?(FexF[oF[oFj\lFfxC&-FF6$FHF\cl-FF6$FH&Fg^lFayFbdl@$F^clFdy?(FexF[oF[
oF]]lFfxC&@$FcclFdyFbdl-FF6$FH-F[y6$-FS6$&F_]lFayFVFgblFbdl-FF6$FHQ1],~modularS
hort=F=F\^l3Fh\l/Fa]lF[oC'-FF6$FHQaoic~=~ginv.CoeffInterface("OneParameterModul
arShort",~st,~modularShort=F=F\^l-FF6$FHQ.,~parameter=[F=@%/Fd]lFfp-FF6$FH-F[y6
%F\cl-FS6$&Fg]lFesFVF\cl-FF6$FH-F[y6%F\cl-FS6$&Fd]lFesFVF\clF]z3Fh\l/Fa]lF]rC(-
FF6$FHQaoic~=~ginv.CoeffInterface("TwoParameterModularShort",~st,~modularShort=
F=F\^lF[fl?(FexF[oF[oFb]lFfxC$-FF6$FH-F[y6%F\cl-FS6$&Fd]lFayFVF\cl@$2FexF]rFdy?
(FexF[oF[oFe]lFfxC$-FF6$FH-F[y6%F\cl-FS6$&Fg]lFayFVF\cl@$2FexFe]lFdyF]zC$Fav-Fe
v6#%5not~implemented~yet.G@-Fg\l-FF6$FHQDic~=~ginv.CoeffInterface("GmpZ",~stF=F
`^lC*-FF6$FHQboic~=~ginv.CoeffInterface("AlgebraicFieldExtensionGmpQ",~st,~para
meter=[F=>Fg^lFfp?(FexF[oF[oFj\lFfxC(@$F[_lC$Fav-Fev6#-F[y6$Fe_l%M~is~not~algeb
raic~over~the~rational~numbers.G>Fg^lFi_l>Fb`lFc`l>Fg^lFgalFhbl@$F^clFdy?(FexF[
oF[oF`clFfxC$@$FcclFdyFfclF]dl?(FexF[oF[oFj\lFfxC&FbdlFddlFbdl@$F^clFdy?(FexF[o
F[oF]]lFfxC&@$FcclFdyFbdlF[elFbdlF]zFeelC%-FF6$FHQgnic~=~ginv.CoeffInterface("O
neParameterGmpZ",~st,~parameter=[F=@%F_flF`flFgflF]zFh\lC&-FF6$FHQenic~=~ginv.C
oeffInterface("NParameterGmpZ",~st,~parameter=[F=?(FexF[oF[oFb]lFfxC$Ffgl@$2Fex
Fa]lFdy?(FexF[oF[oFe]lFfxC$Fahl@$FihlFdyF]z3Fa^l2Fe\lFa]lC--FF6$FHQ]pic~=~ginv.
CoeffInterface("AlgebraicFieldExtensionNParameter",~st,~fieldParameter=[F=?(Fex
F[oF[oFb]lFfxC$Ffgl@$Fi[mFdy?(FexF[oF[oFe]lFfxC$Fahl@$FihlFdy-FF6$FHQ/],~parame
ter=[F=>Fg^lFfp?(FexF[oF[oFj\lFfxC(@$F[_lC$FavF[jl>Fg^lFi_l>Fb`l-Fd`l6$Ff`l<&F]
alFcal-Fiq6#-F`al6%FSFd]lFbal-FiqFf]l>Fg^lFgalFhbl@$F^clFdy?(FexF[oF[oF`clFfxC$
@$FcclFdyFfclF]dl?(FexF[oF[oFj\lFfxC&FbdlFddlFbdl@$F^clFdy?(FexF[oF[oF]]lFfxC&@
$FcclFdyFbdlF[elFbdlF]zC$FavF[il-FF6$FHQEic~=~ginv.CoeffInterface("GmpZZ",~stF=
@$94-FF6$FHQ/,~traceDenom=1F=FW-FF6$FHQQip~=~ginv.PolyInterface("PolyList",~st,
~im,~ic)|+F=-FF6$FHQ:iw~=~ginv.WrapInterface("F=@+/%3Involutive/invcritGFfp-FF6
$FHQ(WithoutF=/Fg_m7$F[oF]r-FF6$FHQ.CritPartiallyF=/Fg_m7%F[oF]rF`u-FF6$FHQ'C1C
2C3F=/Fg_m7&F[oF]rF`uFfu-FF6$FHQ)C1C2C3C4F=C$Fav-Fev6#%Wundefined~involutive~cr
iteria;~see~?InvolutiveOptions.G-FF6$FHQ(",~ip)|+F=@%%5Involutive/janetlikeG-FF
6$FHQNiD~=~ginv.DivisionInterface("JanetLike",~iw)|+F=-FF6$FHQJiD~=~ginv.Divisi
onInterface("Janet",~iw)|+F=F=F=F=F=
M7R0
I<Involutive/writeGINV2headerf*63%%fileG%$varG%)alg_elemG%+trans_elemG%'n_entrG
%)rhs_entrG%'no_rhsG%"cG%&m_ordG%(var_ordG%)entr_posG%'vardegG%'tupdegG%(algext
sG%-algextindetsG%/transextindetsG%+tracedenomG6&%"iG%"rG%%nvarG%#mpG6#%jnCopyr
ight~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C8>8&-%%nopsG6#9%-
%(fprintfG6$9$Q8#!~/usr/bin/env~python|+F=-FF6$FHQY#~temporary~file~created~by~
the~Maple~package~InvolutiveF=-FF6$FHQ+~(version~F=-FF6$FH-%(convertG6$%3Involu
tive/versionG%'stringG-FF6$FHQ#)|+F=-FF6$FHQ-import~ginv|+F=@%3/9("""9*-FF6$FHQ
8st~=~ginv.Polynomial()|+F=C%-FF6$FHQ=st~=~ginv.Polynomial(module=F=@%F\o-FF6$F
H-FS6$FjnFVC%-FF6$FH-FS6$,&FjnF[o9)F[oFV-FF6$FHQ-,~rightPart=F=FeoFW@'09-7"@%Fh
n-FF6$FHQ5im~=~ginv.Elim(st,~[F=@%/<#-%#opG6#9,<#""#-FF6$FHQ8im~=~ginv.PotElim(
st,~[F=-FF6$FHQ8im~=~ginv.TopElim(st,~[F=5/9.Ffp3/-FB6#F\rF[o/&F\r6#F[oFjn@+/Fa
qF[o@%Fhn-FF6$FHQ4im~=~ginv.Lex(st,~[F=-FF6$FHQ7im~=~ginv.PotLex(st,~[F=/FaqFcq
@%Fhn@%/9/7#-%"$G6$F[oF@-FF6$FHQ:im~=~ginv.DegRevLex(st,~[F=-FF6$FHQ=im~=~ginv.
DegRevLexDeg(st,~[F=@%F`s-FF6$FHQ=im~=~ginv.PotDegRevLex(st,~[F=-FF6$FHQ@im~=~g
inv.PotDegRevLexDeg(st,~[F=/Faq""$@%FhnFgr-FF6$FHQ7im~=~ginv.TopLex(st,~[F=/Faq
""%@%Fhn@%F`sFfsFis@%F`s-FF6$FHQ=im~=~ginv.TopDegRevLex(st,~[F=-FF6$FHQ@im~=~gi
nv.TopDegRevLexDeg(st,~[F=C$-%'fcloseG6#FH-%&ERRORG6#%\oup~to~now,~the~chosen~m
onomial~ordering~is~not~supported~by~ginv.GC%@%Fdp-FF6$FHQBim~=~ginv.PosElimEli
m(st,~tupSep=F=@'Fct-FF6$FHQAim~=~ginv.PosElimLex(st,~tupSep=F=Fit@%F`s-FF6$FHQ
Gim~=~ginv.PosElimDegRevLex(st,~tupSep=F=-FF6$FHQJim~=~ginv.PosElimDegRevLexDeg
(st,~tupSep=F=C$FeuFhu-FF6$FH-FS6$FbrFV-FF6$FHQ-,~independ=[F=?(8$F[oF[oF@%%tru
eGC$-FF6$FH-%$catG6%Q"'F=-FS6$&FD6#FewFVF]x@$2FewF@-FF6$FHQ#,~F=@$4%4Involutive
/ratcoeffG-FF6$FHQ&,~'@'F=-FF6$FHQ"]F=@&FdpC$-FF6$FHQ*,~varSep=F=-FF6$FH-FS6$-F
B6#&FepFcrFV3F^r0FbrFjnC$FbyF]w@$0FasFbsC$-FF6$FHQ+,~degrees=F=@%Fix-FF6$FH-FS6
$FasFV-FF6$FH-FS6$7$-F_q6#FasF[oFVFW@%Fix@%09+""!@+3/,&-FB6#9&F[o-FB6#91F[oFe[l
/,&-FB6#9'F[o-FB6#93F[oFe[lC$-FF6$FHQIic~=~ginv.ModularShort(st,~modularShort=F
=-FF6$FH-FS6$Fd[lFV32Fe[lFi[lF`\lC+-FF6$FHQhnic~=~ginv.AlgebraicFieldExtensionM
odularShort(st,~parameter=[F=>8'Ffp?(FewF[oF[oFj[lFfwC(@$0-F_q6$Fe[l&F\\lFax%'R
ootOfGC$Feu-Fiu6#-F[x6$-FS6$F^^lFV%3~is~not~algebraic.G>Fg]l7$-F_q6#Fg]l-%8Invo
lutive/algext2aliasG6#-F_q6$F[oF^^l>8%-%&minusG6$-%'indetsG6#&Fg]l6#!""<$-F_q6#
-%$mapG6%FSF\\l%%nameG-F_q6#92>Fg]l-%'subsopG6$/F[`l-F[x6$-%=Involutive/remove_
backquotesG6#-FS6$-%%subsG6$/&Fb_lFcrF^^lFi_lFVQ"~F=Fg]l-FF6$FH-F[x6%Q""F=Fe^lF
\bl@$2FewFj[lFdx?(FewF[oF[o-FBFd`lFfwC$@$52F[oFew2Fe[lFj[lFdx-FF6$FH-F[x6%F\bl-
FS6$&Fe`lFaxFVF\bl-FF6$FHQ/],~extension=[F=?(FewF[oF[oFj[lFfwC&-FF6$FHF\bl-FF6$
FH&Fg]lFaxFbcl@$F^blFdx?(FewF[oF[oF]\lFfwC&@$FcblFdxFbcl-FF6$FH-F[x6$-FS6$&F_\l
FaxFVFgalFbcl-FF6$FHQ1],~modularShort=F=F\]l3Fh[l/Fa\lF[oC'-FF6$FHQUic~=~ginv.O
neParameterModularShort(st,~modularShort=F=F\]l-FF6$FHQ.,~parameter=[F=@%/Fd\lF
fp-FF6$FH-F[x6%F\bl-FS6$&Fg\lFcrFVF\bl-FF6$FH-F[x6%F\bl-FS6$&Fd\lFcrFVF\blF]y3F
h[l/Fa\lFcqC(-FF6$FHQUic~=~ginv.TwoParameterModularShort(st,~modularShort=F=F\]
lF[el?(FewF[oF[oFb\lFfwC$-FF6$FH-F[x6%F\bl-FS6$&Fd\lFaxFVF\bl@$2FewFcqFdx?(FewF
[oF[oFe\lFfwC$-FF6$FH-F[x6%F\bl-FS6$&Fg\lFaxFVF\bl@$2FewFe\lFdxF]yC$Feu-Fiu6#%5
not~implemented~yet.G@-Fg[l-FF6$FHQ2ic~=~ginv.GmpZ(stF=F`]lC*-FF6$FHQVic~=~ginv
.AlgebraicFieldExtensionGmpQ(st,~parameter=[F=>Fg]lFfp?(FewF[oF[oFj[lFfwC(@$F[^
lC$Feu-Fiu6#-F[x6$Fe^l%M~is~not~algebraic~over~the~rational~numbers.G>Fg]lFi^l>
Fb_lFc_l>Fg]lFg`lFhal@$F^blFdx?(FewF[oF[oF`blFfwC$@$FcblFdxFfblF]cl?(FewF[oF[oF
j[lFfwC&FbclFdclFbcl@$F^blFdx?(FewF[oF[oF]\lFfwC&@$FcblFdxFbclF[dlFbclF]yFedlC%
-FF6$FHQKic~=~ginv.OneParameterGmpZ(st,~parameter=[F=@%F_elF`elFgelF]yFh[lC&-FF
6$FHQIic~=~ginv.NParameterGmpZ(st,~parameter=[F=?(FewF[oF[oFb\lFfwC$Fffl@$2FewF
a\lFdx?(FewF[oF[oFe\lFfwC$Fagl@$FiglFdxF]y3Fa]l2Fe[lFa\lC--FF6$FHQ[oic~=~ginv.A
lgebraicFieldExtensionNParameter(st,~fieldParameter=[F=?(FewF[oF[oFb\lFfwC$Fffl
@$FijlFdx?(FewF[oF[oFe\lFfwC$Fagl@$FiglFdx-FF6$FHQ/],~parameter=[F=>Fg]lFfp?(Fe
wF[oF[oFj[lFfwC(@$F[^lC$FeuF[il>Fg]lFi^l>Fb_l-Fd_l6$Ff_l<&F]`lFc`l-F_q6#-F``l6%
FSFd\lFb`l-F_qFf\l>Fg]lFg`lFhal@$F^blFdx?(FewF[oF[oF`blFfwC$@$FcblFdxFfblF]cl?(
FewF[oF[oFj[lFfwC&FbclFdclFbcl@$F^blFdx?(FewF[oF[oF]\lFfwC&@$FcblFdxFbclF[dlFbc
lF]yC$FeuF[hl-FF6$FHQ3ic~=~ginv.GmpZZ(stF=FW-FF6$FHQ@ip~=~ginv.PolyList(st,~im,
~ic)|+F=-FF6$FHQ+iw~=~ginv.F=@+/%3Involutive/invcritGFfp-FF6$FHQ)Without(F=/Fb^
m7$F[oFcq-FF6$FHQ/CritPartially(F=/Fb^m7%F[oFcqFdt-FF6$FHQ(C1C2C3(F=/Fb^m7&F[oF
cqFdtFjt-FF6$FHQ*C1C2C3C4(F=C$Feu-Fiu6#%Wundefined~involutive~criteria;~see~?In
volutiveOptions.G-FF6$FHQ(",~ip)|+F=@%%5Involutive/janetlikeG-FF6$FHQ9iD~=~ginv
.JanetLike(iw)|+F=-FF6$FHQ5iD~=~ginv.Janet(iw)|+F=F=F=F=F=
M7R0
I<Involutive/ginvBasisHomogenf*6F%"FG%$varG%)alg_elemG%(tr_elemG%'n_entrG%)rhs_
entrG%'no_rhsG%"cG%&m_ordG%(var_ordG%)entr_posG%'vardegG%'tupdegG%(algextsG%-al
gextindetsG%/transextindetsG%%fextG%1extendbasis_fextG%%algoG%+time_boundG%#trG
%*quietmodeG%#GBG%%contG%*donotreadG%*nowarningG%+tracedenomG%+movedboundG%-qle
ngthboundG%,degreeboundG%,whichoutputG%)tup_permG%(do_normG%(rootofsG%)radicals
G%#hfG6,%%fileG%&fnameG%-extend_fnameG%"iG%"rG%"tG%%nvarG%+trans_elemG%'std_wsG
%"SG6#%enCopyright~(C)~2010~by~Daniel~Robertz.~All~rights~reserved.G6"Cao@$4%4I
nvolutive/ratcoeffG-%&ERRORG6#%[qinvolutive~basis~computation~via~homogenizatio
n~not~implemented~yet~for~integers~as~ground~ring.G@%9*@$2"'++59(-Ffn6#%Alength
~of~tuples~exceeds~100000.G@$2F]o,&F^o"""-%%nopsG6#&&9$6#Feo6#""#FeoF_o>8*-Fgo6
#9%>8+-%'removeG6$f*6#FMFV6$%)operatorG%&arrowGFV-%'memberG6$F[pT$FVFV6$F3929'@
$0907#-%"$G6$""!F^o-Ffn6#%Yup~to~now,~no~degrees~can~be~assigned~to~tuples~in~g
inv.G@$2F^p-Fgo6#9--Ffn6#%bpup~to~now,~only~two~blocks~of~variables~for~elimina
tion~ordering~are~supported~by~ginv.G@$2F^p-Fgo6#9.-Ffn6#%_pup~to~now,~only~two
~blocks~of~tuples~for~elimination~ordering~are~supported~by~ginv.G@$32F^p,&-Fgo
6#FepFeo-Fgo6#93Feo0%2Involutive/characGF\r-Ffn6#%_qup~to~now,~transcendental~e
xtensions~of~degree~greater~than~2~are~only~supported~over~the~rationals.G@$32F
\rFcsFY-Ffn6#%doup~to~now,~transcendental~extensions~are~not~supported~over~the
~integers.G@'2F\r-%+searchtextG6$Q&linuxFV-%+kerneloptsG6#%(versionGC$@%/-F[u6#
%)wordsizeG"#k@$2"+[O[Z@9+-Ffn6#%?characteristic~must~be~<~2^31.G@$2"&oF$Fhu-Ff
n6#%?characteristic~must~be~<~2^15.G@%/-%*substringG6$-%(convertG6$-%*interface
G6#.F]u%'stringG;Feo"#GQ=Standard~Worksheet~InterfaceFVC$>8%-%CInvolutive/stdin
terface_gettmpnameGFV>8,%%trueGC&@$4-%;Involutive/ssystem_booleanG6#%3test~-d~/
tmp/$USERGC$>8(-%(ssystemG6#%1mkdir~/tmp/$USERG@$0&FcxF]pQ!FV-Ffn6#%Ecannot~wri
te~temporary~file~to~/tmp.G>Fdw-Fex6#%Gecho~/tmp/$USER/Involutive-$PPID-$USERG@
%2F\r-Fgt6$Q"$FV&FdwF]p>FdwQ0/tmp/InvolutiveFV>Fdw-%=Involutive/remove_whitespa
ceG6#Fhy>Fhw%&falseG2F\r-Fgt6$Q&APPLEFVFjtC%@$F]vF_v>FdwFew>FhwFiwC%@$F]vF_v>Fd
wQ1\TEMP\InvolutiveFV>FhwF`z@$095F[y>8&-%$catG6%FdwF`[lQ(.binaryFV>Fdw-Fd[l6$Fd
w94>8$-%&fopenG6$Fdw%&WRITEG-%<Involutive/writeGINV1headerG63F\\lFcp9&FepF^o9)F
jnFhu""%7"Fg\l9/Fgq91FcqFhs9>-%(fprintfG6$F\\lQ*eqs~=~[\|+FV?(8'FeoFeo-Fgo6#F[p
FiwC&@%Fjn@%/F^oFeo>8--Fd[l6$-Fhv6$-%#opG6#&F[p6$F`]lFeoF^wQ"~FV>Fh]l-Fhv6$F`^l
F^w>Fh]l-Fhv6$-%$mapG6$F^^l&F[p6#F`]lF^w?(FVFeoFeoFV2F]o-%'lengthG6#Fh]lC&>Fcx-
Fgt6$Q"|+FVFh]l?(FVFeoFeoFV2F\rFcxC&@%32FeoFcx/&Fh]l6#,&FcxFeo!""FeoQ"\FV-F\]l6
%F\\lQ#%aFV-Fev6$Fh]l;Feo,&FcxFeo!"#Feo-F\]l6%F\\lFf`l-Fev6$Fh]l;FeoFa`l-F\]l6$
F\\lQ#\|+FV>Fh]l-Fev6$Fh]l;,&FcxFeoFeoFeoFb`l>FcxFe_l-F\]l6%F\\lFf`lFh]l>Fh]lF[
y@$2F\rF`_lFjal@$2F`]lFa]l-F\]l6$F\\lQ$,\|+FV-F\]l6$F\\lQ#]|+FV-F\]l6$F\\lQNeqs
~=~map(lambda~eq:~ginv.Poly(ip,~eq),~eqs)|+FV-F\]l6$F\\lQ/for~p~in~eqs:|+FV-F\]
l6$F\\l-Fd[l6%Q2~~~~p.homogenize(FV-Fhv6$,&F`pFeoFb`lFeoF^wQ#)|+FV@$F_[lC(-F\]l
6$F\\lQ<oldbasis~=~ginv.basisLoad("FV-F\]l6$F\\lFb[l-F\]l6$F\\lQ.",~"TQ",~iD)|+
FV-F\]l6$F\\lQ=for~i~in~oldbasis.iterIB():|+FV-F\]l6$F\\lQ1~~eqs.append(i)|+FV-
F\]l6$F\\lQ.del~oldbasis|+FV>Fh]lQJbasis1~=~ginv.basisBuild("TQDegree",~iD,~FV@
%52F\r9?2F\r9@C1-F\]l6$F\\lQWeqs2~=~[]|+for~i~in~eqs:|+~~~~eqs2.append(i)|+rund
en~=~0|+FV-F\]l6$F\\lQ-while~True:|+FV-F\]l6$F\\lQX~~~~runden~=~runden+1|+~~~~p
rint~"NEUE~RUNDE:~",~runden|+FV-F\]l6$F\\lQbo~~~~print~"Eingabe:~",~len(eqs),~"
~letzte~Basis:~",~len(eqs2)-len(eqs)|+FV@%F]el@%F_elC&-F\]l6$F\\l-Fd[l6%Q%~~~~F
VFh]lQ2eqs2,~MovedBound=FV-F\]l6$F\\l-Fhv6$F^elF^w-F\]l6$F\\lQ0,~QlengthBound=F
V-F\]l6$F\\l-Fhv6$F`elF^wC$FaflFgflC$-F\]l6$F\\l-Fd[l6%FeflFh]lQ4eqs2,~QlengthB
ound=FVF^gl@$2F\r97C$-F\]l6$F\\lQ(,~time=FV-F\]l6$F\\l-Fhv6$F[hlF^w@$2F\r9AC$-F
\]l6$F\\lQ/,~DegreeBound=FV-F\]l6$F\\l-Fhv6$FfhlF^w@$99-F\]l6$F\\lQ*,~quiet=1FV
@$%2Involutive/absremG-F\]l6$F\\lQ@,~absolutelySmallestRemainder=1FV@$49;-F\]l6
$F\\lQ,,~content=0FV-F\]l6$F\\lQ6,~skipHilbertPoly=1)|+FV@%Fjgl-F\]l6$F\\lQio~~
~~if~not~basis.computationInterrupted()~or~basis.outOfTime():|+~~~~~~~~break|+F
V-F\]l6$F\\lQZ~~~~if~not~basis.computationInterrupted():|+~~~~~~~~break|+FV-F\]
l6$F\\lQN~~~~del~eqs2|+~~~~eqs2~=~[]|+~~~~for~i~in~eqs:|+FV-F\]l6$F\\lQU~~~~~~~
~eqs2.append(i)|+~~~~for~i~in~basis.iterIB():|+FV-F\]l6$F\\lQR~~~~~~~~eqs2.appe
nd(str(i)~+~'~')|+~~~~del~basis|+|+FVC*-F\]l6$F\\l-Fd[l6$Fh]lQ$eqsFV@$FjglC$F]h
lF`hl@$FehlC$FhhlF[il@$FeilFfil@$FjilF\jl-F\]l6$F\\lQ4,~skipHilbertPoly=1FV@$09
GFg\lC$-F\]l6$F\\lQ3,~hilbertFunction=FV-F\]l6$F\\l-Fhv6$Fc\mF^w-F\]l6$F\\lFecl
-F\]l6$F\\lQ1ginv.basisSave("FV-F\]l6$F\\l-Fd[l6$FdwQ..step1.binaryFV-F\]l6$F\\
lQ,",~basis1)|+FV-%AInvolutive/writeGINV1MapleOutputG6,F\\l-Fd[l6$FdwQ'.step1FV
Q'basis1FVF^oFjn9:F[hl9<Q)invbasisFVFj\l@'0FdrFg\l@%3Ff]lFjn@%/Fh\l7#-Fjq6$FeoF
`p-F\]l6$F\\lQHim2~=~ginv.MonomInterface("Elim",~st,~[FV-F\]l6$F\\lQKim2~=~ginv
.MonomInterface("ElimDeg",~st,~[FV@%/<#-F^^l6#9,<#F^p@%Fh^m-F\]l6$F\\lQKim2~=~g
inv.MonomInterface("PotElim",~st,~[FV-F\]l6$F\\lQNim2~=~ginv.MonomInterface("Po
tElimDeg",~st,~[FV@%Fh^m-F\]l6$F\\lQKim2~=~ginv.MonomInterface("TopElim",~st,~[
FV-F\]l6$F\\lQNim2~=~ginv.MonomInterface("TopElimDeg",~st,~[FV5/F\sFg\l3/FjrFeo
/&F\sF\pF^o@+/Fg_mFeo@%Ff^m-F\]l6$F\\lQGim2~=~ginv.MonomInterface("Lex",~st,~[F
V-F\]l6$F\\lQJim2~=~ginv.MonomInterface("PotLex",~st,~[FV/Fg_mF^p@%Ff^m@%Fh^m-F
\]l6$F\\lQMim2~=~ginv.MonomInterface("DegRevLex",~st,~[FV-F\]l6$F\\lQPim2~=~gin
v.MonomInterface("DegRevLexDeg",~st,~[FV@%Fh^m-F\]l6$F\\lQPim2~=~ginv.MonomInte
rface("PotDegRevLex",~st,~[FV-F\]l6$F\\lQSim2~=~ginv.MonomInterface("PotDegRevL
exDeg",~st,~[FV/Fg_m""$@%Ff^mF`am-F\]l6$F\\lQJim2~=~ginv.MonomInterface("TopLex
",~st,~[FV/Fg_mFf\l@%Ff^m@%Fh^mFiamF\bm@%Fh^m-F\]l6$F\\lQPim2~=~ginv.MonomInter
face("TopDegRevLex",~st,~[FV-F\]l6$F\\lQSim2~=~ginv.MonomInterface("TopDegRevLe
xDeg",~st,~[FVC$-%'fcloseG6#F\\l-Ffn6#%\oup~to~now,~the~chosen~monomial~orderin
g~is~not~supported~by~ginv.GC%@%Fd^m@%Fh^m-F\]l6$F\\lQUim2~=~ginv.MonomInterfac
e("PosElimElim",~st,~tupSep=FV-F\]l6$F\\lQXim2~=~ginv.MonomInterface("PosElimEl
imDeg",~st,~tupSep=FV@'Ffbm-F\]l6$F\\lQTim2~=~ginv.MonomInterface("PosElimLex",
~st,~tupSep=FVF\cm@%Fh^m-F\]l6$F\\lQZim2~=~ginv.MonomInterface("PosElimDegRevLe
x",~st,~tupSep=FV-F\]l6$F\\lQgnim2~=~ginv.MonomInterface("PosElimDegRevLexDeg",
~st,~tupSep=FVC$FgcmFjcm-F\]l6$F\\l-Fhv6$F\amF^w-F\]l6$F\\lQ-,~independ=[FV?(F`
]lFeoFeoF`pFiwC$-F\]l6$F\\l-Fd[l6%Q"'FV-Fhv6$&FcpF]_lF^wF_fm@$2F`]lF`p-F\]l6$F\
\lQ#,~FV@$FY-F\]l6$F\\lQ&,~'@'FV-F\]l6$F\\lQ"]FV@&Fd^mC$-F\]l6$F\\lQ*,~varSep=F
V-F\]l6$F\\l-Fhv6$-Fgo6#&FdrF\pF^w3Fj`m0F\amF^oC$FagmFbem@$0Fh\lFi^mC$-F\]l6$F\
\lQ+,~degrees=FV@%FZ-F\]l6$F\\l-Fhv6$Fh\lF^w-F\]l6$F\\l-Fhv6$7$-F^^l6#Fh\lFeoF^
wF\]m-F\]l6$F\\lQSip2~=~ginv.PolyInterface("PolyList",~st,~im2,~ic)|+FV-F\]l6$F
\\lQ;iw2~=~ginv.WrapInterface("FV@+/%3Involutive/invcritGFg\l-F\]l6$F\\lQ(Witho
utFV/Fhim7$FeoF^p-F\]l6$F\\lQ.CritPartiallyFV/Fhim7%FeoF^pFgbm-F\]l6$F\\lQ'C1C2
C3FV/Fhim7&FeoF^pFgbmFf\l-F\]l6$F\\lQ)C1C2C3C4FVC$Fgcm-Ffn6#%Wundefined~involut
ive~criteria;~see~?InvolutiveOptions.G-F\]l6$F\\lQ)",~ip2)|+FV@%%5Involutive/ja
netlikeG-F\]l6$F\\lQPiD2~=~ginv.DivisionInterface("JanetLike",~iw2)|+FV-F\]l6$F
\\lQLiD2~=~ginv.DivisionInterface("Janet",~iw2)|+FV-F\]l6$F\\lQ+eqs2~=~[]|+FV-F
\]l6$F\\lQ;for~p~in~basis1.iterIB():|+FV-F\]l6$F\\lQM~~~~eqs2.append(p.changePo
lyInterface(ip2))|+FV-F\]l6$F\\lQhnbasis2~=~ginv.basisBuild("TQ",~iD2,~eqs2,~sk
ipHilbertPoly=1)|+FVF^]m-F\]l6$F\\l-Fd[l6$FdwQ..step2.binaryFV-F\]l6$F\\lQ,",~b
asis2)|+FV-Fj]m6,F\\l-Fd[l6$FdwQ'.step2FVQ'basis2FVF^oFjnF`^mF[hlFa^mFb^mFj\l-F
\]l6$F\\lQ+eqs3~=~[]|+FV-F\]l6$F\\lQ;for~p~in~basis2.iterIB():|+FV-F\]l6$F\\l-F
d[l6%Q4~~~~p.dehomogenize(FVFbclFecl-F\]l6$F\\lQ4~~~~eqs3.append(p)|+FV>Fh]lQ;b
asis3~=~ginv.basisBuild("FV@%096F[y>Fh]l-Fd[l6$Fh]lFf^n@%333/FdrFg\l5FfamF\cmFg
`mFh^m>Fh]l-Fd[l6$Fh]lQ)TQDegreeFV>Fh]l-Fd[l6$Fh]lQ#TQFV>Fh]l-Fd[l6$Fh]lQB",~iD
2,~eqs3,~skipHilbertPoly=1)|+FV-F\]l6$F\\lFh]lF^]m-F\]l6$F\\l-Fd[l6$FdwFf[l-F\]
l6$F\\lQ,",~basis3)|+FV-Fj]m6,F\\lFdwQ'basis3FVF^oFjnF`^mF[hlFa^m9BFj\lFgcm@%F`
il@%FhwC%>Fcx-Fex6#-Fd[l6$Q)runginv~FVFdw@$/Fcx%%NULLG-Ffn6#%Acould~not~run~pro
gram~'runginv'.G>Fcx&FcxF\pC$>Fcx-Fex6#-Fd[l6%FaanFdwQ-~>~/dev/nullFV@%3/FianF\
r/FjxF[y>FcxF\r>FcxFeoC$>Fcx-%'systemGF^an@$FcanFean@$0FcxF\r-Ffn6#%Merror~duri
ng~call~of~Python~or~interruption.G@$FetC%>Fcx-Fex6#-Fd[l6'Q&if~[~FVFdwQ,.janet
~-ot~FVFdwQ:~];~then~echo~-n~true;~fiFV@$2F\r-Fa_l6#Fjx-Ffn6#%dpoutput~file~of~
ginv~is~older~than~input~file~(probably,~program~ginv~stopped~abnormally).G@$4F
a^mC$>Fcx-Fex6#-Fd[l6%Q*filesize~FVFdwQ'.janetFV@$30FcxFdanFcbnC$>F`]l-%'sscanf
G6$FjxQ#%dFV@$3349=2F\r-FgoF]_l2"'++I&F`]lF\p-%(WARNINGG6#Q\oresulting~involuti
ve~basis~is~big;~reading~it~may~take~a~while...FV@$Fa^m-%'RETURNG6#Fg\lA-Fd[l6$
FdwF[en@$333FhenFjgl-%)assignedG6#%6_IB_RESULTout_of_timeG/Fagn.%%TrueG-F`fn6#%
[ocomputation~of~involutive~basis~stopped~due~to~time~restriction.G>%*_JB_compa
G.Fign@$Fj\l>%._GINV_inv_denG%0_IB_RESULTdenomG@+5/Fh`nFg\l/-Fev6$Fh`n;Feo"#dQZ
invbasis,invbasislm,invbasisanc,multvar,factormodulebasisFVC%@$54333-F_gn6#%+_I
B_RESULTG-F_gn6#%-_IB_RESULTlmG-F_gn6#%._IB_RESULTancG-F_gn6#%2_IB_RESULTmultva
rG3FZ43-F_gn6#%1_IB_RESULTfactorG-F_gn6#%8_IB_RESULTfactormultvarG-Ffn6#%Cerror
~in~computation~or~interface.G@$FZC%>8)&-%4Involutive/proc_ordG6*Ff\lFcpFg\l7$F
^im-F^^l6#FgqFg\lFcp7#F^oFiw6#""&@%2FeoF^oC%>%+_JB_factorG-%%sortG6$-%$zipG6%f*
6$FM%"jGFVF[qFV7$F[pFcpFVFVFVF`jnFcjnf*Fa\oFVFVFV@'2&&FcpF\pF]pFioFiw2FioFg\oF`
z-T#6$&FjoF\p&Fh\oF\pFVFV6$FOFjjn>%3_JB_factor_multvarG-Fj^l6$f*FjpFVF[qFV&F[pF
]pFVFVFVFi[o>Fi[o-Fj^l6$f*FjpFVF[qFV-%'subsopG6$/,&FioFeoFeoFeoF]]o7#-Fjq6$F\rF
aqFVFV6$F)F^oFi[oC%>Fi[o-F[\o6$-F^\o6%f*Fa\oFVF[qFVFc\oFVFVFVF`jnFcjnf*Fa\oFVF[
qFV-F[]o6$FjoFh\oFVFVF_]o>Fa]o-Fj^l6$f*FjpFVF[qFVFe]oFVFVFVFi[o>Fi[o-Fj^l6$f*Fj
pFVF[qFVFjoFVFVFVFi[o>%(_JB_varGFcp-Fefn6#7&FainFginFdinFjin/-Fev6$Fh`n;Feo"#RQ
Hinvbasis,invbasislm,invbasisanc,multvarFVC$@$F[inFdjnFg_o/Fh`nFb^mC$@$4F_inFdj
n-Fefn6#7&FainFg\lFg\lFg\l/Fh`nQ2factormodulebasisFVC&@$F\jnFdjn>FjjnF[[o@%Ff[o
C%>Fi[o-F[\o6$-F^\o6%f*Fa\oFVF[qFVFc\oFVFVFVF`jnFcjnf*Fa\oFVFVFV@'Ff\oFiwFi\oF`
zFj\oFVFVF_]o>Fa]o-Fj^l6$f*FjpFVF[qFVFe]oFVFVFVFi[o>Fi[o-Fj^l6$f*FjpFVF[qFVFj]o
FVFVFb^oFi[oC%>Fi[o-F[\o6$-F^\o6%f*Fa\oFVF[qFVFc\oFVFVFVF`jnFcjnf*Fa\oFVF[qFVF[
_oFVFVF_]o>Fa]o-Fj^l6$f*FjpFVF[qFVFe]oFVFVFVFi[o>Fi[o-Fj^l6$f*FjpFVF[qFVFjoFVFV
FVFi[o>Ff_oFcp-Ffn6#%4error~in~interface.GFV6'Fi[oFa]oFf_oFignF]hnFVFV
M7R0
I1Involutive/pplexf*6$%"aG%"bG6#%"iG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~C
id~and~Daniel~Robertz.~All~rights~reserved.G6"C$?(8$"""F/-%%nopsG6#&9$6#F/%%tru
eG@&2&F36#F.&&9%F5F:-%'RETURNG6#F62F;F9-F?6#%&falseG@%2&F46#""#&F=FHFDF6F+F+F+F
+
M7R0
IAInvolutive/pnegplex_Z_entr_blockf*6$%"aG%"bG6"6#%jnCopyright~(C)~2006-2010~by
~Daniel~Robertz.~All~rights~reserved.GF'@'2&%,_entrblocksG6#&9$6#""#&F-6#&9%F1%
&falseG2F3F,%%trueG4-%3Involutive/pplex_ZG6$F0F6F'F'F'F'
M7R0
IAInvolutive/pnormal_form_Z_lm_oldf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_va
rG6+%"aG%"hG%"iG%"lG%#lmG%$divG%'n_entrG%*zero_listG%.rhs_zero_listG6#%jnCopyri
ght~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C+>%(_nnformG,&F:""
"F<F<>8%9$>8*-%%nopsG6#&F>6#F<>8+7#-%"$G6$""!FA>8,7#-FK6$FM-FC6#&F>6#""#>8)%%tr
ueG>8(-9'FD?(F7F<F<F73FY0&Ffn6$FWF<FMC%>8&F<>FY%&falseG?(F7F<F<F731F`o-FC6#9%4F
YC$@$30FEFH-%7Involutive/pinv_divideG6%&Fho6$F`o""$&Fho6$F`o""&&FfnFFC%>%'_redu
cG,&FjpF<F<F<>8'-%%iquoG6$F\o&Fho6%F`o""'F<@$0F]qFMC%>F>7$-%'normalG6#,&FEF<-%$
mapG6$f*6#F,F76$%)operatorG%&arrowGF7**T#F<&T%6$FWFWF<&T(6%T)FcqFW!""F?F<F7F76*
F/F]qF0FfnF&FhoF.F`o&Fho6%F`oF<F<F^s-Fjq6#,&FUF<-F^r6$f*FarF7FbrF7FerF7F7F_s&Fh
o6%F`oF<FWF^s>FYFZ>FfnFgn>F`o,&F`oF<F<F<@'3/FEFH0FUFOC$@$4-%7Involutive/member_
multG6%FU%&P_HOMG9&>Fht7$-%#opG6#FhtFU7$FEFOF`t7$FHFUF>F76%FhtF:FjpF7F7
M7R0
I8Involutive/cppInvReducef*6%'%"gG%%listG%%fextG%*quietmodeG6'%%fileG%&fnameG%"
iG%"rG%'std_wsG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reser
ved.G6"C.@'2""!-%+searchtextG6$Q&linuxF2-%+kerneloptsG6#%(versionG@%/-%*substri
ngG6$-%(convertG6$-%*interfaceG6#.F>%'stringG;""""#GQ=Standard~Worksheet~Interf
aceF2C$>8%-%CInvolutive/stdinterface_gettmpnameGF2>8(%%trueGC&@$4-%;Involutive/
ssystem_booleanG6#%3test~-d~/tmp/$USERGC$>8'-%(ssystemG6#%1mkdir~/tmp/$USERG@$0
&F[o6#""#Q!F2-%&ERRORG6#%Ecannot~write~temporary~file~to~/tmp.G>FR-F]o6#%Gecho~
/tmp/$USER/Involutive-$PPID-$USERG@%2F6-F86$Q"$F2&FRFco>FRQ0/tmp/InvolutiveF2>F
R-%=Involutive/remove_whitespaceG6#Fcp>FV%&falseG2F6-F86$Q&APPLEF2F;C$>FRFS>FVF
WC$>FRQ1\TEMP\InvolutiveF2>FVF[q>FR-%$catG6$FR9%>8$-%&fopenG6$-Fiq6$FRQ%.redF2%
&WRITEG?(8&FMFM-%%nopsG6#9$FWC&-%(fprintfG6$F]rQ'begin|+F2-F]s6$F]r-FE6$&Fjr6#F
frFK-F]s6$F]rQ#;|+F2-F]s6$F]rQ%end|+F2-F]s6$F]rQ#|+|+F2-%'fcloseG6#F]r@%9&@%FVC
%>F[o-F]o6#-Fiq6)Q'runJB~F2FRQ).binary~F2FRQ&.red~F2FRQ4.res~_RESULT_REDUCEF2@$
/F[o%%NULLG-Fgo6#%?could~not~run~program~'runJB'.G>F[o&F[o6#FMC$>F[o-F]o6#-Fiq6
)Q$JB~F2FRF\uFRF][email protected]~_RESULT_REDUCE~>~/dev/nullF2@%3/FfuF6/FboFeo>F[oF6>F
[oFMC$>F[o-%'systemG6#-Fiq6)F^vFRF\uFRF]uFRF^u@$F`u-Fgo6#%<could~not~run~progra
m~'JB'.G@$0F[oF6-Fgo6#%bpprogram~'JB'~not~found~or~interrupted~(e.g.~by~the~use
r~or~because~of~memory~shortage).G@$F5C&>F[o-F]o6#-Fiq6'Q&if~[~F2FRQ*.res~-ot~F
2FRQ:~];~then~echo~-n~true;~fiF2@$2F6-%'lengthG6#Fbo-Fgo6#%dpoutput~file~of~'JB
'~is~older~than~input~file~(probably,~program~'JB'~stopped~abnormally).G>F[o-F]
o6#-Fiq6%Q*filesize~F2FRQ%.resF2@$30F[oFauFbvC$>F[o-%'sscanfG6$FboQ#%dF2@$32F6-
Fhr6#F[o2"'++IFfu-%(WARNINGG6#Qgnresulting~normal~form~is~big;~reading~it~may~t
ake~a~while...F2A-Fiq6$FRF^y@$4-%)assignedG6#%/_RESULT_REDUCEG-Fgo6#%Cerror~in~
computation~or~interface.GF[[lF2F2F2F2
M7R0
I5Involutive/pmult_varf*6$'%"aG%%listG'%$varGF'6$%"iG%"bG6#%\pCopyright~(C)~200
0-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C%>8%%%NULLG
?(8$"""F6%&_nvarG%%trueG@%/&9$6#F5""!>F26$F2%"*G@%%5Involutive/janetlikeG>F26$F
2)&9%F=F;>F26$F2FG7#F2F/F/F/F/
M7R0
I>Involutive/InvBasisGINVAssertf*6#%"LG6W%"aG%"cG%"iG%"jG%"kG%"lG%"rG%"vG%"zG%'
n_entrG%)rhs_entrG%'no_rhsG%"FG%"RG%$varG%(var_ordG%'vt_degG%%fextG%%seqvG%(seq
_varG%(deg_ordG%$POTG%)tup_permG%)alg_elemG%+trans_elemG%#IBG%&m_ordG%%contG%(d
o_normG%)entr_posG%*quietmodeG%#GBG%&ib_gbG%$ancG%#lmG%(multvarG%+time_boundG%#
trG%(algextsG%-algextindetsG%/transextindetsG%)radicalsG%(rootofsG%%algoG%*dono
treadG%*nowarningG%+tracedenomG%+movedboundG%-qlengthboundG%,degreeboundG%*outo
ftimeG%#hfG%)dolaunchG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~right
s~reserved.G6"C\q>80-%6Involutive/proc_inputG6#9$>8-&F[o6#""">8.&F[o6#""#>8/&F[
o6#""$>8;&F[o6#""'>8<&F[o6#""(>F[o&F[o6#""%@%332Fio9#-%%typeG6$&9"F]p%%listG4-F
cq6$Feq-Fgq6#%(integerGC)>82Feq>81-F]o6#&FfqFho@$2Fdo&FbrFco-%&ERRORG6#%Xexpect
ing~list~of~relations~for~the~residue~class~ring.G@$4&FbrF]p-Fjr6#%foright~hand
~sides~for~relations~of~the~residue~class~ring~are~not~supported.G>Fbr&FbrF[q@%
/&Fbr6$FdoFdo7#""!>Fbr7"C$>Fbr7#-%$seqG6$-Fat6$7$-%'subsopG6$/8&&Fbr6%8'FdoFdo7
#-%"$G6$FjsFao7#-F`u6$FjsFfo/Fjt;FdoFao/F]u;Fdo-%%nopsG6#Fbr>F[o7$-%#opG6#F[o-F
_vF[v>8*F\qC&@$2FaqFio-Fjr6#%Pexpecting~list~of~variables~as~second~argument.G>
F`rFer>FbrF\t>FcvF^p>F`r-%5Involutive/proc_varsG6$F`rFao>83&F`rFho>84&F`rF]p>88
&F`rF[q>8:&F`r6#""&>8A&F`rFbp>F`r&F`rFco>%&_nvarG-Fju6#F`r@%0%2Involutive/chara
cGFjs>F[o-%$modG6$-%(collectG6%F[oF`r%,distributedGFjx>F[oF_y@$-%$hasG6$-%$mapG
6$f*6#F'Fhn6$%)operatorG%&arrowGFhn3-Fcq6$&F_oFco-Fgq6#-%(polynomG6$%)anythingG
T#-Fcq6$&F_oFhoFdzFhnFhn6$F5F`rF[o%&falseG-Fjr6#-%$catG6%%Oexpecting~a~list~of~
(lists~of)~polynomials~in~G-%(convertG6$F`r%'stringG%4~as~first~argument.G>Fep-
%'removeG6$f*6#F)FhnF]zFhn-%'memberG6$F_oFjzFhnFhnF^[lFep>%(_nnformGFjs>%'_redu
cGFjs>%'_crit1GFjs>%'_crit2GFjs>%'_crit3GFjs>%'_crit4GFjs>%&P_HOMGF\t>8+-Fg[l6$
-%+kerneloptsG6#%(versionGFi[l>8%Fjx@%/FbwF\t>8>F\q>F_^l7#-F`u6$F\q-Fju6#Fbw>8J
F\t>8KF\t>8LF\t>8?%%trueG>8@F^_l>85Q!Fhn>8OFc_l>8HFjs>8IF_[l>8CF_[l>8B-%&evalbG
6#52Fjs-%+searchtextG6$Q&APPLEFhnFc]l/-%*substringG6$-Fg[l6$-%*interfaceG6#.Fi]
lFi[l;Fdo"#GQ=Standard~Worksheet~InterfaceFhn>8PF_[l>8QF_[l>8RF_[l>8SFjs>8TFjs>
8UFjs>8VF_[l>8WF\t>8XF_[l?(FjtFcvFdoFaqF^_l@)5-Fcq6$&Ffq6#FjtF]r-Fcq6$F[clFgq>F
_^lF[cl-Fcq6$F[clFi[l@+/F[clQ/tracerelationsFhnC$-%(WARNINGG6#Q[ooption~'tracer
elations'~is~not~applicable~with~ginv~up~to~now...Fhn>Fi_lF^_l/F[clQ*donotreadF
hn>FealF^_l/F[clQ&denomFhn>FialF^_l/F[clQ'launchFhn>FeblF^_lC$>8)F[cl?(F]uFdoFd
o-%'lengthG6#FfdlF^_l@&/&Ffdl6#F]uQ"NFhn>F`_lF_[l0F]elFc_l-Fjr6#%0invalid~optio
n.G-Fcq6$F[cl%)equationG@E/-F_v6$FdoF[clQ%NameFhnC$@$4-Fcq6$-F_v6$FioF[clFi[l-F
jr6#%Fexpecting~a~string~for~option~"Name".G>Fb_lFbfl/FjelQ%charFhnC$@$4-Fcq6$F
bfl%*nonnegintG-Fjr6#%Qexpecting~0~or~a~prime~number~for~option~"char".G>F[^lFb
fl/FjelQ%timeFhnC$@$F\gl-Fjr6#%Sexpecting~time~bound~in~seconds~for~option~"tim
e".G>Fg_lFbfl/FjelQ'algextFhn@%-Fcq6$FbflFgq?&8(FbflF^_lC&>8,-%&minusG6$-%'inde
tsG6#Fbhl<%-F_v6#-Fiy6%Fg[lF`p%%nameG-F_v6#Fi^l-F_v6#F[_l@$50-Fju6#FehlFdo4-Fcq
6$Fbhl-Fgz6$FizFehl-Fjr6#%`sexpecting~a~univariate~polynomial~(possibly~with~ra
tional~coefficients~in~previously~defined~algebraic~elements)~for~option~"algex
t".G@$0-%*intersectG6$Fehl<#-F_vFgx<"-Fjr6#%_qthe~univariate~polynomial~for~opt
ion~"algext"~may~not~contain~indeterminates~of~the~polynomial~ring.G@$4-Fb\l6$-
F_vFjilFi^lC$>Fg^l7$-F_v6#Fg^lFbhl>Fi^l7$FbilFb[mC&>Fehl-Fghl6$-Fjhl6#FbflF\il@
$5Fhil4-Fcq6$FbflF^jlF`jl@$FdjlF[[m@$F_[mC$>Fg^l7$Ff[mFbfl>Fi^lFi[m/FjelQ)trans
extFhn@'-Fcq6$Fbfl-Fgq6#Fail?&FbhlFbflF^_l@$4-Fb\l6$Fbhl7$-F_v6#FepFdil>F[_l7$F
dilFbhl-Fcq6$FbflFail@$4-Fb\l6$FbflFg]m>F[_l7$FdilFbfl-Fjr6#%Sexpecting~(list~o
f)~name(s)~for~option~"transext".G/FjelQ*algorithmFhnC$>Fe_lFbfl@$54-Fcq6$Fe_lF
i[l33330Fe_lQ#TQFhn0Fe_lQ)TQDegreeFhn0Fe_lQ*TQGradingFhn0Fe_lQ,TQBlockHighFhn0F
e_lQ+TQBlockLowFhn-Fjr6#%gqexpecting~strings~"TQ"~or~"TQDegree"~or~"TQBlockHigh
"~or~"TQBlockLow"~or~"TQGrading"~for~option~"algorithm".G/FjelQ)GroebnerFhnC$@$
4-Fcq6$Fbfl%(booleanG-Fjr6#%Oexpecting~boolean~value~for~option~"Groebner".G>F[
`lFbfl/FjelQ&quietFhnC$@$Fe`m-Fjr6#%Lexpecting~boolean~value~for~option~"quiet"
.G>F]`lFbfl/FjelQ*nowarningFhnC$@$Fe`m-Fjr6#%Pexpecting~boolean~value~for~optio
n~"nowarning".G>FgalFbfl/FjelF_dlC$@$Fe`m-Fjr6#%Lexpecting~boolean~value~for~op
tion~"denom".G>FialFbfl/FjelQ(contentFhnC$@$Fe`m-Fjr6#%Nexpecting~boolean~value
~for~option~"content".G>F]_lFbfl/FjelF\dlC$@$Fe`m-Fjr6#%Pexpecting~boolean~valu
e~for~option~"donotread".G>FealFbfl/FjelQ#HFFhnC$@$4-Fcq6$Fbfl-Fgq6#F_gl-Fjr6#%
enexpecting~a~list~of~non-negative~integers~for~option~"HF".G>FcblFbfl/FjelQ+Mo
vedBoundFhnC$@$F\gl-Fjr6#%Zexpecting~a~non-negative~integer~for~option~"MovedBo
und".G>F[blFbfl/FjelQ-QlengthBoundFhnC$@$F\gl-Fjr6#%fnexpecting~a~non-negative~
integer~for~option~"QlengthBound".G>F]blFbfl/FjelQ,DegreeBoundFhnC$@$F\gl-Fjr6#
%enexpecting~a~non-negative~integer~for~option~"DegreeBound".G>F_blFbfl/FjelQ.t
ailreductionFhnFhnFbelFbel>Ffdl-%4Involutive/proc_ordG6*F_^lF`rFbwFewFhwF`rF`xF
^_l>89&FfdlF[q@$F_fm>F`xF\t@$0F[x7#-F`u6#Ffu>F[o-Fiy6$f*F`\l6#F*FhnFhn-Fgt6$/Fd
o7#-Fat6$&Fcz6#&Fjz6#8$/Fggm;FdoT%F_oFhnFhn6&F=F[xF0FaoF[o>F`p-%>Involutive/alg
ebraicextensionG6)F[oF`pFg^lFi^lFepF\tF\t>F[o&F`pFco>Fg^l&F`pF]p>Fi^l&F`pF[q>8M
&F`pF]x>8N&F`pFbp>Fep&F`pFgp>F`p&F`pFho@$0FghmF\tC%>Fg^l-%%subsG6$FghmFg^l>F[o-
Feim6$FghmF[o>Fbr-Feim6$FghmFbr>%)_inv_denGF\t>Fa]lF\t@$0FbrF\tC$-%5Involutive/
ginvBasisG6GFbrF`rF`pFepFdoFjsF^_lF[^lF_^lFbw7#Fao&Few6#;FdoFexFisFg^lFi^lF[_lQ
'__ringFhnFc_lFe_lFjsF_[lF]`lF_[lF^_lF^_lFgalF_[lF[blF]blF_blQHinvbasis,invbasi
slm,invbasisanc,multvarFhnF[xF`_lFjhmFghmF\tF_[l@$332FjsFg_l-%)assignedG6#%6_IB
_RESULTout_of_timeG/Fc[n.%%TrueG>FablF^_l>8=-Fdjm6GF[oF`rF`pFepFaoFfoF[pF[^lF_^
lFbwF`xFgjm&Few6#;,&FexFdoFdoFdo,&FexFdoFaoFdoFg^lFi^lF[_lFb_lFc_lFe_lFg_lFi_lF
]`lF_[lF]_lFealFgalFialF[blF]blF_blF\tF[xF`_lFjhmFghmFcblFebl>Fe\lFjs>Fg\lFjs>F
i\lFjs>F[]lFjs>F]]lFjs>F_]lFjs@$5FealFebl-%'RETURNG6#-F_v6#Fi[n@$F][nC$@$/Fi[nF
\t-Fj\n6#F\t>FablF^_l@%/FaoFdoC$>8E-Fiy6$f*F`\lFhnF]zFhn-Fgt6$/FioFdoF_oFhnFhnF
hn&Fi[nFho>8F-Fiy6$f*F`\lFhnF]zFhnF]^nFhnFhnFhn&Fi[nF]pC$>Fi]n-Fiy6$f*F`\lFhnF]
zFhn-Fgt6$/Fio,&F][lFdoFdoFdoF_oFhnFhnFhnF`^n>Fb^n-Fiy6$f*F`\lFhnF]zFhnF\_nFhnF
hnFhnFf^n>8G-Feim6$/!""%)infinityG-Fiy6$f*F`\lFhnF]zFhn-Fiy6$f*F\gmFhnF]zFhn,&F
_oFdoFi_nFdoFhnFhnFhnF_oFhnFhnFhn&Fi[nF[q@$3Fial-Fa[n6#%._GINV_inv_denG>F^jmFg`
n@%330&Fi[nFcoFis52Fdo-Fju6#F]an0-Fiy6$f*F`\lFhnF]zFhn-F]\l6%FfyF_oFjsFhnFhnFhn
F]an7#F\tF`_l@%%4Involutive/ratcoeffGC%@$Fial>F^jm7$-F_v6#F^jm-F_v6#-Fiy6$f*F`\
lFhnF]zFhn@$0&FczFcoFdoFhbnFhnFhnFhnFf^n@%/F[^lFjs@%3Ff]nF[p>Fi[n7#-Fat6$-F`y6%
*&&F]anF\clFdo&&&Fb^nF\clFcoFcoFi_nF`rFby/Fjt;FdoF`an>Fi[n7#-Fat6$-F`y6%-Fiy6$f
*F\gmFhnF]zFhn*&F_oFdo&&&Fjz6#FjgmFcoFcoFi_nFhnFhn6&FIFb^nF)FjtFdcnF`rFbyFhcn@%
F\cn>Fi[n7#-Fat6$-F]y6$FacnF[^lFhcn>Fi[n7#-Fat6$-F]y6$-F`y6%-Fiy6$f*F\gmFhnF]zF
hnFcdnFhnFhnFhdnFdcnF`rFbyF[^lFhcn>Fb^n-Fiy6$f*F`\lFhnF]zFhn7$7$Fdo&FczFhoF][lF
hnFhnFhnFb^nC$>Fi[n-%$zipG6%f*6$F)F*FhnF]zFhn@%-Fcq6$&&9%FcoFco%'negintG-%'expa
ndG6#,$F_oFi_nF_oFhnFhnFhnF]anFb^n>Fb^n-Fiy6$f*F`\lFhnF]zFhn@%-Fcq6$FhbnF_gn7$7
$,$FhbnFi_nFafnF][lF_oFhnFhnFhnFb^n>Fi[nF]an@$FaimC$>Fi[n-Feim6$-Fiy6$f*F`\lFhn
F]zFhn/-%$rhsGF^o-%$lhsGF^oFhnFhnFhnFghmFi[n>F^jm-Feim6$-Fiy6$f*F`\lFhnF]zFhnFg
hnFhnFhnFhnFghmF^jm?(Fjt-Fju6#FjhmFi_nFdoF^_lC$>Fi[n-Feim6$&FjhmF\clFi[n>F^jm-F
eim6$FiinF^jm@$FdfmC$>F[x-Fiy6$f*F`\lF\gmFhnFhnC$-Fb\l6%F_oFjz.FggmFggmFhnFhn6$
F=F[xFefm>Fi[n-Fiy6$f*F`\lF\gmFhnFhn7$-Fat6$&F_oFdgmFhgm-Fat6$&F_oFfgm/Fggm;,&F
jgmFdoFdoFdo-FjuF^oFhnFhnF[hmFi[n@%4F[p@%Ff]n@%/FfoFdoC'@%/FbrF\t>Fa]l-Fiy6$f*F
`\lFhnF]zFhn@$3/FczFjs0&F_o6#,&FjzFdoFdoFdoFjsFg\oFhnFhn6$F0FaoFi[n>Fa]l-Fiy6$f
*F`\lFhnF]zFhn@$3Ff\o5Fe\o/-%6Involutive/ginvReduceG667#FczFjgmT'T)FdoFjsF^_lT+
T-T/T1&T3FhjmFisT5T7T9FjjmF_[lF_[lT;FisFg\oFhnFhn6<F0FaoF5F`rF>F`pF?FepF(F[^lFA
F_^lF6FbwFDF`xF7FewFMFg^lFNFi^lFOF[_lFEF]`lFi[n>FjtFdo?(FhnFdoFdoFhn1Fjt-FjuF]]
n@%/&&Fi[nF\clFcoFjsC%>Fi[n-Fgt6$/Fjt%%NULLGFi[n>Fi]n-Fgt6$F`_oFi]n>Fb^n-Fgt6$F
`_oFb^nC$>Fi[n-Fgt6$/Fjt/Fj^o&F[_o6#,&FaoFdoFdoFdoFi[n>Fjt,&FjtFdoFdoFdo@$Fa]nC
&>Fi[n7#/FjsFjs>Fi]n7#7$7$FjsFdoFdo>Fb^nFi`o>Fe_n7#7#-F`u6$Fj_nFex>%)P_T_ListG-
Fiy6$f*F`\lFhnF]zFhn7$7#-F_v6$FdoF_o7#-F_v6$FioF_oFhnFhnFhnFi[nC'@%F^\o>Fa]l-Fi
y6$f*F`\lFhnF]zFhn@$3Fe\o0&F_o6#;Fi\o,&FjzFdoFjgmFdo7#-F`u6$FjsFjgmFgboFhnFhn6&
F0FaoF1FfoFi[n>Fa]l-Fiy6$f*F`\lFhnF]zFhn@$3Ffbo5Fe\o/-Fd]o66Ff]oFg]oFh]oFi]oFdo
FjsF^_lFj]oF[^oF\^oF^^o&F_^oFhjmFisF`^oFa^oFb^oFjjmF_[lF_[lT=FisFgboFhnFhn6>F0F
aoF1FfoF5F`rF>F`pF?FepF(F[^lFAF_^lF6FbwFDF`xF7FewFMFg^lFNFi^lFOF[_lFEF]`lFi[n>F
jtFdo?(FhnFdoFdoFhnFf^o@%Fi^oC%>Fi[nF^_o>Fi]nFc_o>Fb^nFf_oC$>Fi[n-Fgt6$/Fjt/Fj^
o&F[_o6#;F``o,&FaoFdoFfoFdoFi[n>FjtFb`o@$Fa]nC&>Fi[n7#/FjsFbu>Fi]nFi`o>Fb^nFi`o
>Fe_nF^ao>Fcao-Fiy6$f*F`\lFhnF]zFhn7$FhaoF\boFhnFhnFhnFi[nC$@%F[\oC'@%F^\o>Fa]l
-Fiy6$f*F`\lFhnF]zFhn@$3/&F_o6#;FdoFjz7#-F`u6$FjsFjzFf\oFg\oFhnFhnFj\oFi[n>Fa]l
-Fiy6$f*F`\lFhnF]zFhn@$3Ff\o5Fefo3/-%*numboccurG6$FffoFjs,&FjzFdoFi_nFdo/-Fd]o6
67#-F_v6#-Fghl6$<#-F_v6#Fffo<#FjsFjgmFg]oFh]oFdoFjsF^_lFi]oFj]oF[^oF\^oF]^oFisF
_^oF`^oFa^oFjjmF_[lF_[lFb^oFisFg\oFhnFhnFc^oFi[n>FjtFdo?(FhnFdoFdoFhnFf^o@%/&F[
_oFgfmF^uC%>Fi[nF^_o>Fi]nFc_o>Fb^nFf_oC$>Fi[n-Fgt6$/Fjt/FihoF^`oFi[n>FjtFb`o@$F
a]nC&>Fi[n7#/F^uFjs>Fi]nFi`o>Fb^nFi`o>Fe_nF^ao>Fcao-Fiy6$f*F`\lFhnF]zFhn7$FiaoF
[boFhnFhnFhnFi[nC'@%F^\o>Fa]l-Fiy6$f*F`\lFhnF]zFhn@$3FefoFfboFgboFhnFhnF^coFi[n
>Fa]l-Fiy6$f*F`\lFhnF]zFhn@$3Ffbo5Fefo3Fdgo/-Fd]o66F\hoFg]oFh]oFi]oFdoFjsF^_lFj
]oF[^oF\^oF^^oFicoFisF`^oFa^oFb^oFjjmF_[lF_[lFjcoFisFgboFhnFhnF[doFi[n>FjtFdo?(
FhnFdoFdoFhnFf^o@%FhhoC%>Fi[nF^_o>Fi]nFc_o>Fb^nFf_oC$>Fi[n-Fgt6$/Fjt/FihoFidoFi
[n>FjtFb`o@$Fa]nC&>Fi[n7#/F^uFbu>Fi]nFi`o>Fb^nFi`o>Fe_nF^ao>Fcao-Fiy6$f*F`\lFhn
F]zFhn7$FiaoF\boFhnFhnFhnFi[n@$Fdfm>Fi[n-Fiy6$f*F`\lF\gmFhnFhn/7#-Fat6$&FiaoFdg
mFhgmF\boFhnFhnF[hmFi[nC$@%Ff]nC$@$Fa]nC&>Fi[nFis>Fi]nFi`o>Fb^nFi`o>Fe_nF^ao>Fc
ao-Fiy6$f*F`\lFhnF]zFhn7$7#F_oFisFhnFhnFhnFi[nC$@$Fa]nC&>Fi[n7#F^u>Fi]nFi`o>Fb^
nFi`o>Fe_nF^ao>Fcao-Fiy6$f*F`\lFhnF]zFhn7$F_oFisFhnFhnFhnFi[n@$Fdfm>Fi[n-Fiy6$f
*F`\lF\gmFhnFhn7#F][oFhnFhnF[hmFi[n@$-Fa[n6#%*_JB_compaG@%F[\o>Fa]l7$-F_v6#Fa]l
-F_v6#-Fiy6$F_vF_`p>Fa]l7$Fc`p-F_vF^`p>%*pnumber_tGFg^o@%Ff]n>%+PolTab_VarG7#-F
at6$7%F[_o-%5Involutive/pmult_varG6$&Fe_nF\clF`r*&&Fb^n6%FjtFdoFdoFdo&Fb^n6%Fjt
FdoFioFdo/Fjt;FdoF]ap>F`ap7#-Fat6$7%F[_oFeap7$Fiap&Fb^n6$FjtFioF^bp>867#-Fat6$-
Fc[l6$%#_xGF]u/F]uFijm@$0FibpF`rC%>877#-Fat6$/&F`rF\cl&FibpF\cl/FjtFijm>Fcao-Fe
im6$FecpFcao>Fb^n-Fiy6$f*F`\lFhnF]zFhn-Fgt6$/Fdo-Fgt6$/Fio-Feim6$FjzFafnFczF_oF
hnFhn6$F:FecpFb^n@%Fjan>Fcao7#-Fat6$7*&FcaoF\cl7$7#-Fat6$-%'degreeG6$&&Fi]nF\cl
Fco&F`rF^elF`cp&F\fpFho7$7#-Fat6$-Fiep6$&FfcnFho&FibpF^elF`cp&FgcnFho7#-F`u6$Fj
sFexFhapFfcnF\tFjsF^bp>Fcao7#-Fat6$7*Fcep7%FeepF^fpFecn7%F`fpFgfpFecnFhfpFhapFf
cnF\tFjsF^bp>FjtFdo?(FhnFdoFdoFhn31FjtF]ap/&FcaoFgbp&Fcao6$FjtF^p>FjtFb`o@%/Fjt
,&F]apFdoFdoFdo>8DFdo>F_hpFjs@$3F[`l/F_hpFjs>Fi[n-Fiy6$f*F`\lFhnF]zFhn@$/&Fcao6
$F_oFio&Fcao6$F_oF^p&FjzF^oFhnFhn6$F@Fi[n7#-F`u6#F_bp@$4Fial>F^jm.F^jm>%(_Stats
sG7*Fe\lFg\lFi\lF[]lF]]lF_]lF_hpFjs@%3F_[nFgal7$Fi[n4FablFi[nFhn6/FexFe\lFg\lFi
\lF[]lF]]lF_]lFa]lFhipF]apFcaoF`apF^jmFhnFhn
M7R0
I9Involutive/setupP_T_Listf*6*%"LG%'n_entrG%)rhs_entrG%'lmprocG%&B_OrdG%)tup_pe
rmG%$varG%'no_rhsG61%"iG%"jG%"kG%"lG%"nG%#lmG%#suG%$conG%"FG%"GG%"JG%%seqvG%(se
q_varG%-inv_tup_permG%(allmultG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~
All~rights~reserved.G6"C7>%&_nvarG-%%nopsG6#9*>8/7#-%$seqG6$-%$catG6$%#_xG8%/FQ
;"""FB>827#-%"$G6$%)infinityGFB>8,9$@$0FHFF>Fgn-%$mapG6$f*6#%"aGF?6$%)operatorG
%&arrowGF?-%%subsG6$7#-FK6$/&T(6#T%&T#F^p/F_pFSFhnF?F?6(F9FHF.8$F+FFFgn@$09)7#-
FY6#;FT9%>Fgn-F]o6$f*6#F.6#F/F?F?-%'subsopG6$/FT7#-FK6$&&Fhn6#FT6#&T$6#Fdp/Fdp;
FTT&FhnF?F?6&F*FgpF&F\qFgn>%*pnumber_tG-FD6#Fgn>%)P_T_ListG7">8.7#-FK6$F[s/FQF[
q?(FdpFTFTFfr%%trueGC&>8)-9'6#&Fgn6$FdpFT@$4%4Involutive/ratcoeffG>Ffs-Fdq6$/FT
7$-%#opG6#&FfsF\r&&Ffs6#""#F\rFfs>8&&Ffs6$FTF[u>F]s-Fdq6$/F]u7$-Fet6#&F]s6#F]u7
*&FgnF`rFgtFgt7#-FY6$""!FBFVFitF[s-%1Involutive/ecartG6&FjuFfsFH%(loc_varGF]s?(
F]uFTFTF\qFcsC%>FgnFgu>8(Fgr@$2F^vFgvC&>Fgn-%%sortG6$Fgn%2Involutive/pplex3G>Fg
n-Fdq6$/Fgv7*&Fgn6$FgvFT&Fgn6$FgvF[u&Fgn6$Fgv""$F[vFV&Fgn6$Fgv""'F[s-F`v6&Few-F
hs6#&FewF\rFHFbvFgn?(Fdp,&FgvFT!""FTFfxFTFcsC(>8*FV>8+&Fgn6$Fdp""%>FQFT?(F?FTFT
F?31FQFB/,&&Fgn6&,&FdpFTFTFTF[xFTFQFT&Fgn6&FdpF[xFTFQFfxF^vC%>Fix-Fdq6$/FQ&Fgn6
%Fgy""&FQFix@%2&Fix6#FQFen>F[y-Fdq6$/FQ,&FdzFTFTFTF[y>F[y-Fdq6$/FQF^vF[y>FQ,&FQ
FTFTFT@$FbyC$@%%5Involutive/janetlikeGC%>8'Fdy>Fix-Fdq6$/FQ,&Fg[lFTFfxFTFix>F[y
-Fdq6$/FQFg[lF[yC$>Fix-Fdq6$F^[lFix>F[y-Fdq6$/FQFTF[y>F[y-Fdq6$-FK6$/Fg[lF^v/Fg
[l;F`[lFBF[y>Fgn-Fdq6$/Fdp-Fdq6$/F^yF[y-Fdq6$/FazFixFjuFgn>Fjr7$-Fet6#Fjr-FetFh
r>Fjr-F]w6$Fjr9(>8--F]o6$f*F`oF?FboF?&Fhn6$FTFTF?F?F?Fjr>807#-FK6$/&FHF`r&FFF`r
/FdpFS@$Fjn>Fe^l-F]o6$f*F`oF?FboF?-Ffo6$FapFhnF?F?6$F:F\_lFe^l@$FfpC$>81-F]o6$f
*FaqFbqF?F?C$-%'memberG6%FhnF_r.FdpFdpF?F?6$F*FgpFhp>Fe^l-F]o6$f*FaqFbqF?F?7#-F
K6$&Fhn6#&FapF`rFarF?F?6&F;F_`lF&F\qFe^l@$/F\qFT>Fe^l-F]o6$f*F`oF?FboF?-Fet6#Fh
nF?F?F?Fe^l@$49+@%Fjn@%/9&FT>Fe^l7#-FK6$/&Fe^lF`r-Fet6#-Ffo6$F\_l&Fjr6%FdpFTF[u
/Fdp;FTFfr>Fe^l7#-FK6$/FhblF[clF_cl@%Fabl>Fe^l7#-FK6$/Fhbl-Fet6#F]clF_cl>Fe^l7#
-FK6$/FhblF]clF_cl@%Feal>%+PolTab_VarG7#-FK6$7%Fhbl-%5Involutive/pmult_varG6$&F
jr6$FdpFazFF-Ffo6$F\_l*&&Fjr6%FdpF^xFTFT&Fjr6%FdpF^xF[uFTF_cl>Fedl7#-FK6$7%Fhbl
Fjdl7$F_el&Fgp6#&Fjr6%FdpF[xF[uF_cl>%&P_HOMGF[sFe^lF?6'FfrFjrFedlFaflFBF?F?
M7R0
I;Involutive/restoreP_T_Listf*6#%%dataG6"6#%jnCopyright~(C)~2006-2010~by~Daniel
~Robertz.~All~rights~reserved.GF&@$09$7"C3>%)P_T_ListG&F+6#""">%*pnumber_tG&F+6
#""#>%+PolTab_VarG&F+6#""$>%&_nvarG&F+6#""%>%&_pvarG&F+6#""&>%(_vardegG&F+6#""'
>%(_tupdegG&F+6#""(>%,_entrblocksG&F+6#"")>%&P_HOMG&F+6#""*>%)_pno_rhsG&F+6#"#5
>%)_inv_denG&F+6#"#8>%0_pforce_collectG&F+6#"#6>%._pforce_evalaG&F+6#"#7>%+_JB_
factorG&F+6#"#9>%3_JB_factor_multvarG&F+6#"#:>%(_JB_varG&F+6#"#;>%*_JB_compaG&F
+6#"#<F&63F>FCFHFMF/F4F9FRFWFfnF`oFeoF[oFjoF_pFdpFipF&F&
M7R0
I5Involutive/SyzModulef*6#%"LG66%"aG%"iG%"jG%"lG%"rG%"vG%#L2G%"MG%"RG%"SG%%vars
G%'optstrG%(do_simpG%&m_ordG%*zero_listG%'n_entrG%)rhs_entrG%$varG%#GBG%'method
G6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C4@$0%7
Involutive/initializedG.%%trueG-%0Involutive/initGF=>8*-%6Involutive/proc_input
G6#9$@$4&FG6#""$-%&ERRORG6#%Fexpecting~L~without~right~hand~sides.G>83&FG6#""">
827#-%"$G6$""!FV>84-%%nopsG6#&FG6#""%>8(7#-Fhn6$FjnF\o>FG7#-%$seqG6$7$-%#opG6#&
&F`o6#8%FX-F_p6#-%'subsopG6$/FdpFYFdo/Fdp;FYF\o@%/FVFY>87FY>F`q""#>8/%%NULLG>81
Fbo>8,Feq>8+7">80Feq>86Feq@%332Fbq9#-%%typeG6$&9"FO%%listG4-Fgr6$Fir-F[s6#%(int
egerGC(>8.Fir>Fiq-FI6#&Fjr6#Fbq@$2FY&FiqFX-FR6#%Xexpecting~list~of~relations~fo
r~the~residue~class~ring.G@$4&FiqFO-FR6#%foright~hand~sides~for~relations~of~th
e~residue~class~ring~are~not~supported.G@%0&&&FiqFaoFXFX7#FjnC$>FG7$-F_p6#FG-F_
p6#-%$mapG6$f*6#F)F=6$%)operatorG%&arrowGF=-F[p6$-Fhp6$/T#&FK6$FYFY7$-Fhn6$FjnT
%-Fhn6$FjnT'/F`v;FYFfvF=F=6(F(FdpF6FVF7F\oFjt>FiqFhs>FiqFeq>FdoFboC%@$2FerFbq-F
R6#%Pexpecting~list~of~variables~as~second~argument.G>FdsFhs>FdoFP?(FdpFdoFYFer
FC@)5-Fgr6$&FjrFcpFas-Fgr6$F]xF[s>FgqF]x-Fgr6$F]x%'stringGC$>8'F]x?(8&FYFY-%'le
ngthG6#FfxFC@(/&Ffx6#FhxQ"NF=@%/FdqFeq>FdqF`y>Fdq-%$catG6$FdqF`y/F^yQ"SF=C$>F^r
Fiy@%Fby>FdqFiy>Fdq-Ffy6$FdqFiy0F^yQ!F=-FR6#%0invalid~option.G-Fgr6$F]x%)equati
onG@)/-F_p6$FYF]xQ$modF=C&>F[r-F_p6$FbqF]x>8)-%*substringG6$-%(convertG6$-%+ker
neloptsG6#%(versionGFcx;FY"")@$5-Fgr6$F[r%'matrixG330Fc[lQ)Maple~V,F=0Fc[lQ)Map
le~6.F=-Fgr6$F[r%'MatrixG>F[r-Fh[l6$F[r%)listlistG@$0F[rF\rC%>8--FI6#F[r@$4&Ff]
lFO-FR6#%gnexpecting~argument~to~option~"mod"~without~right~hand~sides.G>FG7$F_
u-F_p6#-Fdu6$f*6#F'F=FhuF=7$-F_p6#&FKFX-Fhn6$FjnF`vF=F=6$F7F\o&Ff]lFao/F[[lQ)Gr
oebnerF=C$@$4-Fgr6$F`[l%(booleanG-FR6#%Oexpecting~boolean~value~for~option~"Gro
ebner".G@$/F`[lFC>F`r/F`_lFC/F[[lQ'methodF=C$@$4-Fgr6$F`[lFcx-FR6#%enexpecting~
a~string~as~right~hand~side~for~option~"method".G@)/F`[lQ$POTF=>F`qFY/F`[lQ&blo
ckF=>F`qFbq/F`[lQ)SyzygiesF=>F`qFP-FR6#%2undefined~method.GFczFcz@)/F`qFYC&>85-
%5Involutive/proc_varsG6$FdsFV>FG-%4Involutive/InvBasisG6&FG&FialFXFbqF`r>Ff]l-
Fdu6$f*Ff^lF=FhuF=&FK6#;,&F`vFYFYFY,&F`vFYFfvFYF=F=6&F6FVF7F\o-%'selectG6$f*Ff^
lF=FhuF=-%&evalbG6#/&FK6#F[wF`vF=F=6&F5FenF6FVFG@%/Ff]lF\r@%/F\oFYF[u7#Feo@%555
0&FialFisF\r0&FialFO7$-Fhn6$FY-F^o6#FablFgn0&Fial6#""'7#FV0FgqFbq-F_bl6&Ff]lFds
FgqF`r@%Fjcl-Fdu6$F_pFf]lFf]l/F`qFbqC&>FialFjal>FG-F_bl6%FG7%-F_pFhdl7#-Fhn6#;F
YFV7#-Fhn6#;,&FVFYFYFY,&FVFYF\oFYF`r>Ff]l-Fdu6$f*Ff^lF=FhuF=FfblF=F=F[cl-F]cl6$
f*Ff^lF=FhuF=F`clF=F=FfclFG@%Fhcl@%FjclF[uF[dl@%5F^dl0FgqFboF_el@%FjclFbelFf]l/
F`qFPC&>FG-%2Involutive/AddRhsGFJ@%Fc]l-F_bl6'7$F_u-F_pFh]lFiqFdsFgqFdq-F_bl6'F
GFiqFdsFgqFdq>Ff]l-%4Involutive/SyzygiesG6&FGFdsFgqF^r@%Fhcl-F_bl6'FeoFdsFgqFdq
F`r-F_bl6'Ff]lFdsFgqFdqF`rFbalF=F=F=F=
M7R0
I<Involutive/SyzygyModuleFastf*6#%"LG6B%"aG%"cG%"iG%"jG%"lG%"rG%"vG%%fextG%'n_e
ntrG%)rhs_entrG%"FG%"MG%"RG%&m_ordG%$varG%%nvarG%$POTG%(var_ordG%'vt_degG%(deg_
ordG%)tup_permG%#GBG%#IBG%*zero_listG%(do_normG%+tracedenomG%+time_boundG%)entr
_posG%*quietmodeG%%voffG%*donotreadG%)dolaunchG6#%jnCopyright~(C)~2002-2010~by~
Daniel~Robertz.~All~rights~reserved.G6"CO@$0%7Involutive/initializedG.%%trueG-%
0Involutive/initGFI>8.-%6Involutive/proc_inputG6#9$>8,&FS6#"""@$4&FS6#""$-%&ERR
ORG6#%Fexpecting~L~without~right~hand~sides.G@$&FS6#""&-F]o6#%inSyzygyModuleFas
t~cannot~compute~in~algebraic~field~extensions.G>FS-%'expandG6#&FS6#""%>8--%%no
psG6#FS>8)7#-%"$G6$""!F_p>FS7#-%$seqG6$-%'subsopG6$/Ffn7$-%#opG6#&FS6$8&Ffn-Feq
6#-F`q6$/FiqFfnFdp&FS6#Fiq/Fiq;FfnF`p@%332""#9#-%%typeG6$&9"Fjn%%listG4-Fjr6$F\
s-F^s6#%(integerGC)>82F\s>80-FU6#&F]s6#Fgr@$2Ffn&FisFen-F]o6#%Xexpecting~list~o
f~relations~for~the~residue~class~ring.G@$4&FisFjn-F]o6#%foright~hand~sides~for
~relations~of~the~residue~class~ring~are~not~supported.G>Fis-Fio6#&FisF\p@%/&Fi
s6$FfnFfn7#Fip>Fis7"C$>Fis7#-F]q6$-F]q6$7$7$-Feq6#-F`q6$/Fiq&Fis6%8'FfnFfn7#-Fg
p6$FipFYFfpFbu/Fiq;FfnFY/Fev;Ffn-Fap6#Fis>FS7$-FeqFbp-FeqF^w>FdpF]pC&@$2FhrFgr-
F]o6#%Pexpecting~list~of~variables~as~second~argument.G>FgsF\t>FisFdu>FdpF[o>Fg
s-%5Involutive/proc_varsG6$FgsFY>85&FgsF]t>86&FgsFjn>87&FgsF\p>88&FgsFbo>8?&Fgs
6#""'>Fgs&FgsFen>83-Fap6#Fgs@$0-%&minusG6$-%'indetsGFbp<#-FeqFgy<"-F]o6#%Kno~pa
rameters~allowed~in~SyzygyModuleFast.G>8%%2Involutive/characG>8+Q!FI>8<FO@%/Fbx
Fdu>81F]p>F`[l7#-Fgp6$F]p-Fap6#Fbx>8>Fip>89%&falseG>8*-%(convertG6$-%+kernelopt
sG6#%(versionG%'stringG>8@-%&evalbG6#552Fip-%+searchtextG6$Q&APPLEFIF]\l/-%*sub
stringG6$-F_\l6$-%*interfaceG6#.Fd\lFe\l;Ffn"#GQ=Standard~Worksheet~InterfaceFI
/%5Involutive/InvoBasisG%>Involutive/InvBasisFastAssertG>8AFO>8=F[\l>8BF[\l>8CF
[\l?(FiqFdpFfnFhrFO@)5-Fjr6$&F]sF`rFds-Fjr6$F__lF^s>F`[lF__l-Fjr6$F__lFe\l@)/F_
_lQ&denomFI>Fe^lFO/F__lQ*donotreadFI>Fg^lFO/F__lQ'launchFI>Fi^lFOC$>8(F__l?(Fev
FfnFfn-%'lengthG6#Fa`lFO@&/&Fa`l6#FevQ"NFI>F\[lF[\l0Fh`lFjz-F]o6#%0invalid~opti
on.G-Fjr6$F__l%)equationG@5/-Feq6$FfnF__lQ%NameFIC$@$4-Fjr6$-Feq6$FgrF__lFe\l-F
]o6#%Fexpecting~a~string~for~option~"Name".G>FizF]bl/FealQ$modFIC%>F]\l-Fd]l6$F
]\l;Ffn"")>8/F]bl@%55-Fjr6$F\clF^s-Fjr6$F\cl%'matrixG330F]\lQ)Maple~V,FI0F]\lQ)
Maple~6.FI-Fjr6$F\cl%'MatrixG@$0F\clFduC)>F\cl-FU6#F\cl@$4&F\clFjn-F]o6#%gnexpe
cting~argument~to~option~"mod"~without~right~hand~sides.G@$0&F\clFenFY-F]o6#%bp
length~of~tuples~in~option~"mod"~does~not~match~length~of~tuples~in~the~generat
ing~set.G@$&F\clFboFdo@$0-F[z6$<#-Feq6#&F\cl6#""(F_zFazFbz>F\cl-%$mapG6$f*6#F'F
I6$%)operatorG%&arrowGFI-F`q6$/Ffn7$-Feq6#&FWFen-Fgp6$FipT#FWFIFI6$F0F_p&F\clF\
p>FS7$Faw-FeqFcdl-F]o6#%Wexpecting~list~or~matrix~as~argument~for~option~"mod".
G/FealQ%charFIC$@$4-Fjr6$F]bl%*nonnegintG-F]o6#%Qexpecting~0~or~a~prime~number~
for~option~"char".G>FfzF]bl/FealQ%timeFIC$@$F[hl-F]o6#%Sexpecting~time~bound~in
~seconds~for~option~"time".G>Fh[lF]bl/FealFj_lC$@$4-Fjr6$F]bl%(booleanG-F]o6#%P
expecting~boolean~value~for~option~"donotread".G>Fg^lF]bl/FealQ)GroebnerFIC$@$F
^il-F]o6#%Oexpecting~boolean~value~for~option~"Groebner".G>Fj[lF]bl/FealQ&quiet
FIC$@$F^il-F]o6#%Lexpecting~boolean~value~for~option~"quiet".G>Fg\lF]bl/FealQ(v
erboseFI@'/F]blQ#onFI>Fc^lF[\l/F]blQ$offFI>Fc^lFO-F]o6#%?expecting~string~"on"~
or~"off"G/FealFg_lC$@$F^il-F]o6#%Lexpecting~boolean~value~for~option~"denom".G>
Fe^lF]blF]alF]al@$5530F`[lFgr0F`[lF]p2Ffn-Fap6#F^y3/F`\mFfn0&F^yFenFY-%'RETURNG
6#-%5Involutive/SyzModuleG6#F]s@$0FbxFdu-F]o6#%hnUp~to~now,~only~degrevlex~is~i
mplemented~in~SyzygyModuleFast.G>Fa`l-%4Involutive/proc_ordG6*F`[lFgsFbxFexFhxF
gsF^yFO>84&Fa`lF\p>8;Ffv@$-%$hasG6$-F^fl6$f*FaflFIFbflFI3-Fjr6$F[gl-F^s6#-%(pol
ynomG6$%)anythingGF^gl-Fjr6$&FWF]tFd^mFIFI6$F5FgsFSF[\l-F]o6#-%$catG6%%Oexpecti
ng~a~list~of~(lists~of)~polynomials~in~G-F_\l6$FgsFe\l%4~as~first~argument.G@$0
F[y7#-Fgp6#Fjv>FS-F^fl6$f*6#F)6#F*FIFI-F`q6$/Ffn7$-F]q6$&F[gl6#&F^gl6#8$/F\am;F
fnT%-F]q6$&F[glF[am/F\am;,&F_amFfnFfnFfn-FapFjflFWFIFI6&F;F[yF/FYFS>8:-%7Involu
tive/cppInvBasisG65FSFgs,&FYFfnF_pFfnFOFfzFO&Fex6#;FfnFey7$-Feq6#&Fex6#;,&FeyFf
nFfnFfn,&FeyFfnFYFfnFfpFi_mFizFh[lF[\lFg\lFc^lF[\lFe^lQ)invbasisFIF[\lF[\l@$3Fe
^l-%)assignedG6#%*_JB_denomG>%)_inv_denGF_cm>Fiam-%'selectG6$f*FaflFIFbflFI-Fi\
l6#/&FW6#F^amF^glFIFI6&F>Fi]mF/FY&FiamFen@%/FiamFdu@%/F_pFfn>FiamFbu>Fiam7#FepC
'>Fiam-F[bm65-F^fl6$f*FaflFIFbflFI7$&FW6#;,&F^glFfnFfnFfn,&F^glFfnF_amFfnFbuFIF
I6&F/FYF0F_pFiamFgsF_pFOFfzFf]mF^bmFep7#-Fgp6#;FfnF_pFizFh[lF[\lFg\lFc^lFg^lFe^
lQboinvbasis,invbasislm,invbasisanc,multvar,factormodulebasis,compatibilityFIF[
\lFi^l@$5Fg^lFi^l-Fg\m6#-Feq6#Fiam@$F[cm>Facm7$-Feq6#Facm-FeqF^cm@$Fj[lC$>Fa`l-
Fdcm6$f*F``mFIFbflFI/&&&F^glF]tFVFen&&&&F^glFjnFVFenF]tFIFI6$F=Fiam7#-Fgp6#;Ffn
-Fap6#F]dm>Fiam-F^fl6$f*F``mFIFbflFI7#-F]q6$&FW6#&F^gl6#F_am/F_am;Ffn-Fap6#F^gl
FIFI6&F+Fa`lF*FevFiam@%F\[lC$@$Fe^l>Facm7$Fafm-Feq6#-F^fl6$f*F``mFIFbflFI@$0&F[
glFenFfnFeimFIFIFI&FiamFjn@%%4Involutive/ratcoeffG@%/FfzFip>Fiam7#-F]q6$-Fio6#*
&&F]dmF`rFfn&&&FfimF`rFenFen!""/FiqFfgm>Fiam7#-F]q6$-Fio6#*&-%$modG6$*$FcjmFfjm
FfzFfnFbjmFfnFgjm>Fiam-%$zipG6%f*6$F)F*FIFbflFI@%-Fjr6$&&9%FenFen%'negintG-Fio6
#,$FWFfjmFWFIFIFIF]dmFfim>FiamF]dm@$4Fe^l>Facm.FacmFiamFIFbfmFIFI
M7R0
I1Involutive/PolHPf*6"60%"aG%"bG%"dG%"iG%"nG%"mG%"pG%"sG%%termG%&n_mulG%/args_w
ithout_sG%,given_basisG%$varG%2tmp_P_T_List_dataG6#%\pCopyright~(C)~2000-2010~b
y~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.GF$C,>8+.F8>8.%%NULLG@%
19#"""C$>8/%&falseG@$/F?F@@%3-%%typeG6$&9"6#F@%)equationG/-%#opG6$F@FLQ$varF$>F
8-FR6$""#FL>F8FLC$>FC%%trueG?(8'F@F@F?Ffn@%3-FJ6$&FM6#FhnFO/-FR6$F@F]oFT>F8-FR6
$FXF]o>F;6$F;F]o@%FC>6$8180-%7Involutive/setup_basisG6#F;@$4-%)assignedG6#%)P_T
_ListG-%&ERRORG6#%Umissing~involutive~basis;~run~InvolutiveBasis~first.G>8)-%%n
opsG6#&Fdp6%F@F@F@>8(-F\q6#&Fdp6%F@""$F@>8,*&FjpF@-%)binomialG6$,&FaqF@F8F@F8F@
@$0&Fdp6%F@""'F@""!@%%5Involutive/janetlikeG?&8$FdpFfnC$>8--%*numboccurG6$&Fgr6
#""&%)infinityG@%/FjrFaq>Fhq,&FhqF@-F[r6$,(F8F@-%(convertG6$&Fgr6$FfqF@%"+G!""F
jrF@FjrF_tC(>8&Fis>8%-%%subsG6$/FasFcrF^s>8*7#-%"$G6$FcrFaq>Fhq,&FhqF@-F[r6$,(F
8F@FbtF_tFjrF@FjrF_t>Fjt-%8Involutive/nextmonomialG6$FjtFdt?(F$F@F@F$0FjtF[uC$>
Fhq,&FhqF@-F[r6$,*F8F@FbtF_t-Fjs6$FjtF^tF_tFjrF@FjrF_t>FjtFeu?&FgrFdpFfnC$>FjrF
[s>FhqFes@$FC-%;Involutive/restoreP_T_ListG6#Fjo-%'expandG6#FhqF$F$F$F$
M7R0
I<Involutive/PolHilbertSeriesf*6"66%"iG%"jG%"lG%"nG%"qG%"sG%"AG%"BG%"CG%"FG%"HG
%"TG%&R_q_1G%#HMG%$HM1G%$HM2G%,given_basisG%/args_without_sG%$varG%2tmp_P_T_Lis
t_dataG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~ri
ghts~reserved.GF$C3>8).F>>85%%NULLG@%19#"""C$>84%&falseG@$/FEFFC$@%3-%%typeG6$&
9"6#FF%)equationG/-%#opG6$FFFSQ$varF$>F>-FY6$""#FS>F>FS@$4-FQ6$F>%%nameG-%&ERRO
RG6#%_oexpecting~an~indeterminate~for~the~Hilbert~series~as~first~argument.GC$>
FI%%trueG?(8$FFFFFEFfo@%3-FQ6$&FT6#FhoFV/-FY6$FFF]pFenC$>F>-FY6$FinF]p@$F\o-Fao
6#%Sexpecting~an~indeterminate~for~the~Hilbert~series.G>FA6$FAF]p@%FI>6$8786-%7
Involutive/setup_basisG6#FAC$@$333/%5Involutive/InvoBasisG%>Involutive/InvBasis
FastAssertG-%)assignedG6#%+_JB_factorG-F]r6#%3_JB_factor_multvarG-F]r6#%(_JB_va
rGC%>8(-%$seqG6$/&FerF^pF>/Fho;FF-%%nopsGFdr>8.-%'expandG6#-%$addG6$*&-%%subsG6
$Fhr&F_rF^pFF),&FFFFF>!""-%*numboccurG6$&FbrF^pFFFat/Fho;FF-FasF^r@%-FQ6$Fcs%%l
istG-%'RETURNG6#-%(convertG6$Fcs%"+G-F^u6#Fcs@$4-F]r6#%)P_T_ListG-Fao6#%Umissin
g~involutive~basis;~run~InvolutiveBasis~first.G>8'-Fas6#&Fju6%FF""$FF>Fhr-%4Inv
olutive/pmax_degGFiu>Fcs-%1Involutive/PolHPG6#F>>80-%1Involutive/PolHFG6#,&FhrF
FFatFF>8*-%'matrixG6#-%$mapG6$f*6#%"aGF$6$%)operatorG%&arrowGF$-Fhw6$f*6#%"bGF$
F]xF$-%)binomialG6$,(T$FF9$FFT%FatFjxF$F$6&F\xFjxF*F[y7#-%"$G6#;FFT#F$F$6&F)F_v
F*Fhr7#-F_y6#;Fhr,(FhrFFF_vFFFatFF>8+-%'vectorG6#-Fhw6$f*F[xF$F]xF$,&-%%evalG6$
Fby/F[yFjxFFT'FatF$F$6(F0FcsF+F>F2F]wFdy>8,-&%'linalgG6#%)linsolveG6$FcwFjy>Fiz
-%&evalmG6#Fiz>82-Fhs6$*&-%>Involutive/PolHilbertFunctionGF^pFF)F>FhoFF/Fho;""!
Faw>83*&)F>FhrFF-Fhs6$*&&Fiz6#8%FF)F`tFh\lFat/Fh\l;FFF_vFF>81-Fau6$7$Fe[lF`\lFc
u@$FI-%;Involutive/restoreP_T_ListG6#F_qF]]lF$F$F$F$
M7R0
I>Involutive/PolCartanCharacterf*6"60%"iG%"qG%"nG%"sG%"AG%"BG%"CG%"HG%&R_q_1G%$
indG%,given_basisG%1args_without_indG%$varG%2tmp_P_T_List_dataG6#%\pCopyright~(
C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.GF$C0>8-%
%NULLG>8/F9@%19#"""C$>8.%&falseG@$/F>F?@%3-%%typeG6$&9"6#F?%)equationG/-%#opG6$
F?FKQ&indexF$>F8-FQ6$""#FK>F8FKC$>FB%%trueG?(8$F?F?F>Fen@%3-FI6$&FL6#FgnFN/-FQ6
$F?F\oFS>F8-FQ6$FWF\o>F;6$F;F\o@%FB>6$8180-%7Involutive/setup_basisG6#F;@$4-%)a
ssignedG6#%)P_T_ListG-%&ERRORG6#%Umissing~involutive~basis;~run~InvolutiveBasis
~first.G>8%-%4Involutive/pmax_degGFbp>8&-%%nopsG6#&Fcp6%F?""$F?>8+-%1Involutive
/PolHPG6#8'>8,-%1Involutive/PolHFG6#,&FipF?!""F?>8(-%'matrixG6#-%$mapG6$f*6#%"a
GF$6$%)operatorG%&arrowGF$-Fgr6$f*6#%"bGF$F\sF$-%)binomialG6$,(T$F?9$F?T%F`rFis
F$F$6&F[sFisF'Fjs7#-%"$G6#;F?T#F$F$6&F(F]qF'Fip7#-F^t6#;Fip,(FipF?F]qF?F`rF?>8)
-%'vectorG6#-Fgr6$f*FjrF$F\sF$,&-%%evalG6$Fat/FjsFisF?T'F`rF$F$6(F-FeqF)FiqF.F[
rFct>8*-&%'linalgG6#%)linsolveG6$FbrFit>Fhu-%&evalmG6#Fhu@$FB-%;Involutive/rest
oreP_T_ListG6#Fio@)30F8F9-FI6$F8%'stringG?(FgnF?F?F]qFen-%'printfG6&Q3alpha(%d,
%d)~=~%a|+F$FipFgn&FhuF]o3Fiv-FI6$F8%(integerGC$@$2F]qF8-Fep6&%.index~invalidGF
8%6~greatest~valid~indexGF]q&Fhu6#F83Fiv-FI6$F8%%listG-Fgr6$f*6#F&F$F\sF$&Fat6#
FisF$F$6$F,FhuF8C$-F_w6$Q=Cartan~Character~for~q~=~%d|+F$Fip-%(convertG6$FhuFcx
F$F$F$F$
M7R0
I8Involutive/PolEulerCharf*6$%"LG'%%varsG%%listG6%%"dG%"iG%"nG6#%jnCopyright~(C
)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C%>8$-%<Involutive/PolRes
olutionDimG6$9$9%>8&-%%nopsG6#F2-%$addG6$*&)!"",&8%"""FBFEFE&F26#,(F9FEFDFBFEFE
FE/FD;FEF9F/F/F/F/
M7R0
I5Involutive/PolRepresf*6#%"mG6A%"aG%"iG%"jG%"lG%"pG%"rG%"FG%#FBG%"MG%&m_ordG%.
force_collectG%,force_evalaG%%varsG%$varG%(var_ordG%'vt_degG%(deg_ordG%)tup_per
mG%%seqvG%'lmprocG%(loc_varG%'n_entrG%,as_listlistG%)entr_posG%+trans_elemG%,gi
ven_basisG%2tmp_P_T_List_dataG%%multG%$cmpG%)var2seqvG%)seqv2varG6#%jnCopyright
~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"CC@$0%7Involutive/init
ializedG.%%trueG-%0Involutive/initGFH@$4%4Involutive/ratcoeffG-%&ERRORG6#%fnnot
~implemented~yet~for~involutive~bases~over~the~integers.G@%33332""$9#4-%%typeG6
$&9"6#""%%'stringG4-F\o6$F^o%(integerG54-F\o6$F^o-%%listG6#Ffo/F^o7#"""54-F\o6$
F^o-F\p6#F[p-%$hasG6$F^o""!C%>8=FN>8+F^o>8&""&C%>F]q%&falseG>F_q&F_o6#""#>FaqFh
n@$5/F_q7"/F_qFjp-FU6#%Gfactor~module~basis~must~not~be~empty.G>8-%%NULLG>8.Feq
>8/Feq>8:Feq?(8%FaqF`pFinFN@)55-F\o6$&F_o6#F]sFfo-F\o6$FcsF[p-F\o6$FcsFep>FdrFc
s/FcsQ"SFH>FirFN/FcsQ)listlistFH>F[sFN-FU6#%Omissing~factor~module~basis~or~inv
alid~option.G@%F]qC*>8*-%6Involutive/proc_inputG6#Fgq>89&Fft6#F`p>Fir5Fir&Fft6#
Fbq>8<&Fft6#""(>6$8>81-%7Involutive/setup_basisG6%Fgq&F_o6#FhnFdr>Fgr5Fgr-%&eva
lbG6#0-%&minusG6$<#-%#opG6#Fcu<#-F[w6#Fju<">80F^v>Fbw-%5Involutive/proc_varsG6$
FbwF[uC(@$5543-%)assignedG6#%)P_T_ListG-F\o6$F`xF\p/F`xF^r4-F\o6$&F`xF]uF\p-FU6
#%Umissing~involutive~basis;~run~InvolutiveBasis~first.G>F[u-%%nopsG6#&F`x6%F`p
F`pF`p>Fbw%&_pvarG>FjuFbw>Fgr5Fgr%0_pforce_collectG>Fir5Fir%._pforce_evalaG>82&
FbwFhq>83&FbwF_v>84&FbwF`o>85&FbwFau>8;&Fbw6#""'>Fju&FbwF]u>%&_nvarG-F]yF_w>867
#-%$seqG6$-%$catG6$%#_xGF]s/F]s;F`pF^[l>8A7#-Fd[l6$/&FjuFds&Fa[lFdsFj[l>8B7#-Fd
[l6$/Fc\lFb\lFj[l>F[z-%%subsG6$F]\lF[z@$45-F\o6$9$-%(polynomG6$%)anythingGFju-F
\o6$Fc]l%*procedureG-FU6#-Fg[l6%%9expecting~polynomial~in~G-%(convertG6$FjuFbo%
4~as~first~argument.G@$/FdrFer@%/F[zF^r>FdrFao>Fdr7#-%"$G6$Fao-F]y6#F[z>8'-%4In
volutive/proc_ordG6*FdrFjuF[zF^zFazFa[lFgz4Fir>8@&Fa_lFau>88&Fa_lFiz@'4-F\o6$F_
qF\pC%@%-F\o6$F_q%"+G>Fft-%%sortG6$-%$mapG6$f*6#F(FH6$%)operatorG%&arrowGFH7$-%
&numerG6#Fc]l-%'indetsG6#-%&denomGFdalFHFHFH-Fa^l6$-F\]l6$F]\lF_qF\pf*6$F(F)FHF
^alFH-T#6$&Fc]lF]u&9%F]uFHFH6$FCFg_l>Fft7#-F\]l6$F]\l7$-Fcal6#F_q-Ffal6#-FialF]
cl>8?-Fj`l6$f*F]alFHF^alFH-Fj`l6$f*6#F)FHF^alFH@%-Fhp6$&T$FhqFc]l%)infinityGFjp
FHFH6$F(Fc]lFablFHFH6$F9Fa[lFft>Fft-Fj`l6$f*F]alFHF^alFH@%/-F[w6$F`pFcbl!"",$Fc
blFjdlFcblFHFHFHFft45-F\o6$&F_qF]uF\p-F\o6$F`elFe]lC%>FftF^r>FbclF^r?(8$F`pF`p-
F]yF]clFNC%@%-F\o6$&F_q6#FgelFd`l>Fft7$-F[w6#Fft-Fg`l6$-Fj`l6$f*F]alFHF^alFHFaa
lFHFHFH-Fa^l6$-F\]l6$F]\lF]flF\pf*F_blFHF^alFHF`blFHFHFfbl>Fft7$Fafl7#-F\]l6$F]
\l7$-Fcal6#F]fl-Ffal6#-FialFdgl>Fbcl7$-F[w6#Fbcl-Fj`l6$f*F]alFHF^alFH-Fj`l6$f*F
iclFHF^alFH@%F[dlF_dlFjpFHFHF`dlFablFHFHFadl&Fft6#Fjdl>Fft-%'subsopG6$/Fjdl-Fj`
l6$f*F]alFHF^alFH@%FgdlF[elFcblFHFHFHFchlFftC$>FbclFer>FftF\bl@$45Fh]l-Fhp6$Fc]
lFjuC$@$F]q-%;Involutive/restoreP_T_ListG6#Fiu-%'RETURNG6#-%6Involutive/matrixt
ypeG6%FhelFhelf*F_blFHFHFH@%/Fc]lFeblF^dlFjpFHFH6$F%Fc]l@$/&F^z6#;,&F^[lF`pF`pF
`p,&F^[lF`pF[uF`p7#-F\_l6$FjpF[u>F^zFjp>87-%&parseG6#-Fg[l6/Q@g->`Involutive/po
l_lead_mon`(g,FH-Fa^l6$F[uFboQ",FH-Fa^l6$Fa[lFboFj[m-Fa^l6$&Fa_lF]uFboFj[m-Fa^l
6$FgzFboFj[m-Fa^l6$Fh_lFboFj[m-Fa^l6$F^zFboQ")FH>8,F^r@%4Fh]lC$>8(-F\]l6$F]\lFc
]l@%/F[uF`p?(F]sF`pF`p-F]yFbflFNC%@)0Fj_lF^r>8)&&&-%8Involutive/invred_localG6)
7$7#-%'expandG6#*&F]]mF`p&FftFdsF`p7#FjpF`xFNFeqFa[lFa[mFj_lF]uF]uF]uFir>Fh]m&&
&-%8Involutive/invred_evalaG6)7$7#-%(collectG6%Fd^mFa[l%,distributedGFf^mF`xFNF
eqFa[lFa[mFj_lF]uF]uF]uFgr>Fh]m&&&-%:Involutive/invred_collectGF]_mF]uF]uF]u>Fh
]m&&&-%2Involutive/invredGF^^mF]uF]uF]u@%/FbclFer>Fh\m7$-F[w6#Fh\m-%:Involutive
/monomcoefflistG6%Fh]mFa[lFft>Fh\m7$Fd`m-F\]l6$Fe\l-%>Involutive/monomcoefflist
multG6&Fh]mFa[lFftFbcl@$4-F\o6$&Fh\mFdhlF\p-FU6#%hqthe~given~vector~space~basis
~is~not~the~factor~module~basis~for~the~residue~class~module~under~consideratio
n.GC%>Fa_l7#-Fd[l6$,&F[uF`pF]sFjdl/F]s;Fjp,&F[uF`pFjdlF`p@%Fa`mC%>F_q7#-F\_l6$F
^rF[u>FaqF[u?(F]sF`pF`pFc]mFNC%?(FHF`pF`pFH31F`pFaq/&Fe^m6#FaqFjp>Faq,&FaqF`pFj
dlF`p@$2FaqF`p-FU6#%_oexpecting~factor~module~basis~to~be~the~result~of~FactorM
oduleBasis.G>F_q-Fghl6$/Faq7$-F[w6#&F_qF_cmF^cmF_qC$>F_qFft>Fft7#-Fd[l6$-F[w6#-
Fj`l6$f*FiclFHF^alFH-Fghl6$/&Fabl6#T%Fc]l7#-F\_l6$FjpT'FHFH6(F*Fa_lF(F]sF<F[u&F
ft6#&Fa_lFds/F]s;F`pFc]m?(F]sF`pF`pFc]mFNC$@)Ff]m>Fh]m&&&-F]^m6)7$-Fj`l6$f*6#F'
FHF^alFH*&FablF`pFc]lF`pFHFH6$F+F]]mFe^mFf^mF`xFNFeqFa[lFa[mFj_lF]uF]uF]uFir>Fh
]m&&-F\_m6)7$-Fa_m6%-Fj`l6$f*FgfmFHF^alFHFhfmFHFHFifmFe^mFa[lFc_mFf^mF`xFNFeqFa
[lFa[mFj_lF]uF]uFgr>Fh]m&&-Fi_m6)7$-Fa_m6%-Fj`l6$f*FgfmFHF^alFHFhfmFHFHFifmFe^m
Fa[lFc_mFf^mF`xFNFeqFa[lFa[mFj_lF]uF]u>Fh]m&&-F_`m6)7$Fa^mFf^mF`xFNFeqFa[lFa[mF
j_lF]uF]u@%Fa`mC%>Fh]m-%8Involutive/tupcoefflistG6&Fh]mFa[lF_qFa_l@$4-F\o6$Fh]m
-F\p6#F\p-FU6#%fqthe~given~vector~space~basis~is~not~the~factor~module~basis~fo
r~the~residue~class~ring~under~consideration.G>Fh\m7$Fd`m-Fj`l6$F[wFh]mC%>Fh]m-
%<Involutive/tupcoefflistmultG6'Fh]mFa[lF_qFbclFa_l@$F]imFeam>Fh\m7$Fd`m-F\]l6$
Fe\lFgimC$@$0FbclFer-FU6#%apnot~supported~yet~for~infinite~factor~module~basis~
when~first~argument~is~a~procedure.G@%Fa]m?(F]sF`pF`pFc]mFNC%@)Ff]m>Fh]m&&&-F]^
m6)7$7#-Fb^m6#-F\]l6$F]\l-Fc]l6#-F\]l6$Fe\lFe^mFf^mF`xFNFeqFa[lFa[mFj_lF]uF]uF]
uFir>Fh]m&&&-F\_m6)7$7#-Fa_m6%Fg[nFa[lFc_mFf^mF`xFNFeqFa[lFa[mFj_lF]uF]uF]uFgr>
Fh]m&&&-Fi_mFb\nF]uF]uF]u>Fh]m&&&-F_`mFb[nF]uF]uF]u@%Fa`m>Fh\mFc`m>Fh\mFj`m@$Fa
amFeamC%>Fa_lFjam@%Fa`mC%>F_qFdbm>FaqF[u?(F]sF`pF`pFc]mFNC%?(FHF`pF`pFHF[cm>Faq
Facm@$FccmFdcm>F_qFhcmC$>F_qFft>Fft7#-Fd[l6$-F[w6#-Fj`l6$f*FiclFHF^alFHFjdmFHFH
FdemFeemFhem?(F]sF`pF`pFc]mFNC$@)Ff]m>Fh]m&&&-F]^m6)7$-F\]l6$F]\l-Fj`l6$f*FgfmF
HF^alFH-F^dlFdalFHFHFdjlF[\nFf^mF`xFNFeqFa[lFa[mFj_lF]uF]uF]uFir>Fh]m&&-F\_m6)7
$-Fa_m6%-F\]l6$F]\l-Fj`l6$f*FgfmFHF^alFHF[`nFHFHFdjlF[\nFa[lFc_mFf^mF`xFNFeqFa[
lFa[mFj_lF]uF]uFgr>Fh]m&&-Fi_m6)7$-Fa_m6%-F\]l6$F]\l-Fj`l6$f*FgfmFHF^alFHF[`nFH
FHFdjlF[\nFa[lFc_mFf^mF`xFNFeqFa[lFa[mFj_lF]uF]u>Fh]m&&-F_`m6)7$-F\]l6$F]\l-Fj`
l6$f*FgfmFHF^alFH-Fb^m6#F[`nFHFHFdjlF[\nFf^mF`xFNFeqFa[lFa[mFj_lF]uF]u@%Fa`mC%>
Fh]mFihm@$F]imFbim>Fh\mFfimC%>Fh]mF[jm@$F]imFeam>Fh\mF`jm@'F[s7#-Fd[l6$-Fj`l6$f
*6#F*FHF^alFH-F[w6$FablFc]lFHFH6$F(F]sFh\mFhem/F_jl%'MatrixG-&%.LinearAlgebraG6
#%*TransposeG6#-FhcnFe`m-&%'linalgG6#%*transposeG6#-%&evalmGFe`mFH6#F^[lFHFH
M7R0
I9Involutive/PolKernelFastf*6&%#_MG%#_AG%#_NG'%$varG%%listG6)%"AG%"LG%"MG%"NG%"
SG%$kerG%%critG6#%^pCopyright~(C)~2003-2010~by~Mohamed~Barakat~and~Daniel~Rober
tz.~All~rights~reserved.G6"C/>8&-%$mapG6$f*6#%"aGF56$%)operatorG%&arrowGF5&9$6#
"""F5F5F5&-%6Involutive/proc_inputG6#FC6#""%>8$-F:6$f*F=F5F?F5FBF5F5F5&-FH6#9%F
J>8'-F:6$f*F=F5F?F5FBF5F5F5&-FH6#9&FJ>8%7$-%#opG6#-%2Involutive/AddRhsG6#FM-F\o
6#FV>8*%3Involutive/invcritG>Feo7"-%>Involutive/InvBasisFastAssertG6$Fin9'>FeoF
do>8(%&P_HOMG@$/F^pFgo>F^p7#7#-%"$G6$""!-%%nopsGF`o>8)-%<Involutive/PolSubFacto
rFastG6%F^pF8F[p@$32FK9#-%%typeG6$&9"6#""&%'symbolG@%/%6Involutive/matrixtypeG%
'MatrixG-%'assignG6$Fgq-%(convertG6$-%5Involutive/jetsmkmatG6#-F:6$f*F=F5F?F5-%
$rhsGFIF5F5F5&F\qFDF_r-Far6$Fgq-Fgr6#-F:6$f*F=F5F?F5F\sF5F5F5F^sF\qF56#FeoF5F5
M7R0
IDhomalg/Involutive/PolNormalizeInputf*6#%"MG6"6#%^pCopyright~(C)~2004-2010~by~
Daniel~Robertz~and~Mohamed~Barakat.~All~rights~reserved.GF&-%$mapG6$f*6#%"aGF&6
$%)operatorG%&arrowGF&&9$6#"""F&F&F&&-%6Involutive/proc_inputG6#F36#""%F&F&F&F&
M7R0
I:homalg/Involutive/BasisQSf*6&%"AG%$varG%"UG%"VG6$%"vG%"PG6#%jnCopyright~(C)~2
006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"@%4-%)assignedG6#%7QuillenSu
slin/HorrocksGC$@&/9#""$-%'assignG6$9&-&%'linalgG6#%%diagG6#-%"$G6$"""-%%nopsG6
#9$2F9F8C$F:-F;6$9'-F?6#-FE6$FG-FI6#&FK6#FG-%%copyGFJC$>8$-%5homalg/NormalizeRi
ngG6$9%%+InvolutiveG@%4-%7QuillenSuslin/IsUnimodG6%-%(convertG6$FK%'MatrixG&Fgn
FX%4Involutive/ratcoeffGC$@&F7F:FLC$F:FNFYC%>8%-%:QuillenSuslin/QSAlgorithmGFao
@&F7F:FLC$F:-F;6$FPF]p-%(collectG6%-Fco6$-%&evalmG6#-%#&*G6$FKF]p%)listlistGFfo
%,distributedGF.F.F.F.
M7R0
IChomalg/Involutive/PolSyzygiesLocalf*6%%#M1G%#M2G'%$varG%%listG6$%"vG%"LG6#%ep
Copyright~(C)~2004-2010~by~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~right
s~reserved.G6"C&>8$-%5homalg/NormalizeRingG6$9&%+InvolutiveG>8%-%2Involutive/Ad
dRhsG6#9$@%/&F26#""#7"@%4-%%typeG6$9%F)C$-%;Involutive/InvolutiveBasisG6%7$-%#o
pG6#F9-FP6#-%(convertG6$FI%)listlistG&F26#"""!"%-%4Involutive/SyzygiesGFMC$-FL6
%7$FO-FP6#FIFXFen-FgnFjn@%FEC$-FL6&FNF@FXFenFfnC$-FL6&F[oF@FXFenF^o@%55/%"%GFC/
Fjo7#""!33-FG6$FjoFW/-%%nopsG6#FjoFZ/Fjo7#7#-%"$G6$F]p-Fdp6#&FjoFYFC-%Dhomalg/I
nvolutive/PolNormalizeInputGFepF/F/F/F/
M7R0
I+Involutive=6"%&falseGE\[l[q%9PolWeightedHilbertSeriesGf*F$F$6#%jnCopyright~(C
)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C$30%7Involutive/initiali
zedG.%%trueG0-%0Involutive/initGF$""!-%DInvolutive/PolWeightedHilbertSeriesG6#9
"F$F$F$%5InvolutivePreprocessGf*F$F$6#%jnCopyright~(C)~2005-2010~by~Daniel~Robe
rtz.~All~rights~reserved.GF$C$F,-%@Involutive/InvolutivePreprocessGF7F$F$F$%2In
volutiveOptionsGf*F$F$F)F$C$F,-%=Involutive/InvolutiveOptionsGF7F$F$F$%/PolLeft
InverseGf*F$F$6#%jnCopyright~(C)~2003-2010~by~Daniel~Robertz.~All~rights~reserv
ed.GF$C$F,-%:Involutive/PolLeftInverseGF7F$F$F$%*PolDerModGf*F$F$6#%[oCopyright
~(C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F,-%5Involutive/Pol
DerModGF7F$F$F$%'PolDetGf*F$F$6#%[oCopyright~(C)~2007-2010~by~Moritz~Schroeer.~
All~rights~reserved.GF$C$F,-%2Involutive/PolDetGF7F$F$F$%,PolCokernelGf*F$F$FNF
$C$F,-%7Involutive/PolCokernelGF7F$F$F$%0AugmentInvBasisGf*F$F$6#%jnCopyright~(
C)~2008-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%;Involutive/Augmen
tInvBasisGF7F$F$F$%&PolHPGf*F$F$6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~a
nd~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%1Involutive/PolHPGF7F$F$F$%4Pol
IntersectionGINVGf*F$F$6#%fqCopyright~(C)~2003-2010~by~Mohamed~Barakat,~Daniel~
Robertz~and~Markus~Lange-Hegermann.~All~rights~reserved.GF$C$F,-%?Involutive/Po
lIntersectionGINVGF7F$F$F$%(PolExt1Gf*F$F$6#%^pCopyright~(C)~2000-2010~by~Moham
ed~Barakat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%3Involutive/PolExt1
GF7F$F$F$%7SubmoduleHilbertSeriesGf*F$F$6#%jnCopyright~(C)~2007-2010~by~Daniel~
Robertz.~All~rights~reserved.GF$C$F,-%BInvolutive/SubmoduleHilbertSeriesGF7F$F$
F$%,LocalReduceGf*F$F$6#%boCopyright~(C)~2007-2010~by~Markus~Lange-Hegermann.~A
ll~rights~reserved.GF$C$F,-%7Involutive/LocalReduceGF7F$F$F$%3SubmoduleDimensio
nGf*F$F$FgpF$C$F,-%>Involutive/SubmoduleDimensionGF7F$F$F$%'PolSumGf*F$F$FNF$C$
F,-%2Involutive/PolSumGF7F$F$F$%.PolResolutionGf*F$F$F)F$C$F,-%9Involutive/PolR
esolutionGF7F$F$F$%4InvolutiveBasisFastGf*F$F$F)F$C$F,-%?Involutive/InvolutiveB
asisFastGF7F$F$F$%+PolKaehlerGf*F$F$FNF$C$F,-%6Involutive/PolKaehlerGF7F$F$F$%-
PolKernelEmbGf*F$F$FNF$C$F,-%8Involutive/PolKernelEmbGF7F$F$F$%*PolHomHomGf*F$F
$FNF$C$F,-%5Involutive/PolHomHomGF7F$F$F$%-PolFactorizeGf*F$F$6#%\pCopyright~(C
)~2006-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%8
Involutive/PolFactorizeGF7F$F$F$%)PolSyzOpGf*F$F$FNF$C$F,-%4Involutive/PolSyzOp
GF7F$F$F$%1SyzygyModuleFastGf*F$F$6#%jnCopyright~(C)~2002-2010~by~Daniel~Robert
z.~All~rights~reserved.GF$C$F,-%<Involutive/SyzygyModuleFastGF7F$F$F$%/AssertIn
vBasisGf*F$F$F)F$C$F,-%:Involutive/AssertInvBasisGF7F$F$F$%.PolKernelFastGf*F$F
$6#%^pCopyright~(C)~2003-2010~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights
~reserved.GF$C$F,-%9Involutive/PolKernelFastGF7F$F$F$%+PolTorsionGf*F$F$F`uF$C$
F,-%6Involutive/PolTorsionGF7F$F$F$%,AnnihilatorGf*F$F$F)F$C$F,-%7Involutive/An
nihilatorGF7F$F$F$%2PolMinPolyRatFuncGf*F$F$6#%jnCopyright~(C)~2006-2010~by~Dan
iel~Robertz.~All~rights~reserved.GF$C$F,-%=Involutive/PolMinPolyRatFuncGF7F$F$F
$%&PolHFGf*F$F$FboF$C$F,-%1Involutive/PolHFGF7F$F$F$%;SubmoduleHilbertPolynomia
lGf*F$F$FgpF$C$F,-%FInvolutive/SubmoduleHilbertPolynomialGF7F$F$F$%0IsPommaretB
asisGf*F$F$FgpF$C$F,-%;Involutive/IsPommaretBasisGF7F$F$F$%2GroebnerBasisFastGf
*F$F$F)F$C$F,-%=Involutive/GroebnerBasisFastGF7F$F$F$%-PolDimensionGf*F$F$FboF$
C$F,-%8Involutive/PolDimensionGF7F$F$F$%0LeadingMonomialGf*F$F$F)F$C$F,-%;Invol
utive/LeadingMonomialGF7F$F$F$%*PolRepresGf*F$F$F)F$C$F,-%5Involutive/PolRepres
GF7F$F$F$%1PolHilbertSeriesGf*F$F$FboF$C$F,-%<Involutive/PolHilbertSeriesGF7F$F
$F$%2FactorModuleBasisGf*F$F$F)F$C$F,-%=Involutive/FactorModuleBasisGF7F$F$F$%-
PolSubFactorGf*F$F$F`uF$C$F,-%8Involutive/PolSubFactorGF7F$F$F$%+JanetGraphGf*F
$F$F;F$C$F,-%6Involutive/JanetGraphGF7F$F$F$%0PolBettiDiagramGf*F$F$FgpF$C$F,-%
;Involutive/PolBettiDiagramGF7F$F$F$%$HasGf*F$F$F)F$C$F,-%/Involutive/HasGF7F$F
$F$%'RepresGf*F$F$FdtF$C$F,-%2Involutive/RepresGF7F$F$F$%1PolResolutionDimGf*F$
F$F)F$C$F,-%<Involutive/PolResolutionDimGF7F$F$F$%0InvolutiveBasisGf*F$F$F)F$C$
F,-%;Involutive/InvolutiveBasisGF7F$F$F$%-SyzygyModuleGf*F$F$FdtF$C$F,-%8Involu
tive/SyzygyModuleGF7F$F$F$%0PolRightInverseGf*F$F$FGF$C$F,-%;Involutive/PolRigh
tInverseGF7F$F$F$%5PolShorterResolutionGf*F$F$6#%\pCopyright~(C)~2004-2010~by~A
lban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%@Involutive/PolSh
orterResolutionGF7F$F$F$%4PolIntersectionListGf*F$F$6#%boCopyright~(C)~2008-201
0~by~Markus~Lange-Hegermann.~All~rights~reserved.GF$C$F,-%?Involutive/PolInters
ectionListGF7F$F$F$%2GroebnerBasisGINVGf*F$F$F)F$C$F,-%=Involutive/GroebnerBasi
sGINVGF7F$F$F$%-PolEulerCharGf*F$F$F)F$C$F,-%8Involutive/PolEulerCharGF7F$F$F$%
*CoeffListGf*F$F$FavF$C$F,-%5Involutive/CoeffListGF7F$F$F$%/MinPolyRatFuncGf*F$
F$6#%^pCopyright~(C)~2007-2010~by~Daniel~Robertz~and~Moritz~Schroeer.~All~right
s~reserved.GF$C$F,-%:Involutive/MinPolyRatFuncGF7F$F$F$%4PolTorsionfreeParamGf*
F$F$F`pF$C$F,-%?Involutive/PolTorsionfreeParamGF7F$F$F$%,SubmoduleHFGf*F$F$FgpF
$C$F,-%7Involutive/SubmoduleHFGF7F$F$F$%'NotHasGf*F$F$F)F$C$F,-%2Involutive/Not
HasGF7F$F$F$%/SubmoduleBasisGf*F$F$FgpF$C$F,-%:Involutive/SubmoduleBasisGF7F$F$
F$%,SubmoduleHPGf*F$F$FgpF$C$F,-%7Involutive/SubmoduleHPGF7F$F$F$%3PolParametri
zationGf*F$F$F`uF$C$F,-%>Involutive/PolParametrizationGF7F$F$F$%)SyzygiesGf*F$F
$F)F$C$F,-%4Involutive/SyzygiesGF7F$F$F$%/PolRightDivideGf*F$F$FNF$C$F,-%:Invol
utive/PolRightDivideGF7F$F$F$%-PolDirectSumGf*F$F$FNF$C$F,-%8Involutive/PolDire
ctSumGF7F$F$F$%'AddRhsGf*F$F$F)F$C$F,-%2Involutive/AddRhsGF7F$F$F$%&StatsGf*F$F
$FboF$C$F,-%1Involutive/StatsGF7F$F$F$%,PolZeroSetsGf*F$F$F)F$C$F,-%7Involutive
/PolZeroSetsGF7F$F$F$%1SyzygyModuleGINVGf*F$F$FdtF$C$F,-%<Involutive/SyzygyModu
leGINVGF7F$F$F$%+SubstituteGf*F$F$F;F$C$F,-%6Involutive/SubstituteGF7F$F$F$%5Po
lHilbertPolynomialGf*F$F$FboF$C$F,-%@Involutive/PolHilbertPolynomialGF7F$F$F$%)
PolCoeffGf*F$F$FGF$C$F,-%4Involutive/PolCoeffGF7F$F$F$%1PolInvReduceGINVGf*F$F$
F)F$C$F,-%<Involutive/PolInvReduceGINVGF7F$F$F$%5NoetherNormalizationGf*F$F$Fgp
F$C$F,-%@Involutive/NoetherNormalizationGF7F$F$F$%0PolIntersectionGf*F$F$F`uF$C
$F,-%;Involutive/PolIntersectionGF7F$F$F$%(PolExtnGf*F$F$F)F$C$F,-%3Involutive/
PolExtnGF7F$F$F$%.LocalSyzygiesGf*F$F$F^qF$C$F,-%9Involutive/LocalSyzygiesGF7F$
F$F$%6PolShortestResolutionGf*F$F$Fb\lF$C$F,-%AInvolutive/PolShortestResolution
GF7F$F$F$%3PolIndexRegularityGf*F$F$FboF$C$F,-%>Involutive/PolIndexRegularityGF
7F$F$F$%-PolInvReduceGf*F$F$F)F$C$F,-%8Involutive/PolInvReduceGF7F$F$F$%(ItJane
tGf*F$F$FdtF$C$F,-%3Involutive/ItJanetGF7F$F$F$%2LocalSyzygiesGINVGf*F$F$F^qF$C
$F,-%=Involutive/LocalSyzygiesGINVGF7F$F$F$%/PolMinPolyGINVGf*F$F$FavF$C$F,-%:I
nvolutive/PolMinPolyGINVGF7F$F$F$%'PolHomGf*F$F$FNF$C$F,-%2Involutive/PolHomGF7
F$F$F$%0LocalReduceGINVGf*F$F$F^qF$C$F,-%;Involutive/LocalReduceGINVGF7F$F$F$%1
PolInvReduceFastGf*F$F$F)F$C$F,-%<Involutive/PolInvReduceFastGF7F$F$F$%*PolDefe
ctGf*F$F$F`uF$C$F,-%5Involutive/PolDefectGF7F$F$F$%3PolHilbertFunctionGf*F$F$Fb
oF$C$F,-%>Involutive/PolHilbertFunctionGF7F$F$F$%*PolKernelGf*F$F$FNF$C$F,-%5In
volutive/PolKernelGF7F$F$F$%4InvolutiveBasisGINVGf*F$F$F)F$C$F,-%?Involutive/In
volutiveBasisGINVGF7F$F$F$%.GroebnerBasisGf*F$F$F)F$C$F,-%9Involutive/GroebnerB
asisGF7F$F$F$%*PolTabVarGf*F$F$FboF$C$F,-%5Involutive/PolTabVarGF7F$F$F$%3Local
BasisIdentityGf*F$F$F^qF$C$F,-%>Involutive/LocalBasisIdentityGF7F$F$F$%8PolInte
rsectionListGINVGf*F$F$Fi\lF$C$F,-%CInvolutive/PolIntersectionListGINVGF7F$F$F$
%0PommaretNonMultGf*F$F$FgpF$C$F,-%;Involutive/PommaretNonMultGF7F$F$F$%9Submod
uleHilbertFunctionGf*F$F$FgpF$C$F,-%DInvolutive/SubmoduleHilbertFunctionGF7F$F$
F$%,PolCheckHomGf*F$F$FNF$C$F,-%7Involutive/PolCheckHomGF7F$F$F$%3PolCartanChar
acterGf*F$F$FboF$C$F,-%>Involutive/PolCartanCharacterGF7F$F$F$%+PolMinPolyGf*F$
F$F)F$C$F,-%6Involutive/PolMinPolyGF7F$F$F$%.PommaretBasisGf*F$F$FgpF$C$F,-%9In
volutive/PommaretBasisGF7F$F$F$F$
M7R0
I2Involutive/homalg=6"%&falseGE\[l)%1PresentationInfoG%Chomalg/Involutive/PolHi
lbertCartanG%'ReduceG%@homalg/Involutive/PolInvoReduceG%3SyzygiesGeneratorsG%>h
omalg/Involutive/PolSyzygiesG%.BasisOfModuleG%9homalg/Involutive/IBasisG%2Facto
rModuleBasisG%Dhomalg/Involutive/FactorModuleBasisG%3ReduceRingElementsG%Dhomal
g/Involutive/PolNormalizeInputG%.SimplifyBasisG%8Involutive/jetsdepcheckG%'IsUn
itG%9homalg/Involutive/IsUnitGF$
M7R0
I?Involutive/pnegplex_entr_blockf*6$%"aG%"bG6"6#%jnCopyright~(C)~2006-2010~by~D
aniel~Robertz.~All~rights~reserved.GF'@'2&%,_entrblocksG6#&9$6#""#&F-6#&9%F1%&f
alseG2F3F,%%trueG4-%1Involutive/pplexG6$F0F6F'F'F'F'
M7R0
I8Involutive/pdegrevlex_Zf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2004-
2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'>8%-%(convertG6$&9$6#"""%"+G>8
&-F26$&9%F6F8@'2F0F:-%'RETURNG6#%%trueG2F:F0-FB6#%&falseG?(8$-%%nopsG6#F4!""F7F
D@&2&F=6#FJ&F4FRFA2FSFQFF@&2-%$absG6#&F>6#""$-FX6#&F5FenFF2FgnFWFA@%2&F56#""#&F
>F^oFHFDF-F-F-F-
M7R0
I>Involutive/pdegrevlex_deg_POTf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCopyright
~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(@&2&9$6#""#&9%F4-%'R
ETURNG6#%&falseG2F6F2-F96#%%trueG>8%-%%nopsG6#&F36#""">8&-%$addG6$*&&FE6#8$FG&%
(_vardegGFOFG/FP;FGFA>8'-FK6$*&&&F7FFFOFGFQFGFS@'2FIFVF=2FVFIF8?(FPFA!""FGF?@&2
FZFNF=2FNFZF8F?F.F.F.F.
M7R0
I8Involutive/pnegdeglex_Zf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2004-
2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'>8%-%(convertG6$&9$6#"""%"+G>8
&-F26$&9%F6F8@'2F0F:-%'RETURNG6#%&falseG2F:F0-FB6#%%trueG?(8$F7F7-%%nopsG6#F4FH
@&2&F=6#FJ&F4FQFA2FRFPFF@&2-%$absG6#&F>6#""$-FW6#&F5FZFA2FfnFVFF@%2&F56#""#&F>F
]oFDFHF-F-F-F-
M7R0
I7Involutive/block_ord_Zf*6&%"aG%"bG%$sepG%+termordersG6#%"iG6#%jnCopyright~(C)
~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"@'4-&9'6#"""6$7$&&9$F36#;F
4&9&F3&F96#""#7$&&9%F3F:&FDF?%&falseG/F7FBC%?(8$F@F4-%%nopsG6#F=%%trueG@&4-&F26
#FJ6$7$&F86#;,&&F=6#,&FJF4!""F4F4F4F4&F=FSF>7$&FCFWFE-%'RETURNG6#FF0FVFjn-F\o6#
FN@&2-%$absG6#&FD6#""$-Fdo6#&F9FgoF[o2FioFcoF_o@%2F>FEFFFNFNF-F-F-F-
M7R0
I9Involutive/ishomogeneousf*6%'%"pG%%listG%"vG%"dG6+%"gG%"iG%"jG%#lmG%#o1G%#o2G
%"qG%"sG%#_tG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserve
d.G6"C'@%2""#9#C%>8(-%%wdegG6$9&9%>8)-%)wdeg_minGFA>8+-%$zipG6%f*6$F,F-F66$%)op
eratorG%&arrowGF6/9$)T#FCF6F66$F38,FCFBC%>F>-%%tdegG6#-%#opG6#FC>FE-%)tdeg_minG
Ffn>FI-%$mapG6$f*6#F,F6FOF6/FSFUF6F6FVFC>8'-%6Involutive/gb_leadmonGF6>8*""!?(8
%"""F]p-%%nopsG6#FS%%trueG@$0&FS6#F\pFjoC%>8$-%%subsG6$FI&-Feo6$FdpF>6#F:@$0Fhp
-Fjp6$FI&-Feo6$FdpFEF_q-%'RETURNG6#%&falseG@&/FioFjo>FioFhp0FhpFioFgqFapF6F6F6F
6
M7R0
I8Involutive/pol_lead_monf*6)%"aG%'n_entrG%%seqvG%'lmprocG%)entr_posG%(tup_cmpG
%'vt_degG6*%"iG%"jG%"kG%"lG%#lmG%"LG%"dG%#d2G6%%jnCopyright~(C)~2000-2010~by~Da
niel~Robertz.~All~rights~reserved.G%'systemG%)rememberG6"C'>8$""">8&F=>8)7"?(F9
F=F=F93/FAFB1F?-%%nopsG6#9(C$?(F9F=F=F91F<&FJ6#F?C%>8(7#-9'6#&9$6#F<@$0&FR6#F="
"!@%FEC$>FA7$7$7#-%$seqG6$-%'degreeG6$&FR6#""#&9&6#8%/F[p;F=%&_nvarGF<FR@$-%%ty
peG6$9*%%listG>8*,&-%$addG6$*&&FA6%F=F=F[pF=&FcpFjoF=F\pF=&Fcp6#,&F^pF=&FA6$F=F
goF=F=C$>8'F\o@&F`pC$>8+,&-Fip6$*&&FfqF]qF=F^qF=F\pF=&Fcp6#,&F^pF=&FfqFcqF=F=@$
52FfpFjq3/FjqFfp4-9)6$&Ffq6$FgoFgo&FAF^sC$>FAFfq>FfpFjqFir>FAFfq>F<,&F<F=F=F=>F
?,&F?F=F=F=@%0FAFBFAC$?(F9F=F=F91F<9%C%>FRFS@$Fen-%'RETURNG6#F\o>F<Fes7$7$7#-%"
$G6$FhnF^pF]t7$FhnF=F9F9F9F9
M7R0
I;Involutive/pnormal_form_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG63%"
aG%"hG%"iG%"kG%#lmG%$divG%+no_contentG%'n_entrG%*zero_listG%.rhs_zero_listG%#lv
G%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~Al
l~rights~reserved.G6"C->%(_nnformG,&FB"""FDFD>8%9$>8+-%%nopsG6#&FF6#FD@$09)7"C'
>8.<#-%$seqG6$&9&6#&FQ6#8&/Fin;FD-FK6#FQ>8/-FK6#FU>80-%'removeG6%%$hasGFenFU>81
FR>FF7#-%=Involutive/cancel_locvar_rhsG6'FM&FF6#""#9'FenFQ>8,7#-%"$G6$""!FI>8-7
#-Fgp6$Fip-FK6#F_p>8*%%trueG>8)Fcq>8(-FbpFL?(F?FDFDF?3Feq0&Fgq6$FapFDFipC&>FinF
D>Feq%&falseG@$FP>82,&-%$maxG6#-FX6$-%'degreeG6$&FM6#8'FU/F`s;FDFIFD-%$addG6$&&
Fgq6$FDFD6#&FQF_s/F`s;FDF_o!""?(F?FDFDF?31Fin-FK6#9%4FeqC$@$30FMFdp-%7Involutiv
e/pinv_divideG6%&Fct6$Fin""$&Fct6$Fin""&&FgqFNC'>%'_reducG,&FeuFDFDFD@%FPC+>83,
&-Fgr6#-FX6$-F\s6$&&Fct6%FinFDFDF_sFUFasFD-Fds6$&&Fct6%FinF^uFDFisF[tF]t>84Fip>
F`s-FK6#Fio?(F?FDFDF?32FipFju2FipF`sC$@$331&&FioF_s6#F^uFju/&&&FiwF`pFNF`p&FbuF
`p-%:Involutive/conv_divisibleG6$F]xFbuC$>F[wF`s>FjuFhw>F`s,&F`sFDF]tFD@$2FdrFj
uC$>F`s-9(6%FMFen7$F_p&&FgqF`pFN>Fio7$-%#opGF^w7%7$&F`sFN&&F`sF`pFN7$Fbu-%'subs
opG6$/FD&FjyF`pFayFdr@%/F[wFip>FF-%'expandG6#,&*&&Fct6%Fin""'FDFDFFFDFD7$,$**F\
rFD&Fgq6$FapFapFD&Fct6%FinF[[lFapF]tFcvFDF]t,$**F\rFDF_[lFDFa[lF]t&Fct6%FinFDFa
pFDF]tFD>FF-Fez6#,&*&&&&&Fio6#F[wF`pF`pFNFDFFFDFD7$,$**F\rFDF_[lFD&F]\lF`pF]t&&
F_\lFNFNFDF]t,$**F\rFDF_[lFDFd\lF]t&Ff\lF`pFDF]tFD>FF-F]y6%FMFenF_p>FFF[p@$0%2I
nvolutive/characGFip>FF-%$modG6$FFF`]l@%/F`]lFip>FF7$-%'normalG6#,&-%$mapG6$f*6
#F,F?6$%)operatorG%&arrowGF?*&&T$6%T%F[[lFDFDFGFDF?F?6&F&FctF.FinFMFD-F^^l6$f*F
a^lF?Fb^lF?**&T#F]rFD&F`_lF`[lFD&T&6%T'F[[lFapF]tFGFDF?F?6(F0FgqF&FctF.FinFcvF]
t-Fj]l6#,&-F^^l6$f*Fa^lF?Fb^lF?Fe^lF?F?Fj^lF_pFD-F^^l6$f*Fa^lF?Fb^lF?F^_lF?F?Ff
_lFe[lF]t>FF7$-Fc]l6$-%'NormalG6#,&-F^^l6$f*Fa^lF?Fb^lF?Fe^lF?F?Fj^lFMFD-F^^l6$
f*Fa^lF?Fb^lF?F^_lF?F?Ff_lFcvF]tF`]l-Fc]l6$-Fe`l6#,&-F^^l6$f*Fa^lF?Fb^lF?Fe^lF?
F?Fj^lF_pFD-F^^l6$f*Fa^lF?Fb^lF?F^_lF?F?Ff_lFe[lF]tF`]l>FeqFcq>FbqFar>FgqFhq>Fi
n,&FinFDFDFD@'3/FMFdp0F_pF[qC%>F_p&-F]y6%F_pFenFRFN@$3Fabl4-%7Involutive/member
_multG6%F_p%&P_HOMGFen>F]cl7$-Fey6#F]clF_p7$FMF[qF`bl7$FdpF_pC$@$FP>FFF[p@%/Fbq
FarF[]lFFF?6%F]clFBFeuF?F?
M7R0
ICInvolutive/pnormal_form_collect_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_
varG64%"aG%"hG%"iG%"kG%#lmG%$divG%#stG%'n_entrG%)rhs_entrG%*zero_listG%.rhs_zer
o_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%jnCopyright~(C)~2000-2010~by~Daniel~
Robertz.~All~rights~reserved.G6"C.>%(_nnformG,&FC"""FEFE>8%9$>8*""!>8+-%%nopsG6
#&FG6#FE>8,-FO6#&FG6#""#@$09)7"C'>8/<#-%$seqG6$&9&6#&Ffn6#8&/Fdo;FE-FO6#Ffn>80-
FO6#Fjn>81-%'removeG6%%$hasGF`oFjn>82Fgn>FG7#-%=Involutive/cancel_locvar_rhsG6'
FQFW9'F`oFfn>8-7#-%"$G6$FKFM>8.7#-F_q6$FKFU>8)%%trueG>8(-FjpFP?(F@FEFEF@3Fgq0&F
jq6$FYFEFKC&>FdoFE>Fgq%&falseG@$Fen>83,&-%$maxG6#-F]o6$-%'degreeG6$&FQ6#8'Fjn/F
cs;FEFMFE-%$addG6$&&Fjq6$FEFE6#&FfnFbs/Fcs;FEFjo!""?(F@FEFEF@31Fdo-FO6#9%4FgqC$
@$30FQF\q-%7Involutive/pinv_divideG6%&Fft6$Fdo""$&Fft6$Fdo""&&FjqFRC'>%'_reducG
,&FhuFEFEFE>FJ,&FJFEFEFE@%FenC+>84,&-Fjr6#-F]o6$-F_s6$&&Fft6%FdoFEFEFbsFjnFdsFE
-Fgs6$&&Fft6%FdoFauFEF\tF^tF`t>85FK>Fcs-FO6#Fdp?(F@FEFEF@32FKF_v2FKFcsC$@$332&&
FdpFbs6#FauF_v/&&&F^xFXFRFX&FeuFX-%:Involutive/conv_divisibleG6$FbxFeuC$>F`wFcs
>F_vF]x>Fcs,&FcsFEF`tFE@$2FgrF_vC$>Fcs-9(6%FQF`o7$FW&&FjqFXFR>Fdp7$-%#opGFcw7%7
$&FcsFR&&FcsFXFR7$Feu-%'subsopG6$/FE&F_zFXFfyFgr@%/F`wFK>FG-%)simplifyG6#7$,&-%
$mapG6$f*6#F,F@6$%)operatorG%&arrowGF@**&T#F`rFE&Fh[l6$FYFYFE&T&6%T'""'FYF`tFHF
EF@F@6(F0FjqF&FftF.FdoFhvF`t-F_[l6$f*Fb[lF@Fc[lF@*&&T$6%T%F_\lFEFEFHFEF@F@6&F&F
ftF.FdoFQFE,&-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F@F`\l&Fft6%FdoFEFYF`t-F_[l6$f*Fb[lF@Fc
[lF@Fd\lF@F@Fi\lFWFE>FG-Fjz6#7$,&-F_[l6$f*Fb[lF@Fc[lF@**Fg[lFEFi[lFE&&&&Fh\l6#F
^\lFXFXFXF`tFHFEF@F@6(F0FjqF:FdpF=F`w&&&Fdp6#F`wFRFRF`t-F_[l6$f*Fb[lF@Fc[lF@*&&
&&&Fh[l6#Fh\lFXFXFRFEFHFEF@F@6&F:FdpF=F`wFQFE,&-F_[l6$f*Fb[lF@Fc[lF@F[^lF@F@Fa^
l&Fc^lFXF`t-F_[l6$f*Fb[lF@Fc[lF@Fi^lF@F@F__lFWFE>FG-Fby6%FQF`oFW>FGFfp@$0%2Invo
lutive/characGFK>FG-%$modG6$FGF^`l@%/F^`lFKC$>FG-%(collectG6%7$-%'normalG6#,&-F
_[l6$f*Fb[lF@Fc[lF@Fd\lF@F@Fi\lFQFE-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F@F`\lFhvF`t-F\al
6#,&-F_[l6$f*Fb[lF@Fc[lF@Fd\lF@F@Fi\lFWFE-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F@F`\lF^]lF
`tF`o%,distributedG@$1FduFJC$>FGFi_l>FJFKC$>FG-Fh`l6%7$-Fa`l6$-%'NormalG6#,&-F_
[l6$f*Fb[lF@Fc[lF@Fd\lF@F@Fi\lFQFE-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F@F`\lFhvF`tF^`l-F
a`l6$-F\cl6#,&-F_[l6$f*Fb[lF@Fc[lF@Fd\lF@F@Fi\lFWFE-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F
@F`\lF^]lF`tF^`lF`oF^bl@$1"#7FJC$>FGFi_l>FJFK>FgqFhq>FjqF[r>Fdo,&FdoFEFEFE@'3/F
QF\q0FWFbqC%@$2FKFJ>FW&-Fby6%FWF`oFgnFR@$4-%7Involutive/member_multG6%FW%&P_HOM
GF`o>Fjel7$-Fjy6#FjelFW7$FQFbqF\el7$F\qFW@%F`elFi_lFGF@6%FjelFCFhuF@F@
M7R0
IFInvolutive/pnormal_form_simplify_polyf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(l
oc_varG67%"aG%#caG%#cbG%"hG%"iG%"kG%"rG%#lmG%(termo_hG%$divG%#stG%'n_entrG%*zer
o_listG%.rhs_zero_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000
-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C->%(_nnformG
,&FF"""FHFH>8'9$>8.""!>8/-%%nopsG6#&FJ6#FH@$09)7"C'>82<#-%$seqG6$&9&6#&FX6#8(/F
`o;FH-FR6#FX>83-FR6#Ffn>84-%'removeG6%%$hasGF\oFfn>85FY>FJ7#-%=Involutive/cance
l_locvar_rhsG6'FT&FJ6#""#9'F\oFX>807#-%"$G6$FNFP>817#-F^q6$FN-FR6#Ffp>8*7$F[qFa
q>8+-FipFS?(FCFHFHFC0&F[r6$FhpFHFNC)>F`oFH>8-%&falseG>8,*&F_rFH&F[r6$FhpFhpFH@$
FW>86,&-%$maxG6#-Fin6$-%'degreeG6$&FT6#8)Ffn/Fis;FHFPFH-%$addG6$&&F[r6$FHFH6#&F
XFhs/Fis;FHFfo!""?(FCFHFHFC31F`o-FR6#9%4Fdr@%-%7Involutive/pinv_divideG6%&F\u6$
F`o""$&F\u6$F`o""&&F[rFUC&>%'_reducG,&F[vFHFHFH>FM,&FMFHFHFH@%FWC,>87,&-F`s6#-F
in6$-Fes6$&&F\u6%F`oFHFHFhsFfnFjsFH-F]t6$&&F\u6%F`oFduFHFbtFdtFft>88FN>Fis-FR6#
F`p?(FCFHFHFC32FNFbv2FNFisC$@$331&&F`pFhs6#FduFbv/&&&FaxFgpFUFgp&FhuFgp-%:Invol
utive/conv_divisibleG6$FexFhuC$>FcwFis>FbvF`x>Fis,&FisFHFftFH@$3Fiw0&FhqFUF[q[@
$2F]sFbvC$>Fis-9(6%FTF\o7$Ffp&&F[rFgpFU>F`p7$-%#opGFfw7%7$&FisFU&&FisFgpFU7$Fhu
-%'subsopG6$/FH&FgzFgpF^zF]s@%/FcwFN>FJ-%)simplifyG6#7$,&-%$mapG6$f*6#F,FC6$%)o
peratorG%&arrowGFC*(T#FH&T&6%T'""'FhpFftFKFHFCFC6(F4FgrF&F\uF0F`oF[wFft-Fg[l6$f
*Fj[lFCF[\lFC*&&T$6%T%Fd\lFHFHFKFHFCFC6&F&F\uF0F`oFTFH,&-Fg[l6$f*Fj[lFCF[\lFCF^
\lFCFCFe\l&F\u6%F`oFHFhpFft-Fg[l6$f*Fj[lFCF[\lFCFi\lFCFCF^]lFfpFH>FJ-Fb[l6#7$,&
-Fg[l6$f*Fj[lFCF[\lFC*(F_\lFH&&&&F]]l6#Fc\lFgpFgpFgpFftFKFHFCFC6(F4FgrF=F`pF@Fc
w&&&F`p6#FcwFUFUFft-Fg[l6$f*Fj[lFCF[\lFC*&&&&&F_\l6#F]]lFgpFgpFUFHFKFHFCFC6&F=F
`pF@FcwFTFH,&-Fg[l6$f*Fj[lFCF[\lFCF`^lFCFCFf^l&Fh^lFgpFft-Fg[l6$f*Fj[lFCF[\lFCF
^_lFCFCFd_lFfpFH>FJ-Fjy6%FTF\oFfp>FJFbp@$0%2Involutive/characGFN>FJ-%$modG6$FJF
c`lC$@%/Fc`lFN-%$gcdG6&F_r&F\u6%F`oFd\lFH.8%.8&-Ff`l6$-%$GcdGF]alFc`l>FJ-Fb[l6#
7$,&-Fg[l6$f*Fj[lFCF[\lFC*&F_\lFHFKFHFCFC6$F.FcalFTFH-Fg[l6$f*Fj[lFCF[\lFC**F_\
lFH&F]]lFjrFH&T(6%T)Fd\lFhpFftFKFHFCFC6*F-FaalF3F[rF&F\uF0F`oF[wFft,&-Fg[l6$f*F
j[lFCF[\lFCF`blFCFCFablFfpFH-Fg[l6$f*Fj[lFCF[\lFCFeblFCFCF[clFc]lFft>Fdr%%trueG
>F`o,&F`oFHFHFH@%F]uC$>Fhq7$-Fjz6$/&F[r6$FHFhp-%(collectG6%,&&Fcy6#F^dlFHFhrFHF
\o%,distributedGFcy&FhqFgp>FJ7$-Fjz6$/F^dl-Fadl6%,&&FTFedlFHFhrFftF\oFfdlFTFfp@
%Fj`l>Fhq-Fadl6%7$-%'normalG6#-Fb[l6#-Fg[l6$f*Fj[lFCF[\lFCF`blFCFCFablFcy-Fgel6
#-Fb[l6#-Fg[l6$f*Fj[lFCF[\lFCF`blFCFCFablFgdlF\oFfdl>Fhq-Fadl6%7$-Ff`l6$-%'Norm
alG6#-Fb[l6#-Fg[l6$f*Fj[lFCF[\lFCF`blFCFCFablFcyFc`l-Ff`l6$-F\gl6#-Fb[l6#-Fg[l6
$f*Fj[lFCF[\lFCF`blFCFCFablFgdlFc`lF\oFfdl>F[rF\r@'3/FcyF[q0FfpFaqC%>Ffp&-Fjy6%
FfpF\oFYFU@$4-%7Involutive/member_multG6%Ffp%&P_HOMGF\o>F[il7$-Fbz6#F[ilFfp7$Fc
yFaqF_hl7$F[qFfp-Fjy6%FcyF\oFfpFC6%F[ilFFF[vFCFC
M7R0
IIInvolutive/pnormal_form_simplify_poly_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG
%(loc_varG66%"aG%#caG%#cbG%"hG%"iG%"kG%#lmG%$divG%#stG%'n_entrG%)rhs_entrG%*zer
o_listG%.rhs_zero_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%jnCopyright~(C)~2000
-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C.>%(_nnformG,&FE"""FGFG>8'9$>8
,""!>8--%%nopsG6#&FI6#FG>8.-FQ6#&FI6#""#@$09)7"C'>81<#-%$seqG6$&9&6#&Fhn6#8(/Ff
o;FG-FQ6#Fhn>82-FQ6#F\o>83-%'removeG6%%$hasGFboF\o>84Fin>FI7#-%=Involutive/canc
el_locvar_rhsG6'FSFY9'FboFhn>8/7#-%"$G6$FMFO>807#-Faq6$FMFW>8+%%trueG>8*-F\qFR?
(FBFGFGFB3Fiq0&F\r6$FenFGFMC&>FfoFG>Fiq%&falseG@$Fgn>85,&-%$maxG6#-F_o6$-%'degr
eeG6$&FS6#8)F\o/Fes;FGFOFG-%$addG6$&&F\r6$FGFG6#&FhnFds/Fes;FGF\p!""?(FBFGFGFB3
1Ffo-FQ6#9%4FiqC$@$30FSF^q-%7Involutive/pinv_divideG6%&Fht6$Ffo""$&Fht6$Ffo""&&
F\rFTC'>%'_reducG,&FjuFGFGFG>FL,&FLFGFGFG@%FgnC+>86,&-F\s6#-F_o6$-Fas6$&&Fht6%F
foFGFGFdsF\oFfsFG-Fis6$&&Fht6%FfoFcuFGF^tF`tFbt>87FM>Fes-FQ6#Ffp?(FBFGFGFB32FMF
av2FMFesC$@$332&&FfpFds6#FcuFav/&&&F`xFZFTFZ&FguFZ-%:Involutive/conv_divisibleG
6$FdxFguC$>FbwFes>FavF_x>Fes,&FesFGFbtFG@$2FirFavC$>Fes-9(6%FSFbo7$FY&&F\rFZFT>
Ffp7$-%#opGFew7%7$&FesFT&&FesFZFT7$Fgu-%'subsopG6$/FG&FazFZFhyFir@%/FbwFM>FI-%)
simplifyG6#7$,&-%$mapG6$f*6#F,FB6$%)operatorG%&arrowGFB**&T#FbrFG&Fj[l6$FenFenF
G&T&6%T'""'FenFbtFJFGFBFB6(F2F\rF&FhtF0FfoFjvFbt-Fa[l6$f*Fd[lFBFe[lFB*&&T$6%T%F
a\lFGFGFJFGFBFB6&F&FhtF0FfoFSFG,&-Fa[l6$f*Fd[lFBFe[lFBFh[lFBFBFb\l&Fht6%FfoFGFe
nFbt-Fa[l6$f*Fd[lFBFe[lFBFf\lFBFBF[]lFYFG>FI-F\[l6#7$,&-Fa[l6$f*Fd[lFBFe[lFB**F
i[lFGF[\lFG&&&&Fj\l6#F`\lFZFZFZFbtFJFGFBFB6(F2F\rF<FfpF?Fbw&&&Ffp6#FbwFTFTFbt-F
a[l6$f*Fd[lFBFe[lFB*&&&&&Fj[l6#Fj\lFZFZFTFGFJFGFBFB6&F<FfpF?FbwFSFG,&-Fa[l6$f*F
d[lFBFe[lFBF]^lFBFBFc^l&Fe^lFZFbt-Fa[l6$f*Fd[lFBFe[lFBF[_lFBFBFa_lFYFG>FI-Fdy6%
FSFboFY>FIFhp@$0%2Involutive/characGFM>FI-%$modG6$FIF``lC$@%/F``lFM-%$gcdG6&Far
&Fht6%FfoFa\lFG.8%.8&-Fc`l6$-%$GcdGFj`lF``l>FI-F\[l6#7$,&-Fa[l6$f*Fd[lFBFe[lFB*
&Fj[lFGFJFGFBFB6$F.F`alFSFG-Fa[l6$f*Fd[lFBFe[lFB**Fj[lFG&Fj\lF\\lFG&T(6%T)Fa\lF
enFbtFJFGFBFB6*F-F^alF2F\rF&FhtF0FfoFjvFbt,&-Fa[l6$f*Fd[lFBFe[lFBF]blFBFBF^blFY
FG-Fa[l6$f*Fd[lFBFe[lFBFbblFBFBFhblF`]lFbt>FiqFjq>F\rF]r>Ffo,&FfoFGFGFG@'3/FSF^
q0FYFdqC%@$2FMFL>FY&-Fdy6%FYFboFinFT@$4-%7Involutive/member_multG6%FY%&P_HOMGFb
o>Fddl7$-F\z6#FddlFY7$FSFdqFfcl7$F^qFY@%FjclF[`lFIFB6%FddlFEFjuFBFB
M7R0
I7Involutive/pseudored_Zf*6&%"fG%"FG%%seqvG%'lmprocG6+%"aG%"iG%"hG%"lG%#lmG%$di
vG%'n_entrG%*zero_listG%.rhs_zero_listG6#%jnCopyright~(C)~2004-2010~by~Daniel~R
obertz.~All~rights~reserved.G6"C+>%(_nnformG,&F8"""F:F:>8&9$>8*-%%nopsG6#&F<6#F
:>8+7#-%"$G6$""!F?>8,7#-FI6$FK-FA6#&F<6#""#>8)%%trueG>8(-9'FB?(F5F:F:F53FW0&FZ6
$FUF:FKC%>8%F:>FW%&falseG?(F5F:F:F531F^o-FA6#9%4FWC$@$30FCFF-%7Involutive/pinv_
divideG6%&Ffo6$F^o""$&Ffo6$F^o""&&FZFDC'>%'_reducG,&FhpF:F:F:>8'-%%ilcmG6$Fjn&F
fo6%F^o""'F:>F<7$-%'normalG6#,&-%$mapG6$f*6#F*F56$%)operatorG%&arrowGF5*(T#F:&T
%F[o!""F=F:F5F56&F-F[qF.FZFCF:-Fiq6$f*F\rF5F]rF5*,FarF:&T&6%T'FaqF:Fdr&T)6$FUFU
F:&F[s6%F]sFaqFUFdrF=F:F5F56*F-F[qF&FfoF+F^oF.FZ&Ffo6%F^oF:F:Fdr-Feq6#,&-Fiq6$f
*F\rF5F]rF5F`rF5F5FerFSF:-Fiq6$f*F\rF5F]rF5FirF5F5Fcs&Ffo6%F^oF:FUFdr>FWFX>FZFe
n>F^o,&F^oF:F:F:@'3/FCFF0FSFMC$@$4-%7Involutive/member_multG6%FS%&P_HOMG9&>F_u7
$-%#opG6#F_uFS7$FCFMFgt7$FFFSF<F56%F_uF8FhpF5F5
M7R0
I8Involutive/invred_evalaf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmprocG%
(loc_varG66%"aG%"cG%"hG%#h2G%"iG%"kG%#lmG%"nG%"qG%"rG%$divG%'n_entrG%(termo_hG%
*zero_listG%#lvG%#nlG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-2010~by~Carlos~F
.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C/>8/-%%nopsG6#&9$6#""">817#-%
"$G6$""!FF>8&FJ@$49&>8'&FK6#""#@$09*7"C&>82<#-%$seqG6$&9(6#&F[o6#8(/Fio;FM-FH6#
F[o>83-FH6#F_o>84F\o@%FY>FV-%9Involutive/cancel_locvarG6&FV9)FeoF[o>6$FVFen-%=I
nvolutive/cancel_locvar_rhsG6'FVFenFipFeoF[o>8+-FH6#9%>8-FO>8%7#-FR6$FTF`q>8,FM
>8*-Fip6#FV?(FCFMFMFC0&F^r6$FhnFMFTC)>FioFM>8.%&falseG>80*&FcrFM&F^r6$FhnFhnFM@
$Fjn>85,&-%$maxG6#-Fbo6$-%'degreeG6$&FV6#8)F_o/F]t;FMFFFM-%$addG6$&&F^r6$FMFM6#
&F[oF\t/F]t;FMF_p!""?(FCFMFMFC31FioF`q4Fhr@%-%7Involutive/pinv_divideG6%&Fcq6$F
io""$&Fcq6$Fio""&&F^rFLC$@%FjnC+>86,&-Fds6#-Fbo6$-Fis6$&&Fcq6%FioFMFMF\tF_oF^tF
M-Fat6$&&Fcq6%FioFeuFMFftFhtFjt>87FT>F]tFM?(FCFMFMFC32FTF^v1F]t-FH6#FcpC$@$332&
&FcpF\t6#FeuF^v/&&&F]xFgnFLFgn&FiuFgn-%:Involutive/conv_divisibleG6$FaxFiuC$>F_
wF]t>F^vF\x>F]t,&F]tFMFMFM@$3Fcw0FeqFO[@$2FasF^v>Fcp7$-%#opGFfw7%7$FVFenF^rFas@
%/F_wFTC$>FV-%)simplifyG6#,&-%$mapG6$f*6#F-FC6$%)operatorG%&arrowGFC*&&T$6%T%""
'FMFMFKFMFCFC6&F&FcqF1FioFVFM-Faz6$f*FdzFCFezFC*(T#FM&T&6%T'F][lFhnFjtFKFMFCFC6
(F9F[sF&FcqF1FioFgvFjt@$FX>Fen-F]z6#,&-Faz6$f*FdzFCFezFCFhzFCFCF^[lFenFM-Faz6$f
*FdzFCFezFCFb[lFCFCFh[l&Fcq6%FioFMFhnFjtC$>FV-F]z6#,&-Faz6$f*FdzFCFezFC*&&&&&Fc
[l6#F\[lFgnFgnFLFMFKFMFCFC6&F=FcpF@F_wFVFM-Faz6$f*FdzFCFezFC*(Fc[lFM&&&&F\[l6#F
g[lFgnFgnFgnFjtFKFMFCFC6(F9F[sF=FcpF@F_w&&&Fcp6#F_wFLFLFjt@$FX>Fen-F]z6#,&-Faz6
$f*FdzFCFezFCF^]lFCFCFd]lFenFM-Faz6$f*FdzFCFezFCFh]lFCFCF^^l&F`^lFgnFjt@%FY>FVF
fp>F[qF\q@$0%2Involutive/characGFTC$>FV-%$modG6$FVFd_l@$FX>Fen-Fh_l6$FenFd_l@%/
Fd_lFTC$>FV-%(collectG6%-%'normalG6#-%&evalaG6#,&-Faz6$f*FdzFCFezFCFhzFCFCF^[lF
VFM-Faz6$f*FdzFCFezFC**&Fc[lFdrFM&Fc[lF^sFMFd[lFjtFKFMFCFC6(F3F^rF&FcqF1FioFgvF
jtFeo%,distributedG@$FX>Fen-Fc`l6%-Ff`l6#-Fi`l6#,&-Faz6$f*FdzFCFezFCFhzFCFCF^[l
FenFM-Faz6$f*FdzFCFezFCFbalFCFCFealFd\lFjtFeoFfalC$>FV-Fc`l6%-Fh_l6$-%'NormalG6
#-Fi`l6#-%)SimplifyG6#,&-Faz6$f*FdzFCFezFCFhzFCFCF^[lFVFM-Faz6$f*FdzFCFezFCFbal
FCFCFealFgvFjtFd_lFeoFfal@$FX>Fen-Fc`l6%-Fh_l6$-F]cl6#-Fi`l6#-Fbcl6#,&-Faz6$f*F
dzFCFezFCFhzFCFCF^[lFenFM-Faz6$f*FdzFCFezFCFbalFCFCFealFd\lFjtFd_lFeoFfal>Fhr%%
trueG>Fio,&FioFMFMFM@%F^u@%F_`lC$>Feq-%'subsopG6$/&F^r6$FMFhn-Fc`l6%,&&Feq6#Fje
lFMF[sFMFeoFfalFeq>FV-Fgel6$/Fjel-Fc`l6%,&&FVF`flFMF[sFjtFeoFfalFVC$>Feq-Fh_l6$
FfelFd_l>FV-Fh_l6$FbflFd_lC%@%F_`l>Feq-Fc`l6%-Ff`l6#-Faz6$f*FdzFCFezFCFhzFCFCF^
[lFeqFeoFfal>Feq-Fc`l6%-Fh_l6$-F]cl6#-Faz6$f*FdzFCFezFCFhzFCFCF^[lFeqFd_lFeoFfa
l>F\r*&&Fcq6%FioF][lFMFMF\rFM@$9'@%F_`l>Fgq-Fgel6$/Fio,&&FgqFhoFM*(FcrFMF]sFM&F
cq6%FioF][lFhnFjtFMFgq>Fgq-Fh_l6$F\ilFd_l>F^rF_r@$0F\rFMC%@$F^y@%F_`l>Feq-Faz6$
f*FdzFCFezFC-Ff`l6#*&FKFMFc[lFjtFCFC6$F5F\rFeq>Feq-Faz6$f*FdzFCFezFC-Fh_l6$-F]c
lFbjlFd_lFCFCFdjlFeq@$FX@%F_`l>Fen-Ff`l6#*&FenFMF\rFjt>Fen-Fh_l6$-F]clF`[mFd_l@
$Fihl@%F_`l>Fgq-Ff`l6#*&FgqFMF\rFjt>Fgq-Fh_l6$-F]clFj[mFd_l7$7$FeqFenFgqFCFCFCF
C
M7R0
I8Involutive/pcriteria123f*6#'%"qG%%listG6(%"iG%"jG%"lG%"dG%#hgG%#hpG6#%jnCopyr
ight~(C)~2005-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C%@$/&9$6#""#&F66#
""$-%'RETURNG6#%&falseG?(8$"""FB%*pnumber_tG%%trueG@$-%7Involutive/pinv_divideG
6%&%)P_T_ListG6$FAF;&FJ6$FA""&F9C)@$/-%%nopsG6#&FJ6%FBFBFBFBC$>8&7$,&&F66$F8FBF
B&FJ6%FAF8FBFB&F66$F8F8@$-%:Involutive/conv_divisibleG6$FYF9C$>%'_crit1G,&FboFB
FBFB-F=6#FD>FY-%0Involutive/pLCMG6$F5&FJ6$FAF8@$0FY&F96#;FBF8C$>%'_crit2G,&FcpF
BFBFBFdo>8'-%(convertG6$&FY6#FB%"+G>8%FB?(F1FBFBF131F^qFC2-Fhp6$&FJ6%F^qF;FBF\q
FfpC$@$/&FJ6%F^qF;F8&F66$F;F8C%>8)-Fho6$&FJ6$F^qF;F5>8(-Fho6$FcrFjo@$333-F^o6$F
`rFY0-Fhp6$&F`rF[qF\qFfp-F^o6$FfrFY0-Fhp6$&FfrF[qF\qFfpC$>%'_crit3G,&F[tFBFBFBF
do>F^q,&F^qFBFBFBF<F?F16%FboFcpF[tF1F1
M7R0
I7Involutive/SubmoduleHFf*6"6:%"iG%"jG%"lG%#q1G%#q2G%"sG%,given_basisG%&m_ordG%
'n_entrG%"FG%2tmp_P_T_List_dataG%%varsG%$varG%%nvarG%(var_ordG%'vt_degG%)entr_p
osG%%seqvG%,force_evalaG%'lmprocG%/args_without_sG%$resG%'NPolHFG%#_sG6#%jnCopy
right~(C)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C,@$4%4Involutive
/ratcoeffG-%&ERRORG6#%fnnot~implemented~yet~for~involutive~bases~over~the~integ
ers.G>86%&falseG>8+""%>8)%%NULLG@%519#"""32FUFT5555-%%typeG6$&9"6#""#%)equation
G-Fgn6$Fin-%%listG6#%(integerG-Fgn6$Fin%(numericG-Fgn6$Fin%%nameG-Fgn6$Fin%'str
ingGC%>8*FJ>8%FU>88FPC%>F_p%%trueG>Fap""$>Fcp6$&Fjn6#FUFin?(8$FapFUFTFfp@/-Fgn6
$&Fjn6#F^qFco@%F_pC$>FLFbq>Fcp6$FcpFbq@%/FOFP>FOFbq-FE6#%Zcannot~determine~whic
h~indeterminate~or~value~to~plug~in.G-Fgn6$FbqF`oC$>FLFbq>FcpFhq-Fgn6$FbqFfo@%F
jq>FOFbqF\r3-Fgn6$FbqF]o/-%#opG6$FUFbqQ$varF$@%Fjq>FO-F]s6$F\oFbqF\r-Fgn6$FbqFi
o@%Fjq>FOFbqF\r/FbqQ!F$@%Fjq>FOFbqF\r-FE6#%0invalid~option.G@$Fjq-%'RETURNG6#F"
@%F_pC3>8--%6Involutive/proc_inputG6#F[q>8,&FftF\q>FI5FI&Fft6#""&>8.73%)P_T_Lis
tG%*pnumber_tG%+PolTab_VarG%&_nvarG%&_pvarG%(_vardegG%(_tupdegG%,_entrblocksG%&
P_HOMG%)_pno_rhsG%0_pforce_collectG%._pforce_evalaG%)_inv_denG%+_JB_factorG%3_J
B_factor_multvarG%(_JB_varG%*_JB_compaG>8/-%5Involutive/proc_varsG6$FinF[u>82&F
gvF[o>83&Fgv6#Fhp>84&Fgv6#""'>80&FgvF\q>857#-%$seqG6$-%$catG6$%#_xGF^q/F^q;FU-%
%nopsG6#Fhw>F\w-%%subsG6$7#-F^x6$/&FhwFcq&F[xFcqFdxF\w@$30F\w7"/FLFM>FL7#-%"$G6
$FM-Fgx6#F\w>8&-%4Involutive/proc_ordG6*FLFhwF\wF`w&Fgv6#FMF[xFcw4FI@$&F`zFez>F
cwFfy@$/&F_w6#;,&FfxFUFUFU,&FfxFUF[uFU7#-F[z6$""!F[u>F_wFd[l>87-%&parseG6#-Fax6
/Q@g->`Involutive/pol_lead_mon`(g,F$-%(convertG6$F[uF\pQ",F$-F_\l6$F[xF\pFa\l-F
_\l6$&F`zF\qF\pFa\l-F_\l6$FcwF\pFa\l-F_\l6$&F`zF`uF\pFa\l-F_\l6$F_wF\pQ")F$-%9I
nvolutive/setupP_T_ListG6*-%(collectG6%&FftFezFhw%,distributedGF[u&FftF[oFg[l&F
`zFaw&FgvF`uFhw&FftFaw@$4-%)assignedG6#Feu-FE6#%Umissing~involutive~basis;~run~
InvolutiveBasis~first.G>8:f*6#%"rG6,%"aG%"bG%"dG%#dpGF'%"mG%"nG%&n_mulG%"pG%%te
rmGF$F$C'>FO-Fgx6#&Feu6%FUFUFU>F_p-Fgx6#&Feu6%FUFhpFU>FftFd[l@$0&Feu6%FUFfwFUFd
[l@%%5Involutive/janetlikeG?&F^qFeuFfpC%>FL-%*numboccurG6$&F^qF`u%)infinityG>F`
z-F_\l6$&F^q6$FhpFU%"+G@%/FLF_p?(8(F`zFU9$Ffp>Fft,&FftFU-%)binomialG6$,*FealFUF
`z!""FLFUF]blFU,&FLFUF]blFUFUC'>Fap-F[y6$/F[alFd[lFj`l>F[u7#-F[z6$Fd[lF_p?(Feal
F`zFUFfalFfp>FftFhal>F[u-%8Involutive/nextmonomialG6$F[uFap?(F$FUFUF$0F[uFeblC%
>8'-F_\l6$F[uFaal?(Feal,&F`zFUFbclFUFUFfalFfp>Fft,&FftFU-Fjal6$,,FealFUF`zF]blF
bclF]blFLFUF]blFUF^blFU>F[uF[cl?&F^qFeuFfpC%>FLFg`l>F`zF]al?(FealF`zFUFfalFfp>F
ftFhal-%'expandG6#FftF$F$F$@'-Fgn6$FOF\pC(>6$FbclFeal-%7Involutive/pmaxmin_degG
F_^l@$2Fd[lFeal-%'printfG6$Q+s~<~%d:~0|+F$Feal?(F^qFealFU,&FbclFUF]blFUFfp-Fael
6%Q,s~=~%d:~%a|+F$F^q-Fd^lFcq-Fael6%Q-s~>=~%d:~%a~F$Fbcl-F[y6$/8;.FO-%7Involuti
ve/SubmoduleHPG6#F`fl@$F_p-%;Involutive/restoreP_T_ListG6#Fcu-Fat6#FP-Fgn6$FOFf
oC%>89-Fd^l6#FO@$F_pFfflF_gl@%F_pC$Ffflf*6#F&F$6$%)operatorG%&arrowGF$-F"6$T#/F
_sFfalF$F$6$F:Fcpf*FfglF$FgglF$-F"6#F]hlF$F$F$F$F$F$F$
M7R0
I@Involutive/InvolutivePreprocessf*6$%"LG'%%varsG%%listG61%"aG%"iG%"jG%"kG%"sG%
"vG%'n_entrG%$varG%$relG%"FG%"GG%.force_collectG%,force_evalaG%+trans_elemG%(fi
ndallG6#%jnCopyright~(C)~2005-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C/
>8--%6Involutive/proc_inputG6#9$>8*&F>6#""">80&F>6#""&>81&F>6#""(>82%&falseG?(8
&""$FG9#%%trueG@%-%%typeG6$&9"6#FV%'stringGC$>8.Fhn?(8%FGFG-%'lengthG6#F^oFY@(/
&F^o6#F`oQ"AF;>FSFY/FfoQ"SF;>FIFY0FfoQ!F;-%&ERRORG6#%aooptions~must~be~given~by
~a~string~consisting~of~letters~in~|fr"A",~"S"|hr.G-F`p6#%0invalid~option.G>8+&
-%5Involutive/proc_varsG6$9%FDFF@%0%2Involutive/characG""!>F>-%$modG6$-%(collec
tG6%&F>6#""%Fgp%,distributedGF_q>F>Feq?(F`oFGFG-%%nopsG6#FgpFY@$4-%$hasG6$F>&Fg
pFgo-%(WARNINGG6#-%$catG6%%*variable~G-%(convertG6$FfrF[o%F~does~not~occur~in~g
iven~polynomials.G>8/-%&evalbG6#0-%&minusG6$<#-%#opG6#FN<#-F]tF`r<">8,7"?(F`oFG
FG-F_r6#F>FYC$>FVFG?(F;FGFGF;FYC%>8'FG?(F;FGFGF;FYC$>8)-%6Involutive/linear_var
G6%&&&F>FgoFFFjnFgpF]u@%2F`qFauC$@%/F_qF`qC%>8(-%&solveG6$Feu&Fgp6#Fau@&FI>F_v-
%'normalG6#-%&evalaG6#F_vFcs>F_v-FhvF\w@%/FDFG>Fct7$-F]t6#Fct/FcvF_v>Fct7$Fcw/-
%'subsopG6$/FVFcv7#-%"$G6$F`qFD-Fjw6$/FVF_vFfu@%/-Fcq6$-%&coeffGFbvF_qF`q[C%>F_
v*&-Fcq6$,$*$Fhx!""FbyF_qFG-%%subsG6$/FcvF`qFeuFG@'FI>F_v-Fcq6$-F[w6#-%)Simplif
yGF\wF_qFcs>F_v-Fcq6$-%'NormalGF\wF_q>F_v-Fcq6$F_vF_q@%F`w>FctFbw>FctFgw@%3FS2F
auF^r>F]u,&FauFGFGFGFjxFjx@%35FS/FauF`q2FVFD>FV,&FVFGFGFGFjx-%'RETURNGFdwF;F;F;
F;
M7R0
I6Involutive/Autoreducef*6$%"LG%%varsG6B%"aG%"gG%"iG%"jG%"lG%'n_entrG%)rhs_entr
G%'no_rhsG%,force_evalaG%.force_collectG%+trans_elemG%/default_lmprocG%&m_ordG%
$varG%(var_ordG%'vt_degG%(deg_ordG%)tup_permG%%seqvG%)entr_posG%*zero_listG%(al
lmultG%#ppG%'lmprocG%&N_OrdG%&B_OrdG%#eqG%#lmG%"CG%"FG%"JG%"RG6#%jnCopyright~(C
)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.G6"CJ>8A-%6Involutive/proc_i
nputG6#9$>8)&FM6#""">8*&FM6#""#>8+&FM6#""$>8,&FM6#""&>8.&FM6#""(>FM&FM6#""%>8/4
F\o>80Fho?(8'FjnFV9#%%trueG@%5-%%typeG6$&9"6#F_p%(integerG-Fep6$Fgp%%listG>F]pF
gp-%&ERRORG6#%0invalid~option.G>81-%5Involutive/proc_varsG6$9%FS>82&FdqFZ>83&Fd
qFin>84&FdqFgo>85&FdqF^o>87&Fdq6#""'>Fdq&FdqFU>%&_nvarG-%%nopsG6#Fdq>FM-%(colle
ctG6%FMFdq%,distributedG>8--%&evalbG6#0-%&minusG6$<#-%#opG6#Fao<#-FatF`s<">86Fd
q>897#-%"$G6$%)infinityGF]s>%(_nnformG""!>%'_reducGFau>%'_crit1GFau>%'_crit2GFa
u>%'_crit3GFau>%'_crit4GFau>Fjq-%%subsG6$7#-%$seqG6$/&FdqFip-%$catG6$%#_xGF_p/F
_p;FVF]sFjq@'F\oC$>FM-%&evalaG6#FM@%/%2Involutive/characGFau>8:%:Involutive/sim
p_prim_partG>Ffwf*6%%"pGF5%"qGFJFJFJ7$FQ9&FJFJFJFgs>FfwFgw>Ffw%5Involutive/prim
_partG>8(-%4Involutive/proc_ordG6*F]pFdqFjqF]rF`rFgtFfrFjo>8<&FcxFZ>8=&FcxFin>8
;-%&parseG6#-Fgv6/Q@g->`Involutive/pol_lead_mon`(g,FJ-%(convertG6$FS%'stringGQ"
,FJ-Ffy6$FgtFhyFiy-Ffy6$&FcxFUFhyFiy-Ffy6$FfrFhyFiy-Ffy6$&FcxF^oFhyFiy-Ffy6$F]r
FhyQ")FJ>8>f*6$F(%"bGFJFJFJ-Fis6#/FQFhqFJFJFJ>887#-F\u6$FauFS>8B7"?(8&FVFV-F_sF
awFap@$53Fcw0&&FM6#Fh[lFUF`[l30FdwFau0-%$modG6$F^\lFdwF`[lC'>8%F_\l@$%4Involuti
ve/ratcoeffG>Fi\l-Ffw6%&Fi\lFUFgt&Fi\lFZ>Fi\l7$-%$mapG6$f*6#F(FJ6$%)operatorG%&
arrowGFJ-Fcs6%FQT#FesFJFJ6$F:FgtF_]lF`]l>8?-F^y6#F_]l@%F[]l>Fe[l-%:Involutive/p
binary_insertG6)7*Fi\l&F`^lFUFi^l7#-F\u6$FauF]sFit&F`^lFZFf[l-%1Involutive/ecar
tG6&Fi\lF`^lFgt%(loc_varGFe[lFV-F_s6#Fe[lFb_lFhxFhz>Fe[l-Ff^l6)7*Fi\l7$-Fat6#Fi
^l&F]_lFUFh_lFj^lFitF]_lFf[lF^_lFe[lFVFb_lFb_lFhxFhz>Fe[l-%%sortG6$-%5Involutiv
e/autoreducG6&Fe[lFdqF^yFfwF[y@%/FSFV@'Fgn-Fd]l6$f*6#F*FJFh]lFJ-Fat6#&&FQFUFUFJ
FJFJFe[l/FXFV-Fd]l6$f*Fi`lFJFh]lFJ/Fj`l-Fat6#&F]alFZFJFJFJFe[l-Fd]l6$f*Fi`lFJFh
]lFJ/Fj`lFealFJFJFJFe[l@'Fgn-Fd]l6$f*Fi`lFJFh]lFJF\alFJFJFJFe[lF^al-Fd]l6$f*Fi`
lFJFh]lFJ/F\alFcalFJFJFJFe[l-Fd]l6$f*Fi`lFJFh]lFJ/F\alFealFJFJFJFe[lFJ66F]s%&_p
varG%)_pno_rhsG%0_pforce_collectG%._pforce_evalaG%+PolTab_VarG%&P_HOMGF`uFcuFeu
FguFiuF[v%*pnumber_tG%)P_T_ListG%(_StatssG%+_JB_factorG%3_JB_factor_multvarG%(_
JB_varG%*_JB_compaGFJFJ
M7R0
I4Involutive/Completef*6$%"LG%%varsG6D%"aG%"gG%"iG%"jG%"lG%"FG%"QG%"kG%"nG%&m_o
rdG%'n_entrG%)rhs_entrG%'no_rhsG%,force_evalaG%.force_collectG%+trans_elemG%$va
rG%%seqvG%(var_ordG%'vt_degG%(deg_ordG%)tup_permG%)entr_posG%/default_lmprocG%'
lmprocG%#ppG%&Q_OrdG%#eqG%#lmG%*pnumber_qG%*zero_listG%(allmultG%#suG%$conG6#%j
nCopyright~(C)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.G6"CE>8)-%6Invo
lutive/proc_inputG6#9$>8.&FO6#""">8/&FO6#""#>80&FO6#""$>81&FO6#""&>83&FO6#""(>F
O&FO6#""%>8;4F^o>8-Fjo?(8'F\oFX9#%%trueG@%5-%%typeG6$&9"6#Fap%(integerG-Fgp6$Fi
p%%listG>F_pFip-%&ERRORG6#%0invalid~option.G>84-%5Involutive/proc_varsG6$9%FU>8
6&FfqFfn>87&FfqF[o>88&FfqFio>89&FfqF`o>8:&Ffq6#""'>Ffq&FfqFW>%&_nvarG-%%nopsG6#
Ffq>FO-%(collectG6%FOFfq%,distributedG>82-%&evalbG6#0-%&minusG6$<#-%#opG6#Fco<#
-FctFbs<">85Ffq>8(-%4Involutive/proc_ordG6*F_pFfqF\rF_rFbrFitFhrF\p>8>&F[uFfn>8
<-%&parseG6#-%$catG6/Q@g->`Involutive/pol_lead_mon`(g,FL-%(convertG6$FU%'string
GQ",FL-F\v6$FitF^vF_v-F\v6$&F[uFWF^vF_v-F\v6$FhrF^vF_v-F\v6$&F[uF`oF^vF_v-F\v6$
F_rF^vQ")FL@'F^oC$>FO-%&evalaG6#FO@%/%2Involutive/characG""!>8=%:Involutive/sim
p_prim_partG>Fhwf*6%%"pGF8%"qGFLFLFL7$FS9&FLFLFLFis>FhwFiw>Fhw%5Involutive/prim
_partG>8?f*6$F(%"bGFLFLFL-F[t6#/&FSF[o&FjqF[oFLFLFL>8B7#-%"$G6$FfwFU>8C7#-Fby6$
%)infinityGF_s>8*7">8AFfw?(8&FXFX-FasFbwFcp@$53Fdw0&FO6$F`zFXF_y30FewFfw0-%$mod
G6$FfzFewF_yC(>8%&FO6#F`z@$%4Involutive/ratcoeffG>F`[l-Fhw6%&F`[lFWFfq&F`[lFfn>
F`[l7$-%$mapG6$f*6#F(FL6$%)operatorG%&arrowGFL-Fes6%FST#FgsFLFL6$F8FfqFh[lFi[l>
8@-Fcu6#Fh[l@%Fd[l>F[z-%:Involutive/pbinary_insertG6)7*F`[l&Fi\lFWFb]l7#-Fby6$F
fwF_sFey&Fi\lFfnF\z-%1Involutive/ecartG6&F`[lFi\lFit%(loc_varGF[zFXF^zF^zF`uFex
>F[z-F_]l6)7*F`[l7$-Fct6#Fb]l&Ff]lFWF_^lFc]lFeyFf]lF\zFg]lF[zFXF^zF^zF`uFex>F^z
-Fas6#F[z@$/F^zFfwC%@%/FUFX>FOFfw>FOF_y@$4Fin@%/FZFX>FO/FOFfw>FO/FO%.rhs_zero_l
istG-%'RETURNG6#7#FO>FOF[z?(FLFXFXFL0F[zF\zC(>FO-%%sortG6$FO%2Involutive/pplex3
G>8,Faz>F[zF\z>FO-%'subsopG6$/Fd`l7*&FO6$Fd`lFX&FO6$Fd`lFgn&FO6$Fd`lF\oFc]lFey&
FO6$Fd`lF[sF\z-Fh]l6&F\al-Fcu6#&F\alFWFitFj]lFO?(F`z,&Fd`lFX!""FXF[blFXFcpC(>8D
Fey>8E&FO6$F`zFjo>FapFX?(FLFXFXFL31FapF_s/&FO6&,&F`zFXFXFXF\oFXFap&FO6&F`zF\oFX
FapC%>F^bl-Fh`l6$/Fap&FO6%FjblFaoFapF^bl@%2&F^blF[qFiy@$0&F`blF[q,&FfclFXFXFXC$
>F[z7$-FctFe^l7)-Fes6%7$-F]\l6$f*F`\lFLFa\lFL*&)&Ff\l6#T%,&&T'FidlFXFXFXFXFSFXF
LFL6(F9FitF+FapFHF^bl&FO6%F`zFXFX-F]\l6$f*F`\lFLFa\lFLFfdlFLFLF^el&FO6%F`zFXFgn
FitFgs&FO6$F`zFgn-Fh`l6$/FX-Fh`l6$/Fap,(F[clFXFfclFXFXFX&FO6%F`zF\oFX&FO6$F`zF\
oFc]lFey7$&FO6%F`zF[sFX*&)&FitF[qFjclFX&FO6%F`zF[sFgnFXFafl>F`bl-Fh`l6$/FapFjcl
F`bl>F`bl-Fh`l6$/FapFfwF`bl>Fap,&FapFXFXFX@$FfblC$@%%5Involutive/janetlikeGC%>F
[u,&FhblFXF[clF[bl>F^bl-Fh`l6$/Fap,&F[uFXF[blFXF^bl@$0FiclF[uC$>F[z7$F^dl7)-Fes
6%7$-F]\l6$f*F`\lFLFa\lFL*&)FhdlF]elFXFSFXFLFL6(F9FitF+FapF,F[uF_el-F]\l6$f*F`\
lFLFa\lFLF]ilFLFLF_ilFdelFitFgsFfel-Fh`l6$/FX-Fh`l6$/Fap,&F[clFXF[uFXF_flFaflFc
]lFey7$Fdfl*&)FhflF[uFXFiflFXFafl>F`bl-Fh`l6$/FapF[uF`blC$>F^bl-Fh`l6$FbglF^bl@
$/FiclFfwC$>F[z7$F^dl7)-Fes6%7$-F]\l6$f*F`\lFLFa\lFL*&FhdlFXFSFXFLFL6&F9FitF+Fa
pF_el-F]\l6$f*F`\lFLFa\lFLFa[mFLFLFb[mFdelFitFgsFfel-Fh`l6$/FX-Fh`l6$/Fap,&F[cl
FXFXFXF_flFaflFc]lFey7$Fdfl*&FhflFXFiflFXFafl>F`bl-Fh`l6$/FapFXF`bl>F`bl-Fh`l6$
-%$seqG6$/8+Ffw/Fj\m;FdglF_sF`bl>FO-Fh`l6$/F`z-Fh`l6$/FjoF`bl-Fh`l6$/FaoF^blFa[
lFO?&F`[lF[zFcpC$>FO-F_]l6)F`[lFOFXF^zF^zF`uFex>F^zFaz-Fg_lFbwFL6#F_sFLFL
M7R0
IDLocalInvolutiveBasisfreeGINV/homalg=6"%&falseGE\[l&%'ReduceG%;Involutive/Loca
lReduceGINVG%3SyzygiesGeneratorsG%=Involutive/LocalSyzygiesGINVG%.BasisOfModule
G%>Involutive/LocalBasisIdentityG%-IntersectionG%8homalg/Intersection.newG%'IsU
nitG%7Involutive/LocalIsUnitGF$
M7R0
I;Involutive/ssystem_booleanf*6#%"sG6#%$resG6#%boCopyright~(C)~2008-2010~by~Mar
kus~Lange-Hegermann.~All~rights~reserved.G6"@%/-%*substringG6$-%(convertG6$-%*i
nterfaceG6#%(versionG%'stringG;""""")Q)StandardF*C$-%(ssystemG6#9$-%'RETURNG6#-
%&evalbG6#/&%"%G6#F9""!C%-%$catG6%Q$if~F*F@QI;~then~echo~true~;~else~echo~false
~;~fi;F*-F>6#FI-FB6#-%&parseG6#&FI6#""#F*F*F*F*
M7R0
IDInvolutive/pnormal_form_evala_localf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc
_varG6"6#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~rights~reser
ved.GF+-%'RETURNG6#-%>Involutive/pnormal_form_localG6)9$9%9&9'9(9)"#;F+F+F+F+
M7R0
IGInvolutive/pnormal_form_evala_lm_localf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(
loc_varG6"6#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~rights~re
served.GF+-%'RETURNG6#-%>Involutive/pnormal_form_localG6)9$9%9&9'9(9)"#<F+F+F+F
+
M7R0
I;Involutive/ginvBasisChangef*6F%"FG%$varG%)alg_elemG%(tr_elemG%'n_entrG%)rhs_e
ntrG%'no_rhsG%"cG%&m_ordG%(var_ordG%)entr_posG%'vardegG%'tupdegG%(algextsG%-alg
extindetsG%/transextindetsG%%fextG%1extendbasis_fextG%%algoG%+time_boundG%#trG%
*quietmodeG%#GBG%%contG%*donotreadG%*nowarningG%+tracedenomG%+movedboundG%-qlen
gthboundG%,degreeboundG%,whichoutputG%)tup_permG%(do_normG%(rootofsG%)radicalsG
%#hfG6-%%fileG%&fnameG%-extend_fnameG%"iG%"jG%"rG%"tG%%nvarG%+trans_elemG%'std_
wsG%"SG6#%enCopyright~(C)~2010~by~Daniel~Robertz.~All~rights~reserved.G6"CO@$4%
4Involutive/ratcoeffG-%&ERRORG6#%[qinvolutive~basis~computation~via~homogenizat
ion~not~implemented~yet~for~integers~as~ground~ring.G@$4-%%typeG6$9/%)listlistG
-Fgn6#%Aimproper~use~of~ginvBasisChange.G@%9*@$2"'++59(-Fgn6#%Alength~of~tuples
~exceeds~100000.G@$2Fho,&Fio"""-%%nopsG6#&&9$6#F`p6#""#F`pFjo>8+-Fbp6#9%>8,-%'r
emoveG6$f*6#FMFW6$%)operatorG%&arrowGFW-%'memberG6$FfpT$FWFW6$F3929'@$0907#-%"$
G6$""!Fio-Fgn6#%Yup~to~now,~no~degrees~can~be~assigned~to~tuples~in~ginv.G@$2Fi
p-Fbp6#9--Fgn6#%bpup~to~now,~only~two~blocks~of~variables~for~elimination~order
ing~are~supported~by~ginv.G@$2Fip-Fbp6#9.-Fgn6#%_pup~to~now,~only~two~blocks~of
~tuples~for~elimination~ordering~are~supported~by~ginv.G@$32Fip,&-Fbp6#F`qF`p-F
bp6#93F`p0%2Involutive/characGFgr-Fgn6#%_qup~to~now,~transcendental~extensions~
of~degree~greater~than~2~are~only~supported~over~the~rationals.G@$32FgrF^tFZ-Fg
n6#%doup~to~now,~transcendental~extensions~are~not~supported~over~the~integers.
G@'2Fgr-%+searchtextG6$Q&linuxFW-%+kerneloptsG6#%(versionGC$@%/-Ffu6#%)wordsize
G"#k@$2"+[O[Z@9+-Fgn6#%?characteristic~must~be~<~2^31.G@$2"&oF$Fcv-Fgn6#%?chara
cteristic~must~be~<~2^15.G@%/-%*substringG6$-%(convertG6$-%*interfaceG6#.Fhu%'s
tringG;F`p"#GQ=Standard~Worksheet~InterfaceFWC$>8%-%CInvolutive/stdinterface_ge
ttmpnameGFW>8-%%trueGC&@$4-%;Involutive/ssystem_booleanG6#%3test~-d~/tmp/$USERG
C$>8)-%(ssystemG6#%1mkdir~/tmp/$USERG@$0&F^yFhpQ!FW-Fgn6#%Ecannot~write~tempora
ry~file~to~/tmp.G>F_x-F`y6#%Gecho~/tmp/$USER/Involutive-$PPID-$USERG@%2Fgr-Fbu6
$Q"$FW&F_xFhp>F_xQ0/tmp/InvolutiveFW>F_x-%=Involutive/remove_whitespaceG6#Fcz>F
cx%&falseG2Fgr-Fbu6$Q&APPLEFWFeuC%@$FhvFjv>F_xF`x>FcxFdxC%@$FhvFjv>F_xQ1\TEMP\I
nvolutiveFW>FcxF[[l@$095Ffy>8&-%$catG6%F_xF[\lQ(.binaryFW>F_x-F_\l6$F_x94>8$-%&
fopenG6$F_x%&WRITEG-%<Involutive/writeGINV1headerG63Fg\lF^q9&F`qFio9)FeoFcv""%7
"Fb]l&F_oFgpFbr91F^rFct9>-%(fprintfG6$Fg\lQ*eqs~=~[\|+FW?(8'F`pF`p-Fbp6#FfpFdxC
&@%Feo@%/FioF`p>8.-F_\l6$-Fcw6$-%#opG6#&Ffp6$F[^lF`pFiwQ"~FW>Fc^l-Fcw6$F[_lFiw>
Fc^l-Fcw6$-%$mapG6$Fi^l&Ffp6#F[^lFiw?(FWF`pF`pFW2Fho-%'lengthG6#Fc^lC&>F^y-Fbu6
$Q"|+FWFc^l?(FWF`pF`pFW2FgrF^yC&@%32F`pF^y/&Fc^l6#,&F^yF`p!""F`pQ"\FW-Fg]l6%Fg\
lQ#%aFW-F`w6$Fc^l;F`p,&F^yF`p!"#F`p-Fg]l6%Fg\lFaal-F`w6$Fc^l;F`pF\al-Fg]l6$Fg\l
Q#\|+FW>Fc^l-F`w6$Fc^l;,&F^yF`pF`pF`pF]al>F^yF``l-Fg]l6%Fg\lFaalFc^l>Fc^lFfy@$2
FgrF[`lFebl@$2F[^lF\^l-Fg]l6$Fg\lQ$,\|+FW-Fg]l6$Fg\lQ#]|+FW@$Fj[lC(-Fg]l6$Fg\lQ
<oldbasis~=~ginv.basisLoad("FW-Fg]l6$Fg\lF]\l-Fg]l6$Fg\lQ.",~"TQ",~iD)|+FW-Fg]l
6$Fg\lQ=for~i~in~oldbasis.iterIB():|+FW-Fg]l6$Fg\lQ1~~eqs.append(i)|+FW-Fg]l6$F
g\lQ.del~oldbasis|+FW>Fc^lQ;basis1~=~ginv.basisBuild("FW@%096Ffy>Fc^l-F_\l6$Fc^
lFidl>Fc^l-F_\l6$Fc^lQ#TQFW>Fc^l-F_\l6$Fc^lQ(",~iD,~FW-Fg]l6$Fg\l-F_\l6$Fc^lQ$e
qsFW@$2Fgr97C$-Fg]l6$Fg\lQ(,~time=FW-Fg]l6$Fg\l-Fcw6$F\flFiw@$2Fgr9AC$-Fg]l6$Fg
\lQ/,~DegreeBound=FW-Fg]l6$Fg\l-Fcw6$FgflFiw@$%2Involutive/absremG-Fg]l6$Fg\lQ@
,~absolutelySmallestRemainder=1FW@$49;-Fg]l6$Fg\lQ,,~content=0FW-Fg]l6$Fg\lQ4,~
skipHilbertPoly=1FW@$09GFb]lC$-Fg]l6$Fg\lQ3,~hilbertFunction=FW-Fg]l6$Fg\l-Fcw6
$F`hlFiw-Fg]l6$Fg\lQ#)|+FW-Fg]l6$Fg\lQ1ginv.basisSave("FW@%/-Fbp6#F_oF`p-Fg]l6$
Fg\l-F_\l6$F_xFa\l-Fg]l6$Fg\l-F_\l6$F_xQ..step1.binaryFW-Fg]l6$Fg\lQ,",~basis1)
|+FW@%F`il-%AInvolutive/writeGINV1MapleOutputG6,Fg\lF_xQ'basis1FWFioFeo9:F\fl9<
9BFe]l-Fajl6,Fg\l-F_\l6$F_xQ'.step1FWFcjlFioFeoFdjlF\flFejlQ)invbasisFWFe]l?(8(
FipF`pFailFdxC6-Fg]l6$Fg\l-F_\l6%Q#imFW-Fcw6$F^[mFiwQ$~=~FW@'/9,Fip@%3Fa^lFeo@%
/&F_o6#F^[m7#-Fer6$F`pF[q-Fg]l6$Fg\lQGginv.MonomInterface("DegRevLex",~st,~[FW-
Fg]l6$Fg\lQJginv.MonomInterface("DegRevLexDeg",~st,~[FW@%F^\m-Fg]l6$Fg\lQJginv.
MonomInterface("PotDegRevLex",~st,~[FW-Fg]l6$Fg\lQMginv.MonomInterface("PotDegR
evLexDeg",~st,~[FW/Fj[mFa]l@%F\\m@%F^\mFd\mFg\m@%F^\m-Fg]l6$Fg\lQJginv.MonomInt
erface("TopDegRevLex",~st,~[FW-Fg]l6$Fg\lQMginv.MonomInterface("TopDegRevLexDeg
",~st,~[FWC$-%'fcloseG6#Fg\lFao?(F[^lF`pF`pF[qFdxC$-Fg]l6$Fg\l-F_\l6%Q"'FW-Fcw6
$&F^qFh_lFiwFe^m@$2F[^lF[q-Fg]l6$Fg\lQ#,~FW@$FZ-Fg]l6$Fg\lQ&,~'@'FW-Fg]l6$Fg\lQ
"]FW@$0F_\mFa\mC$-Fg]l6$Fg\lQ+,~degrees=FW@%Fen-Fg]l6$Fg\l-Fcw6$F_\mFiw-Fg]l6$F
g\l-Fcw6$7$-Fi^l6#F_\mF`pFiwFihl-Fg]l6$Fg\l-F_\l6%Q#ipFWFe[mQP~=~ginv.PolyInter
face("PolyList",~st,~im2,~ic)|+FW-Fg]l6$Fg\l-F_\l6%Q#iwFWFe[mQ8~=~ginv.WrapInte
rface("FW@+/%3Involutive/invcritGFb]l-Fg]l6$Fg\lQ(WithoutFW/Feam7$F`pFip-Fg]l6$
Fg\lQ.CritPartiallyFW/Feam7%F`pFip""$-Fg]l6$Fg\lQ'C1C2C3FW/Feam7&F`pFipF`bmFa]l
-Fg]l6$Fg\lQ)C1C2C3C4FWC$F\^m-Fgn6#%Wundefined~involutive~criteria;~see~?Involu
tiveOptions.G-Fg]l6$Fg\l-F_\l6%Q&",~ipFWFe[mF[il@%%5Involutive/janetlikeG-Fg]l6
$Fg\l-F_\l6'Q#iDFWFe[mQJ~=~ginv.DivisionInterface("JanetLike",~iwFWFe[mF[il-Fg]
l6$Fg\l-F_\l6'FhcmFe[mQF~=~ginv.DivisionInterface("Janet",~iwFWFe[mF[il-Fg]l6$F
g\l-F_\l6%FielFe[mQ'~=~[]|+FW-Fg]l6$Fg\l-F_\l6%Q/for~p~in~basisFW-Fcw6$,&F^[mF`
pF]alF`pFiwQ,.iterIB():|+FW-Fg]l6$Fg\l-F_\l6'Q(~~~~eqsFWFe[mQA.append(p.changeP
olyInterface(ipFWFe[mQ$))|+FW-Fg]l6$Fg\l-F_\l6)Q&basisFWFe[mQ<~=~ginv.basisBuil
d("TQ",~iDFWFe[mQ&,~eqsFWFe[mQ6,~skipHilbertPoly=1)|+FWF\il@%2F^[mFail-Fg]l6$Fg
\l-F_\l6&F_xQ&.stepFWFe[mFa\lFcil-Fg]l6$Fg\l-F_\l6%Q)",~basisFWFe[mF[il@%F]fm-F
ajl6,Fg\l-F_\l6%F_xFbfmFe[m-F_\l6$FhemFe[mFioFeoFdjlF\flFejlF\[mFe]l-Fajl6,Fg\l
F_xF]gmFioFeoFdjlF\flFejlFfjlFe]lF\^m@%99@%FcxC%>F^y-F`y6#-F_\l6$Q)runginv~FWF_
x@$/F^y%%NULLG-Fgn6#%Acould~not~run~program~'runginv'.G>F^y&F^yFgpC$>F^y-F`y6#-
F_\l6%FjgmF_xQ-~>~/dev/nullFW@%3/FbhmFgr/FeyFfy>F^yFgr>F^yF`pC$>F^y-%'systemGFg
gm@$F\hmF^hm@$0F^yFgr-Fgn6#%Merror~during~call~of~Python~or~interruption.G@$F`u
C%>F^y-F`y6#-F_\l6'Q&if~[~FWF_xQ,.janet~-ot~FWF_xQ:~];~then~echo~-n~true;~fiFW@
$2Fgr-F\`l6#Fey-Fgn6#%dpoutput~file~of~ginv~is~older~than~input~file~(probably,
~program~ginv~stopped~abnormally).G@$4FejlC$>F^y-F`y6#-F_\l6%Q*filesize~FWF_xQ'
.janetFW@$30F^yF]hmF\imC$>F[^l-%'sscanfG6$FeyQ#%dFW@$3349=2Fgr-FbpFh_l2"'++I&F[
^lFgp-%(WARNINGG6#Q\oresulting~involutive~basis~is~big;~reading~it~may~take~a~w
hile...FW@$Fejl-%'RETURNG6#Fb]lA-F_\l6$F_xFd[n@$333Fa\nF[fl-%)assignedG6#%6_IB_
RESULTout_of_timeG/Fj]n.%%TrueG-Fi\n6#%[ocomputation~of~involutive~basis~stoppe
d~due~to~time~restriction.G>%*_JB_compaG.Fb^n@$Fe]l>%._GINV_inv_denG%0_IB_RESUL
TdenomG@+5/FfjlFb]l/-F`w6$Ffjl;F`p"#dQZinvbasis,invbasislm,invbasisanc,multvar,
factormodulebasisFWC%@$54333-Fh]n6#%+_IB_RESULTG-Fh]n6#%-_IB_RESULTlmG-Fh]n6#%.
_IB_RESULTancG-Fh]n6#%2_IB_RESULTmultvarG3Fen43-Fh]n6#%1_IB_RESULTfactorG-Fh]n6
#%8_IB_RESULTfactormultvarG-Fgn6#%Cerror~in~computation~or~interface.G@$FenC%>8
*&-%4Involutive/proc_ordG6*Fa]lF^qFb]l7$-Fi^l6#&F_o6#F]al-Fi^l6#FbrFb]lF^q7#Fio
Fdx6#""&@%2F`pFioC%>%+_JB_factorG-%%sortG6$-%$zipG6%f*6$FMFNFWFfqFW7$FfpF^qFWFW
FWFi`nF\anf*F^cnFWFWFW@'2&&F^qFgpFhpFdpFdx2FdpFccnF[[l-T#6$&FepFgp&FdcnFgpFWFW6
$FPFcan>%3_JB_factor_multvarG-Fe_l6$f*FeqFWFfqFW&FfpFhpFWFWFWFfbn>Ffbn-Fe_l6$f*
FeqFWFfqFW-%'subsopG6$/,&FdpF`pF`pF`pFicn7#-Fer6$FgrF\rFWFW6$F)FioFfbnC%>Ffbn-F
hbn6$-F[cn6%f*F^cnFWFfqFWF_cnFWFWFWFi`nF\anf*F^cnFWFfqFW-Fgcn6$FepFdcnFWFWF[dn>
F]dn-Fe_l6$f*FeqFWFfqFWFadnFWFWFWFfbn>Ffbn-Fe_l6$f*FeqFWFfqFWFepFWFWFWFfbn>%(_J
B_varGF^q-F^]n6#7&Fj_nF``nF]`nFc`n/-F`w6$Ffjl;F`p"#RQHinvbasis,invbasislm,invba
sisanc,multvarFWC$@$Fd_nF]anFcfn/FfjlF\[mC$@$4Fh_nF]an-F^]n6#7&Fj_nFb]lFb]lFb]l
/FfjlQ2factormodulebasisFWC&@$Fe`nF]an>FcanFdan@%FcbnC%>Ffbn-Fhbn6$-F[cn6%f*F^c
nFWFfqFWF_cnFWFWFWFi`nF\anf*F^cnFWFWFW@'FbcnFdxFecnF[[lFfcnFWFWF[dn>F]dn-Fe_l6$
f*FeqFWFfqFWFadnFWFWFWFfbn>Ffbn-Fe_l6$f*FeqFWFfqFWFfdnFWFWF^enFfbnC%>Ffbn-Fhbn6
$-F[cn6%f*F^cnFWFfqFWF_cnFWFWFWFi`nF\anf*F^cnFWFfqFWFgenFWFWF[dn>F]dn-Fe_l6$f*F
eqFWFfqFWFadnFWFWFWFfbn>Ffbn-Fe_l6$f*FeqFWFfqFWFepFWFWFWFfbn>FbfnF^q-Fgn6#%4err
or~in~interface.GFW6'FfbnF]dnFbfnFb^nFf^nFWFW
M7R0
I4Involutive/compiled"-A5@75?6"
M7R0
I<Involutive/pdegrevlex_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2
004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8%-%(convertG6$&9$6#"""%"
+G>8&-F26$&9%F6F8@'2F0F:-%'RETURNG6#%%trueG2F:F0-FB6#%&falseG?(8$-%%nopsG6#F4!"
"F7FD@&2&F=6#FJ&F4FRFA2FSFQFFFDF-F-F-F-
M7R0
I6Involutive/gb_leadmonf*6"6#%"sG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz
.~All~rights~reserved.GF$C$>8$-%(convertG6$-%+kerneloptsG6#%(versionG%'stringG@
'5555/-%*substringG6$F+;"""""(Q(Maple~VF$/F:Q(Maple~6F$/F:Q(Maple~7F$/F:Q(Maple
~8F$/-F;6$F+;F>""*Q*Maple~9.5F$&%)GroebnerG6#%(leadmonG/FHQ*Maple~9.0F$C$FN,$FP
!""&FN6#%,LeadingTermGF$F$F$F$
M7R0
I5Involutive/proc_varsf*6$'%%varsG%%listG%'n_entrG60%"aG%"iG%"jG%"lG%"vG%$varG%
(var_ordG%(deg_ordG%(var_degG%(tup_degG%)tup_permG%(tup_numG%'blocksG%)entr_pos
G6#%jnCopyright~(C)~2002-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C:>8)%%
NULLG>8*F>>8,F>>8+F>>8-7#-%"$G6$""!9%>8.F>>817">8/7#-FI6#;"""FL>8'FX@$/9$FQ-%&E
RRORG6#%Gexpecting~non-empty~list~of~variables.G?(8%FXFX-%%nopsG6#Fgn%%trueG@%-
%%typeG6$&Fgn6#F]oF'C%@$/FfoFQ-Fin6#%Punexpected~empty~list~in~the~list~of~vari
ables.G@%-Fdo6$&Ffo6#FX%)equationG>8&-%#opG6$FXFap>FepFap@)-Fdo6$Fep%*nonposint
G-Fin6$%Zi-th~standard~basis~vector~does~not~exist~in~given~moduleG/.F]oFep-Fdo
6$Fep%'posintGC)@&/FZFX>80Fao4Fjq-Fin6#%`pexpecting~either~a~sequence~of~entry~
numbers~or~a~sequence~of~lists~of~entry~numbers.G>8(-%$mapG6$f*6#F*F:6$%)operat
orG%&arrowGF:@%-Fdo6$FgnFcp7$-Fgp6$FXFgn-Fgp6$""#Fgn7$FgnFKF:F:F:Ffo>Fep-%'sele
ctG6$f*FerF:FfrF:-%&evalbG6#52&FgnFbpFX2T$F]tF:F:6$F(FLF`r@$0FepFQ-Fin6$F`q/Fbq
&&FepFbpFbp?(FepFXFX-F_o6#F`rFao@%/&FS6#&&F`r6#FepFbpFK-Fin6#%joentry~numbers~a
re~not~allowed~to~occur~more~than~once~in~the~list~of~variables.GC%>FN6$FNF_u>F
S-%'subsopG6$/F_uFKFS>FF-Fju6$/F_u&F`u6#FasFF@%/FPFQ>FP7#Fit>FP7$-Fgp6#FP,&&FP6
#!""FXFitFX>FZ,&FZFXFitFX-Fdo6$Fep%%nameGC*@$2FXFZ-Fin6#%`pin~the~variable~list
~the~numbers~of~standard~basis~vectors~must~follow~the~variables.G@&/F=F>>FjqFa
oF[r-Fin6#%hoexpecting~either~a~sequence~of~variables~or~a~sequence~of~lists~of
~variables.G>F`r-Fbr6$f*FerF:FfrF:@%FjrF\s7$FgnFXF:F:F:Ffo@$0-F_o6#-Fes6%%(hast
ypeG-Fbr6$f*FerF:FfrF:F]tF:F:F:F`rFcwFit-Fin6#%@variables~must~be~of~type~name.
G>F=6$F=-Fgp6#-Fbr6$f*FerF:FfrF:F]tF:F:F:F`r>FB6$FB-Fgp6#-Fbr6$f*FerF:FfrF:&Fgn
FbvF:F:F:F`r>F@6$F@-Fbr6$f*FerF:FfrF:F]tF:F:F:F`r>FD6$FD-Fbr6$f*FerF:FfrF:FazF:
F:F:F`rF`yC$@%-Fdo6$FfoFcp>Fep-Fgp6$FXFfo>FepFfo@)F[qF^qFcq@$2FKFLC&@&Fhq>Fjq%&
falseGFjqF\r@$2FLFepF^q@%/&FSFauFKFbuC%>FN6$FNFep>FS-Fju6$/FepFKFS@$F^[l>FF-Fju
6$/Fep-Fgp6$FasFfoFF>FZ,&FZFXFXFXFawC'@$FfwFgw@$0F@F>-Fin6#%^pthe~variable~list
~must~contain~names~for~variables~or~lists~of~names~for~variables.G@&F[x>FjqFj[
lFjq-Fin6#%\oexpecting~either~list~of~variables~or~list~of~lists~of~variables.G
>F=6$F=Fep@%F^[l>FB6$FBF\]l>FB6$FBFXF`y@%-%$hasG6$FSFK@$0-%'removeG6%Fe^lFSFKFQ
-Fin6#%\rexpecting~all~entry~numbers~to~appear~in~the~list~of~variables~for~def
inition~of~non-standard~ordering~of~tuples.G>FNFU>FB7#FB@$4-Fdo6$FB-F'6#Feq-Fin
6#%Qexpecting~natural~number~as~degree~for~variable.G@$4-Fdo6$FF-F'6#%(integerG
-Fin6#%Wexpecting~integer~as~degree~for~standard~basis~vector.G@$Fdv>FP7#FL>%,_
entrblocksGFQ>F]oFX?(F:FXFXF:1F]oFLC&>FepFX?(F:FXFXF:31Fep-F_oFjv2&FPFauF]o>Fep
,&FepFXFXFX@%Faal>Fi`l7$-Fgp6#Fi`lFep[>F]o,&F]oFXFXFX>Fi`l7$Fjal-FI6#;F]oFL>%(_
vardegGFB>%(_tupdegGFF@$0-F_o6#7#F=-F_o6#<#F=-Fin6#%aothe~list~of~variables~con
tains~a~certain~variable~name~more~than~once.G7(F\cl7#F@7$-Fgp6#FB-Fgp6#FF7#FD7
#FNFPF:6%FeblFgblFi`lF:F:
M7R0
I:Involutive/proc_termorderf*6(%&m_ordG%%seqvG%(var_degG%(tup_degG%)entr_posG%/
default_lmprocG62%#_aG%#_bG%#_cG%$cmpG%'lmprocG%&B_OrdG%,B_Ord_blockG%&N_OrdG%,
N_Ord_blockG%$POTG%"sG%,str_testordG%.str_testorderG%-str_leadtermG%)str_seqvG%
1str_negtestorderG6#%jnCopyright~(C)~2002-2010~by~Daniel~Robertz.~All~rights~re
served.G6"C)>82-%$catG6$-%#opG6#-%$mapG6$f*6#F6F>6$%)operatorG%&arrowGF>-FC6$-%
(convertG6$9$%'stringGQ",F>F>F>F>&9%6#;"""!"#-FS6$&FY6#!""FV>8.-FS6$-%+kernelop
tsG6#%(versionGFV@'5555/-%*substringG6$F^o;Ffn""(Q(Maple~VF>/F[pQ(Maple~6F>/F[p
Q(Maple~7F>/F[pQ(Maple~8F>/-F\p6$F^o;Ffn""*Q*Maple~9.5F>C$>8/Q4Groebner[testord
er]F>>81Q:_a->Groebner[leadmon](_a,F>/FhpQ*Maple~9.0F>C$>F_qQ4Groebner:-testord
erF>>FbqQ:_a->Groebner:-leadmon(_a,F>C$>F_qQ4Groebner[TestOrder]F>>FbqQ>_a->Gro
ebner[LeadingTerm](_a,F>>80-FC6%Q*(_a,_b)->F>F_qQ((_a,_b,F>>83-FC6%Q.(_a,_b)->n
ot~F>F_qFer@;/FUFfnC(>8-%%trueG>8'-%&parseG6#-FC6&FarQ&plex(F>FAQ#))F>@%9)>8(-F
ds6#-FC6&FbqFhsFAFis>F]t-Fds6#-FC6)Q>_c->`Involutive/pleadmon`(_c,F>-FS6$FYFVFW
FarFhsFAQ$)))F>@%%4Involutive/ratcoeffGC$>8)%5Involutive/pplex_POTG>8+%1Involut
ive/pplexGC$>F_u%7Involutive/pplex_Z_POTG>Fbu%3Involutive/pplex_ZG>8*%7Involuti
ve/pplex_blockG>8,F[v/FU""#C$>F_sF`s@%09&7#-%"$G6$Ffn-%%nopsG6#FYC'>Fbs-Fds6#-F
C6(FarQ&wdeg(F>-FS6$FdvFVFWFhtFis@%F[t>F]t-Fds6#-FC6(FbqFbwFcwFWFhtFis>F]t-Fds6
#-FC6+FgtFhtFWFarFbwFcwFWFhtFjt@%F\uC$>F_u%>Involutive/pdegrevlex_deg_POTG>Fbu%
:Involutive/pdegrevlex_degGC$>F_u%@Involutive/pdegrevlex_deg_Z_POTG>Fbu%<Involu
tive/pdegrevlex_deg_ZG>Fju%@Involutive/pdegrevlex_deg_blockG>F]vF\yC%>Fbs-Fds6#
-FC6&FarQ&tdeg(F>FAFis@%F[t>F]t-Fds6#-FC6&FbqFdyFAFis>F]t-Fds6#-FC6)FgtFhtFWFar
FdyFAFjt@%09'7#-Fgv6$""!-Fjv6#FbzC%@%F\uC$>F_uFcx>FbuFexC$>F_uFhx>FbuFjx>FjuF\y
>F]vF\yC%@%F\uC$>F_u%:Involutive/pdegrevlex_POTG>Fbu%6Involutive/pdegrevlexGC$>
F_u%<Involutive/pdegrevlex_Z_POTG>Fbu%8Involutive/pdegrevlex_ZG>Fju%<Involutive
/pdegrevlex_blockG>F]vF`\l/FU""$C(>F_s%&falseG>FbsFcs@%F[t>F]tF^t>F]tFct@%3/-Fj
v6#9(Ffn/&F`]l6#FfnFgz@%F\uC$>F_uFcu>FbuFcuC$>F_uFhu>FbuFhu@%F\uC$>F_u%<Involut
ive/pplex_entr_blockG>FbuFcuC$>F_u%>Involutive/pplex_Z_entr_blockG>FbuFhu>FjuF[
v>F]vF[v/FU""%C$>F_sFf\l@%FcvC'>FbsF^w@%F[t>F]tFgw>F]tF\x@%F\]l@%F\uC$>F_uFex>F
buFexC$>F_uFjx>FbuFjx@%F\uC$>F_u%EInvolutive/pdegrevlex_deg_entr_blockG>FbuFexC
$>F_u%GInvolutive/pdegrevlex_deg_Z_entr_blockG>FbuFjx>FjuF\y>F]vF\yC%>FbsF`y@%F
[t>F]tFgy>F]tF\z@%FazC%@%F\]l@%F\uC$>F_uFex>FbuFexC$>F_uFjx>FbuFjx@%F\uC$>F_uF[
`l>FbuFexC$>F_uF_`l>FbuFjx>FjuF\y>F]vF\yC%@%F\]l@%F\uC$>F_uFi[l>FbuFi[lC$>F_uF^
\l>FbuF^\l@%F\uC$>F_u%AInvolutive/pdegrevlex_entr_blockG>FbuFi[lC$>F_u%CInvolut
ive/pdegrevlex_Z_entr_blockG>FbuF^\l>FjuF`\l>F]vF`\l/FU""&C$>F_sF`s@%Fcv-%&ERRO
RG6#%5not~implemented~yet.GC%>Fbs-Fds6#-FC6+QIproc(_a,_b)~local~d1,d2;~d1:=degr
ee(_a,|frF>FAQ4|hr);~d2:=degree(_b,|frF>FAQ<|hr);~if~d1<d2~or~(d1=d2~and~F>F_qQ
-(_a,_b,plex(F>FAQC)))~then~true;~else~false;~fi;~endF>>F]t-Fds6#-FC6-QQproc(_c
)~local~d1,d2,i,j,n,C,L;~C~:=~[coeffs(_c,F>FhtQ[q,~'L')];~n~:=~nops(C);~if~n~=~
1~then~RETURN(C[1],~L);~fi;~L~:=~[L];~j~:=~1;~d1~:=~degree(L[j],~|frF>FAQN|hr);
~for~i~from~2~to~n~do~d2~:=~degree(L[i],~|frF>FAQ@|hr);~if~d1~<~d2~or~(d1~=~d2~
and~F>F_qQ3(L[j],~L[i],~plex(F>FAQen)))~then~j~:=~i;~d1~:=~d2;~fi;~od;~RETURN(C
[j],~L[j]);~endF>@%FazFdclC%@%F\uC$>F_u%7Involutive/pdeglex_POTG>Fbu%3Involutiv
e/pdeglexGC$>F_u%9Involutive/pdeglex_Z_POTG>Fbu%5Involutive/pdeglex_ZG>Fju%9Inv
olutive/pdeglex_blockG>F]vF\fl/FU""'C$>F_sFf\l@%FcvFdclC%>FbsFjcl>F]tFddl@%FazF
dclC%@%F\]l@%F\uC$>F_uFeel>FbuFeelC$>F_uFjel>FbuFjel@%F\uC$>F_u%>Involutive/pde
glex_entr_blockG>FbuFeelC$>F_u%@Involutive/pdeglex_Z_entr_blockG>FbuFjel>FjuF\f
l>F]vF\fl/FUF\oC(>F_sF`s>Fbs-Fds6#-FC6&FgrFhsFAFis>F]t-Fds6#-FC6)QKproc(_c)~loc
al~i,j,n,C,L;~C~:=~[coeffs(_c,F>FhtQcq,~'L')];~n~:=~nops(C);~if~n~=~1~then~RETU
RN(C[1],~L);~fi;~L~:=~[L];~j~:=~1;~for~i~from~2~to~n~do~if~not~F>F_qF\elFAQP))~
then~j~:=~i;~fi;~od;~RETURN(C[j],~L[j]);~endF>@%F\uC$>F_u%8Involutive/pnegplex_
POTG>FbuFcuC%-Fecl6#%Tlocal~orders~not~supported~yet~in~the~integer~case.G>F_u%
:Involutive/pnegplex_Z_POTG>FbuFhu>Fju%:Involutive/pnegplex_blockG>F]vF[v/FUFgn
C)@$5FcvFaz-Fecl6#%apUp~to~now,~only~default~degrees~for~variables~and~tuples~a
re~allowed~for~local~orders.G>F_sF`s>Fbs-Fds6#-FC6+F^dlFAF_dlFAQ<|hr);~if~d1>d2
~or~(d1=d2~and~F>F_qQ-(_a,_b,tdeg(F>FAFbdl>F]t-Fds6#-FC6-FhdlFhtFidlFAFjdlFAQ@|
hr);~if~d1~>~d2~or~(d1~=~d2~and~F>F_qQ3(L[j],~L[i],~tdeg(F>FAF]el@%F\uC$>F_u%=I
nvolutive/pnegdegrevlex_POTG>FbuFi[lC%Fail>F_u%?Involutive/pnegdegrevlex_Z_POTG
>FbuF^\l>Fju%?Involutive/pnegdegrevlex_blockG>F]vF`\l/FU!"$C(>F_sFf\l>FbsF_hl>F
]tFdhl@%F\]l@%F\uC$>F_u%4Involutive/pnegplexG>FbuFcuC%Fail>F_uFf\m>FbuFhu@%F\uC
$>F_u%?Involutive/pnegplex_entr_blockG>FbuFcuC%Fail>F_u%AInvolutive/pnegplex_Z_
entr_blockG>FbuFhu>FjuFhil>F]vF[v/FU!"%C)@$F]jl-Fecl6#%apup~to~now,~only~defaul
t~degrees~for~variables~and~tuples~are~allowed~for~local~orders.G>F_sFf\l>FbsFc
jl>F]tFjjl@%F\]l@%F\uC$>F_u%9Involutive/pnegdegrevlexG>FbuFi[lC%Fail>F_uFd^m>Fb
uF^\l@%F\uC$>F_u%DInvolutive/pnegdegrevlex_entr_blockG>FbuFi[lC%Fail>F_u%FInvol
utive/pnegdegrevlex_Z_entr_blockG>FbuF^\l>FjuFj[m>F]vF`\l/FU!"&C)@$F]jlFj]m>F_s
F`s>Fbs-Fds6#-FC6+F^dlFAF_dlFAFgjlF_qFadlFAFbdl>F]t-Fds6#-FC6-FhdlFhtFidlFAFjdl
FAF^[mF_qF\elFAF]el@%F\uC$>F_u%:Involutive/pnegdeglex_POTG>FbuFeelC%Fail>F_u%<I
nvolutive/pnegdeglex_Z_POTG>FbuFjel>Fju%<Involutive/pnegdeglex_blockG>F]vF\fl/F
U!"'C)@$F]jlFj]m>F_sFf\l>FbsFj_m>F]tF_`m@%F\]l@%F\uC$>F_u%6Involutive/pnegdegle
xG>FbuFeelC%Fail>F_u%8Involutive/pnegdeglex_ZG>FbuFjel@%F\uC$>F_u%AInvolutive/p
negdeglex_entr_blockG>FbuFeelC%Fail>F_u%CInvolutive/pnegdeglex_Z_entr_blockG>Fb
uFjel>FjuF]am>F]vF\fl-Fecl6#%4invalid~term~order.G7)-%%evalG6#F]tFbuF]vF_uFjuF_
s-F`cm6#FbsF>F>F>F>
M7R0
I=Involutive/pnormal_form_Z_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG6.
%"aG%"gG%"hG%"iG%"sG%"tG%#lmG%$divG%'n_entrG%*zero_listG%.rhs_zero_listG%'pseud
oG6#%jnCopyright~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C,>%(_
nnformG,&F="""F?F?>8&9$>8,-%%nopsG6#&FA6#F?>8-7#-%"$G6$""!FD>8.7#-FN6$FP-FF6#&F
A6#""#>8+%%trueG>8/%&falseG>8*-9'FG?(F:F?F?F:3Ffn0&F\o6$FZF?FPC%>8'F?>FfnFjn?(F
:F?F?F:31Ffo-FF6#9%4Ffn@%-%7Involutive/pinv_divideG6%&F]p6$Ffo""$&F]p6$Ffo""&&F
\oFIC$>8%-%%iremG6$Fbo&F]p6%Ffo""'F?@%/F\qFPC'>%'_reducG,&FgqF?F?F?>F\q-%%iquoG
F_q>FA7$-%'normalG6#,&FHF?-%$mapG6$f*6#F,F:6$%)operatorG%&arrowGF:**T#F?&T%6$FZ
FZF?&T(6%T)FbqFZ!""FBF?F:F:6*F-F\qF2F\oF&F]pF/Ffo&F]p6%FfoF?F?Fcs-F_r6#,&FXF?-F
cr6$f*FfrF:FgrF:FjrF:F:Fds&F]p6%FfoF?FZFcs>FfnFgn>F\oF]oC$-%'igcdexG6&FboF`q.8(
.8)@%0FhtFPC&>FgqFhq>FA7$-F_r6#,&*&FftF?FHF?F?-Fcr6$f*FfrF:FgrF:FjrF:F:6*F1FhtF
2F\oF&F]pF/FfoFesF?-F_r6#,&*&FftF?FXF?F?-Fcr6$f*FfrF:FgrF:FjrF:F:FfuF]tF?>F\oF]
o@%30FftF?0FftFcsC$>FinFgn>Ffo,&F[pF?F?F?>FfnFgn>FfoFfv>Ffo,&FfoF?F?F?@'3/FHFK0
FXFRC$@$4-%7Involutive/member_multG6%FX%&P_HOMG9&>Few7$-%#opG6#FewFX6$7$FHFRFin
F]w6$7$FKFXFin6$FAFinF:6%FewF=FgqF:F:
M7R0
I3Involutive/checkIBf*6)'%"BG%%listG%%varsG%$varG%&m_ordG%)tup_permG%%seqvG%,fo
rce_evalaG6)%"iG%"jG%#G1G%'n_entrG%)rhs_entrG%'no_rhsG%'compatG6#%jnCopyright~(
C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C%>8*%%trueG@%543-%)assi
gnedG6#%)P_T_ListG-%%typeG6$FDF'0-%%nopsGFC-FJ6#9$>F;%&falseGC%>8'-FJ6#&FD6%"""
FWFW>8(-FJ6#&FD6%FWFW""#@%0FR-FJ6#9(>F;FOC)>8)F<>8&FD@$0F]o7#-%"$G6#;FWFR>Fco-%
$mapG6$f*6#F/6#F0F8F8-%'subsopG6$/FW-Fcp6$/FW-Fcp6$/FW7#-%$seqG6$&&&FM6#FWFcq6#
&T$6#8$/Fhq;FWT%FaqFbqFMF8F86&F+F]oF2FRFco?(FhqFWFW-FJ6#FcoF<@%0&Fco6%FhqFWFhn7
#-Fho6$""!FYC$>FaoFO@%/FYFW>Fco-Fcp6$/Fhq/-%'expandG6#&Fco6%FhqFWFW-%#opG6#FbrF
co>Fco-Fcp6$/Fhq/FasFbrFco>Fco-Fcp6$/FhqFasFco@%4Fao?(FhqFWFWFIF<@%4-FF6$&FcoFg
q%)equationG@%/FRFW@%F[s>Fco-Fcp6$/Fhq/-Fgs6#FitFgrFco>Fco-Fcp6$/Fhq/FcuFdrFco@
%F[s>Fco-Fcp6$/Fhq/FitFgrFco>Fco-Fcp6$/Fhq/FitFdrFco@$F\u>Fco-Fcp6$/Fhq/-Fgs6#-
Fgs6$FWFit-Fgs6$FhnFitFco@$F\u>Fco-F]p6$f*F`pF86$%)operatorG%&arrowGF8-FgsFLF8F
8F8Fco@$09&9)>Fco-F]p6$f*FapF8FfwF8-%%subsG6$7#-F^q6$/&T(6#F[r&FfqF[y/F[r;FW-FJ
6#FfqFMF8F86(F)F\xF/FhqF,F]xFco@&5349*0FcoFM3Ffy4-&%'linalgG6#%'iszeroG6#-%)sim
plifyG6#,&FcoFWFM!"">F;FO2-FJ6#&FD6%FW""$FW-FJ6#F\x-%&ERRORG6#%gpthe~given~invo
lutive~basis~was~computed~w.r.t.~a~smaller~number~of~variables~than~nops(var).G
@$4F;-%:Involutive/AssertInvBasisG6%FM9%9'F8F8F8F8
M7R0
I=Involutive/pjanet_separ_onlyf*6%%"LG%&m_ordG%&N_OrdG6'%"iG%"kG%'mod_rkG%"JG%"
TG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C*@$/-
%%nopsG6#9$"""-%'RETURNGF6@%309%F80F>""$>8(-%%sortG6$F7%2Involutive/pplex3G>FBF
7>8&-F56#&FB6%F8F8F8>8'7#-%$seqG6$7"/8$;F8FI?(FVF8F8-F56#FB%%trueGC$>8%&FB6%FVF
@""#>FO-%'subsopG6$/Fhn7$-%#opG6#&FO6#Fhn&FB6#FVFO>FB7#-FR6$-%;Involutive/pjane
t_div_onlyG6#&FOFhoFU>FB-FD6$FB9&FBF0F0F0F0
M7R0
I4Involutive/pomm_divf*6#%"aG6$%"iG%"vG6#%enCopyright~(C)~2000-2010~by~Carlos~F
.~Cid.~rights~reserved.G6"C'>8$-%%nopsG6#&9$6#""">8%7#-%"$G6$""!F.?(F+F5F5F+31F
5F./&F36$F5F.F<C$>F7-%'subsopG6$/F.F5F7>F.,&F.F5!""F5@$F?>F7FE-%'RETURNG6#F7F+F
+F+F+
M7R0
I7Involutive/PolZeroSetsf*6"6$%"iG%"ZG6#%jnCopyright~(C)~2000-2010~by~Daniel~Ro
bertz.~All~rights~reserved.GF$C&@$4-%)assignedG6#%)_inv_denG-%&ERRORG6#%`pno~ze
ro~sets;~run~InvolutiveBasis~first~(for~C++~or~GINV~version~use~option~"denom")
.G>8%7"?&8$F0%%trueG@$4-%'memberG6$F9F6>F67$-%#opG6#F6F9F6F$F$F$F$
M7R0
I8Involutive/InvBasisTestf*6#%"LG6`o%"aG%"dG%"gG%"hG%"iG%"jG%"kG%"lG%#lmG%"mG%"
FG%"GG%"HG%"RG%"QG%#Q2G%&ib_gbG%&m_ordG%&B_OrdG%&N_OrdG%&Q_OrdG%'lmprocG%/defau
lt_lmprocG%'N_FormG%*N_Form_lmG%/N_Form_autoredG%'pseudoG%(seq_varG%%varsG%$var
G%(var_ordG%'vt_degG%(deg_ordG%)tup_permG%.force_collectG%,force_evalaG%'n_entr
G%)rhs_entrG%*zero_listG%(allmultG%.rhs_zero_listG%'no_rhsG%(do_normG%,no_trans
ferG%%seqvG%(loc_varG%)critprocG%#ppG%#eqG%.last_was_zeroG%.head_red_percG%+sta
rt_timeG%+time_boundG%+trans_elemG%)entr_posG%*pnumber_qG%)strategyG%*nowarning
G%'fbasisG%'Q2_valG%(newcritG%,newcrit_addG%+factortimeG%/lastfactortimeG%,fact
orTsizeG%*printtimeG%.lastprinttimeG%,forceexpandG6#%\pCopyright~(C)~2000-2010~
by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C_q>8.-%6Involutive
/proc_inputG6#9$>8H&Fjo6#""">8I&Fjo6#""#>8M&Fjo6#""$>8G&Fjo6#""&>8Y&Fjo6#""(>Fj
o&Fjo6#""%@%332Fhp9#-%%typeG6$&9"F\q%%listG4-Fbr6$Fdr-Ffr6#%(integerGC)>8AFdr>8
1-F\p6#&FerFgp@$2Fcp&FasFbp-%&ERRORG6#%Xexpecting~list~of~relations~for~the~res
idue~class~ring.G@$4&FasF\q-Fis6#%foright~hand~sides~for~relations~of~the~resid
ue~class~ring~are~not~supported.G>Fas&FasFjq@%/&Fas6$FcpFcp7#""!>Fas7"C$>Fas7#-
%$seqG6$-F`u6$7$-%'subsopG6$/8(&Fas6%8)FcpFcp7#-%"$G6$FitF`p7#-F_v6$FitFep/Fiu;
FcpF`p/F\v;Fcp-%%nopsG6#Fas>Fjo7$-%#opG6#Fjo-F^wFjv>FiuF[rC&@$2F`rFhp-Fis6#%Pex
pecting~list~of~variables~as~second~argument.G>F_sFds>FasF[u>FiuF]q>8@-%5Involu
tive/proc_varsG6$F_sF`p>8B&F\xFgp>8C&F\xF\q>8D&F\xFjq>8E&F\xFaq>8Z&F\x6#""'>F_s
&F\xFbp>%&_nvarG-Fiv6#F_s@%0%2Involutive/characGFit>Fjo-%$modG6$-%(collectG6%Fj
oF_s%,distributedGFiy>FjoF^z@$-%$hasG6$-%$mapG6$f*6#F'Fgo6$%)operatorG%&arrowGF
go3-Fbr6$&F^pFbp-Ffr6#-%(polynomG6$%)anythingGT#-Fbr6$&F^pFgpFc[lFgoFgo6$FDF_sF
jo%&falseG-Fis6#-%$catG6%%Oexpecting~a~list~of~(lists~of)~polynomials~in~G-%(co
nvertG6$F_s%'stringG%4~as~first~argument.G>8F-%&evalbG6#0-%&minusG6$<#-F^w6#Fdq
<#-F^wFfy<">8P7#-F`u6$-Fb\l6$%#_xGF\v/F\v;FcpFdy>8K7#-F_v6$%)infinityGFdy>%(_nn
formGFit>%'_reducGFit>%'_crit1GFit>%'_crit2GFit>%'_crit3GFit>%'_crit4GFit>8OFit
>Fax-%%subsG6$7#-F`u6$/&F_s6#F\v&Fj]lF``lFa^lFax@$4%4Involutive/ratcoeffG@&0-Fa
]l6$-%'indetsG6#-Fhz6$f*F[[lFgoF\[lFgoFb[lFgoFgoFgoFjoFf]lFh]l-Fis6#%cono~param
eters~allowed~in~involutive~basis~computation~over~the~integers.GF_q-Fis6#%apno
~algebraic~extensions~are~allowed~in~involutive~basis~computation~over~the~inte
gers.G>8:4F_q>8N%%trueG@%/FaxF[u>85F[r>F^bl7#-F_v6$F[r-Fiv6#Fax>8XFit>8_oFit>8f
nFit>8V"$+">8hnF[u>8jnF^\l>8[oFit>8\oFit>8^oFit>8aoF^\l>8gnF^\l?(F\vFiuFcpF`rFj
al@)-Fbr6$&FerF``lFh\lC$>8/F`dl?(8*FcpFcp-%'lengthG6#FcdlFjal@(/&Fcdl6#FedlQ"NF
go>FialF^\l/F[elQ"SFgoC$>F_qFjal>FfalF^\l0F[elQ!Fgo-Fis6#%aooptions~must~be~giv
en~by~a~string~consisting~of~letters~in~|fr"N",~"S"|hr.G5-Fbr6$F`dlF\s-Fbr6$F`d
lFfr>F^blF`dl-Fbr6$F`dl%)equationG@?/-F^w6$FcpF`dlQ%timeFgoC$@$4-Fbr6$-F^w6$Fhp
F`dl%*nonnegintG-Fis6#%Sexpecting~time~bound~in~seconds~for~option~"time".G>Ffb
lF\gl/FdflQ*printtimeFgoC$@$Fifl-Fis6#%Yexpecting~time~period~in~seconds~for~op
tion~"printtime".G>FhblF\gl/FdflQ(percentFgoC$@$4-Fbr6$F\gl%'posintG-Fis6#%Sexp
ecting~a~positive~integer~for~option~"percent".G>F\clF\gl/FdflQ*nowarningFgoC$@
$4-Fbr6$F\gl%(booleanG-Fis6#%Pexpecting~boolean~value~for~option~"nowarning".G>
F[dlF\gl/FdflQ&denomFgoFgo3/FdflQ*strategyIFgo/F\glFjal>FjblFcp3/FdflQ+strategy
IIFgoFhil>FjblFhp3/FdflQ,strategyIIIFgoFhil>FjblF]q/FdflQ&basisFgoC$@$4-Fbr6$F\
glFfr-Fis6#%Cexpecting~list~for~option~"basis".G>F_clF\gl3/FdflQ$neuFgoFhil>Fac
lFjal/FdflQ(neu_addFgoC$@$Fifl-Fis6#%Texpecting~nonnegative~integer~for~option~
"neu_add".G>FcclF\gl/FdflQ+factortimeFgoC$@$Fifl-Fis6#%Yexpecting~time~bound~in
~seconds~for~option~"factortime".G>FeclF\gl/FdflQ,factorTsizeFgoC$@$Fifl-Fis6#%
Xexpecting~nonnegative~integer~for~option~"factorTsize".G>FgclF\gl/FdflQ'expand
FgoC%@$/Fd`lF^\l-Fis6#%gooption~'expand'~is~not~implemented~for~the~case~of~int
eger~coefficients~yet.G@$F[il-Fis6#%Mexpecting~boolean~value~for~option~"expand
".G>FiclF\gl-Fis6#%0invalid~option.GFf]m@'F_qC%>Fjo-%&evalaGF_w@%Fd`lC%>8;%>Inv
olutive/pnormal_form_evalaG>8<%AInvolutive/pnormal_form_evala_lmG>8=Fb^mC%>Fa^m
%?Involutive/simp_pnormal_form_ZG>Fd^m%BInvolutive/simp_pnormal_form_Z_lmG@%%2I
nvolutive/absremG>Fg^m%CInvolutive/simp_pnormal_form_Z_absG>Fg^m%FInvolutive/si
mp_pnormal_form_Z_nonnegG@%/FiyFit>8S%:Involutive/simp_prim_partG>Ff_mf*6%%"pGF
D%"qGFgoFgoFgo7$F^p9&FgoFgoFgoF[]lC$@%Fd`lC%>Fa^m%@Involutive/pnormal_form_coll
ectG>Fd^m%CInvolutive/pnormal_form_collect_lmG>Fg^mFc`mC%>Fa^mFj^m>Fd^mF\_m@%F^
_m>Fg^mF`_m>Fg^mFb_m>Ff_mFg_mC$@%Fd`lC%>Fa^m%8Involutive/pnormal_formG>Fd^m%;In
volutive/pnormal_form_lmG>Fg^mFbamC%>Fa^m%:Involutive/pnormal_form_ZG>Fd^m%=Inv
olutive/pnormal_form_Z_lmG@%F^_m>Fg^m%>Involutive/pnormal_form_Z_absG>Fg^m%AInv
olutive/pnormal_form_Z_nonnegG>Ff_m%5Involutive/prim_partG@$FiclC$>Fa^m%?Involu
tive/pnormal_form_expandG>Fd^m%BInvolutive/pnormal_form_expand_lmG>8+-%4Involut
ive/proc_ordG6*F^blF_sFaxFdxFgxFj]lF]yFfal>87&FibmFgp>86&FibmF\q@$&FibmFjq>F]yF
[u>8Q&FibmF_y>8Tf*6$F'%"bGFgoFgoFgo-F]]l6#/&F^p6#;FcpFhp&9%FbdmFgoFgoFgo>88f*6$
%#_aG%#_bG6%F-%#n1G%#n2GFgoFgo@%/&F^pF\q&FedmF\q@'30F\\lFaem/&FedmFgpFbemFjal3/
F\\lFaem0FgemFbemF^\lC%>8%-%*numboccurG6$&Fb[lFbpFit>8&-F_fm6$&&FedmFbpFbpFit@'
2FcfmF]fmFjal2F]fmFcfmF^\l-F]]l6#2-Fiv6#-%$addG6$&Fafm6#8$/Fegm;FcpFi[l-Fiv6#-F
agm6$&FffmFdgmFfgm-T%6$F^pFedmFgoFgo6&FKF`pF:F^cm@$/&Fdx6#;,&FdyFcpFcpFcp,&FdyF
cpF`pFcpF]v>FdxFit>89-%&parseG6#-Fb\l6/Q@g->`Involutive/pol_lead_mon`(g,Fgo-Ff\
l6$F`pFh\lQ",Fgo-Ff\l6$Fj]lFh\lFcim-Ff\l6$&FibmFbpFh\lFcim-Ff\l6$F]yFh\lFcim-Ff
\l6$&FibmFaqFh\lFcim-Ff\l6$FdxFh\lQ")Fgo@$0Fjx7#-F_v6#Fev>Fjo-Fhz6$f*6#F+6#F,Fg
oFgo-Ffu6$/Fcp7#-F`u6$&Fb[l6#&Fi[lFdgm/Fegm;FcpF^hmF^pFgoFgo6&FHFjxFKF`pFjo@$0F
j]lF_sC%>Fjo-Fhz6$f*F[[lFgoF\[lFgo-Fi_l6$7#-F`u6$/&T'6#F^hm&Fi[lFg\n/F^hmFb^lF^
pFgoFgo6(FSFj]lF,F\vFDF_sFjo>Fas-Fhz6$f*F[[lFgoF\[lFgoF_\nFgoFgoFj\nFas>F_cl-Fh
z6$f*F[[lFgoF\[lFgoF_\nFgoFgoFj\nF_cl>8JF]v>8L7#-F_v6$Fit-Fiv6#&Fjo6$FcpFhp@+/%
3Involutive/invcritGF[u>8Rf*FgoFgoFgoFgoF^\lFgoFgoFgo/F`^n7$FcpFhp>Fb^n%7Involu
tive/pcriteria12G/F`^n7%FcpFhpF]q>Fb^n%8Involutive/pcriteria123G/F`^n7&FcpFhpF]
qF[r>Fb^n%9Involutive/pcriteria1234G-Fis6#%Wundefined~involutive~criteria;~see~
?InvolutiveOptions.G>%+_JB_factorG.Fd_n>%3_JB_factor_multvarG.Fg_n>%(_JB_varG.F
j_n>%*_JB_compaG.F]`n>%&P_HOMGF[u>%)_inv_denGF[u>8W-%%timeGFgo>8]oFd`n>8`oFd`n>
82F[u>8enFit?(FiuFcpFcp-FivF_wFjal@&53Fd_m0&Fjo6$FiuFcpFd]n3Fhy0-F\z6$FeanFiyFd
]nC(@%0FgcmF[u>Fcfm7#-%=Involutive/cancel_locvar_rhsG6'Fean&Fjo6$FiuFhpFjhmFj]l
Fgcm>Fcfm&Fjo6#Fiu@$Fd`l>Fcfm-Ff_m6%&FcfmFbpFj]l&FcfmFgp>Fcfm7$-Fhz6$f*F[[lFgoF
\[lFgo-F_z6%F^pFi[lFazFgoFgo6$FSFj]lF\cnF]cn>8,-Fjhm6#F\cn@%Fd`l>F\an-%:Involut
ive/pbinary_insertG6)7)Fcfm&FgcnFbpF`dn7#-F_v6$FitFdyFd^l&FgcnFgpF[uF\anFcpF^an
F^anFgdmFjcm>F\an-F]dn6)7)Fcfm7$-F^w6#F`dn&FddnFbpFidnFadnFd^lFddnF[uF\anFcpF^a
nF^anFgdmFjcm>F^an-Fiv6#F\an53Fd_m0FcbnFf]n3Fhy0-F\z6$FcbnFiyFf]n>F``n7$-F^w6#F
``nFcbn@$/F^anFitC/@%/F`pFcp>FcdlFit>FcdlFd]n@$4Fjp@%/FepFcp>Fcdl/FcdlFit>Fcdl/
FcdlFf]n@$Fi[n>F``n-Fhz6$f*F[[lFgoF\[lFgoF_\nFgoFgo6(FDF_sF+FiuFSFj]lF``n@$Fefn
>F``n-Fhz6$f*F[[lFgoF\[lFgo-F^wF]pFgoFgoFgoF``n@%Fd`l>%)P_T_ListG7#7*7$Fd]nFf]n
7$FadnFcpF\hnFadnFd^l7$FitFcpF[uFit>Fhgn7#7*F[hn7%FadnFcpFcpFahnFadnFd^lF]hnF[u
Fit>%*pnumber_tGFcp>%&_pvarGF\x>%)_pno_rhsGFjp>%0_pforce_collectGF[]l>%._pforce
_evalaGF_q>%+PolTab_VarG7#7%Fit-%5Involutive/pmult_varG6$Fd^lF_sFit>%(_StatssG7
*Fj^lF\_lF^_lF`_lFb_lFd_lFcpFf_l@%32FitFfblF[dl-%'RETURNG6#7$7#FcdlFjal-Fjin6#F
]jn>Fhgn7#&F\anFbp>F\an-Ffu6$/Fcp%%NULLGF\an>F^an,&F^anFcp!""Fcp>FchnFcp?(FgoFc
pFcpFgo30F\anF[u5/FfblFit2,&Fe`nFcpFd`nFjjnFfblC/@$-%)assignedG6#%)PRINTnoTG-%&
printG6$Q##TFgo-Fiv6#Fhgn@$-Ff[o6#%)PRINTlmTG?(FiuF]\oFjjnFcpFjal-Fj[o6#&&FhgnF
gbnF\q@$-Ff[o6#%)PRINTlcTG?(FiuF]\oFjjnFcpFjal-Fj[o6#&Fg\oF_y@$-Ff[o6#%'PRINTTG
?(FiuF]\oFjjnFcpFjal-Fj[o6#Fg\o@$-Ff[o6#%)PRINTnoQG-Fj[o6$Q##QFgoF^en@$-Ff[o6#%
)PRINTlmQG?(FiuF^enFjjnFcpFjal-Fj[o6#&&F\anFgbnF\q@$-Ff[o6#%,PRINTdegncQG?(FiuF
^enFjjnFcpFjal-Fj[o6$-Ff\l6$&Fe^oFbp%"+G-Fiv6#&&Ff^oF_yFbp@$-Ff[o6#%)PRINTlcQG?
(FiuF^enFjjnFcpFjal-Fj[o6#Fe_o@$-Ff[o6#%'PRINTQG?(FiuF^enFjjnFcpFjal-Fj[o6#Ff^o
>FiuFcp>83F[u@$F^[oC%>8UFjal>8>F^\l?(FgoFcpFcpFgo3F^[o5Fj`o1FiuF^anC'>FcfmFbjn>
F\anFdjn>F^anFijn@%33/FgcmF[uFd`l-Fb^n6#Fcfm>Fj`oFjalC$@%Fd`l>8'-Fd^m6(F\cnFhgn
Fj]lFjhmFf_mFgcm>6$F_boF\aoF`bo@%0&F_boFbpFd]nC%>Fgcn-Fjhm6#Ffbo@%Fc`l@%0Fidn&F
cfmF\qC$@%-Fbr6$F\en%'negintG>Ff`o-F]dn6)7)-%'expandG6#,$F_boFjjn7$Fjdn,$F\enFj
jnF\doFadnFd^l7$F]do&FddnFgpF[uFf`oFcp-Fiv6#Ff`oF`doFgdmFjcm>Ff`o-F]dn6)7)F_boF
idnFidnFadnFd^lFddnF[uFf`oFcpF`doF`doFgdmFjcm@$F\ao>Ff`o-F]dn6)FcfmFf`oFcpF`doF
`doFgdmFjcm>Ff`oFhdo@%0F`dnF^co>Ff`o-F]dn6)7)F_boF`dnF`dnFadnFd^lFddnF[uFf`oFcp
F`doF`doFgdmFjcm>Ff`oFhdo>Fj`oF^\l>Fj`oFjal>Fiu,&FiuFcpFcpFcp@$0Ff`oF[uC*>Fcfm&
Ff`oFbp>Ff`o-Ffu6$FfjnFf`o@$-Ff[o6#%'PRINTgG-Fj[o6$Q"gFgoF\cn>F_bo-Fa^mFabo@$-F
f[o6#%'PRINThG-Fj[o6$Q"hFgoF_bo>FgcnFibo@$Fc`l>Fgcn-Ffu6$/FcpFidnFgcn@'/FchnFit
C&>Fhgn7#7)F_boF]cnF`dnFadnFd^lFddnF[u>Fchn,&FchnFcpFcpFcp>Ff`o7$-F^wFado-F^w6#
-%8Involutive/pjanet_separG6&Fj]lFgcmF^blF^cm?&F\vFf`oFjalC$>F\an-F]dn6)F\vF\an
FcpF^anF^anFgdmFjcm>F^anF^en/F]cnF`dnC&>6$FhgnFedl-%>Involutive/pbinary_insert_
posG6)7)F_boF]cnF`dn&FcfmFjqFd^lFddnF[uFhgnFcpFchnFchnF^cmFjcm@%2FedlF]\oC'?(F\
v,&FedlFcpFcpFcpFcpF]\oFjalC$>F\an-F]dn6)&FhgnF``lF\anFcpF^anF^anFgdmFjcm>F^anF
^en>Fhgn&Fhgn6#;FcpFedl>FchnFedl>Ff_l,&Ff_lFcpFcpFcp-%7Involutive/ptransfer_TG6
$F^blF^cm>FchnF]\o>Ff`oF]ho?&F\vFf`oFjalC$>F\anFgho>F^anF^enC&>Fhgn-F]dn6)FigoF
hgnFcpFchnFchnF^cmFjcm>FchnF[ho>Ff`oF]ho?&F\vFf`oFjalC$>F\anFgho>F^anF^en@$33Fh
in4F[dl1FfblFb[o-%(WARNINGG6#%[ocomputation~of~involutive~basis~stopped~due~to~
time~restriction.G@$2FcpFchnC%@$3Fc`lFial?(FiuFcpFcpF]\oFjal@$-Fbr6$&Fhgn6%FiuF
`yFcpFcco@%/&FhgnFdbn&Fhgn6$FiuF]q>Fhgn-Ffu6$/Fiu-Ffu6$/Fcp-Fhz6$f*F[[lFgoF\[lF
go-Fhz6$f*6#F*FgoF\[lFgo-Fico6#,$F^pFjjnFgoFgoFgoF^pFgoFgoFgo&FhgnFfan-Ffu6$/Fh
p7$-F^w6#&F^]pFbdm,$&F^]pF\qFjjn-Ffu6$/F]q7$-F^w6#&F_]pFbdm,$&F_]pF\qFjjn-Ffu6$
/F`y7$-Fico6#,$Fj\pFjjn&Fhgn6%FiuF`yFhpFg\oFhgn>Fhgn-Ffu6$/Fiu-Ffu6$/Fcp-Fhz6$f
*F[[lFgoF\[lFgo-Fhz6$f*F^^pFgoF\[lFgoF_^pFgoFgoFgoF^pFgoFgoFgoFb^pFe_pFhgn>Fhgn
-%9Involutive/autoreductionG6(FhgnFg^mFj]lFjhmFf_mFgcm>FchnF]\o@$50F]y7#F`pFc`l
>Fhgn-%%sortG6$FhgnFacm@$Fial@%Fd`l@%Fhy?(FiuFcpFcpF]\oFjalC$@$0-Fa]l6$-Fj`l6#F
j\p<#-%&aliasGFgoFh]l>Fb`n7$-F^w6#Fb`nFj\p@%F_q>Fhgn-Ffu6$/Fiu-Ffu6$/Fcp-Fhz6$f
*F[[lFgoF\[lFgo-F\z6$-F]^m6#-%)SimplifyG6#-F_z6%-Fhz6$f*F^^pFgoF\[lFgo*&F^pFcp&
Fhgn6%Fi[lF`yFcpFjjnFgoFgo6$F+F^hmF^pFi[lFazFiyFgoFgo6&FSFj]lF+FiuFb^p-Ffu6$/F`
y7$FcpF\`pFg\oFhgn>Fhgn-Ffu6$/Fiu-Ffu6$/Fcp-Fhz6$f*F[[lFgoF\[lFgo-F_z6%-Fhz6$f*
F^^pFgoF\[lFgo-F\z6$-%'NormalG6#FadpFiyFgoFgoFddpF^pFi[lFazFgoFgoFedpFb^pFfdpFh
gn?(FiuFcpFcpF]\oFjalC$@$F^bp>Fb`nFgbp@%F_q>Fhgn-Ffu6$/Fiu-Ffu6$/Fcp-Fhz6$f*F[[
lFgoF\[lFgo-F]^m6#-F_z6%-Fhz6$f*F^^pFgoF\[lFgo-%'normalGF]fpFgoFgoFddpF^pFi[lFa
zFgoFgoFedpFb^pFfdpFhgn>Fhgn-Ffu6$/Fiu-Ffu6$/Fcp-Fhz6$f*F[[lFgoF\[lFgo-F_z6%-Fh
z6$f*F^^pFgoF\[lFgoFdgpFgoFgoFddpF^pFi[lFazFgoFgoFedpFb^pFfdpFhgn@$43Fb\p%/tail
_reductionG?(FiuFcpFcpF]\oFjal@$Fh\p@%F]]p>Fhgn-Ffu6$/Fiu-Ffu6$/Fcp-Fhz6$f*F[[l
FgoF\[lFgo-Fhz6$f*F^^pFgoF\[lFgoF_^pFgoFgoFgoF^pFgoFgoFgoFb^pFc^pFhgn>Fhgn-Ffu6
$/Fiu-Ffu6$/Fcp-Fhz6$f*F[[lFgoF\[lFgo-Fhz6$f*F^^pFgoF\[lFgoF_^pFgoFgoFgoF^pFgoF
goFgoFb^pFe_pFhgn>FiuFcp?(FgoFcpFcpFgo31FiuFchnF]]p>FiuFeeo@%/FiuF[ho>84Fcp>F^[
qFit@%3%#GBG/F^[qFit>Fcdl-Fhz6$f*F[[lFgoF\[lFgo@$FiemFb[lFgoFgoFgoFhgn>Fcdl-Fhz
6$f*F[[lFgoF\[lFgoFb[lFgoFgoFgoFhgn>8?7#-F`u6$/&Fj]lFgbn&F_sFgbn/FiuFb^l@%Fi[nC
$>Fcdl-Fhz6$f*F[[lFgoF\[lFgo-Fi_l6$Fi[lF^pFgoFgo6$FBF^\q-%<Involutive/pairstoeq
uationsG6'FcdlFjpF`pFep%-inv_tup_permG>F``n-Fhz6$f*F[[lFgoF\[lFgoF\]qFgoFgoF^]q
F``n>FcdlF_]q@$Fefn>F``n-Fhz6$f*F[[lFgoF\[lFgoFegnFgoFgoFgoF``n>Fiy%+savecharac
G>Fd`l%-saveratcoeffG>FehnF\x>FghnFjp>FihnF[]l>F[inF_q>Fdin7*Fj^lF\_lF^_lF`_lFb
_lFd_lF^[qFf_l@%F_fn>F]in-%$zipG6%f*6$F+F,FgoF\[lFgo7$F^p-F^w6#FedmFgoFgoFgo-Fi
_l6$F^\q-F`]q6'-Fhz6$f*F[[lFgoF\[lFgoFb[lFgoFgoFgoFhgnFjpF`pFepFb]q-Fhz6$f*F[[l
FgoF\[lFgo7$-Fain6$&Fhgn6$F^pFbqFi[l-Fi_l6$F^hm*&&Fhgn6%F^pF`yFcpFcp&Fhgn6%F^pF
`yFhpFcpFgoFgo6&FDF_sFBF^\q7#-F_v6#;FcpFchn>F]in-Fj^q6%f*F]_qFgoF\[lFgoF^_qFgoF
goFgo-Fi_l6$F^\q-F`]q6'-Fhz6$f*F[[lFgoF\[lFgoFb[lFgoFgoFgoFhgnFjpF`pFepFb]q-Fhz
6$f*F[[lFgoF\[lFgo7$F\`q7$F``q&Ff\n6#&Fhgn6%F^pF]qFhpFgoFgo6(FDF_sFBF^\qFHFjxFh
`q@%Fgin7$Fcdl-F]]l6#Fa[oFcdlFgo69FdyFehnFghnFihnF[inF]inF``nFj^lF\_lF^_lF`_lFb
_lFd_lFchnFhgnFdinFb`nFd_nFg_nFj_nF]`nFiyFd`lFgoFgo
M7R0
I=Involutive/GroebnerBasisGINVf*6#%"LG6U%"aG%"cG%"iG%"jG%"kG%"lG%"rG%"vG%"zG%'n
_entrG%)rhs_entrG%'no_rhsG%"FG%"RG%$varG%(var_ordG%'vt_degG%%fextG%(deg_ordG%$P
OTG%)tup_permG%#IBG%#GBG%&m_ordG%%contG%(do_normG%+time_boundG%#lmG%#trG%)alg_e
lemG%+trans_elemG%)radicalsG%)entr_posG%(algextsG%-algextindetsG%/transextindet
sG%%algoG%*quietmodeG%*donotreadG%*nowarningG%+tracedenomG%(homogenG%#hfG%+move
dboundG%-qlengthboundG%,degreeboundG%(rootofsG%*outoftimeG%,whichoutputG%+chang
edegsG%)dolaunchG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~res
erved.G6"C\p@$0%7Involutive/initializedG.%%trueG-%0Involutive/initGFfn>80-%6Inv
olutive/proc_inputG6#9$>8-&F`o6#""">8.&F`o6#""#>8/&F`o6#""$>8A&F`o6#""'>8B&F`o6
#""(>F`o&F`o6#""%@%332F^p9#-%%typeG6$&9"Fbp%%listG4-Fhq6$Fjq-F\r6#%(integerGC)>
82Fjq>81-Fbo6#&F[rF]p@$2Fio&FgrFho-%&ERRORG6#%Xexpecting~list~of~relations~for~
the~residue~class~ring.G@$4&FgrFbp-F_s6#%foright~hand~sides~for~relations~of~th
e~residue~class~ring~are~not~supported.G>Fgr&FgrF`q@%/&Fgr6$FioFio7#""!>Fgr7"C$
>Fgr7#-%$seqG6$-Fft6$7$-%'subsopG6$/8&&Fgr6%8'FioFio7#-%"$G6$F_tFfo7#-Feu6$F_tF
[p/F_u;FioFfo/Fbu;Fio-%%nopsG6#Fgr>F`o7$-%#opG6#F`o-FdvF`v>8*FaqC&@$2FfqF^p-F_s
6#%Pexpecting~list~of~variables~as~second~argument.G>FerFjr>FgrFat>FhvFcp>Fer-%
5Involutive/proc_varsG6$FerFfo>83&FerF]p>84&FerFbp>86&FerF`q>88&Fer6#""&>8D&Fer
Fgp>Fer&FerFho>%&_nvarG-F_v6#Fer@%0%2Involutive/characGF_t>F`o-%$modG6$-%(colle
ctG6%F`oFer%,distributedGF_y>F`oFdy@$-%$hasG6$-%$mapG6$f*6#F'Ffn6$%)operatorG%&
arrowGFfn3-Fhq6$&FdoFho-F\r6#-%(polynomG6$%)anythingGT#-Fhq6$&FdoF]pFizFfnFfn6$
F5FerF`o%&falseG-F_s6#-%$catG6%%Oexpecting~a~list~of~(lists~of)~polynomials~in~
G-%(convertG6$Fer%'stringG%4~as~first~argument.G>Fjp-%'removeG6$f*6#F)FfnFbzFfn
-%'memberG6$FdoF_[lFfnFfnFc[lFjp>%(_nnformGF_t>%'_reducGF_t>%'_crit1GF_t>%'_cri
t2GF_t>%'_crit3GF_t>%'_crit4GF_t>%&P_HOMGFat>8+-F\\l6$-%+kerneloptsG6#%(version
GF^\l>8%F_y@%/FgwFat>8;Faq>Fd^l7#-Feu6$Faq-F_v6#Fgw>8EFat>8FFat>8GFat>8<F\o>8=F
\o>85Q!Ffn>8HFg_l>8>F_t>8@Fd[l>8TFat>8I-%&evalbG6#552F_t-%+searchtextG6$Q&APPLE
FfnFh]l/-%*substringG6$-F\\l6$-%*interfaceG6#.F^^lF^\l;Fio"#GQ=Standard~Workshe
et~InterfaceFfn/%5Involutive/InvoBasisG%>Involutive/InvBasisGINVAssertG>8JFd[l>
8KFd[l>8LFd[l>8MFd[l>8UFat>8OF_t>8PF_t>8QF_t>8SFd[l>8NFat>8VFd[l?(F_uFhvFioFfqF
\o@)5-Fhq6$&F[r6#F_uFbr-Fhq6$FgclF\r>Fd^lFgcl-Fhq6$FgclF^\l@//FgclQ/tracerelati
onsFfnC$-%(WARNINGG6#Q[ooption~'tracerelations'~is~not~applicable~with~ginv~up~
to~now...Ffn>F]`lF\o/FgclQ*donotreadFfn>F]blF\o/FgclQ&denomFfn>FablF\o/FgclQ(ho
mogenFfnC'>FcblF\o>Fer7$-FdvF\y%#_hG>Fjw7%-Fdv6#&Fjw6#;FioFjxFio-Fdv6#&Fjw6#;,&
FjxFioFioFio!"">FjxFafl@$0FgwFatC$>Fgw-F\u6$/Fbfl7$-Fdv6#&Fgw6#FbflFdelFgw>F]x-
F\u6$/Fbfl7$-Fdv6#&F]xF_glFioF]x/FgclQ)noextrasFfnC$>F_`lQ)invbasisFfn>Fd_lFd[l
/FgclQ'launchFfn>FaclF\oC$>8)Fgcl?(FbuFioFio-%'lengthG6#FchlF\o@&/&Fchl6#FbuQ"N
Ffn>Fd_lFd[l0FjhlFg_l-F_s6#%0invalid~option.G-Fhq6$Fgcl%)equationG@G/-Fdv6$FioF
gclQ%NameFfnC$@$4-Fhq6$-Fdv6$F^pFgclF^\l-F_s6#%Fexpecting~a~string~for~option~"
Name".G>Ff_lF_jl/FgilQ%charFfnC$@$4-Fhq6$F_jl%*nonnegintG-F_s6#%Qexpecting~0~or
~a~prime~number~for~option~"char".G>F`^lF_jl/FgilQ%timeFfnC$@$Fijl-F_s6#%Sexpec
ting~time~bound~in~seconds~for~option~"time".G>F[`lF_jl/FgilQ)GroebnerFfnFfn/Fg
ilQ'algextFfn@%-Fhq6$F_jlF\r?&8(F_jlF\oC&>8,-%&minusG6$-%'indetsG6#Fa\m<%-Fdv6#
F`_l-Fdv6#F^_l-Fdv6#-F^z6%F\\lFep%%nameG@$50-F_v6#Fd\mFio4-Fhq6$Fa\m-F\[l6$F^[l
Fd\m-F_s6#%`sexpecting~a~univariate~polynomial~(possibly~with~rational~coeffici
ents~in~previously~defined~algebraic~elements)~for~option~"algext".G@$0-%*inter
sectG6$Fd\m<#Fcel<"-F_s6#%_qthe~univariate~polynomial~for~option~"algext"~may~n
ot~contain~indeterminates~of~the~polynomial~ring.G@$4-Fg\l6$-FdvFi]mF^_lC$>F\_l
7$-Fdv6#F\_lFa\m>F^_l7$F^]mF`_mC&>Fd\m-Ff\m6$-Fi\m6#F_jlF[]m@$5Fg]m4-Fhq6$F_jlF
]^mF_^m@$Fc^mFi^m@$F]_mC$>F\_l7$Fd_mF_jl>F^_lFg_m/FgilQ)transextFfn@'-Fhq6$F_jl
-F\r6#Fd]m?&Fa\mF_jlF\o@$4-Fg\l6$Fa\m7$-Fdv6#FjpF\]m>F`_l7$F\]mFa\m-Fhq6$F_jlFd
]m@$4-Fg\l6$F_jlFeam>F`_l7$F\]mF_jl-F_s6#%Sexpecting~(list~of)~name(s)~for~opti
on~"transext".G/FgilQ*algorithmFfnC$>Fi_lF_jl@$54-Fhq6$Fi_lF^\l33330Fi_lQ#TQFfn
0Fi_lQ)TQDegreeFfn0Fi_lQ*TQGradingFfn0Fi_lQ,TQBlockHighFfn0Fi_lQ+TQBlockLowFfn-
F_s6#%gqexpecting~strings~"TQ"~or~"TQDegree"~or~"TQBlockHigh"~or~"TQBlockLow"~o
r~"TQGrading"~for~option~"algorithm".G/FgilQ&quietFfnC$@$4-Fhq6$F_jl%(booleanG-
F_s6#%Lexpecting~boolean~value~for~option~"quiet".G>Fa`lF_jl/FgilQ*nowarningFfn
C$@$Fcdm-F_s6#%Pexpecting~boolean~value~for~option~"nowarning".G>F_blF_jl/FgilF
[elC$@$Fcdm-F_s6#%Lexpecting~boolean~value~for~option~"denom".G>FablF_jl/FgilQ(
contentFfnC$@$Fcdm-F_s6#%Nexpecting~boolean~value~for~option~"content".G>Fb_lF_
jl/FgilFhdlC$@$Fcdm-F_s6#%Pexpecting~boolean~value~for~option~"donotread".G>F]b
lF_jl/FgilF^elC(@$4Fjam-F_s6#%hnexpecting~name~of~homogenizing~variable~for~opt
ion~"homogen".G>FcblF\o>Fer7$FcelF_jl>FjwFfel>FjxFafl@$FeflC$>Fgw-F\u6$/Fbfl7$F
\glF_jlFgw>F]xFagl/FgilQ'changeFfnC%@$30F_jlFat4-Fhq6$F_jl-%)listlistG6#F\[m-F_
s6#%`oexpecting~list~of~lists~of~degrees~for~variables~for~option~"change".G>Fe
blF_jl@$30FeblFat0-F_v6#&FeblFhoFjx-F_s6#%colist~of~degrees~has~wrong~length~in
~right~hand~side~for~option~"change".G/FgilQ#HFFfnC$@$4-Fhq6$F_jl-F\rFhhm-F_s6#
%enexpecting~a~list~of~non-negative~integers~for~option~"HF".G>F_clF_jl/FgilQ+M
ovedBoundFfnC$@$Fijl-F_s6#%Zexpecting~a~non-negative~integer~for~option~"MovedB
ound".G>FgblF_jl/FgilQ-QlengthBoundFfnC$@$Fijl-F_s6#%fnexpecting~a~non-negative
~integer~for~option~"QlengthBound".G>FiblF_jl/FgilQ,DegreeBoundFfnC$@$Fijl-F_s6
#%enexpecting~a~non-negative~integer~for~option~"DegreeBound".G>F[clF_jlF_ilF_i
l>Fchl-%4Involutive/proc_ordG6*Fd^lFerFgwFjwF]xFerFexF\o>87&FchlF`q@$F`\n>FexFa
t@$0F`x7#-Feu6#F[v>F`o-F^z6$f*Fe\l6#F*FfnFfn-F\u6$/Fio7#-Fft6$&Fhz6#&F_[l6#8$/F
h]n;FioT%FdoFfnFfn6&F;F`xF0FfoF`o>%)_inv_denGFat>Fep-%>Involutive/algebraicexte
nsionG6)F`oFepF\_lF^_lFjpFatFat>F`o&FepFho>F\_l&FepFbp>F^_l&FepF`q>8C&FepFbx>8R
&FepFgp>Fjp&FepF\q>Fep&FepF]p@$0Fj^nFatC$>F\_l-%%subsG6$Fj^nF\_l>F`o-Fh_n6$Fj^n
F`o@'F_im>89-%;Involutive/ginvBasisChangeG6FF`oFerFepFjpFfoF[pF`pF`^lFd^lFgwFex
7$Fiel-Fdv6#Febl&Fjw6#;Fafl,&FjxFioFfoFioF\_lF^_lF`_lFf_lFg_lFi_lF[`lF]`lFa`lF\
oFb_lF]blF_blFablFgblFiblF[clF_`lF`xFd_lF]_nFj^nF_clFcbl>F_`n-%<Involutive/ginv
BasisHomogenG6FF`oFerFepFjpFfoF[pF`pF`^lFd^lFgwFexFielFf`nF\_lF^_lF`_lFf_lFg_lF
i_lF[`lF]`lFa`lF\oFb_lF]blF_blFablFgblFiblF[clF_`lF`xFd_lF]_nFj^nF_cl>F_`n-%5In
volutive/ginvBasisG6GF`oFerFepFjpFfoF[pF`pF`^lFd^lFgwFexFielFf`nF\_lF^_lF`_lFf_
lFg_lFi_lF[`lF]`lFa`lF\oFb_lF]blF_blFablFgblFiblF[clF_`lF`xFd_lF]_nFj^nF_clFacl
@$5F]blFacl-%'RETURNG6#-Fdv6#F_`n@$332F_tF[`l-%)assignedG6#%6_IB_RESULTout_of_t
imeG/F`bn.%%TrueGC$@$/F_`nFat-Fean6#Fat>F]clF\o@$3Fabl-F^bn6#%._GINV_inv_denG>F
^^nF^cn>8:%-_IB_RESULTGBG>Fchl-%'selectG6$f*Fe\lFfnFbzFfn/&&&F_[lF]pFcoFho&&&&F
_[lFbpFcoFhoF]pFfnFfn6$F<F_`n7#-Feu6#;Fio-F_v6#&F_`nFho@%330FgdnF^t52FioFedn0-F
^z6$f*Fe\lFfnFbzFfn-Fb\l6%F[zFdoF_tFfnFfnFfnFgdn7#FatFd_l@%%4Involutive/ratcoef
fGC$@$Fabl>F^^n7$-Fdv6#F^^n-Fdv6#-F^z6$f*Fe\lFfnFbzFfn@$0&FhzFhoFioFdfnFfnFfnFf
n&F_`nFbp@%/F`^lF_t@%3/FfoFioF`p>Facn7#-Fft6$-Fey6%*&&FacnFhclFio&&&Fefn6#&Fchl
FhclFhoFhoFbflFerFgy/F_u;Fio-F_v6#Facn>Facn7#-Fft6$-Fey6%-F^z6$f*F]]nFfnFbzFfn*
&FdoFio&&&F_dn6#&F[^n6#T'FhoFhoFbflFfnFfn6(F<F_`nF,FchlF)F_uFbgnFerFgyFhgn@%Fif
n>Facn7#-Fft6$-Fby6$F_gnF`^lFhgn>Facn7#-Fft6$-Fby6$-Fey6%-F^z6$f*F]]nFfnFbzFfnF
ehnFfnFfnF]inFbgnFerFgyF`^lFhgn>F_`n-%$zipG6%f*6$F)F*FfnFbzFfn@%-Fhq6$&&9%FhoFh
o%'negintG-%'expandG6#,$FdoFbflFdoFfnFfnFfnFgdnFefn>F_`nFgdn@$Fd_nC%>F_`n-Fh_n6
$-F^z6$f*Fe\lFfnFbzFfn/-%$rhsGFco-%$lhsGFcoFfnFfnFfnFj^nF_`n>Facn-Fh_n6$-F^z6$f
*Fe\lFfnFbzFfnFj[oFfnFfnFfnFj^nFacn>F^^n-Fh_n6$-F^z6$f*Fe\lFfnFbzFfnFj[oFfnFfnF
fnFj^nF^^n?(F_u-F_v6#F]_nFbflFioF\oC%>F_`n-Fh_n6$&F]_nFhclF_`n>Facn-Fh_n6$Fb]oF
acn>F^^n-Fh_n6$Fb]oF^^n@$Fe\nC%>F`x-F^z6$f*Fe\lF]]nFfnFfnC$-Fg\l6%FdoF_[l.Fh]nF
h]nFfnFfn6$F;F`xFf\n>F_`n-F^z6$f*Fe\lF]]nFfnFfn7$-Fft6$&FdoFe]nFi]n-Fft6$&FdoFg
]n/Fh]n;,&F[^nFioFioFio-F_vFcoFfnFfnF\^nF_`n>Facn-F^z6$f*Fe\lF]]nFfnFfnFh^oFfnF
fnF\^nFacn@%F`p@$Ffbn@%Fjfn>FacnF^t>Facn7#Fcu@%Fjfn@%/F[pFioC%>Ff]l-F^z6$f*Fe\l
FfnFbzFfn@$3/FhzF_t0&Fdo6#,&F_[lFioFioFioF_tFi`oFfnFfn6$F0FfoF_`n>Facn-F^z6$f*F
e\lFfnFbzFfn@$0FhzF_t/FhzFi`oFfnFfnF\aoFacn@$/FacnFat>Facn7#/F_tF_tC%>Ff]l-F^z6
$f*Fe\lFfnFbzFfn@$3Fg`o0&Fdo6#;F[ao,&F_[lFioF[^nFio7#-Feu6$F_tF[^nFaboFfnFfn6&F
0FfoF1F[pF_`n>Facn-F^z6$f*Fe\lFfnFbzFfn@$Fbao/FhzFaboFfnFfnFhboFacn@$Feao>Facn7
#/F_tFgu@%F_`oC%>Ff]l-F^z6$f*Fe\lFfnFbzFfn@$3/&Fdo6#;FioF_[l7#-Feu6$F_tF_[lFh`o
Fi`oFfnFfnF\aoF_`n>Facn-F^z6$f*Fe\lFfnFbzFfn@$0F\doF_do/F\doFi`oFfnFfnF\aoFacn@
$Feao>Facn7#/FcuF_tC%>Ff]l-F^z6$f*Fe\lFfnFbzFfn@$3F[doF`boFaboFfnFfnFhboF_`n>Fa
cn-F^z6$f*Fe\lFfnFbzFfn@$Fgdo/F\doFaboFfnFfnFhboFacn@$Feao>Facn7#/FcuFgu@$4Fabl
>F^^n.F^^n@%3F\bnF_bl7$Facn4F]clFacnFfn6+FjxF\]lFj\lF^]lF`]lFb]lFd]lFf]lF^^nFfn
Ffn
M7R0
I=Involutive/InvolutiveOptionsf*6#%"aG6#%)oldvalueG6#%jnCopyright~(C)~2000-2010
~by~Daniel~Robertz.~All~rights~reserved.G6"C%>8$%%NULLG@%-%%typeG6$9$%'stringG@
E/F3Q$getF*-%'RETURNG6#-%&tableG6#7-/Q/characteristicF*%2Involutive/characG/Q)r
ationalF*%4Involutive/ratcoeffG/Q'matrixF*%6Involutive/matrixtypeG/Q'absremF*%2
Involutive/absremG/Q*janetlikeF*%5Involutive/janetlikeG/Q)criteriaF*%3Involutiv
e/invcritG/Q0InvolutiveBasisF*%5Involutive/InvoBasisG/Q-PolInvReduceF*%6Involut
ive/PolIReduceG/Q.GroebnerBasisF*%6Involutive/GroebBasisG/Q-SyzygyModuleF*%5Inv
olutive/SyzygyModG/Q4ResolutionAutoTruncF*%?Involutive/ResolutionAutoTruncG/F3Q
$setF*@%32"""9#-F16$&9"6#""#F<C-@%3-F16$&Fco6#F@%(integerG5/F\p""!-%(isprimeG6#
F\p>FAF\p-%&ERRORG6#%Ginvalid~table~entry:~"characteristic".G@%-F16$&Fco6#FC%(b
ooleanG>FDF]q-Fgp6#%Ainvalid~table~entry:~"rational".G@%5/&Fco6#FF%'matrixG/Fgq
%'MatrixG>FGFgq-Fgp6#%?invalid~table~entry:~"matrix".G@%-F16$&Fco6#FIF_q>FJFcr-
Fgp6#%?invalid~table~entry:~"absrem".G@%-F16$&Fco6#FLF_q>FMF\s-Fgp6#%Binvalid~t
able~entry:~"janetlike".G@%54-F16$&Fco6#FO-%%listG6#%'posintG0-%'removeG6%%$has
GFgs7&F_oFfo""$""%7"-Fgp6#%Ainvalid~table~entry:~"criteria".G>FPFgs@%-F16$&Fco6
#FR%*procedureG>FSF]u-Fgp6#%Hinvalid~table~entry:~"InvolutiveBasis".G@%-F16$&Fc
o6#FUF_u>FVFgu-Fgp6#%Einvalid~table~entry:~"PolInvReduce".G@%-F16$&Fco6#FXF_u>F
YF`v-Fgp6#%Finvalid~table~entry:~"GroebnerBasis".G@%-F16$&Fco6#FenF_u>FfnFiv-Fg
p6#%Einvalid~table~entry:~"SyzygyModule".G@%-F16$&Fco6#FhnF\t>FinFbw-Fgp6#%Linv
alid~table~entry:~"ResolutionAutoTrunc".G-Fgp6#%Gexpecting~a~table~as~second~pa
rameter.G/F3Q&MapleF*C&>FS%4Involutive/InvBasisG>FV%:Involutive/PolInvolReduceG
>FY%7Involutive/GroebnerBasG>Ffn%5Involutive/SyzModuleG/F3Q$C++F*C&>FS%>Involut
ive/InvBasisFastAssertG>FV%<Involutive/PolInvReduceFastG>FY%=Involutive/Groebne
rBasisFastG>Ffn%<Involutive/SyzygyModuleFastG/F3Q%GINVF*C&>FS%>Involutive/InvBa
sisGINVAssertG>FV%<Involutive/PolInvReduceGINVG>FY%=Involutive/GroebnerBasisGIN
VG>Ffn%<Involutive/SyzygyModuleGINVG5/F3Q,ComputationF*/F3Q,computationF*C$@'5/
FSFjx/FS%?Involutive/InvolutiveBasisFastG>F-Fgx5/FSFey/FS%?Involutive/Involutiv
eBasisGINVG>F-Fby>F-F\x@$F^o@%-F16$FcoF4@)/FcoF\xC&>FSF_x>FVFax>FYFcx>FfnFex/Fc
oFgxC&>FSFjx>FVF\y>FYF^y>FfnF`y/FcoFbyC&>FSFey>FVFgy>FYFiy>FfnF[z-Fgp6#%jnexpec
ting~either~"Maple",~"C++",~or~"GINV"~as~second~parameter.GFe\l/F3Q)InvBasisF*C
$>F-FS@$F^o@%-F16$FcoF_u>FSFco-Fgp6#%Kexpecting~a~procedure~as~second~parameter
.G/F3Q*InvReduceF*C$>F-FV@$F^o@%F^]l>FVFcoFa]l/F3FhnC$>F-Fin@$F^o@%-F16$FcoF\t>
FinFco-Fgp6#%Rexpecting~a~positive~integer~as~second~parameter.G/F3FenC$>F-Ffn@
$F^o@%F^]l>FfnFcoFa]l5/-%*substringG6$F3;F_oFdtQ%CharF*/F^_lQ%charF*C$>F-FA@$F^
o@%3-F16$FcoF^p5/FcoFap-Fcp6#FcoC%>FAFco@$0FAFap>FD%%trueG@$0FAF-C$>%)P_T_ListG
.Fj`l>%(_StatssG.F]al-Fgp6#%Vexpecting~zero~or~a~prime~number~as~second~paramet
er.G5/F3Q)RationalF*/F3FCC$>F-FD@$F^o@%-F16$FcoF_qC%>FDFco@$4FD>FAFap@$0FDF-C$>
Fj`lF[al>F]alF^al-Fgp6#%Mexpecting~boolean~value~as~second~parameter.G5/-F__l6$
F3;F_o""'Q'MatrixF*/F[clFFC$>F-FG@$F^o@%5/FcoFiq/FcoF[r>FGFco-Fgp6#%Texpecting~
'matrix'~or~'Matrix'~as~second~parameter.G/F3Q'GBasisF*C$>F-FY@$F^o@%F^]l>FYFco
Fa]l/F3Q*JanetLikeF*C$>F-FM@$F^o@%Fjal>FMFcoFfbl5/F3Q)CriteriaF*/F3FOC$>F-FP@$F
^o@%54-F16$FcoFis0-F_t6%FatFcoFbtFet-Fgp6#%jnexpecting~list~of~integers~between
~1~and~4~as~second~parameter.G>FP-%%sortGF_`l/F3Q<AbsolutelySmallestRemainderF*
C%@$FD-Fgp6#%`poption~'AbsolutelySmallestRemainder'~only~applies~for~computatio
ns~over~the~integers.G>F-FJ@$F^o@%Fjal>FJFcoFfbl-Fgp6#%Hinvalid~option;~see~?In
volutiveOptions.G-Fgp6#%hnexpecting~a~string~as~first~argument;~see~?Involutive
Options.GF-F*6/Fj`lF]alFAFDFGFMFJFSFVFYFfnFPFinF*F*
M7R0
I8Involutive/SyzygyModulef*6#%"LG6$%"aG%"SG6#%jnCopyright~(C)~2002-2010~by~Dani
el~Robertz.~All~rights~reserved.G6"C&@$0%7Involutive/initializedG.%%trueG-%0Inv
olutive/initGF+>8%-%5Involutive/SyzygyModG6#9"@$30F57"/F7%<Involutive/SyzygyMod
uleFastG-%:Involutive/AssertInvBasisG6$F5-%#opG6#-%'selectG6$f*6#F'F+6$%)operat
orG%&arrowGF+54-%%typeG6$9$%)equationG0-FD6$"""FSQ$modF+F+F+F+7#&F96#;""#9#-%'R
ETURNG6#F5F+F+F+F+
M7R0
I4Involutive/pmax_degf*6#%"TG6%%"aG%"vG%#mdG6#%\pCopyright~(C)~2000-2010~by~Car
los~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C%>8&""!@%%5Involutive/ja
netlikeG?&8%9$%%trueGC$>8$,&-%(convertG6$&F46$""$"""%"+GFA-F<6$-%%subsG6$/%)inf
inityGF0&F46#""&FBFA@$2F/F9>F/F9?&F4F5F6C$>F9F;@$FN>F/F9-%'RETURNG6#F/F,F,F,F,
M7R0
I>Involutive/PolHilbertFunctionf*6"6+%"iG%"jG%"qG%"rG%"sG%,given_basisG%/args_w
ithout_sG%$varG%2tmp_P_T_List_dataG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Ci
d~and~Daniel~Robertz.~All~rights~reserved.GF$C(@$/9#""!-%'RETURNG6#F">8(.F:>8*%
%NULLG@%1F4"""C$>8)%&falseG@$/F4FA@%3-%%typeG6$&9"6#FA%)equationG/-%#opG6$FAFMQ
$varF$>F:-FS6$""#FM>F:FMC$>FD%%trueG?(8$FAFAF4Fgn@%3-FK6$&FN6#FinFP/-FS6$FAF^oF
U>F:-FS6$FYF^o>F=6$F=F^o@%FD>6$8,8+-%7Involutive/setup_basisG6#F=@$4-%)assigned
G6#%)P_T_ListG-%&ERRORG6#%Umissing~involutive~basis;~run~InvolutiveBasis~first.
G@)-FK6$F:%'stringGC'>8&-%4Involutive/pmax_degGFdp?(FinF5FA,&F`qFA!""FAFgn-%'pr
intfG6%Q0Dim(M.%d)~=~%a|+F$Fin-F"F_o-Fgq6%Q;Dim(M.s)~=~%a,~for~s~>=~%dF$-%@Invo
lutive/PolHilbertPolynomialGF$F`q@$FD-%;Involutive/restoreP_T_ListG6#F[p-F76#F>
3-FK6$F:%(numericG/F:F5C%>8'-%1Involutive/PolHFG6#F:@$FDFarF]sFgrC%>F]s-%)simpl
ifyG6#,&F^sFA-F_s6#,&F:FAFeqFAFeq@$FDFarF]sC$@$FDFarf*6#F&F$6$%)operatorG%&arro
wGF$-F"6$FN/FU9$F$F$F$F$F$F$F$
M7R0
I6Involutive/jetsmklistf*6#%"LG6"6#%[oCopyright~(C)~2000-2002~by~Mohamed~Baraka
t.~All~rights~reserved.GF&@)-%%typeG6$9$%%listGF--F+6$F-%$setG-%(convertGF,-F+6
$F-%&arrayG-F36$F-%)listlistG7#F-F&F&F&F&
M7R0
I=Involutive/PolResolutionFastf*6#%"LG6L%"aG%"eG%"iG%"jG%"kG%"lG%#lmG%"pG%"tG%"
vG%"BG%#BBG%"FG%#L2G%"MG%#MsG%#MVG%$MV2G%"RG%#RRG%"SG%"TG%#IBG%'lmprocG%$lmpG%'
n_entrG%$varG%%varsG%)new_varsG%(var_ordG%'vt_degG%(deg_ordG%+deg_or_matG%)tup_
permG%&paramG%%seqvG%&m_ordG%*m_ord_POTG%#trG%*cmp_basisG%+trans_elemG%)entr_po
sG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"CC@$0%
7Involutive/initializedG.%%trueG-%0Involutive/initGFS>80-%6Involutive/proc_inpu
tG6#9$@$4&Fgn6#""$-%&ERRORG6#%Fexpecting~L~without~right~hand~sides.G>8=&Fgn6#"
""@$&Fgn6#""&-Fbo6#%jnPolResolutionFast~cannot~compute~in~algebraic~field~exten
sions.G>8L&Fgn6#""(@%32""#9#-%%typeG6$&9"F_o%%listGC(>8?F^q>86-Fin6#&F_q6#Fip@$
2Fio&FeqFho-Fbo6#%Xexpecting~list~of~relations~for~the~residue~class~ring.G@$4&
FeqF_o-Fbo6#%foright~hand~sides~for~relations~of~the~residue~class~ring~are~not
~supported.G@%/&Feq6%""%FioFio7#""!>Feq7">FeqFhq>8(FjrC&@$2FjpFip-Fbo6#%Pexpect
ing~list~of~variables~as~second~argument.G>FcqFhq>FeqF^s>FasF`o>8>-%5Involutive
/proc_varsG6$FcqFfo>8A&F\tFiq>8B&F\tF_o>8C&F\t6#Fjr>8E&F\tF\p>8M&F\t6#""'>F\t&F
\tFho>%&_nvarG-%%nopsG6#F\t>8G7#-%$seqG6$-%$catG6$%#_xG8'/Fcv;FioFeu@$0-%&minus
G6$<#-%#opG6#Fbp<#-F]wFhu<"-Fbo6#%Lno~parameters~allowed~in~PolResolutionFast.G
>8DFio>8+F\s>8JF\s>8:%%NULLG>8HFip>8K%&falseG?(FcvFasFioFjpFYC$>88&F_q6#Fcv@)-F
\q6$Ffx%'stringG?(8&FioFio-%'lengthG6#FfxFY@2/&Ffx6#F^yQ"CFS>FaxFY/FdyQ"DFS>Ffw
F\s/FdyQ"GFSC$>FhwFip>8F-F`v6$-%*substringG6$Ffx;Fio,&F^yFio!""Fio-Fdz6$Ffx;,&F
^yFioFioFioF_y/FdyQ"MFS>FfwFio/FdyQ"OFS>FhwFio/FdyQ"SFSFS/FdyQ"TFS>F_xFjr0FdyQ!
FS-Fbo6#%aroptions~must~be~given~by~a~string~consisting~of~letters~in~|fr"C",~"
D",~"G",~"M",~"O"|hr,~not~containing~both~"D"~and~"M".G-F\q6$Ffx%'posintG>FjwFf
x3-F\q6$Ffx%)equationG/-F]w6$FioFfxQ%TRELFS>F\x-F]w6$FipFfx-Fbo6#%0invalid~opti
on.G@$3/F_xFjr/FhwF\s>FhwF`o@%0FatF^sC$>F_x7#-%"$G6$F_x-Fgu6#Fat>8I7#-Fj]l6$Fip
F\^l>F_^lFip@+0FeqF^sC'@$/FjwF\s>Fjw%?Involutive/ResolutionAutoTruncG>83F^s@'-F
\q6$F[o%)listlistG>8.F[o-F\q6$F[oF`q>Fb_l-%$mapG6$f*6#F'FS6$%)operatorG%&arrowG
FS7#F[oFSFSFSF[o>Fb_l-%(convertGF__l?(FSFioFioFS34-&%'linalgG6#%'iszeroG6#Fb_l2
,&-Fgu6#F\_lFioFhzFioFjwC&>8)-FguFj`l>F\_l7$-%6Involutive/matrixtypeGFj`l-F]wF^
al>Fb_l-Fa`l6$-%8Involutive/PolKernelEmbG6&-%7Involutive/jetsdiagmatG6#-Fj]l6$F
eqFaal-%'matrixGFj`l-F_bl6#-Fj]l6$FeqFfoF\tF`_l>FfoFaal>F\_lFdalFb]lC(>Faal-%4I
nvolutive/proc_ordG6*F_^lF\tFatFdtFgtF\tF^uFY>8;&FaalFho>Fb_l-%>Involutive/InvB
asisFastAssertG6%F[oFcqF_^l>89-%%subsG6$7#-F]v6$/&Fju6#Fas&F\tFadl/FasFev%)P_T_
ListG@%/FfwFio@%/Ffal%'MatrixG>F\_l7#-Fidl6%FbalFfo-Fg_l6$f*Fj_lFSFSFS@%Fc_lF[o
F^`lFSFSFSFb_l>F\_l7#-Fdbl6%FbalFfoFb_lC%>82F^s?(F^yFioFioFbalFYC&>FcvFio?(FSFi
oFioFS31FcvFfo/&Fhcl6&F^yFioFioFcvF\s>Fcv,&FcvFioFioFio>8*-Fjcl6$7#-F]v6$/Fbdl)
8,&FdtFadlFcdl&-Facl6#F`flFiq>Fhel7$-F]w6#Fhel,&-%'degreeG6$FeflF]glFio&Fdt6#,&
FeuFioFcvFioFio>F\_l7#Fhel?(FSFioFioFS32F\sFbal5Fh^lF[alC)@%/&Fdt6#;,&FfuFioFio
Fio,&FfuFioFfoFio7#-Fj]l6$F\sFfo>8<-%&parseG6#-F`v6-Q@a->`Involutive/pol_lead_m
on`(a,FS-Fa`l6$FfoF\yQ",FS-Fa`l6$F\tF\yFhil-Fa`l6$FbclF\yFhil-Fa`l6$7#FfoF\yFhi
l-Fa`l6$&FaalF\pF\yQ%,~0)FS>F_il-Fail6#-F`v6/FeilFfilFhilFiilFhilF[jlFhilF]jlFh
ilF`jlFhil-Fa`l6$FdtF\yQ")FS>84-Fg_l6$f*Fj_lFSF[`lFS&F[oF\pFSFSFSFhcl>85F^s>Fef
lF^s>81F^s?(F^yFioFioFbalFY@$0&F][mFey7#-Fj]l6$%)infinityGFeu?(FcvFioFioFeuFY@$
0&F][m6$F^yFcvF^\mC'@%%4Involutive/ratcoeffG>87-%2Involutive/invredG6)7$-%'expa
ndG6#*&)&F\tFhx,&Fb\mFioFioFioFio&&&FhclFeyFhoFhoFioF[sFhclFYFYF\tF_il&FaalF`u@
%%2Involutive/absremG>Fh\m-%8Involutive/invred_Z_absGF[]m>Fh\m-%;Involutive/inv
red_Z_nonnegGF[]m@$0&&Fh\mFhoFhoF[il-Fbo6#%-wrong~basis!G>Ff[m7$-F]w6#Ff[m,&-%'
subsopG6$/F^yFa]m7#-Fj]l6$F\sFbalFio&Fh\mFiqFhz>Fc[m7$-F]w6#Fc[m7$-F]w6#&Fj[m6#
;Fio,&FcvFioFhzFio-Fj]l6$F^\m,(FeuFioFcvFhzFioFio@%Ff\m>Fefl7$-F]w6#Fefl7$7$-F]
_m6$/FcvFc]m7#-Fj]l6$F\sFeuF^y7$FioFa]m>Fefl7$Fe`m7$7%Fi`mF^yFioF_am@%2F\s-FguF
j^mC'>FfoFbal>Fhcl-%%sortG6$7#-F]v6$7*7$&Ff[mFeyF[s&Fefl6$F^yFioFcbmF\am&Fc[mFe
y&Fefl6$F^yFipF^s-%1Involutive/ecartG6&Fbbm&FeflFeyFju%(loc_varG/F^y;FioFfam%7I
nvolutive/pdegrevlex3G>Fb_l-Fg_l6$f*Fj_lFSF[`lFS&&F[oFhoFhoFSFSFSFhcl@%/FfwF\sC
%>FhelF^s?(F^yFioFioFbalFYC&>FcvFio?(FSFioFioFSF]fl>FcvFcfl>FeflFffl>Fhel7$Fdgl
,&FgglFio&F\_l6$FioFcvFio>F\_l7$FhelFgalC$@%Fhdl>Fhel-Fidl6%FbalFfo-Fg_l6$f*Fj_
lFSFSFS@%Fc_lF[oF^`lFSFSFSFb_l>FhelFdel>F\_l7$-%%copyGFeglFgal>Fdt7$&-F]w6#Fdt6
#FevF\il>Fb_lF^s/FhwFioC+>Faal-F^cl6*F_xF\tFatFdtFgtF\tF^uFY>FaclFbcl>Fb_l-%=In
volutive/GroebnerBasisFastG6%-Fg_l6$f*6#F)FSF[`lFSFecmFSFSFS&FgnFitFcqF_x>FaalF
bal@%Ffdl@%Fhdl>F\_l7#-Fidl6%FaalFfo-Fg_l6$f*Fj_lFSFSFS@%Fc_lF[oF^`lFSFSFSFb_l>
F\_l7#-Fdbl6%FaalFfoFb_lC%>FhelF^s?(F^yFioFioFaalFYC(>8%&Fb_lFey@$/FfoFio>F_hm7
#F_hm>FcvFio?(FSFioFioFS3F^fl/&F_hmFhxF\s>FcvFcfl>Fefl-Fjcl6$Fhfl&-Facl6#FihmFi
q>FhelFcgl>F\_lF^hl>Ff[m7#-F]v6$/F`hm-F]_m6$/F^yFio7#-Fj]l6$F\sFaal/F^y;FioFaal
-%9Involutive/GroebnerBasisG6%Ff[mFcqF_x>Ffx-%4Involutive/SyzygiesGFbjm?(FSFioF
ioFS32F\s-FguFayFbhlC)>FfoFfam>Fb_l-Fdfm6%FfxFcqF_x>FaalFbal@%FgcmC%>FhelF^s?(F
^yFioFioFaalFYC(>F_hmF`hm@$Fbhm>F_hmFdhm>FcvFio?(FSFioFioFSFghm>FcvFcfl>FeflF\i
m>FhelFadm>F\_lFfdmC$@%Fhdl>Fhel-Fidl6%FaalFfo-Fg_l6$f*Fj_lFSFSFS@%Fc_lF[oF^`lF
SFSFSFb_l>FhelFhgm>F\_lFbem>Ff[mFdimF`jm>FfxFdjm/FhwFipC+>FaalF_fm>FaclFbcl>Fgn
-Fg_l6$f*FifmFSF[`lFSFecmFSFSFS-%(collectG6%FjfmF\t%,distributedG@%FfdlC$@%Fhdl
>F\_l7#-Fidl6%-Fgu6#FgnFfo-Fg_l6$f*Fj_lFSFSFS@%Fc_lF[oF^`lFSFSFSFgn>F\_l7#-Fdbl
6%F^^nFfoFgn>8@FcqC'@$0FjuF\t>Ff[m-Fg_l6$f*Fj_lFSF[`lFS-Fjcl6$7#-F]v6$/&T'6#T%&
T#Fi_n/Fj_nFevF[oFSFS6(FJFjuF)F^yFAF\tFgn>FhelF^s?(F^yFioFioFfamFYC'>F_hmFbbm>F
cvFio?(FSFioFioFS31Fcv-Fgu6#F_hmFhhm>FcvFcfl>FeflF\im>FhelFcgl>F\_lF^hl>Fi^n7$-
F]v6$/&F\tFey&FdtFey/F^yFev-F]v6$/F^y&FhelFeyF]cm>Ff[m-%2Involutive/AddRhsGF_^n
@$0F\xF]x>Ff[m7$Fi^m-F]w6#-Fg_l6$f*Fj_lFSF[`lFS/F[o7#-Fj]l6$F\s-Fgu6#F\`nFSFS6$
F3FgnF\x-%;Involutive/InvolutiveBasisGFbjm>Fb_lFdjm@$0Fb_lF^s@%/FjwFioC%>8/-%?I
nvolutive/InvolutiveBasisFastG6%Fb_lFcqF_x@$54Fax2-Fgu6#FecnFbal>Fb_lFecn@%Ffdl
@%Fhdl>F\_l7$-Fidl6%FbalF^^n-Fg_l6$f*Fj_lFSFSFS@%Fc_lF[oF^`lFSFSFSFb_lFgal>F\_l
7$-Fdbl6%FbalF^^nFb_lFgalC&@$F\_n>Ff[m-Fg_l6$f*Fj_lFSF[`lFSFa_nFSFSF^`nFb_l>Fhe
lF^s?(F^yFioFioFfamFYC'>F_hmFbbm>FcvFio?(FSFioFioFSFe`n>FcvFcfl>FeflF\im>FhelFa
dm>F\_lFfdmC$@$2F\sFjw>F`z6$F`z,&FjwFioFhzFio>F\_l7$-F]w6#-F"6%Fb_lFi^nF`zFgalC
/>FaalF_fm>FaclFbcl>Ff[m-Fg_l6$f*FifmFSF[`lFSFecmFSFSFSFc]n>Fb_l7#-F]v6$/Fbbm-F
]_m6$Fjim7#-Fj]l6$F\sFfamF]cm>Fb_l-F]cnFhcn>FhwFbx@$5F[dn2FbalFfamC$>FhwFY>Ff[m
-Fg_l6$f*FifmFSF[`lFS-%$lhsGFjnFSFSFSFb_l@%Ffdl@%Fhdl>F\_l7#-Fidl6%FfamFfo-Fg_l
6$f*Fj_lFSFSFS@%Fc_lF[oF^`lFSFSFSFf[m>F\_l7#-Fdbl6%FfamFfoFf[mC%>FhelF^s?(F^yFi
oFioFfamFYC(>F_hmFbbm@$Fbhm>F_hmFdhm>FcvFio?(FSFioFioFSFghm>FcvFcfl>FeflF\im>Fh
elFcgl>F\_lF^hl>FaalFfam>Ff[m7#-F]v6$/FbbmFhimF^jm@$FhwF\cn>FfxFdjm?(FSFioFioFS
FgjmC->Ffo-Fgu6#&FfxFho>Ff[mFfx>Fb_lFbgn>Fb_lF\hn>FhwFbx@$F_hnC$>FhwFY>Ff[m-Fg_
l6$f*FifmFSF[`lFSFghnFSFSFSFb_l@%FgcmC%>FhelF^s?(F^yFioFioFfamFYC(>F_hmFbbm@$Fb
hm>F_hmFdhm>FcvFio?(FSFioFioFSFghm>FcvFcfl>FeflF\im>FhelFadm>F\_lFfdmC$@%Fhdl>F
hel-Fidl6%FfamFaal-Fg_l6$f*Fj_lFSFSFS@%Fc_lF[oF^`lFSFSFSFf[m>Fhel-Fdbl6%FfamFaa
lFf[m>F\_lFbem>FaalFfam>Ff[mFfjn@$FhwF\cn>FfxFdjm>Fddl.Fddl>%+PolTab_VarG.F_^o>
%(_StatssG.Fb^o>%+_JB_factorG.Fe^o>%3_JB_factor_multvarG.Fh^o-%'RETURNGF^alFS6(
FeuFddlF_^oFb^oFe^oFh^oFSFS
M7R0
I@LocalInvolutiveBasisfree/homalg=6"%&falseGE\[l&%'ReduceG%7Involutive/LocalRed
uceG%3SyzygiesGeneratorsG%9Involutive/LocalSyzygiesG%.BasisOfModuleG%>Involutiv
e/LocalBasisIdentityG%-IntersectionG%8homalg/Intersection.newG%'IsUnitG%7Involu
tive/LocalIsUnitGF$
M7R0
I9Involutive/ecart_need_lmf*6&%"hG%'lmprocG%%seqvG%(loc_varG6#%#lmG6#%epCopyrig
ht~(C)~2006-2010~by~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~rights~reser
ved.G6"C$>8$-9%6#&9$6#"""-%'RETURNG6#-%1Involutive/ecartG6&F5F09&9'F-F-F-F-
M7R0
IHInvolutive/pnormal_form_expand_lm_localf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%
(loc_varG6"6#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~rights~r
eserved.GF+-%'RETURNG6#-%>Involutive/pnormal_form_localG6)9$9%9&9'9(9)""*F+F+F+
F+
M7R0
I>Involutive/LocalBasisIdentityf*6$%#LLG'%$varG%%listG6-%'pinputG%*denomlistG%,
commondenomG%,makeFinalOpG%'resultG%"oG%&args3G%"LG%"rG%&rightG%"JG6#%boCopyrig
ht~(C)~2007-2010~by~Markus~Lange-Hegermann.~All~rights~reserved.G6"C-@%-%%typeG
6$9$%"=GC%>8+-%$lhsG6#F=>8,-%$rhsGFD>8-%%trueGC$>FAF=>FJ%&falseG>8$-%6Involutiv
e/proc_inputG6#FA@$4-F;6$&FQ6#""%F(>FY&-%#opG6#FY6#"""@%4-F;6$-%$mapG6$%5Involu
tive/RemoveRHSGFA<$%&arrayG%)listlistG>8'FK>FioFO>8.-Fbo6$f*6#%"lGF76$%)operato
rG%&arrowGF7&F=F[oF7F7F7FY>8%-Fbo6$f*F`pF7FbpF7@%-F;6$F=F(-Fin6#-Fbo6$f*6#%"kGF
7FbpF7-%&denomGFDF7F7F7F=FeqF7F7F7F\p>8&-%$lcmG6#-Fin6#Fgp@$4-%7Involutive/Loca
lIsUnitG6$Fhq9%-%&ERRORG6#QHfound~a~denominator,~that~is~not~a~unitF7@%&FQ6#""$
>8(-Fbo6$f*F`pF7FbpF7-%'expandG6#-%&evalaG6#-Fbs6#*&T#F\oFepF\oF7F76$F,FhqFY>F]
s-Fbo6$f*F`pF7FbpF7-Fbs6#-Fes6#-Fbs6#*&FjsF\o/Fep&F=6#""#F\oF7F7F[tFY@$Fio>F]s-
Fbo6$f*F`pF7FbpF7@%F:/-Fin6#FBFG-FinFDF7F7F7F]s@%FJ/F]s-Fbs6#*&FhqF\oFFF\oF]sF7
F7F7F7
M7R0
IFInvolutive/simp_pnormal_form_Z_nonnegf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(l
oc_varG6+%"aG%"hG%"iG%"lG%"rG%#lmG%$divG%*zero_listG%.rhs_zero_listG6#%jnCopyri
ght~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C*>%(_nnformG,&F:""
"F<F<>8%9$>8+7#-%"$G6$""!-%%nopsG6#&F>6#F<>8,7#-FD6$FF-FH6#&F>6#""#>8(7$FAFM>8)
-9'FI?(F7F<F<F70&FZ6$FUF<FFC'>8&F<>8*%&falseG?(F7F<F<F731F]o-FH6#9%4F_oC$@$-%7I
nvolutive/pinv_divideG6%&Ffo6$F]o""$&Ffo6$F]o""&&FZFKC%>%'_reducG,&FfpF<F<F<>8'
-%%iquoG6$Fin&Ffo6%F]o""'F<@&0FipFFC$>F>-%(collectG6%7$-%'normalG6#,&FJF<-%$map
G6$f*6#F,F76$%)operatorG%&arrowGF7**T#F<&T%6$FUFUF<&T(6%T)F_qFU!""F?F<F7F76*F/F
ipF1FZF&FfoF.F]o&Ffo6%F]oF<F<F]s-Fiq6#,&FSF<-F]r6$f*F`rF7FarF7FdrF7F7F^s&Ffo6%F
]oF<FUF]s9&%,distributedG>F_o%%trueG/-%%signG6#FinF]sC$>F>-Feq6%7$-Fiq6#,&FJF<-
F]r6$f*F`rF7FarF7**-F_t6#&T$6%FgrF_qF<F<&T'FhrF<&F`u6%FgrF_qFUF]sF?F<F7F76(F&Ff
oF.F]oF1FZF_sF<-Fiq6#,&FSF<-F]r6$f*F`rF7FarF7F\uF7F7FfuFgsF<FisFjs>F_oF\t>F]o,&
F]oF<F<F<@$FgoC$>FW7$-%'subsopG6$/&FZ6$F<FU-Feq6%,&&&FWFK6#FhvF<*&FinF<&FZFhrF<
F<FisFjsF^w&FWFT>F>7$-Fev6$/Fhv-Feq6%,&&FJF_wF<F`wF]sFisFjsFJFS>FZFen@'3/F^wFA0
FSFMC$@$4-%7Involutive/member_multG6%FS%&P_HOMGFis>Fgx7$-%#opG6#FgxFS7$F^wFMF_x
7$FAFS7$F^wFSF76%FgxF:FfpF7F7
M7R0
IAInvolutive/FactorModuleBasisFastf*6#%"LG6C%"cG%"iG%"jG%"lG%"rG%"vG%%fextG%'n_
entrG%)rhs_entrG%'no_rhsG%"FG%"RG%$varG%(var_ordG%'vt_degG%(deg_ordG%$POTG%)tup
_permG%-inv_tup_permG%#IBG%&m_ordG%+time_boundG%#trG%)entr_posG%+trans_elemG%*q
uietmodeG%%voffG%*donotreadG%*forcelistG%,withmultvarG%(genfuncG%-optionstringG
%)dolaunchG6#%jnCopyright~(C)~2008-2010~by~Daniel~Robertz.~All~rights~reserved.
G6"CN@$0%7Involutive/initializedG.%%trueG-%0Involutive/initGFJ@$/%4Involutive/r
atcoeffG%&falseG-%&ERRORG6#%Qno~factor~module~basis~defined~over~the~integersG>
8.-%6Involutive/proc_inputG6#9$>8+&Ffn6#""">8,&Ffn6#""#>8-&Ffn6#""$@$&Ffn6#""&-
FX6#%^oFactorModuleBasisFast~cannot~compute~in~algebraic~field~extensions.G>8<&
Ffn6#""(>Ffn-%'expandG6#&Ffn6#""%@%332Fdo9#-%%typeG6$&9"Fho%%listG4-Fcq6$Feq-Fg
q6#%(integerGC)>80Feq>8/-Fhn6#&FfqFco@$2F_o&FbrF^o-FX6#%Xexpecting~list~of~rela
tions~for~the~residue~class~ring.G@$4&FbrFho-FX6#%foright~hand~sides~for~relati
ons~of~the~residue~class~ring~are~not~supported.G>Fbr-Fhp6#&FbrF[q@%/&Fbr6$F_oF
_o7#""!>Fbr7">Ffn7$-%#opG6#Ffn-%$seqG6$-Fdt6$7$-%'subsopG6$/8%&Fbr6%8&F_oF_o7#-
%"$G6$F[tF\o7#-Fcu6$F[tFao/F]u;F_oF\o/F`u;F_o-%%nopsG6#Fbr>8(F\qC&@$2FaqFdo-FX6
#%Pexpecting~list~of~variables~as~second~argument.G>F`rFer>FbrF]t>F`vFio>F`r-%5
Involutive/proc_varsG6$F`rF\o>81&F`rFco>82&F`rFho>83&F`rF[q>85&F`rF\p>8;&F`r6#"
"'>F`r&F`rF^o>%&_nvarG-F]v6#F`r@$0-%&minusG6$<#-Fat6#Fbp<#-FatFdx<"-FX6#%Pno~pa
rameters~allowed~in~FactorModuleBasisFast.G>8)-%(convertG6$-%+kerneloptsG6#%(ve
rsionG%'stringG@$30-%*substringG6$Fdy;F_oFepQ(Maple~VFJ4-Fcq6$Ffn-%)listlistG6#
-Fgq6#-%(polynomG6$%)rationalGF`r-FX6#-%$catG6&%Mexpecting~list~of~(lists~of)~p
olynomials~in~G-Fat6#-%$mapG6$f*6#F+FJ6$%)operatorG%&arrowGFJ-Fd[l6$-Ffy6$FjnF\
zQ",FJFJFJFJ&F`r6#;F_o!"#-Ffy6$&F`r6#!""F\z%".G>8$%2Involutive/characG@%/F_wF]t
>88F\q>Ff]l7#-Fcu6$F\q-F]v6#F_w>8*Q!FJ>89F[t>8:FV>8=-%&evalbG6#52F[t-%+searchte
xtG6$Q&APPLEFJFdy/-Faz6$-Ffy6$-%*interfaceG6#.F[zF\z;F_o"#GQ=Standard~Worksheet
~InterfaceFJ>8>FP>8?FV>8@FV>8AFV>8BFV>8CF_^l>8DFV?(F]uF`vF_oFaqFP@)5-Fcq6$&Ffq6
#F]uF]r-Fcq6$F^alFgq>Ff]lF^al-Fcq6$F^alF\z@+/F^alQ/tracerelationsFJ>Fc^lFP/F^al
Q*donotreadFJ>F^`lFP/F^alQ&denomFJFJ/F^alQ'launchFJFJC$>8'F^al?(F`uF_oF_o-%'len
gthG6#FbblFP@,/&Fbbl6#F`uQ"CFJC$>F``lFP>Ff`l-Fd[l6$Ff`lF[cl/FiblQ"GFJC$>Fd`lFP>
Ff`l-Fd[l6$Ff`lFbcl/FiblQ"LFJFJ/FiblQ"MFJC$>Fb`lFP>Ff`l-Fd[l6$Ff`lF[dl0FiblF_^l
-FX6#%fooptions~must~be~given~by~a~string~consisting~of~letters~in~|fr"C",~"G",
~"M"|hr.G-Fcq6$F^al%)equationG@3/-Fat6$F_oF^alQ%NameFJC$@$4-Fcq6$-Fat6$FdoF^alF
\z-FX6#%Fexpecting~a~string~for~option~"Name".G>F^^lFbel/FjdlQ%charFJC$@$4-Fcq6
$Fbel%*nonnegintG-FX6#%Qexpecting~0~or~a~prime~number~for~option~"char".G>Fa]lF
bel/FjdlQ%timeFJC$@$F\fl-FX6#%Sexpecting~time~bound~in~seconds~for~option~"time
".G>Fa^lFbel/FjdlQ&quietFJC$@$4-Fcq6$Fbel%(booleanG-FX6#%Lexpecting~boolean~val
ue~for~option~"quiet".G>Fe^lFbel/FjdlQ(verboseFJ@'/FbelQ#onFJ>F\`lFV/FbelQ$offF
J>F\`lFP-FX6#%?expecting~string~"on"~or~"off"G/FjdlFjalC$@$F`gl-FX6#%Pexpecting
~boolean~value~for~option~"donotread".G>F^`lFbel/FjdlQ)GroebnerFJFJ/FjdlQ.tailr
eductionFJFJ-FX6#%0invalid~option.GF_il@$5530Ff]lFdo0Ff]lF\q2F_o-F]v6#F[x3/Fiil
F_o0&F[xF^oF\oC$-%4Involutive/InvBasisG6#Ffq-%'RETURNG6#-%=Involutive/FactorMod
uleBasisG6$F`rFf`l@$0F_wF]t-FX6#%]oUp~to~now,~only~degrevlex~is~implemented~in~
FactorModuleBasisFast.G>Fbbl-%4Involutive/proc_ordG6*Ff]lF`rF_wFbwFewF`rF[xFP>8
4&FbblF[q@%0Fhw7#-Fcu6#FiuC$>86-Fj[l6$f*6#F(6#F)FJFJC$-%'memberG6%FjnT#.Fa]lFa]
lFJFJ6$F8FhwFg[m>Ffn-Fj[l6$f*F`\mFa\mFJFJ-Fjt6$/F_o7#-Fdt6$&&FjnF^o6#&Ff\m6#Fa]
l/Fa]l;F_oT%FjnFJFJ6&F8FhwF.F\oFfn>F\\mFhw@$0FbrF]t-%7Involutive/cppInvBasisG65
FbrF`rF_oFPFa]lFV&Fbw6#;F_oFbxFjsFg[mQ'__ringFJF[tFVFPFPFVFVQHinvbasis,invbasis
lm,invbasisanc,multvarFJFVFV>87-F`^m65FfnF`rF\oFfoFa]lFc[mFb^m&Fbw6#;,&FbxF_oF_
oF_o,&FbxF_oF\oF_oF\\mF^^lFa^lFc^lFe^lF\`lF^`lFVQ2factormodulebasisFJFVFh`l@$5F
^`lFh`l-Fdjl6#-Fat6#Fh^m@%5Fd`l-%$hasG6$%3_JB_factor_multvarGF_o@%F``l@%Fb`l-Fd
jl6#-Fj[l6$f*F`\m6$F)%"mGFJFJC$>F]u-%'selectG6$f*Fa\mFJF^\lFJ2F[t&&F\`m6#T$FinF
JFJ6$F(Fjn7#-Fcu6#;F_o-F]v6#%(_JB_varG7$&%+_JB_factorGFin-Fj[l6$f*Fa\mFJF^\lFJ&
FhamFinFJFJFJF]uFJFJFJ7#-Fcu6#;F_o-F]v6#F[bm-FdjlFebm-Fdjl6#-Fhp6#-%$addG6$*&&F
[bmF_alF_o-%$mulG6$),&F_oF_o&FhamFjblF^]l&&F\`mF_alFjbl/F`uFeamF^]l/F]uFcbmF[bm
FJ6#FbxFJFJ
M7R0
I6Involutive/pnegplex_Zf*6$%"aG%"bG6"6#%jnCopyright~(C)~2004-2010~by~Daniel~Rob
ertz.~All~rights~reserved.GF'@%/&9$6#"""&9%F.@%2&F-6#""#&F1F5%&falseG%%trueG4-%
3Involutive/pplex_ZG6$F-F1F'F'F'F'
M7R0
I:Involutive/pnegplex_Z_POTf*6$%"aG%"bG6"6#%jnCopyright~(C)~2004-2010~by~Daniel
~Robertz.~All~rights~reserved.GF'@'2&9$6#""#&9%F.%&falseG2F0F,%%trueG4-%3Involu
tive/pplex_ZG6$F-F1F'F'F'F'
M7R0
I:Involutive/pnegplex_blockf*6$%"aG%"bG6"6#%jnCopyright~(C)~2004-2010~by~Daniel
~Robertz.~All~rights~reserved.GF'@%/9$9%%%trueG4-%7Involutive/pplex_blockG6$F,F
-F'F'F'F'
M7R0
I<Involutive/pdegrevlex_Z_POTf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2
004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@&2&9$6#""#&9%F3-%'RETURNG
6#%&falseG2F5F1-F86#%%trueG>8%-%(convertG6$&F26#"""%"+G>8&-FB6$&F6FEFG@'2F@FIF<
2FIF@F7?(8$-%%nopsG6#FD!""FFF>@&2&FL6#FQ&FDFYF<2FZFXF7@%2-%$absG6#&F66#""$-Fin6
#&F2F\oF:F>F-F-F-F-
M7R0
IGInvolutive/pdegrevlex_deg_Z_entr_blockf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jn
Copyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C*@&2&%,_entr
blocksG6#&9$6#""#&F36#&9%F7-%'RETURNG6#%&falseG2F9F2-F>6#%%trueG>8%-%%nopsG6#&F
66#""">8&-%$addG6$*&&FJ6#8$FL&%(_vardegGFTFL/FU;FLFF>8'-FP6$*&&&F<FKFTFLFVFLFX@
'2FNFenFB2FenFNF=?(FUFF!""FLFD@&2FinFSFB2FSFinF=@&2-%$absG6#&F<6#""$-Ffo6#&F6Fi
oF=2F[pFeoFB@$2F5F;F=FDF.F.F.F.
M7R0
I@Involutive/pdeglex_Z_entr_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(
C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C)@&2&%,_entrblocksG6#&9
$6#""#&F26#&9%F6-%'RETURNG6#%&falseG2F8F1-F=6#%%trueG>8%-%(convertG6$&F56#"""%"
+G>8&-FG6$&F;FJFL@'2FEFNFA2FNFEF<?(8$FKFK-%%nopsG6#FIFC@&2&FQ6#FV&FIFgnF<2FhnFf
nFA@&2-%$absG6#&F;6#""$-F]o6#&F5F`oF<2FboF\oFA@$2F4F:F<FCF-F-F-F-
M7R0
I7Involutive/checkIBfastf*6('%"BG%%listG'%%varsGF'%"cG%'_m_ordG%%fextG%(nocheck
G6<%"iG%"jG%"lG%#lmG%&fnameG%%fileG%'n_entrG%)rhs_entrG%'no_rhsG%"FG%"SG%#IBG%$
varG%(var_ordG%%seqvG%+zero_listsG%'vt_degG%(deg_ordG%'lmprocG%(tup_cmpG%)tup_p
ermG%(seq_varG%-inv_tup_permG%'compatG%&m_ordG%)entr_posG6#%jnCopyright~(C)~200
0-2010~by~Daniel~Robertz.~All~rights~reserved.G6"CE>8;%%trueG>8--%6Involutive/p
roc_inputG6#9$>8*&FQ6#""">8+&FQ6#""#>8,&FQ6#""$@$&FQ6#""&-%&ERRORG6#%\oInvoluti
veBasisFast~cannot~compute~in~algebraic~field~extensions.G>80-%5Involutive/proc
_varsG6$9%FW>81&FhoFhn>84&FhoF]o>85&Fho6#""%>88&FhoFao>8=&Fho6#""'>Fho&FhoFY>%&
_nvarG-%%nopsG6#Fho>827#-%$seqG6$-%$catG6$%#_xG8$/Far;FZFcq>FQ-%(collectG6%&FQF
fpFho%,distributedG@%/9'""!@%0F^p7">8<7#-%"$G6$Fgp-Feq6#F^p>FbsFgp>FbsF\s>8&-%4
Involutive/proc_ordG6*FbsFhoF^pFapFdpFhqF\qFO>86&F\tFY@$&F\tFfp>F\qF`s>87&F\tFa
o@$9)-%'RETURNG6#7*FOFWFfnF[oFhoFipFbsF\q@'2F]s-%+searchtextG6$Q&linuxFK-%+kern
eloptsG6#%(versionGC$@%/-%*substringG6$-%(convertG6$-%*interfaceG6#.Fhu%'string
G;FZ"#GQ=Standard~Worksheet~InterfaceFK>8(-%CInvolutive/stdinterface_gettmpname
GFKC%>F[w-%(ssystemG6#%Gecho~/tmp/$USER/Involutive-$PPID-$USERG@%2F]s-Fbu6$Q"$F
K&F[wFhn>F[wQ0/tmp/InvolutiveFK>F[w-%=Involutive/remove_whitespaceG6#Fiw>F[w-F^
r6$F[w9(@$4-%;Involutive/ssystem_booleanG6#-F^r6$%)test~-e~GF[w-F\u6#7*%&falseG
FWFfnF[oFhoFipFbsF\q2F]s-Fbu6$Q&APPLEFKFeu>F[wF\wC$>F[wQ1\TEMP\InvolutiveFK>F[w
Fax>8)-%&fopenG6$F[w%%READG>8.-%*readbytesG6%Fjy"#J%%TEXTG-%'fcloseG6#Fjy@$0F`z
Q@Computation~of~involutive~basisFKF\yA-F^r6$F[wQ'.janetFK@$43-%)assignedG6#%+_
IB_RESULTG-Fd[l6#%-_IB_RESULTlmG-Fdo6#%Cerror~in~computation~or~interface.G@$0-
FeqFe[l-Feq6#FQF\y>8/Ff[l>8'Fi[l@%-%%typeG6$&Fc\lFYF'@%F[o@$0FW-Feq6#Fj\l>FNF_y
@$0,&FWFZFfnFZF^]l>FNF_y@$50FWFZ4F[o>FNF_y@$FNC(@$0Fip7#-Fes6#;FZFWC$>8:-%$mapG
6$f*6#F/6#F0FKFKC$-%'memberG6%FUT#.FarFarFKFK6$FCFipF^^l>Fc\l-Ff^l6$f*Fi^lFj^lF
KFK7$-F[r6$&FU6#&F__l6#Far/Far;FZT%-F[r6$&FUF\`l/Far;,&F_`lFZFZFZ-FeqFTFKFK6&FE
Fd^lF5FWFc\l@%Fh]l@%/FWFZ@%/FfnFZ>Fc\l-Ff^l6$f*Fi^lFK6$%)operatorG%&arrowGFK7$&
FUFY7#&FU6#,&F__lFZFZFZFKFK6$F5FWFc\l>Fc\l-Ff^l6$f*Fi^lFKFaalFK7$Feal&FU6#;Fial
,&F__lFZF_`lFZFKFK6&F5FWF6FfnFc\l@%F\al>Fc\l-Ff^l6$f*Fi^lFKFaalFK7$&FU6#;FZF__l
FfalFKFKFjalFc\l>Fc\l-Ff^l6$f*Fi^lFKFaalFK7$F[clF`blFKFKFdblFc\l@%Fj`l>Fc\l-Ff^
l6$f*Fi^lFKFaalFK7$7#FU7#F]sFKFKFKFc\l>Fc\l-Ff^l6$f*Fi^lFKFaalFK7$FUFjclFKFKFKF
c\l>FarFZ>837$7#-Fes6$F]sFW7#-Fes6$F]sFfn>897#-F[r6$/&FhoF\`l&FhqF\`lFbr?(FKFZF
ZFK3FN1FarF`\lC&>8%,(F`\lFZFar!""FZFZ>F\t-%8Involutive/pol_lead_monG6)-%%subsG6
$F[el&&FQF\`lFYFWFhqFatF\qFgtFap@%%4Involutive/ratcoeffG@%/9&F]s@$553/&&F\tFhnF
YF]s0&&&Fe\l6#FgelFYFYF]s30F]glF]s/F`glF]s3F_gl0-%'expandG6#,&*(F]glFZF`glFiel&
Fc\lFcglFZFZFbflFielFbdl>FNF_y@$553/-%$modG6$F]glFgflF]s0-Ffhl6$F`glFgflF]s30Fe
hlF]s/FihlF]s3Fhhl0-Fjgl6#,&*(-Ffhl6$*$F`glFielFgflFZF]glFZF^hlFZFZFbflFielFbdl
>FNF_y@&Fjfl>FNF_yF_glC$>F\t*&F]glFZF`glFiel@$554-Fh\l6$F\t%(integerG0-%$absG6#
F\tFZ0-Fjgl6#,&*&F\tFZF^hlFZFZFbflFielFbdl>FNF_y>Far,&FarFZFZFZ7*FNFWFfnF[oFhoF
ipFbsF\qFK6#FcqFKFK
M7R0
I;Involutive/InvolutiveBasisf*6"6#%"JG6#%jnCopyright~(C)~2000-2010~by~Daniel~Ro
bertz.~All~rights~reserved.GF$C&@$0%7Involutive/initializedG.%%trueG-%0Involuti
ve/initGF$>8$-%5Involutive/InvoBasisG6#9"@$/F4%?Involutive/InvolutiveBasisFastG
-%:Involutive/AssertInvBasisG6$F2&F66#;""#9#F2F$F$F$F$
M7R0
I:Involutive/symmetricrangef*6$'%"dG%(integerG'%"nG%'posintG6$%"iG%"rG6#%jnCopy
right~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C%>8%-%(convertG6
%-%$absG6#9$%%baseG9%?(8$"""F?-%%nopsG6#F3%%trueG@$2,&F<#F?""##!""FHF?&F36#F>C$
>F3-%'subsopG6$/F>,&FKF?F<FJF3@%2F>F@>F3-FP6$/,&F>F?F?F?,&&F36#FZF?F?F?F3>F37$-
%#opGFBF?@%/-%%signGF9F?F3-%$mapG6$f*6#F,F06$%)operatorG%&arrowGF0,$F:FJF0F0F0F
3F0F0F0F0
M7R0
I6Involutive/HenselStepf*6(%"fG%#gnG%#hnG%"xG%"pG%"nG6/%"aG%"bG%#cgG%#chG%"cG%"
dG%#ddG%#dfG%#dgG%#dhG%"iG%"rG%"MG6#%jnCopyright~(C)~2005-2010~by~Daniel~Robert
z.~All~rights~reserved.G6"C0>8+-%'degreeG6$9$9'>8,-F@6$9%FC>8--F@6$9&FC@$0,&FE"
""FJFQF>-%&ERRORG6#%Cdegree(g)~+~degree(h)~<>~degree(f)G>8)-%$modG6$-%'expandG6
#*&,&FBFQ*&FHFQFMFQ!""FQ)9(9)F[oF]o@$/FW""!-%'RETURNG6#7$FHFM>8*-F@6$FWFC>8&-%$
seqG6$-%&coeffG6%FHFC8./Fbp;FaoFE>8'-F]p6$-F`p6%FMFCFbp/Fbp;FaoFJ>807$-F]p6$7%-
%"$G6$FaoFbpFfp-Fdq6$Fao,(F>FQFbpF[oFJF[o/Fbp;Fao,&FEFQF[oFQ-F]p6$7%FcqF[p-Fdq6
$Fao,(F>FQFbpF[oFEF[oF[q>8/-%'vectorG6#7$-F]p6$-F`p6%FWFCFbp/Fbp;FaoFgo-Fdq6$Fa
o,&F>FQFgoF[o>8(-FY6$-%)LinsolveG6$-&%'linalgG6#%*transposeG6#-%'matrixG6#F^qFc
rF]o@%-%%typeG6$FbsFerC$>Fbs-%(convertG6$Fbs%%listG@$-%$hasG6$-%$mapG6$f*6#F,F;
6$%)operatorG%&arrowGF;-%#opG6$FaoFBF;F;F;-%'selectG6%%(hastypeG-%'indetsG6#Fbs
%(indexedG%#_tG-FS6#%Cexpecting~coprime~factors~g~and~h.G-FS6#%>no~solution~of~
linear~system.G@%2""#F]oC&?(FbpFQFQ,&F>FQFQFQ%%trueG@$2,$F]o#FQF[w&Fbs6#Fbp>Fbs
-%'subsopG6$/Fbp,&FdwFQF]oF[oFbs>8$-%$addG6$*&FdwFQ)FC,&FbpFQF[oFQFQ/Fbp;FQFE>8
%-F_x6$*&&Fbs6#,&FEFQFbpFQFQFbxFQ/Fbp;FQ,&FJFQFQFQ-Fco6#-Ffn6#7$,&FHFQ*&F\oFQF]
xFQFQ,&FMFQ*&F\oFQFgxFQFQC'>F]x,&FHFQ*&F\oFQF^xFQFQ>Fgx,&FMFQ*&F\oFQFhxFQFQ?(Fb
pFaoFQ-F@6$F]xFCF_w@$2,$)F[w,&F^oFQFQFQFcw-F`p6%F]xFCFbp>F]x,&F]xFQ*&FgzFQ)FCFb
pFQF[o?(FbpFaoFQ-F@6$FgxFCF_w@$2Ffz-F`p6%FgxFCFbp>Fgx,&FgxFQF][lF[o-Fco6#7$F]xF
gxF;F;F;F;
M7R0
I8Involutive/PolKernelEmbf*6&%"MG%"AG%"NG'%$varG%%listG6#%$embG6#%[oCopyright~(
C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C$-%5Involutive/PolKern
elG6'9$9%9&9'.8$-%%copyG6#F9F/F/F/F/
M7R0
I5Involutive/PolHomHomf*6$%#_MG'%$varG%%listG6(%"MG%"RG%#HMG%%iotaG%$HHMG%$basG
6#%[oCopyright~(C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C*>8$-%
5Involutive/jetsmkmatG6#-%$mapG6$f*6#%"aGF26$%)operatorG%&arrowGF2&9$6#"""F2F2F
2&-%6Involutive/proc_inputG6#FC6#""%>8%7#7#""!>8&-%2Involutive/PolHomG6%F5FM9%>
8'-%(convertG6$-&%'linalgG6#%*transposeG6#-F:6$f*F=F2F?F2-F:6$%#opG-FZ6$-%$rhsG
FI%)listlistGF2F2F2&FRFDFfo>8(-FT6%&FR6#""#FMFV>8)-F:6$f*F=F2F?F2F_oF2F2F2&FioF
D@$32F^p9#-%%typeG6$&9"6#""$%'symbolG-%'assignG6$F\qFio@%/&FioF^qFP@%/%6Involut
ive/matrixtypeG%'MatrixG-Fjq6#7#-%"$G6$7#-F_r6$FP-%%nopsG6#&FXFD-Fer6#FX-%'matr
ixGF\r-%:Involutive/PolRightDivideG6%FXF`pFVF2F2F2F2
M7R0
I>homalg/Involutive/PolSyzygiesf*6%%#M1G%#M2G'%$varG%%listG6$%"vG%"LG6#%jnCopyr
ight~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8$-%5homalg/Nor
malizeRingG6$9&%+InvolutiveG>8%-%2Involutive/AddRhsG6#9$@%/&F26#""#7"@%4-%%type
G6$9%F)C$-%;Involutive/InvolutiveBasisG6$7$-%#opG6#F9-FP6#-%(convertG6$FI%)list
listG&F26#"""-%4Involutive/SyzygiesGFMC$-FL6$7$FO-FP6#FIFX-FfnFin@%FEC$-FL6%FNF
@FXFenC$-FL6%FjnF@FXF]o@%55/%"%GFC/Fio7#""!33-FG6$FioFW/-%%nopsG6#FioFZ/Fio7#7#
-%"$G6$F\p-Fcp6#&FioFYFC-%Dhomalg/Involutive/PolNormalizeInputGFdpF/F/F/F/
M7R0
I6Involutive/PolHomFastf*6%%#_MG%#_NG'%%varsG%%listG6-%"MG%"NG%#l0G%#l1G%$_l0G%
%HP0NG%%HP1NG%&alphaG%"iG%"jG%$varG6#%^pCopyright~(C)~2003-2010~by~Mohamed~Bara
kat~and~Daniel~Robertz.~All~rights~reserved.G6"C->8$-%5Involutive/jetsmkmatG6#-
%$mapG6$f*6#%"aGF86$%)operatorG%&arrowGF8&9$6#"""F8F8F8&-%6Involutive/proc_inpu
tG6#FI6#""%>8%-F=6#-F@6$f*FCF8FEF8FHF8F8F8&-FN6#9%FP>8&-&%'linalgG6#%'coldimG6#
F;>8'-&F[o6#%'rowdimGF^o>8(-Fjn6#FS>8)-%7Involutive/jetsdiagmatG6#-%"$G6$FSFhn>
8*-F\p6#-F_p6$FSF`o>8+-&F[o6#%*transposeG6#-%<Involutive/jetskroneckermatG6$F;-
&F[o6#%%diagG6#-F_p6$FKFfo>8.&-%5Involutive/proc_varsG6$9&*&FhnFKFfoFKFJ-%9Invo
lutive/PolKernelFastG6&FjoFhpFbpF^r7&-F@6$f*FCF8FEF8/-%$lhsGFO-%6Involutive/mat
rixtypeG6%T#T%f*6$F3F4F8FEF8&-%$rhsG6#T$6#,&*&,&FIFK!""FKFKF^sFKFKFfnFKF8F86&FD
FIF/F^sF8F86&F-FhnF/Ffo&%"%GFJ&F^t6#""#&F^t6#""$-%>Involutive/PolCartanCharacte
rG6#7#-F_p6#;FK-%%nopsG6#FiqF8F8F8F8
M7R0
I7LocalInvolutive/homalg=6"%&falseGE\[l&%1PresentationInfoG%Hhomalg/Involutive/
PolHilbertCartanLocalG%'ReduceG%Ehomalg/Involutive/PolInvoReduceLocalG%3Syzygie
sGeneratorsG%9Involutive/LocalSyzygiesG%.BasisOfModuleG%>homalg/Involutive/IBas
isLocalG%'IsUnitG%>homalg/Involutive/LocalIsUnitGF$
M7R0
IAInvolutive/pnormal_form_lm_localf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_va
rG6"6#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~rights~reserved
.GF+-%'RETURNG6#-%>Involutive/pnormal_form_localG6)9$9%9&9'9(9)"""F+F+F+F+
M7R0
I>homalg/Involutive/IBasisLocalf*6$%"MG'%$varG%%listG6'%"oG%"vG%$ordG%%elimG%$P
OTG6#%epCopyright~(C)~2004-2010~by~Daniel~Robertz~and~Markus~Lange-Hegermann.~A
ll~rights~reserved.G6"C)>8'%&falseG>8(F5?(8$""$"""9#%%trueG@%-%%typeG6$&9"6#F9%
)equationG@'/-%$lhsG6#FBQ3POSITION_OVER_TERMF1@%-F@6$-%$rhsGFJ%(booleanG>F7FO-%
&ERRORG6#%Yexpecting~boolean~value~for~"POSITION_OVER_TERM"~option.G/FHQ,ELIMIN
ATIONF1@%FM>F4FO-FT6#%Rexpecting~boolean~value~for~"ELIMINATION"~option.G-FT6#%
0unknown~option.G-FT6#%0invalid~option.G@%F7>8&F;>F`oF:@$4F4>F`o,&F`oF;F;F;>8%-
%5homalg/NormalizeRingG6$9%%+InvolutiveG@%/&Fgo6#""#7"-%;Involutive/InvolutiveB
asisG6%9$&Fgo6#F;,$F`o!""-Fdp6&FfpF_pFgpFipF1F1F1F1
M7R0
I=Involutive/LocalSyzygiesGINVf*6%%#MMG%#NNG%$varG6"6#%boCopyright~(C)~2007-201
0~by~Markus~Lange-Hegermann.~All~rights~reserved.GF(-%9Involutive/LocalSyzygies
G6&9$9%9&Q%ginvF(F(F(F(F(
M7R0
I@Involutive/simp_invred_Z_nonnegf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'
lmprocG%(loc_varG65%"aG%"cG%"eG%"hG%#h2G%"iG%"jG%"kG%"lG%#lmG%"nG%"rG%$divG%'n_
entrG%(termo_hG%*zero_listG%#lvG%#nlG%"HG6#%\pCopyright~(C)~2000-2010~by~Carlos
~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C,>81-%%nopsG6#&9$6#""">837#
-%"$G6$""!FE>8'-%'expandGFH@$49&>8(&FJ6#""#>8.-FG6#9%>8/FN>8%7#-FQ6$FSF[o>8--9)
6#FU?(FBFLFLFB0&Fgo6$FinFLFSC*>8)FL>80%&falseG>8*&Fgo6$FLFin>82-%'subsopG6$/Ffp
&Fgo6$FinFinFN?(FBFLFLFB31FapF[o4FcpC$@$-%7Involutive/pinv_divideG6%&F^o6$Fap""
$&F^o6$Fap""&&FgoFKC$>8,-%%iquoG6$F]p&F^o6%Fap""'FL@&0FcrFSC%>FU-%)simplifyG6#,
&FUFL-%$mapG6$f*6#F-FB6$%)operatorG%&arrowGFB**T#FL&T%F`qFL&T(6%T)FirFin!""FJFL
FBFB6*F5FcrF6FgoF&F^oF2Fap&F^o6%FapFLFLFbt@$FY>Ffn-F_s6#,&FfnFL-Fcs6$f*FfsFBFgs
FBFjsFBFBFct&F^o6%FapFLFinFbt>Fcp%%trueG/-%%signG6#F]pFbtC&>Fcr,$-Fdu6#FgrFbt>F
U-F_s6#,&FUFL-Fcs6$f*FfsFBFgsFBFjsFBFBFctFdtFbt@$FY>Ffn-F_s6#,&FfnFL-Fcs6$f*Ffs
FBFgsFBFjsFBFBFctF^uFbt>FcpFau>Fap,&FapFLFLFL@%FdqC$>F`o-F_s6#,&F`oFL*&F]pFLFjp
FLFL>FU-F_s6#,&FUFLFcwFbt@$9'C$>Fap,&FapFLFbtFL>Fbo-F\q6$/Fap,&&Fbo6#FapFL*(Fcr
FLF_qFL&F^o6%FapFirFinFbtFLFbo>FU-FWFjo>FgoFho7$7$F`oFfnFboFBFBFBFB
M7R0
I9Involutive/pplexdivisionf*6$%"aG%"bG6#%"iG6#%jnCopyright~(C)~2009-2010~by~Dan
iel~Robertz.~All~rights~reserved.G6"C$?(8$"""F/-%%nopsG6#&9$6#F/%%trueG@&2&F36#
&%4Involutive/divisionG6#F.&&9%F5F:-%'RETURNG6#F62F>F9-FB6#%&falseG@%2&F46#""#&
F@FKFGF6F+F+F+F+
M7R0
I3Involutive/versionQ)21.12.106"F$
M7R0
I:Involutive/pdegrevlex_POTf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~200
4-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@&2&9$6#""#&9%F3-%'RETURNG6#
%&falseG2F5F1-F86#%%trueG>8%-%(convertG6$&F26#"""%"+G>8&-FB6$&F6FEFG@'2F@FIF<2F
IF@F7?(8$-%%nopsG6#FD!""FFF>@&2&FL6#FQ&FDFYF<2FZFXF7F>F-F-F-F-
M7R0
I=Involutive/pnegdegrevlex_POTf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~
2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@&2&9$6#""#&9%F3-%'RETURN
G6#%&falseG2F5F1-F86#%%trueG>8%-%(convertG6$&F26#"""%"+G>8&-FB6$&F6FEFG@'2F@FIF
72FIF@F<?(8$-%%nopsG6#FD!""FFF>@&2&FL6#FQ&FDFYF<2FZFXF7F>F-F-F-F-
M7R0
I5Involutive/pdeglex_Zf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2004-201
0~by~Daniel~Robertz.~All~rights~reserved.G6"C'>8%-%(convertG6$&9$6#"""%"+G>8&-F
26$&9%F6F8@'2F0F:-%'RETURNG6#%%trueG2F:F0-FB6#%&falseG?(8$F7F7-%%nopsG6#F4FD@&2
&F=6#FJ&F4FQFF2FRFPFA@&2-%$absG6#&F>6#""$-FW6#&F5FZFF2FfnFVFA@%2&F56#""#&F>F]oF
HFDF-F-F-F-
M7R0
I7Involutive/pdeglex_degf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%\pCopyright~(C)~20
00-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C'>8%-%%nop
sG6#&9$6#""">8&,&-%$addG6$*&&F56#8$F8&%(_vardegGFAF8/FB;F8F1F8&%(_tupdegG6#&F66
#""#F8>8',&-F=6$*&&&9%F7FAF8FCF8FEF8&FH6#&FUFKF8@'2F:FN-%'RETURNG6#%%trueG2FNF:
-Ffn6#%&falseGC%>F:F<>FNFP@'FZFenFinFjn?(FBF8F8F1Fhn@&2FSF@Fjn2F@FSFen@%2FJFXF\
oFhnF.F.F.F.
M7R0
I5Involutive/block_cmpf*6&%#_aG%#_bG%(var_ordG%%cmpsG6(%"aG%"bG%#apG%#bpG%"iG%"
vG6#%jnCopyright~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8$9
$>8%9%?(8("""F<-%%nopsG6#9'%%trueGC&@$4-&F@6#F;6$F5F8-%'RETURNG6#%&falseG@'-%%t
ypeG6$F5%"*G>8&-%'selectG6%%$hasGF5&9&FG-FO6$F5%"^G@%4-%'memberG6$-%#opG6$F<F5F
X>FSF<>FSF5@%4-Fjn6$F5FX>FSF<>FSF5@'-FO6$F8FQ>8'-FU6%FWF8FX-FO6$F8Ffn@%4-Fjn6$-
F]o6$F<F8FX>F[pF<>F[pF8@%4-Fjn6$F8FX>F[pF<>F[pF8@$0FSF[p-FJ6#FAF`qF2F2F2F2
M7R0
I7Involutive/pinv_dividef*6%'%"aG%%listG%"dG'%"bGF'6#%"iG6#%\pCopyright~(C)~200
0-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C%@$0&9$6#""
#&9&F5-%'RETURNG6#%&falseG?(8$"""F?%&_nvarG%%trueG@$52&F86$F?F>&F4FF2&9%6#F>,&F
EF?FG!""F9FAF/F/F/F/
M7R0
I=Involutive/pnormal_form_polyf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG67
%"aG%#caG%#cbG%"hG%"iG%"kG%"rG%#lmG%(termo_hG%$divG%#stG%'n_entrG%*zero_listG%.
rhs_zero_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-2010~by~
Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C,>%(_nnformG,&FF"""FH
FH>8'9$>8/-%%nopsG6#&FJ6#FH@$09)7"C'>82<#-%$seqG6$&9&6#&FU6#8(/F]o;FH-FO6#FU>83
-FO6#FY>84-%'removeG6%%$hasGFinFY>85FV>FJ7#-%=Involutive/cancel_locvar_rhsG6'FQ
&FJ6#""#9'FinFU>807#-%"$G6$""!FM>817#-F[q6$F]q-FO6#Fcp>8*7$FhpF_q>8+-FfpFP?(FCF
HFHFC0&Fiq6$FepFHF]qC)>F]oFH>8-%&falseG>8,*&F]rFH&Fiq6$FepFepFH@$FT>86,&-%$maxG
6#-Ffn6$-%'degreeG6$&FQ6#8)FY/Fgs;FHFMFH-%$addG6$&&Fiq6$FHFH6#&FUFfs/Fgs;FHFco!
""?(FCFHFHFC31F]o-FO6#9%4Fbr@%-%7Involutive/pinv_divideG6%&Fjt6$F]o""$&Fjt6$F]o
""&&FiqFRC%>%'_reducG,&FiuFHFHFH@%FTC,>87,&-F^s6#-Ffn6$-Fcs6$&&Fjt6%F]oFHFHFfsF
YFhsFH-F[t6$&&Fjt6%F]oFbuFHF`tFbtFdt>88F]q>Fgs-FO6#F]p?(FCFHFHFC32F]qF^v2F]qFgs
C$@$331&&F]pFfs6#FbuF^v/&&&F]xFdpFRFdp&FfuFdp-%:Involutive/conv_divisibleG6$Fax
FfuC$>F_wFgs>F^vF\x>Fgs,&FgsFHFdtFH@$3Few0&FfqFRFhp[@$2F[sF^vC$>Fgs-9(6%FQFin7$
Fcp&&FiqFdpFR>F]p7$-%#opGFbw7%7$&FgsFR&&FgsFdpFR7$Ffu-%'subsopG6$/FH&FczFdpFjyF
[s@%/F_wF]q>FJ-%'expandG6#,&*&&Fjt6%F]o""'FHFHFJFHFH7$,$*(FerFH&Fjt6%F]oFd[lFep
FdtFgvFHFdt,$*(FerFHFh[lFdt&Fjt6%F]oFHFepFHFdtFH>FJ-F^[l6#,&*&&&&&F]p6#F_wFdpFd
pFRFHFJFHFH7$,$*(FerFH&Fd\lFdpFdt&&Ff\lFRFRFHFdt,$*(FerFHF[]lFdt&F]]lFdpFHFdtFH
>FJ-Ffy6%FQFinFcp>FJF_p@$0%2Involutive/characGF]q>FJ-%$modG6$FJFg]l@%/Fg]lF]qC$
-%$gcdG6&F]rFb[l.8%.8&>FJ7$-%'normalG6#,&-%$mapG6$f*6#F,FC6$%)operatorG%&arrowG
FC*&T#FHFKFHFCFC6$F.Fe^lFQFH-F]_l6$f*F`_lFCFa_lFC**Fe_lFH&T%FhrFH&T(6%T)Fd[lFep
FdtFKFHFCFC6*F-Fc^lF3FiqF&FjtF0F]oFgvFdt-Fi^l6#,&-F]_l6$f*F`_lFCFa_lFCFd_lFCFCF
f_lFcpFH-F]_l6$f*F`_lFCFa_lFCFj_lFCFCFa`lF\\lFdtC$-Fj]l6$-%$GcdGFa^lFg]l>FJ7$-F
j]l6$-%'NormalG6#,&-F]_l6$f*F`_lFCFa_lFCFd_lFCFCFf_lFQFH-F]_l6$f*F`_lFCFa_lFCFj
_lFCFCFa`lFgvFdtFg]l-Fj]l6$-Feal6#,&-F]_l6$f*F`_lFCFa_lFCFd_lFCFCFf_lFcpFH-F]_l
6$f*F`_lFCFa_lFCFj_lFCFCFa`lF\\lFdtFg]l>Fbr%%trueG>F]o,&F]oFHFHFH@%F[u@%F]^lC$>
Ffq7$-Ffz6$/&Fiq6$FHFep-Fi^l6#,&&F_y6#FeclFHFfrFHF_y&FfqFdp>FJ7$-Ffz6$/Fecl-Fi^
l6#,&&FQF[dlFHFfrFdtFQFcpC$>Ffq7$-Ffz6$/Fecl-Fj]l6$-FealFhclFg]lF_yF\dl>FJ7$-Ff
z6$/Fecl-Fj]l6$-FealFcdlFg]lFQFcp@%Ff]l>Ffq-Fj]l6$*&Fe^lFHFfqFHFg]l>FfqF[fl>Fiq
Fjq@'3/F_yFhp0FcpF_qC%>Fcp&-Ffy6%FcpFinFVFR@$3Fafl4-%7Involutive/member_multG6%
Fcp%&P_HOMGFin>F]gl7$-F^z6#F]glFcp7$F_yF_qF`fl7$FhpFcpC$@$FT>F_y-%9Involutive/c
ancel_locvarG6&F_yFfpFinFU-Ffy6%F_yFinFcpFC6%F]glFFFiuFCFC
M7R0
I?Involutive/simp_pnormal_form_Zf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG
6,%"aG%"hG%"iG%"lG%"rG%#lmG%$divG%'n_entrG%*zero_listG%.rhs_zero_listG6#%jnCopy
right~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C+>%(_nnformG,&F;
"""F=F=>8%9$>8+-%%nopsG6#&F?6#F=>8,7#-%"$G6$""!FB>8-7#-FL6$FN-FD6#&F?6#""#>8(7$
FIFP>8)-9'FE?(F8F=F=F80&Fgn6$FXF=FNC'>8&F=>8*%&falseG?(F8F=F=F831F`o-FD6#9%4Fbo
C$@$-%7Involutive/pinv_divideG6%&Fio6$F`o""$&Fio6$F`o""&&FgnFGC%>%'_reducG,&Fip
F=F=F=>8'-%%iquoG6$F\o&Fio6%F`o""'F=@$0F\qFNC$>F?-%(collectG6%7$-%'normalG6#,&F
FF=-%$mapG6$f*6#F,F86$%)operatorG%&arrowGF8**T#F=&T%6$FXFXF=&T(6%T)FbqFX!""F@F=
F8F86*F/F\qF1FgnF&FioF.F`o&Fio6%F`oF=F=F`s-F\r6#,&FVF=-F`r6$f*FcrF8FdrF8FgrF8F8
Fas&Fio6%F`oF=FXF`s9&%,distributedG>Fbo%%trueG>F`o,&F`oF=F=F=@$FjoC$>FZ7$-%'sub
sopG6$/&Fgn6$F=FX-Fhq6%,&&&FZFG6#FjtF=*&F\oF=&FgnF[sF=F=F\tF]tF`u&FZFW>F?7$-Fgt
6$/Fjt-Fhq6%,&&FFFauF=FbuF`sF\tF]tFFFV>FgnFhn@'3/F`uFI0FVFPC$@$4-%7Involutive/m
ember_multG6%FV%&P_HOMGF\t>Fiv7$-%#opG6#FivFV7$F`uFPFav7$FIFV7$F`uFVF86%FivF;Fi
pF8F8
M7R0
I6Involutive/ginvReducef*66'%"gG%%listG%$varG%)alg_elemG%(tr_elemG%'n_entrG%)rh
s_entrG%'no_rhsG%"cG%&m_ordG%(var_ordG%)entr_posG%'vardegG%'tupdegG%(algextsG%-
algextindetsG%/transextindetsG%%fextG%*donotreadG%+tracedenomG%*quietmodeG6+%%f
ileG%&fnameG%%nvarG%+trans_elemG%#mpG%"iG%"rG%'std_wsG%"SG6#%jnCopyright~(C)~20
00-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C@@%9*@$2"'++59(-%&ERRORG6#%A
length~of~tuples~exceeds~100000.G@$2FM,&FN"""-%%nopsG6#&&%"FG6#FV6#""#FVFO>8&-F
X6#9%>8'-%'removeG6$f*6#FAFG6$%)operatorG%&arrowGFG-%'memberG6$9$T$FGFG6$F5929'
@$0907#-%"$G6$""!FN-FP6#%Yup~to~now,~no~degrees~can~be~assigned~to~tuples~in~gi
nv.G@$2Fin-FX6#9--FP6#%bpup~to~now,~only~two~blocks~of~variables~for~eliminatio
n~ordering~are~supported~by~ginv.G@$2Fin-FX6#9.-FP6#%_pup~to~now,~only~two~bloc
ks~of~tuples~for~elimination~ordering~are~supported~by~ginv.G@$32Fin,&-FX6#F`oF
V-FX6#93FV0%2Involutive/characGFhp-FP6#%_qup~to~now,~transcendental~extensions~
of~degree~greater~than~2~are~only~supported~over~the~rationals.G@$32FhpF_r4%4In
volutive/ratcoeffG-FP6#%doup~to~now,~transcendental~extensions~are~not~supporte
d~over~the~integers.G@'2Fhp-%+searchtextG6$Q&linuxFG-%+kerneloptsG6#%(versionGC
$@%/-Fis6#%)wordsizeG"#k@$2"+[O[Z@9+-FP6#%?characteristic~must~be~<~2^31.G@$2"&
oF$Fft-FP6#%?characteristic~must~be~<~2^15.G@%/-%*substringG6$-%(convertG6$-%*i
nterfaceG6#.F[t%'stringG;FV"#GQ=Standard~Worksheet~InterfaceFGC$>8%-%CInvolutiv
e/stdinterface_gettmpnameGFG>8+%%trueGC&@$4-%;Involutive/ssystem_booleanG6#%3te
st~-d~/tmp/$USERGC$>8*-%(ssystemG6#%1mkdir~/tmp/$USERG@$0&FawFhnQ!FG-FP6#%Ecann
ot~write~temporary~file~to~/tmp.G>Fbv-Fcw6#%Gecho~/tmp/$USER/Involutive-$PPID-$
USERG@%2Fhp-Fes6$Q"$FG&FbvFhn>FbvQ0/tmp/InvolutiveFG>Fbv-%=Involutive/remove_wh
itespaceG6#Ffx>Ffv%&falseG2Fhp-Fes6$Q&APPLEFGFhsC%@$F[uF]u>FbvFcv>FfvFgvC%@$F[u
F]u>FbvQ1\TEMP\InvolutiveFG>FfvF^y>Fbv-%$catG6$Fbv94>8$-%&fopenG6$-F^z6$FbvQ%.r
edFG%&WRITEG-%<Involutive/writeGINV1headerG63FbzF^o9&F`oFN9)FJFft9,F`qFhq9/Fcp9
1F_pFdr96-%(fprintfG6$FbzQ9basis~=~ginv.basisLoad("FG-Fd[l6$Fbz-F^z6$FbvQ(.bina
ryFG-Fd[l6$FbzQ.",~"TQ",~iD)|+FG-Fd[l6$FbzQ+f~=~file("FG-Fd[l6$Fbz-F^z6$FbvQ%.r
esFG-Fd[l6$FbzQ)",~"w")|+FG-Fd[l6$FbzQCprint~>>~f,~"_RESULT_REDUCE~:=~["|+FG?(8
)FVFV-FX6#F\pFgvC$@%F^sC(-Fd[l6$FbzQ3r~=~ginv.Poly(ip,~FG>8,-Ffu6$&F\p6#F^]lF\v
?(FGFVFVFG2FM-%'lengthG6#Fh]lC&>Faw-Fes6$Q"|+FGFh]l?(FGFVFVFG2FhpFawC&@%32FVFaw
/&Fh]l6#,&FawFV!""FVQ"\FG-Fd[l6%FbzQ#%aFG-Fcu6$Fh]l;FV,&FawFV!"#FV-Fd[l6%FbzFe_
l-Fcu6$Fh]l;FVF`_l-Fd[l6$FbzQ#\|+FG>Fh]l-Fcu6$Fh]l;,&FawFVFVFVFa_l>FawFd^l-Fd[l
6%FbzFe_lFh]l>Fh]lFiw@$2FhpF_^lFi`l-Fd[l6$FbzQ#)|+FG-Fd[l6$FbzQ9print~>>~f,~bas
is.nf(r)|+FGC$@%3/FNFVFJC'Fd]l>Fh]l-F^z6%Q"(FGFi]lQ%)*@~FG?(FGFVFVFGF^^lC&>FawF
d^l?(FGFVFVFGFh^lC&@%F[_lFc_lF[`lF``l>Fh]lFd`l>FawFd^lFi`l>Fh]lFiw@$F]alFi`lF^a
lC'-Fd[l6$FbzQ%s~=~FG>Fh]lFi]l?(FGFVFVFGF^^lC&>FawFd^l?(FGFVFVFGFh^lC&@%F[_lFc_
lF[`lF``l>Fh]lFd`l>FawFd^lFi`l>Fh]lFiw@$F]alFi`l-Fd[l6$Fbz-F^z6%QA|+r~=~(ginv.P
oly(ip,~s)).prolong(FG-Ffu6$F[oF\vF`al-Fd[l6$FbzQ\oprint~>>~f,~str(basis.nf(r))
.replace('*@',~'').replace('@',~'1')|+FG@$2F^]lF_]l-Fd[l6$FbzQ1print~>>~f,~","|
+FG-Fd[l6$FbzQ2print~>>~f,~"]:"|+FG-Fd[l6$FbzQ+f.close()|+FG-%'fcloseG6#Fbz@%97
@%FfvC%>Faw-Fcw6#-F^z6%Q)runginv~FGFbvFhz@$/Faw%%NULLG-FP6#%Acould~not~run~prog
ram~'runginv'.G>Faw&FawFgnC$>Faw-Fcw6#-F^z6%FhelFbvQ1.red~>~/dev/nullFG@%3/F`fl
Fhp/FhwFiw>FawFhp>FawFVC$>Faw-%'systemGFeel@$FjelF\fl@$0FawFhp-FP6#%Merror~duri
ng~call~of~Python~or~interruption.G@$FcsC%>Faw-Fcw6#-F^z6'Q&if~[~FGFbvQ*.res~-o
t~FGFbvQ>.red~];~then~echo~-n~true;~fiFG@$2Fhp-F`^l6#Fhw-FP6#%dpoutput~file~of~
ginv~is~older~than~input~file~(probably,~program~ginv~stopped~abnormally).G@$49
5C$>Faw-Fcw6#-F^z6%Q*filesize~FGFbvFf\l@$30FawF[flFjflC$>Faw-%'sscanfG6$FhwQ#%d
FG@$32Fhp-FX6#Faw2"'++IF`fl-%(WARNINGG6#Qgnresulting~normal~form~is~big;~readin
g~it~may~take~a~while...FG@$F[il-%'RETURNG6#7"AFd\l@$4-%)assignedG6#%/_RESULT_R
EDUCEG-FP6#%Cerror~in~computation~or~interface.GFb[mFGFGFGFG
M7R0
I0Involutive/pLCMf*6$%"aG%"bG6$%"iG%"LG6#%inCopyright~(C)~2000-2002~by~Carlos~F
.~Cid.~All~rights~reserved.G6"C%@$0&9$6#""#&9%F2-%&ERRORG6#%Oinput~for~pLCM~mus
t~be~in~the~same~list~entry.G>8%7#-%$seqG6$-%$maxG6$&F16$"""8$&F5FD/FF;FE%&_nva
rG-%'RETURNG6#7$F;F0F,F,F,F,
M7R0
I;Involutive/pjanet_div_onlyf*6#%"LG6+%"aG%"iG%"jG%"lG%"FG%"kG%"nG%#suG%(allmul
tG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C)>8*-
%%nopsG6#9$@$/F5""!-%'RETURNGF8>8,7#-%"$G6$%)infinityG%&_nvarG>8(F9>FH-%'subsop
G6$/F5-FK6$/""&F@&FH6#F5FH?(8%,&F5"""!""FWFXFW%%trueGC'>8+F@>8&FW?(F2FWFWF231Fh
nFF/&FH6&,&FUFWFWFW""$FWFhn&FH6&FUF`oFWFhnC$>Ffn-FK6$/Fhn&FH6%F_oFQFhnFfn>Fhn,&
FhnFWFWFW@$F[o@%%5Involutive/janetlikeGC$>8',&F]oFWFaoFX>Ffn-FK6$/Fhn,&FapFWFXF
WFfn>Ffn-FK6$/FhnF<Ffn>FH-FK6$/FU-FK6$/FQFfn&FH6#FUFH-%#opG6#FHF2F2F2F2
M7R0
I6Involutive/JanetGraphf*6"6)%"iG%"jG%"kG%"GG%"TG%$varG%2tmp_P_T_List_dataG6#%j
nCopyright~(C)~2005-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C'@'2"""9#>6
$8*8)-%7Involutive/setup_basisG6#9"/F3F2C$@$4-%)assignedG6#%)P_T_ListG-%&ERRORG
6#%Umissing~involutive~basis;~run~InvolutiveBasis~first.G>F7&-%5Involutive/proc
_varsG6$&F;6#F2-%%nopsG6#&FC6%F2F2F2FN-FE6#%goexpecting~either~an~involutive~ba
sis~or~list~of~variables~as~first~argument.G>8'7"?(8$F2F2-FPFB%%trueG?(8%F2F2-F
P6#&&&FCFN6#""$FNFgn@$2&&&FC6#Fen6#""&6#Fin%)infinityGC&>8(-%'subsopG6$/F2-F_p6
$/Fin,(&&&FeoF_oFNFioF2FcoF2F2F2FgpFhp>8&F2?(F$F2F2F$31FjpFfn4-%7Involutive/pin
v_divideG6%&FC6$FjpF`o&FC6$FjpFhoF]p>Fjp,&FjpF2F2F2>FX7$-%#opG6#FX7%&&%+PolTab_
VarGFfoF_o)&F7Fio,&FcoF2F2F2&&F`r6#FjpF_o@$F1-%;Involutive/restoreP_T_ListG6#F6
FXF$F$F$F$
M7R0
I6Involutive/proc_inputf*6#%#LLG61%"iG%"jG%"qG%"rG%"vG%'no_rhsG%'n_entrG%)rhs_e
ntrG%,force_evalaG%)alg_elemG%+trans_elemG%)complexIG%"FG%"LG%#LiG6#%jnCopyrigh
t~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C6>8)%%trueG>8*""!>8+
F?>80%%NULLG@$/9$7"-%&ERRORG6#%2empty~input~list.G>8(-%*substringG6$-%(convertG
6$-%+kerneloptsG6#%(versionG%'stringG;""""")@)5-%%typeG6$FG%'matrixG330FNQ)Mapl
e~V,F80FNQ)Maple~6.F8-Fjn6$FG%'MatrixG>81-FS6$FG%)listlistG5-Fjn6$FG%'vectorG3F
^o-Fjn6$FG%'VectorG>Fgo7#-FS6$FG%%listG-FjnFfp>FgoFG-FJ6#%]oexpecting~generator
s~to~be~given~in~a~list~or~as~rows~in~a~matrix.G@%-Fjn6$FgoFjoC$>F>-%%nopsG6#&F
go6#Fen@%-%(hastypeG6$Fgo%)equationGC$?(8$FenFen-Fcq6#FgoF<C'>8&FD>8'FD?(8%FenF
enF>F<@%-Fjn6$&&Fgo6#F^r6#FgrF[rC%>Fcr6$Fcr-%#opG6$FenF[s>Fer6$Fer-Fcs6$""#F[s>
F;%&falseGC$>Fcr6$FcrF[s>Fer6$FerF?>FC6$FC7$7#Fcr7#Fer>FAF>>FC7#FC>FC-%$mapG6$f
*6#F'F86$%)operatorG%&arrowGF87$FG7#F?F8F8F8FgoC$?(F^rFenFenF_rF<C%>82F\s@&5-Fj
n6$FhuF^p3F^o-Fjn6$FhuFbp>Fhu-FS6$FhuFgp-Fjn6$FhuF[rC$@$5-Fjn6$-Fcs6$FenFhuF^p3
F^o-Fjn6$FjvFbp>Fhu/-FS6$FjvFgp-Fcs6$FisFhu@$5-Fjn6$FcwF^p3F^o-Fjn6$FcwFbp>Fhu/
Fjv-FS6$FcwFgp@'-FjnFbvC$@&/F>F?>F>-Fcq6#Fhu0FfxF>-FJ6#%hnnot~the~same~number~o
f~components~in~each~list~of~polynomialsG>FC6$FC7$FhuFcuFcvC$>F;F[t@%-FjnFbwC$@
&Fdx>F>-Fcq6#Fjv0FfyF>Fix@%-FjnF_xC$@&/FAF?>FA-Fcq6#Fcw0F_zFA-FJ6#%Znot~the~sam
e~number~of~components~in~each~right~hand~sideG>FC6$FC7$FjvFcwC$@&F]z>FAFen0FAF
enFbz>FC6$FC7$Fjv7#FcwC%@&Fdx>F>Fen0F>FenFix@$-FiqFbw-FJ6#%@input~contains~unex
pected~list.G@%FjyC$@&F]z>FAF_zFazFbz>FC6$FC7$7#FjvFcwC%@&F]z>FAFenF[[lFbz@$-Fi
qF_xFf[l>FC6$FC7$F`\lF_[lC%@&Fdx>F>FenFc[lFix@$-FiqFbvFf[l>FC6$FC7$7#FhuFcu>FCF
ht@$F]z>FAFen@$2FenFA@%F;C$?(F^rFenFen-Fcq6#FCF<>FC-%'subsopG6$/F^r-F^^l6$/FisF
cu&FCF]sFC>FAFen?(F^rFenFenFj]lF<@$/&FC6$F^rFisFcu>FC-F^^l6$/F^r-F^^l6$/Fis7#-%
"$G6$F?FAFd^lFC@$3/%4Involutive/ratcoeffGF[t-%$hasG6$-F[u6$f*6#%"aGF8F_uF83-Fjn
6$&FGFfq-Fgp6#-%(ratpolyG6#%(integerG-Fjn6$&FG6#FisFf`lF8F8F8FCF[t-FJ6#%goexpec
ting~generators~to~be~(lists~of)~polynomials~with~integer~coefficients.G@$0%2In
volutive/characGF?>FC-%$modG6$FCFeal@$-Fiq6$FC%&floatG>FC-FS6$FC%)rationalG>8,-
F[`l6$-F[u6$f*F``lF8F_uF83-Fjn6$Fe`l-Fgp6#-Fi`l6#Fabl-Fjn6$F^alF\clF8F8F8FCF[t>
8/-Fiq6$FC%(nonrealG>8.-%'indetsGF[^l>8-7#-Fcs6#-Fjcl6$FC%'algextG>Fhcl7#-Fcs6#
-%&minusG6$Fhcl<#-Fcs6#F\dl@$0F\dlFH>FcblF<7*F>FAF;FCFcblF\dlFhclFcclF8F8F8F8
M7R0
IAInvolutive/PolShortestResolutionf*6$%"RG'%%varsG%%listG6%%"FG%"SG%"vG6#%\pCop
yright~(C)~2004-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G
6"C'>8&-%*substringG6$-%(convertG6$-%+kerneloptsG6#%(versionG%'stringG;""""")@%
34-%%typeG6$9$-F(6#%'matrixG330F2Q)Maple~V,F/0F2Q)Maple~6.F/4-FE6$FG-F(6#%'Matr
ixG>8$-%9Involutive/PolResolutionG6%FG9%Q$CGTF/>FXFG>8%-%@Involutive/PolShorter
ResolutionG6$FXFfn?(F/F?F?F/0-%%nopsG6#Fjn-Fao6#FXC$>FX-%%copyGFbo>FjnF[oFgoF/F
/F/F/
M7R0
I:Involutive/monomcoefflistf*6%%"pG%$varG%$basG6)%"aG%"cG%"iG%"nG%"rG%"xG%$posG
6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8'-%%
nopsG6#9&@$/F5""!-%'RETURNG6#7">8(-%(collectG6%9$9%%,distributedG@'-%%typeG6$FB
%"+GC$>8%7#-%"$G6$F<F5?&8&FB%%trueG@%-FK6$FV%"*GC$>8)-%'selectG6%%2Involutive/h
asvarGFVFG@'/Fhn%%NULLG>FP-%'subsopG6$/""",&&FP6#FeoFeoFVFeoFP-%'memberG6%FhnF9
.8*>FP-Fbo6$/F]p,&&FP6#F]pFeo*&FVFeoFhn!""FeoFP-F>6#Fhn@%-%$hasG6$FVFG@%-Fjo6%F
VF9F\p>FP-Fbo6$/F]pFeoFP-F>6#FV>FPFao-FK6$FBFenC$>Fhn-Fjn6%F\oFBFG@'F^o7$FB-FS6
$F<,&F5FeoFfpFeoFio-Fbo6$/F]p*&FBFeoFhnFfpFQFhn@%-F[q6$FBFG@%-Fjo6%FBF9F\p-Fbo6
$FcqFQFBF^rF2F2F2F2
M7R0
I>Involutive/monomcoefflistmultf*6&%"pG%$varG%$basG%%multG6)%"aG%"cG%"iG%"nG%"r
G%"xG%$posG6#%jnCopyright~(C)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.
G6"C&>8'-%%nopsG6#9&@$/F6""!-%'RETURNG6#7">8(-%(collectG6%9$9%%,distributedG@'-
%%typeG6$FC%"+GC$>8%7#-%"$G6$F=F6?&8&FC%%trueG@%-FL6$FW%"*GC$>8)-%'selectG6%%2I
nvolutive/hasvarGFWFH@%/Fin%%NULLG>FQ-%'subsopG6$/""",&&FQ6#FfoFfoFWFfoFQC%>8*-
%4Involutive/findconeG6&FinFHF:9'@$/F\pF=-F?6#Fin>FQ-Fco6$/F\p,&&FQ6#F\pFfo*&FW
Ffo&F:F[q!""FfoFQ@%-%$hasG6$FWFHC%>F\p-F^p6&FWFHF:F`p@$Fbp-F?6#FW>FQFfp>FQFbo-F
L6$FCFfnC$>Fin-F[o6%F]oFCFH@%F_o7$FC-FT6$F=,&F6FfoF^qFfoC$>F\pF]p@%FbpFin-Fco6$
/F\p*&FCFfoF]qF^qFR@%-Faq6$FCFHC$>F\p-F^p6&FCFHF:F`p@%FbpFCFjrFcrF3F3F3F3
M7R0
I2Involutive/Represf*6%%"pG'%"BG%%listG'%$varGF(6%%"iG%"JG%"RG6#%jnCopyright~(C
)~2002-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C%>8%-%;Involutive/Involu
tiveBasisG6$-%2Involutive/AddRhsG6#9%9&@%-%%typeG6$9$F(>8&-%8Involutive/PolInvR
educeG6%-%$mapG6$f*6#F,F16$%)operatorG%&arrowGF1/FA7#-%"$G6$""!-%%nopsG6#T$F1F1
6$F'F;FAF4F<>FC7#-FE6%/FA7#-FR6$FT-FVF:F4F<@%/%6Involutive/matrixtypeG%'MatrixG
-&%.LinearAlgebraG6#%*TransposeG6#-F`o6#-FH6$f*FKF1FLF1@%0-%$lhsG6#FAFTFP,$-%$r
hsGF`p!""F1F1FYFC-&%'linalgG6#%*transposeG6#-%'matrixG6#-FH6$f*FKF1FLF1@%F]pFPF
apF1F1FYFCF1F1F1F1
M7R0
I4Involutive/PolCoefff*6%%"LG'%$genG%%listG'%$varGF(6)%"aG%"iG%"vG%#IBG%#M1G%#M
2G%$M2aG6#%jnCopyright~(C)~2003-2010~by~Daniel~Robertz.~All~rights~reserved.G6"
C%>8'-%;Involutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#9%9&>8(-%$mapG6$%$r
hsGF8@'53-%%typeG6$-%$lhsG6#&F86#"""F(-FK6$9$%)listlistG34FJ-FK6$FUF(C$>8)-FD6$
f*6#F,F56$%)operatorG%&arrowGF5&-%8Involutive/PolInvReduceG6'FUT#T&""%Q"CF56#""
#F5F56&F/F8F*F@FU-%(convertG6$-%&evalmG6#-%#&*G6$FgnFB%6Involutive/matrixtypeG-
FK6$FU%'matrixGC%>Fgn-Ffp6$""!-%%nopsG6#&FBFQ?(8%FRFR-&%'linalgG6#%'rowdimG6#FU
%%trueGC$>8*-FD6$f*F[oF5F\oF5F_oF5F5Fio-F[p6$-&Fdq6#%$rowG6$FUFaqF(>Fgn-&Fdq6#%
,stackmatrixG6$Fgn-F^p6#-Fap6$F[rFB-F^p6#FgnC$>8&-%*substringG6$-F[p6$-%+kernel
optsG6#%(versionG%'stringG;FR"")@%330FdsQ)Maple~V,F50FdsQ)Maple~6.F5-FK6$FU%'Ma
trixGC$>Fgn7#&-Fao6'FUF8F@FeoFfoFgo-F[p6$F]pFjtC$>FgnF]uFjoF5F5F5F5
M7R0
I7Involutive/jetsdiagmatf*6"6+%"MG%"iG%"mG%"nG%"AG%"rG%"cG%#Z1G%#Z2G6#%[oCopyri
ght~(C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.GF$C%>8$-%5Involutive
/jetsmkmatG6#&9"6#"""?&8%&F86#;""#!""%%trueGC*>8&-&%'linalgG6#%'rowdimG6#F3>8'-
&FH6#%'coldimGFK>8(-F56#F<>8)-FG6#FS>8*-FOFY>8+-%'matrixG6#7#-%"$G6$7#-F^o6$""!
FenFE>8,-Fjn6#7#-F^o6$7#-F^o6$FcoFMFW>F3-&FH6#%,blockmatrixG6%F@F@7&F3FhnFeoFS@
%/%6Involutive/matrixtypeG%'MatrixG-%(convertG6$F3Fhp-%%copyGFKF$F$F$F$
M7R0
I@Involutive/invred_collect_localf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_var
G6"6#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~rights~reserved.
GF+-%'RETURNG6#-%>Involutive/pnormal_form_localG6)9$9%9&9'9(9)""%F+F+F+F+
M7R0
IHhomalg/Involutive/PolHilbertCartanLocalf*6$%"MG%$varG6#%"vG6#%epCopyright~(C)
~2004-2010~by~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~rights~reserved.G6
"@%4%4Involutive/ratcoeffG-%'RETURNG6#%%NULLGC%>8$-%5homalg/NormalizeRingG6$9%%
+InvolutiveG@%/&F56#""#7">F5-%'subsopG6$/F?F2F5>F57$F=&F56#"""@%2F?9#C$-%;Invol
utive/InvolutiveBasisG6%9$-%#opG6#F5!"%6$-%<Involutive/PolHilbertSeriesG6#&9"6#
""$-%>Involutive/PolCartanCharacterG6#7#-%"$G6#;FJ-%%nopsG6#&F56#!""C$FO6$-FY6#
.%"sGFinF+F+F+F+
M7R0
I?Involutive/PolIntersectionListf*6$%"lG'%$varG%%listG6%%$resG%"LG%*_inv_den2G6
#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~rights~reserved.G6"C
(>8$&9$6#""">8&<"?&8%&F46#;""#!""%%trueGC$>F2-%0PolIntersectionG6%F2F;9%>F8-%&u
nionG6$F8<#-%#opG6#%)_inv_denG>F2-%;Involutive/InvolutiveBasisG6%F2FG&9"6#;""$9
#>FP7#-FN6#FI-%'RETURNG6#F2F/FOF/F/
M7R0
I8Involutive/invred_Z_absf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmprocG%
(loc_varG65%"aG%"cG%"eG%"hG%#h2G%"iG%"jG%"kG%"lG%#lmG%"nG%"rG%$divG%'n_entrG%(t
ermo_hG%*zero_listG%#lvG%#nlG%"HG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~
and~Daniel~Robertz.~All~rights~reserved.G6"C,>81-%%nopsG6#&9$6#""">837#-%"$G6$"
"!FE>8'FI@$49&>8(&FJ6#""#>8.-FG6#9%>8/FN>8%7#-FQ6$FSFin>8--9)6#FU?(FBFLFLFB0&Fe
o6$FgnFLFSC)>8)FL>80%&falseG>8*&Feo6$FLFgn>82-%'subsopG6$/Fdp&Feo6$FgnFgnFN?(FB
FLFLFB31F_pFin4FapC$@$-%7Involutive/pinv_divideG6%&F\o6$F_p""$&F\o6$F_p""&&FeoF
KC$>8,-%%iquoG6$F[p&F\o6%F_p""'FL@&0FarFSC%>FU-%'normalG6#,&FUFL-%$mapG6$f*6#F-
FB6$%)operatorG%&arrowGFB**T#FL&T%F^qFL&T(6%T)FgrFgn!""FJFLFBFB6*F5FarF6FeoF&F\
oF2F_p&F\o6%F_pFLFLF`t@$FW>FZ-F]s6#,&FZFL-Fas6$f*FdsFBFesFBFhsFBFBFat&F\o6%F_pF
LFgnF`t>Fap%%trueG52-%$absG6#-%&roundG6#,$Fer#FLFgn-Fcu6#F[p3/FjuFbu/-%%signGF[
vF`tC&>Far*&F_vFL-F`v6#FerFL>FU-F]s6#,&FUFL-Fas6$f*FdsFBFesFBFhsFBFBFatFbtF`t@$
FW>FZ-F]s6#,&FZFL-Fas6$f*FdsFBFesFBFhsFBFBFatF\uF`t>FapF_u>F_p,&F_pFLFLFL@%FbqC
$>F^o-%'expandG6#,&F^oFL*&F[pFLFhpFLFL>FU-F\x6#,&FUFLF_xF`t@$9'C$>F_p,&F_pFLF`t
FL>F`o-Fjp6$/F_p,&&F`o6#F_pFL*(FarFLF]qFL&F\o6%F_pFgrFgnF`tFLF`o>FeoFfo7$7$F^oF
ZF`oFBFBFBFB
M7R0
IAInvolutive/writeGINV1MapleOutputf*6,%%fileG%&fnameG%*basisnameG%'n_entrG%'no_
rhsG%#GBG%+time_boundG%*donotreadG%,whichoutputG%+tracedenomG6"6#%jnCopyright~(
C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.GF/C'-%(fprintfG6$9$Q+f~=~f
ile("F/-F46$F6-%$catG6$9%Q'.janetF/-F46$F6Q)",~"w")|+F/@%9+CJ-F46$F6-F;6%Q%l~=~
F/9&Q-.lengthIB()|+F/-F46$F6Q'i~=~1|+F/-F46$F6-F;6%Q*for~p~in~F/FJQ,.iterIB():|
+F/-F46$F6Q/~~~~if~i~<~l:|+F/@%%4Involutive/ratcoeffG-F46$F6QB~~~~~~~~S~=~"\""+
str(p)+"~\",\\"|+F/-F46$F6Q`o~~~~~~~~S~=~"\""+str(p).replace('*@',~'').replace(
'@',~'1')+"~\",\\"|+F/-F46$F6Q7~~~~~~~~print~>>~f,~S|+F/-F46$F6Q+~~~~else:|+F/@
%FY-F46$F6Q?~~~~~~~~S~=~"\""+str(p)+"~\""|+F/-F46$F6Q]o~~~~~~~~S~=~"\""+str(p).
replace('*@',~'').replace('@',~'1')+"~\""|+F/Fjn-F46$F6Q-~~~~i~=~i+1|+F/-F46$F6
Q+f.close()|+F/F3-F46$F6-F;6$F=Q$.lmF/F?FL-F46$F6-F;6%FSFJQ..iterLmIB():|+F/FU@
%FYFZFgnFjnF]o@%FYFaoFdoFjnFgo@$9-C/FjoF3-F46$F6-F;6$F=Q'.denomF/F?FL-F46$F6Q:f
or~c~in~ic.iterDenom():|+F/FU-F46$F6QB~~~~~~~~S~=~"\""+str(c)+"~\",\\"|+F/FjnF]
o-F46$F6Q?~~~~~~~~S~=~"\""+str(c)+"~\""|+F/FjnFgo@$9)C0FjoF3-F46$F6-F;6$F=Q$.GB
F/F?-F46$F6-F;6%FIFJQ-.lengthGB()|+F/FL-F46$F6-F;6%FSFJQ,.iterGB():|+F/FU@%FYFZ
FgnFjnF]o@%FYFaoFdoFjnFgo@$3FY5/9,7"2""!-%+searchtextG6$Q2factormodulebasisF/Fb
sC,FjoF3-F46$F6-F;6$F=Q%.fmbF/F?@%%5Involutive/janetlikeG-F46$F6QXiF~=~ginv.Div
isionComplementInterface("JanetLike",~iw)|+F/-F46$F6QTiF~=~ginv.DivisionComplem
entInterface("Janet",~iw)|+F/-F46$F6-F;6%Q%F~=~F/FJQ8.factorModuleBasis(iF)|+F/
-F46$F6QEprint~>>~f,~"_IB_RESULTfactor~:=~["|+F/-F46$F6Q4for~m~in~F.iter():|+F/
@%9(@%/9'"""-F46$F6Q8~~~~print~>>~f,~m,~","|+F/-F46$F6QR~~~~print~>>~f,~"[",~m,
~",",~m.dependVar(),~"],"|+F/C$-F46$F6-F;6%Q8~~~~if~m.dependVar()~<~F/-%(conver
tG6$Fhu%'stringGQ#:|+F/@%Fgu-F46$F6Q<~~~~~~~~print~>>~f,~m,~","|+F/-F46$F6QV~~~
~~~~~print~>>~f,~"[",~m,~",",~m.dependVar(),~"],"|+F/-F46$F6Q6print~>>~f,~"NULL
]:"|+F/@$2Fes9*C'FjoF3-F46$F6-F;6$F=Q+.outoftimeF/F?-F46$F6-F;6%Q1print~>>~f,~s
tr(F/FJQ/.outOfTime())|+F/FjoF3-F46$F6-F;6$F=Q&.timeF/F?-F46$F6QFprint~>>~f,~"_
IB_RESULTuserTime~:=~"|+F/-F46$F6-F;6%FbxFJQ..userTime())|+F/-F46$F6Q1print~>>~
f,~":"|+F/-F46$F6QEprint~>>~f,~"_IB_RESULTsysTime~:=~"|+F/-F46$F6-F;6%FbxFJQ-.s
ysTime())|+F/Fay-F46$F6QFprint~>>~f,~"_IB_RESULTrealTime~:=~"|+F/-F46$F6-F;6%Fb
xFJQ..realTime())|+F/FayC_o@$FfwC%-F46$F6QIprint~>>~f,~"_IB_RESULTout_of_time~:
=~"|+F/F^xFayFE-F46$F6-F;6$FJQ+List~=~[]|+F/FO-F46$F6-F;6%Q%~~~~F/FJQ0List.appe
nd(p)|+F/-F46$F6-F;6$FJQ0List.reverse()|+F/-F46$F6Q?print~>>~f,~"_IB_RESULT~:=~
["|+F/FL-F46$F6-F;6%FSFJQ'List:|+F/FU@%FY-F46$F6Q<~~~~~~~~print~>>~f,~p,~","|+F
/-F46$F6Q_o~~~~~~~~print~>>~f,~str(p).replace('*@',~'').replace('@',~'1'),~","|
+F/F]o@%FY-F46$F6Q7~~~~~~~~print~>>~f,~p|+F/-F46$F6Qjn~~~~~~~~print~>>~f,~str(p
).replace('*@',~'').replace('@',~'1')|+F/Fgo-F46$F6Q2print~>>~f,~"]:"|+F/-F46$F
6-F;6%Q%c~=~F/FJQ-.iterLcIB()|+F/-F46$F6Q-lmList~=~[]|+F/-F46$F6-F;6%Q*for~m~in
~F/FJFfp@%FY-F46$F6QS~~~~lmList.append([[c.next(),~m],~m.dependVar()])|+F/-F46$
F6Qfp~~~~lmList.append([[c.next(),~str(m).replace('*@',~'').replace('@',~'1')],
~m.dependVar()])|+F/-F46$F6Q2lmList.reverse()|+F/-F46$F6QAprint~>>~f,~"_IB_RESU
LTlm~:=~["|+F/FL-F46$F6Q2for~m~in~lmList:|+F/FUF\wF]o-F46$F6Q7~~~~~~~~print~>>~
f,~m|+F/FgoF`]l-F46$F6Q.ancList~=~[]|+F/-F46$F6-F;6%Q*for~a~in~F/FJQ/.iterAncIB
():|+F/@%FY-F46$F6QH~~~~ancList.append([a,~a.dependVar()])|+F/-F46$F6Q[p~~~~anc
List.append([str(a).replace('*@',~'').replace('@',~'1'),~a.dependVar()])|+F/-F4
6$F6Q3ancList.reverse()|+F/-F46$F6QBprint~>>~f,~"_IB_RESULTanc~:=~["|+F/FL-F46$
F6Q3for~a~in~ancList:|+F/FU-F46$F6Q<~~~~~~~~print~>>~f,~a,~","|+F/F]o-F46$F6Q7~
~~~~~~~print~>>~f,~a|+F/FgoF`]l-F46$F6Q2multVarList~=~[]|+F/-F46$F6-F;6%Q*for~j
~in~F/FJQ3.iterMultVarIB():|+F/-F46$F6QH~~~~multVarList.append([k~for~k~in~j])|
+F/-F46$F6Q7multVarList.reverse()|+F/-F46$F6QFprint~>>~f,~"_IB_RESULTmultvar~:=
~["|+F/FL-F46$F6Q7for~j~in~multVarList:|+F/FU-F46$F6Q<~~~~~~~~print~>>~f,~j,~",
"|+F/F]o-F46$F6Q7~~~~~~~~print~>>~f,~j|+F/FgoF`]l@$FjpC,-F46$F6Q6l~=~ic.lengthD
enom()|+F/-F46$F6QDprint~>>~f,~"_IB_RESULTdenom~:=~["|+F/FLFaqFU-F46$F6Q<~~~~~~
~~print~>>~f,~c,~","|+F/F]o-F46$F6Q7~~~~~~~~print~>>~f,~c|+F/FgoF`]l@$F[rC0Fbr-
F46$F6Q-GBList~=~[]|+F/Fgr-F46$F6Q6~~~~GBList.append(p)|+F/-F46$F6Q2GBList.reve
rse()|+F/-F46$F6QAprint~>>~f,~"_IB_RESULTGB~:=~["|+F/FL-F46$F6Q2for~p~in~GBList
:|+F/FU@%FYFc\lFf\lF]o@%FYFj\lF]]lFgoF`]l@$F_sC+@%FatFbtFetFhtF^uFau@%Feu@%FguF
juF]vC$Fav@%FguF\wF_wFbw-F46$F6QLprint~>>~f,~"_IB_RESULTfactormultvar~:=~["|+F/
@%FeuC$-F46$F6Q;for~j~in~F.iterMultVar():|+F/-F46$F6QG~~~~print~>>~f,~[1-k~for~
k~in~j],~","|+F/C(-F46$F6Q5j~=~F.iterMultVar()|+F/FauFav-F46$F6QR~~~~~~~~print~
>>~f,~[1-k~for~k~in~j.next()],~","|+F/F]o-F46$F6Q2~~~~~~~~j.next()|+F/FbwFixF\y
FayFdyFgyFayF\zF_zFayFjoF/F/F/F/
M7R0
I4Involutive/pdeglex3f*6$%"aG%"bG6"6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Ci
d~and~Daniel~Robertz.~All~rights~reserved.GF'-%3Involutive/pdeglexG6$&9$6#""$&9
%F/F'F'F'F'
M7R0
I=Involutive/pdeglex_deg_blockf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCopyright~
(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'>8%-%%nopsG6#&9$6#"""
>8&,&-%$addG6$*&&F56#8$F8&%(_vardegGFAF8/FB;F8F1F8&%(_tupdegG6#&F66#""#F8>8',&-
F=6$*&&&9%F7FAF8FCF8FEF8&FH6#&FUFKF8@'2F:FN-%'RETURNG6#%%trueG2FNF:-Ffn6#%&fals
eGC%>F:F<>FNFP@'FZFenFinFjn?(FBF8F8F1Fhn@&2FSF@[email protected].
M7R0
I5Involutive/prim_partf*6%'%"pG%%listG'%$varGF''%"qGF'6(%"aG%#coG%"gG%"hG%"iG%"
rG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'>8'9
$>8)9&@%0%2Involutive/characG""!C%>8&-%$modG6$-%(ContentG6$&F86#"""9%F?>8(""#?(
F5FLFLF530FCFL1FO-%%nopsG6#F8C%>8%-FE6$-FH6$&F86#FOFMF?>FC-FE6$-FH6$,&*&FCFL%$_
x1GFLFL*&FZFL%$_x2GFLFL7$FboFdoF?>FO,&FOFLFLFLC%>FC-%(contentGFI>FOFP?(F5FLFLF5
FRC%>FZ-F[pFhn>FC-F[pF_o>FOFgo@$30FCF@FSC%@%/F?F@>F8-%$mapG6$f*6#F-F56$%)operat
orG%&arrowGF5-%(collectG6%-%'normalG6#*&F9FLT#!""T&%,distributedGF5F56&F/FCF)FM
F8>F8-F\q6$f*F_qF5F`qF5-Fdq6%-FE6$-%'NormalGFhqF?F\rF]rF5F5F^rF8@$0-%&minusG6$-
%'indetsG6#FC<#-%&aliasGF5<">%)_inv_denG7$-%#opG6#FfsFC@$0F;7"@%Fip>F;-Fgq6#*&F
;FLFCF[r>F;-FE6$-FhrFatF?7$F8F;F5FjsF5F5
M7R0
I>Involutive/pnormal_form_evalaf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG6
5%"aG%"hG%"iG%"kG%"rG%#lmG%(termo_hG%$divG%#stG%'n_entrG%*zero_listG%.rhs_zero_
listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.
~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C->%(_nnformG,&FD"""FFFF>8%9$>8
,""!>8--%%nopsG6#&FH6#FF@$09)7"C'>80<#-%$seqG6$&9&6#&FV6#8&/F^o;FF-FP6#FV>81-FP
6#FZ>82-%'removeG6%%$hasGFjnFZ>83FW>FH7#-%=Involutive/cancel_locvar_rhsG6'FR&FH
6#""#9'FjnFV>8.7#-%"$G6$FLFN>8/7#-F\q6$FL-FP6#Fdp>8(7$FipF_q>8)-FgpFQ?(FAFFFFFA
0&Fiq6$FfpFFFLC)>F^oFF>8+%&falseG>8**&F]rFF&Fiq6$FfpFfpFF@$FU>84,&-%$maxG6#-Fgn
6$-%'degreeG6$&FR6#8'FZ/Fgs;FFFNFF-%$addG6$&&Fiq6$FFFF6#&FVFfs/Fgs;FFFdo!""?(FA
FFFFFA31F^o-FP6#9%4Fbr@%-%7Involutive/pinv_divideG6%&Fjt6$F^o""$&Fjt6$F^o""&&Fi
qFSC&>%'_reducG,&FiuFFFFFF>FK,&FKFFFFFF@%FUC,>85,&-F^s6#-Fgn6$-Fcs6$&&Fjt6%F^oF
FFFFfsFZFhsFF-F[t6$&&Fjt6%F^oFbuFFF`tFbtFdt>86FL>Fgs-FP6#F^p?(FAFFFFFA32FLF`v2F
LFgsC$@$331&&F^pFfs6#FbuF`v/&&&F_xFepFSFep&FfuFep-%:Involutive/conv_divisibleG6
$FcxFfuC$>FawFgs>F`vF^x>Fgs,&FgsFFFdtFF@$3Fgw0&FfqFSFip[@$2F[sF`vC$>Fgs-9(6%FRF
jn7$Fdp&&FiqFepFS>F^p7$-%#opGFdw7%7$&FgsFS&&FgsFepFS7$Ffu-%'subsopG6$/FF&FezFep
F\zF[s@%/FawFL>FH-%)simplifyG6#7$,&-%$mapG6$f*6#F,FA6$%)operatorG%&arrowGFA*(T#
FF&T&6%T'""'FfpFdtFIFFFAFA6(F2FerF&FjtF.F^oFivFdt-Fe[l6$f*Fh[lFAFi[lFA*&&T$6%T%
Fb\lFFFFFIFFFAFA6&F&FjtF.F^oFRFF,&-Fe[l6$f*Fh[lFAFi[lFAF\\lFAFAFc\l&Fjt6%F^oFFF
fpFdt-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFdpFF>FH-F`[l6#7$,&-Fe[l6$f*Fh[lFAFi[lFA*
(F]\lFF&&&&F[]l6#Fa\lFepFepFepFdtFIFFFAFA6(F2FerF;F^pF>Faw&&&F^p6#FawFSFSFdt-Fe
[l6$f*Fh[lFAFi[lFA*&&&&&F]\l6#F[]lFepFepFSFFFIFFFAFA6&F;F^pF>FawFRFF,&-Fe[l6$f*
Fh[lFAFi[lFAF^^lFAFAFd^l&Ff^lFepFdt-Fe[l6$f*Fh[lFAFi[lFAF\_lFAFAFb_lFdpFF>FH-Fh
y6%FRFjnFdp>FHF`p@$0%2Involutive/characGFL>FH-%$modG6$FHFa`l@%/Fa`lFL>FH-%(coll
ectG6%7$-%'normalG6#-%&evalaG6#,&-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFRFF-Fe[l6$f*
Fh[lFAFi[lFA**&F]\lF^rFF&F]\lFhrFFF^\lFdtFIFFFAFA6(F1FiqF&FjtF.F^oFivFdt-F^al6#
-Faal6#,&-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFdpFF-Fe[l6$f*Fh[lFAFi[lFAFjalFAFAF]b
lFa]lFdtFjn%,distributedG>FH-Fj`l6%7$-Fd`l6$-%'NormalG6#-Faal6#-%)SimplifyG6#,&
-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFRFF-Fe[l6$f*Fh[lFAFi[lFAFjalFAFAF]blFivFdtFa`
l-Fd`l6$-Facl6#-Faal6#-Ffcl6#,&-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFdpFF-Fe[l6$f*F
h[lFAFi[lFAFjalFAFAF]blFa]lFdtFa`lFjnFibl>Fbr%%trueG>F^o,&F^oFFFFFF@%F[uC$>Ffq7
$-Fhz6$/&Fiq6$FFFfp-Fj`l6%,&&Fay6#FielFFFfrFFFjnFiblFay&FfqFep>FH7$-Fhz6$/Fiel-
Fj`l6%,&&FRF_flFFFfrFdtFjnFiblFRFdp@%Fg`l>Ffq-Fj`l6%7$-F^al6#-Faal6#-Fe[l6$f*Fh
[lFAFi[lFAFg\lFAFAF\]lFay-F^al6#-Faal6#-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lF`flFjn
Fibl>Ffq-Fj`l6%7$-Fd`l6$-Facl6#-Faal6#-Ffcl6#-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lF
ayFa`l-Fd`l6$-Facl6#-Faal6#-Ffcl6#-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lF`flFa`lFjnF
ibl>FiqFjq@'3/FayFip0FdpF_qC%>Fdp&-Fhy6%FdpFjnFWFS@$4-%7Involutive/member_multG
6%Fdp%&P_HOMGFjn>Ffjl7$-F`z6#FfjlFdp7$FayF_qFjil7$FipFdp-Fhy6%FayFjnFdpFA6%Ffjl
FDFiuFAFA
M7R0
ICInvolutive/simp_pnormal_form_Z_absf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_
varG6+%"aG%"hG%"iG%"lG%"rG%#lmG%$divG%*zero_listG%.rhs_zero_listG6#%jnCopyright
~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C*>%(_nnformG,&F:"""F<
F<>8%9$>8+7#-%"$G6$""!-%%nopsG6#&F>6#F<>8,7#-FD6$FF-FH6#&F>6#""#>8(7$FAFM>8)-9'
FI?(F7F<F<F70&FZ6$FUF<FFC'>8&F<>8*%&falseG?(F7F<F<F731F]o-FH6#9%4F_oC$@$-%7Invo
lutive/pinv_divideG6%&Ffo6$F]o""$&Ffo6$F]o""&&FZFKC%>%'_reducG,&FfpF<F<F<>8'-%%
iquoG6$Fin&Ffo6%F]o""'F<@&0FipFFC$>F>-%(collectG6%7$-%'normalG6#,&FJF<-%$mapG6$
f*6#F,F76$%)operatorG%&arrowGF7**T#F<&T%6$FUFUF<&T(6%T)F_qFU!""F?F<F7F76*F/FipF
1FZF&FfoF.F]o&Ffo6%F]oF<F<F]s-Fiq6#,&FSF<-F]r6$f*F`rF7FarF7FdrF7F7F^s&Ffo6%F]oF
<FUF]s9&%,distributedG>F_o%%trueG52-%$absG6#-%&roundG6#,$F]q#F<FU-F`t6#Fin3/Fgt
F_t/-%%signGFhtF]sC$>F>-Feq6%7$-Fiq6#,&FJF<-F]r6$f*F`rF7FarF7*,-F]u6#&FerFjnF<-
F]u6#&T&6%T'F_qF<F<&FerFhrF<&F`v6%FbvF_qFUF]sF?F<F7F76(F1FZF&FfoF.F]oF_sF]s-Fiq
6#,&FSF<-F]r6$f*F`rF7FarF7FiuF7F7FfvFgsF]sFisFjs>F_oF\t>F]o,&F]oF<F<F<@$FgoC$>F
W7$-%'subsopG6$/&FZ6$F<FU-Feq6%,&&&FWFK6#FhwF<*&FinF<&FZFhrF<F<FisFjsF^x&FWFT>F
>7$-Few6$/Fhw-Feq6%,&&FJF_xF<F`xF]sFisFjsFJFS>FZFen@'3/F^xFA0FSFMC$@$4-%7Involu
tive/member_multG6%FS%&P_HOMGFis>Fgy7$-%#opG6#FgyFS7$F^xFMF_y7$FAFS7$F^xFSF76%F
gyF:FfpF7F7
M7R0
I<Involutive/pairstoequationsf*6'%"GG%'no_rhsG%'n_entrG%)rhs_entrG%)tup_permG6#
%"iG6#%jnCopyright~(C)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.G6"@%9%
@%/9&"""-%$mapG6$f*F*F.6$%)operatorG%&arrowGF.-%#opG6#&9$6#F4F.F.F.F@-F66$f*F*6
#%"jGF.F.7#-%$seqG6$&F?6#&T$6#8$/FP;F4T&F.F.6&F)9(F'F3F@@%F2@%/9'F4-F66$f*F*F.F
9F./F<-F=6#&F@6#""#F.F.F.F@-F66$f*F*F.F9F./F<FjnF.F.F.F@@%FX-F66$f*F*FEF.F./FGF
hnF.F.FTF@-F66$f*F*FEF.F./[email protected].
M7R0
I6Involutive/linear_varf*6$%"pG%$varG6$%"iG%"jG6#%jnCopyright~(C)~2005-2010~by~
Daniel~Robertz.~All~rights~reserved.G6"C%@%2""#9#>8%&9"6#""$>F3"""?(8$F3F9-%%no
psG6#9%%%trueG@$3/-%'degreeG6$9$&F?6#F;F9/-FE6$-%&coeffGFF<#-%#opGF>""!-%'RETUR
NGFI-FT6#FRF,F,F,F,
M7R0
I1Involutive/PolHFf*6"6+%'NPolHFG%"iG%"qG%"rG%"sG%$varG%2tmp_P_T_List_dataG%,gi
ven_basisG%/args_without_sG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Da
niel~Robertz.~All~rights~reserved.GF$C)@$/9#""!-%'RETURNG6#F">8(.F:>8,%%NULLG@%
1F4"""C$>8+%&falseG@$/F4FA@%3-%%typeG6$&9"6#FA%)equationG/-%#opG6$FAFMQ$varF$>F
:-FS6$""#FM>F:FMC$>FD%%trueG?(8%FAFAF4Fgn@%3-FK6$&FN6#FinFP/-FS6$FAF^oFU>F:-FS6
$FYF^o>F=6$F=F^o@%FD>6$8*8)-%7Involutive/setup_basisG6#F=@$4-%)assignedG6#%)P_T
_ListG-%&ERRORG6#%Umissing~involutive~basis;~run~InvolutiveBasis~first.G>8$f*6#
F)6,%"aG%"bG%"dG%#dpG%"jG%"mG%"nG%&n_mulG%"pG%%termGF$F$C'>F\p-%%nopsG6#&Fep6%F
AFAFA>F[p-F\r6#&Fep6%FA""$FA>8-*&F\pFA-%)binomialG6$,&F[pFA9$FAF]sFA@$0&Fep6%FA
""'FAF5@%%5Involutive/janetlikeG?&F[qFepFgnC%>FD-%*numboccurG6$&F[q6#""&%)infin
ityG>8&-%(convertG6$&F[q6$FerFA%"+G@%/FDF[p?(F:F`tFAF]sFgn>Fgr,&FgrFA-Fjr6$,*F:
FAF`t!""FDFAF_uFA,&FDFAF_uFAF_uC'>Fin-%%subsG6$/F^tF5F[t>F=7#-%"$G6$F5F[p?(F:F`
tFAF]sFgn>FgrF[u>F=-%8Involutive/nextmonomialG6$F=Fin?(F$FAFAF$0F=FhuC%>8'-Fbt6
$F=Fft?(F:,&F`tFAFfvFAFAF]sFgn>Fgr,&FgrFA-Fjr6$,,F:FAF`tF_uFfvF_uFDFAF_uFAF`uF_
u>F=F_v?&F[qFepFgnC%>FDFhs>F`tFat?(F:F`tFAF]sFgn>FgrF[u-%'expandG6#FgrF$F$F$@'-
FK6$F:%'stringGC'>F`t-%4Involutive/pmax_degGFdp?(FinF5FA,&F`tFAF_uFAFgn-%'print
fG6%Q,s~=~%d:~%a|+F$Fin-F[qF_o-Fex6%Q-s~>=~%d:~%a~F$F`t-%1Involutive/PolHPGF$@$
FD-%;Involutive/restoreP_T_ListG6#F[p-F76#F>-FK6$F:%(numericGC%>Ffv-F[q6#F:@$FD
F_yFfv@%FDC$F_yf*6#F'F$6$%)operatorG%&arrowGF$-F"6$T#/FUF]sF$F$6$F.F=f*F_zF$F`z
F$-F"6#FfzF$F$F$F$F$F$F$
M7R0
I7Involutive/ginvMinPolyf*69'%"gG%%listG%$varG%)alg_elemG%(tr_elemG%'n_entrG%)r
hs_entrG%'no_rhsG%"cG%&m_ordG%(var_ordG%)entr_posG%'vardegG%'tupdegG%(algextsG%
-algextindetsG%/transextindetsG%%fextG%*donotreadG%+tracedenomG%*quietmodeG%-mi
npolyindetG%)uppboundG%)lowboundG6+%%fileG%&fnameG%%nvarG%+trans_elemG%#mpG%"iG
%"rG%'std_wsG%"SG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~res
erved.G6"C?@%9*@$2"'++59(-%&ERRORG6#%Alength~of~tuples~exceeds~100000.G@$2FP,&F
Q"""-%%nopsG6#&&%"FG6#FY6#""#FYFR>8&-Fen6#9%>8'-%'removeG6$f*6#FDFJ6$%)operator
G%&arrowGFJ-%'memberG6$9$T$FJFJ6$F5929'@$0907#-%"$G6$""!FQ-FS6#%Yup~to~now,~no~
degrees~can~be~assigned~to~tuples~in~ginv.G@$2F\o-Fen6#9--FS6#%bpup~to~now,~onl
y~two~blocks~of~variables~for~elimination~ordering~are~supported~by~ginv.G@$2F\
o-Fen6#9.-FS6#%_pup~to~now,~only~two~blocks~of~tuples~for~elimination~ordering~
are~supported~by~ginv.G@$32F\o,&-Fen6#FcoFY-Fen6#93FY0%2Involutive/characGF[q-F
S6#%_qup~to~now,~transcendental~extensions~of~degree~greater~than~2~are~only~su
pported~over~the~rationals.G@'2F[q-%+searchtextG6$Q&linuxFJ-%+kerneloptsG6#%(ve
rsionGC$@%/-Fds6#%)wordsizeG"#k@$2"+[O[Z@9+-FS6#%?characteristic~must~be~<~2^31
.G@$2"&oF$Fat-FS6#%?characteristic~must~be~<~2^15.G@%/-%*substringG6$-%(convert
G6$-%*interfaceG6#.Ffs%'stringG;FY"#GQ=Standard~Worksheet~InterfaceFJC$>8%-%CIn
volutive/stdinterface_gettmpnameGFJ>8+%%trueGC&@$4-%;Involutive/ssystem_boolean
G6#%3test~-d~/tmp/$USERGC$>8*-%(ssystemG6#%1mkdir~/tmp/$USERG@$0&F\wF[oQ!FJ-FS6
#%Ecannot~write~temporary~file~to~/tmp.G>F]v-F^w6#%Gecho~/tmp/$USER/Involutive-
$PPID-$USERG@%2F[q-F`s6$Q"$FJ&F]vF[o>F]vQ0/tmp/InvolutiveFJ>F]v-%=Involutive/re
move_whitespaceG6#Fax>Fav%&falseG2F[q-F`s6$Q&APPLEFJFcsC%@$FftFht>F]vF^v>FavFbv
C%@$FftFht>F]vQ1\TEMP\InvolutiveFJ>FavFix>F]v-%$catG6$F]v94>8$-%&fopenG6$-Fiy6$
F]vQ%.minFJ%&WRITEG-%<Involutive/writeGINV1headerG63F]zFao9&FcoFQ9)FMFat9,FcqF[
r9/Ffp91FbpFgr96-%(fprintfG6$F]zQ9basis~=~ginv.basisLoad("FJ-F_[l6$F]z-Fiy6$F]v
Q(.binaryFJ-F_[l6$F]zQ.",~"TQ",~iD)|+FJ-F_[l6$F]zQ+f~=~file("FJ-F_[l6$F]z-Fiy6$
F]vQ%.resFJ-F_[l6$F]zQ)",~"w")|+FJ-F_[l6$F]zQDprint~>>~f,~"_RESULT_MINPOLY~:=~[
"|+FJ?(8)FYFY-Fen6#F_pFbvC,-F_[l6$F]zQ;print~>>~f,~basis.minPoly(FJ>8,-Fau6$&F_
p6#Fi\lFgu?(FJFYFYFJ2FP-%'lengthG6#Fa]lC&>F\w-F`s6$Q"|+FJFa]l?(FJFYFYFJ2F[qF\wC
&@%32FYF\w/&Fa]l6#,&F\wFY!""FYQ"\FJ-F_[l6%F]zQ#%aFJ-F^u6$Fa]l;FY,&F\wFY!"#FY-F_
[l6%F]zF^_l-F^u6$Fa]l;FYFi^l-F_[l6$F]zQ#\|+FJ>Fa]l-F^u6$Fa]l;,&F\wFYFYFYFj^l>F\
wF]^l-F_[l6%F]zF^_lFa]l>Fa]lFdw@$2F[qFh]lFb`l-F_[l6$F]zQ(,~var="FJ-F_[l6$F]z-Fa
u6$98Fgu-F_[l6$F]zQ""FJ@$099"#IC$-F_[l6$F]zQ*,~degree=FJ-F_[l6$F]z-Fau6$FdalFgu
-F_[l6$F]zQ#)|+FJ@$2Fi\lFj\l-F_[l6$F]zQ1print~>>~f,~","|+FJ-F_[l6$F]zQ2print~>>
~f,~"]:"|+FJ-F_[l6$F]zQ+f.close()|+FJ-%'fcloseG6#F]z@%97@%FavC%>F\w-F^w6#-Fiy6%
Q)runginv~FJF]vFcz@$/F\w%%NULLG-FS6#%Acould~not~run~program~'runginv'.G>F\w&F\w
FjnC$>F\w-F^w6#-Fiy6%FhclF]vQ1.min~>~/dev/nullFJ@%3/F`dlF[q/FcwFdw>F\wF[q>F\wFY
C$>F\w-%'systemGFecl@$FjclF\dl@$0F\wF[q-FS6#%Merror~during~call~of~Python~or~in
terruption.G@$F^sC%>F\w-F^w6#-Fiy6'Q&if~[~FJF]vQ*.res~-ot~FJF]vQ>.min~];~then~e
cho~-n~true;~fiFJ@$2F[q-Fi]l6#Fcw-FS6#%dpoutput~file~of~ginv~is~older~than~inpu
t~file~(probably,~program~ginv~stopped~abnormally).G@$495C$>F\w-F^w6#-Fiy6%Q*fi
lesize~FJF]vFa\l@$30F\wF[dlFjdlC$>F\w-%'sscanfG6$FcwQ#%dFJ@$32F[q-Fen6#F\w2"'++
IF`dl-%(WARNINGG6#Q^oresulting~minimal~polynomial~is~big;~reading~it~may~take~a
~while...FJ@$F[gl-%'RETURNG6#7"AF_\l@$4-%)assignedG6#%0_RESULT_MINPOLYG-FS6#%Ce
rror~in~computation~or~interface.GFbilFJFJFJFJ
M7R0
I=Involutive/PolMinPolyRatFuncf*6&'%"pG%(polynomG'%"JG%%listG'%%varsGF*'%#FBGF*
6,%"aG%"iG%"jG%"nG%"vG%"xG%#suG%$varG%"FG%"MG6#%jnCopyright~(C)~2006-2010~by~Da
niel~Robertz.~All~rights~reserved.G6"C1>8(-%*substringG6$-%(convertG6$-%+kernel
optsG6#%(versionG%'stringG;""""")@$5/F?Q)Maple~V,F</F?Q)Maple~6.F<-%&ERRORG6#%]
othis~procedure~is~only~available~for~Maple~8.0~and~newer~versions.G@$0%7Involu
tive/initializedG.%%trueG-%0Involutive/initGF<@$4%4Involutive/ratcoeffG-FU6#%fn
not~implemented~yet~for~involutive~bases~over~the~integers.G>8).%'lambdaG>8*""!
>8-%%NULLG?(8%""&FL9#Ffn@%-%%typeG6$&9"6#Fjo%)equationGC$@$4-F_p6$-%#opG6$FLFap
FJ-FU6#%\oexpecting~a~string~on~the~left~hand~side~of~an~optional~equation.G@-/
FjpQ*PolRepresF<C$@$45-F_p6$-F[q6$""#Fap%'matrixG-F_p6$Fiq%'MatrixG-FU6#%Kexpec
ting~a~matrix~for~option~"PolRepres".G>Fgo-FDF^r5/FjpQ'degreeF</FjpQ'maxdegF<@$
4-F_p6$Fiq%'posintG-FU6#%Nexpecting~a~positive~integer~as~degree~bound.G/FjpQ'm
indegF<@$F[sF_s/-FA6$Fjp;FL""$Q$varF<C$@$4-F_p6$Fiq%%nameG-FU6#%\oexpecting~a~n
ame~for~the~indeterminate~of~the~minimal~polynomial.G>F`oFiq/-FA6$Fjp;FL""%Q%su
bsF<>FdoFiq-FU6#%0invalid~option.GF\u>8,-%6Involutive/proc_inputG6#9%>8+&-%5Inv
olutive/proc_varsG6$9&&F`u6#FLF]v>8'-%%nopsG6#9'@$/F_vFeo@%0FdoFeo-%'RETURNG6#F
do-Fiv6#F`o@$4-%$hasG6$9$Ffu@%Fgv-Fiv6#,&FdoFLFbw!""-Fiv6#,&F`oFLFbwFgw@$/FgoFh
o>Fgo-FD6$-%5Involutive/PolRepresG6&FbwFduF[vFcvF_r@%Fgv-%%subsG6$/F`oFdo-%:Inv
olutive/MinPolyRatFuncG6$FgoF`oFhxF<F<F<F<
M7R0
I<Involutive/PolResolutionDimf*6$%"LG'%%varsG%%listG6(%"iG%"jG%"dG%#d1G%#trG%#M
VG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@%2"
"#9#>8(&9"6#""$>F9""!>8'-%%nopsG6#-%;Involutive/InvolutiveBasisG6%9$9%F6>8&7$FA
-FC6#&%)P_T_ListG6%"""FRFR@$5/F9F?2FRF9C%>8)-%$mapG6$f*6#%"aGF26$%)operatorG%&a
rrowGF2,&-FC6#&FH6#""&FR-%*numboccurG6$F`o%)infinityG!""F2F2F2FP>FA-%$addG6$&FY
6#8$/F^p;FRFA@$2F?FAC%>FK7$FA-%#opG6#FK?(F^pFRFR-FC6#FY%%trueG@$2F?F\p>F\p,&F\p
FRFgoFR?(F2FRFRF23Fbp5FU2,&-FCFhpFRFgoFRF9C%>FA-Fjo6$-Fjo6$8%/F]r;FRF\p/F^p;FRF
jp?(F^pFRFRFjpF\q@$F^q>F\pF`q@$Fbp>FKFep-%'RETURNGFhpF2F2F2F2
M7R0
I5Involutive/polresdimf*6#'%$resG-%%listG6#%'matrixG6"6#%[oCopyright~(C)~2003-2
005~by~Mohamed~Barakat.~All~rights~reserved.GF+7$-%#opG6#-%$mapG6$f*6#%"aGF+6$%
)operatorG%&arrowGF+-&%'linalgG6#%'rowdimG6#9$F+F+F+FA-&F=6#%'coldimG6#&FA6#!""
F+F+F+F+
M7R0
I:InvolutiveZeroSets/homalg=6"%&falseGE\[l+%1PresentationInfoG%Chomalg/Involuti
ve/PolHilbertCartanG%,ZeroSetsVarGQ-_InvZeroSetsF$%'ReduceG%@homalg/Involutive/
PolInvoReduceG%3SyzygiesGeneratorsG%Fhomalg/InvolutiveZeroSets/PolSyzygiesG%.Ba
sisOfModuleG%Ahomalg/InvolutiveZeroSets/IBasisG%2FactorModuleBasisG%Dhomalg/Inv
olutive/FactorModuleBasisG%1CollectsZeroSetsG%%trueG%3ReduceRingElementsG%Dhoma
lg/Involutive/PolNormalizeInputG%.SimplifyBasisG%8Involutive/jetsdepcheckG%'IsU
nitG%9homalg/Involutive/IsUnitGF$
M7R0
I=Involutive/cancel_locvar_rhsf*6'%#p1G%#p2G%'lmprocG%$varG%(loc_varG6#%"pG6#%b
oCopyright~(C)~2000-2010~by~Markus~Lange-Hegermann.~All~rights~reserved.G6"C$>8
$-%9Involutive/cancel_locvarG6&7$-%#opG6#9$-F76#9%9&9'9(-%'RETURNG6$&F16#;"""-%
%nopsGF8&F16#;,&FGFFFFFF!""F.F.F.F.
M7R0
IIInvolutive/pnormal_form_collect_lm_localf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG
%(loc_varG6"6#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~rights~
reserved.GF+-%'RETURNG6#-%>Involutive/pnormal_form_localG6)9$9%9&9'9(9)""&F+F+F
+F+
M7R0
I9Involutive/PolKernelGINVf*6&%"MG%"AG%"NG'%%varsG%%listG6-%"aG%"iG%"jG%"nG%"RG
%"SG%'n_entrG%$varG%+assign_embG%(no_presG%$redG6#%fqCopyright~(C)~2005-2010~by
~Mohamed~Barakat,~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~rights~reserve
d.G6"C(>8*&-%6Involutive/proc_inputG6#9&6#""">8+&-%5Involutive/proc_varsG6$9'F<
FB>8-%&falseG>8,FM?(8%""&FC9#%%trueG@'-%%typeG6$&9"6#FQ%'stringG@%/FYQ"NF9>FLFT
-%&ERRORG6#%0invalid~option.G-FW6$FY%'symbolG>FOFTF[o@%FL-%<Involutive/SyzygyMo
duleGINVG6%9%FJ/Q$modF9FAC$>8)Fdo@%-&%'linalgG6#%'iszeroG6#F\pC$@$FO@%/%6Involu
tive/matrixtypeG%'MatrixG-%'assignG6$&FZ6#FR-%(convertG6$7#7#""!Fip-F[q6$F]q-%5
Involutive/jetsmkmatG6#Fbq@%-FW6$&F\pFBF*7&7#/7#FC-%#opGFcpFarFdq7#-%"$G6$Fdq-%
%nopsG6#FE7&7#/FarF\pFarFdqFdrC+>8(-Feo6%F\pFE/Fio9$-%/AssertInvBasisG6$F`sFE>8
.FM@%-FW6$&F`sFBF*>8'-Fir6#F]t>F_tFC>FQFC?(F9FCFCF932FC-FirFcp1FQ-Fir6#F`sC$?(8
&FCFCF_tFT@$30&&F`sFen6#F]uFdq4-%$hasG6$FauFEC&>F\p-%'subsopG6$/F]u%%NULLGF\p>F
`s-%$mapG6$f*6#F,F96$%)operatorG%&arrowGF97$-Fcr6#&Fds6#;FC,&T#FC!""FC-Fcr6#&Fd
s6#;,&F_wFCFCFCT%F9F96&F.F]uF/F_tF`s>F_t,&F_tFCF`wFC>FisFT>FQ,&FQFCFCFC@$FisC$>
F`s-%'removeG6$f*FdvF9FevF9/Fds7#-Ffr6$FdqF_wF9F96$F/F_tF`s@$/F_tFC>F`s-Fav6$Fc
rF`s@$FO@%Fgp-F[q6$F]q-F`q6$-%4Involutive/jetsmkatGFcpFip-F[q6$F]q-FhqFcp@%F[r7
&7#-%$seqG6$/-F[v6$/FQFC7#-Ffr6$FdqFgt&F\pFen/FQ;FCFgtF`s-%<Involutive/PolHilbe
rtSeriesGF9-%>Involutive/PolCartanCharacterG6#7#-Ffr6#;FCFhr7&7#-F^z6$/Faz7#Fgz
FhzF`sFjzF\[lF9F9F9F9
M7R0
I:Involutive/readGINVresultf*6#%#nrG67%"iG%"jG%"rG%"tG%&fnameG%'n_entrG%)rhs_en
trG%'no_rhsG%"cG%$varG%'vardegG%'tupdegG%)tup_permG%(rootofsG%)radicalsG%(do_no
rmG%#GBG%*nowarningG%+time_boundG%+tracedenomG%,whichoutputG6#%jnCopyright~(C)~
2009-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C:@$529$"""2%;Involutive/la
unchGINVcountGFC-%&ERRORG6#%6no~such~GINV~process.G>8(&&%:Involutive/GINVlaunch
dataG6#FC6#FD>8)&FN6#""#>8*&FN6#""$>8+&FN6#""%>8,&FN6#""&>8-&FN6#""'>8.&FN6#""(
>8/&FN6#"")>80&FN6#""*>81&FN6#"#5>82&FN6#"#6>83&FN6#"#7>84&FN6#"#8>85&FN6#"#9>8
6&FN6#"#:>87&FN6#"#;>88&FN6#"#<@$2""!-%+searchtextG6$Q&linuxF>-%+kerneloptsG6#%
(versionGC(>8&-%(ssystemG6#-%$catG6%Q)if~[~-r~F>[email protected]~];~then~echo~-n~true
;~fiF>@$42F^s-%'lengthG6#&FisFU-FH6#%Llaunched~GINV~session~has~not~finished~ye
t.G>Fis-F[t6#-F^t6'Q&if~[~F>FLQ,.janet~-ot~F>FLQ:~];~then~echo~-n~true;~fiF>@$F
dt-FH6#%dpoutput~file~of~ginv~is~older~than~input~file~(probably,~program~ginv~
stopped~abnormally).G>Fis-F[t6#-F^t6%Q*filesize~F>FLQ'.janetF>@$30Fis%%NULLG/&F
isFQF^sC$>8$-%'sscanfG6$FhtQ#%dF>@$334Fiq2F^s-%%nopsG6#Fgv2"'++I&FgvFQ-%(WARNIN
GG6#Q\oresulting~involutive~basis~is~big;~reading~it~may~take~a~while...F>A-F^t
6$FLF^v@$333F_w2F^sF^r-%)assignedG6#%6_IB_RESULTout_of_timeG/Ffx.%%TrueG-Fhw6#%
[ocomputation~of~involutive~basis~stopped~due~to~time~restriction.G>%*_JB_compa
G.F^y@$Fcr>%._GINV_inv_denG%0_IB_RESULTdenomG@+5/Fhr7"/-%*substringG6$Fhr;FD"#d
QZinvbasis,invbasislm,invbasisanc,multvar,factormodulebasisF>C%@$54333-Fdx6#%+_
IB_RESULTG-Fdx6#%-_IB_RESULTlmG-Fdx6#%._IB_RESULTancG-Fdx6#%2_IB_RESULTmultvarG
3%4Involutive/ratcoeffG43-Fdx6#%1_IB_RESULTfactorG-Fdx6#%8_IB_RESULTfactormultv
arG-FH6#%Cerror~in~computation~or~interface.G@$Fc[lC%>8'&-%4Involutive/proc_ord
G6*FjnFaoFgy7$-%#opG6#Ffo-Fi\l6#F[pFgyFao7#FS%%trueGF^o@%2FDFSC%>%+_JB_factorG-
%%sortG6$-%$zipG6%f*6$F'F(F>6$%)operatorG%&arrowGF>7$FC9%F>F>F>Fh[lF[\lf*F[^lF>
F>F>@'2&&F`^lFQFU&&FCFQFUF^]l2Ff^lFd^l%&falseG-T#6$&Fg^lFQ&Fe^lFQF>F>6$F*Fb\l>%
3_JB_factor_multvarG-%$mapG6$f*6#F'F>F\^lF>&FCFUF>F>F>Fc]l>Fc]l-Fc_l6$f*Ff_lF>F
\^lF>-%'subsopG6$/,&Ff^lFDFDFDF]_l7#-%"$G6$F^sF[_lF>F>6$F,FSFc]lC%>Fc]l-Fe]l6$-
Fh]l6%f*F[^lF>F\^lF>F_^lF>F>F>Fh[lF[\lf*F[^lF>F\^lF>-F[_l6$Fg^lFe^lF>F>F__l>Fa_
l-Fc_l6$f*Ff_lF>F\^lF>Fg_lF>F>F>Fc]l>Fc]l-Fc_l6$f*Ff_lF>F\^lF>Fg^lF>F>F>Fc]l>%(
_JB_varGFao-%'RETURNG6#7$72FSFXFgnF\oFaoFfoF[pF`pFepFjpF_qFdqFiqF^rFcrFhr7&FhzF
^[lF[[lFa[l/-Fjy6$Fhr;FD"#RQHinvbasis,invbasislm,invbasisanc,multvarF>C$@$FbzF\
\lFjal/FhrQ)invbasisF>C$@$4FfzF\\l-F[bl6#7$F^bl7&FhzFgyFgyFgy/FhrQ2factormodule
basisF>C'@$Fd[lF\\l>Fb\lFc\l@%F`]lC%>Fc]l-Fe]l6$-Fh]l6%f*F[^lF>F\^lF>F_^lF>F>F>
Fh[lF[\lf*F[^lF>F>F>@'Fc^lF^]lFh^lFi^lFj^lF>F>F__l>Fa_l-Fc_l6$f*Ff_lF>F\^lF>Fg_
lF>F>F>Fc]l>Fc]l-Fc_l6$f*Ff_lF>F\^lF>F\`lF>F>Fe`lFc]lC%>Fc]l-Fe]l6$-Fh]l6%f*F[^
lF>F\^lF>F_^lF>F>F>Fh[lF[\lf*F[^lF>F\^lF>F^alF>F>F__l>Fa_l-Fc_l6$f*Ff_lF>F\^lF>
Fg_lF>F>F>Fc]l>Fc]l-Fc_l6$f*Ff_lF>F\^lF>Fg^lF>F>F>Fc]l>FialFao-F[bl6#7#F^bl-FH6
#%4error~in~interface.GF>6'Fc]lFa_lFialF^yFbyF>F>
M7R0
I>Involutive/pplex_Z_entr_blockf*6$%"aG%"bG6#%"iG6#%jnCopyright~(C)~2006-2010~b
y~Daniel~Robertz.~All~rights~reserved.G6"C'@&2&%,_entrblocksG6#&9$6#""#&F06#&9%
F4-%'RETURNG6#%&falseG2F6F/-F;6#%%trueG?(8$"""FD-%%nopsG6#&F36#FDFA@&2&FH6#FC&&
F9FIFMF?2FNFLF:@&2-%$absG6#&F96#""$-FT6#&F3FWF:2FYFSF?@$2F2F8F:FAF+F+F+F+
M7R0
I4Involutive/pnegplexf*6$%"aG%"bG6"6#%jnCopyright~(C)~2002-2010~by~Daniel~Rober
tz.~All~rights~reserved.GF'@%/&9$6#"""&9%F.@%2&F-6#""#&F1F5%&falseG%%trueG4-%1I
nvolutive/pplexG6$F-F1F'F'F'F'
M7R0
IFInvolutive/pnegdegrevlex_Z_entr_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyr
ight~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C)@&2&%,_entrblock
sG6#&9$6#""#&F26#&9%F6-%'RETURNG6#%&falseG2F8F1-F=6#%%trueG>8%-%(convertG6$&F56
#"""%"+G>8&-FG6$&F;FJFL@'2FEFNF<2FNFEFA?(8$-%%nopsG6#FI!""FKFC@&2&FQ6#FV&FIFhnF
A2FinFgnF<@&2-%$absG6#&F;6#""$-F^o6#&F5FaoF<2FcoF]oFA@$2F4F:F<FCF-F-F-F-
M7R0
I9Involutive/pdeglex_deg_Zf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCopyright~(C)~
2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(>8%-%%nopsG6#&9$6#""">8&,
&-%$addG6$*&&F56#8$F8&%(_vardegGFAF8/FB;F8F1F8&%(_tupdegG6#&F66#""#F8>8',&-F=6$
*&&&9%F7FAF8FCF8FEF8&FH6#&FUFKF8@'2F:FN-%'RETURNG6#%%trueG2FNF:-Ffn6#%&falseGC%
>F:F<>FNFP@'FZFenFinFjn?(FBF8F8F1Fhn@&2FSF@Fjn2F@FSFen@&2-%$absG6#&FU6#""$-Fho6
#&F6F[pFjn2F]pFgoFen@%2FJFXF\oFhnF.F.F.F.
M7R0
I=Involutive/pdeglex_deg_Z_POTf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCopyright~
(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(@&2&9$6#""#&9%F4-%'RE
TURNG6#%&falseG2F6F2-F96#%%trueG>8%-%%nopsG6#&F36#""">8&-%$addG6$*&&FE6#8$FG&%(
_vardegGFOFG/FP;FGFA>8'-FK6$*&&&F7FFFOFGFQFGFS@'2FIFVF=2FVFIF8?(FPFGFGFAF?@&2FZ
FNF82FNFZF=@%2-%$absG6#&F76#""$-F`o6#&F3FcoF;F?F.F.F.F.
M7R0
IAInvolutive/pnegdeglex_entr_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~
(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(@&2&%,_entrblocksG6#&
9$6#""#&F26#&9%F6-%'RETURNG6#%&falseG2F8F1-F=6#%%trueG>8%-%(convertG6$&F56#"""%
"+G>8&-FG6$&F;FJFL@'2FEFNF<2FNFEFA?(8$FKFK-%%nopsG6#FIFC@&2&FQ6#FV&FIFgnF<2FhnF
fnFA@$2F4F:F<FCF-F-F-F-
M7R0
I:Involutive/pbinary_insertf*6)%"aG%"FG%"sG%"nG%"lG%&N_OrdG%#eqG6%%"iG%"jG%"pG6
#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~res
erved.G6"C'@$/9(""!-%'RETURNG6#7#9$@$3/9&"""/9'F6@$-9)6$F<&9%6#FA@%-9*FG-F96#FI
-F96#-%'subsopG6$/FAFGFI@$/F@FC-F96#-FS6$/F@6$&FI6#F@F<FI>8&-%%iquoG6$,(F@FAFCF
AFAFA""#@%-FF6$F<&FI6#F[o@%-FMFcoFI-F"6)F<FIF@,&F[oFA!""FAF6FFFM-F"6)F<FIF[oFCF
6FFFMF2F2F2F2
M7R0
I7Involutive/invred_polyf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmprocG%(
loc_varG68%"aG%"cG%#caG%#cbG%"hG%#h2G%"iG%"kG%#lmG%"nG%"qG%"rG%$divG%'n_entrG%(
termo_hG%*zero_listG%#lvG%#nlG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-2010~by
~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C/>81-%%nopsG6#&9$6#"
"">837#-%"$G6$""!FH>8(FL@$49&>8)&FM6#""#@$09*7"C&>84<#-%$seqG6$&9(6#&F]o6#8*/F[
p;FO-FJ6#F]o>85-FJ6#Fao>86F^o@%Fen>FX-%9Involutive/cancel_locvarG6&FX9)FgoF]o>6
$FXFgn-%=Involutive/cancel_locvar_rhsG6'FXFgnF[qFgoF]o>8--FJ6#9%>8/FQ>8%7#-FT6$
FVFbq>8.FO>8,-F[q6#FX?(FEFOFOFE0&F`r6$FjnFOFVC)>F[pFO>80%&falseG>82*&FerFO&F`r6
$FjnFjnFO@$F\o>87,&-%$maxG6#-Fdo6$-%'degreeG6$&FX6#8+Fao/F_t;FOFHFO-%$addG6$&&F
`r6$FOFO6#&F]oF^t/F_t;FOFap!""?(FEFOFOFE31F[pFbq4Fjr@%-%7Involutive/pinv_divide
G6%&Feq6$F[p""$&Feq6$F[p""&&F`rFNC$@%F\oC+>88,&-Ffs6#-Fdo6$-F[t6$&&Feq6%F[pFOFO
F^tFaoF`tFO-Fct6$&&Feq6%F[pFguFOFhtFjtF\u>89FV>F_tFO?(FEFOFOFE32FVF`v1F_t-FJ6#F
epC$@$332&&FepF^t6#FguF`v/&&&F_xFinFNFin&F[vFin-%:Involutive/conv_divisibleG6$F
cxF[vC$>FawF_t>F`vF^x>F_t,&F_tFOFOFO@$3Few0FgqFQ[@$2FcsF`v>Fep7$-%#opGFhw7%7$FX
FgnF`rFcs@%/FawFVC$>FX-%'expandG6#,&*&&Feq6%F[p""'FOFOFXFOFO*(F]sFO&Feq6%F[pFez
FjnF\uFivFOF\u@$FZ>Fgn-F_z6#,&*&FczFOFgnFOFO*(F]sFOFgzF\u&Feq6%F[pFOFjnFOF\uC$>
FX-F_z6#,&*&&&&&Fep6#FawFinFinFNFOFXFOFO*(F]sFO&Fi[lFinF\u&&F[\lFNFNFOF\u@$FZ>F
gn-F_z6#,&*&Fh[lFOFgnFOFO*(F]sFOF^\lF\u&F`\lFinFOF\u@%Fen>FXFhp>F]qF^q@$0%2Invo
lutive/characGFVC$>FX-%$modG6$FXF^]l@$FZ>Fgn-Fb]l6$FgnF^]l@%/F^]lFVC%-%$gcdG6&F
erFcz.8&.8'>FX-%'normalG6#,&-%$mapG6$f*6#F-FE6$%)operatorG%&arrowGFE*&T#FOFMFOF
EFE6$F0Fa^lFXFO-Fh^l6$f*F[_lFEF\_lFE**F`_lFO&T%F`sFO&T(6%T)FezFjnF\uFMFOFEFE6*F
/F_^lF5F`rF&FeqF3F[pFivF\u@$FZ>Fgn-Fd^l6#,&-Fh^l6$f*F[_lFEF\_lFEF__lFEFEFa_lFgn
FO-Fh^l6$f*F[_lFEF\_lFEFe_lFEFEF\`lF`[lF\uC%-Fb]l6$-%$GcdGF]^lF^]l>FX-Fb]l6$-%'
NormalG6#,&-Fh^l6$f*F[_lFEF\_lFEF__lFEFEFa_lFXFO-Fh^l6$f*F[_lFEF\_lFEFe_lFEFEF\
`lFivF\uF^]l@$FZ>Fgn-Fb]l6$-Faal6#,&-Fh^l6$f*F[_lFEF\_lFEF__lFEFEFa_lFgnFO-Fh^l
6$f*F[_lFEF\_lFEFe_lFEFEF\`lF`[lF\uF^]l>Fjr%%trueG>F[p,&F[pFOFOFO@%F`u@%Fi]lC$>
Fgq-%'subsopG6$/&F`r6$FOFjn-Fd^l6#,&&Fgq6#FcclFOF]sFOFgq>FX-F`cl6$/Fccl-Fd^l6#,
&&FXFiclFOF]sF\uFXC$>Fgq-F`cl6$/Fccl-Fb]l6$-FaalFfclF^]lFgq>FX-F`cl6$/Fccl-Fb]l
6$-FaalF_dlF^]lFXC%@%Fi]l>Fgq*&Fa^lFOFgqFO>Fgq-Fb]l6$FdelF^]l>F^r*&Fa^lFOF^rFO@
$9'@%Fi]l>Fiq-F`cl6$/F[p,&&FiqFjoFO*(F_^lFOF_sFOFgzF\uFOFiq>Fiq-Fb]l6$F^flF^]l>
F`rFar@$0F^rFOC%@$F`y@%Fi]l>Fgq-Fd^l6#*&FgqFOF^rF\u>Fgq-Fb]l6$-FaalF_glF^]l@$FZ
@%Fi]l>Fgn-Fd^l6#*&FgnFOF^rF\u>Fgn-Fb]l6$-FaalFiglF^]l@$F[fl@%Fi]l>Fiq-Fd^l6#*&
FiqFOF^rF\u>Fiq-Fb]l6$-FaalFchlF^]l7$7$FgqFgnFiqFEFEFEFE
M7R0
I?Involutive/invred_collect_polyf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'l
mprocG%(loc_varG68%"aG%"cG%#caG%#cbG%"hG%#h2G%"iG%"kG%#lmG%"nG%"qG%"rG%$divG%'n
_entrG%(termo_hG%*zero_listG%#lvG%#nlG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000
-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C/>81-%%nopsG
6#&9$6#""">837#-%"$G6$""!FH>8(FL@$49&>8)&FM6#""#@$09*7"C&>84<#-%$seqG6$&9(6#&F]
o6#8*/F[p;FO-FJ6#F]o>85-FJ6#Fao>86F^o@%Fen>FX-%9Involutive/cancel_locvarG6&FX9)
FgoF]o>6$FXFgn-%=Involutive/cancel_locvar_rhsG6'FXFgnF[qFgoF]o>8--FJ6#9%>8/FQ>8
%7#-FT6$FVFbq>8.FO>8,-F[q6#FX?(FEFOFOFE0&F`r6$FjnFOFVC)>F[pFO>80%&falseG>82*&Fe
rFO&F`r6$FjnFjnFO@$F\o>87,&-%$maxG6#-Fdo6$-%'degreeG6$&FX6#8+Fao/F_t;FOFHFO-%$a
ddG6$&&F`r6$FOFO6#&F]oF^t/F_t;FOFap!""?(FEFOFOFE31F[pFbq4Fjr@%-%7Involutive/pin
v_divideG6%&Feq6$F[p""$&Feq6$F[p""&&F`rFNC$@%F\oC+>88,&-Ffs6#-Fdo6$-F[t6$&&Feq6
%F[pFOFOF^tFaoF`tFO-Fct6$&&Feq6%F[pFguFOFhtFjtF\u>89FV>F_tFO?(FEFOFOFE32FVF`v1F
_t-FJ6#FepC$@$332&&FepF^t6#FguF`v/&&&F_xFinFNFin&F[vFin-%:Involutive/conv_divis
ibleG6$FcxF[vC$>FawF_t>F`vF^x>F_t,&F_tFOFOFO@$3Few0FgqFQ[@$2FcsF`v>Fep7$-%#opGF
hw7%7$FXFgnF`rFcs@%/FawFVC$>FX-%)simplifyG6#,&-%$mapG6$f*6#F-FE6$%)operatorG%&a
rrowGFE*&&T$6%T%""'FOFOFMFOFEFE6&F&FeqF3F[pFXFO-Fcz6$f*FfzFEFgzFE*(T#FO&T&6%T'F
_[lFjnF\uFMFOFEFE6(F;F]sF&FeqF3F[pFivF\u@$FZ>Fgn-F_z6#,&-Fcz6$f*FfzFEFgzFEFjzFE
FEF`[lFgnFO-Fcz6$f*FfzFEFgzFEFd[lFEFEFj[l&Feq6%F[pFOFjnF\uC$>FX-F_z6#,&-Fcz6$f*
FfzFEFgzFE*&&&&&Fe[l6#F^[lFinFinFNFOFMFOFEFE6&F?FepFBFawFXFO-Fcz6$f*FfzFEFgzFE*
(Fe[lFO&&&&F^[l6#Fi[lFinFinFinF\uFMFOFEFE6(F;F]sF?FepFBFaw&&&Fep6#FawFNFNF\u@$F
Z>Fgn-F_z6#,&-Fcz6$f*FfzFEFgzFEF`]lFEFEFf]lFgnFO-Fcz6$f*FfzFEFgzFEFj]lFEFEF`^l&
Fb^lFinF\u@%Fen>FXFhp>F]qF^q@$0%2Involutive/characGFVC$>FX-%$modG6$FXFf_l@$FZ>F
gn-Fj_l6$FgnFf_l@%/Ff_lFVC%-%$gcdG6&Fer&Feq6%F[pF_[lFO.8&.8'>FX-%(collectG6%-%'
normalG6#,&-Fcz6$f*FfzFEFgzFE*&Fe[lFOFMFOFEFE6$F0F[alFXFO-Fcz6$f*FfzFEFgzFE**Fe
[lFO&F^[lF`sFO&T(6%T)F_[lFjnF\uFMFOFEFE6*F/Fi`lF5F`rF&FeqF3F[pFivF\uFgo%,distri
butedG@$FZ>Fgn-F^al6%-Faal6#,&-Fcz6$f*FfzFEFgzFEFgalFEFEFhalFgnFO-Fcz6$f*FfzFEF
gzFEF\blFEFEFbblFf\lF\uFgoFcblC%-Fj_l6$-%$GcdGFe`lFf_l>FX-F^al6%-Fj_l6$-%'Norma
lG6#,&-Fcz6$f*FfzFEFgzFEFgalFEFEFhalFXFO-Fcz6$f*FfzFEFgzFEF\blFEFEFbblFivF\uFf_
lFgoFcbl@$FZ>Fgn-F^al6%-Fj_l6$-F\dl6#,&-Fcz6$f*FfzFEFgzFEFgalFEFEFhalFgnFO-Fcz6
$f*FfzFEFgzFEF\blFEFEFbblFf\lF\uFf_lFgoFcbl>Fjr%%trueG>F[p,&F[pFOFOFO@%F`u@%Fa`
lC$>Fgq-%'subsopG6$/&F`r6$FOFjn-F^al6%,&&Fgq6#F`flFOF]sFOFgoFcblFgq>FX-F]fl6$/F
`fl-F^al6%,&&FXFfflFOF]sF\uFgoFcblFXC$>Fgq-Fj_l6$F\flFf_l>FX-Fj_l6$FhflFf_lC%@%
Fa`l>Fgq-F^al6%-Faal6#-Fcz6$f*FfzFEFgzFEFgalFEFEFhalFgqFgoFcbl>Fgq-F^al6%-Fj_l6
$-F\dl6#-Fcz6$f*FfzFEFgzFEFgalFEFEFhalFgqFf_lFgoFcbl>F^r*&F[alFOF^rFO@$9'@%Fa`l
>Fiq-F]fl6$/F[p,&&FiqFjoFO*(Fi`lFOF_sFO&Feq6%F[pF_[lFjnF\uFOFiq>Fiq-Fj_l6$F`ilF
f_l>F`rFar@$0F^rFOC%@$F`y@%Fa`l>Fgq-Fcz6$f*FfzFEFgzFE-Faal6#*&FMFOFe[lF\uFEFE6$
F7F^rFgq>Fgq-Fcz6$f*FfzFEFgzFE-Fj_l6$-F\dlFfjlFf_lFEFEFhjlFgq@$FZ@%Fa`l>Fgn-Faa
l6#*&FgnFOF^rF\u>Fgn-Fj_l6$-F\dlFd[mFf_l@$F]il@%Fa`l>Fiq-Faal6#*&FiqFOF^rF\u>Fi
q-Fj_l6$-F\dlF^\mFf_l7$7$FgqFgnFiqFEFEFEFE
M7R0
I:Involutive/mac_gettmpnamef*6"6&%"iG%"jG%"rG%"SG6#%jnCopyright~(C)~2007-2009~b
y~Daniel~Robertz.~All~rights~reserved.GF$C$>8'-%(ssystemG6#Q$envF$@'/F.%%NULLG%
0/tmp/InvolutiveG0&F.6#"""""!F6C%>F.&F.6#""#@%/-%*substringG6$F.;F:""&Q&USER=F$
C$>8$F:>8%-%+searchtextG6%Q"|+F$F.;""'!""C$>FK-FO6$Q'|+USER=F$F.>FM-FO6%FQF.;,&
FKF:FSF:FT@%5/FKF;/FMF;F6C&>F.-FD6$F.;Fhn,(FKF:""%F:FMF:>8&-F06#-%$catG6$%.test
~-d~/tmp/GF.@$0&FeoF9F;C$>Feo-F06#-Fio6$%,mkdir~/tmp/GF.@$F]p-%&ERRORG6#%Ecanno
t~write~temporary~file~to~/tmp.G-Fio6&%&/tmp/GF.%-/Involutive-GF.F$F$F$F$
M7R0
I8Involutive/PolInvReducef*6"F$6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~
All~rights~reserved.GF$C$@$0%7Involutive/initializedG.%%trueG-%0Involutive/init
GF$-%6Involutive/PolIReduceG6#9"F$F$F$F$
M7R0
I5Involutive/pupdate_Tf*6#%"LG6)%"iG%"jG%"lG%"nG%"vG%$conG%(allmultG6#%jnCopyri
ght~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C$>8'-%%nopsG6#9$@$
2""!F3C&>8*7#-%"$G6$%)infinityG%&_nvarG>%)P_T_ListG-%'subsopG6$/&F76#F37*&&FE6#
FJ6#"""&FN6#""#&FN6#""$7#-F@6$F:FCF=&FN6#""'7"&FN6#"")FE>8(FQ?(8$,&F3FQ!""FQFao
FQ%%trueGC'>8%F]o?(F0FQFQF031FeoFC/&&FE6%&F76#,&F_oFQFQFQFWFQ6#&%4Involutive/di
visionG6#Feo&&FE6%&F76#F_oFWFQF`p>Feo,&FeoFQFQFQ>8)-FG6$-%$seqG6$/8&F:/Fcq;FjpF
C&&FE6#Fgp6#""%@$3/FeoF]o/FdpF:>F]o,&F]oFQFQFQ>FE-FG6$/Fgp-FG6$/FjqF\qFgqFEF06#
FEF0F0
M7R0
I>Involutive/SubmoduleDimensionf*6"F$6#%jnCopyright~(C)~2007-2010~by~Daniel~Rob
ertz.~All~rights~reserved.GF$-%'degreeG6#-%7Involutive/SubmoduleHPG6#9"F$F$F$F$
M7R0
I=Involutive/FactorModuleBasisf*6"6E%"dG%"iG%"jG%"kG%"lG%"mG%"sG%"tG%"FG%"MG%"P
G%%varsG%$varG%%nvarG%%seqvG%)tup_permG%'p_listG%.mult_var_listG%&monomG%)last_
varG%(genfuncG%(lastcppG%*forcelistG%'vt_degG%,withmultvarG%*sort_funcG%'n_entr
G%&m_ordG%,force_evalaG%(var_ordG%,given_basisG%)entr_posG%'lmprocG%,janetmetho
dG%2tmp_P_T_List_dataG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~right
s~reserved.GF$C/>8:%&falseG>8<FN>88FN>89FN>8@FN>8?""%>8EFN@'5/9#"""32FjnFin-%%t
ypeG6$&9"6#""#%'stringGC$>8BFN>8&Fco2""!FinC$>Fgo%%trueG>Fio""$-%&ERRORG6#%goex
pecting~either~an~involutive~basis~or~list~of~variables~as~first~argument.G?(8%
FioFjnFinF^p@'5-F^o6$&Fao6#Ffp%(integerG-F^o6$F[q%%listG>FXF[q-F^o6$F[qFdoC$>8-
F[q?(8'FjnFjn-%'lengthG6#FfqF^p@./&Ffq6#FhqQ"CF$>FMF^p/F^rQ"GF$>FRF^p/F^rQ"LF$>
FTF^p/F^rQ"MF$>FPF^p/F^rQ"SF$>FVF^p0F^rQ!F$-Fbp6#%[poptions~must~be~given~by~a~
string~consisting~of~letters~in~|fr"C",~"G",~"L",~"M"|hr.G-Fbp6#%0invalid~optio
n.G@%FgoC4>8,-%6Involutive/proc_inputG6#&Fao6#Fjn>8>&FisF^t>FV5FV&Fis6#""&>8F73
%)P_T_ListG%*pnumber_tG%+PolTab_VarG%&_nvarG%&_pvarG%(_vardegG%(_tupdegG%,_entr
blocksG%&P_HOMG%)_pno_rhsG%0_pforce_collectG%._pforce_evalaG%)_inv_denG%+_JB_fa
ctorG%3_JB_factor_multvarG%(_JB_varG%*_JB_compaG>8/-%5Involutive/proc_varsG6$F`
oF`t>8A&F\vFbo>8;&F\v6#F`p>83&F\vFet>8C&F\v6#""'>80&F\vF^t>827#-%$seqG6$-%$catG
6$%#_xGFfp/Ffp;Fjn-%%nopsG6#F`w>Fav-%%subsG6$7#-Ffw6$/&F`wF\q&FcwF\qF\xFav@$30F
av7"/FXFY>FX7#-%"$G6$FY-F_x6#Fav>8(-%4Involutive/proc_ordG6*FXF`wFavFev&F\v6#FY
FcwF[w4FV@$&FhyF]z>F[wF^y@$/&Fdv6#;,&F^xFjnFjnFjn,&F^xFjnF`tFjn7#-Fcy6$F[pF`t>F
dvF[p>8D-%&parseG6#-Fiw6/Q@g->`Involutive/pol_lead_mon`(g,F$-%(convertG6$F`tFdo
Q",F$-Ff[l6$FcwFdoFh[l-Ff[l6$&FhyF^tFdoFh[l-Ff[l6$F[wFdoFh[l-Ff[l6$&FhyFetFdoFh
[l-Ff[l6$FdvFdoQ")F$-%9Involutive/setupP_T_ListG6*-%(collectG6%&FisF]zF`w%,dist
ributedGF`t&FisFboF^[l&FhyFfvFivF`w&FisFfvC)@$3335FT3/%5Involutive/InvoBasisG%>
Involutive/InvBasisFastAssertG%4Involutive/ratcoeffG-%)assignedG6#Fgu-F]^l6#Fhu
-F]^l6#Fiu@%5FR-%$hasG6$FhuFjn@%FM@%FP-%'RETURNG6#-%$mapG6$f*6#F'6$F(F+F$F$C$>F
fp-%'selectG6$f*6#F(F$6$%)operatorG%&arrowGF$2F[p&&Fhu6#T$6#9$F$F$6$F'Fc`l7#-Fc
y6#;Fjn-F_xFb^l7$&FguFb`l-F^_l6$f*Fi_lF$Fj_lF$&FiuFb`lF$F$F$FfpF$F$F$7#-Fcy6#;F
jn-F_xF^^l-F[_lF^^l-F[_l6#-%'expandG6#-%$addG6$*&&FguF\qFjn-%$mulG6$),&FjnFjn&F
iu6#Fio!""&&FhuF\qFfbl/FioFh`lFgbl/FfpFcalFeal@$4-F]^l6#Fjt-Fbp6#%Umissing~invo
lutive~basis;~run~InvolutiveBasis~first.G>F`t-F_x6#&Fjt6%FjnFjnFjn>F\v-F^v6$F]t
F`t>FhvFiv>F`wFaw@$0-F_x6#&Fjt6%FjnF`pFjnF^x-Fbp6#%[qthe~current~involutive~bas
is~was~computed~w.r.t.~a~different~number~of~variables~than~nops(var).G>8+&-Fjy
6*FYFawF^yFevF^yFaw7#F`tF^pFet>81F^x@'3Fen4%5Involutive/janetlikeGC&>84F^y?(8*F
jnFjnF`tF^pC$>8.-%%sortG6$-Ff_l6$f*Fa_lF$Fj_lF$/&Fc`l6$F`pFcoT#F$F$6$F,FfelFjt%
2Involutive/pplex3G@%5/FielF^y/&Fjt6%FjnF^wFjnF[p>Fdel7$-%#opG6#Fdel7$7$7#-Fcy6
$F[pF]elFfel7#-Fcy6$%)infinityGF]el?(Ffp,&F[uFjnFgblFjnFgblFjnF^pC&>8)&Fiel6$,&
FfpFjnFjnFjnFft>FioFjn?(F$FjnFjnF$31FioF]el/&Fiel6&FahlF`pFjnFio&Fiel6&FfpF`pFj
nFio>Fio,&FioFjnFjnFjn@$FehlC%>FhqF\il?(F$FjnFjnF$3Fehl/&Fiel6&FfpF`pFjnFhqF[p>
Fhq,&FhqFjnFjnFjn@$FehlC$>F^hl-%'subsopG6&/FioF[p/FhqF[p-Ffw6$/FhyFigl/Fhy;Ffil
F]elF^hl>Fdel7$F^gl-Ffw6$7$7$7'-F_gl6#&&Fiel6%FahlF`pFjn6#;Fjn,&FioFjnFgblFjn,&
&F^[mFfblFjnFgblFjn-Fcy6$F[p,(FhqFjnFioFgblFgblFjn,&&&Fiel6%FfpF`pFjnF_rFjnFhyF
gbl-Fcy6$F[p,&F]elFjnFhqFgblFfelF^hl/Fhy;FjnFi[m@$Fgo-%;Involutive/restoreP_T_L
istG6#Fht@%FMC$>8=f*6$%#t1G%#t2GF$F$F$@'2&Fcfl6#&Fc`lFbo&Fcfl6#&9%FboFN2Fb]mF_]
mF^p-T%6$&Fc`lF^t&Fe]mF^tF$F$6&F5FhvF-Fgdl@%FPC$>Fiel-F[fl6$-F^_l6$f*Fa_lFb_lF$
F$C$>Ffp-Ff_l6$f*Fi_lF$Fj_lF$2F[p&Fcfl6%T&FcoFc`lF$F$6&F6T'F'Fc`l7#-Fcy6#;FjnFc
fl7%-Fabl6$)&Fh]m6#8$&F__m6&Fc`lFjnFjnFj_m/Fj_mFc_m&F__m6%Fc`lFjnFco-F^_l6$f*Fi
_lF$Fj_lF$&FcflFb`lF$F$6$F2Fh]mFfpF$F$6(F3F]elF2F`wF6Fdel7#-Fcy6#;Fjn-F_xF`glFh
\m@%/F`tFjn-F^_l6$f*Fa_lF$Fj_lF$7$Fj]m&Fc`lFfvF$F$F$FielC$>FhqFiz7#-Ffw6$7$-F[j
l6$/&Fhv6#&Fiel6$FfpFco&Fiel6$FfpFjnFhq&Fiel6$FfpF`p/Ffp;Fjn-F_x6#FielC$>Fiel-F
[fl6$7#-Ffw6$7$-Fabl6$)&F`wFfbl&Fdel6&FfpFjnFjnFio/Fio;FjnF]el&Fdel6%FfpFjnFco/
FfpFi`mFh\m@%F\am-F^_l6$f*Fa_lF$Fj_lF$Fj]mF$F$F$FielC$>FhqFiz7#-Ffw6$FhamFcbm@%
F\am-F\bl6$*&F_cmFjn-Fabl6$),&FjnFjnFbcmFgbl-Fcx6$/FiglFjn&Fdel6%FfpFcoFioFecmF
gblFicmC$>FfelFiz-Fial6#-F\bl6$-F[jl6$/&Fhv6#FgcmFfdmFfelFicm5FR4-F^o6$-%<Invol
utive/PolHilbertSeriesGF$%(polynomGC&>Fdel7#-Ffw6$7$7$FcglFfpFfgl/Ffp;FjnF`t@$0
FjflF[pC'>Fiel-F[fl6$FjtFefl>Ffp-F_xF_cl>FfqFabm@$FaelC$>Fj_m-Fcx6$/FiglF[p&Fie
l6$FfpFft>FhqFcgl?(F$FjnFjnF$1FjnFfpC,>FioFjn?(F$FjnFjnF$31FioFj`m4-%7Involutiv
e/pinv_divideG6%&Fdel6$FioFjn&Fdel6$FioFcoFfq>FioF\il@$2Fj`mFio-Fbp6#%hqthe~giv
en~list~is~not~an~involutive~basis~w.r.t.~the~given~variables.~You~have~to~call
~InvolutiveBasis~again.G>F^hl&Fdel6%FioFjnFjn>85Fjhm>Fdel-F[jl6$/Fio%%NULLGFdel
>FioFjn?(F$FjnFjnF$3Fehl/&F^hlFfbl&Ffq6$FjnFio>FioF\il@$FehlC%>Ffim-F[jl6$F]jlF
fim>Fdel7$F^gl-Ffw6$7$7$-F[jl6$/Fio,&F`jmFjnFfelFjnF^hl&FfqFboFfim/Ffel;F[p,(Fa
jmFjnF`jmFgblFgblFjn>F^hl-F[jl6$/FioFajmF^hl@%0F^hl&FfqF^t>Fdel7$F^gl7$7$F^hlFc
[n-F[jl6$/FioFiglFfim@%FaelC$>Fhq-%8Involutive/nextmonomialG6$FhqFj_m@%/FhqFcgl
C$>Ffp,&FfpFjnFgblFjn@$F^hmC$>FfqFabm@$FaelC$>Fj_mFggm>FhqFcgl>Ffq7$,&Fj[mFjnFh
qFjnFc[nC$>FfpF_]n@$F^hm>FfqFabm@$FgoFb\m@%FMC$>Fh\mf*Fj\mF$F$F$@'F^]mFNFf]mF^p
Fg]mF$F$F\^m@%FPC$>Fiel-F[fl6$-F^_l6$f*Fa_lFb_lF$F$C$>Ffp-Ff_l6$f*Fi_lF$Fj_lF$F
j^mF$F$F^_mF`_m7%Fe_mF^`m-F^_l6$f*Fi_lF$Fj_lF$Fc`mF$F$Fd`mFfpF$F$Fe`mFf`mFh\m@%
F\am-F^_l6$f*Fa_lF$Fj_lF$F`amF$F$F$FielC$>FhqFizFdamC$>FielFibm@%F\am-F^_l6$f*F
a_lF$Fj_lF$Fj]mF$F$F$FielC$>FhqFizF`dm@%F\amFddmC$>FfelFizFbemC$>87&F`w6#F]el@%
F[^lC&>Ffq7#-Fcy6$F^yF`t?(FfpFjnFjnFbgmF^p@$/-%*numboccurG6$&FjtF[hmFiglFjnC&>F
^hl&FjtF[\m>86-Fabl6$)FbcmF`jmFecm?(FioFjnFjn-%'degreeG6$F\bnFh`nF^pC$>F\bn*&F\
bnFjnFh`nFgbl>Ffq-F[jl6$/&Fjt6%FfpF`pFco7$-F_gl6#&Ffq6#F[cnF\bnFfq@$FaelC&>Fhq-
Fcx6$FigmFgan>FielFcgl>Fiel-Fi\n6$FielFhq?(F$FjnFjnF$0FielFcglC%>F\bn-Fabl6$)Fb
cm,&F`jmFjn&FielFfblFjnFecm?(FioFjnFjnFabnF^pC$>F\bnFfbn>FfqFhbn>FielFicn@$FgoF
b\m@%F\am-F[fl6$F]\nFgdlC$>FfelFiz-F^_l6$F_gl-F^_l6$f*Fa_lF$Fj_lF$-F^_l6$f*Fi_l
F$Fj_lF$-F[jl6$/&Fcfl6#,(Fh]mFjnT(FgblFjnFjnFc`lT)F$F$6*F5F^fnF@Fh]mF'Fc`lF,T+-
F[fl6$&Fcfl6#,(Fh]mFjnFc`lFgblFjnFjnF__mF$F$6,F/FfqF@F`tF-FgdlF5FhvF,Ffel7#-Fcy
6#FjfmC(>FfqF[jm?(FfpFjnFjnFbgmF^p@'FcanC'>F^hlFjan>F\bnF]bn@$0&Fjt6%FfpF^wFjnF
jn>Ffq6$Ffq-Ffw6$7$*&FioFjnF\bnFjnF[cn/Fio;Fjn,&FcgnFjnFgblFjn@$/&Fjt6%FfpFftF]
elFigl?(FioFjnFjnFabnF^pC$>F\bnFfbn>Ffq6$Ffq7$F\bnF[cn@$FaelC&>FhqFecn>FielFcgl
>FielFicn?(F$FjnFjnF$F\dnC&>F\bnF_dn@$Fbgn>FfqFfgn@$F_hn?(FioFjnFjnFabnF^pC$>F\
bnFfbn>FfqFfhn>FielFicn/FganFcglC$>F\bn-Fabl6$)Fbcm&FjtFjhlFecm>Ffq6$Ffq-Ffw6$F
ign/Fio;FcoF]hn@$FbgnC$>F\bnF[jn>FfqFfgn>Fh\mf*Fj\mF$F$F$@)F^]mFNFf]mF^p/*&Fj]m
Fjn-%'coeffsG6#Fj]mFgbl*&F[^mFjn-F_[o6#F[^mFgbl-%&evalbG6#1-%$absG6#F^[o-Fi[o6#
Fb[oFg]mF$F$F\^m>Ffq-F[fl6$7#FfqFh\m@$FgoFb\m@%2FjnF`tC$>FfelFiz-F^_l6$f*Fa_lF$
Fj_lF$-F[jl6$/F_]mFj]mFh]mF$F$6&F5FhvF,FfelFfq-F^_l6$f*Fa_lF$Fj_lF$Fj]mF$F$F$Ff
qF$F$F$F$
M7R0
I:Involutive/isMinimalBasisf*6#%#lmG6$%"iG%"rG6#%jnCopyright~(C)~2002-2010~by~D
aniel~Robertz.~All~rights~reserved.G6"C$@%/%4Involutive/ratcoeffG%&falseGC$>8$"
""?(F+F4F4F+1F3%*pnumber_tGC$@$33/&&9$6#F46#""#&&&%)P_T_ListG6#F36#""$FA-%:Invo
lutive/conv_divisibleG6$F>FD2-%$absG6#&&F?FAF@-FO6#&&FE6#""'F@-%'RETURNG6#F0>F3
,&F3F4F4F4C$>F3F4?(F+F4F4F+F6C$@$F;FY>F3Fgn%%trueGF+F+F+F+
M7R0
I:Involutive/AssertInvBasisf*6#'%"LG%%listG6F%"aG%"gG%"iG%"kG%"lG%"nG%"rG%#lmG%
"FG%"GG%"JG%"RG%%varsG%$varG%#suG%$conG%/default_lmprocG%'lmprocG%&m_ordG%&B_Or
dG%&N_OrdG%(var_ordG%'vt_degG%(deg_ordG%)tup_permG%'n_entrG%)entr_posG%)rhs_ent
rG%'no_rhsG%%seqvG%"pG%.force_collectG%,force_evalaG%+trans_elemG%&ib_gbG%(extr
actG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"CX@$
0%7Involutive/initializedG.%%trueG-%0Involutive/initGFO>8,-%6Involutive/proc_in
putG6#9$>8=&FY6#""">8?&FY6#""#>8@&FY6#""$>8D&FY6#""&>8E&FY6#""(@%332Fao9#-%%typ
eG6$&9"FeoF'4-Fgp6$Fip-F'6#%(integerGC'>81Fip>8/-Fen6#&FjpF`o@$2F\o&FeqF[o-%&ER
RORG6#%Xexpecting~list~of~relations~for~the~residue~class~ring.G@$4&FeqFeo-F]r6
#%foright~hand~sides~for~relations~of~the~residue~class~ring~are~not~supported.
G>8*""%C%@$2FepFao-F]r6#%Pexpecting~list~of~variables~as~second~argument.G>FcqF
hq>FgrFfo>80-%5Involutive/proc_varsG6$FcqFin>89&FbsF`o>8:&FbsFeo>8;&Fbs6#Fhr>8<
&FbsFjo>8>&Fbs6#""'>Fcq&FbsF[o>%&_nvarG-%%nopsG6#Fcq>8A7#-%$seqG6$-%$catG6$%#_x
G8&/Fiu;F\oF[u>Fgs-%%subsG6$7#-Fcu6$/&Fcq6#Fiu&F`uFevFjuFgs@%0%2Involutive/char
acG""!>FY-%$modG6$-%(collectG6%&FYF_tFcq%,distributedGFiv>FYF_w>8C-%&evalbG6#0-
%&minusG6$<#-%#opG6#F]p<#-F`xF^u<">844Fho@%/Fgs7">86Fhr>F\y7#-%"$G6$Fhr-F]u6#Fg
s>8GFjx?(FiuFgrF\oFepFU@)-Fgp6$&FjpFev%)equationG@%/-F`x6$F\oFjyQ(extractFOC$@'
-Fgp6$-F`x6$FaoFjy%#..G>Fey7#-F`y6#Fez-Fgp6$Fez-F'6#%'posintG>FeyFez-F]r6#%foex
pecting~range~or~list~of~indices~as~right~hand~side~for~option~'extract'.G@$0-%
'selectG6$f*6#F,FO6$%)operatorG%&arrowGFO52FgnF\o2-F]u6#T#FgnFOFO6$F1FYFeyFjx-F
]r6#-Ffu6$%Nexpecting~indices~in~the~range~between~1~and~G-%(convertG6$-F]u6#FY
%'stringG-F]r6#%0invalid~option.G/FjyQ"SFO>Ffx%&falseG5-Fgp6$FjyF`q-Fgp6$FjyF'>
F\yFjyFa]l>8(-%4Involutive/proc_ordG6*F\yFcqFgsFjsF]tF`uFdtFfx>88&F_^lF`o>87&F_
^lFeo@$&F_^lF_t>FdtFjx@$/&Fjs6#;,&F[uF\oF\oF\o,&F[uF\oFinF\o7#-F`y6$FjvFin>FjsF
jv>85-%&parseG6#-Ffu6/Q@g->`Involutive/pol_lead_mon`(g,FO-F\]l6$FinF`]lQ",FO-F\
]l6$F`uF`]lFa`l-F\]l6$&F_^lF[oF`]lFa`l-F\]l6$FdtF`]lFa`l-F\]l6$&F_^lFjoF`]lFa`l
-F\]l6$FjsF`]lQ")FO>%(_nnformGFjv>%'_reducGFjv>%'_crit1GFjv>%'_crit2GFjv>%'_cri
t3GFjv>%'_crit4GFjv>%)_inv_denG.F\bl>%+_JB_factorG.F_bl>%3_JB_factor_multvarG.F
bbl>%(_JB_varG.Febl>%*_JB_compaG.Fhbl>8--%9Involutive/setupP_T_ListG6*FYFinF^oF
h_lFg^lFatFcqFco@$0FeyFjxC&>%)P_T_ListG-%$mapG6$f*6#F+FOF\\lFO&FcclFfnFOFOFOFey
>%+PolTab_VarG-Fecl6$f*FhclFOF\\lFO&F[dlFfnFOFOFOFey>F[cl-Fecl6$f*FhclFOF\\lFO&
Fd\lFfnFOFO6$F2F[clFey>%*pnumber_tG-F]u6#Fey>8B-%<Involutive/PolHilbertSeriesGF
O@$-Fgp6$F[el%(polynomGC&>F[el7#-%'coeffsG6#F[el>FiuF\o?(FOF\oF\oFO31Fiu-F]uFge
l1Fjv&F[elFev>Fiu,&FiuF\oF\oF\o@$F[fl-F]r6#%jqthe~given~list~L~is~not~an~involu
tive~basis~w.r.t.~the~given~variables.~You~have~to~call~InvolutiveBasis~again.G
>8FF\o>FiuF\o?(FOF\oF\oFO3/FfflF\o1Fiu-F]u6#FcclC%>8'F\o?(FOF\oF\oFO3Fjfl1F`glF
[uC$@$2&Fccl6%FiuF[pF`gl%)infinityGC&>FgrF`fl>8+7%FjvFjv-%'subsopG6$/F\o-F`hl6$
/F`gl,(&Fccl6&FiuFfoF\oF`glF\oFgglF\oF\oF\o&Fccl6%FiuFfoF\o&Fccl6$FiuFfo?(FOF\o
F\oFO31FgrF\gl-Fd^l6$&Fccl6#FgrF]hl>Fgr,&FgrF\oF\oF\o@$/&F]hlFeo&Fccl6$,&FgrF\o
!""F\oFfo>FfflFjv>F`gl,&F`glF\oF\oF\o>FiuF`fl>%&_pvarGFbs>%)_pno_rhsGFco>%0_pfo
rce_collectGFfw>%._pforce_evalaGFho>%(_StatssG7*F`alFbalFdalFfalFhalFjalFfflFjv
F[clFO66F[uFbjlFdjlFfjlFhjlF`alFbalFdalFfalFhalFjalFjjlF_blFbblFeblFhblF\blFgdl
FcclF[dlFOFO
M7R0
I<Involutive/SyzygyModuleGINVf*6#%"LG6P%"aG%"cG%"iG%"jG%"kG%"lG%"rG%"vG%"zG%'n_
entrG%)rhs_entrG%"FG%"MG%"RG%&m_ordG%%fextG%$varG%%nvarG%$POTG%(var_ordG%'vt_de
gG%(deg_ordG%)tup_permG%#GBG%#IBG%*zero_listG%)alg_elemG%+trans_elemG%%contG%(d
o_normG%(algextsG%-algextindetsG%/transextindetsG%)radicalsG%+time_boundG%%algo
G%)entr_posG%*quietmodeG%#hfG%+movedboundG%-qlengthboundG%,degreeboundG%(rootof
sG%+tracedenomG%*donotreadG%)dolaunchG6#%jnCopyright~(C)~2002-2010~by~Daniel~Ro
bertz.~All~rights~reserved.G6"C`o@$0%7Involutive/initializedG.%%trueG-%0Involut
ive/initGFW>8/-%6Involutive/proc_inputG6#9$>8-&F[o6#"""@$4&F[o6#""$-%&ERRORG6#%
Fexpecting~L~without~right~hand~sides.G>8>&F[o6#""'>8?&F[o6#""(>F[o&F[o6#""%>8.
-%%nopsG6#F[o>8*7#-%"$G6$""!F]q>F[o7#-%$seqG6$-%'subsopG6$/Fdo7$-%#opG6#&F[o6$8
&Fdo-Fcr6#-F^r6$/FgrFdoFbq&F[o6#Fgr/Fgr;FdoF^q@%332""#9#-%%typeG6$&9"Fho%%listG
4-Fhs6$Fjs-F\t6#%(integerGC)>84Fjs>81-F]o6#&F[t6#Fes@$2Fdo&FgtFco-F[p6#%Xexpect
ing~list~of~relations~for~the~residue~class~ring.G@$4&FgtFho-F[p6#%foright~hand
~sides~for~relations~of~the~residue~class~ring~are~not~supported.G>Fgt&FgtFjp@%
/&Fgt6$FdoFdo7#Fgq>Fgt7"C$>Fgt7#-F[r6$-F[r6$7$7$-Fcr6#-F^r6$/Fgr&Fgt6%8'FdoFdo7
#-Feq6$FgqFaoFdqF^v/Fgr;FdoFao/Faw;Fdo-F_q6#Fgt>F[o7$-FcrF`q-FcrFjw>FbqF[qC&@$2
FfsFes-F[p6#%Pexpecting~list~of~variables~as~second~argument.G>FetFjt>FgtF`v>Fb
qFio>Fet-%5Involutive/proc_varsG6$FetFao>87&FetF[u>88&FetFho>89&FetFjp>8:&Fet6#
""&>8H&FetFap>Fet&FetFco>85-F_q6#Fet@%0%2Involutive/characGFgq>F[o-%$modG6$-%(c
ollectG6%F[oFet%,distributedGFfz>F[oF[[l@$-%$hasG6$-%$mapG6$f*6#F'FW6$%)operato
rG%&arrowGFW3-Fhs6$&F_oFco-F\t6#-%(polynomG6$%)anythingGT#-Fhs6$&F_oF[uF`\lFWFW
6$F7FetF[o%&falseG-F[p6#-%$catG6%%Oexpecting~a~list~of~(lists~of)~polynomials~i
n~G-%(convertG6$Fet%'stringG%4~as~first~argument.G>8%Ffz>8BF`v>8CF`v>8DF`v>83Q!
FW>8@Fgn>8AFgn@%/F^yF`v>82F[q>Fi^l7#-Feq6$F[q-F_q6#F^y>8PF[]l>8FFgq>8;F[]l>8+-F
c]l6$-%+kerneloptsG6#%(versionGFe]l>8I-%&evalbG6#552Fgq-%+searchtextG6$Q&APPLEF
WFg_l/-%*substringG6$-Fc]l6$-%*interfaceG6#.F]`lFe]l;Fdo"#GQ=Standard~Worksheet
~InterfaceFW/%5Involutive/InvoBasisG%>Involutive/InvBasisGINVAssertG>8GFa^l>8KF
gq>8LFgq>8MFgq>8OF[]l>8JF`v>8QF[]l?(FgrFbqFdoFfsFgn@)5-Fhs6$&F[tF^sFbt-Fhs6$F]c
lF\t>Fi^lF]cl-Fhs6$F]clFe]l@)/F]clQ&denomFW>FcblFgn/F]clQ*donotreadFW>Fa_lFgn/F
]clQ'launchFWFWC$>8)F]cl?(FawFdoFdo-%'lengthG6#F^dlFgn@&/&F^dl6#FawQ"NFW>Fe^lF[
]l0FedlFa^l-F[p6#%0invalid~option.G-Fhs6$F]cl%)equationG@C/-Fcr6$FdoF]clQ%NameF
WC$@$4-Fhs6$-Fcr6$FesF]clFe]l-F[p6#%Fexpecting~a~string~for~option~"Name".G>F`^
lFjel/FbelQ$modFWC%>Fg_l-F\al6$Fg_l;Fdo"")>80Fjel@%55-Fhs6$FiflF\t-Fhs6$Fifl%'m
atrixG330Fg_lQ)Maple~V,FW0Fg_lQ)Maple~6.FW-Fhs6$Fifl%'MatrixG@$0FiflF`vC)>Fifl-
F]o6#Fifl@$4&FiflFho-F[p6#%gnexpecting~argument~to~option~"mod"~without~right~h
and~sides.G@$0&FiflFcoFao-F[p6#%bplength~of~tuples~in~option~"mod"~does~not~mat
ch~length~of~tuples~in~the~generating~set.G?&Faw&FiflFapFgn@$4-%'memberG6$FawF_
p>F_p7$-Fcr6#F_pFaw?&Faw&FiflFfpFgn@$4-Fbil6$FawFdp>Fdp7$-Fcr6#FdpFaw>Fifl-Fe[l
6$f*Fh[lFWFi[lFW-F^r6$/Fdo7$-Fcr6#F_\l-Feq6$FgqFf\lF_oFWFW6$F1F]q&FiflFjp>F[o7$
F]x-FcrF`hl-F[p6#%Wexpecting~list~or~matrix~as~argument~for~option~"mod".G/Fbel
Q%charFWC$@$4-Fhs6$Fjel%*nonnegintG-F[p6#%Qexpecting~0~or~a~prime~number~for~op
tion~"char".G>Fh]lFjel/FbelQ(contentFWC$@$4-Fhs6$Fjel%(booleanG-F[p6#%Nexpectin
g~boolean~value~for~option~"content".G>Fc^lFjel/FbelFhclC$@$Ff\m-F[p6#%Pexpecti
ng~boolean~value~for~option~"donotread".G>Fa_lFjel/FbelQ%timeFWC$@$Fj[m-F[p6#%S
expecting~time~bound~in~seconds~for~option~"time".G>Fc_lFjel/FbelQ)GroebnerFWC$
@$Ff\m-F[p6#%Oexpecting~boolean~value~for~option~"Groebner".G>Fe_lFjel/FbelQ'al
gextFW@%-Fhs6$FjelF\t?&8(FjelFgnC&>8,-%&minusG6$-%'indetsG6#F[_m<%-Fcr6#F\^l-Fc
r6#F^^l-Fcr6#-Fe[l6%Fc]lF_p%%nameG@$50-F_q6#F^_mFdo4-Fhs6$F[_m-Fc\l6$Fe\lF^_m-F
[p6#%`sexpecting~a~univariate~polynomial~(possibly~with~rational~coefficients~i
n~previously~defined~algebraic~elements)~for~option~"algext".G@$0-%*intersectG6
$F^_m<#-FcrFcz<"-F[p6#%_qthe~univariate~polynomial~for~option~"algext"~may~not~
contain~indeterminates~of~the~polynomial~ring.G@$4-Fbil6$-FcrFc`mF\^lC$>Fj]l7$-
Fcr6#Fj]lF[_m>F\^l7$Ff_mF[bmC&>F^_m-F`_m6$-Fc_m6#FjelFe_m@$5Fa`m4-Fhs6$FjelFg`m
Fi`m@$F]amFdam@$FhamC$>Fj]l7$F_bmFjel>F\^lFbbm/FbelQ)transextFW@'-Fhs6$Fjel-F\t
6#F^`m?&F[_mFjelFgn@$4-Fbil6$F[_m7$F`jlFh_m>F^^l7$Fh_mF[_m-Fhs6$FjelF^`m@$4-Fbi
l6$FjelF`dm>F^^l7$Fh_mFjel-F[p6#%Sexpecting~(list~of)~name(s)~for~option~"trans
ext".G/FbelQ&quietFWC$@$Ff\m-F[p6#%Lexpecting~boolean~value~for~option~"quiet".
G>F_`lFjel/FbelFeclC$@$Ff\m-F[p6#%Lexpecting~boolean~value~for~option~"denom".G
>FcblFjel/FbelQ*algorithmFWC$>F[blFjel@$54-Fhs6$F[blFe]l33330F[blQ#TQFW0F[blQ)T
QDegreeFW0F[blQ*TQGradingFW0F[blQ,TQBlockHighFW0F[blQ+TQBlockLowFW-F[p6#%gqexpe
cting~strings~"TQ"~or~"TQDegree"~or~"TQBlockHigh"~or~"TQBlockLow"~or~"TQGrading
"~for~option~"algorithm".G/FbelQ#HFFWC$@$4-Fhs6$Fjel-F\t6#F]\m-F[p6#%enexpectin
g~a~list~of~non-negative~integers~for~option~"HF".G>FeblFjel/FbelQ+MovedBoundFW
C$@$Fj[m-F[p6#%Zexpecting~a~non-negative~integer~for~option~"MovedBound".G>F]bl
Fjel/FbelQ-QlengthBoundFWC$@$Fj[m-F[p6#%fnexpecting~a~non-negative~integer~for~
option~"QlengthBound".G>F_blFjel/FbelQ,DegreeBoundFWC$@$Fj[m-F[p6#%enexpecting~
a~non-negative~integer~for~option~"DegreeBound".G>FablFjelFjdlFjdl>Fdp-%'remove
G6$f*6#F)FWFi[lFW-Fbil6$F_oFf\lFWFWFj\lFdp@$52Fdo-F_q6#F\z3/FgjmFdo0&F\zFcoFao-
%'RETURNG6#-%5Involutive/SyzModuleG6#F[t>F^dl-%4Involutive/proc_ordG6*Fi^lFetF^
yFayFdyFetF\zFgn>86&F^dlFjp@$Fh[n>F\zF`v>8=Fbw@$0Fgy7#-Feq6#Ffw>F[o-Fe[l6$f*Faj
m6#F*FWFW-F^r6$/Fdo7$-F[r6$&F_\l6#&Ff\l6#8$/Fb]n;FdoT%-F[r6$&F_\lFa]n/Fb]n;,&Fe
]nFdoFdoFdo-F_qF[[mF_oFWFW6&F=FgyF0FaoF[o>%)_inv_denGF`v>F_p-%>Involutive/algeb
raicextensionG6)F[oF_pFj]lF\^lFdpF`vF`v>F[o&F_pFco>Fj]l&F_pFho>F\^l&F_pFjp>8E&F
_pFiy>8N&F_pFap>Fdp&F_pFfp>F_p&F_pF[u@$0F[_nF`vC$>Fj]l-%%subsG6$F[_nFj]l>F[o-Fi
_n6$F[_nF[o>8<-%5Involutive/ginvBasisG6GF[oFetF_pFdp,&FaoFdoF]qFdoFgqFgnFh]lFes
F`v7#Fc`n&Fay6#;FdoFaz7$-Fcr6#&Fay6#;,&FazFdoFdoFdo,&FazFdoFaoFdoFdqFj]lF\^lF^^
lF`^lFa^lF[blFc_lF[]lF_`lF[]lFc^lF[]lF[]lFcblF]blF_blFablQ)invbasisFWFgyFe^lF^_
nF[_nFeblF[]l@$3332FgqFc_l-%)assignedG6#%6_IB_RESULTout_of_timeG/Fian.%%TrueG/F
_`nF`v-F^[n6#F`v@$3Fcbl-Fgan6#%._GINV_inv_denG>F_^nFdbn>F_`n-%'selectG6$f*Fh[lF
WFi[lFW-Fa`l6#/&F_o6#Fd]nFf\lFWFW6&F@F]\nF0Fao&F_`nFco@%F]bn@%/F]qFdo>F_`nF^v>F
_`n7#FcqC(>F_`n-Fa`n6G-Fe[l6$f*Fh[lFWFi[lFW7$&F_o6#;,&Ff\lFdoFdoFdo,&Ff\lFdoFe]
nFdoF^vFWFW6&F0FaoF1F]qF_`nFetF_pFdpF]qFgqFgnFh]lFi^lF^y7#F]qFe`nFcqFj]lF\^lF^^
lF`^lFa^lF[blFc_lF[]lF_`lF[]lFc^lF[]lF[]lFcblF]blF_blFablQboinvbasis,invbasislm
,invbasisanc,multvar,factormodulebasis,compatibilityFWFgyFe^lF^_nF[_nF`vFgbl@$5
Fa_lFgbl-F^[n6#-Fcr6#F_`n@$FbanF^bn@$Fabn>F_^n7$-Fcr6#F_^n-FcrFcbn@$Fe_lC$>F^dl
-Fhbn6$f*FajmFWFi[lFW/&&&Ff\lF[uF^oFco&&&&Ff\lFhoF^oFcoF[uFWFW6$F?F_`n7#-Feq6#;
Fdo-F_q6#Facn>F_`n-Fe[l6$f*FajmFWFi[lFW7#-F[r6$&F_o6#&Ff\l6#Fe]n/Fe]n;Fdo-F_q6#
Ff\lFWFW6&F,F^dlF*FawF_`n>F_`nFacn@$Fe_nC$>F_`n-Fi_n6$-Fe[l6$f*FajmFWFi[lFW/-%$
rhsGF^o-%$lhsGF^oFWFWFWF[_nF_`n>F_^n-Fi_n6$-Fe[l6$f*FajmFWFi[lFWFchnFWFWFWF[_nF
_^n?(Fgr-F_q6#F^_n!""FdoFgnC$>F_`n-Fi_n6$&F^_nF^sF_`n>F_^n-Fi_n6$FfinF_^n@$4Fcb
l>F_^n.F_^nF_`nFWFcenFWFW
M7R0
I8Involutive/PolDimensionf*6"F$6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~an
d~Daniel~Robertz.~All~rights~reserved.GF$-%'degreeG6#-%1Involutive/PolHPG6#9"F$
F$F$F$
M7R0
I6Involutive/jetsgetbasf*6$%$_KMG%$slsG6*%#KMG%#nrG%#ncG%#GMG%#rkG%#zlG%#vsG%#s
lG6#%inCopyright~(C)~2000-2002~by~Gehrt~Hartjen.~All~rights~reserved.G6"C.>8$-%
5Involutive/jetsmkmatG6#9$>8*7">8+9%>8%-&%'linalgG6#%'rowdimG6#F5>8&-&FD6#%'col
dimGFG@$0-%%nopsG6#F?FA-%&ERRORG6#%enThere~must~be~as~many~names~(2nd~argument)
~as~matrix~rows!G>8'-&FD6#%*gausselimG6$-&FD6#%(augmentG6$F5-%&arrayG6%;"""FAF`
o%)identityGFI>8(-%5Involutive/jetsgrankG6#-&FD6#%*submatrixG6%FXF`o;FaoFI>8)-%
7Involutive/jetszerocolG6#-Fio6%FX;FaoFdo;,&FIFaoFaoFao,&FAFaoFIFao>F;7$-%#opG6
#F;-F\q6#-%$mapG6$f*6#%"iGF26$%)operatorG%&arrowGF2-%(convertG6$-%$zipG6%f*6$%"
aG%"bGF2FfqF2*&F9FaoF?FaoF2F2F2-Fjq6$-&FD6#%*subvectorG6%T#F9;,&T%FaoFaoFao,&F^
sFaoT'Fao%%listGT)%"+GF2F26*F+FXF*FIF)FAF/F>7#-%"$G6#;,&FdoFaoFaoFaoFA>F>-%'sub
sopG6$-F\q6#-Faq6$f*FdqF2FfqF2/F9%%NULLGF2F2F2F_pF>7$F>F;F2F2F2F2
M7R0
I2Involutive/hasvarf*6$%"mG%$varG6"6#%jnCopyright~(C)~2006-2010~by~Daniel~Rober
tz.~All~rights~reserved.GF'@%-%%typeG6$9$%"^G-%'memberG6$-%#opG6$"""F.9%-F16$F.
F7F'F'F'F'
M7R0
I8Involutive/tupcoefflistf*6&%"pG%$varG%$basG%%permG6%%"cG%"iG%"nG6#%jnCopyrigh
t~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8&-%%nopsG6#9$>8$7
#-%"$G6$""!F2@%2""$9#?(8%"""FDF2%%trueGC$>F8-%'subsopG6$/&9'6#FC-%:Involutive/m
onomcoefflistG6%&F6FN9%&9&FNF8@$4-%%typeG6$&F86#FL%%listG-%'RETURNG6#-FI6$/FCFe
nF9?(FCFDFDF2FEC$>F8-FI6$/FCFOF8@$4-FY6$&F8FNFgn-Fin6#-FI6$/FCFhoF9-Fin6#F8F/F/
F/F/
M7R0
I:Involutive/PolLeftInversef*6#%"LG6(%"iG%"vG%%varsG%#IBG%#LIG%"RG6#%jnCopyrigh
t~(C)~2003-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8(-%$mapG6$f*6#F'F
/6$%)operatorG%&arrowGF/&9$6#"""F/F/F/&-%6Involutive/proc_inputG6#F<6#""%@'32""
#9#-%%typeG6$&9"6#""$%%listGC$>8)&FN6#FH>8&FM/FIFHC$>FT%%NULLG>FXFU-%&ERRORG6#%
Pexpecting~list~of~variables~as~second~argument.G>8'-%;Involutive/InvolutiveBas
isG6%-%2Involutive/AddRhsG6#F2FTFX@%/-%<Involutive/PolHilbertSeriesGF/""!C$@%-F
K6$-%$rhsG6#&F]oF=FQ>F27#-%$seqG6$-F^p6#&F]o6#,(-%%nopsG6#F]oF>8$!""F>F>/F^q;F>
F[q>F27#-Fdp6$7#FfpF`q@%-FK6$F<%'matrixG-FjqFcoC$>8%-%*substringG6$-%(convertG6
$-%+kerneloptsG6#%(versionG%'stringG;F>"")@%330F^rQ)Maple~V,F/0F^rQ)Maple~6.F/-
FK6$F<%'MatrixG-FesFcoF2%%FAILGF/F/F/F/
M7R0
I8Involutive/PolSubFactorf*6%%$RR1G%#R1G'%%varsG%%listG6*%"KG%"LG%"nG%#J1G%"iG%
"GG%"vG%$varG6#%^pCopyright~(C)~2003-2010~by~Mohamed~Barakat~and~Daniel~Robertz
.~All~rights~reserved.G6"C3>8$-%$mapG6$f*6#%"aGF56$%)operatorG%&arrowGF5&9$6#""
"F5F5F5&-%6Involutive/proc_inputG6#FC6#""%>8%-F:6$f*F=F5F?F5FBF5F5F5&-FH6#9%FJ@
$0-%%nopsG6#&F8FD-FX6#&FMFD-%&ERRORG6#%dpThe~two~modules~are~submodules~of~diff
erent~free~modules!~Check~the~number~of~components!G>8+&-%5Involutive/proc_vars
G6$9&FWFD@%2""$9#>8*&9"FJ>Fho.%"sG>8&FW>8'-%;Involutive/InvolutiveBasisG6$FMFbo
>F8-F:6&%8Involutive/PolInvReduceGF8FapFbo>F8-%8Involutive/jetsdepcheckG6#F8@$/
F87">F87#7#-%"$G6$""!F_p>8)-F:6$f*F=F5F?F5/-%$rhsGFI-%$lhsGFIF5F5F5-%2Involutiv
e/AddRhsGF\q>F8Far>F_p-FXF\q-Fcp6$7$-%#opG6#Fap-FjrF\qFbo>F8-%4Involutive/Syzyg
iesGFgr@%F^q>F8-Fcp6$FaqFbo>F8-Fcp6$F8Fbo7&FhqF8-%<Involutive/PolHilbertSeriesG
6#Fho-%>Involutive/PolCartanCharacterG6#7#-Fdq6#;FE-FX6#F]oF5F5F5F5
M7R0
I7Involutive/PolCokernelf*6%%#_AG%#_NG'%$varG%%listG6$%"AG%"NG6#%[oCopyright~(C
)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-%5Involutive/jetsm
kmatG6#-%$mapG6$f*6#%"aGF/6$%)operatorG%&arrowGF/&9$6#"""F/F/F/&-%6Involutive/p
roc_inputG6#F@6#""%>8%-F46#-F76$f*F:F/F<F/F?F/F/F/&-FE6#9%FG-%;Involutive/Invol
utiveBasisG6$-F76$%#opG-F76%%(convertG7$F2FJ%)listlistG9&F/F/F/F/
M7R0
I6Involutive/PolKaehlerf*6$%#_RG'%$varG%%listG6$%"RG%#RlG6#%[oCopyright~(C)~200
3-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-%$mapG6$f*6#%"aGF.6$%)o
peratorG%&arrowGF.&9$6#"""F.F.F.&-%6Involutive/proc_inputG6#F<6#""%>8%-F36$%#op
G-%(convertG6$F1%)listlistG@%/%6Involutive/matrixtypeG%'MatrixG-FQ6#-%2Involuti
ve/PolSumG6%-F36$f*F6F.F8F.-F36$f*6#%"bGF.F8F.-%%diffG6$T$F<F.F.6$F7F<F\oF.F.6$
F'9%FF-%8Involutive/PolDirectSumG6#-%"$G6$F1-%%nopsG6#F_oF_o-%'matrixG6#-FU6%-F
36$f*F6F.F8F.-F36$f*FgnF.F8F.FinF.F.F]oF\oF.F.F^oFFF`oF_oF.F.F.F.
M7R0
I9Involutive/MVPolInterpolf*6&'%"nG%(integerG'%%wertG-%%listG6#%(numericG'%.Stu
etzstellenG-F+6#F*%"uG6*%"iG%"jG%"mG%"pG%$PolG%"CG%#CCG%$degG6#%[oCopyright~(C)
~2007-2010~by~Moritz~Schroeer.~All~rights~reserved.G6"C(@$0-%$mulG6$-%%nopsG6#&
9&6#8$/FK;"""-FF6#FI-FF6#9%-%&ERRORG6#%gnNumber~of~evaluation~points~does~not~m
atch~number~of~values.G@$0FO9$-FU6#%jnNumber~of~variables~does~not~match~number
~of~evaluation~points.G@$0-%$mapG6$f*6#%"XGF>6$%)operatorG%&arrowGF>-FF6#FZF>F>
F>FI-F[o6$f*F^oF>F`oF>FcoF>F>F>-F[o6$f*6#%"YGF>F`oF>-%(convertG6$FZ%$setGF>F>F>
FI-FU6#%DEvaluation~points~must~be~distinct.G@$45-%%typeG6$9'F+-Fhp6$Fjp%%nameG
-FU6#%enExpecting~fourth~argument~to~be~of~type~list~or~type~name.G>8+-F[o6$f*F
^oF>F`oF>FcoF>F>F>FI@%/FZFNC$>8'-&%-CurveFittingG6#%8PolynomialInterpolationG6$
-%$zipG6%f*6$F4F5F>F`oF>7$FZFSF>F>F>&FI6#FNFS&FjpFhr-%'RETURNG6#FjqC'>8(7#-%$se
qG6$-F\r6$7#-Fbs6$7$&&FIFdoFJ&&FS6#;,&*&8%FN&FbqFdoFNFNFNFN*&,&FbtFNFNFNFNFctFN
FJ/FK;FNFct&FjpFdo/Fbt;""!,&-FC6$&FbqFJ/FK;FN,&FZFN!""FNFNFcuFN>8)-F[o6$f*6#%"q
G6#F4F>F>-Fbs6$-%&coeffG6%FZ&T$6#T&FK/FK;F[u,&&T'FcvFNFcuFNF>F>6(F2FjpF&FZF;Fbq
F_s>8*7#-Fbs6$-Fbs6$&Feu6#,&*&FKFNFctFNFNFbtFN/FKFjt/FbtFgt>8&F]u@%Fgp-F[s6#-%)
simplifyG6#-%$addG6$*&-F"6&Fbu&F\w6#;,&*&,&FKFNFcuFNFNFiwFNFNFNFN*&FKFNFiwFN&FI
6#;FN!"#&FjpF^yFN)FhtF[yFNFft-F[s6#-F^x6#-Fax6$*&-F"6&FbuFfxF]yFjpFNFbyFNFftF>F
>F>F>
M7R0
IAInvolutive/pnormal_form_Z_nonnegf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_va
rG6+%"aG%"hG%"iG%"lG%"rG%#lmG%$divG%*zero_listG%.rhs_zero_listG6#%jnCopyright~(
C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C*>%(_nnformG,&F:"""F<F<
>8%9$>8+7#-%"$G6$""!-%%nopsG6#&F>6#F<>8,7#-FD6$FF-FH6#&F>6#""#>8(7$FAFM>8)-9'FI
?(F7F<F<F70&FZ6$FUF<FFC'>8&F<>8*%&falseG?(F7F<F<F731F]o-FH6#9%4F_oC$@$-%7Involu
tive/pinv_divideG6%&Ffo6$F]o""$&Ffo6$F]o""&&FZFKC%>%'_reducG,&FfpF<F<F<>8'-%%iq
uoG6$Fin&Ffo6%F]o""'F<@&0FipFFC$>F>7$-%'normalG6#,&FJF<-%$mapG6$f*6#F,F76$%)ope
ratorG%&arrowGF7**T#F<&T%6$FUFUF<&T(6%T)F_qFU!""F?F<F7F76*F/FipF1FZF&FfoF.F]o&F
fo6%F]oF<F<Fjr-Ffq6#,&FSF<-Fjq6$f*F]rF7F^rF7FarF7F7F[s&Ffo6%F]oF<FUFjr>F_o%%tru
eG/-%%signG6#FinFjrC$>F>7$-Ffq6#,&FJF<-Fjq6$f*F]rF7F^rF7**-Fjs6#&T$6%FdrF_qF<F<
&T'FerF<&Fit6%FdrF_qFUFjrF?F<F7F76(F&FfoF.F]oF1FZF\sF<-Ffq6#,&FSF<-Fjq6$f*F]rF7
F^rF7FetF7F7F_uFdsF<>F_oFgs>F]o,&F]oF<F<F<@$FgoC$>FW7$-%'subsopG6$/&FZ6$F<FU-Ff
q6#,&&&FWFK6#FavF<*&FinF<&FZFerF<F<Fgv&FWFT>F>7$-F^v6$/Fav-Ffq6#,&&FJFhvF<FivFj
rFJFS>FZFen@'3/FgvFA0FSFMC$@$4-%7Involutive/member_multG6%FS%&P_HOMG9&>F`x7$-%#
opG6#F`xFS7$FgvFMFhw7$FAFS7$FgvFSF76%F`xF:FfpF7F7
M7R0
I=Involutive/remove_backquotesf*6#%"SG6$%"iG%"sG6#%jnCopyright~(C)~2000-2010~by
~Daniel~Robertz.~All~rights~reserved.G6"C&>8%9$>8$-%+searchtextG6$Q"`F+F.?(F+""
"F7F+2""!F1C$>F.-%$catG6$&F.6#;F7,&F1F7!""F7&F.6#;,&F1F7F7F7FC>F1F2F.F+F+F+F+
M7R0
IAInvolutive/pdegrevlex_entr_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~
(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(@&2&%,_entrblocksG6#&
9$6#""#&F26#&9%F6-%'RETURNG6#%&falseG2F8F1-F=6#%%trueG>8%-%(convertG6$&F56#"""%
"+G>8&-FG6$&F;FJFL@'2FEFNFA2FNFEF<?(8$-%%nopsG6#FI!""FKFC@&2&FQ6#FV&FIFhnFA2Fin
FgnF<@$2F4F:F<FCF-F-F-F-
M7R0
I7Involutive/pdegrevlex3f*6$%"aG%"bG6"6#%\pCopyright~(C)~2000-2010~by~Carlos~F.
~Cid~and~Daniel~Robertz.~All~rights~reserved.GF'-%6Involutive/pdegrevlexG6$&9$6
#""$&9%F/F'F'F'F'
M7R0
I:Involutive/pnormal_form_Zf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG6,%"a
G%"hG%"iG%"lG%"rG%#lmG%$divG%'n_entrG%*zero_listG%.rhs_zero_listG6#%jnCopyright
~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C+>%(_nnformG,&F;"""F=
F=>8%9$>8+-%%nopsG6#&F?6#F=>8,7#-%"$G6$""!FB>8-7#-FL6$FN-FD6#&F?6#""#>8(7$FIFP>
8)-9'FE?(F8F=F=F80&Fgn6$FXF=FNC'>8&F=>8*%&falseG?(F8F=F=F831F`o-FD6#9%4FboC$@$-
%7Involutive/pinv_divideG6%&Fio6$F`o""$&Fio6$F`o""&&FgnFGC%>%'_reducG,&FipF=F=F
=>8'-%%iquoG6$F\o&Fio6%F`o""'F=@$0F\qFNC$>F?7$-%'normalG6#,&FFF=-%$mapG6$f*6#F,
F86$%)operatorG%&arrowGF8**T#F=&T%6$FXFXF=&T(6%T)FbqFX!""F@F=F8F86*F/F\qF1FgnF&
FioF.F`o&Fio6%F`oF=F=F]s-Fiq6#,&FVF=-F]r6$f*F`rF8FarF8FdrF8F8F^s&Fio6%F`oF=FXF]
s>Fbo%%trueG>F`o,&F`oF=F=F=@$FjoC$>FZ7$-%'subsopG6$/&Fgn6$F=FX-Fiq6#,&&&FZFG6#F
etF=*&F\oF=&FgnFhrF=F=F[u&FZFW>F?7$-Fbt6$/Fet-Fiq6#,&&FFF\uF=F]uF]sFFFV>FgnFhn@
'3/F[uFI0FVFPC$@$4-%7Involutive/member_multG6%FV%&P_HOMG9&>Fdv7$-%#opG6#FdvFV7$
F[uFPF\v7$FIFV7$F[uFVF86%FdvF;FipF8F8
M7R0
I9Involutive/PommaretBasisf*6#'%$varG%%listG6$%"iG%"nG6#%jnCopyright~(C)~2007-2
010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@$2"""9#-%&ERRORG6#%gqplease~ru
n~InvolutiveBasis~first,~then~call~'PommaretBasis'~with~the~list~of~variables~a
s~the~only~argument.G@$4-%)assignedG6#%)P_T_ListG-F46#%Umissing~involutive~basi
s;~run~InvolutiveBasis~first.G@$%5Involutive/janetlikeG-F46#%Mnot~implemented~y
et~for~Janet-like~division.G>8%-%%nopsG6#%+PolTab_VarG?(8$F1F1FF%%trueG-%&print
G6#7%&&FJ6#FL6#F1-%5Involutive/pmult_varG6$-%4Involutive/pomm_divG6#&F<6$FL""$9
$&FS6#FhnF-F-F-F-
M7R0
I9Involutive/is_janet_elemf*6%%"pG%"bG%"vG6%%"iG%"qG%#lmG6#%jnCopyright~(C)~200
6-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&@$0-%@Involutive/count_non_b
asis_elemG6%9$9%9&"""-%'RETURNG6#%&falseG>8&-%6Involutive/gb_leadmonGF.?&8$F7%%
trueGC$>8%*&&-F>6$&F56#F8-%%tdegG6#-%#opG6#F76#""#F8FB!""@$3-%%typeG6$FF%(polyn
omG/-F36%7#FFF6F7""!-F:6#FCF9F.F.F.F.
M7R0
I?Involutive/InvolutiveBasisFastf*6#%"LG6C%"cG%"iG%"jG%"lG%"rG%"vG%%fextG%'n_en
trG%)rhs_entrG%'no_rhsG%"FG%"RG%#IBG%$varG%(var_ordG%'vt_degG%(deg_ordG%$POTG%)
tup_permG%-inv_tup_permG%&m_ordG%(do_normG%+time_boundG%#trG%)entr_posG%+trans_
elemG%*quietmodeG%%voffG%*donotreadG%+tracedenomG%*nowarningG%*outoftimeG%)dola
unchG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"Cgn
@$0%7Involutive/initializedG.%%trueG-%0Involutive/initGFJ?(8%"""FU9#FP@$3-%%typ
eG6$&9"6#FT%)equationG/-%#opG6$FUFfnQ)GroebnerFJC$@$4-FZ6$-F\o6$""#Ffn%(boolean
G-%&ERRORG6#%Oexpecting~boolean~value~for~option~"Groebner".G@$/FdoFP-%'RETURNG
6#-%=Involutive/GroebnerBasisFastG6#Fgn>8.-%6Involutive/proc_inputG6#9$>8+&Fep6
#FU>8,&Fep6#Ffo>8-&Fep6#""$@$&Fep6#""&-Fio6#%\oInvolutiveBasisFast~cannot~compu
te~in~algebraic~field~extensions.G>8=&Fep6#""(>Fep-%'expandG6#&Fep6#""%@%332Ffo
FV-FZ6$&FgnFeq%%listG4-FZ6$F`s-Fas6#%(integerGC)>81F`s>8/-Fgp6#&FgnFaq@$2FU&F\t
F]q-Fio6#%Xexpecting~list~of~relations~for~the~residue~class~ring.G@$4&F\tFeq-F
io6#%foright~hand~sides~for~relations~of~the~residue~class~ring~are~not~support
ed.G>F\t-Fer6#&F\tFhr@%/&F\t6$FUFU7#""!>F\t7">Fep7$-F\o6#Fep-%$seqG6$-F]v6$7$-%
'subsopG6$/FT&F\t6%8&FUFU7#-%"$G6$FeuF[q7#-F[w6$FeuF_q/FT;FUF[q/Fhv;FU-%%nopsG6
#F\t>8(FirC&@$2FVFfo-Fio6#%Pexpecting~list~of~variables~as~second~argument.G>Fj
sF_t>F\tFgu>FhwFfq>Fjs-%5Involutive/proc_varsG6$FjsF[q>82&FjsFaq>83&FjsFeq>84&F
jsFhr>86&FjsFiq>8<&Fjs6#""'>Fjs&FjsF]q>%&_nvarG-Few6#Fjs@$0-%&minusG6$<#-F\o6#F
_r<#-F\oF\z<"-Fio6#%Nno~parameters~allowed~in~InvolutiveBasisFast.G>8)-%(conver
tG6$-%+kerneloptsG6#%(versionG%'stringG@$30-%*substringG6$F\[l;FUFbrQ(Maple~VFJ
4-FZ6$Fep-%)listlistG6#-Fas6#-%(polynomG6$%)rationalGFjs-Fio6#-%$catG6&%Mexpect
ing~list~of~(lists~of)~polynomials~in~G-F\o6#-%$mapG6$f*6#F+FJ6$%)operatorG%&ar
rowGFJ-F\]l6$-F^[l6$FipFd[lQ",FJFJFJFJ&Fjs6#;FU!"#-F^[l6$&Fjs6#!""Fd[l%".G>8$%2
Involutive/characG@%/FgxFgu>88Fir>F^_l7#-F[w6$Fir-Few6#Fgx>89FP>8*Q!FJ>8:Feu>8;
%&falseG>8>-%&evalbG6#52Feu-%+searchtextG6$Q&APPLEFJF\[l/-Fi[l6$-F^[l6$-%*inter
faceG6#.Fc[lFd[l;FU"#GQ=Standard~Worksheet~InterfaceFJ>8?FP>8@F^`l>8AF^`l>8BF^`
l>8CF^`l>8DF^`l?(FTFhwFUFVFP@)5-FZ6$FfnFgs-FZ6$FfnFas>F^_lFfn-FZ6$FfnFd[l@+/Ffn
Q/tracerelationsFJ>F]`lFP/FfnQ*donotreadFJ>FialFP/FfnQ&denomFJ>F[blFP/FfnQ'laun
chFJ>FablFPC$>8'Ffn?(FhvFUFU-%'lengthG6#F[dlFP@&/&F[dl6#FhvQ"NFJ>Ff_lF^`l0FbdlF
i_l-Fio6#%0invalid~option.GFY@7/F[oQ%NameFJC$@$4-FZ6$FdoFd[l-Fio6#%Fexpecting~a
~string~for~option~"Name".G>Fh_lFdo/F[oQ%charFJC$@$4-FZ6$Fdo%*nonnegintG-Fio6#%
Qexpecting~0~or~a~prime~number~for~option~"char".G>Fi^lFdo/F[oQ%timeFJC$@$Fjel-
Fio6#%Sexpecting~time~bound~in~seconds~for~option~"time".G>F[`lFdo/F[oQ&quietFJ
C$@$Fao-Fio6#%Lexpecting~boolean~value~for~option~"quiet".G>F``lFdo/F[oQ(verbos
eFJ@'/FdoQ#onFJ>FgalF^`l/FdoQ$offFJ>FgalFP-Fio6#%?expecting~string~"on"~or~"off
"G/F[oFaclC$@$Fao-Fio6#%Pexpecting~boolean~value~for~option~"donotread".G>FialF
do/F[oQ*nowarningFJC$@$Fao-Fio6#%Pexpecting~boolean~value~for~option~"nowarning
".G>F]blFdo/F[oFdclC$@$Fao-Fio6#%Lexpecting~boolean~value~for~option~"denom".G>
F[blFdoFjnFJ/F[oQ.tailreductionFJFJFgdlFgdl@$5530F^_lFfo0F^_lFir2FU-Few6#Fcy3/F
]jlFU0&FcyF]qF[q-F_p6#-%4Involutive/InvBasisGFcp@$0FgxFgu-Fio6#%[oUp~to~now,~on
ly~degrevlex~is~implemented~in~InvolutiveBasisFast.G>F[dl-%4Involutive/proc_ord
G6*F^_lFjsFgxFjxF]yFjsFcyFP>85&F[dlFhr@%0F`y7#-F[w6#FawC$>87-Fb]l6$f*6#F(6#F)FJ
FJC$-%'memberG6%FipT#.Fi^lFi^lFJFJ6$F9F`yFe[m>Fep-Fb]l6$f*F^\mF_\mFJFJ-Fcv6$/FU
7#-F]v6$&&FipF]q6#&Fd\m6#Fi^l/Fi^l;FUT%FipFJFJ6&F9F`yF.F[qFep>Fj[mF`y>%)_inv_de
nGFgu>%&P_HOMGFgu@$0F\tFguC$-%7Involutive/cppInvBasisG65F\tFjsFUFPFi^lF^`l&Fjx6
#;FUFjyFduFe[mQ'__ringFJFeuF^`lFPFPF^`lF^`lQHinvbasis,invbasislm,invbasisanc,mu
ltvarFJF]blF^`l@$3-%)assignedG6#%6_IB_RESULTout_of_timeGF__m>F_blFP>80-Fc^m65Fe
pFjsF[qFcqFi^lFa[mFe^m&Fjx6#;,&FjyFUFUFU,&FjyFUF[qFUFj[mFh_lF[`lF]`lF``lFgalFia
lF[blFguF]blFabl@$F[_m>F_blFP>%(_nnformGFeu>%'_reducGFeu>%'_crit1GFeu>%'_crit2G
Feu>%'_crit3GFeu>%'_crit4GFeu@$5FialFabl-F_p6#-F\o6#Fb_m@$F[bl>F\^m%*_JB_denomG
@%330&Fb_mF]qFdu52FU-Few6#Feam0-Fb]l6$f*F^\mFJFf]lFJ-%'removeG6%%$hasGFipFeuFJF
JFJFeam7#FguFf_l@%%4Involutive/ratcoeffGC$@$F[bl>F\^m7$-F\o6#F\^m-F\o6#-Fb]l6$f
*F^\mFJFf]lFJ@$0&Fb]mF]qFUFbcmFJFJFJ&Fb_mFeq@%/Fi^lFeu>Fb_m7#-F]v6$-Fer6#*&&Fea
mFhnFU&&&FccmFhnF]qF]qFf^l/FT;FUFham>Fb_m7#-F]v6$-Fer6#*&-%$modG6$*$F^dmFf^lFi^
lFUF]dmFUFadm>Fb_m-%$zipG6%f*6$F(F)FJFf]lFJ@%-FZ6$&&9%F]qF]q%'negintG-Fer6#,$Fi
pFf^lFipFJFJFJFeamFccm>Fb_mFeam@$Fd[m>Fb_m-Fb]l6$f*F^\mF_\mFJFJ7$-F]v6$&FipFc]m
Ff]m-F]v6$&FipFe]m/Fi^l;,&Fh]mFUFUFU-FewFhpFJFJ6&F:Fj[mF.F[qFb_m@$4Fcq@%/F[qFU@
%/F_qFUC&@%/F\tFgu>Fep-Fb]l6$f*F^\mFJFf]lFJ@%/Fb]mFeu@%0&Fip6#,&Fd\mFUFUFUFeuFU
FeuFf^lFJFJ6$F.F[qFb_m>Fep-Fb]l6$f*F^\mFJFf]lFJ@%F`hm@%5F^hm/-%8Involutive/cppI
nvReduceG6%7#Fb]mFh^mFPFduFUFf^l@%F^hmFeuFf^lFJFJFdhmFb_m>F^^m-Fb]l6$f*F^\mFJFf
]lFJ@$/&Fd\mFhpFU&&Fh]mFhp6#,&T'FUFUFUFJFJ6(F1FepF3Fb_mF.F[q7#-F[w6#;FU-FewF[v>
Fb_m-Fb]l6$f*F^\mFJFf]lFJ@$/FhimFf^l/&FjimF]qFiimFJFJF^jmF_jm@$/Fb_mFgu>Fb_m7#/
FeuFeuC&@%Fhgm>Fep-Fb]l6$f*F^\mFJFf]lFJ@%F^hm@%0&Fip6#;Fchm,&Fd\mFUFh]mFU7#-F[w
6$FeuFh]mFUFeuFf^lFJFJ6&F.F[qF/F_qFb_m>Fep-Fb]l6$f*F^\mFJFf]lFJ@%Fi[n@%F[imFUFf
^l@%F^hmFeuFf^lFJFJFa\nFb_m>F^^m-Fb]l6$f*F^\mFJFf]lFJ@$Fgim&Fjim6#;F\jm,&F]jmFU
T)FUFJFJ6*F1FepF3Fb_mF.F[qF/F_qF_jm>Fb_m-Fb]l6$f*F^\mFJFf]lFJ@$Fijm/F[[nF^]nFJF
JFc]nF_jm@$F][n>Fb_m7#/FeuF]w@%FegmC&@%Fhgm>Fep-Fb]l6$f*F^\mFJFf]lFJ@%/&Fip6#;F
UFd\m7#-F[w6$FeuFd\m@%F`hmFUFeuFf^lFJFJFdhmFb_m>Fep-Fb]l6$f*F^\mFJFf]lFJ@%F`hm@
%5Ff^n3/-%*numboccurG6$Fg^nFeu,&Fd\mFUFf^lFU/-F^im6%7#-F\o6#-F`z6$<#-F\o6#Fg^n<
#FeuFh^mFPFduFUFf^l@%Ff^nFeuFf^lFJFJFdhmFb_m>F^^m-Fb]l6$f*F^\mFJFf]lFJ@$FgimFii
mFJFJF^jmF_jm>Fb_m-Fb]l6$f*F^\mFJFf]lFJ@$Fijm/&Fjim6#;FUF]jmFiimFJFJF^jmF_jm@$F
][n>Fb_m7#/FivFeuC&@%Fhgm>Fep-Fb]l6$f*F^\mFJFf]lFJ@%Ff^n@%Fi[nFUFeuFf^lFJFJFa\n
Fb_m>Fep-Fb]l6$f*F^\mFJFf]lFJ@%Fi[n@%Fd_nFUFf^l@%Ff^nFeuFf^lFJFJFa\nFb_m>F^^m-F
b]l6$f*F^\mFJFf]lFJ@$FgimF^]nFJFJFc]nF_jm>Fb_m-Fb]l6$f*F^\mFJFf]lFJ@$Fijm/FcanF
^]nFJFJFc]nF_jm@$F][n>Fb_m7#/FivF]w@$-F]_m6#%*_JB_compaG@%Fegm>F^^m7$-F\o6#F^^m
-F\o6#-Fb]l6$F\oF[dn>F^^m7$F_dn-F\oFjcn@$4F[bl>F\^m.F\^m@%32FeuF[`lF]bl7$Fb_m4F
_blFb_mFJ6+FjyF_`mF]`mFa`mFc`mFe`mFg`mF^^mF\^mFJFJ
M7R0
I8Involutive/Annihilator1f*6%%"pG%"LG'%$varG%%listG6)%"aG%"iG%"nG%'n_entrG%#L2G
%"MG%"SG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"
C$@%5-%%typeG6$9$F)-F96$9%%'matrixGC&>8(-%6Involutive/proc_inputG6#F>>8'&FB6#""
"@%-F96$F;%)listlistG>8)7$-%$mapG6$%#opGF;-%$seqG6$-FW6$7%-%"$G6$""!*&8$FJFGFJ-
FU6#&&&FB6#""%6#8%FI-Fgn6$Fin*&,(-%%nopsG6#F;FJF[o!""F\pFJFJFGFJ/Fdo;FJ-Fjo6#F`
o/F[o;Fin,&FioFJF\pFJ@'2FJFG>FP7$F;-FU6#-FS6$f*6#F+F46$%)operatorG%&arrowGF4&F;
FIF4F4F4F`oF8>FP7$F;-FW6$-FW6$7%-Fgn6$FinF[oF\o-Fgn6$FinFhoF]pFap>FP7$F;-FU6#-F
S6$f*F]qF4F^qF4-FU6#FaqF4F4F4F`o>8*-%8Involutive/SyzygyModuleG6$FP9&C$@$4-F96$F
>F)-%&ERRORG6#%enexpecting~a~list~of~module~generators~as~second~parameter.G>Fg
r-Fir6$7$F;-FUFEF[s@%-F96$FgrFN-%;Involutive/InvolutiveBasisG6%-FS6$f*F]qF4F^qF
4FaqF4F4F4FgrF[s&9"6#;FboF\pFgrF4F4F4F4
M7R0
I7Involutive/pmaxmin_degf*6#%"TG6&%"aG%"vG%%maxdG%%mindG6#%jnCopyright~(C)~2007
-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8&""!>8'%)infinityG@%%5Invol
utive/janetlikeG?&8%9$%%trueGC%>8$,&-%(convertG6$&F86$""$"""%"+GFE-F@6$-%%subsG
6$/F4F1&F86#""&FFFE@$2F0F=>F0F=@$2F=F3>F3F=?&F8F9F:C%>F=F?@$FQ>F0F=@$FT>F3F=6$F
0F3F-F-F-F-
M7R0
I5Involutive/CoeffListf*6%%"pG'%%varsG%%listG%#FBG6-%"aG%"iG%"jG%"lG%'n_entrG%$
varG%'vt_degG%$cmpG%"BG%"FG%%multG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robert
z.~All~rights~reserved.G6"C*@$5/9&7"/F=""!-%&ERRORG6#%Hexpecting~non-empty~vect
or~space~basis.G@%-%%typeG6$9$F(>8(-%%nopsG6#FI>FK""">8)-%5Involutive/proc_vars
G6$9%FK>8*&FR6#""$>FR&FR6#FP>8+&-%4Involutive/proc_ordG6*""%FRF>FXF>FR7#FK%%tru
eG6#""&@'4-FG6$F=F(C%@%-FG6$F=%"+G>8--%%sortG6$-%$mapG6$f*6#F,F86$%)operatorG%&
arrowGF87$-%&numerGFN-%'indetsG6#-%&denomGFNF8F8F8-%(convertGFgof*6$F,F-F8FgpF8
-T#6$&FIFhn&FVFhnF8F86$F2Fjn>F^p7#7$-F\q6#F=-F^q6#-FaqF`r>8.-Fcp6$f*FfpF8FgpF8-
Fcp6$f*6#F-F8FgpF8@%-%$hasG6$&T$6#""#FI%)infinityGF@F8F86$F,FIFgqF8F86$F0FRF^p>
F^p-Fcp6$f*FfpF8FgpF8@%/-%#opG6$FPFiq!"",$FiqFatFiqF8F8F8F^p45-FG6$&F=FhnF(-FG6
$Fgt%(polynomGC%>F^pF>>FerF>?(8$FPFP-FMF`rFaoC%@%-FG6$&F=6#F_uF\p>F^p7$-F_t6#F^
p-F`p6$-Fcp6$f*FfpF8FgpF8FjpF8F8F8-Fcq6$FeuF(f*FeqF8FgpF8FfqF8F8F[r>F^p7$Fiu7#7
$-F\q6#Feu-F^q6#-FaqFhv>Fer7$-F_t6#Fer-Fcp6$f*FfpF8FgpF8-Fcp6$f*F\sF8FgpF8@%F^s
FesF@F8F8FfsFgqF8F8Fgs&F^p6#Fat>F^p-%'subsopG6$/Fat-Fcp6$f*FfpF8FgpF8@%F]tFbtFi
qF8F8F8FgwF^pC$>Fer%%NULLG>F^pF=@%/FKFPC$@$0&F^pFhnFP-FB6#%jnexpecting~third~ar
gument~to~be~the~result~of~FactorModuleBasis.G@%/FerFdx-%:Involutive/monomcoeff
listG6%FIFRF^p-%>Involutive/monomcoefflistmultG6&FIFRF^pFerC'>8'7#-%$seqG6$,&FK
FP8%Fat/F_z;F@,&FKFPFatFP@%F`yC%>8,7#-%"$G6$F>FK>8&FK?(F_zFPFP-FMFjuFaoC%?(F8FP
FPF831FPF\[l/&&F^p6#F_z6#F\[lF@>F\[l,&F\[lFPFatFP@$2F\[lFPF\y>Ffz-F[x6$/F\[l7$-
F_t6#&FfzFg[lFd[lFfz>FfzF^p@$0<#-F_t6#-Fcp6$f*FfpF8FgpF8FiqF8F8F8Ffz<#FPF\y@%F`
y>F^p-%8Involutive/tupcoefflistG6&FIFRFfzFiy>F^p-%<Involutive/tupcoefflistmultG
6'FIFRFfzFerFiy@%4-FG6$F^p-F(6#F(F^p-Fcp6$F_tF^pF8F8F8F8
M7R0
I6Involutive/PolTorsionf*6$%$_R1G'%$varG%%listG6$%#R1G%#R0G6#%^pCopyright~(C)~2
003-2010~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.G6"C%>8$-%5
Involutive/jetsmkmatG6#-%$mapG6$f*6#%"aGF.6$%)operatorG%&arrowGF.&9$6#"""F.F.F.
&-%6Involutive/proc_inputG6#F?6#""%>8%-%>Involutive/PolParametrizationG6$F19%@%
2""#9#-%5Involutive/PolDefectG6&F1FIFM&9"6#""$-FS6%F1FIFMF.F.F.F.
M7R0
I2Involutive/PolDetf*6#%"AG6+%"iG%"jG%"nG%"uG%.StuetzstellenG%/StuetzstellenLG%
)SubsListG%+MatrixListG%(DetListG6#%[oCopyright~(C)~2007-2010~by~Moritz~Schroee
r.~All~rights~reserved.G6"C,@$-%$hasG6$-%(convertG6$-%$mapG6$f*6#%"xGF26$%)oper
atorG%&arrowGF2-%%typeG6$9$%(polynomGF2F2F2FG%$setG%&falseG-%&ERRORG6#%;Matrix~
must~be~polynomial.G>8'-F96$-%'indetsG6#-F96$FG%)listlistG%%listG>8&-%%nopsG6#F
P>8(7#-%$seqG6$7#-F]o6$-&%,RandomToolsG6#%)GenerateG6#-%(integerG6#/%&rangeG;"(
+++"".++++++"/8%;""",&-%0Involutive/mdegG6$FG&FP6#8$FcpFcpFcp/Fjp;FcpFen?(F2Fcp
FcpF20-Fgn6#Fjn-Fgn6#-F96$FjnFI>FjnF[o>8)-%4Involutive/kartprodG6#7#-F]o6$&FjnF
ipF[q>8*-F<6$f*6#%"XG6#F'F2F27#-F]o6$/&T#Fip&FGFip/Fjp;FcpT%F2F26&F*FPF)FenFgq>
8+-F<6$f*FdrF2FAF2-%%subsG6$FGT$F2F26$F%FGF`r>8,-F<6$f*6#%"MGF2FAF2-&%.LinearAl
gebraG6#%,DeterminantG6#FGF2F2F2Fcs-%9Involutive/MVPolInterpolG6&FenF]tFjnFPF2F
2F2F2
M7R0
I8Involutive/invred_localf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmprocG%
(loc_varG6'%+save_rhs_hG%"hG%"FG%"uG%%modeG6#%boCopyright~(C)~2008-2010~by~Mark
us~Lange-Hegermann.~All~rights~reserved.G6"C-@%2""(9#@%3-%%typeG6$&9"6#"")%(int
egerG/-%$modG6$F?""%""!>8(F?-%&ERRORG6#Q0wrong~argumentsF4>FKFI>8%9$>8&9%>8$&FR
6#""#>FY7$-%"$G6$FI-%%nopsG6#FY""">FU-%$mapG6$f*6#%"aGF46$%)operatorG%&arrowGF4
-%'subsopG6$/F^o7$&FS6$F^oF^o7$-%#opG6#&FS6$F^oFenFIFSF4F4F4FU>FR-%>Involutive/
pnormal_form_localG6)FRFU9(9)%:Involutive/simp_prim_partG9*,&FKF^oFenF^o>8'&FY6
#!"">FY,&-%'expandG6#*&&FR6$Fen;F^o!"#F^oF`qFcqF^oFXF^o>&FR6#F^o-Fgq6#*&F_rF^oF
`qFcq-%'RETURNG6#7#FRF4F4F4F4
M7R0
I>Involutive/invred_evala_localf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG6
"6#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~rights~reserved.GF
+-%'RETURNG6#-%>Involutive/pnormal_form_localG6)9$9%9&9'9(9)"#;F+F+F+F+
M7R0
IEhomalg/Involutive/PolInvoReduceLocalf*6%%#_pG%#_MG%$varG6&%"MG%"vG%"pG%$resG6
#%epCopyright~(C)~2004-2010~by~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~r
ights~reserved.G6"C&>8$-%6homalg/NormalizeInputG6$9%%+InvolutiveG>8%-%5homalg/N
ormalizeRingG6$9&F7@%55-%%typeG6$9$%)listlistG-FB6$FD-%%listG6#%"=G0-%%nopsG6#-
%5Involutive/RemoveRHSG6#FD-FN6#-FQ6#&F26#"""C%>8'-%>Involutive/LocalBasisIdent
ityG6$7$-%#opGFR-F\o6#F2F=>8&&Ffn6#;FY-FNFR>F2&Ffn6#;,&FdoFYFYFY!""C%>Ffn-Fhn6$
7$FDF]oF=>F`o&FfnFX>F2&Ffn6#;""#Fjo@%/&F96#Ffp7"-%8Involutive/PolInvReduceG6&F`
oF2&F9FX!"%-F]q6'F`oF2FipF_qF`qF/F/F/F/
M7R0
I6Involutive/ginv2Basisf*6E'%"FG%%listG%$varG%)alg_elemG%(tr_elemG%'n_entrG%)rh
s_entrG%'no_rhsG%"cG%&m_ordG%(var_ordG%)entr_posG%'vardegG%'tupdegG%(algextsG%-
algextindetsG%/transextindetsG%%fextG%1extendbasis_fextG%%algoG%+time_boundG%#t
rG%*quietmodeG%#GBG%*donotreadG%*nowarningG%+tracedenomG%+movedboundG%-qlengthb
oundG%,degreeboundG%,whichoutputG%)tup_permG%(do_normG%(rootofsG%)radicalsG%)do
launchG6,%%fileG%&fnameG%-extend_fnameG%"iG%"rG%"tG%%nvarG%+trans_elemG%'std_ws
G%"SG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"CJ@
%9*@$2"'++59(-%&ERRORG6#%Alength~of~tuples~exceeds~100000.G@$2Fgn,&Fhn"""-%%nop
sG6#&&9$6#F`o6#""#F`oFin>8*-Fbo6#9%>8+-%'removeG6$f*6#FNFW6$%)operatorG%&arrowG
FW-%'memberG6$FfoT$FWFW6$F5929'@$0907#-%"$G6$""!Fhn-Fjn6#%Yup~to~now,~no~degree
s~can~be~assigned~to~tuples~in~ginv.G@$2Fio-Fbo6#9--Fjn6#%bpup~to~now,~only~two
~blocks~of~variables~for~elimination~ordering~are~supported~by~ginv.G@$2Fio-Fbo
6#9.-Fjn6#%_pup~to~now,~only~two~blocks~of~tuples~for~elimination~ordering~are~
supported~by~ginv.G@$32Fio,&-Fbo6#F`pF`o-Fbo6#93F`o0%2Involutive/characGFgq-Fjn
6#%_qup~to~now,~transcendental~extensions~of~degree~greater~than~2~are~only~sup
ported~over~the~rationals.G@'2Fgq-%+searchtextG6$Q&linuxFW-%+kerneloptsG6#%(ver
sionGC$@%/-F`t6#%)wordsizeG"#k@$2"+[O[Z@9+-Fjn6#%?characteristic~must~be~<~2^31
.G@$2"&oF$F]u-Fjn6#%?characteristic~must~be~<~2^15.G@%/-%*substringG6$-%(conver
tG6$-%*interfaceG6#.Fbt%'stringG;F`o"#GQ=Standard~Worksheet~InterfaceFWC$>8%-%C
Involutive/stdinterface_gettmpnameGFW>8,%%trueGC&@$4-%;Involutive/ssystem_boole
anG6#%3test~-d~/tmp/$USERGC$>8(-%(ssystemG6#%1mkdir~/tmp/$USERG@$0&FhwFhoQ!FW-F
jn6#%Ecannot~write~temporary~file~to~/tmp.G>Fiv-Fjw6#%Gecho~/tmp/$USER/Involuti
ve-$PPID-$USERG@%2Fgq-F\t6$Q"$FW&FivFho>FivQ0/tmp/InvolutiveFW>Fiv-%=Involutive
/remove_whitespaceG6#F]y>F]w%&falseG2Fgq-F\t6$Q&APPLEFWF_tC%@$FbuFdu>FivFjv>F]w
F^wC%@$FbuFdu>FivQ1\TEMP\InvolutiveFW>F]wFey@$095F`x>8&-%$catG6%FivFezQ(.binary
FW@$9FC&>Fhw-F]v6$F_tFcv@$5550-Fju6$Fhw;F`o""(Q(Maple~1FW/-Fju6$Fhw;F`o"")Q)Map
le~10FW/F]\lQ)Maple~11FW/F]\lQ)Maple~12FW-Fjn6#%Ucan~only~'launch'~GINV~in~Mapl
e~version~13~or~newer.G>Fiv-Fiz6%FivQ(-launchFW-F]v6$%;Involutive/launchGINVcou
ntGFcv>F_]l,&F_]lF`oF`oF`o>Fiv-Fiz6$Fiv94>8$-%&fopenG6$Fiv%&WRITEG-%<Involutive
/writeGINV2headerG63Fg]lF^p9&F`pFhn9)FZF]u9,F_rFgr9/Fbq91F^qFcs9=-%(fprintfG6$F
g]lQ*eqs~=~[\|+FW?(8'F`oF`o-Fbo6#FfoF^wC&@%FZ@%/FhnF`o>8--Fiz6$-F]v6$-%#opG6#&F
fo6$Fj^lF`oFcvQ"~FW>Fb_l-F]v6$Fj_lFcv>Fb_l-F]v6$-%$mapG6$Fh_l&Ffo6#Fj^lFcv?(FWF
`oF`oFW2Fgn-%'lengthG6#Fb_lC&>Fhw-F\t6$Q"|+FWFb_l?(FWF`oF`oFW2FgqFhwC&@%32F`oFh
w/&Fb_l6#,&FhwF`o!""F`oQ"\FW-Ff^l6%Fg]lQ#%aFW-Fju6$Fb_l;F`o,&FhwF`o!"#F`o-Ff^l6
%Fg]lF`bl-Fju6$Fb_l;F`oF[bl-Ff^l6$Fg]lQ#\|+FW>Fb_l-Fju6$Fb_l;,&FhwF`oF`oF`oF\bl
>FhwF_al-Ff^l6%Fg]lF`blFb_l>Fb_lF`x@$2FgqFj`lFdcl@$2Fj^lF[_l-Ff^l6$Fg]lQ$,\|+FW
-Ff^l6$Fg]lQ#]|+FW@$4%4Involutive/ratcoeffG@%3F`_lFZ-Ff^l6$Fg]lQineqs~=~map(lam
bda~eq:~"("~+~eq.encode('latin1')~+~")*@~",~eqs)|+FW-Ff^l6$Fg]l-Fiz6%QReqs~=~ma
p(lambda~eq:~(ginv.Poly(ip,~eq)).prolong(FW-F]v6$F[pFcvQ)),~eqs)|+FW@$FdzC(-Ff^
l6$Fg]lQ<oldbasis~=~ginv.basisLoad("FW-Ff^l6$Fg]lFgz-Ff^l6$Fg]lQ.",~"TQ",~iD)|+
FW-Ff^l6$Fg]lQ=for~i~in~oldbasis.iterIB():|+FW-Ff^l6$Fg]lQ1~~eqs.append(i)|+FW-
Ff^l6$Fg]lQ.del~oldbasis|+FW>Fb_lQ:basis~=~ginv.basisBuild("FW@%096F`x>Fb_l-Fiz
6$Fb_lFhfl@%333/F_r7"5/Fa^lFio/Fa^l""%5/FgrFagl3/FerF`o/&FgrFgoFhn/Fb^l7#-Feq6$
F`oF[p>Fb_l-Fiz6$Fb_lQ)TQDegreeFW>Fb_l-Fiz6$Fb_lQ#TQFW>Fb_l-Fiz6$Fb_lQ(",~iD,~F
W@%52Fgq9>2Fgq9?C0-Ff^l6$Fg]lQWeqs2~=~[]|+for~i~in~eqs:|+~~~~eqs2.append(i)|+ru
nden~=~0|+FW-Ff^l6$Fg]lQ-while~True:|+FW-Ff^l6$Fg]lQX~~~~runden~=~runden+1|+~~~
~print~"NEUE~RUNDE:~",~runden|+FW-Ff^l6$Fg]lQbo~~~~print~"Eingabe:~",~len(eqs),
~"~letzte~Basis:~",~len(eqs2)-len(eqs)|+FW@%F^il@%F`ilC&-Ff^l6$Fg]l-Fiz6%Q%~~~~
FWFb_lQ2eqs2,~MovedBound=FW-Ff^l6$Fg]l-F]v6$F_ilFcv-Ff^l6$Fg]lQ0,~QlengthBound=
FW-Ff^l6$Fg]l-F]v6$FailFcvC$FbjlFhjlC$-Ff^l6$Fg]l-Fiz6%FfjlFb_lQ4eqs2,~QlengthB
ound=FWF_[m@$2Fgq97C$-Ff^l6$Fg]lQ(,~time=FW-Ff^l6$Fg]l-F]v6$F\\mFcv@$2Fgq9@C$-F
f^l6$Fg]lQ/,~DegreeBound=FW-Ff^l6$Fg]l-F]v6$Fg\mFcv@$99-Ff^l6$Fg]lQ*,~quiet=1FW
@$%2Involutive/absremG-Ff^l6$Fg]lQ@,~absolutelySmallestRemainder=1FW-Ff^l6$Fg]l
Q6,~skipHilbertPoly=1)|+FW@%F[\m-Ff^l6$Fg]lQio~~~~if~not~basis.computationInter
rupted()~or~basis.outOfTime():|+~~~~~~~~break|+FW-Ff^l6$Fg]lQZ~~~~if~not~basis.
computationInterrupted():|+~~~~~~~~break|+FW-Ff^l6$Fg]lQN~~~~del~eqs2|+~~~~eqs2
~=~[]|+~~~~for~i~in~eqs:|+FW-Ff^l6$Fg]lQU~~~~~~~~eqs2.append(i)|+~~~~for~i~in~b
asis.iterIB():|+FW-Ff^l6$Fg]lQR~~~~~~~~eqs2.append(str(i)~+~'~')|+~~~~del~basis
|+|+FWC'-Ff^l6$Fg]l-Fiz6$Fb_lQ$eqsFW@$F[\mC$F^\mFa\m@$Ff\mC$Fi\mF\]m@$Ff]mFg]mF
j]m-Ff^l6$Fg]lQ1ginv.basisSave("FW-Ff^l6$Fg]l-Fiz6$FivF[[l-Ff^l6$Fg]lQ+",~basis
)|+FW-Ff^l6$Fg]lQ+f~=~file("FW-Ff^l6$Fg]l-Fiz6$FivQ'.janetFW-Ff^l6$Fg]lQ)",~"w"
)|+FW@%9;CJ-Ff^l6$Fg]lQ6l~=~basis.lengthIB()|+FW-Ff^l6$Fg]lQ'i~=~1|+FW-Ff^l6$Fg
]lQ1for~p~in~basis:|+FW-Ff^l6$Fg]lQ/~~~~if~i~<~l:|+FW@%Fcdl-Ff^l6$Fg]lQB~~~~~~~
~S~=~"\""+str(p)+"~\",\\"|+FW-Ff^l6$Fg]lQ`o~~~~~~~~S~=~"\""+str(p).replace('*@'
,~'').replace('@',~'1')+"~\",\\"|+FW-Ff^l6$Fg]lQ7~~~~~~~~print~>>~f,~S|+FW-Ff^l
6$Fg]lQ+~~~~else:|+FW@%Fcdl-Ff^l6$Fg]lQ?~~~~~~~~S~=~"\""+str(p)+"~\""|+FW-Ff^l6
$Fg]lQ]o~~~~~~~~S~=~"\""+str(p).replace('*@',~'').replace('@',~'1')+"~\""|+FWFc
bm-Ff^l6$Fg]lQ-~~~~i~=~i+1|+FW-Ff^l6$Fg]lQ+f.close()|+FWFb`m-Ff^l6$Fg]l-Fiz6$Fi
vQ$.lmFWFj`mFcam-Ff^l6$Fg]lQ:for~p~in~basis.iterLm():|+FWFiam@%FcdlF]bmF`bmFcbm
Ffbm@%FcdlFjbmF]cmFcbmF`cm@$Fd^lC/FccmFb`m-Ff^l6$Fg]l-Fiz6$FivQ'.denomFWFj`mFca
m-Ff^l6$Fg]lQ:for~c~in~ic.iterDenom():|+FWFiam-Ff^l6$Fg]lQB~~~~~~~~S~=~"\""+str
(c)+"~\",\\"|+FWFcbmFfbm-Ff^l6$Fg]lQ?~~~~~~~~S~=~"\""+str(c)+"~\""|+FWFcbmF`cm@
$9:C0FccmFb`m-Ff^l6$Fg]l-Fiz6$FivQ$.GBFWFj`m-Ff^l6$Fg]lQ6l~=~basis.lengthGB()|+
FWFcam-Ff^l6$Fg]lQ:for~p~in~basis.iterGB():|+FWFiam@%FcdlF]bmF`bmFcbmFfbm@%Fcdl
FjbmF]cmFcbmF`cm@$3Fcdl5/9AFagl2Fgq-F\t6$Q2factormodulebasisFWFdfmC+-Ff^l6$Fg]l
QTiF~=~ginv.DivisionComplementInterface("Janet",~iw)|+FW-Ff^l6$Fg]lQAF~=~basis.
factorModuleBasis(iF)|+FW-Ff^l6$Fg]lQEprint~>>~f,~"_IB_RESULTfactor~:=~["|+FW-F
f^l6$Fg]lQ4for~m~in~F.iter():|+FW@%FZ@%F`_l-Ff^l6$Fg]lQ8~~~~print~>>~f,~m,~","|
+FW-Ff^l6$Fg]lQR~~~~print~>>~f,~"[",~m,~",",~m.dependVar(),~"],"|+FWC$-Ff^l6$Fg
]l-Fiz6%Q8~~~~if~m.dependVar()~<~FW-F]v6$FhnFcvQ#:|+FW@%F`_l-Ff^l6$Fg]lQ<~~~~~~
~~print~>>~f,~m,~","|+FW-Ff^l6$Fg]lQV~~~~~~~~print~>>~f,~"[",~m,~",",~m.dependV
ar(),~"],"|+FW-Ff^l6$Fg]lQ6print~>>~f,~"NULL]:"|+FW-Ff^l6$Fg]lQLprint~>>~f,~"_I
B_RESULTfactormultvar~:=~["|+FW@%FZC$-Ff^l6$Fg]lQ;for~j~in~F.iterMultVar():|+FW
-Ff^l6$Fg]lQG~~~~print~>>~f,~[1-k~for~k~in~j],~","|+FWC(-Ff^l6$Fg]lQ5j~=~F.iter
MultVar()|+FWFcgmF_hm-Ff^l6$Fg]lQR~~~~~~~~print~>>~f,~[1-k~for~k~in~j.next()],~
","|+FWFfbm-Ff^l6$Fg]lQ2~~~~~~~~j.next()|+FWF^im@$F[\mC'FccmFb`m-Ff^l6$Fg]l-Fiz
6$FivQ+.outoftimeFWFj`m-Ff^l6$Fg]lQDprint~>>~f,~str(basis.outOfTime())|+FWFccmF
b`m-Ff^l6$Fg]l-Fiz6$FivQ&.timeFWFj`m-Ff^l6$Fg]lQFprint~>>~f,~"_IB_RESULTuserTim
e~:=~"|+FW-Ff^l6$Fg]lQCprint~>>~f,~str(basis.userTime())|+FW-Ff^l6$Fg]lQ1print~
>>~f,~":"|+FW-Ff^l6$Fg]lQEprint~>>~f,~"_IB_RESULTsysTime~:=~"|+FW-Ff^l6$Fg]lQBp
rint~>>~f,~str(basis.sysTime())|+FWF[\n-Ff^l6$Fg]lQFprint~>>~f,~"_IB_RESULTreal
Time~:=~"|+FW-Ff^l6$Fg]lQCprint~>>~f,~str(basis.realTime())|+FWF[\nCU@$F[\mC%-F
f^l6$Fg]lQIprint~>>~f,~"_IB_RESULTout_of_time~:=~"|+FWF][nF[\n-Ff^l6$Fg]lQ?prin
t~>>~f,~"_IB_RESULT~:=~["|+FWF`amFcamFfamFiam@%Fcdl-Ff^l6$Fg]lQ<~~~~~~~~print~>
>~f,~p,~","|+FW-Ff^l6$Fg]lQ_o~~~~~~~~print~>>~f,~str(p).replace('*@',~'').repla
ce('@',~'1'),~","|+FWFfbm@%Fcdl-Ff^l6$Fg]lQ7~~~~~~~~print~>>~f,~p|+FW-Ff^l6$Fg]
lQjn~~~~~~~~print~>>~f,~str(p).replace('*@',~'').replace('@',~'1')|+FWF`cm-Ff^l
6$Fg]lQ2print~>>~f,~"]:"|+FW-Ff^l6$Fg]lQAprint~>>~f,~"_IB_RESULTlm~:=~["|+FWFca
m-Ff^l6$Fg]lQ4c~=~basis.iterLc()|+FWF[dmFiam@%Fcdl@%F`_l-Ff^l6$Fg]lQfn~~~~~~~~p
rint~>>~f,~"[[",~c.next(),~",",~p,~"],",~-1,~"],"|+FW-Ff^l6$Fg]lQao~~~~~~~~prin
t~>>~f,~"[[",~c.next(),~",",~p,~"],",~p.dependVar(),~"],"|+FW@%F`_l-Ff^l6$Fg]lQ
_q~~~~~~~~print~>>~f,~"[[",~c.next(),~",",~str(p).replace('*@',~'').replace('@'
,~'1'),~"],",~-1,~"],"|+FW-Ff^l6$Fg]lQjq~~~~~~~~print~>>~f,~"[[",~c.next(),~","
,~str(p).replace('*@',~'').replace('@',~'1'),~"],",~p.dependVar(),~"],"|+FWFfbm
@%Fcdl@%F`_l-Ff^l6$Fg]lQen~~~~~~~~print~>>~f,~"[[",~c.next(),~",",~p,~"],",~-1,
~"]"|+FW-Ff^l6$Fg]lQ`o~~~~~~~~print~>>~f,~"[[",~c.next(),~",",~p,~"],",~p.depen
dVar(),~"]"|+FW@%F`_l-Ff^l6$Fg]lQ^q~~~~~~~~print~>>~f,~"[[",~c.next(),~",",~str
(p).replace('*@',~'').replace('@',~'1'),~"],",~-1,~"]"|+FW-Ff^l6$Fg]lQiq~~~~~~~
~print~>>~f,~"[[",~c.next(),~",",~str(p).replace('*@',~'').replace('@',~'1'),~"
],",~p.dependVar(),~"]"|+FWF`cmFa^n-Ff^l6$Fg]lQBprint~>>~f,~"_IB_RESULTanc~:=~[
"|+FWFcam-Ff^l6$Fg]lQ;for~p~in~basis.iterAnc():|+FWFiam@%Fcdl@%F`_l-Ff^l6$Fg]lQ
K~~~~~~~~print~>>~f,~"[",~p,~",",~-1,~"],"|+FW-Ff^l6$Fg]lQV~~~~~~~~print~>>~f,~
"[",~p,~",",~p.dependVar(),~"],"|+FW@%F`_l-Ff^l6$Fg]lQ^p~~~~~~~~print~>>~f,~"["
,~str(p).replace('*@',~'').replace('@',~'1'),~",",~-1,~"],"|+FW-Ff^l6$Fg]lQip~~
~~~~~~print~>>~f,~"[",~str(p).replace('*@',~'').replace('@',~'1'),~",",~p.depen
dVar(),~"],"|+FWFfbm@%Fcdl@%F`_l-Ff^l6$Fg]lQJ~~~~~~~~print~>>~f,~"[",~p,~",",~-
1,~"]"|+FW-Ff^l6$Fg]lQU~~~~~~~~print~>>~f,~"[",~p,~",",~p.dependVar(),~"]"|+FW@
%F`_l-Ff^l6$Fg]lQ]p~~~~~~~~print~>>~f,~"[",~str(p).replace('*@',~'').replace('@
',~'1'),~",",~-1,~"]"|+FW-Ff^l6$Fg]lQhp~~~~~~~~print~>>~f,~"[",~str(p).replace(
'*@',~'').replace('@',~'1'),~",",~p.dependVar(),~"]"|+FWF`cmFa^n-Ff^l6$Fg]lQFpr
int~>>~f,~"_IB_RESULTmultvar~:=~["|+FWFcam-Ff^l6$Fg]lQ?for~j~in~basis.iterMultV
ar():|+FWFiam-Ff^l6$Fg]lQI~~~~~~~~print~>>~f,~[k~for~k~in~j],~","|+FWFfbm-Ff^l6
$Fg]lQD~~~~~~~~print~>>~f,~[k~for~k~in~j]|+FWF`cmFa^n@$Fd^lC,-Ff^l6$Fg]lQ6l~=~i
c.lengthDenom()|+FW-Ff^l6$Fg]lQDprint~>>~f,~"_IB_RESULTdenom~:=~["|+FWFcamFgdmF
iam-Ff^l6$Fg]lQ<~~~~~~~~print~>>~f,~c,~","|+FWFfbm-Ff^l6$Fg]lQ7~~~~~~~~print~>>
~f,~c|+FWF`cmFa^n@$FaemC,-Ff^l6$Fg]lQAprint~>>~f,~"_IB_RESULTGB~:=~["|+FWFhemFc
amF[fmFiam@%FcdlFd]nFg]nFfbm@%FcdlF[^nF^^nF`cmFa^n@$FafmC+FjfmF]gmF`gmFcgm@%FZ@
%F`_lFhgmF[hmC$F_hm@%F`_lFhhmF[imF^imFaim@%FZC$FfimFiimC(F]jmFcgmF_hmF`jmFfbmFc
jmF^imFe[nFh[nF[\nF^\nFa\nF[\nFd\nFg\nF[\nFccm@$F][lC&Fb`m-Ff^l6$Fg]l-Fiz6$FivQ
'.readyFWFj`mFccm-%'fcloseG6#Fg]l@%F][lC&>Fhw-Fjw6#-Fiz6%Q'rm~-f~FWFivF\fn@$0&F
hwFgoFgq-Fjn6#%>cannot~remove~temporary~file.G>&%:Involutive/GINVlaunchdataG6#F
_]l73FivFhnF`^lFZF]uF^pFb^lFbq9B9D9E9CFaem9<F\\mFd^lFdfm-%'RETURNG6#7$,&F_]lF`o
F\blF`o-&%'systemG6#%'launchG6$Q)runginv2FWFivC$@%Fa]m@%F]wC%>Fhw-Fjw6#-Fiz6$Q*
runginv2~FWFiv@$/Fhw%%NULLG-Fjn6#%Acould~not~run~program~'runginv'.G>FhwFjfnC$>
Fhw-Fjw6#-Fiz6%F]inFivQ-~>~/dev/nullFW@%3/FjfnFgq/F_xF`x>FhwFgq>FhwF`oC$>Fhw-F_
hnFjhn@$F_inFain@$0FhwFgq-Fjn6#%Merror~during~call~of~Python~or~interruption.G@
$FjsC%>Fhw-Fjw6#-Fiz6'Q&if~[~FWFivQ,.janet~-ot~FWFivQ:~];~then~echo~-n~true;~fi
FW@$2Fgq-F[al6#F_x-Fjn6#%dpoutput~file~of~ginv~is~older~than~input~file~(probab
ly,~program~ginv~stopped~abnormally).G@$4F^amC$>Fhw-Fjw6#-Fiz6%Q*filesize~FWFiv
Fi`m@$30FhwF`inF^jnC$>Fj^l-%'sscanfG6$F_xQ#%dFW@$334Fggn2Fgq-FboFg`l2"'++I&Fj^l
Fgo-%(WARNINGG6#Q\oresulting~involutive~basis~is~big;~reading~it~may~take~a~whi
le...FW@$F^am-Fign6#FaglAFg`m@$333Fa]oF[\m-%)assignedG6#%6_IB_RESULTout_of_time
G/Ff^o.%%TrueG-Fh]o6#%[ocomputation~of~involutive~basis~stopped~due~to~time~res
triction.G>%*_JB_compaG.F^_o@$Fd^l>%._GINV_inv_denG%0_IB_RESULTdenomG@+5Fcfm/-F
ju6$Fdfm;F`o"#dQZinvbasis,invbasislm,invbasisanc,multvar,factormodulebasisFWC%@
$54333-Fd^o6#%+_IB_RESULTG-Fd^o6#%-_IB_RESULTlmG-Fd^o6#%._IB_RESULTancG-Fd^o6#%
2_IB_RESULTmultvarG3Fcdl43-Fd^o6#%1_IB_RESULTfactorG-Fd^o6#%8_IB_RESULTfactormu
ltvarG-Fjn6#%Cerror~in~computation~or~interface.G@$FcdlC%>8)&-%4Involutive/proc
_ordG6*FeglF^pFagl7$-Fh_l6#Fb^l-Fh_l6#FbqFaglF^p7#FhnF^w6#""&@%2F`oFhnC%>%+_JB_
factorG-%%sortG6$-%$zipG6%f*6$FN%"jGFWFfpFW7$FfoF^pFWFWFWFdaoFgaof*FgcoFWFWFW@'
2&&F^pFgoFhoFdoF^w2FdoF]doFey-T#6$&FeoFgo&F^doFgoFWFW6$FPF^bo>%3_JB_factor_mult
varG-Fd`l6$f*FepFWFfpFW&FfoFhoFWFWFWF_co>F_co-Fd`l6$f*FepFWFfpFW-%'subsopG6$/,&
FdoF`oF`oF`oFcdo7#-Feq6$FgqF\qFWFW6$F+FhnF_coC%>F_co-Faco6$-Fdco6%f*FgcoFWFfpFW
FicoFWFWFWFdaoFgaof*FgcoFWFfpFW-Fado6$FeoF^doFWFWFedo>Fgdo-Fd`l6$f*FepFWFfpFWF[
eoFWFWFWF_co>F_co-Fd`l6$f*FepFWFfpFWFeoFWFWFWF_co>%(_JB_varGF^p-Fign6#7&7#-%$se
qG6$&Fe`o6#,&-FboFd`oF`oFj^lF\bl/Fj^l;Fgq,&FggoF`oF\blF`o7#-Fbgo6$&F[ao6#,&-Fbo
Fj`oF`oFj^lF\bl/Fj^l;Fgq,&FahoF`oF\blF`o7#-Fbgo6$&Fh`o6#,&-FboFg`oF`oFj^lF\bl/F
j^l;Fgq,&F[ioF`oF\blF`o7#-Fbgo6$&F^ao6#,&-FboF]aoF`oFj^lF\bl/Fj^l;Fgq,&FeioF`oF
\blF`o/-Fju6$Fdfm;F`o"#RQHinvbasis,invbasislm,invbasisanc,multvarFWC$@$F_`oFhao
F]go/FdfmQ)invbasisFWC$@$4Fc`oFhao-Fign6#7&F`goFaglFaglFagl/FdfmFhfmC&@$F`aoFha
o>F^boF_bo@%F\coC%>F_co-Faco6$-Fdco6%f*FgcoFWFfpFWFicoFWFWFWFdaoFgaof*FgcoFWFWF
W@'F\doF^wF_doFeyF`doFWFWFedo>Fgdo-Fd`l6$f*FepFWFfpFWF[eoFWFWFWF_co>F_co-Fd`l6$
f*FepFWFfpFWF`eoFWFWFheoF_coC%>F_co-Faco6$-Fdco6%f*FgcoFWFfpFWFicoFWFWFWFdaoFga
of*FgcoFWFfpFWFafoFWFWFedo>Fgdo-Fd`l6$f*FepFWFfpFWF[eoFWFWFWF_co>F_co-Fd`l6$f*F
epFWFfpFWFeoFWFWFWF_co>F\goF^p-Fjn6#%4error~in~interface.GFW6)F_coFgdoF\goF^_oF
b_oF_]lF`gnFWFW
M7R0
I6Involutive/Homogenizef*6%%"pG'%$varG%%listG%"hG6%%"dG%"iG%"vG6#%enCopyright~(
C)~2010~by~Daniel~Robertz.~All~rights~reserved.G6"@%-%%typeG6$9$F(-%$mapG6&F"F5
9%9&C%>8&<#-%#opG6#F9>8$-%'degreeG6$F5F=-F76$f*6#F,F06$%)operatorG%&arrowGF0*&)
T$,&T%"""-FE6$F5T'!""FSF5FSF0F06(F)F:F+FCF-F=-%(collectG6%F5F9%,distributedGF0F
0F0F0
M7R0
I7Involutive/pplex_Z_POTf*6$%"aG%"bG6#%"iG6#%jnCopyright~(C)~2004-2010~by~Danie
l~Robertz.~All~rights~reserved.G6"C%@&2&9$6#""#&9%F1-%'RETURNG6#%&falseG2F3F/-F
66#%%trueG?(8$"""F?-%%nopsG6#&F06#F?F<@&2&FC6#F>&&F4FDFHF:2FIFGF5@%2-%$absG6#&F
46#""$-FO6#&F0FRF8F<F+F+F+F+
M7R0
I7Involutive/pplex_blockf*6$%"aG%"bG6#%"iG6#%jnCopyright~(C)~2004-2010~by~Danie
l~Robertz.~All~rights~reserved.G6"C$?(8$"""F/-%%nopsG6#&9$6#F/%%trueG@&2&F36#F.
&&9%F5F:-%'RETURNG6#F62F;F9-F?6#%&falseGF6F+F+F+F+
M7R0
I2Involutive/pplex3f*6$%"aG%"bG6"6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~
and~Daniel~Robertz.~All~rights~reserved.GF'-%1Involutive/pplexG6$&9$6#""$&9%F/F
'F'F'F'
M7R0
I?Involutive/pnegdegrevlex_Z_POTf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C
)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@&2&9$6#""#&9%F3-%'RETU
RNG6#%&falseG2F5F1-F86#%%trueG>8%-%(convertG6$&F26#"""%"+G>8&-FB6$&F6FEFG@'2F@F
IF72FIF@F<?(8$-%%nopsG6#FD!""FFF>@&2&FL6#FQ&FDFYF<2FZFXF7@%2-%$absG6#&F66#""$-F
in6#&F2F\oF:F>F-F-F-F-
M7R0
I?Involutive/pnegdegrevlex_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C
)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8%-%(convertG6$&9$6#""
"%"+G>8&-F26$&9%F6F8@'2F0F:-%'RETURNG6#%&falseG2F:F0-FB6#%%trueG?(8$-%%nopsG6#F
4!""F7FH@&2&F=6#FJ&F4FRFF2FSFQFAFHF-F-F-F-
M7R0
I3Involutive/pdeglexf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%\pCopyright~(C)~2000-2010~
by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C&>8%-%(convertG6$&
9$6#"""%"+G>8&-F26$&9%F6F8@'2F0F:-%'RETURNG6#%%trueG2F:F0-FB6#%&falseG?(8$F7F7-
%%nopsG6#F4FD@&2&F=6#FJ&F4FQFF2FRFPFA@%2&F56#""#&F>FWFHFDF-F-F-F-
M7R0
I;Involutive/LeadingMonomialf*6$%"LG'%%varsG%%listG6;%"aG%"iG%"lG%"FG%#LMG%"SG%
$varG%(seq_varG%'n_entrG%(tup_cmpG%)tup_permG%(var_ordG%'vt_degG%(deg_ordG%'lmp
rocG%#lcG%#ltG%&m_ordG%%seqvG%)entr_posG%/as_multi_indexG%)tmp_nvarG%+tmp_varde
gG%+tmp_tupdegG%/tmp_entrblocksG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.
~All~rights~reserved.G6"CH@%-%%typeG6$9$F(>8'FK>FM7#FK>FM-%6Involutive/proc_inp
utG6#FM>8,&FM6#""">89%&_nvarG>8:%(_vardegG>8;%(_tupdegG>8<%,_entrblocksG>8*-%5I
nvolutive/proc_varsG6$9%FU>8/&F`o6#""#>80&F`o6#""$>81&F`o6#""%>8.&F`o6#""&>87&F
`o6#""'>F`o&F`oFW>Fen-%%nopsG6#F`o>867#-%$seqG6$-%$catG6$%#_xG8%/F^r;FXFen>Ffo-
%%subsG6$7#-Fhq6$/&F`o6#F^rFjqF_rFfo@%0%2Involutive/characG""!>FM-%$modG6$-%(co
llectG6%&FMFbpF`o%,distributedGF]s>FMFcs>83%&falseG>84F[t>88F[t@%/Ffo7">85Fcp>F
dt7#-%"$G6$Fcp-Fbq6#Ffo?(8$F^pFX9#%%trueG@'5-FI6$&9"6#F]u%(integerG-FI6$FduF(>F
dtFdu-FI6$Fdu%'stringGC$>8)Fdu?(F^rFXFX-%'lengthG6#F`vF_u@*/&F`vFjrQ"CFE>FjsF_u
/FgvQ"MFE>F_tF_u/FgvQ"TFE>F]tF_u0FgvQ!FE-%&ERRORG6#%0invalid~option.GFbw>8&-%4I
nvolutive/proc_ordG6*FdtF`oFfoF[pF`pFeqFjpF_u>82&FgwFW@$&FgwFbp>FjpFbt>8-&FgwFg
p@$/&F[p6#;,&FenFXFXFX,&FenFXFUFX7#-Fht6$F^sFU>F[pF^s@$0FeqF`oC$>FM-%$mapG6$f*6
#F*FE6$%)operatorG%&arrowGFE-Fcr6$7#-Fhq6$/&T'6#T%&T#Fcz/FdzF`rFKFEFE6(F<FeqF+F
^rF0F`oFM>8+7#-Fhq6$/&FeqFjrFirF_r@$0Fep7#-Fht6#;FXFU>FM-Fdy6$f*6#F+6#%"jGFEFE-
%'subsopG6$/FX7#-Fhq6$&&FKFW6#&FfzFfu/F]u;FXFdzFKFEFE6&F4FepF2FUFM>8(Fbt@%Fjs?(
F^rFXFX-FbqFSF_uC$>Fgw-%8Involutive/pol_lead_monG6)&FM6$F^rFXFUFeqF\xFjpFbxF[p@
%F_t@%F]t>F\]l7$-%#opG6#F\]l7$F]x&Fgw6$FioFX>F\]l7$F[^l7$&Fgw6$FXFXF_^l@%F`y>F\
]l7$F[^l7$*&F_^lFX-Fcr6$Fjz&Fgw6$FioFioFX&Fgw6$FXFio>F\]l7$F[^l7$*&F_^lFXF]_lFX
F__l?(F^rFXFXF_]lF_uC$>FgwFb]l@%F_t@%F]t>F\]l7$F[^lF]x>F\]l7$F[^lFd^l@%F`y>F\]l
7$F[^l7$F[_lF__l>F\]l7$F[^l7$F]_lF__l@$4F_t@%F]t@%Fa[lC$>Fep-Fdy6$f*Fj[lF[\lFEF
EC$-%'memberG6%FKFfz.F]uF]uFEFE6$F4FepFb[l>F\]l-Fdy6$f*FgyFEFhyFE-F^\l6$/&Ffz6#
&FKFhoFe\l7#-Fht6$F^sFdzFEFEFj\lF\]l>F\]l-Fdy6$f*FgyFEFhyFE-F^\l6$/F]blFe\l7#-F
ht6$F^sFfzFEFE6$F2FUF\]l>F\]l-Fdy6$f*FgyFEFhyFEFe\lFEFEFEF\]l>FenFZ>FhnFgn>F[oF
jn>F^oF]o@%4FHF[^lF\]lFE6&FenFhnF[oF^oFEFE
M7R0
I@Involutive/pnormal_form_collectf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_var
G65%"aG%"hG%"iG%"kG%"rG%#lmG%(termo_hG%$divG%#stG%'n_entrG%*zero_listG%.rhs_zer
o_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-2010~by~Carlos~
F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C->%(_nnformG,&FD"""FFFF>8%9$
>8,""!>8--%%nopsG6#&FH6#FF@$09)7"C'>80<#-%$seqG6$&9&6#&FV6#8&/F^o;FF-FP6#FV>81-
FP6#FZ>82-%'removeG6%%$hasGFjnFZ>83FW>FH7#-%=Involutive/cancel_locvar_rhsG6'FR&
FH6#""#9'FjnFV>8.7#-%"$G6$FLFN>8/7#-F\q6$FL-FP6#Fdp>8(7$FipF_q>8)-FgpFQ?(FAFFFF
FA0&Fiq6$FfpFFFLC)>F^oFF>8+%&falseG>8**&F]rFF&Fiq6$FfpFfpFF@$FU>84,&-%$maxG6#-F
gn6$-%'degreeG6$&FR6#8'FZ/Fgs;FFFNFF-%$addG6$&&Fiq6$FFFF6#&FVFfs/Fgs;FFFdo!""?(
FAFFFFFA31F^o-FP6#9%4Fbr@%-%7Involutive/pinv_divideG6%&Fjt6$F^o""$&Fjt6$F^o""&&
FiqFSC&>%'_reducG,&FiuFFFFFF>FK,&FKFFFFFF@%FUC,>85,&-F^s6#-Fgn6$-Fcs6$&&Fjt6%F^
oFFFFFfsFZFhsFF-F[t6$&&Fjt6%F^oFbuFFF`tFbtFdt>86FL>Fgs-FP6#F^p?(FAFFFFFA32FLF`v
2FLFgsC$@$331&&F^pFfs6#FbuF`v/&&&F_xFepFSFep&FfuFep-%:Involutive/conv_divisible
G6$FcxFfuC$>FawFgs>F`vF^x>Fgs,&FgsFFFdtFF@$3Fgw0&FfqFSFip[@$2F[sF`vC$>Fgs-9(6%F
RFjn7$Fdp&&FiqFepFS>F^p7$-%#opGFdw7%7$&FgsFS&&FgsFepFS7$Ffu-%'subsopG6$/FF&FezF
epF\zF[s@%/FawFL>FH-%)simplifyG6#7$,&-%$mapG6$f*6#F,FA6$%)operatorG%&arrowGFA*(
T#FF&T&6%T'""'FfpFdtFIFFFAFA6(F2FerF&FjtF.F^oFivFdt-Fe[l6$f*Fh[lFAFi[lFA*&&T$6%
T%Fb\lFFFFFIFFFAFA6&F&FjtF.F^oFRFF,&-Fe[l6$f*Fh[lFAFi[lFAF\\lFAFAFc\l&Fjt6%F^oF
FFfpFdt-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFdpFF>FH-F`[l6#7$,&-Fe[l6$f*Fh[lFAFi[lF
A*(F]\lFF&&&&F[]l6#Fa\lFepFepFepFdtFIFFFAFA6(F2FerF;F^pF>Faw&&&F^p6#FawFSFSFdt-
Fe[l6$f*Fh[lFAFi[lFA*&&&&&F]\l6#F[]lFepFepFSFFFIFFFAFA6&F;F^pF>FawFRFF,&-Fe[l6$
f*Fh[lFAFi[lFAF^^lFAFAFd^l&Ff^lFepFdt-Fe[l6$f*Fh[lFAFi[lFAF\_lFAFAFb_lFdpFF>FH-
Fhy6%FRFjnFdp>FHF`p@$0%2Involutive/characGFL>FH-%$modG6$FHFa`l@%/Fa`lFL>FH-%(co
llectG6%7$-%'normalG6#,&-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFRFF-Fe[l6$f*Fh[lFAFi[
lFA**&F]\lF^rFF&F]\lFhrFFF^\lFdtFIFFFAFA6(F1FiqF&FjtF.F^oFivFdt-F^al6#,&-Fe[l6$
f*Fh[lFAFi[lFAFg\lFAFAF\]lFdpFF-Fe[l6$f*Fh[lFAFi[lFAFgalFAFAFjalFa]lFdtFjn%,dis
tributedG>FH-Fj`l6%7$-Fd`l6$-%'NormalG6#,&-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFRFF
-Fe[l6$f*Fh[lFAFi[lFAFgalFAFAFjalFivFdtFa`l-Fd`l6$-F\cl6#,&-Fe[l6$f*Fh[lFAFi[lF
AFg\lFAFAF\]lFdpFF-Fe[l6$f*Fh[lFAFi[lFAFgalFAFAFjalFa]lFdtFa`lFjnFdbl>Fbr%%true
G>F^o,&F^oFFFFFF@%F[uC$>Ffq7$-Fhz6$/&Fiq6$FFFfp-Fj`l6%,&&Fay6#F[elFFFfrFFFjnFdb
lFay&FfqFep>FH7$-Fhz6$/F[el-Fj`l6%,&&FRFaelFFFfrFdtFjnFdblFRFdp@%Fg`l>Ffq-Fj`l6
%7$-F^al6#-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFay-F^al6#-Fe[l6$f*Fh[lFAFi[lFAFg\lF
AFAF\]lFbelFjnFdbl>Ffq-Fj`l6%7$-Fd`l6$-F\cl6#-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lF
ayFa`l-Fd`l6$-F\cl6#-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFbelFa`lFjnFdbl>FiqFjq@'3/
FayFip0FdpF_qC%>Fdp&-Fhy6%FdpFjnFWFS@$4-%7Involutive/member_multG6%Fdp%&P_HOMGF
jn>F\il7$-F`z6#F\ilFdp7$FayF_qF`hl7$FipFdp-Fhy6%FayFjnFdpFA6%F\ilFDFiuFAFA
M7R0
IEInvolutive/pnormal_form_collect_polyf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(lo
c_varG67%"aG%#caG%#cbG%"hG%"iG%"kG%"rG%#lmG%(termo_hG%$divG%#stG%'n_entrG%*zero
_listG%.rhs_zero_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-
2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C->%(_nnformG,
&FF"""FHFH>8'9$>8.""!>8/-%%nopsG6#&FJ6#FH@$09)7"C'>82<#-%$seqG6$&9&6#&FX6#8(/F`
o;FH-FR6#FX>83-FR6#Ffn>84-%'removeG6%%$hasGF\oFfn>85FY>FJ7#-%=Involutive/cancel
_locvar_rhsG6'FT&FJ6#""#9'F\oFX>807#-%"$G6$FNFP>817#-F^q6$FN-FR6#Ffp>8*7$F[qFaq
>8+-FipFS?(FCFHFHFC0&F[r6$FhpFHFNC)>F`oFH>8-%&falseG>8,*&F_rFH&F[r6$FhpFhpFH@$F
W>86,&-%$maxG6#-Fin6$-%'degreeG6$&FT6#8)Ffn/Fis;FHFPFH-%$addG6$&&F[r6$FHFH6#&FX
Fhs/Fis;FHFfo!""?(FCFHFHFC31F`o-FR6#9%4Fdr@%-%7Involutive/pinv_divideG6%&F\u6$F
`o""$&F\u6$F`o""&&F[rFUC&>%'_reducG,&F[vFHFHFH>FM,&FMFHFHFH@%FWC,>87,&-F`s6#-Fi
n6$-Fes6$&&F\u6%F`oFHFHFhsFfnFjsFH-F]t6$&&F\u6%F`oFduFHFbtFdtFft>88FN>Fis-FR6#F
`p?(FCFHFHFC32FNFbv2FNFisC$@$331&&F`pFhs6#FduFbv/&&&FaxFgpFUFgp&FhuFgp-%:Involu
tive/conv_divisibleG6$FexFhuC$>FcwFis>FbvF`x>Fis,&FisFHFftFH@$3Fiw0&FhqFUF[q[@$
2F]sFbvC$>Fis-9(6%FTF\o7$Ffp&&F[rFgpFU>F`p7$-%#opGFfw7%7$&FisFU&&FisFgpFU7$Fhu-
%'subsopG6$/FH&FgzFgpF^zF]s@%/FcwFN>FJ-%)simplifyG6#7$,&-%$mapG6$f*6#F,FC6$%)op
eratorG%&arrowGFC*(T#FH&T&6%T'""'FhpFftFKFHFCFC6(F4FgrF&F\uF0F`oF[wFft-Fg[l6$f*
Fj[lFCF[\lFC*&&T$6%T%Fd\lFHFHFKFHFCFC6&F&F\uF0F`oFTFH,&-Fg[l6$f*Fj[lFCF[\lFCF^\
lFCFCFe\l&F\u6%F`oFHFhpFft-Fg[l6$f*Fj[lFCF[\lFCFi\lFCFCF^]lFfpFH>FJ-Fb[l6#7$,&-
Fg[l6$f*Fj[lFCF[\lFC*(F_\lFH&&&&F]]l6#Fc\lFgpFgpFgpFftFKFHFCFC6(F4FgrF=F`pF@Fcw
&&&F`p6#FcwFUFUFft-Fg[l6$f*Fj[lFCF[\lFC*&&&&&F_\l6#F]]lFgpFgpFUFHFKFHFCFC6&F=F`
pF@FcwFTFH,&-Fg[l6$f*Fj[lFCF[\lFCF`^lFCFCFf^l&Fh^lFgpFft-Fg[l6$f*Fj[lFCF[\lFCF^
_lFCFCFd_lFfpFH>FJ-Fjy6%FTF\oFfp>FJFbp@$0%2Involutive/characGFN>FJ-%$modG6$FJFc
`l@%/Fc`lFNC$-%$gcdG6&F_r&F\u6%F`oFd\lFH.8%.8&>FJ-%(collectG6%7$-%'normalG6#,&-
Fg[l6$f*Fj[lFCF[\lFC*&F_\lFHFKFHFCFC6$F.FcalFTFH-Fg[l6$f*Fj[lFCF[\lFC**F_\lFH&F
]]lFjrFH&T(6%T)Fd\lFhpFftFKFHFCFC6*F-FaalF3F[rF&F\uF0F`oF[wFft-Fjal6#,&-Fg[l6$f
*Fj[lFCF[\lFCF`blFCFCFablFfpFH-Fg[l6$f*Fj[lFCF[\lFCFeblFCFCF[clFc]lFftF\o%,dist
ributedGC$-Ff`l6$-%$GcdGF]alFc`l>FJ-Ffal6%7$-Ff`l6$-%'NormalG6#,&-Fg[l6$f*Fj[lF
CF[\lFCF`blFCFCFablFTFH-Fg[l6$f*Fj[lFCF[\lFCFeblFCFCF[clF[wFftFc`l-Ff`l6$-Fbdl6
#,&-Fg[l6$f*Fj[lFCF[\lFCF`blFCFCFablFfpFH-Fg[l6$f*Fj[lFCF[\lFCFeblFCFCF[clFc]lF
ftFc`lF\oFecl>Fdr%%trueG>F`o,&F`oFHFHFH@%F]uC$>Fhq7$-Fjz6$/&F[r6$FHFhp-Ffal6%,&
&Fcy6#FaflFHFhrFHF\oFeclFcy&FhqFgp>FJ7$-Fjz6$/Fafl-Ffal6%,&&FTFgflFHFhrFftF\oFe
clFTFfp@%Fi`l>Fhq-Ffal6%7$-Fjal6#-Fg[l6$f*Fj[lFCF[\lFCF`blFCFCFablFcy-Fjal6#-Fg
[l6$f*Fj[lFCF[\lFCF`blFCFCFablFhflF\oFecl>Fhq-Ffal6%7$-Ff`l6$-Fbdl6#-Fg[l6$f*Fj
[lFCF[\lFCF`blFCFCFablFcyFc`l-Ff`l6$-Fbdl6#-Fg[l6$f*Fj[lFCF[\lFCF`blFCFCFablFhf
lFc`lF\oFecl>F[rF\r@'3/FcyF[q0FfpFaqC%>Ffp&-Fjy6%FfpF\oFYFU@$4-%7Involutive/mem
ber_multG6%Ffp%&P_HOMGF\o>Fbjl7$-Fbz6#FbjlFfp7$FcyFaqFfil7$F[qFfp-Fjy6%FcyF\oFf
pFC6%FbjlFFF[vFCFC
M7R0
IAInvolutive/pnormal_form_simplifyf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_va
rG65%"aG%"hG%"iG%"kG%"rG%#lmG%(termo_hG%$divG%#stG%'n_entrG%*zero_listG%.rhs_ze
ro_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-2010~by~Carlos
~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C->%(_nnformG,&FD"""FFFF>8%9
$>8,""!>8--%%nopsG6#&FH6#FF@$09)7"C'>80<#-%$seqG6$&9&6#&FV6#8&/F^o;FF-FP6#FV>81
-FP6#FZ>82-%'removeG6%%$hasGFjnFZ>83FW>FH7#-%=Involutive/cancel_locvar_rhsG6'FR
&FH6#""#9'FjnFV>8.7#-%"$G6$FLFN>8/7#-F\q6$FL-FP6#Fdp>8(7$FipF_q>8)-FgpFQ?(FAFFF
FFA0&Fiq6$FfpFFFLC)>F^oFF>8+%&falseG>8**&F]rFF&Fiq6$FfpFfpFF@$FU>84,&-%$maxG6#-
Fgn6$-%'degreeG6$&FR6#8'FZ/Fgs;FFFNFF-%$addG6$&&Fiq6$FFFF6#&FVFfs/Fgs;FFFdo!""?
(FAFFFFFA31F^o-FP6#9%4Fbr@%-%7Involutive/pinv_divideG6%&Fjt6$F^o""$&Fjt6$F^o""&
&FiqFSC&>%'_reducG,&FiuFFFFFF>FK,&FKFFFFFF@%FUC,>85,&-F^s6#-Fgn6$-Fcs6$&&Fjt6%F
^oFFFFFfsFZFhsFF-F[t6$&&Fjt6%F^oFbuFFF`tFbtFdt>86FL>Fgs-FP6#F^p?(FAFFFFFA32FLF`
v2FLFgsC$@$331&&F^pFfs6#FbuF`v/&&&F_xFepFSFep&FfuFep-%:Involutive/conv_divisibl
eG6$FcxFfuC$>FawFgs>F`vF^x>Fgs,&FgsFFFdtFF@$3Fgw0&FfqFSFip[@$2F[sF`vC$>Fgs-9(6%
FRFjn7$Fdp&&FiqFepFS>F^p7$-%#opGFdw7%7$&FgsFS&&FgsFepFS7$Ffu-%'subsopG6$/FF&Fez
FepF\zF[s@%/FawFL>FH-%)simplifyG6#7$,&-%$mapG6$f*6#F,FA6$%)operatorG%&arrowGFA*
(T#FF&T&6%T'""'FfpFdtFIFFFAFA6(F2FerF&FjtF.F^oFivFdt-Fe[l6$f*Fh[lFAFi[lFA*&&T$6
%T%Fb\lFFFFFIFFFAFA6&F&FjtF.F^oFRFF,&-Fe[l6$f*Fh[lFAFi[lFAF\\lFAFAFc\l&Fjt6%F^o
FFFfpFdt-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFdpFF>FH-F`[l6#7$,&-Fe[l6$f*Fh[lFAFi[l
FA*(F]\lFF&&&&F[]l6#Fa\lFepFepFepFdtFIFFFAFA6(F2FerF;F^pF>Faw&&&F^p6#FawFSFSFdt
-Fe[l6$f*Fh[lFAFi[lFA*&&&&&F]\l6#F[]lFepFepFSFFFIFFFAFA6&F;F^pF>FawFRFF,&-Fe[l6
$f*Fh[lFAFi[lFAF^^lFAFAFd^l&Ff^lFepFdt-Fe[l6$f*Fh[lFAFi[lFAF\_lFAFAFb_lFdpFF>FH
-Fhy6%FRFjnFdp>FHF`p@$0%2Involutive/characGFL>FH-%$modG6$FHFa`l>FH-F`[l6#7$,&-F
e[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFRFF-Fe[l6$f*Fh[lFAFi[lFA**&F]\lF^rFF&F]\lFhrFFF
^\lFdtFIFFFAFA6(F1FiqF&FjtF.F^oFivFdt,&-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFdpFF-F
e[l6$f*Fh[lFAFi[lFAFaalFAFAFdalFa]lFdt>Fbr%%trueG>F^o,&F^oFFFFFF@%F[uC$>Ffq7$-F
hz6$/&Fiq6$FFFfp-%(collectG6%,&&Fay6#FgblFFFfrFFFjn%,distributedGFay&FfqFep>FH7
$-Fhz6$/Fgbl-Fjbl6%,&&FRF^clFFFfrFdtFjnF_clFRFdp@%/Fa`lFL>Ffq-Fjbl6%7$-%'normal
G6#-F`[l6#-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]lFay-Fadl6#-F`[l6#-Fe[l6$f*Fh[lFAFi[l
FAFg\lFAFAF\]lF`clFjnF_cl>Ffq-Fjbl6%7$-Fd`l6$-%'NormalG6#-F`[l6#-Fe[l6$f*Fh[lFA
Fi[lFAFg\lFAFAF\]lFayFa`l-Fd`l6$-Ffel6#-F`[l6#-Fe[l6$f*Fh[lFAFi[lFAFg\lFAFAF\]l
F`clFa`lFjnF_cl>FiqFjq@'3/FayFip0FdpF_qC%>Fdp&-Fhy6%FdpFjnFWFS@$4-%7Involutive/
member_multG6%Fdp%&P_HOMGFjn>Fegl7$-F`z6#FeglFdp7$FayF_qFifl7$FipFdp-Fhy6%FayFj
nFdpFA6%FeglFDFiuFAFA
M7R0
I>Involutive/pnormal_form_Z_absf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG6
+%"aG%"hG%"iG%"lG%"rG%#lmG%$divG%*zero_listG%.rhs_zero_listG6#%jnCopyright~(C)~
2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C*>%(_nnformG,&F:"""F<F<>8%
9$>8+7#-%"$G6$""!-%%nopsG6#&F>6#F<>8,7#-FD6$FF-FH6#&F>6#""#>8(7$FAFM>8)-9'FI?(F
7F<F<F70&FZ6$FUF<FFC'>8&F<>8*%&falseG?(F7F<F<F731F]o-FH6#9%4F_oC$@$-%7Involutiv
e/pinv_divideG6%&Ffo6$F]o""$&Ffo6$F]o""&&FZFKC%>%'_reducG,&FfpF<F<F<>8'-%%iquoG
6$Fin&Ffo6%F]o""'F<@&0FipFFC$>F>7$-%'normalG6#,&FJF<-%$mapG6$f*6#F,F76$%)operat
orG%&arrowGF7**T#F<&T%6$FUFUF<&T(6%T)F_qFU!""F?F<F7F76*F/FipF1FZF&FfoF.F]o&Ffo6
%F]oF<F<Fjr-Ffq6#,&FSF<-Fjq6$f*F]rF7F^rF7FarF7F7F[s&Ffo6%F]oF<FUFjr>F_o%%trueG5
2-%$absG6#-%&roundG6#,$F]q#F<FU-F[t6#Fin3/FbtFjs/-%%signGFctFjrC$>F>7$-Ffq6#,&F
JF<-Fjq6$f*F]rF7F^rF7*,-Fht6#&FbrFjnF<-Fht6#&T&6%T'F_qF<F<&FbrFerF<&Fiu6%F[vF_q
FUFjrF?F<F7F76(F1FZF&FfoF.F]oF\sFjr-Ffq6#,&FSF<-Fjq6$f*F]rF7F^rF7FbuF7F7F_vFdsF
jr>F_oFgs>F]o,&F]oF<F<F<@$FgoC$>FW7$-%'subsopG6$/&FZ6$F<FU-Ffq6#,&&&FWFK6#FawF<
*&FinF<&FZFerF<F<Fgw&FWFT>F>7$-F^w6$/Faw-Ffq6#,&&FJFhwF<FiwFjrFJFS>FZFen@'3/Fgw
FA0FSFMC$@$4-%7Involutive/member_multG6%FS%&P_HOMG9&>F`y7$-%#opG6#F`yFS7$FgwFMF
hx7$FAFS7$FgwFSF76%F`yF:FfpF7F7
M7R0
IBInvolutive/simp_pnormal_form_Z_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_v
arG6.%"aG%"gG%"hG%"iG%"sG%"tG%#lmG%$divG%'n_entrG%*zero_listG%.rhs_zero_listG%'
pseudoG6#%jnCopyright~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C
,>%(_nnformG,&F="""F?F?>8&9$>8,-%%nopsG6#&FA6#F?>8-7#-%"$G6$""!FD>8.7#-FN6$FP-F
F6#&FA6#""#>8+%%trueG>8/%&falseG>8*-9'FG?(F:F?F?F:3Ffn0&F\o6$FZF?FPC%>8'F?>FfnF
jn?(F:F?F?F:31Ffo-FF6#9%4Ffn@%-%7Involutive/pinv_divideG6%&F]p6$Ffo""$&F]p6$Ffo
""&&F\oFIC$>8%-%%iremG6$Fbo&F]p6%Ffo""'F?@%/F\qFPC'>%'_reducG,&FgqF?F?F?>F\q-%%
iquoGF_q>FA-%(collectG6%7$-%'normalG6#,&FHF?-%$mapG6$f*6#F,F:6$%)operatorG%&arr
owGF:**T#F?&T%6$FZFZF?&T(6%T)FbqFZ!""FBF?F:F:6*F-F\qF2F\oF&F]pF/Ffo&F]p6%FfoF?F
?Ffs-Fbr6#,&FXF?-Ffr6$f*FirF:FjrF:F]sF:F:Fgs&F]p6%FfoF?FZFfs9&%,distributedG>Ff
nFgn>F\oF]oC$-%'igcdexG6&FboF`q.8(.8)@%0F]uFPC&>FgqFhq>FA-F^r6%7$-Fbr6#,&*&F[uF
?FHF?F?-Ffr6$f*FirF:FjrF:F]sF:F:6*F1F]uF2F\oF&F]pF/FfoFhsF?-Fbr6#,&*&F[uF?FXF?F
?-Ffr6$f*FirF:FjrF:F]sF:F:F]vF`tF?FbtFct>F\oF]o@%30F[uF?0F[uFfsC$>FinFgn>Ffo,&F
[pF?F?F?>FfnFgn>FfoF]w>Ffo,&FfoF?F?F?@'3/FHFK0FXFRC$@$4-%7Involutive/member_mul
tG6%FX%&P_HOMGFbt>F\x7$-%#opG6#F\xFX6$7$FHFRFinFdw6$7$FKFXFin6$FAFinF:6%F\xF=Fg
qF:F:
M7R0
I<Involutive/PolInvReduceFastf*6%%"fG'%"BG%%listG'%%varsGF(68%"aG%"cG%#f1G%"gG%
"iG%"jG%"kG%"rG%"vG%'n_entrG%)rhs_entrG%'no_rhsG%"FG%&m_ordG%%fextG%)tup_permG%
$varG%'compatG%.return_coeffsG%(nocheckG%)entr_posG%*quietmodeG6#%jnCopyright~(
C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"CC@$0%7Involutive/initia
lizedG.%%trueG-%0Involutive/initGFD>8%%2Involutive/characG>82Q!FD>81""!>86%&fal
seG>87FX>8,-%(convertG6$-%+kerneloptsG6#%(versionG%'stringG>89-%&evalbG6#552FU-
%+searchtextG6$Q&APPLEFDFfn/-%*substringG6$-Fhn6$-%*interfaceG6#.F]oF^o;""""#GQ
=Standard~Worksheet~InterfaceFD/%5Involutive/InvoBasisG%>Involutive/InvBasisFas
tAssertG?(8(""%Ffp9#FJ@)5-%%typeG6$&9"6#F]q%(integerG-Fcq6$FeqF(>FTFeq-Fcq6$Feq
%)equationG@)/-%#opG6$FfpFeqQ%NameFDC$@$4-Fcq6$-Fbr6$""#FeqF^o-%&ERRORG6#%Fexpe
cting~a~string~for~option~"Name".G>FQFjr/FarQ%charFD>FNFjr/FarQ&quietFDC$@$4-Fc
q6$Fjr%(booleanG-F^s6#%Lexpecting~boolean~value~for~option~"quiet".G>F`oFjr-F^s
6#%0invalid~option.G-Fcq6$FeqF^oC$>80Feq?(8*FfpFfp-%'lengthG6#FhtFJ@(/&Fht6#Fjt
Q"CFD>FWFJ/F`uQ"LFD>FZFJ0F`uQ"SFDFatFat@$5330FTFU0FTF\s0FTF^qFW-%'RETURNG6#-%:I
nvolutive/PolInvolReduceG6#Ffq>85-%7Involutive/checkIBfastG6(9%9&FNFTFQFZ>8-&Fg
v6#F\s>8.&Fgv6#""$>8/&Fgv6#F^q>84&Fgv6#""&>83&Fgv6#""'>88&Fgv6#"")@$55-Fcq6$&Fg
v6#""(F(2Ffp-%%nopsG6#Fex3/FbyFfp0&Fex6#FfpF^wF`v>Ffn-F]p6$Ffn;FfpFhx@'-Fcq6$9$
F(@%2FU-Fcy6#F[w@%333533-Fcq6$&F[wFiyF^r-Fcq6$-Fbr6$FfpF_[lF(2Ffp-Fcy6#Fb[l3-Fc
q6$F_[lF(2Ffp-Fcy6#F_[l2FU-Fcy6#Faz4-Fcq6$&FazFiyF^r4-Fcq6$Fc\lF(>8&7#Faz>Fh\lF
az@%333F]\lF`\lFd\l2FfpF^w>Fh\lFi\l>Fh\lFaz5-Fcq6$Faz%'matrixG330FfnQ)Maple~V,F
D0FfnQ)Maple~6.FD-Fcq6$Faz%'MatrixG>Fh\l-Fhn6$Faz%)listlistG>Fh\lFi\l>Fht-%6Inv
olutive/proc_inputG6#Fh\l@$0&FhtFiyF^w-F^s6#%Bf~has~wrong~number~of~components.
G@$4&FhtFdwC$@$Fgw-F^s6#%Jinvolutive~basis~has~no~right~hand~sides.G@$0&FhtF`wF
bw-F^s6#%Pright~hand~side~has~wrong~number~of~components.G@$0&FhtFbx7"-F^s6#%in
PolInvReduceFast~cannot~compute~in~algebraic~field~extensions.G@$0-%&minusG6$<#
-Fbr6#&FhtF_y<#-Fbr6#F[x<"-F^s6#%^oPolInvReduceFast~cannot~compute~in~transcend
ental~field~extensions.G@$0F`x7#-%"$G6#;FfpF^w>Fht-%'subsopG6$/F^q-%$mapG6$f*6#
F06#F1FDFD-F\bl6$/Ffp7#-%$seqG6$&Fc\l6#&T#6#8$/Facl;FfpT%FazFDFD6&F;F`xF5F^w&Fh
tFiwFht@$-%$hasG6$-F`bl6$f*6#F,FD6$%)operatorG%&arrowGFD3-Fcq6$Fc\l-F(6#-%(poly
nomG6$%)anythingGF_cl-Fcq6$&FazF`wFedlFDFD6$F<F[xFfclFX-F^s6#-%$catG6%%Sexpecti
ng~a~(list~(of~lists)~of)~polynomial(s)~in~G-Fhn6$F[xF^o%4~as~first~argument.G@
%Fgw@%/F^wFfp>8'-F`bl6$f*F^dlFDF_dlFD&Fc\lFiyFDFDFD-%'expandG6#Ffcl>F\fl-F`bl6$
f*F^dlFDF_dlFDFc\lFDFDFDFafl@%F`_l>F\fl-F`bl6$f*F^dlFDF_dlFD7$-Fbr6#Fc\l-Fgal6$
FUF_clFDFD6$F6FbwFafl>F\fl-F`bl6$f*F^dlFDF_dlFD-F`bl6$FbrFazFDFDFDFafl@$4&FgvFi
y@%0FQFR-%?Involutive/InvolutiveBasisFastG6'F[wF\w/FdrFQ/FcsFN/FfsF`o-F_hl6&F[w
F\wFbhlFchl>8+-%8Involutive/cppInvReduceG6%F\flFQF`o@$Fdal>F`x-F`bl6$f*FcblFdbl
FDFDC$-%'memberG6%FazF_cl.FaclFaclFDFD6$F;F`xFeal?(FjtFfpFfp-Fcy6#FghlFJ@%-Fcq6
$&Fh\lFauF^r@%FjelC%>F\fl&&FghlFauFiy@$-Fcq6$-Fbr6$FfpF\jlF(>F\fl7#F\fl@%/FbwFf
p@%-Fcq6$-Fbr6$F\sF\jlF(>Fghl-F\bl6$/Fjt/F\fl7#&FajlF`wFghl>Fghl-F\bl6$/Fjt/F\f
lFf[mFghl>Fghl-F\bl6$/Fjt/F\fl&Fajl6#;F\s,&F^wFfpFbwFfpFghlC%>F\fl&FajlFhal@$Fd
al>F\fl7#-Fjbl6$&F\fl6#&F`x6#8)/Fa]mFial@%Fjjl@%F\[m>Fghl-F\bl6$/Fjt/F\fl7#&Faj
l6#,&F^wFfpFfpFfpFghl>Fghl-F\bl6$/Fjt/F\flF[^mFghl>Fghl-F\bl6$/Fjt/F\fl&Fajl6#;
F]^mFd\mFghl@%Fjel@%Fgw@%-Fcq6$F\jlF(>Fghl-F\bl6$/Fjt7#FajlFghl>Fghl-F\bl6$/Fjt
FajlFghl@%F^_m>Fghl-F\bl6$/Fjt7#F`jlFghl>Fghl-F\bl6$/FjtF`jlFghlC%>F\flFg\m@$Fd
al>F\flFj\m>Fghl-F\bl6$/FjtF\flFghl@)F_z@%345Fa\l-FcqFa^l-Fcq6$Fh\lFb^l-FbrFhil
FghlFc]l-Fe]lFhilFf]l-Fhn6$FghlF^^lFcamFDFDFDFD
M7R0
I8Involutive/pjanet_separf*6&%%seqvG%(loc_varG%&m_ordG%&N_OrdG6(%"iG%"kG%'mod_r
kG%"JG%"QG%"SG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.
~All~rights~reserved.G6"C-@$/%*pnumber_tG"""-%'RETURNG6#7"@%0%4Involutive/divis
ionG""!>%)P_T_ListG-%%sortG6$FA%:Involutive/pplexdivision3G@$309&F70FI""$>FA-FC
6$FA%2Involutive/pplex3G>8&-%%nopsG6#&FA6%F7F7F7>8'7#-%$seqG6$F;/8$;F7FQ?(FhnF7
F7F6%%trueGC$>8%&FA6%FhnFK""#>FX-%'subsopG6$/F^o7$-%#opG6#&FX6#F^o&FA6#FhnFX>8(
F;>FAF;@%F=?(FhnF7F7FQF[oC%>8)-%;Involutive/pjanet_divisionG6%&FXF^p9$9%>F`p7$-
Fio6#F`p-Fio6#&Ffp6#Fao>FA7$-Fio6#FA-Fio6#&Ffp6#F7?(FhnF7F7FQF[oC%>Ffp-%9Involu
tive/pjanet_stddivGFip>F`pF^q>FAFfq>F6-FSFhq>FA-FC6$FA9'F`pF26$FAF6F2F2
M7R0
I1Involutive/Statsf*6"F$6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Danie
l~Robertz.~All~rights~reserved.GF$C,@$43-%)assignedG6#%(_StatssG-F,6#%)P_T_List
G-%&ERRORG6#%Tno~statistics~available;~run~InvolutiveBasis~first.G@%2"""-%%nops
G6#&F16%F8F8F8-%&printG6$%ENumber~of~tuples~in~involutive~basisG-F:F0-F?6$%JNum
ber~of~polynomials~in~involutive~basisGFB-F?6$%=Use~of~normal~form~procedureG&F
.6#F8-F?6$%?Number~of~reductions~performedG&F.6#""#-F?6$%4Number~of~transfersG&
F.6#"")-F?6$%7Use~of~first~criterionG&F.6#""$-F?6$%8Use~of~second~criterionG&F.
6#""%-F?6$%7Use~of~third~criterionG&F.6#""&-F?6$%8Use~of~fourth~criterionG&F.6#
""'@$/&F.6#""(F8-F?6#%WThe~involutive~basis~is~also~a~reduced~Groebner~basis.GF
$F$F$F$
M7R0
IDInvolutive/SubmoduleHilbertFunctionf*6"69%"iG%"jG%"lG%#q1G%#q2G%"sG%,given_ba
sisG%&m_ordG%'n_entrG%"FG%2tmp_P_T_List_dataG%%varsG%$varG%%nvarG%(var_ordG%'vt
_degG%)entr_posG%%seqvG%,force_evalaG%'lmprocG%/args_without_sG%$resG%#_sG6#%jn
Copyright~(C)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C+@$4%4Involu
tive/ratcoeffG-%&ERRORG6#%fnnot~implemented~yet~for~involutive~bases~over~the~i
ntegers.G>86%&falseG>8+""%>8)%%NULLG@%519#"""32FTFS5555-%%typeG6$&9"6#""#%)equa
tionG-Ffn6$Fhn-%%listG6#%(integerG-Ffn6$Fhn%(numericG-Ffn6$Fhn%%nameG-Ffn6$Fhn%
'stringGC%>8*FI>8%FT>88FOC%>F^p%%trueG>F`p""$>Fbp6$&Fin6#FTFhn?(8$F`pFTFSFep@/-
Ffn6$&Fin6#F]qFbo@%F^pC$>FKFaq>Fbp6$FbpFaq@%/FNFO>FNFaq-FD6#%Zcannot~determine~
which~indeterminate~or~value~to~plug~in.G-Ffn6$FaqF_oC$>FKFaq>FbpFgq-Ffn6$FaqFe
o@%Fiq>FNFaqF[r3-Ffn6$FaqF\o/-%#opG6$FTFaqQ$varF$@%Fiq>FN-F\s6$F[oFaq-FD6#%Wcan
not~determine~which~indeterminate~value~to~plug~in.G-Ffn6$FaqFho@%Fiq>FNFaqF[r/
FaqQ!F$@%Fiq>FNFaqF[r-FD6#%0invalid~option.G@$Fiq-%'RETURNG6#F"@%F^pC3>8--%6Inv
olutive/proc_inputG6#Fjp>8,&FhtF[q>FH5FH&Fht6#""&>8.73%)P_T_ListG%*pnumber_tG%+
PolTab_VarG%&_nvarG%&_pvarG%(_vardegG%(_tupdegG%,_entrblocksG%&P_HOMG%)_pno_rhs
G%0_pforce_collectG%._pforce_evalaG%)_inv_denG%+_JB_factorG%3_JB_factor_multvar
G%(_JB_varG%*_JB_compaG>8/-%5Involutive/proc_varsG6$FhnF]u>82&FivFjn>83&Fiv6#Fg
p>84&Fiv6#""'>80&FivF[q>857#-%$seqG6$-%$catG6$%#_xGF]q/F]q;FT-%%nopsG6#Fjw>F^w-
%%subsG6$7#-F`x6$/&FjwFbq&F]xFbqFfxF^w@$30F^w7"/FKFL>FK7#-%"$G6$FL-Fix6#F^w>8&-
%4Involutive/proc_ordG6*FKFjwF^wFbw&Fiv6#FLF]xFew4FH@$&FbzFgz>FewFhy@$/&Faw6#;,
&FhxFTFTFT,&FhxFTF]uFT7#-F]z6$""!F]u>FawFf[l>87-%&parseG6#-Fcx6/Q@g->`Involutiv
e/pol_lead_mon`(g,F$-%(convertG6$F]uF[pQ",F$-Fa\l6$F]xF[pFc\l-Fa\l6$&FbzF[qF[pF
c\l-Fa\l6$FewF[pFc\l-Fa\l6$&FbzFbuF[pFc\l-Fa\l6$FawF[pQ")F$-%9Involutive/setupP
_T_ListG6*-%(collectG6%&FhtFgzFjw%,distributedGF]u&FhtFjnFi[l&FbzFcw&FivFbuFjw&
FhtFcw@$4-%)assignedG6#Fgu-FD6#%Umissing~involutive~basis;~run~InvolutiveBasis~
first.G@)-Ffn6$FNF[pC(>6$8'8(-%7Involutive/pmaxmin_degGFa^l@$2Ff[lF\_l-%'printf
G6$Q:Dim(M.s)~=~0,~for~s~<~%d|+F$F\_l?(F]qF\_lFT,&F[_lFT!""FTFep-Fb_l6%Q0Dim(M.
%d)~=~%a|+F$F]q-F"Fbq-Fb_l6%Q;Dim(M.s)~=~%a,~for~s~>=~%dF$-F]y6$/8:.FN-%FInvolu
tive/SubmoduleHilbertPolynomialG6#Fb`lF[_l@$F^p-%;Involutive/restoreP_T_ListG6#
Feu-Fct6#FO3-Ffn6$FNFeo/FNFf[lC%>89-%7Involutive/SubmoduleHFG6#FN@$F^pFh`lFcalF
^alC%>Fcal-%)simplifyG6#,&FdalFT-Feal6#,&FNFTFg_lFTFg_l@$F^pFh`lFcal@%F^pC$Fh`l
f*6#F&F$6$%)operatorG%&arrowGF$-F"6$T#/F^s9$F$F$6$F:Fbpf*FeblF$FfblF$-F"6#F\clF
$F$F$F$F$F$F$
M7R0
I@Involutive/PolHilbertPolynomialf*6"6%%"iG%"sG%/args_without_sG6#%\pCopyright~
(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.GF$C&>8%
.F->8&%%NULLG@%/9#"""@%3-%%typeG6$&9"6#F5%)equationG/-%#opG6$F5F;Q$varF$>F--FA6
$""#F;>F-F;?(8$F5F5F4%%trueG@%3-F96$&F<6#FJF>/-FA6$F5FPFC>F--FA6$FGFP>F06$F0FP@
%3-F96$F-%(numericG/F-""!-%1Involutive/PolHPG6#F<-%)simplifyG6#,&-F\o6$F0/FCF-F
5-F\o6$F0/FC,&F-F5!""F5FioF$F$F$F$
M7R0
IDInvolutive/PolWeightedHilbertSeriesf*6"62%"bG%"fG%"iG%"jG%"pG%"sG%$serG%'vt_d
egG%'n_entrG%%varsG%%nvarG%$altG%,given_basisG%/args_without_sG%$varG%2tmp_P_T_
List_dataG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G
F$C/>8/%&falseG>8).F=@%31""#9#-%%typeG6$&9"6#FB%%listGC%>80%%trueG>816$&FH6#"""
FG>8'""$C&@$52FCFT4-FE6$FRFJ-%&ERRORG6#%inexpecting~a~list~with~variables~and~d
egrees~as~first~argument.G>FMF;>FP%%NULLG>FVFB?(8&FVFTFCFN@)3-FE6$&FH6#Fbo%)equ
ationG/-%#opG6$FTFgoQ$varF$C$>F=-F\p6$FBFgo@$4-FE6$F=%%nameG-Fjn6#%Sexpecting~a
n~indeterminate~for~the~Hilbert~series.G-FE6$FgoFgp>F=Fgo3-FE6$Fgo%'stringG/Fgo
Q,alternativeF$>F:FN>FP6$FPFgo@%FMC$>6$8382-%7Involutive/setup_basisG6#FP>8-FGC
$>FarFR@$4-%)assignedG6#%)P_T_ListG-Fjn6#%Umissing~involutive~basis;~run~Involu
tiveBasis~first.G>8,-%%nopsG6#&Fir6%FTFTFT>F\r-%5Involutive/proc_varsG6$FarF^s>
8+&F\r6#FW>F\r&F\rFS>8.-F`s6#F\r@%F:C%>8%-%$mulG6$*$,&FTFT)F=&FisFho!""F]u/Fbo;
FTF_t>8*-%$addG6$*&)F=&Fis6#,&F_tFTFboFTFTFetFT/Fbo;FTF^s@$0&Fir6%FT""'FT""!?(F
boFTFT-F`sFhrFNC)>8$-%%subsG6$/%)infinityGFav&Fir6$Fbo""&>8(7#-%"$G6$FavF_t>Fet
)F=,&&Fis6#,&F_tFT&Fir6%FboFWFBFTFT-Fcu6$*&&Fir6&FboFWFTFVFT&Fis6#FVFT/FVF_uFT?
(FVFTFTF_tFN@$/&Fir6%FboF^wFVF[w>Fet*&FetFT,&FTFT)F=FbxF]uF]u>Fau,&FauFTFetF]u>
F`w-%8Involutive/nextmonomialG6$F`wFfv?(F$FTFTF$0F`wFawC$>Fau,&FauFT*&FetFT)F=-
%(convertG6$F`w%"+GFTF]u>F`wFayC$>Fau-Fhv6$7#-%$seqG6$/&F\rFhoF[uF^u-%=Involuti
ve/FactorModuleBasisG6$F\rQ"GF$@%/F^sFT>Fau*&)F=&Fis6#,&F_tFTFTFTFTFauFT>Fau-%'
expandG6#-Fcu6$*&FfuFT&FauFhoFTFju@$FM-%;Involutive/restoreP_T_ListG6#F[rFauF$F
$F$F$
M7R0
I<Involutive/tupcoefflistmultf*6'%"pG%$varG%$basG%%multG%%permG6%%"cG%"iG%"nG6#
%jnCopyright~(C)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8&-%%no
psG6#9$>8$7#-%"$G6$""!F3@%2""$9#?(8%"""FEF3%%trueGC$>F9-%'subsopG6$/&9(6#FD-%>I
nvolutive/monomcoefflistmultG6&&F7FO9%&9&FO&9'FOF9@$4-%%typeG6$&F96#FM%%listG-%
'RETURNG6#-FJ6$/FDFhnF:?(FDFEFEF3FFC$>F9-FJ6$/FDFPF9@$4-Ffn6$&F9FOFjn-F\o6#-FJ6
$/FDF[pF:-F\o6#F9F0F0F0F0
M7R0
I<Involutive/PolSubFactorFastf*6%%$RR1G%#R1G'%%varsG%%listG6*%"KG%"LG%"nG%#J1G%
"iG%"GG%"vG%$varG6#%^pCopyright~(C)~2003-2010~by~Mohamed~Barakat~and~Daniel~Rob
ertz.~All~rights~reserved.G6"C4>8$-%$mapG6$f*6#%"aGF56$%)operatorG%&arrowGF5&9$
6#"""F5F5F5&-%6Involutive/proc_inputG6#FC6#""%>8%-F:6$f*F=F5F?F5FBF5F5F5&-FH6#9
%FJ@$0-%%nopsG6#&F8FD-FX6#&FMFD-%&ERRORG6#%dpThe~two~modules~are~submodules~of~
different~free~modules!~Check~the~number~of~components!G>8+&-%5Involutive/proc_
varsG6$9&FWFD@%2""$9#>8*&9"FJ>Fho.%"sG>8&FW>8'-%>Involutive/InvBasisFastAssertG
6$FMFbo>F8-%<Involutive/PolInvReduceFastG6&F8FapFboQ"LF5>F8-%8Involutive/jetsde
pcheckG6#F8@$/F87">F87#7#-%"$G6$""!F_p>8)-F:6$f*F=F5F?F5/-%$rhsGFI-%$lhsGFIF5F5
F5-%2Involutive/AddRhsGF]q>F8Fbr>F_p-FXF]q>F87$-%#opG6#Fap-FjrF]q-Fcp6$F8Fbo>F8
-%4Involutive/SyzygiesGF^s@%F_q>F8-%:Involutive/AssertInvBasisG6$FbqFbo>F8F]s7&
FiqF8-%<Involutive/PolHilbertSeriesG6#Fho-%>Involutive/PolCartanCharacterG6#7#-
Feq6#;FE-FX6#F]oF5F5F5F5
M7R0
I6Involutive/PolKernel2f*6&%"MG%"AG%"NG'%%varsG%%listG6-%"aG%"iG%"jG%"nG%"RG%"S
G%'n_entrG%$varG%+assign_embG%(no_presG%$redG6#%^pCopyright~(C)~2005-2010~by~Mo
hamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.G6"C(>8*&-%6Involutive/pr
oc_inputG6#9&6#""">8+&-%5Involutive/proc_varsG6$9'F<FB>8-%&falseG>8,FM?(8%""&FC
9#%%trueG@'-%%typeG6$&9"6#FQ%'stringG@%/FYQ"NF9>FLFT-%&ERRORG6#%0invalid~option
.G-FW6$FY%'symbolG>FOFTF[o@%FL-%8Involutive/SyzygyModuleG6%9%FJ/Q$modF9FAC$>8)F
do@%-&%'linalgG6#%'iszeroG6#F\pC$@$FO@%/%6Involutive/matrixtypeG%'MatrixG-%'ass
ignG6$&FZ6#FR-%(convertG6$7#7#""!Fip-F[q6$F]q-%5Involutive/jetsmkmatG6#Fbq@%-FW
6$&F\pFBF*7&7#/7#FC-%#opGFcpFarFdq7#-%"$G6$Fdq-%%nopsG6#FE7&7#/FarF\pFarFdqFdrC
*>8(-Feo6%F\pFE/Fio9$>8.FM@%-FW6$&F`sFBF*>8'-Fir6#Fjs>F\tFC>FQFC?(F9FCFCF932FC-
FirFcp1FQ-Fir6#F`sC$?(8&FCFCF\tFT@$30&&F`sFen6#FjtFdq4-%$hasG6$F^uFEC&>F\p-%'su
bsopG6$/Fjt%%NULLGF\p>F`s-%$mapG6$f*6#F,F96$%)operatorG%&arrowGF97$-Fcr6#&Fds6#
;FC,&T#FC!""FC-Fcr6#&Fds6#;,&F\wFCFCFCT%F9F96&F.FjtF/F\tF`s>F\t,&F\tFCF]wFC>Ffs
FT>FQ,&FQFCFCFC@$FfsC$>F`s-%'removeG6$f*FavF9FbvF9/Fds7#-Ffr6$FdqF\wF9F96$F/F\t
F`s@$/F\tFC>F`s-F^v6$FcrF`s@$FO@%Fgp-F[q6$F]q-F`q6$-%4Involutive/jetsmkatGFcpFi
p-F[q6$F]q-FhqFcp@%F[r7&7#-%$seqG6$/-Fhu6$/FQFC7#-Ffr6$FdqFdt&F\pFen/FQ;FCFdtF`
s-%<Involutive/PolHilbertSeriesGF9-%>Involutive/PolCartanCharacterG6#7#-Ffr6#;F
CFhr7&7#-F[z6$/F^z7#FdzFezF`sFgzFizF9F9F9F9
M7R0
I3Involutive/PolExtnf*6%'%"qG%*nonnegintG%%_AR1G'%%varsG%%listG6*%"aG%"iG%$invG
%$AR0G%$AR1G%#R0G%#R1G%$RR1G6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All
~rights~reserved.G6"C$@%/%6Involutive/matrixtypeG%'MatrixG>8&&%.LinearAlgebraG6
#%*TransposeG>F>&%'linalgG6#%*transposeG@%/9$""!C$>8)-%4Involutive/PolSyzOpG6$-
FD6#-%5Involutive/jetsmkmatG6#-%$mapG6$f*6#F-F76$%)operatorG%&arrowGF7&FJ6#"""F
7F7F7&-%6Involutive/proc_inputG6#9%6#""%9&@%2""$9#C$>FN-%8Involutive/PolSubFact
orG6&FN7#7#-%"$G6$FK-&FE6#%'coldimG6#FNFco&9"Fao-%'subsopG6$/F[o-FX6$f*FenF7Ffn
F7/-%$lhsG6#FJ-T#6#-F;6#7#-%$rhsGFcqF7F76$F/F>&FNFjnFNC$>FN-F[p6%FNF]pFco-Fjp6$
/F[o-FX6$f*FenF7FfnF7F`qF7F7F\rF]rFNC*>8'-F;6#-FX6$f*FenF7FfnF7FinF7F7F7F\o>8(-
F;6#7#7#F[o>8%F[o?(F7F[oF[oF731FgsFJ4-&FE6#%'iszeroG6#FasC%>Fas-%%copyG6#Fjr>Fj
r-FP6$FjrFco>Fgs,&FgsF[oF[oF[o>FN-F>Fet>8*-F>F`t>8+-FP6$FNFco@%Feo-F[p6&FauF^uF
coFgp-F[p6%FauF^uFcoF7F7F7F7
M7R0
I9homalg/Involutive/IsUnitf*6$%"pG'%$varG%%listG6#%"vG6#%jnCopyright~(C)~2007-2
010~by~Daniel~Robertz.~All~rights~reserved.G6"@%%4Involutive/ratcoeffGC$>8$-%5h
omalg/NormalizeRingG6$9%%+InvolutiveG309$""!/-%*intersectG6$-%'indetsG6#F:<#-%#
opG6#&F26#"""<"5/F:FI/F:!""F-F-F-F-
M7R0
I0Involutive/initf*6"6$%*ini_printG%"vG6#%jnCopyright~(C)~2002-2010~by~Daniel~R
obertz.~All~rights~reserved.GF$@$50%7Involutive/initializedG.%%trueG32""!9#-%%t
ypeG6$&9"6#""".%%listGC3>8$f*F$F$F$F$@$0%6_Env_Involutive_printG%&falseG-%&prin
tG6#F8F$F$F$>%2Involutive/characGF2>%4Involutive/ratcoeffGF/>%2Involutive/absre
mGFD>%5Involutive/janetlikeGFD>%4Involutive/divisionGF2>%5Involutive/InvoBasisG
%4Involutive/InvBasisG>%6Involutive/PolIReduceG%:Involutive/PolInvolReduceG>%6I
nvolutive/GroebBasisG%7Involutive/GroebnerBasG>%5Involutive/SyzygyModG%5Involut
ive/SyzModuleG>%3Involutive/invcritG7%F:""#""$>%?Involutive/ResolutionAutoTrunc
G"#5>%9Involutive/launchJBcountGF2>%;Involutive/launchGINVcountGF2>8%-%*substri
ngG6$-%(convertG6$-%+kerneloptsG6#%(versionG%'stringG;F:"")@%30FeoQ)Maple~V,F$0
FeoQ)Maple~6.F$>%6Involutive/matrixtypeG%'MatrixG>Fjp%'matrixG>F-F.F$61F-FIFKFj
pFOFQFMFSFVFYFfnFinF^oFaoFcoF$F$
M7R0
I8Involutive/reduce_by_hcf*6(%#LLG%#hcG%'lmprocG%&N_OrdG%%seqvG%(loc_varG6+%"iG
%"hG%"rG%%termG%#lmG%%leadG%"jG%"LG%%contG6#%boCopyright~(C)~2008-2010~by~Marku
s~Lange-Hegermann.~All~rights~reserved.G6"C%>8+9$@$0&9%6$""#"""""!?(8*FBFB-%%no
psG6#F:%%trueGC'>8%&F:6%FEFBFB>&FL6#&F:6%FE""$FA-%'expandG6#,&FPFB*&&F:6%FE""'F
BFB&F:6%FEFfnFAFB!""?(8$FBFB-FG6#FLFIC%>8&FC?(F7FBFBF70&FL6#F[oFCC$@%-%%typeG6$
Fco%"+GC$>8'7%-%"$G6$FC,&F[oFBFinFB-%#opG6$FBFco-F`p6$FC,&F\oFBF[oFin>Fco-%'sub
sopG6$/FBFCFcoC$>F]p7%F_pFcoFfp>FcoFC@%-9'6$7%FCFC&F?6#FB7%FCFC&-9&6#F]pFhq>F`o
,&F`oFB&F]pFdoFBC$>8,-%(contentG6$F`r9(@$0FcrFB>%)_inv_denG7$-Fdp6#F[sFcr>FcoF`
o>FP-FV6#,&FPFBFYFB@$0FLFMC$>8(-F\rF]o>F:-F[q6$/FE7*7$FL7#FC&F:6$FEFA&F:6$FEFT&
F:6$FE""%&F:6$FE""&&F:6$FEFfn7"-%1Involutive/ecartG6&F_t7$FctF[uFgr9)F:F:F7F^sF
7F7
M7R0
I6Involutive/compute_hcf*6&%'lmprocG%&N_OrdG%%seqvG%(loc_varG6)%$FMBG%#lvG%"iG%
#lmG%&debugG%#hcG%.P_T_List_saveG6#%boCopyright~(C)~2008-2010~by~Markus~Lange-H
egermann.~All~rights~reserved.G6"C'@$1""&9#C$>8*%)P_T_ListG>F<&9"6#F7>8%<#-%$se
qG6$&9&6#&9'6#8&/FM;"""-%%nopsG6#FK>8$-%=Involutive/FactorModuleBasisG6#FH@$4-%
%typeG6$FU%%listG>FU7#FU@%5/FU7"-%$hasG6$-%$mapG6$f*6#%"aGF36$%)operatorG%&arro
wGF3-%&denomG6#9$F3F3F3FUFBC$@$F6>F<F;-%'RETURNG6#7$""!7$FfpFfpC(>FU-FW6$FHQ"CF
3@%-Ffn6$&FU6#FPFhnF`q7#F`q>8)-F^p6#%"%G?(FM""#FP-FR6#FU%%trueGC%@%-Ffn6$&FUFLF
hnFar7#Far>8'Feq@$-9%6$7%FfpFfp&FdrFaq7%FfpFfp&FdqFaq>FdqFdr@$F6>F<F;-Fcp6#FdqF
36#F<F3F3
M7R0
I>homalg/Involutive/LocalIsUnitf*6$%"pG'%$varG%%listG6"6#%boCopyright~(C)~2008-
2010~by~Markus~Lange-Hegermann.~All~rights~reserved.GF)-%7Involutive/LocalIsUni
tG6%9$9%7#-%$seqG6$%"iG/F5;"""-%%nopsG6#F0F)F)F)F)
M7R0
IAInvolutive/FactorModuleBasisGINVf*6#%"LG6T%"cG%"iG%"jG%"kG%"lG%"rG%"vG%"zG%%f
extG%'n_entrG%)rhs_entrG%'no_rhsG%"FG%"RG%$varG%(var_ordG%'vt_degG%(deg_ordG%$P
OTG%)tup_permG%-inv_tup_permG%#IBG%&m_ordG%+time_boundG%#trG%)entr_posG%)alg_el
emG%+trans_elemG%)radicalsG%(rootofsG%*donotreadG%*forcelistG%,withmultvarG%(ge
nfuncG%-optionstringG%*nocollectG%(algextsG%-algextindetsG%/transextindetsG%%al
goG%*quietmodeG%*nowarningG%+tracedenomG%#hfG%+movedboundG%-qlengthboundG%,degr
eeboundG%*outoftimeG%)dolaunchG%&ginv2G6#%jnCopyright~(C)~2009-2010~by~Daniel~R
obertz.~All~rights~reserved.G6"C^o@$0%7Involutive/initializedG.%%trueG-%0Involu
tive/initGFen@$/%4Involutive/ratcoeffG%&falseG-%&ERRORG6#%Qno~factor~module~bas
is~defined~over~the~integersG>80-%6Involutive/proc_inputG6#9$>8-&Fgo6#""">8.&Fg
o6#""#>8/&Fgo6#""$>8>&Fgo6#""'>8?&Fgo6#""(>Fgo&Fgo6#""%@%332Fep9#-%%typeG6$&9"F
ip%%listG4-F_r6$Far-Fcr6#%(integerGC)>82Far>81-Fio6#&FbrFdp@$2F`p&F^sF_p-Fco6#%
Xexpecting~list~of~relations~for~the~residue~class~ring.G@$4&F^sFip-Fco6#%forig
ht~hand~sides~for~relations~of~the~residue~class~ring~are~not~supported.G>F^s&F
^sFgq@%/&F^s6$F`pF`p7#""!>F^s7"C$>F^s7#-%$seqG6$-F\u6$7$-%'subsopG6$/8%&F^s6%8&
F`pF`p7#-%"$G6$FetF]p7#-F[v6$FetFbp/Feu;F`pF]p/Fhu;F`p-%%nopsG6#F^s>Fgo7$-%#opG
6#Fgo-FjvFfv>8)FhqC&@$2F]rFep-Fco6#%Pexpecting~list~of~variables~as~second~argu
ment.G>F\sFas>F^sFgt>F^wFjp>F\s-%5Involutive/proc_varsG6$F\sF]p>83&F\sFdp>84&F\
sFip>85&F\sFgq>87&F\s6#""&>8=&F\sF^q>F\s&F\sF_p>%&_nvarG-Fev6#F\s@$-%$hasG6$-%$
mapG6$f*6#%"aGFen6$%)operatorG%&arrowGFen3-F_r6$&F[pF_p-Fcr6#-%(polynomG6$%)any
thingGT#-F_r6$&F[pFdpFdzFenFen6$F5F\sFgoFao-Fco6#-%$catG6%%Oexpecting~a~list~of
~(lists~of)~polynomials~in~G-%(convertG6$F\s%'stringG%4~as~first~argument.G>Faq
-%'removeG6$f*6#F(FenF]zFen-%'memberG6$F[pFjzFenFenF^[lFaq>8*-Ff[l6$-%+kernelop
tsG6#%(versionGFh[l>8$%2Involutive/characG@%/F]xFgt>8:Fhq>Fa]l7#-F[v6$Fhq-Fev6#
F]x>8HFgt>8IFgt>8JFgt>8,Q!Fen>8KF`^l>8;Fet>8<Fao>8L-%&evalbG6#52Fet-%+searchtex
tG6$Q&APPLEFenFd\l/-%*substringG6$-Ff[l6$-%*interfaceG6#.Fj\lFh[l;F`p"#GQ=Stand
ard~Worksheet~InterfaceFen>8BFao>8MFao>8NFao>8PFet>8QFet>8RFet>8GFao>8SFao>8OFg
t>8TFao>8UFao>8CFao>8DFao>8EFao>8FF`^l?(FeuF^wF`pF]rF[o@)5-F_r6$&Fbr6#FeuFir-F_
r6$FbblFcr>Fa]lFbbl-F_r6$FbblFh[l@-/FbblQ/tracerelationsFenC$-%(WARNINGG6#Q[oop
tion~'tracerelations'~is~not~applicable~with~ginv~up~to~now...Fen>Ff^lF[o/FbblQ
*donotreadFen>F``lF[o/FbblQ&denomFenFen/FbblQ'launchFenFen/FbblQ&ginv2Fen>FdalF
[oC$>8(Fbbl?(FhuF`pF`p-%'lengthG6#F^dlF[o@,/&F^dl6#FhuQ"CFenC$>FfalF[o>F\bl-Fb[
l6$F\blFgdl/FedlQ"GFenC$>FjalF[o>F\bl-Fb[l6$F\blF^el/FedlQ"LFenFen/FedlQ"MFenC$
>FhalF[o>F\bl-Fb[l6$F\blFgel0FedlF`^l-Fco6#%fooptions~must~be~given~by~a~string
~consisting~of~letters~in~|fr"C",~"G",~"M"|hr.G-F_r6$Fbbl%)equationG@K/-Fjv6$F`
pFbblQ%NameFenC$@$4-F_r6$-Fjv6$FepFbblFh[l-Fco6#%Fexpecting~a~string~for~option
~"Name".G>F_^lF^gl/FfflQ%charFenC$@$4-F_r6$F^gl%*nonnegintG-Fco6#%Qexpecting~0~
or~a~prime~number~for~option~"char".G>F\]lF^gl/FfflQ%timeFenC$@$Fhgl-Fco6#%Sexp
ecting~time~bound~in~seconds~for~option~"time".G>Fd^lF^gl/FfflQ*nowarningFenC$@
$4-F_r6$F^gl%(booleanG-Fco6#%Pexpecting~boolean~value~for~option~"nowarning".G>
Fb`lF^gl/FfflQ)GroebnerFenFen/FfflQ'algextFen@%-F_r6$F^glFcr?&8'F^glF[oC&>8+-%&
minusG6$-%'indetsG6#F\jl<%-Fjv6#F]^l-Fjv6#-Fhy6%Ff[lF\q%%nameG-Fjv6#F[^l@$50-Fe
v6#F_jlF`p4-F_r6$F\jl-Fgz6$FizF_jl-Fco6#%`sexpecting~a~univariate~polynomial~(p
ossibly~with~rational~coefficients~in~previously~defined~algebraic~elements)~fo
r~option~"algext".G@$0-%*intersectG6$F_jl<#-FjvFby<"-Fco6#%_qthe~univariate~pol
ynomial~for~option~"algext"~may~not~contain~indeterminates~of~the~polynomial~ri
ng.G@$4-Fa\l6$-FjvFd[mF[^lC$>Fi]l7$-Fjv6#Fi]lF\jl>F[^l7$F^[mF\]mC&>F_jl-Fajl6$-
Fdjl6#F^glFfjl@$5Fb[m4-F_r6$F^glFh[mFj[m@$F^\mFe\m@$Fi\mC$>Fi]l7$F`]mF^gl>F[^lF
c]m/FfflQ)transextFen@'-F_r6$F^gl-Fcr6#F][m?&F\jlF^glF[o@$4-Fa\l6$F\jl7$-Fjv6#F
aqFgjl>F]^l7$FgjlF\jl-F_r6$F^glF][m@$4-Fa\l6$F^glFa_m>F]^l7$FgjlF^gl-Fco6#%Sexp
ecting~(list~of)~name(s)~for~option~"transext".G/FfflQ*algorithmFenC$>Fb^lF^gl@
$54-F_r6$Fb^lFh[l33330Fb^lQ#TQFen0Fb^lQ)TQDegreeFen0Fb^lQ*TQGradingFen0Fb^lQ,TQ
BlockHighFen0Fb^lQ+TQBlockLowFen-Fco6#%gqexpecting~strings~"TQ"~or~"TQDegree"~o
r~"TQBlockHigh"~or~"TQBlockLow"~or~"TQGrading"~for~option~"algorithm".G/FfflQ&q
uietFenC$@$F\il-Fco6#%Lexpecting~boolean~value~for~option~"quiet".G>Fh^lF^gl/Ff
flQ(collectFenC$@$F\il-Fco6#%Nexpecting~boolean~value~for~option~"collect".G>F\
al4F^gl/FfflFfclC$@$F\il-Fco6#%Lexpecting~boolean~value~for~option~"denom".G>Fd
`lF^gl/FfflFcclC$@$F\il-Fco6#%Pexpecting~boolean~value~for~option~"donotread".G
>F``lF^gl/FfflQ#HFFenC$@$4-F_r6$F^gl-Fcr6#F[hl-Fco6#%enexpecting~a~list~of~non-
negative~integers~for~option~"HF".G>F`alF^gl/FfflQ+MovedBoundFenC$@$Fhgl-Fco6#%
Zexpecting~a~non-negative~integer~for~option~"MovedBound".G>Ff`lF^gl/FfflQ-Qlen
gthBoundFenC$@$Fhgl-Fco6#%fnexpecting~a~non-negative~integer~for~option~"Qlengt
hBound".G>Fh`lF^gl/FfflQ,DegreeBoundFenC$@$Fhgl-Fco6#%enexpecting~a~non-negativ
e~integer~for~option~"DegreeBound".G>Fj`lF^gl/FfflQ.tailreductionFenFen5/FfflQ'
degreeFen/FfflQ'maxdegFenFen/-Fd_l6$Fffl;F`pFjpQ$varFenFen/-Fd_l6$Fffl;F`pFhqQ%
subsFenFen-Fco6#%0invalid~option.GF`gm@$52F`p-Fev6#F[y3/FfgmF`p0&F[yF_pF]pC$-%4
Involutive/InvBasisG6#Fbr-%'RETURNG6#-%=Involutive/FactorModuleBasisG6$F\sF\bl@
$4F\al@%0F]]lFet>Fgo-%$modG6$-%(collectG6%FgoF\s%,distributedGF]]l>FgoF^im>F^dl
-%4Involutive/proc_ordG6*Fa]lF\sF]xF`xFcxF\sF[yF[o>86&F^dlFgq@$Fhim>F[yFgt@%0Ff
x7#-F[v6#FavC$>88-Fhy6$f*F_\l6#F)FenFenC$-Fa\l6%F[pFjz.F\]lF\]lFenFen6$F:FfxF^j
m>Fgo-Fhy6$f*F_\lFgjmFenFen-Fbu6$/F`p7#-F\u6$&Fcz6#&Fjz6#F\]l/F\]l;F`pT%F[pFenF
en6&F:FfxF0F]pFgo>FcjmFfx>%)_inv_denGFgt>F\q-%>Involutive/algebraicextensionG6)
FgoF\qFi]lF[^lFaqFgtFgt>Fgo&F\qF_p>Fi]l&F\qFip>F[^l&F\qFgq>8@&F\qFhx>8A&F\qF^q>
Faq&F\qFcq>F\q&F\qFdp@$0F]]nFgtC$>Fi]l-%%subsG6$F]]nFi]l>Fgo-F[^n6$F]]nFgo>89-%
5Involutive/ginvBasisG6GFgoF\sF\qFaqF]pFbpFgpF\]lFa]lF]xF[y&F`x6#;F`pF`y&F`x6#;
,&F`yF`pF`pF`p,&F`yF`pF]pF`pFi]lF[^lF]^lF_^lF`^lFb^lFd^lFf^lFh^lFaoF[oF``lFb`lF
d`lFf`lFh`lFj`lQ2factormodulebasisFenFfxF[oF`]nF]]nF`alFbal@$5F``lFbal-Fahm6#-F
jv6#Fa^n@%5Fjal-Fey6$%3_JB_factor_multvarGF`p@%Ffal@%Fhal-Fahm6#-Fhy6$f*F_\l6$F
)%"mGFenFenC$>Feu-%'selectG6$f*FgjmFenF]zFen2Fet&&Fh_n6#T$FjoFenFen6$F(F[p7#-F[
v6#;F`p-Fev6#%(_JB_varG7$&%+_JB_factorGFjo-Fhy6$f*FgjmFenF]zFen&FdanFjoFenFenFe
nFeuFenFenFen7#-F[v6#;F`p-Fev6#Fgan-FahmFabn-Fahm6#-%'expandG6#-%$addG6$*&&Fgan
FcblF`p-%$mulG6$),&F`pF`p&FdanFfdl!""&&Fh_nFcblFfdl/FhuFaanFccn/FeuF_bnFganFen6
$F`yFa\nFenFen
M7R0
I@Involutive/copyright_Involutivef*6"F$6#%\pCopyright~(C)~2000-2010~by~Carlos~F
.~Cid~and~Daniel~Robertz.~All~rights~reserved.GF$C)-%&printG6#%;Involutive~(200
0-2010)~(C)G-F)6#%inCopyright~(C)~(2000-2010)~by~Carlos~F.~Cid~and~Daniel~Rober
tz.G-F)6#%5All~rights~reserved.G-F)6#%YThis~software~should~be~referenced~if~it
~is~used~in~workG-F)6#%>eventuating~in~a~publication.G-F)6#%GUsers~are~free~to~
modify~this~program,G-F)6#%Tbut~it~is~not~to~be~redistributed~in~modified~form.
GF$F$F$F$
M7R0
I:Involutive/pnegdeglex_POTf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~200
4-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@&2&9$6#""#&9%F3-%'RETURNG6#
%&falseG2F5F1-F86#%%trueG>8%-%(convertG6$&F26#"""%"+G>8&-FB6$&F6FEFG@'2F@FIF72F
IF@F<?(8$FFFF-%%nopsG6#FDF>@&2&FL6#FQ&FDFXF72FYFWF<F>F-F-F-F-
M7R0
I>Involutive/pbinary_insert_posf*6)%"aG%"FG%"sG%"nG%"lG%&N_OrdG%#eqG6%%"iG%"jG%
"pG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights
~reserved.G6"C'@$/9(""!-%'RETURNG6$7#9$"""@$3/9&F=/9'F6@$-9)6$F<&9%6#F=@%-9*FG-
F96$FIF=-F96$-%'subsopG6$/F=FGFIF=@$/FAFC-F96$-FS6$/FA6$&FI6#FAF<FI,&FAF=F=F=>8
&-%%iquoG6$,(FAF=FCF=F=F=""#@%-FF6$F<&FI6#F\o@%-FMFdo6$FIF\o-F"6)F<FIFA,&F\oF=!
""F=F6FFFM-F"6)F<FIF\oFCF6FFFMF2F2F2F2
M7R0
I4Involutive/proc_ordf*6*%&m_ordG%$varG%)seqv_ordG%'vt_degG%(deg_ordG%%seqvG%)e
ntr_posG%/default_lmprocG6+%#_aG%#_bG%#_cG%"aG%(loc_varG%$sepG%&B_OrdG%&N_OrdG%
"TG6#%jnCopyright~(C)~2002-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C$@$5
53/9&7"-%%typeG6$9$%%listG30F@FA-FC6$FE%(integerG33-FC6$F@FFFB0-%%nopsG6#F@-FR6
#FE-%&ERRORG6#%_sthe~term~order~must~be~specified~by~a~list~of~integers~whose~n
umber~of~elements~equals~the~number~of~lists~in~the~list~of~variables.G@'FIC'@$
4-%'memberG6$FE7$-%"$G6#;"""""'-F]o6#;!"'!""-FW6#%^rinvalid~term~order;~valid~p
arameters~are~the~integers~between~1~and~4,~and~between~-1~and~-4;~see~?Involut
iveBasis.G@$309'7$-F]o6$F`o-FR6#9%-F]o6$""!,&-FR6#F]pF`oFapFfo-Fin6$FE7&F`o""$F
fo!"$-FW6#%ioassigning~degrees~to~variables~or~tuples~is~not~allowed~in~the~pur
e~lex.~case.G>8,-%:Involutive/proc_termorderG6(FE9)&F]p6#;F`oFap&F]p6#;,&FapF`o
F`oF`oFfo9*9+@%2FEFfp>8(7#-F]oFiq>FdrFA-%'RETURNG6#7(&Fcq6#F`o-%&parseG6#-%$cat
G6%Q+(_a,_b)->`F9-%(convertG6$&Fcq6#""#%'stringGQ/`(_a[3],_b[3])F9-F_s6#-Fbs6%F
ds-Ffs6$&Fcq6#""%F[tF\t&Fcq6#Fao&Fcq6#""(FdrFBC)@$F\p-FW6#%ioassigning~degrees~
to~variables~or~tuples~is~not~supported~for~block~orderings.G>Fcq7#-%$seqG6$-Fe
q6(&FE6#8'&F@Fhu&9(Fhu7#FdpF_rF`r/Fiu;F`oFT@$2F`o-FR6#<#-%#opG6#-%$mapG6$f*6#F1
F96$%)operatorG%&arrowGF9&FEFgtF9F9F9Fcq-FW6#%_oterm~orders~of~type~POT~and~TOP
~cannot~be~composed~to~a~block~order.G>FdrFA?(FiuF`oF`oFT%%trueGC$@%/FiuF`o>8)7
#-FR6#&F@F]s>F[x7$-Ffv6#F[x,&&F[x6#FfoF`o-FR6#FjuF`o@$2FguFfp@%1FjsFiu>Fdr7$-Ff
v6#Fdr-F]o6#;,&&F[x6#,&FiuF`oFfoF`oF`oF`oF`o&F[xFhu>Fdr7$F_y-F]o6#;F`oFhy@%%4In
volutive/ratcoeffGC$@%&F\sFgt>8*-F_s6#-Fbs6'QQ(_a,_b)->`Involutive/block_ord_PO
T`(_a[3],_b[3],F9-Ffs6$F[xF[tQ",F9-Ffs6$-Fiv6$f*F\wF9F]wF9&FE6#""&F9F9F9FcqF[tQ
")F9>Fdz-F_s6#-Fbs6'QM(_a,_b)->`Involutive/block_ord`(_a[3],_b[3],F9FjzF\[l-Ffs
6$-Fiv6$f*F\wF9F]wF9Fb[lF9F9F9FcqF[tFe[l>8+-F_s6#-Fbs6'F[\lFjzF\[l-Ffs6$-Fiv6$f
*F\wF9F]wF9&FE6#F]qF9F9F9FcqF[tFe[lC$@%Fbz>Fdz-F_s6#-Fbs6'QS(_a,_b)->`Involutiv
e/block_ord_Z_POT`(_a[3],_b[3],F9FjzF\[l-Ffs6$-Fiv6$f*F\wF9F]wF9Fb[lF9F9F9FcqF[
tFe[l>Fdz-F_s6#-Fbs6'QO(_a,_b)->`Involutive/block_ord_Z`(_a[3],_b[3],F9FjzF\[l-
Ffs6$-Fiv6$f*F\wF9F]wF9Fb[lF9F9F9FcqF[tFe[l>Fb\l-F_s6#-Fbs6'F`^lFjzF\[l-Ffs6$-F
iv6$f*F\wF9F]wF9F\]lF9F9F9FcqF[tFe[l-Fir6#7(-F_s6#-Fbs6)Q>_c->`Involutive/plead
mon`(_c,F9-Ffs6$FgqF[tQH,(_a,_b)->`Involutive/block_cmp`(_a,_b,F9-Ffs6$F@F[tF\[
l-Ffs6$-Fiv6$f*F\wF9F]wF9&FEFitF9F9F9FcqF[tQ#))F9-%%evalG6#Fb\l-Fe`l6#FdzFbz-F_
s6#-Fbs6'QG(_a,_b)->`Involutive/block_cmp`(_a,_b,F9F[`lF\[l-Ffs6$-Fiv6$f*F\wF9F
]wF9Fb`lF9F9F9FcqF[tFe[lFdr-FW6#%ioexpecting~an~integer~or~a~list~of~integers~a
s~specification~of~the~term~order.GF9F9F9F9
M7R0
I?Involutive/pnormal_form_expandf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG
64%"aG%"hG%"iG%"kG%"rG%#lmG%$divG%'n_entrG%*zero_listG%.rhs_zero_listG%#lvG%#nl
G%#nvG%"HG%"eG%#meG%#hiG%(termo_hG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid
~and~Daniel~Robertz.~All~rights~reserved.G6"C,>%(_nnformG,&FC"""FEFE>8%9$>8+-%%
nopsG6#&FG6#FE@$09)7"C'>8.<#-%$seqG6$&9&6#&FR6#8&/Fjn;FE-FL6#FR>8/-FL6#FV>80-%'
removeG6%%$hasGFfnFV>81FS>FG7#-%=Involutive/cancel_locvar_rhsG6'FN&FG6#""#9'Ffn
FR>8,7#-%"$G6$""!FJ>8-7#-Fhp6$Fjp-FL6#F`p>8(7$FepF\q>8)-FcpFM?(F@FEFEF@0&Ffq6$F
bpFEFjpC(>FjnFE>8*%&falseG@$FQ>82,&-%$maxG6#-FY6$-%'degreeG6$&FN6#8'FV/F_s;FEFJ
FE-%$addG6$&&Ffq6$FEFE6#&FRF^s/F_s;FEF`o!""?(F@FEFEF@31Fjn-FL6#9%4F_r@%-%7Invol
utive/pinv_divideG6%&Fbt6$Fjn""$&Fbt6$Fjn""&&FfqFOC%>%'_reducG,&FauFEFEFE@%FQC,
>83,&-Ffr6#-FY6$-F[s6$&&Fbt6%FjnFEFEF^sFVF`sFE-Fcs6$&&Fbt6%FjnFjtFEFhsFjsF\t>84
Fjp>F_s-FL6#Fjo?(F@FEFEF@32FjpFfu2FjpF_sC$@$331&&FjoF^s6#FjtFfu/&&&FewFapFOFap&
F^uFap-%:Involutive/conv_divisibleG6$FiwF^uC$>FgvF_s>FfuFdw>F_s,&F_sFEF\tFE@$3F
]w0&FcqFOFep[@$2FcrFfuC$>F_s-9(6%FNFfn7$F`p&&FfqFapFO>Fjo7$-%#opGFjv7%7$&F_sFO&
&F_sFapFO7$F^u-%'subsopG6$/FE&F[zFapFbyFcr@%/FgvFjp>FG-%'expandG6#,&*&&Fbt6%Fjn
""'FEFEFGFEFE7$,$**FjqFE&Ffq6$FbpFbpFE&Fbt6%FjnF\[lFbpF\tF_vFEF\t,$**FjqFEF`[lF
EFb[lF\t&Fbt6%FjnFEFbpFEF\tFE>FG-Ffz6#,&*&&&&&Fjo6#FgvFapFapFOFEFGFEFE7$,$**Fjq
FEF`[lFE&F^\lFapF\t&&F`\lFOFOFEF\t,$**FjqFEF`[lFEFe\lF\t&Fg\lFapFEF\tFE>FG-F^y6
%FNFfnF`p>FGF\p@$0%2Involutive/characGFjp>FG-%$modG6$FGFa]lC$>FGFez@$F`]l>FGFc]
l>F_r%%trueG>Fjn,&FjnFEFEFE@%FctC%>857$-F^z6$/&Ffq6$FEFbp*&FjqFEF`[lFEFepF\q>Fc
q-Ffz6#,&FcqFEFa^lFE>FG-Ffz6#,&FGFEFa^lF\t@%F`]l>Fcq-Fd]l6$*&FjzFEFcqFEFa]l>Fcq
Fe_l>FfqFgq@'3/FgxFep0F`pF\qC%>F`p&-F^y6%F`pFfnFSFO@$3F[`l4-%7Involutive/member
_multG6%F`p%&P_HOMGFfn>Fg`l7$-Ffy6#Fg`lF`p7$FgxF\qFj_l7$FepF`pC$@$FQ>Fgx-%9Invo
lutive/cancel_locvarG6&FgxFcpFfnFR-F^y6%FgxFfnF`pF@6%Fg`lFCFauF@F@
M7R0
IHInvolutive/pnormal_form_collect_poly_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%
(loc_varG66%"aG%#caG%#cbG%"hG%"iG%"kG%#lmG%$divG%#stG%'n_entrG%)rhs_entrG%*zero
_listG%.rhs_zero_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%jnCopyright~(C)~2000-
2010~by~Daniel~Robertz.~All~rights~reserved.G6"C.>%(_nnformG,&FE"""FGFG>8'9$>8,
""!>8--%%nopsG6#&FI6#FG>8.-FQ6#&FI6#""#@$09)7"C'>81<#-%$seqG6$&9&6#&Fhn6#8(/Ffo
;FG-FQ6#Fhn>82-FQ6#F\o>83-%'removeG6%%$hasGFboF\o>84Fin>FI7#-%=Involutive/cance
l_locvar_rhsG6'FSFY9'FboFhn>8/7#-%"$G6$FMFO>807#-Faq6$FMFW>8+%%trueG>8*-F\qFR?(
FBFGFGFB3Fiq0&F\r6$FenFGFMC&>FfoFG>Fiq%&falseG@$Fgn>85,&-%$maxG6#-F_o6$-%'degre
eG6$&FS6#8)F\o/Fes;FGFOFG-%$addG6$&&F\r6$FGFG6#&FhnFds/Fes;FGF\p!""?(FBFGFGFB31
Ffo-FQ6#9%4FiqC$@$30FSF^q-%7Involutive/pinv_divideG6%&Fht6$Ffo""$&Fht6$Ffo""&&F
\rFTC'>%'_reducG,&FjuFGFGFG>FL,&FLFGFGFG@%FgnC+>86,&-F\s6#-F_o6$-Fas6$&&Fht6%Ff
oFGFGFdsF\oFfsFG-Fis6$&&Fht6%FfoFcuFGF^tF`tFbt>87FM>Fes-FQ6#Ffp?(FBFGFGFB32FMFa
v2FMFesC$@$332&&FfpFds6#FcuFav/&&&F`xFZFTFZ&FguFZ-%:Involutive/conv_divisibleG6
$FdxFguC$>FbwFes>FavF_x>Fes,&FesFGFbtFG@$2FirFavC$>Fes-9(6%FSFbo7$FY&&F\rFZFT>F
fp7$-%#opGFew7%7$&FesFT&&FesFZFT7$Fgu-%'subsopG6$/FG&FazFZFhyFir@%/FbwFM>FI-%)s
implifyG6#7$,&-%$mapG6$f*6#F,FB6$%)operatorG%&arrowGFB**&T#FbrFG&Fj[l6$FenFenFG
&T&6%T'""'FenFbtFJFGFBFB6(F2F\rF&FhtF0FfoFjvFbt-Fa[l6$f*Fd[lFBFe[lFB*&&T$6%T%Fa
\lFGFGFJFGFBFB6&F&FhtF0FfoFSFG,&-Fa[l6$f*Fd[lFBFe[lFBFh[lFBFBFb\l&Fht6%FfoFGFen
Fbt-Fa[l6$f*Fd[lFBFe[lFBFf\lFBFBF[]lFYFG>FI-F\[l6#7$,&-Fa[l6$f*Fd[lFBFe[lFB**Fi
[lFGF[\lFG&&&&Fj\l6#F`\lFZFZFZFbtFJFGFBFB6(F2F\rF<FfpF?Fbw&&&Ffp6#FbwFTFTFbt-Fa
[l6$f*Fd[lFBFe[lFB*&&&&&Fj[l6#Fj\lFZFZFTFGFJFGFBFB6&F<FfpF?FbwFSFG,&-Fa[l6$f*Fd
[lFBFe[lFBF]^lFBFBFc^l&Fe^lFZFbt-Fa[l6$f*Fd[lFBFe[lFBF[_lFBFBFa_lFYFG>FI-Fdy6%F
SFboFY>FIFhp@$0%2Involutive/characGFM>FI-%$modG6$FIF``l@%/F``lFMC%-%$gcdG6&Far&
Fht6%FfoFa\lFG.8%.8&>FI-%(collectG6%7$-%'normalG6#,&-Fa[l6$f*Fd[lFBFe[lFB*&Fj[l
FGFJFGFBFB6$F.F`alFSFG-Fa[l6$f*Fd[lFBFe[lFB**Fj[lFG&Fj\lF\\lFG&T(6%T)Fa\lFenFbt
FJFGFBFB6*F-F^alF2F\rF&FhtF0FfoFjvFbt-Fgal6#,&-Fa[l6$f*Fd[lFBFe[lFBF]blFBFBF^bl
FYFG-Fa[l6$f*Fd[lFBFe[lFBFbblFBFBFhblF`]lFbtFbo%,distributedG@$1FfuFLC$>FIF[`l>
FLFMC%-Fc`l6$-%$GcdGFj`lF``l>FI-Fcal6%7$-Fc`l6$-%'NormalG6#,&-Fa[l6$f*Fd[lFBFe[
lFBF]blFBFBF^blFSFG-Fa[l6$f*Fd[lFBFe[lFBFbblFBFBFhblFjvFbtF``l-Fc`l6$-Fddl6#,&-
Fa[l6$f*Fd[lFBFe[lFBF]blFBFBF^blFYFG-Fa[l6$f*Fd[lFBFe[lFBFbblFBFBFhblF`]lFbtF``
lFboFbcl@$1"#7FLC$>FIF[`l>FLFM>FiqFjq>F\rF]r>Ffo,&FfoFGFGFG@'3/FSF^q0FYFdqC%@$2
FMFL>FY&-Fdy6%FYFboFinFT@$4-%7Involutive/member_multG6%FY%&P_HOMGFbo>Fbgl7$-F\z
6#FbglFY7$FSFdqFdfl7$F^qFY@%FhflF[`lFIFB6%FbglFEFjuFBFB
M7R0
I=Involutive/remove_whitespacef*6#%"SG6$%"iG%"sG6#%jnCopyright~(C)~2000-2010~by
~Daniel~Robertz.~All~rights~reserved.G6"C&>8%9$>8$"""?(F+F2F2F+1F1-%'lengthG6#F
.@%55/&F.6#F1Q"~F+/F<Q"|+F+/F<Q"|*F+>F.-%$catG6$&F.6#;F2,&F1F2!""F2&F.6#;,&F1F2
F2F2FK>F1FOF.F+F+F+F+
M7R0
I8Involutive/algext2aliasf*6#%"pG6"6#%jnCopyright~(C)~2006-2010~by~Daniel~Rober
tz.~All~rights~reserved.GF&@)5-%%typeG6$9$%"+G-F,6$F.%"*G-%$mapG6$F"F.-F,6$F.%"
^G)-F"6#-%#opG6$"""F.-F=6$""#F./-F=6$""!F.%'RootOfG@%2FF-%+searchtextG6$Q'RootO
fF&-%(convertG6$F.%'stringG-FG6#F:-FO6$F.%%nameGF.F&F&F&F&
M7R0
I5Involutive/autoreducf*6&%"LG%%seqvG%'lmprocG%'ppprocG60%"aG%"gG%"hG%"iG%"jG%"
qG%"rG%"FG%"GG%#lmG%*reductionG%$divG%'n_entrG%*zero_listG6#%jnCopyright~(C)~20
06-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C)@$/-%%nopsG6#9$"""C%>8&-9'6
%&&&FA6#FBFLFL9%&FJ6#""#>8--9&6#&FEFL-%'RETURNG6#7#7*FE&FKFO&FK6#""$&FK6#""%&FK
6#""&&FRFO7"-%1Involutive/ecartG6&FEFRFM%(loc_varG>80-F?6#&FA6%FBFBFB>817#-%"$G
6$""!Fgo>8,FA>8.%%trueG?(F:FBFBF:FfpC%>Ffp%&falseG>8'FB?(F:FBFBF:1F]q-F?6#FdpC)
>8%&Fdp6#F]q>FE&FdqFL>8+-%'subsopG6$/F]q%%NULLGFdp>8/F[q>8*F]p?(F:FBFBF:0FVF]pC
&>FRFS>8(FB?(F:FBFBF:1Fir-F?6#Fjq@%/-%'divideG6%&F`oFO&Fjq6%Fir""'FP.8)FgpC*>%'
_reducG,&F[tFBFBFB@%/%2Involutive/characGFbp>FE-%(collectG6%7$-%'normalG6#,&-%$
mapG6$f*6#F*F:6$%)operatorG%&arrowGF:*&&T#6%T%FfsFBFBFAFBF:F:6&F1FjqF.FirFVFB-F
jt6$f*F]uF:F^uF:*(&Fcu6$FPFBFBFeuFBFAFBF:F:6&F3FRF/Fhs&Fjq6%FirFBFB!""-Fft6#,&-
Fjt6$f*F]uF:F^uF:FauF:F:Ffu&FEFOFB-Fjt6$f*F]uF:F^uF:FjuF:F:F]v&Fjq6%FirFBFPF`vF
M%,distributedG>FE-Fbt6%7$-%$modG6$-%'NormalG6#,&-Fjt6$f*F]uF:F^uF:FauF:F:FfuFV
FB-Fjt6$f*F]uF:F^uF:FjuF:F:F]vF^vF`vF_t-Fcw6$-Ffw6#,&-Fjt6$f*F]uF:F^uF:FauF:F:F
fuFgvFB-Fjt6$f*F]uF:F^uF:FjuF:F:F]vF[wF`vF_tFMF]w>FfpFgp>FarFgp@%0F_tFbp>Fcr-Fc
w6$*&&Fjq6%FirFfsFBFBFcrFBF_t>FcrFay>FirFB@$/FVF]p[>FRFS>Fir,&FirFBFBFB@$0FirFB
C$>Fcr-Fbt6%,&FcrFB-F\r6$/&&FRFLFO*&&F`oFLFBFcsFBF]pFBFMF]w>FV-Fbt6%,&FVFBFczF`
vFMF]w@%0FcrF]pC&@%/FarFgp>FE-FG6%FcrFMFgv>FE7$FcrFgv>FRFS@%/&FdqFOFgz>Fdp-F\r6
$/F]q7*FEF[\lFgz&FdqF[o&FdqF^oF`oFaoFboFdp>Fdp-F\r6$/F]q7*FEF[\lFgz7#-F`p6$Fbp%
&_nvarGFb\lF`oFaoFboFdp>F]q,&F]qFBFBFBC$>FdpF[r@$/F`qFB-FXFaqFb]lF:6#F[tF:F:
M7R0
I>Involutive/InvBasisFastAssertf*6#%"LG6J%"aG%"cG%"iG%"jG%"lG%"rG%"vG%%fextG%'n
_entrG%)rhs_entrG%'no_rhsG%"FG%"RG%$varG%(var_ordG%'vt_degG%%seqvG%(seq_varG%(d
eg_ordG%$POTG%)tup_permG%-inv_tup_permG%#GBG%#IBG%&m_ordG%(do_normG%)entr_posG%
#trG%*quietmodeG%%voffG%&ib_gbG%$ancG%#lmG%(multvarG%+time_boundG%+tracedenomG%
*donotreadG%*nowarningG%*outoftimeG%)dolaunchG6#%jnCopyright~(C)~2000-2010~by~D
aniel~Robertz.~All~rights~reserved.G6"Cao>8/-%6Involutive/proc_inputG6#9$>8,&FT
6#""">8-&FT6#""#>8.&FT6#""$@$&FT6#""&-%&ERRORG6#%\oInvolutiveBasisFast~cannot~c
ompute~in~algebraic~field~extensions.G>FT-%'expandG6#&FT6#""%@%332F\o9#-%%typeG
6$&9"F`o%%listG4-Fgp6$Fip-F[q6#%(integerGC)>81Fip>80-FV6#&FjpF[o@$2Fgn&FfqFfn-F
go6#%Xexpecting~list~of~relations~for~the~residue~class~ring.G@$4&FfqF`o-Fgo6#%
foright~hand~sides~for~relations~of~the~residue~class~ring~are~not~supported.G>
Ffq-F\p6#&FfqF_p@%/&Ffq6$FgnFgn7#""!>Ffq7">FT7$-%#opG6#FT-%$seqG6$-Fhs6$7$-%'su
bsopG6$/8&&Ffq6%8'FgnFgn7#-%"$G6$F_sFZ7#-Fgt6$F_sFin/Fat;FgnFZ/Fdt;Fgn-%%nopsG6
#Ffq>8)F`pC&@$2FepF\o-Fgo6#%Pexpecting~list~of~variables~as~second~argument.G>F
dqFiq>FfqFas>FduFao>Fdq-%5Involutive/proc_varsG6$FdqFZ>82&FdqF[o>83&FdqF`o>86&F
dqF_p>88&FdqFdo>8>&Fdq6#""'>Fdq&FdqFfn>%&_nvarG-Fau6#Fdq@$0-%&minusG6$-%'indets
GFfs<#-FesFhw<"-Fgo6#%Nno~parameters~allowed~in~InvolutiveBasisFast.G@$-%$hasG6
$-%$mapG6$f*6#F'FQ6$%)operatorG%&arrowGFQ3-Fgp6$&FXFfn-F[q6#-%(polynomG6$%)anyt
hingGT#-Fgp6$&FXF[oFfyFQFQ6$F4FdqFT%&falseG-Fgo6#-%$catG6%%Oexpecting~a~list~of
~(lists~of)~polynomials~in~G-%(convertG6$Fdq%'stringG%4~as~first~argument.G>8%%
2Involutive/characG@%/FcvFas>8<F`p>Fc[l7#-Fgt6$F`p-Fau6#Fcv>8=%%trueG>8+Q!FQ>8F
F_s>8:Faz>8?Faz>8*-Fiz6$-%+kerneloptsG6#%(versionGF[[l>8@F\\l>8AF\\l>8HFaz>8GFa
z>8IFaz>8JFaz>8KFaz?(FatFduFgnFepF\\l@)5-Fgp6$&Fjp6#FatFaq-Fgp6$Fa^lF[q>Fc[lFa^
l-Fgp6$Fa^lF[[l@+/Fa^lQ/tracerelationsFQ>Fe\lF\\l/Fa^lQ&denomFQ>Fe]lF\\l/Fa^lQ*
donotreadFQ>Fc]lF\\l/Fa^lQ'launchFQ>F[^lF\\lC$>8(Fa^l?(FdtFgnFgn-%'lengthG6#Fg_
lF\\l@&/&Fg_l6#FdtQ"NFQ>F[\lFaz0F^`lF_\l-Fgo6#%0invalid~option.G-Fgp6$Fa^l%)equ
ationG@7/-Fes6$FgnFa^lQ%NameFQC$@$4-Fgp6$-Fes6$F\oFa^lF[[l-Fgo6#%Fexpecting~a~s
tring~for~option~"Name".G>F^\lFcal/F[alQ%charFQC$@$4-Fgp6$Fcal%*nonnegintG-Fgo6
#%Qexpecting~0~or~a~prime~number~for~option~"char".G>F^[lFcal/F[alQ%timeFQC$@$F
]bl-Fgo6#%Sexpecting~time~bound~in~seconds~for~option~"time".G>Fa\lFcal/F[alQ)G
roebnerFQC$@$4-Fgp6$Fcal%(booleanG-Fgo6#%Oexpecting~boolean~value~for~option~"G
roebner".G>Fc\lFcal/F[alQ&quietFQC$@$Facl-Fgo6#%Lexpecting~boolean~value~for~op
tion~"quiet".G>F_]lFcal/F[alQ(verboseFQ@'/FcalQ#onFQ>Fa]lFaz/FcalQ$offFQ>Fa]lF\
\l-Fgo6#%?expecting~string~"on"~or~"off"G/F[alF]_lC$@$Facl-Fgo6#%Lexpecting~boo
lean~value~for~option~"denom".G>Fe]lFcal/F[alF`_lC$@$Facl-Fgo6#%Pexpecting~bool
ean~value~for~option~"donotread".G>Fc]lFcal/F[alQ*nowarningFQC$@$Facl-Fgo6#%Pex
pecting~boolean~value~for~option~"nowarning".G>Fg]lFcal/F[alQ.tailreductionFQFQ
Fc`lFc`l@$5530Fc[lF\o0Fc[lF`p2Fgn-Fau6#F_w3/F\glFgn0&F_wFfnFZ-%'RETURNG6#-%4Inv
olutive/InvBasisG6#Fjp@$0FcvFas-Fgo6#%[oUp~to~now,~only~degrevlex~is~implemente
d~in~InvolutiveBasisFast.G>Fg_l-%4Involutive/proc_ordG6*Fc[lFdqFcvFfvFivFdqF_wF
\\l>87&Fg_lF_p@%0F\w7#-Fgt6#F]uC$>89-F[y6$f*6#F)6#F*FQFQC$-%'memberG6%FXF\z.8$F
filFQFQ6$F;F\wFfhl>FT-F[y6$f*F_ilF`ilFQFQ-F^t6$/Fgn7#-Fhs6$&Fey6#&F\z6#Ffil/Ffi
l;FgnT%FXFQFQ6&F;F\wF/FZFT>F[ilF\w>%)_inv_denGFas>%&P_HOMGFas@$0FfqFasC$-%7Invo
lutive/cppInvBasisG65FfqFdqFgnF\\lF^[lFaz&Ffv6#;FgnFfwF^sFfhlQ'__ringFQF_sFazF\
\lF\\lFazFazQHinvbasis,invbasislm,invbasisanc,multvarFQFg]lFaz@$3-%)assignedG6#
%6_IB_RESULTout_of_timeGF_\m>Fi]lF\\l>8;-Fc[m65FTFdqFZF^oF^[lFbhlFe[m&Ffv6#;,&F
fwFgnFgnFgn,&FfwFgnFZFgnF[ilF^\lFa\lFe\lF_]lFa]lFc]lFe]lFasFg]lF[^l@$5Fc]lF[^l-
Fcgl6#-Fes6#Fb\m@$F[\m>Fi]lF\\l>8C-F[y6$f*F_ilFQF_yFQ-F^t6$/F\o,&F_zFgnFgnFgnFX
FQFQFQ&Fb\mF[o>8D-F[y6$f*F_ilFQF_yFQFg]mFQFQFQ&Fb\mF`o>8E-%%subsG6$/Fgn%)infini
tyG&Fb\mF_p@$Fe]l>F\[m%*_JB_denomG>%(_nnformGF_s>%'_reducGF_s>%'_crit1GF_s>%'_c
rit2GF_s>%'_crit3GF_s>%'_crit4GF_s@%330&Fb\mFfnF^s52Fgn-Fau6#F]`m0-F[y6$f*F_ilF
QF_yFQ-%'removeG6%FhxFXF_sFQFQFQF]`m7#FasF[\l@%%4Involutive/ratcoeffGC%@$Fe]l>F
\[m7$-Fes6#F\[m-Fes6#-F[y6$f*F_ilFQF_yFQ@$0&FeyFfnFgnFiamFQFQFQF]^m@%/F^[lF_s>F
b\m7#-Fhs6$-F\p6#*&&F]`mFb^lFgn&&&F]^mFb^lFfnFfn!""/Fat;FgnF``m>Fb\m7#-Fhs6$-F\
p6#*&-%$modG6$*$FdbmFgbmF^[lFgnFcbmFgnFhbm>F]^m-F[y6$f*F_ilFQF_yFQ7$7$Fgn&FeyF[
oF_zFQFQFQF]^mC$>Fb\m-%$zipG6%f*6$F)F*FQF_yFQ@%-Fgp6$&&9%FfnFfn%'negintG-F\p6#,
$FXFgbmFXFQFQFQF]`mF]^m>F]^m-F[y6$f*F_ilFQF_yFQ@%-Fgp6$FiamFidm7$7$,$FiamFgbmF[
dmF_zFXFQFQFQF]^m>Fb\mF]`m@%4F^o@%/FZFgn@%/FinFgnC'@%/FfqFas>F^[m-F[y6$f*F_ilFQ
F_yFQ@$3/FeyF_s0&FX6#,&F\zFgnFgnFgnF_sFifmFQFQ6$F/FZFb\m>F^[m-F[y6$f*F_ilFQF_yF
Q@$3Fhfm5Fgfm/-%8Involutive/cppInvReduceG6%7#FeyFh[mF\\lF^sFifmFQFQF\gmFb\m>Fat
Fgn?(FQFgnFgnFQ1Fat-FauF_]m@%/&&Fb\mFb^lFfnF_sC%>Fb\m-F^t6$/Fat%%NULLGFb\m>Fc]m
-F^t6$FehmFc]m>F]^m-F^t6$FehmF]^mC$>Fb\m-F^t6$/Fat/F_hm&F`hm6#,&FZFgnFgnFgnFb\m
>Fat,&FatFgnFgnFgn@$/Fb\mFasC%>Fb\m7#/F_sF_s>Fc]m7#7$7$F_sFgnFgn>F]^mF_jm>%)P_T
_ListG-F[y6$f*F_ilFQF_yFQ7$7#-Fes6$FgnFX7#-Fes6$F\oFXFQFQFQFb\mC'@%F`fm>F^[m-F[
y6$f*F_ilFQF_yFQ@$3Fgfm0&FX6#;F[gm,&F\zFgnFhjlFgn7#-Fgt6$F_sFhjlFh[nFQFQ6&F/FZF
0FinFb\m>F^[m-F[y6$f*F_ilFQF_yFQ@$3Fg[nFcgmFh[nFQFQF_\nFb\m>FatFgn?(FQFgnFgnFQF
[hm@%F^hmC%>Fb\mFchm>Fc]mFhhm>F]^mF[imC$>Fb\m-F^t6$/Fat/F_hm&F`hm6#;Feim,&FZFgn
FinFgnFb\m>FatFgim@$FiimC%>Fb\m7#/F_sFit>Fc]mF_jm>F]^mF_jm>Fdjm-F[y6$f*F_ilFQF_
yFQ7$FijmF][nFQFQFQFb\mC$@%F]fmC'@%F`fm>F^[m-F[y6$f*F_ilFQF_yFQ@$3/&FX6#;FgnF\z
7#-Fgt6$F_sF\zFhfmFifmFQFQF\gmFb\m>F^[m-F[y6$f*F_ilFQF_yFQ@$3Fhfm5F^_n3/-%*numb
occurG6$F__nF_s,&F\zFgnFgbmFgn/-Ffgm6%7#-Fes6#-F\x6$<#-Fes6#F__n<#F_sFh[mF\\lF^
sFifmFQFQF\gmFb\m>FatFgn?(FQFgnFgnFQF[hm@%/&F`hmFhhlFetC%>Fb\mFchm>Fc]mFhhm>F]^
mF[imC$>Fb\m-F^t6$/Fat/FbanFcimFb\m>FatFgim@$FiimC%>Fb\m7#/FetF_s>Fc]mF_jm>F]^m
F_jm>Fdjm-F[y6$f*F_ilFQF_yFQ7$FjjmF\[nFQFQFQFb\mC'@%F`fm>F^[m-F[y6$f*F_ilFQF_yF
Q@$3F^_nFg[nFh[nFQFQF_\nFb\m>F^[m-F[y6$f*F_ilFQF_yFQ@$3Fg[nF[`nFh[nFQFQF_\nFb\m
>FatFgn?(FQFgnFgnFQF[hm@%FaanC%>Fb\mFchm>Fc]mFhhm>F]^mF[imC$>Fb\m-F^t6$/Fat/Fba
nFc]nFb\m>FatFgim@$FiimC%>Fb\m7#/FetFit>Fc]mF_jm>F]^mF_jm>Fdjm-F[y6$f*F_ilFQF_y
FQ7$FjjmF][nFQFQFQFb\m@$Fehl>Fb\m-F[y6$f*F_ilF`ilFQFQ/7#-Fhs6$&FjjmFcjlFfjlF][n
FQFQFijlFb\mC$@%F[fm>Fdjm-F[y6$f*F_ilFQF_yFQ7$7#FXF^sFQFQFQFb\m>Fdjm-F[y6$f*F_i
lFQF_yFQ7$FXF^sFQFQFQFb\m@$Fehl>Fb\m-F[y6$f*F_ilF`ilFQFQ7#-Fhs6$&FXFcjlFfjlFQFQ
FijlFb\m@$-F]\m6#%*_JB_compaG@%F]fm>F^[m7$-Fes6#F^[m-Fes6#-F[y6$FesFegn>F^[m7$F
ign-FesFdgn>%*pnumber_tGF\hm@%F[fm>%+PolTab_VarG7#-Fhs6$7%F`hm-%5Involutive/pmu
lt_varG6$&Fc^mFb^lFdq*&&F]^m6%FatFgnFgnFgn&F]^m6%FatFgnF\oFgn/Fat;FgnFchn>Ffhn7
#-Fhs6$7%F`hmF[in7$F_in&F]^m6$FatF\oFdin>847#-Fhs6$-Fez6$%#_xGFdt/FdtFg[m@$0F_j
nFdqC%>857#-Fhs6$/&FdqFb^l&F_jnFb^l/FatFg[m>Fdjm-Fe^m6$F[[oFdjm>F]^m-F[y6$f*F_i
lFQF_yFQ-F^t6$/Fgn-F^t6$/F\o-Fe^m6$F\zF[dmFeyFXFQFQ6$F8F[[oF]^m@%F[am>Fdjm7#-Fh
s6$7*&FdjmFb^l7$7#-Fhs6$-%'degreeG6$&&Fc]mFb^lFfn&FdqF_`lFfjn&Fb]oF[o7$7#-Fhs6$
-F_]o6$&FebmF[o&F_jnF_`lFfjn&FfbmF[o7#-Fgt6$F_sFfwF^inFebmFasF_sFdin>Fdjm7#-Fhs
6$7*Fi\o7%F[]oFd]oFdbm7%Ff]oF]^oFdbmF^^oF^inFebmFasF_sFdin@$4Fe]l>F\[m.F\[m>Fat
Fgn?(FQFgnFgnFQ31FatFchn/&FdjmF]jn&Fdjm6$FatFao>FatFgim@%/Fat,&FchnFgnFgnFgn>8B
Fgn>Fi_oF_s@$3Fc\l/Fi_oF_s>Fb\m-F[y6$f*F_ilFQF_yFQ@$/&Fdjm6$FXF\o&Fdjm6$FXFao&F
\zFWFQFQ6$F>Fb\m7#-Fgt6#Fein>%(_StatssG7*F^_mF`_mFb_mFd_mFf_mFh_mFi_oF_s@%32F_s
Fa\lFg]l7$Fb\m4Fi]lFb\mFQ6/FfwF^_mF`_mFb_mFd_mFf_mFh_mF^[mF^aoFchnFdjmFfhnF\[mF
QFQ
M7R0
I7Involutive/Annihilatorf*6%%"pG%"LG'%%varsG%%listG6,%"aG%"eG%"iG%"lG%"nG%'n_en
trG%$varG%#L2G%"MG%"SG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~right
s~reserved.G6"C(>8+-%6Involutive/proc_inputG6#9%>8)&F:6#""">F:&F:6#""%@%32""!-%
%nopsG6#9&-%%typeG6$&FOFBF)>8*-%$mapG6$%#opGFO>FUFO@)4-FQ6$9$F)C&@$/FinFK-%'RET
URNG6#7#FC>8'7$FinFin>8%Fin>8&FK3-FQ6$Fin%)listlistG/-FM6#FinFCC'@$/<#-FY6#&Fin
FB<#FKF]o>Fbo7$FcpFcp>FgoFC?(F7FCFCF731Fgo-FMFdp/&Fep6#FgoFK>Fgo,&FgoFCFCFC>Feo
F_q34Fio/F]pF@C'@$/Fin7#-%"$G6$FKF@F]o>Fbo7$-FYF^pF`r>FgoFC?(F7FCFCF731FgoF]p/&
FinF`qFK>FgoFbq>FeoFfr>Fbo%%NULLG@%0FboFjrC%>8--%;Involutive/InvolutiveBasisG6%
7$Fbo-FY6#-FW6$f*6#F+F76$%)operatorG%&arrowGF77$Fcp-F\r6$FKT#F7F76$F0F@F:FU""#@
%/FgoFK@%/%2Involutive/characGFK>F_s-FW6$f*FisF7FjsF7@$/FepFK-%'normalG6#*&&Fin
6#FbtFCT$!""F7F76$F%FinF_s>F_s-FW6$f*FisF7FjsF7@$F]u-%$modG6$-%'NormalGF`uFgtF7
F7FfuF_s@%Fft>F_s-FW6$f*FisF7FjsF7@$/&Fin6#;FCF`t7#F^t-F_u6#*&&Fin6#,&F`tFCT%FC
FCT'FeuF7F76(F0F@F-FgoF,FeoF_s>F_s-FW6$f*FisF7FjsF7@$Fgv-F]v6$-F`vF]wFgtF7F7Fdw
F_s@%50FOFU2""$9#-Fas6%F_sFO&9"6#;FGFeuF_sC%@%Fio>8,7$-FW6$FYFin-%$seqG6$-Fay6$
7%-F\r6$FK*&8$FCF@FC-FY6#&&F:F`qFB-F\r6$FK*&,(F]pFCFiyFeuFeuFCFCF@FC/Fgo;FC-FM6
#F:/Fiy;FK,&F]pFCFeuFC>F\y7$Fin-Fay6$-Fay6$7%-F\r6$FKFiyFjy-F\r6$FKFazFbzFfz>F_
s-%8Involutive/SyzygyModuleG6$F\yFO@%-FQ6$F_sF[p-Fas6%-FW6$f*FisF7FjsF7FepF7F7F
7F_sFOFexF_sF7F7F7F7
M7R0
I8Involutive/jetsdepcheckf*6#%$resG6,%"iG%"vG%#vsG%#slG%#KMG%#GMG%#ncG%#nrG%#zl
G%#rkG6#%\pCopyright~(C)~2000-2010~by~Gehrt~Hartjen~and~Daniel~Robertz.~All~rig
hts~reserved.G6"C1@%32"""9#4-%%typeG6$&9"6#""#%'symbolG@'4-F<6$F>%%listG-%&ERRO
RG6#%[oexpecting~either~a~symbol~or~a~list~as~optional~second~argument.G-F<6$&F
>6#F8FG>8%FN>FQF>>FQ%%NULLG>8'-%6Involutive/jetsmklistG6#9$>8&7">8$F8?(F3F8F8F3
1Fin-%%nopsG6#FV@%/&FV6#Fin""!C$>Ffn7$-%#opG6#FfnFco>FV-%'subsopG6$/FinFTFV>Fin
,&FinF8F8F8>8(-%;Involutive/jetscoeffmatrixG6$FVFQ>8+F\o>8*-&%'linalgG6#%'coldi
mG6#Fbp>8)-&F\q6#%*gausselimG6$-&F\q6#%(augmentG6$Fbp-%&arrayG6%;F8FgpF_r%)iden
tityGFip>8--&F\q6#%%rankG6#-&F\q6#%*submatrixG6%FaqF_r;F8Fip>8,-%7Involutive/je
tszerocolG6#-Fir6%Faq;F8Fbr;,&FipF8F8F8,&FipF8FgpF8>Ffn7$Fgo-Fho6#-%$mapG6$f*6#
F'F36$%)operatorG%&arrowGF3-%(convertG6$-%$zipG6%f*6$%"aG%"bGF3FbtF3*&FZF89%F8F
3F3F3-Fft6$-&F\q6#%*subvectorG6%T#FZ;,&T%F8F8F8,&F[vF8T'F8FGT)%"+GF3F36*F,FaqF-
FipF.FgpF*FV7#-%"$G6#;,&FbrF8F8F8Fgp>FV-F\p6$-Fho6#-F^t6$f*FatF3FbtF3/FZFTF3F3F
3F_sFV@&32FAF9-F<6$&F?6#""$FB-%'assignG6$FewFfn3F7F;-Fiw6$F>FfnFVF3F3F3F3
M7R0
I4Involutive/maxcoefff*6#%"LG6"6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~
All~rights~reserved.GF&@--%%typeG6$9$%%listG-%$maxG6#-%#opG6#-%$mapG6$F"F--F+6$
F-%(numericGF--F+6$F-%"+GF/-F+6$F-%"*G-%'selectG6%F+F-F:-F+6$F-%"^G"""F-F&F&F&F
&
M7R0
I:Involutive/PolMinPolyFastf*6#'%"pG%(polynomG6D%"aG%"bG%"eG%"iG%"jG%"kG%"lG%"m
G%"qG%"sG%"tG%"xG%#peG%#hsG%'n_entrG%*zero_listG%%varsG%$varG%'lmprocG%#suG%)tu
p_permG%*new_powerG%+power_listG%+monom_listG%%relsG%*upp_boundG%"BG%"FG%#FBG%"
MG%'compatG%#eqG%(nocheckG%)entr_posG6#%jnCopyright~(C)~2000-2010~by~Daniel~Rob
ertz.~All~rights~reserved.G6"C@@$0%7Involutive/initializedG.%%trueG-%0Involutiv
e/initGFM@$4%4Involutive/ratcoeffG-%&ERRORG6#%fnnot~implemented~yet~for~involut
ive~bases~over~the~integers.G>8/.%'lambdaG>8="#I>8D%&falseG>87""!@'31""$9#-%%ty
peG6$&9"6#Fgo%%listGC&@$4-Fjo6$&F]p6#""#F_p-FZ6#%Oexpecting~involutive~basis~as
~second~argument.G>8>Fep>84F\p>8'""%1FgpFhoC&@$Fbp-FZ6#%Pexpecting~list~of~vari
ables~as~second~argument.G>F\q7">F^qFep>F`qFgo-FZ6#%^oexpecting~involutive~basi
s~or~list~of~variables~as~second~argument.G?(8(F`q"""FhoFS@)-Fjo6$&F]p6#F`r%%na
meG>FhnFer-Fjo6$Fer%'stringGC$>8?Fer?(8)FarFar-%'lengthG6#F^sFS@&/&F^s6#F`sQ"LF
M>F_oFS0FfsQ"SFM-FZ6#%0invalid~option.G-Fjo6$Fer%)equationGC$@$4-Fjo6$-%#opG6$F
arFerF[s-FZ6#%\oexpecting~a~string~on~the~left~hand~side~of~an~optional~equatio
n.G@'5/FgtQ'degreeFM/FgtQ'maxdegFMC$@$4-Fjo6$-Fht6$FgpFer%'posintG-FZ6#%Nexpect
ing~a~positive~integer~as~degree~bound.G>F\oFhu/-%*substringG6$Fgt;FarFaqQ%subs
FM>FboFhuF\tF\t>8B-%7Involutive/checkIBfastG6(F\qF^q%2Involutive/characGFaqQ!FM
F_o>82&FgvFfp>85&Fgv6#""&>%&_nvarG-%%nopsG6#Faw>88&Fgv6#""'>8E&Fgv6#"")@$4&Fgv6
#Far-%?Involutive/InvolutiveBasisFastG6%F\qF^q/Q%charFMF[w>8.-%4Involutive/proc
_ordG6*FaqFawFiq7#-%"$G6$FarFfwFiqFawF`xFS>86&F^yFgx>F^y&F^yFcw>8Cf*6$F)F*FMFMF
M-%&evalbG6#/9$9%FMFMFM>837#-Fdy6$FcoF^w@$0-%&minusG6$-%'indetsG6#Fcz<#-FhtFiw<
"-FZ6#%Ino~parameters~allowed~in~PolMinPolyFast.G@%33-%)assignedG6#%+_JB_factor
G-F\\l6#%3_JB_factor_multvarG-F\\l6#%(_JB_varGC%>8,-%$seqG6$/&Fd\l6#F`q8-/F`q;F
ar-FhwFc\l>81-%'expandG6#-%$addG6$*&-%%subsG6$Fg\l&F^\lF]]lFar),&FarFarF^]l!""-
%*numboccurG6$&Fa\lF]]lFarFa^l/F`q;Far-FhwF]\l@$-Fjo6$Fc]lF_p>Fc]l-%(convertG6$
Fc]l%"+G>Fc]l-%<Involutive/PolHilbertSeriesG6#.F^]l@$/Fc]lFco-%'RETURNG6#Fhn@$4
-%$hasG6$FczFaw@%0FboFco-Fi_l6#,&FboFarFczFa^l-Fi_l6#,&FhnFarFczFa^l>8@-%=Invol
utive/FactorModuleBasisG6$FawQ#CLFM>8+Fcz>F`qFar>8<Fiq@%/F^wFarC&>89Far>8;7#Far
>8A7#7$Far-Fdy6$Fco,&-Fhw6#Fi`lFarFa^lFar?(FMFarFarFM3/FbalFiq1F`qF\oC)-%)useri
nfoG6&Fgo%/PolMinPolyFastG%+degree~~~~GF`q>Fgal&-%8Involutive/cppInvReduceG6%7#
-Fe]l6#*&F_alFarFgalFarF\wFSFgx@$/FgalFco-Fi_l6#)FhnF`q>F`s-%:Involutive/monomc
oefflistG6%FgalFawFi`l?(FMFarFarFM4-Fjo6$F`sF_pC%>6$Fi`lF`s-%>Involutive/pbinar
y_insert_posG6)F`sFi`lFarFbblFbblF^yF\z@%/F`sFbbl>F\bl-%$mapG6$f*6#F-FM6$%)oper
atorG%&arrowGFM7$-FhtFa[lFcoFMFMFMF\bl>F\bl-F^el6$f*FaelFMFbelFM-%'subsopG6$/T#
6$Fco&Fcz6#F_flFczFMFM6$F.F`sF\bl>F`sF]dl@%/F[wFcoC$>8&-&%'linalgG6#%)linsolveG
6$-&F\gl6#%*transposeG6#F\blF`s@%0Fifl%%NULLG>Fbal7#,&F[dlFar-%&evalmG6#-%#&*G6
$FialFiflFa^lC%>F\bl-&F\gl6#%*gausselimG6#7$-Fht6#-%$zipG6%f*F^zFMFbelFM7$FfelF
dzFMFMFMF\blFial7$-FhtFgsF[dl>Fial-F^el6$Fht-F^_l6$-&F\gl6#%*submatrixG6%F\bl;F
ar,&F`qFarFarFar;,&FbblFarFarFarF_jl%)listlistG>F\bl-F^_l6$-Fhil6%F\blF\jl;FarF
bblF`jlC$>Fifl-%$modG6$-%)LinsolveG6$F`gl-%'vectorGFgsF[w@%-Fjo6$FiflF`[m>FbalF
iglC%>F\bl-Fjjl6$-%*GausselimG6#7$-Fht6#-F\il6%f*F^zFMFbelFMF_ilFMFMFMF\blFialF
`ilF[w>FialFcil>F\blFbjl>F`qF]jl-FZ6#%3not~supported~yet.G@%Ffbl-FZ6#%apstopped
~calculation~of~minimal~polynomial~since~upper~bound~for~the~degree~is~reached.
G@%Fffl@%Fa`l-F\^l6$/FhnFbo-%(collectG6$-%'normalG6#*&&FbalFgxFar-%'lcoeffG6$Fh
]mFhnFa^lFhn-Fb]mF[^m@%Fa`l-Fjjl6$F^]mF[w-Fjjl6$F\^mF[wFM6#FfwFMFM
M7R0
I;Involutive/PolRightInversef*6$%"LG'%%varsG%%listG6%%"iG%"vG%"RG6#%jnCopyright
~(C)~2003-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C%>8&-%&evalmG6#-%$map
G6$f*6#F*F/6$%)operatorG%&arrowGF/&9$6#"""F/F/F/&-%6Involutive/proc_inputG6#F?6
#""%>F2-%:Involutive/PolLeftInverseG6$-&%'linalgG6#%*transposeG6#F2&9"6#;""#!""
@%/F2%%FAILGF2@%-%%typeG6$F?%'matrixGFLC$>8%-%*substringG6$-%(convertG6$-%+kern
eloptsG6#%(versionG%'stringG;FA"")@%330F\oQ)Maple~V,F/0F\oQ)Maple~6.F/-Fgn6$F?%
'MatrixG-&%.LinearAlgebraG6#%*TransposeG6#-FcpFQ-Fao6$FL%)listlistGF/F/F/F/
M7R0
I<Involutive/jetskroneckermatf*6$%#_AG%#_BG6'%"AG%"BG%"rG%"cG%"ZG6#%[oCopyright
~(C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8$-%5Involutive/je
tsmkmatG6#9$>8%-F46#9%>8&-&%'linalgG6#%'rowdimG6#F2>8'-&F@6#%'coldimGFC>8(-%'ma
trixG6#7#-%"$G6$7#-FQ6$""!-FG6#F8-F?FX@%/%6Involutive/matrixtypeG%'MatrixG-%(co
nvertG6$-&F@6#%,blockmatrixG6%F=FE-%$mapG6$f*6#%"aGF/F/F/C$-%)simplifyG6#-%&eva
lmG6#*&T#"""F6F_p@%/%"%GFVT%FbpF/F/6&F)F8F,FK-Fao6$%#opG-Fin6$F2%)listlistGFgn-
F\o6%F=FE-Fao6$f*FdoF/F/F/C$Fgo@%FapFcpFbpF/F/FdpFepF/F/F/F/
M7R0
I<Involutive/MVMinPolInterpolf*6%%"AG'%'lambdaG%%nameG'%#niG%'posintG63%"iG%"jG
%"nG%"zG%"XG%"MG%"uG%&ogradG%)mpdegreeG%.StuetzstellenG%/StuetzstellenLG%2Tests
tuetzstellenG%)SubsListG%+MatrixListG%+MinPolListG%,MinPolList2G%)GradListG6#%[
oCopyright~(C)~2007-2010~by~Moritz~Schroeer.~All~rights~reserved.G6"C/@$-%$hasG
6$-%(convertG6$-%$mapG6$f*6#%"xGF@6$%)operatorG%&arrowGF@-%%typeG6$9$%(polynomG
F@F@F@FU%$setG%&falseG-%&ERRORG6#%;Matrix~must~be~polynomial.G>8*-FG6$-%'indets
G6#FU%%listG>8&-%%nopsG6#Fhn@$/F`o""!-%'RETURNG6#-&%.LinearAlgebraG6#%2MinimalP
olynomialG6$FU9%>8+7#-%$seqG6$,&-%0Involutive/mdegG6$FU&Fhn6#8$"""F^qF^q/F]q;F^
qF`o>8-7#-Fep6$7#-Fep6$-&%,RandomToolsG6#%)GenerateG6#-%(integerG6#/%&rangeG;"(
+++"".++++++"/8%;F^q&FbpF\qF_q?(F@F^qF^qF@0-FJ6$f*6#F1F@FOF@-FboF]oF@F@F@Fbq-FJ
6$f*F`sF@FOF@-Fbo6#-FG6$FUFWF@F@F@Fbq>FbqFcq>8.-%4Involutive/kartprodG6#7#-Fep6
$&FbqF\qF_q>80-FJ6$f*F`s6#F-F@F@7#-Fep6$/&T#F\q&FUF\q/F]q;F^qT%F@F@6&F3FhnF/F`o
F[t>81-FJ6$f*F`sF@FOF@-%%subsG6$FUT$F@F@6$F%FUFdt>82-FJ6$f*6#F2F@FOF@-F[p6$FUF^
uF@F@6$F08'Feu@$2""#9#C)>8/7#-Fep6$7#-Fep6$-Fjq6#-F`r6#/Fcr;!(+++"FerF_q/F]q;F^
q9&>Fdt-FJ6$f*F`sFhtF@F@FitF@F@FcuF^w>Feu-FJ6$f*F`sF@FOF@FiuF@F@F]vFdt>83-FJ6$f
*FcvF@FOF@FdvF@F@FfvFeu>84-FJ6$f*6#%"pGF@FOF@-%'degreeGFevF@F@FfvFhx>8,-%$maxG6
#-%#opG6#F]y-Fho6#-%=Involutive/MVMinPolInterpolHG6+FUFhnF`oF`pFbpFbqF_vFgvFfy-
F`z6*FUFhnF`oF`pFbpFbqF_vFgvF@F@F@F@
M7R0
I9homalg/Involutive/IBasisf*6$%"MG'%$varG%%listG6'%"oG%"vG%$ordG%%elimG%$POTG6#
%jnCopyright~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C)>8'%&fal
seG>8(F5?(8$""$"""9#%%trueG@%-%%typeG6$&9"6#F9%)equationG@'/-%$lhsG6#FBQ3POSITI
ON_OVER_TERMF1@%-F@6$-%$rhsGFJ%(booleanG>F7FO-%&ERRORG6#%Yexpecting~boolean~val
ue~for~"POSITION_OVER_TERM"~option.G/FHQ,ELIMINATIONF1@%FM>F4FO-FT6#%Rexpecting
~boolean~value~for~"ELIMINATION"~option.G-FT6#%0unknown~option.G-FT6#%0invalid~
option.G@%F7>8&F;>F`oF:@$4F4>F`o,&F`oF;F;F;>8%-%5homalg/NormalizeRingG6$9%%+Inv
olutiveG@%/&Fgo6#""#7"-%;Involutive/InvolutiveBasisG6%9$&Fgo6#F;F`o-Fdp6&FfpF_p
FgpF`oF1F1F1F1
M7R0
IChomalg/Involutive/PolHilbertCartanf*6$%"MG%$varG6#%"vG6#%jnCopyright~(C)~2004
-2010~by~Daniel~Robertz.~All~rights~reserved.G6"@%4%4Involutive/ratcoeffG-%'RET
URNG6#%%NULLGC%>8$-%5homalg/NormalizeRingG6$9%%+InvolutiveG@%/&F56#""#7">F5-%'s
ubsopG6$/F?F2F5>F57$F=&F56#"""@%2F?9#C$-%;Involutive/InvolutiveBasisG6$9$-%#opG
6#F56$-%<Involutive/PolHilbertSeriesG6#&9"6#""$-%>Involutive/PolCartanCharacter
G6#7#-%"$G6#;FJ-%%nopsG6#&F56#!""C$FO6$-FX6#.%"sGFhnF+F+F+F+
M7R0
I=Involutive/simp_invred_Z_absf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmp
rocG%(loc_varG65%"aG%"cG%"eG%"hG%#h2G%"iG%"jG%"kG%"lG%#lmG%"nG%"rG%$divG%'n_ent
rG%(termo_hG%*zero_listG%#lvG%#nlG%"HG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.
~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C,>81-%%nopsG6#&9$6#""">837#-%"
$G6$""!FE>8'-%'expandGFH@$49&>8(&FJ6#""#>8.-FG6#9%>8/FN>8%7#-FQ6$FSF[o>8--9)6#F
U?(FBFLFLFB0&Fgo6$FinFLFSC*>8)FL>80%&falseG>8*&Fgo6$FLFin>82-%'subsopG6$/Ffp&Fg
o6$FinFinFN?(FBFLFLFB31FapF[o4FcpC$@$-%7Involutive/pinv_divideG6%&F^o6$Fap""$&F
^o6$Fap""&&FgoFKC$>8,-%%iquoG6$F]p&F^o6%Fap""'FL@&0FcrFSC%>FU-%)simplifyG6#,&FU
FL-%$mapG6$f*6#F-FB6$%)operatorG%&arrowGFB**T#FL&T%F`qFL&T(6%T)FirFin!""FJFLFBF
B6*F5FcrF6FgoF&F^oF2Fap&F^o6%FapFLFLFbt@$FY>Ffn-F_s6#,&FfnFL-Fcs6$f*FfsFBFgsFBF
jsFBFBFct&F^o6%FapFLFinFbt>Fcp%%trueG52-%$absG6#-%&roundG6#,$Fgr#FLFin-Feu6#F]p
3/F\vFdu/-%%signGF]vFbtC&>Fcr*&FavFL-Fbv6#FgrFL>FU-F_s6#,&FUFL-Fcs6$f*FfsFBFgsF
BFjsFBFBFctFdtFbt@$FY>Ffn-F_s6#,&FfnFL-Fcs6$f*FfsFBFgsFBFjsFBFBFctF^uFbt>FcpFau
>Fap,&FapFLFLFL@%FdqC$>F`o-F_s6#,&F`oFL*&F]pFLFjpFLFL>FU-F_s6#,&FUFLF`xFbt@$9'C
$>Fap,&FapFLFbtFL>Fbo-F\q6$/Fap,&&Fbo6#FapFL*(FcrFLF_qFL&F^o6%FapFirFinFbtFLFbo
>FU-FWFjo>FgoFho7$7$F`oFfnFboFBFBFBFB
M7R0
I>Involutive/algebraicextensionf*6)%#_FG%*_alg_elemG%)_algextsG%._algextindetsG
%,_trans_elemG%)_rootofsG%*_radicalsG62%"aG%"iG%"jG%"kG%"rG%"vG%"zG%"FG%)alg_el
emG%(algextsG%-algextindetsG%)radicalsG%(rootofsG%+trans_elemG%(new_algG%.alg_e
lem_subsG6#%jnCopyright~(C)~2009-2010~by~Daniel~Robertz.~All~rights~reserved.G6
"C8>8,9%>8-9&>8.9'>809)>8/9*>819(>8+9$>82%&falseG>837">8)-%(convertG6$-%+kernel
optsG6#%(versionG%'stringG>8&-%'selectG6$f*6#F.F?6$%)operatorG%&arrowGF?/-%*sub
stringG6$FU;"""""%Q%_algF?F?F?F?-%$mapG6%FinFHF_o@%/FaoFen>Fao""!>Fao,&-%$maxG6
#-%#opG6#-Fcp6$f*FfoF?FgoF?-%&parseG6#-F\p6$FU;""&!""F?F?F?FaoF_pF_pF_p?&8$-%&u
nionG6$-%'indetsG6$FT%(radicalG-Fbr6$FEFdr%%trueGC$>8(-Fco6$f*FfoF?FgoF?/-%&eva
laG6#,(-%%subsG6$/&T%6#FUT#&T'FisF_p)Fjs-%&denomG6#-F_q6$""#T)F[r)-F_q6$F_pFdt-
%&numerGF`tF_pFhpF?F?6*F38*F7FHF6FEF-F]r7#-%"$G6#;F_p-%%nopsG6#FH@%0FjrFen>FN7$
-F_q6#FN/F]r&FH6#&Fjr6#F_pC'>FWFgr>FN7$Fhu/F]r-%$catG6$.%%_algGFao>FE7$,&)Fdv-F
_t6#-F_q6$FctF]rF_p)-F_q6$F_pF]r-FitF^wF[r-F_q6#FE>FH7$Fdv-F_qFcu>Fao,&FaoF_pF_
pF_p?&F]r-Fbr6$FE%'algextGFgr@$4-%'memberG6$F]rFB>FB7$-F_q6#FBF]r>8%F_p?(F?F_pF
_pF?1Fjx-FbuFhxC'@$0-F_q6$Fhp&FB6#Fjx%'RootOfG-%&ERRORG6#-Fev6$-Fin6$FcyF_o%3~i
s~not~algebraic.G?&F]r-Fbr6$-Feq6#-Fin6$-F_q6$F_pFcyF_oF_xFgr@$Fax>FBFfx?&F]r-%
*intersectG6$-Fbr6#Fez<#-%&aliasGF?Fgr@$-Fcx6$F]rFQ>FQ-%'removeG6$f*6#F0F?FgoF?
/FUFjsF?F?6$F-F]rFQ@$-%(hastypeG6$Fez%(nonrealG@$330-F\p6$Fgn;F_p""(Q(Maple~VF?
0Ff\lQ(Maple~6F?0Ff\lQ(Maple~7F?C%>FH7$%#_IGFiw>FE7$,&*$Fb]lFctF_pF_pF_pFew>FN7
$/^#F_pFb]lFhu>Fjx,&FjxF_pF_pF_p>FjxF_p?(F?F_pF_pF?2FjxF]y@%-%$hasG6$Faz&FB6#;F
\^lF[r>FB7$-F_q6#-%'subsopG6$/Fjx%%NULLGFBFcy>FjxF\^l>FjxF_p?(F?F_pF_pF?F\y@'2F
hp-%+searchtextG6$Q'RootOfF?F[z@%-Fcx6%Fcy7#-%$seqG6$-Fey6$&FE6#8'&FHFc`l/Fd`l;
F_p-FbuFfw.FjrC'>FK7$-F_q6#FK/&FH6#FjrFcy>FT-Fds6$/FcyF`alFT>FE-Fds6$FealFE>FZ7
$-F_q6#FZFeal>FBF[_lC->FK7$F]al/FdvFcy>Fjr-Fds6$FZFez>F[u-%&minusG6$-FbrFaal<#F
iw>Fd`lF_p?(F?F_pF_pF?31Fd`lFh`l4-Fb^l6$Fb`lFcy>Fd`l,&Fd`lF_pF_pF_p@%F^clC$>FE-
F\_l6$/Fd`l6$-Fds6$FZ-%8Involutive/algext2aliasG6#-%CInvolutive/subsindetunivar
iatepolyG6%Fjr&F[uF^vFdvFb`lFE>FH-F\_l6$/Fd`l6$FdvFe`lFHC$>FE7$FewF[dl>FH7$FiwF
dv>FT-Fds6$/-Fds6$FZ-F^dl6#FcyFdvFT>FZ7$F[blFael>FBF[_l>FWFgr>FaoF[x/FayFey@%Fj
_lC'>FKF\al>FTFcal>FEFgal>FZ7$F[bl/FdelF`al>FBF[_lC,>Fjr-Fds6$FZ-F^dlF^[l>F[u-F
gbl6$Fibl<$Fiw-F_q6#-Fcp6%FinFB%%nameG>FE7$Few-Fds6$/FcdlFdvFjr>FHF]el>FKF`bl>F
T-Fds6$7$/-Fds6$FZFcyFdvFaelFT>FZ7%F[blF^hlFael>FBF[_l>FWFgr>FaoF[x>FjxF\^l@$0F
BFen-Fgy6#-Fev6$%epcannot~handle~the~algebraic~extension~in~ginv~which~is~defin
ed~by~the~following~elements:~G-Fin6$FBF_o7*FTFenFEFHFNFKFQFWF?F?F?F?
M7R0
I,InvolutiveT=6"%&falseGE\[l\[l%3monomcoefflistmultGf*F$F$6#%jnCopyright~(C)~20
07-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C$30%7Involutive/initializedG
.%%trueG0-%0Involutive/initGF$""!-%>Involutive/monomcoefflistmultG6#9"F$F$F$%6F
actorModuleBasisFastGf*F$F$6#%jnCopyright~(C)~2008-2010~by~Daniel~Robertz.~All~
rights~reserved.GF$C$F,-%AInvolutive/FactorModuleBasisFastGF7F$F$F$%;pnormal_fo
rm_evala_poly_lmGf*F$F$6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~righ
ts~reserved.GF$C$F,-%FInvolutive/pnormal_form_evala_poly_lmGF7F$F$F$%3pnormal_f
orm_Z_absGf*F$F$6#%jnCopyright~(C)~2004-2010~by~Daniel~Robertz.~All~rights~rese
rved.GF$C$F,-%>Involutive/pnormal_form_Z_absGF7F$F$F$%2PolResolutionFastGf*F$F$
6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%=I
nvolutive/PolResolutionFastGF7F$F$F$%)findconeGf*F$F$F)F$C$F,-%4Involutive/find
coneGF7F$F$F$%<pdegrevlex_deg_Z_entr_blockGf*F$F$FPF$C$F,-%GInvolutive/pdegrevl
ex_deg_Z_entr_blockGF7F$F$F$%8pnormal_form_collect_lmGf*F$F$FBF$C$F,-%CInvoluti
ve/pnormal_form_collect_lmGF7F$F$F$%/pdegrevlex_POTGf*F$F$FIF$C$F,-%:Involutive
/pdegrevlex_POTGF7F$F$F$%,pseudored_ZGf*F$F$FIF$C$F,-%7Involutive/pseudored_ZGF
7F$F$F$%+pnegdeglexGf*F$F$FIF$C$F,-%6Involutive/pnegdeglexGF7F$F$F$%0invred_Z_n
onnegGf*F$F$6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~A
ll~rights~reserved.GF$C$F,-%;Involutive/invred_Z_nonnegGF7F$F$F$%9pnegdegrevlex
_entr_blockGf*F$F$FPF$C$F,-%DInvolutive/pnegdegrevlex_entr_blockGF7F$F$F$%.pdeg
lex_Z_POTGf*F$F$FIF$C$F,-%9Involutive/pdeglex_Z_POTGF7F$F$F$%5block_ord_entr_bl
ockGf*F$F$FPF$C$F,-%@Involutive/block_ord_entr_blockGF7F$F$F$%/conv_divisibleGf
*F$F$F_pF$C$F,-%:Involutive/conv_divisibleGF7F$F$F$%.pnegdegrevlexGf*F$F$FIF$C$
F,-%9Involutive/pnegdegrevlexGF7F$F$F$%,pplex_Z_POTGf*F$F$FIF$C$F,-%7Involutive
/pplex_Z_POTGF7F$F$F$%3pplex_Z_entr_blockGf*F$F$FPF$C$F,-%>Involutive/pplex_Z_e
ntr_blockGF7F$F$F$%*ecart_lm1Gf*F$F$6#%epCopyright~(C)~2006-2010~by~Daniel~Robe
rtz~and~Markus~Lange-Hegermann.~All~rights~reserved.GF$C$F,-%5Involutive/ecart_
lm1GF7F$F$F$%*proc_varsGf*F$F$6#%jnCopyright~(C)~2002-2010~by~Daniel~Robertz.~A
ll~rights~reserved.GF$C$F,-%5Involutive/proc_varsGF7F$F$F$%/pnormal_form_ZGf*F$
F$FIF$C$F,-%:Involutive/pnormal_form_ZGF7F$F$F$%2invred_evala_polyGf*F$F$F_pF$C
$F,-%=Involutive/invred_evala_polyGF7F$F$F$%-pjanet_separGf*F$F$F_pF$C$F,-%8Inv
olutive/pjanet_separGF7F$F$F$%6pdegrevlex_entr_blockGf*F$F$FPF$C$F,-%AInvolutiv
e/pdegrevlex_entr_blockGF7F$F$F$%+PolHomFastGf*F$F$6#%^pCopyright~(C)~2003-2010
~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%6Involutiv
e/PolHomFastGF7F$F$F$%/autoreduc_headGf*F$F$FPF$C$F,-%:Involutive/autoreduc_hea
dGF7F$F$F$%)coeffseqGf*F$F$6#%[oCopyright~(C)~2007-2010~by~Moritz~Schroeer.~All
~rights~reserved.GF$C$F,-%4Involutive/coeffseqGF7F$F$F$%1pplex_entr_blockGf*F$F
$FPF$C$F,-%<Involutive/pplex_entr_blockGF7F$F$F$%,jetszerocolGf*F$F$6#%inCopyri
ght~(C)~2000-2002~by~Gehrt~Hartjen.~All~rights~reserved.GF$C$F,-%7Involutive/je
tszerocolGF7F$F$F$%-pnegplex_POTGf*F$F$F`sF$C$F,-%8Involutive/pnegplex_POTGF7F$
F$F$%+linear_varGf*F$F$6#%jnCopyright~(C)~2005-2010~by~Daniel~Robertz.~All~righ
ts~reserved.GF$C$F,-%6Involutive/linear_varGF7F$F$F$%'HenselGf*F$F$F_wF$C$F,-%2
Involutive/HenselGF7F$F$F$%-algext2aliasGf*F$F$FPF$C$F,-%8Involutive/algext2ali
asGF7F$F$F$%1jetskroneckermatGf*F$F$6#%[oCopyright~(C)~2003-2005~by~Mohamed~Bar
akat.~All~rights~reserved.GF$C$F,-%<Involutive/jetskroneckermatGF7F$F$F$%0pnegd
egrevlex_ZGf*F$F$FIF$C$F,-%;Involutive/pnegdegrevlex_ZGF7F$F$F$%2pdeglex_deg_bl
ockGf*F$F$FIF$C$F,-%=Involutive/pdeglex_deg_blockGF7F$F$F$%,LocalIsUnitGf*F$F$6
#%boCopyright~(C)~2007-2010~by~Markus~Lange-Hegermann.~All~rights~reserved.GF$C
$F,-%7Involutive/LocalIsUnitGF7F$F$F$%,setup_basisGf*F$F$FPF$C$F,-%7Involutive/
setup_basisGF7F$F$F$%:pnormal_form_collect_polyGf*F$F$F_pF$C$F,-%EInvolutive/pn
ormal_form_collect_polyGF7F$F$F$%1pnegdeglex_blockGf*F$F$FIF$C$F,-%<Involutive/
pnegdeglex_blockGF7F$F$F$%,pdeglex_degGf*F$F$F_pF$C$F,-%7Involutive/pdeglex_deg
GF7F$F$F$%3invred_evala_localGf*F$F$6#%boCopyright~(C)~2008-2010~by~Markus~Lang
e-Hegermann.~All~rights~reserved.GF$C$F,-%>Involutive/invred_evala_localGF7F$F$
F$%.setupP_T_ListGf*F$F$FBF$C$F,-%9Involutive/setupP_T_ListGF7F$F$F$%.simp_invr
ed_ZGf*F$F$F_pF$C$F,-%9Involutive/simp_invred_ZGF7F$F$F$%-oneparam_numGf*F$F$FP
F$C$F,-%8Involutive/oneparam_numGF7F$F$F$%8pdegrevlex_Z_entr_blockGf*F$F$FPF$C$
F,-%CInvolutive/pdegrevlex_Z_entr_blockGF7F$F$F$%*block_ordGf*F$F$FIF$C$F,-%5In
volutive/block_ordGF7F$F$F$%*pmult_varGf*F$F$F_pF$C$F,-%5Involutive/pmult_varGF
7F$F$F$%,checkIBginvGf*F$F$FBF$C$F,-%7Involutive/checkIBginvGF7F$F$F$%.is_janet
_elemGf*F$F$FPF$C$F,-%9Involutive/is_janet_elemGF7F$F$F$%.PolRepresFastGf*F$F$F
BF$C$F,-%9Involutive/PolRepresFastGF7F$F$F$%)proc_ordGf*F$F$F`sF$C$F,-%4Involut
ive/proc_ordGF7F$F$F$%1ginvBasisHomogenGf*F$F$6#%enCopyright~(C)~2010~by~Daniel
~Robertz.~All~rights~reserved.GF$C$F,-%<Involutive/ginvBasisHomogenGF7F$F$F$%6p
negplex_Z_entr_blockGf*F$F$FPF$C$F,-%AInvolutive/pnegplex_Z_entr_blockGF7F$F$F$
%-invred_evalaGf*F$F$F_pF$C$F,-%8Involutive/invred_evalaGF7F$F$F$%*prim_partGf*
F$F$FBF$C$F,-%5Involutive/prim_partGF7F$F$F$%,ptransfer_TGf*F$F$FBF$C$F,-%7Invo
lutive/ptransfer_TGF7F$F$F$%5pdegrevlex_deg_Z_POTGf*F$F$FIF$C$F,-%@Involutive/p
degrevlex_deg_Z_POTGF7F$F$F$%:pdegrevlex_deg_entr_blockGf*F$F$FPF$C$F,-%EInvolu
tive/pdegrevlex_deg_entr_blockGF7F$F$F$%.pcriteria1234Gf*F$F$F_wF$C$F,-%9Involu
tive/pcriteria1234GF7F$F$F$%/pnegplex_Z_POTGf*F$F$FIF$C$F,-%:Involutive/pnegple
x_Z_POTGF7F$F$F$%8pnegdeglex_Z_entr_blockGf*F$F$FPF$C$F,-%CInvolutive/pnegdegle
x_Z_entr_blockGF7F$F$F$%*jetsgrankGf*F$F$FcvF$C$F,-%5Involutive/jetsgrankGF7F$F
$F$%1MVMinPolInterpolGf*F$F$FguF$C$F,-%<Involutive/MVMinPolInterpolGF7F$F$F$%6p
negdeglex_entr_blockGf*F$F$FPF$C$F,-%AInvolutive/pnegdeglex_entr_blockGF7F$F$F$
%/erstenichtnullGf*F$F$FguF$C$F,-%:Involutive/erstenichtnullGF7F$F$F$%2remove_w
hitespaceGf*F$F$FBF$C$F,-%=Involutive/remove_whitespaceGF7F$F$F$%'pplex3Gf*F$F$
F_pF$C$F,-%2Involutive/pplex3GF7F$F$F$%1writeGINV2headerGf*F$F$FPF$C$F,-%<Invol
utive/writeGINV2headerGF7F$F$F$%)pnegplexGf*F$F$F`sF$C$F,-%4Involutive/pnegplex
GF7F$F$F$%4pnegdegrevlex_Z_POTGf*F$F$FIF$C$F,-%?Involutive/pnegdegrevlex_Z_POTG
F7F$F$F$%.pdeglex_deg_ZGf*F$F$FIF$C$F,-%9Involutive/pdeglex_deg_ZGF7F$F$F$%0gin
vBasisChangeGf*F$F$Fe^lF$C$F,-%;Involutive/ginvBasisChangeGF7F$F$F$%+gb_leadmon
Gf*F$F$FPF$C$F,-%6Involutive/gb_leadmonGF7F$F$F$%+HomogenizeGf*F$F$Fe^lF$C$F,-%
6Involutive/HomogenizeGF7F$F$F$%=pnormal_form_collect_poly_lmGf*F$F$FBF$C$F,-%H
Involutive/pnormal_form_collect_poly_lmGF7F$F$F$%2pnegdegrevlex_POTGf*F$F$FIF$C
$F,-%=Involutive/pnegdegrevlex_POTGF7F$F$F$%0block_ord_Z_POTGf*F$F$FIF$C$F,-%;I
nvolutive/block_ord_Z_POTGF7F$F$F$%*block_cmpGf*F$F$FIF$C$F,-%5Involutive/block
_cmpGF7F$F$F$%;pnormal_form_simplify_polyGf*F$F$F_pF$C$F,-%FInvolutive/pnormal_
form_simplify_polyGF7F$F$F$%/pdegrevlex_degGf*F$F$F_pF$C$F,-%:Involutive/pdegre
vlex_degGF7F$F$F$%6pnormal_form_Z_lm_oldGf*F$F$FIF$C$F,-%AInvolutive/pnormal_fo
rm_Z_lm_oldGF7F$F$F$%.PolKernelGINVGf*F$F$6#%fqCopyright~(C)~2005-2010~by~Moham
ed~Barakat,~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~rights~reserved.GF$C
$F,-%9Involutive/PolKernelGINVGF7F$F$F$%,member_multGf*F$F$FBF$C$F,-%7Involutiv
e/member_multGF7F$F$F$%0restoreP_T_ListGf*F$F$FPF$C$F,-%;Involutive/restoreP_T_
ListGF7F$F$F$%,pmaxmin_degGf*F$F$F)F$C$F,-%7Involutive/pmaxmin_degGF7F$F$F$%-pn
egdeglex_ZGf*F$F$FIF$C$F,-%8Involutive/pnegdeglex_ZGF7F$F$F$%5pnormal_form_coll
ectGf*F$F$F_pF$C$F,-%@Involutive/pnormal_form_collectGF7F$F$F$%0pjanet_div_only
Gf*F$F$FPF$C$F,-%;Involutive/pjanet_div_onlyGF7F$F$F$%5pdegrevlex_deg_blockGf*F
$F$FIF$C$F,-%@Involutive/pdegrevlex_deg_blockGF7F$F$F$%-tupcoefflistGf*F$F$FPF$
C$F,-%8Involutive/tupcoefflistGF7F$F$F$%1pdegrevlex_deg_ZGf*F$F$FIF$C$F,-%<Invo
lutive/pdegrevlex_deg_ZGF7F$F$F$%-pnormal_formGf*F$F$F_pF$C$F,-%8Involutive/pno
rmal_formGF7F$F$F$%,pdeglex_POTGf*F$F$FIF$C$F,-%7Involutive/pdeglex_POTGF7F$F$F
$%.ecart_need_lmGf*F$F$FirF$C$F,-%9Involutive/ecart_need_lmGF7F$F$F$%2pjanet_se
par_onlyGf*F$F$FPF$C$F,-%=Involutive/pjanet_separ_onlyGF7F$F$F$%-pdegrevlex_ZGf
*F$F$FIF$C$F,-%8Involutive/pdegrevlex_ZGF7F$F$F$%8subsindetunivariatepolyGf*F$F
$FPF$C$F,-%CInvolutive/subsindetunivariatepolyGF7F$F$F$%-invred_Z_absGf*F$F$F_p
F$C$F,-%8Involutive/invred_Z_absGF7F$F$F$%-invred_localGf*F$F$F\[lF$C$F,-%8Invo
lutive/invred_localGF7F$F$F$%+ginvReduceGf*F$F$FBF$C$F,-%6Involutive/ginvReduce
GF7F$F$F$%3pbinary_insert_posGf*F$F$F_pF$C$F,-%>Involutive/pbinary_insert_posGF
7F$F$F$%*SyzModuleGf*F$F$FBF$C$F,-%5Involutive/SyzModuleGF7F$F$F$%2remove_backq
uotesGf*F$F$FBF$C$F,-%=Involutive/remove_backquotesGF7F$F$F$%3pdeglex_entr_bloc
kGf*F$F$FPF$C$F,-%>Involutive/pdeglex_entr_blockGF7F$F$F$%/PolInvolReduceGf*F$F
$F_pF$C$F,-%:Involutive/PolInvolReduceGF7F$F$F$%+proc_inputGf*F$F$FBF$C$F,-%6In
volutive/proc_inputGF7F$F$F$%)pomm_divGf*F$F$6#%enCopyright~(C)~2000-2010~by~Ca
rlos~F.~Cid.~rights~reserved.GF$C$F,-%4Involutive/pomm_divGF7F$F$F$%:pnormal_fo
rm_expand_localGf*F$F$F\[lF$C$F,-%EInvolutive/pnormal_form_expand_localGF7F$F$F
$%2MVMinPolInterpolHGf*F$F$FguF$C$F,-%=Involutive/MVMinPolInterpolHGF7F$F$F$%4p
negdegrevlex_blockGf*F$F$FIF$C$F,-%?Involutive/pnegdegrevlex_blockGF7F$F$F$%&ec
artGf*F$F$FirF$C$F,-%1Involutive/ecartGF7F$F$F$%/pnegplex_blockGf*F$F$FIF$C$F,-
%:Involutive/pnegplex_blockGF7F$F$F$%+HenselStepGf*F$F$F_wF$C$F,-%6Involutive/H
enselStepGF7F$F$F$%0ssystem_booleanGf*F$F$F\[lF$C$F,-%;Involutive/ssystem_boole
anGF7F$F$F$%,pdegrevlex3Gf*F$F$F_pF$C$F,-%7Involutive/pdegrevlex3GF7F$F$F$%)pde
glex3Gf*F$F$F_pF$C$F,-%4Involutive/pdeglex3GF7F$F$F$%7pdeglex_deg_entr_blockGf*
F$F$FPF$C$F,-%BInvolutive/pdeglex_deg_entr_blockGF7F$F$F$%1simp_pseudored_ZGf*F
$F$FIF$C$F,-%<Involutive/simp_pseudored_ZGF7F$F$F$%,block_ord_ZGf*F$F$FIF$C$F,-
%7Involutive/block_ord_ZGF7F$F$F$%5count_non_basis_elemGf*F$F$FPF$C$F,-%@Involu
tive/count_non_basis_elemGF7F$F$F$%,GroebnerBasGf*F$F$FBF$C$F,-%7Involutive/Gro
ebnerBasGF7F$F$F$%+compute_hcGf*F$F$F\[lF$C$F,-%6Involutive/compute_hcGF7F$F$F$
%7block_ord_Z_entr_blockGf*F$F$FPF$C$F,-%BInvolutive/block_ord_Z_entr_blockGF7F
$F$F$%(pplex_ZGf*F$F$FIF$C$F,-%3Involutive/pplex_ZGF7F$F$F$%7findezugehoerigenp
unktGf*F$F$FguF$C$F,-%BInvolutive/findezugehoerigenpunktGF7F$F$F$%&pplexGf*F$F$
F_pF$C$F,-%1Involutive/pplexGF7F$F$F$%.autoreductionGf*F$F$F`sF$C$F,-%9Involuti
ve/autoreductionGF7F$F$F$%%mdegGf*F$F$FguF$C$F,-%0Involutive/mdegGF7F$F$F$%8pno
rmal_form_evala_polyGf*F$F$F_pF$C$F,-%CInvolutive/pnormal_form_evala_polyGF7F$F
$F$%9pnormal_form_evala_localGf*F$F$F\[lF$C$F,-%DInvolutive/pnormal_form_evala_
localGF7F$F$F$%*autoreducGf*F$F$FPF$C$F,-%5Involutive/autoreducGF7F$F$F$%4simp_
pnormal_form_ZGf*F$F$FIF$C$F,-%?Involutive/simp_pnormal_form_ZGF7F$F$F$%0nonmul
t_prolongGf*F$F$F_wF$C$F,-%;Involutive/nonmult_prolongGF7F$F$F$%2cancel_locvar_
rhsGf*F$F$6#%boCopyright~(C)~2000-2010~by~Markus~Lange-Hegermann.~All~rights~re
served.GF$C$F,-%=Involutive/cancel_locvar_rhsGF7F$F$F$%0DependsOnPowersGf*F$F$F
PF$C$F,-%;Involutive/DependsOnPowersGF7F$F$F$%+pnegplex_ZGf*F$F$FIF$C$F,-%6Invo
lutive/pnegplex_ZGF7F$F$F$%+jetsmklistGf*F$F$6#%[oCopyright~(C)~2000-2002~by~Mo
hamed~Barakat.~All~rights~reserved.GF$C$F,-%6Involutive/jetsmklistGF7F$F$F$%(pd
eglexGf*F$F$F_pF$C$F,-%3Involutive/pdeglexGF7F$F$F$%-nextmonomialGf*F$F$F_wF$C$
F,-%8Involutive/nextmonomialGF7F$F$F$%-cppInvReduceGf*F$F$FBF$C$F,-%8Involutive
/cppInvReduceGF7F$F$F$%/simp_prim_partGf*F$F$FBF$C$F,-%:Involutive/simp_prim_pa
rtGF7F$F$F$%.pupdate_T_stdGf*F$F$FBF$C$F,-%9Involutive/pupdate_T_stdGF7F$F$F$%*
pplex_POTGf*F$F$F_pF$C$F,-%5Involutive/pplex_POTGF7F$F$F$%2pnormal_form_Z_lmGf*
F$F$FIF$C$F,-%=Involutive/pnormal_form_Z_lmGF7F$F$F$%1tupcoefflistmultGf*F$F$F)
F$C$F,-%<Involutive/tupcoefflistmultGF7F$F$F$%/pplexdivision3Gf*F$F$6#%jnCopyri
ght~(C)~2009-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%:Involutive/p
plexdivision3GF7F$F$F$%3InvBasisFastAssertGf*F$F$FBF$C$F,-%>Involutive/InvBasis
FastAssertGF7F$F$F$%5pdeglex_Z_entr_blockGf*F$F$FPF$C$F,-%@Involutive/pdeglex_Z
_entr_blockGF7F$F$F$%+ginv2BasisGf*F$F$FPF$C$F,-%6Involutive/ginv2BasisGF7F$F$F
$%5pnormal_form_poly_lmGf*F$F$FBF$C$F,-%@Involutive/pnormal_form_poly_lmGF7F$F$
F$%.solveinterpolGf*F$F$FPF$C$F,-%9Involutive/solveinterpolGF7F$F$F$%;pnormal_f
orm_collect_localGf*F$F$F\[lF$C$F,-%FInvolutive/pnormal_form_collect_localGF7F$
F$F$%*RemoveRHSGf*F$F$FayF$C$F,-%5Involutive/RemoveRHSGF7F$F$F$%,invred_polyGf*
F$F$F_pF$C$F,-%7Involutive/invred_polyGF7F$F$F$%5simp_invred_Z_nonnegGf*F$F$F_p
F$C$F,-%@Involutive/simp_invred_Z_nonnegGF7F$F$F$%/PolMinPolyFastGf*F$F$FBF$C$F
,-%:Involutive/PolMinPolyFastGF7F$F$F$%-Annihilator1Gf*F$F$FBF$C$F,-%8Involutiv
e/Annihilator1GF7F$F$F$%'invredGf*F$F$F_pF$C$F,-%2Involutive/invredGF7F$F$F$%/i
sMinimalBasisGf*F$F$F`sF$C$F,-%:Involutive/isMinimalBasisGF7F$F$F$%1pdegrevlex_
Z_POTGf*F$F$FIF$C$F,-%<Involutive/pdegrevlex_Z_POTGF7F$F$F$%)pleadmonGf*F$F$F_p
F$C$F,-%4Involutive/pleadmonGF7F$F$F$%8simp_pnormal_form_Z_absGf*F$F$FIF$C$F,-%
CInvolutive/simp_pnormal_form_Z_absGF7F$F$F$%,pbinary_hasGf*F$F$F_wF$C$F,-%7Inv
olutive/pbinary_hasGF7F$F$F$%%pLCMGf*F$F$6#%inCopyright~(C)~2000-2002~by~Carlos
~F.~Cid.~All~rights~reserved.GF$C$F,-%0Involutive/pLCMGF7F$F$F$%,jetsdiagmatGf*
F$F$F`xF$C$F,-%7Involutive/jetsdiagmatGF7F$F$F$%)CompleteGf*F$F$F)F$C$F,-%4Invo
lutive/CompleteGF7F$F$F$%.pplexdivisionGf*F$F$Fe\nF$C$F,-%9Involutive/pplexdivi
sionGF7F$F$F$%.block_ord_POTGf*F$F$FIF$C$F,-%9Involutive/block_ord_POTGF7F$F$F$
%1PolSubFactorFastGf*F$F$F[uF$C$F,-%<Involutive/PolSubFactorFastGF7F$F$F$%7simp
_pnormal_form_Z_lmGf*F$F$FIF$C$F,-%BInvolutive/simp_pnormal_form_Z_lmGF7F$F$F$%
4invred_collect_polyGf*F$F$F_pF$C$F,-%?Involutive/invred_collect_polyGF7F$F$F$%
8stdinterface_gettmpnameGf*F$F$F)F$C$F,-%CInvolutive/stdinterface_gettmpnameGF7
F$F$F$%*jetsmkmatGf*F$F$FfimF$C$F,-%5Involutive/jetsmkmatGF7F$F$F$%3InvBasisGIN
VAssertGf*F$F$FBF$C$F,-%>Involutive/InvBasisGINVAssertGF7F$F$F$%/monomcoefflist
Gf*F$F$FPF$C$F,-%:Involutive/monomcoefflistGF7F$F$F$%5copyright_InvolutiveGf*F$
F$F_pF$C$F,-%@Involutive/copyright_InvolutiveGF7F$F$F$%;pnegdegrevlex_Z_entr_bl
ockGf*F$F$FPF$C$F,-%FInvolutive/pnegdegrevlex_Z_entr_blockGF7F$F$F$%+PolKernel2
Gf*F$F$6#%^pCopyright~(C)~2005-2010~by~Mohamed~Barakat~and~Daniel~Robertz.~All~
rights~reserved.GF$C$F,-%6Involutive/PolKernel2GF7F$F$F$%2PreImageRelationsGf*F
$F$FPF$C$F,-%=Involutive/PreImageRelationsGF7F$F$F$%.ishomogeneousGf*F$F$FPF$C$
F,-%9Involutive/ishomogeneousGF7F$F$F$%,pcriteria12Gf*F$F$6#%\pCopyright~(C)~20
00-2002~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%7Invo
lutive/pcriteria12GF7F$F$F$%-saveP_T_ListGf*F$F$FPF$C$F,-%8Involutive/saveP_T_L
istGF7F$F$F$%)maxcoeffGf*F$F$FPF$C$F,-%4Involutive/maxcoeffGF7F$F$F$%4pnormal_f
orm_expandGf*F$F$F_pF$C$F,-%?Involutive/pnormal_form_expandGF7F$F$F$%+Autoreduc
eGf*F$F$F)F$C$F,-%6Involutive/AutoreduceGF7F$F$F$%/pbinary_insertGf*F$F$F_pF$C$
F,-%:Involutive/pbinary_insertGF7F$F$F$%2pnormal_form_polyGf*F$F$F_pF$C$F,-%=In
volutive/pnormal_form_polyGF7F$F$F$%,EliminationGf*F$F$F_wF$C$F,-%7Involutive/E
liminationGF7F$F$F$%6FactorModuleBasisGINVGf*F$F$Fe\nF$C$F,-%AInvolutive/Factor
ModuleBasisGINVGF7F$F$F$%=pnormal_form_expand_lm_localGf*F$F$F\[lF$C$F,-%HInvol
utive/pnormal_form_expand_lm_localGF7F$F$F$%/proc_termorderGf*F$F$F`sF$C$F,-%:I
nvolutive/proc_termorderGF7F$F$F$%)InvBasisGf*F$F$F_pF$C$F,-%4Involutive/InvBas
isGF7F$F$F$%'hasvarGf*F$F$FPF$C$F,-%2Involutive/hasvarGF7F$F$F$%3pnormal_form_l
ocalGf*F$F$6#%dqCopyright~(C)~2000-2010~by~Carlos~F.~Cid,~Daniel~Robertz~and~Ma
rkus~Lange-Hegermann.~All~rights~reserved.GF$C$F,-%>Involutive/pnormal_form_loc
alGF7F$F$F$%,checkIBfastGf*F$F$FBF$C$F,-%7Involutive/checkIBfastGF7F$F$F$%-InvB
asisTestGf*F$F$F_pF$C$F,-%8Involutive/InvBasisTestGF7F$F$F$%0pnormal_form_lmGf*
F$F$FBF$C$F,-%;Involutive/pnormal_form_lmGF7F$F$F$%6writeGINV1MapleOutputGf*F$F
$FPF$C$F,-%AInvolutive/writeGINV1MapleOutputGF7F$F$F$%0pdeglex_deg_POTGf*F$F$FI
F$C$F,-%;Involutive/pdeglex_deg_POTGF7F$F$F$%-pcriteria123Gf*F$F$F_wF$C$F,-%8In
volutive/pcriteria123GF7F$F$F$%<pnormal_form_evala_lm_localGf*F$F$F\[lF$C$F,-%G
Involutive/pnormal_form_evala_lm_localGF7F$F$F$%*ginvBasisGf*F$F$FPF$C$F,-%5Inv
olutive/ginvBasisGF7F$F$F$%1pdegrevlex_blockGf*F$F$FIF$C$F,-%<Involutive/pdegre
vlex_blockGF7F$F$F$%.pjanet_stddivGf*F$F$F_pF$C$F,-%9Involutive/pjanet_stddivGF
7F$F$F$%4pnegplex_entr_blockGf*F$F$FPF$C$F,-%?Involutive/pnegplex_entr_blockGF7
F$F$F$%*pdeglex_ZGf*F$F$FIF$C$F,-%5Involutive/pdeglex_ZGF7F$F$F$%3pnormal_form_
evalaGf*F$F$F_pF$C$F,-%>Involutive/pnormal_form_evalaGF7F$F$F$%2pdeglex_deg_Z_P
OTGf*F$F$FIF$C$F,-%=Involutive/pdeglex_deg_Z_POTGF7F$F$F$%.minpoly_paramGf*F$F$
FPF$C$F,-%9Involutive/minpoly_paramGF7F$F$F$%*pupdate_TGf*F$F$FBF$C$F,-%5Involu
tive/pupdate_TGF7F$F$F$%+jetsgetbasGf*F$F$FcvF$C$F,-%6Involutive/jetsgetbasGF7F
$F$F$%0jetscoeffmatrixGf*F$F$6#%\pCopyright~(C)~2000-2010~by~Gehrt~Hartjen~and~
Daniel~Robertz.~All~rights~reserved.GF$C$F,-%;Involutive/jetscoeffmatrixGF7F$F$
F$%6pnormal_form_lm_localGf*F$F$F\[lF$C$F,-%AInvolutive/pnormal_form_lm_localGF
7F$F$F$%7pnormal_form_expand_lmGf*F$F$FBF$C$F,-%BInvolutive/pnormal_form_expand
_lmGF7F$F$F$%/readGINVresultGf*F$F$Fe\nF$C$F,-%:Involutive/readGINVresultGF7F$F
$F$%)kartprodGf*F$F$FguF$C$F,-%4Involutive/kartprodGF7F$F$F$%-pol_lead_monGf*F$
F$6%FC%'systemG%)rememberGF$C$F,-%8Involutive/pol_lead_monGF7F$F$F$%1writeGINV1
headerGf*F$F$FPF$C$F,-%<Involutive/writeGINV1headerGF7F$F$F$%>pnormal_form_simp
lify_poly_lmGf*F$F$FBF$C$F,-%IInvolutive/pnormal_form_simplify_poly_lmGF7F$F$F$
%;simp_pnormal_form_Z_lm_oldGf*F$F$FIF$C$F,-%FInvolutive/simp_pnormal_form_Z_lm
_oldGF7F$F$F$%3algebraicextensionGf*F$F$Fe\nF$C$F,-%>Involutive/algebraicextens
ionGF7F$F$F$%0PolMinPolyParamGf*F$F$FBF$C$F,-%;Involutive/PolMinPolyParamGF7F$F
$F$%.cancel_locvarGf*F$F$6#%epCopyright~(C)~2000-2010~by~Daniel~Robertz~and~Mar
kus~Lange-Hegermann.~All~rights~reserved.GF$C$F,-%9Involutive/cancel_locvarGF7F
$F$F$%1pairstoequationsGf*F$F$F)F$C$F,-%<Involutive/pairstoequationsGF7F$F$F$%,
cppInvBasisGf*F$F$FBF$C$F,-%7Involutive/cppInvBasisGF7F$F$F$%,pinv_divideGf*F$F
$F_pF$C$F,-%7Involutive/pinv_divideGF7F$F$F$%/symmetricrangeGf*F$F$FPF$C$F,-%:I
nvolutive/symmetricrangeGF7F$F$F$%>pnormal_form_collect_lm_localGf*F$F$F\[lF$C$
F,-%IInvolutive/pnormal_form_collect_lm_localGF7F$F$F$%5invred_collect_localGf*
F$F$F\[lF$C$F,-%@Involutive/invred_collect_localGF7F$F$F$%-jetsdepcheckGf*F$F$F
iaoF$C$F,-%8Involutive/jetsdepcheckGF7F$F$F$%*polresdimGf*F$F$F`xF$C$F,-%5Invol
utive/polresdimGF7F$F$F$%2simp_invred_Z_absGf*F$F$F_pF$C$F,-%=Involutive/simp_i
nvred_Z_absGF7F$F$F$%1readbinaryoutputGf*F$F$FPF$C$F,-%<Involutive/readbinaryou
tputGF7F$F$F$%(checkIBGf*F$F$FBF$C$F,-%3Involutive/checkIBGF7F$F$F$%*remove_lmG
f*F$F$FPF$C$F,-%5Involutive/remove_lmGF7F$F$F$%,ginvMinPolyGf*F$F$FBF$C$F,-%7In
volutive/ginvMinPolyGF7F$F$F$%6pnormal_form_simplifyGf*F$F$F_pF$C$F,-%AInvoluti
ve/pnormal_form_simplifyGF7F$F$F$%)pmax_degGf*F$F$F_pF$C$F,-%4Involutive/pmax_d
egGF7F$F$F$%/pnegdeglex_POTGf*F$F$FIF$C$F,-%:Involutive/pnegdeglex_POTGF7F$F$F$
%.MVPolInterpolGf*F$F$FguF$C$F,-%9Involutive/MVPolInterpolGF7F$F$F$%3pdegrevlex
_deg_POTGf*F$F$FIF$C$F,-%>Involutive/pdegrevlex_deg_POTGF7F$F$F$%9pdeglex_deg_Z
_entr_blockGf*F$F$FPF$C$F,-%DInvolutive/pdeglex_deg_Z_entr_blockGF7F$F$F$%6pnor
mal_form_Z_nonnegGf*F$F$FIF$C$F,-%AInvolutive/pnormal_form_Z_nonnegGF7F$F$F$%;s
imp_pnormal_form_Z_nonnegGf*F$F$FIF$C$F,-%FInvolutive/simp_pnormal_form_Z_nonne
gGF7F$F$F$%1pnegdeglex_Z_POTGf*F$F$FIF$C$F,-%<Involutive/pnegdeglex_Z_POTGF7F$F
$F$%)invred_ZGf*F$F$F_pF$C$F,-%4Involutive/invred_ZGF7F$F$F$%#khGf*F$F$FguF$C$F
,-%.Involutive/khGF7F$F$F$%6pnormal_form_evala_lmGf*F$F$FBF$C$F,-%AInvolutive/p
normal_form_evala_lmGF7F$F$F$%0pjanet_divisionGf*F$F$F_pF$C$F,-%;Involutive/pja
net_divisionGF7F$F$F$%.pdeglex_blockGf*F$F$FIF$C$F,-%9Involutive/pdeglex_blockG
F7F$F$F$%9pnormal_form_simplify_lmGf*F$F$FBF$C$F,-%DInvolutive/pnormal_form_sim
plify_lmGF7F$F$F$%-reduce_by_hcGf*F$F$F\[lF$C$F,-%8Involutive/reduce_by_hcGF7F$
F$F$%/invred_collectGf*F$F$F_pF$C$F,-%:Involutive/invred_collectGF7F$F$F$%,pple
x_blockGf*F$F$FIF$C$F,-%7Involutive/pplex_blockGF7F$F$F$%+pdegrevlexGf*F$F$F_pF
$C$F,-%6Involutive/pdegrevlexGF7F$F$F$F$
M7R0
I8Involutive/pnegplex_POTf*6$%"aG%"bG6"6#%jnCopyright~(C)~2002-2010~by~Daniel~R
obertz.~All~rights~reserved.GF'@'2&9$6#""#&9%F.%&falseG2F0F,%%trueG4-%1Involuti
ve/pplexG6$F-F1F'F'F'F'
M7R0
IDInvolutive/pdeglex_deg_Z_entr_blockf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCop
yright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C*@&2&%,_entrblo
cksG6#&9$6#""#&F36#&9%F7-%'RETURNG6#%&falseG2F9F2-F>6#%%trueG>8%-%%nopsG6#&F66#
""">8&-%$addG6$*&&FJ6#8$FL&%(_vardegGFTFL/FU;FLFF>8'-FP6$*&&&F<FKFTFLFVFLFX@'2F
NFenFB2FenFNF=?(FUFLFLFFFD@&2FinFSF=2FSFinFB@&2-%$absG6#&F<6#""$-Feo6#&F6FhoF=2
FjoFdoFB@$2F5F;F=FDF.F.F.F.
M7R0
IAInvolutive/pnormal_form_evala_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_va
rG64%"aG%"hG%"iG%"kG%#lmG%$divG%#stG%'n_entrG%)rhs_entrG%*zero_listG%.rhs_zero_
listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%jnCopyright~(C)~2000-2010~by~Daniel~Ro
bertz.~All~rights~reserved.G6"C.>%(_nnformG,&FC"""FEFE>8%9$>8*""!>8+-%%nopsG6#&
FG6#FE>8,-FO6#&FG6#""#@$09)7"C'>8/<#-%$seqG6$&9&6#&Ffn6#8&/Fdo;FE-FO6#Ffn>80-FO
6#Fjn>81-%'removeG6%%$hasGF`oFjn>82Fgn>FG7#-%=Involutive/cancel_locvar_rhsG6'FQ
FW9'F`oFfn>8-7#-%"$G6$FKFM>8.7#-F_q6$FKFU>8)%%trueG>8(-FjpFP?(F@FEFEF@3Fgq0&Fjq
6$FYFEFKC&>FdoFE>Fgq%&falseG@$Fen>83,&-%$maxG6#-F]o6$-%'degreeG6$&FQ6#8'Fjn/Fcs
;FEFMFE-%$addG6$&&Fjq6$FEFE6#&FfnFbs/Fcs;FEFjo!""?(F@FEFEF@31Fdo-FO6#9%4FgqC$@$
30FQF\q-%7Involutive/pinv_divideG6%&Fft6$Fdo""$&Fft6$Fdo""&&FjqFRC'>%'_reducG,&
FhuFEFEFE>FJ,&FJFEFEFE@%FenC+>84,&-Fjr6#-F]o6$-F_s6$&&Fft6%FdoFEFEFbsFjnFdsFE-F
gs6$&&Fft6%FdoFauFEF\tF^tF`t>85FK>Fcs-FO6#Fdp?(F@FEFEF@32FKF_v2FKFcsC$@$332&&Fd
pFbs6#FauF_v/&&&F^xFXFRFX&FeuFX-%:Involutive/conv_divisibleG6$FbxFeuC$>F`wFcs>F
_vF]x>Fcs,&FcsFEF`tFE@$2FgrF_vC$>Fcs-9(6%FQF`o7$FW&&FjqFXFR>Fdp7$-%#opGFcw7%7$&
FcsFR&&FcsFXFR7$Feu-%'subsopG6$/FE&F_zFXFfyFgr@%/F`wFK>FG-%)simplifyG6#7$,&-%$m
apG6$f*6#F,F@6$%)operatorG%&arrowGF@**&T#F`rFE&Fh[l6$FYFYFE&T&6%T'""'FYF`tFHFEF
@F@6(F0FjqF&FftF.FdoFhvF`t-F_[l6$f*Fb[lF@Fc[lF@*&&T$6%T%F_\lFEFEFHFEF@F@6&F&Fft
F.FdoFQFE,&-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F@F`\l&Fft6%FdoFEFYF`t-F_[l6$f*Fb[lF@Fc[l
F@Fd\lF@F@Fi\lFWFE>FG-Fjz6#7$,&-F_[l6$f*Fb[lF@Fc[lF@**Fg[lFEFi[lFE&&&&Fh\l6#F^\
lFXFXFXF`tFHFEF@F@6(F0FjqF:FdpF=F`w&&&Fdp6#F`wFRFRF`t-F_[l6$f*Fb[lF@Fc[lF@*&&&&
&Fh[l6#Fh\lFXFXFRFEFHFEF@F@6&F:FdpF=F`wFQFE,&-F_[l6$f*Fb[lF@Fc[lF@F[^lF@F@Fa^l&
Fc^lFXF`t-F_[l6$f*Fb[lF@Fc[lF@Fi^lF@F@F__lFWFE>FG-Fby6%FQF`oFW>FGFfp@$0%2Involu
tive/characGFK>FG-%$modG6$FGF^`l@%/F^`lFKC$>FG-%(collectG6%7$-%'normalG6#-%&eva
laG6#,&-F_[l6$f*Fb[lF@Fc[lF@Fd\lF@F@Fi\lFQFE-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F@F`\lFh
vF`t-F\al6#-F_al6#,&-F_[l6$f*Fb[lF@Fc[lF@Fd\lF@F@Fi\lFWFE-F_[l6$f*Fb[lF@Fc[lF@F
f[lF@F@F`\lF^]lF`tF`o%,distributedG@$1FduFJC$>FGFi_l>FJFKC$>FG-Fh`l6%7$-Fa`l6$-
%'NormalG6#-F_al6#-%)SimplifyG6#,&-F_[l6$f*Fb[lF@Fc[lF@Fd\lF@F@Fi\lFQFE-F_[l6$f
*Fb[lF@Fc[lF@Ff[lF@F@F`\lFhvF`tF^`l-Fa`l6$-Facl6#-F_al6#-Ffcl6#,&-F_[l6$f*Fb[lF
@Fc[lF@Fd\lF@F@Fi\lFWFE-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F@F`\lF^]lF`tF^`lF`oFcbl@$1"#
7FJC$>FGFi_l>FJFK>FgqFhq>FjqF[r>Fdo,&FdoFEFEFE@'3/FQF\q0FWFbqC%@$2FKFJ>FW&-Fby6
%FWF`oFgnFR@$4-%7Involutive/member_multG6%FW%&P_HOMGF`o>Fhfl7$-Fjy6#FhflFW7$FQF
bqFjel7$F\qFW@%F^flFi_lFGF@6%FhflFCFhuF@F@
M7R0
IFInvolutive/pnormal_form_evala_poly_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(l
oc_varG66%"aG%#caG%#cbG%"hG%"iG%"kG%#lmG%$divG%#stG%'n_entrG%)rhs_entrG%*zero_l
istG%.rhs_zero_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%jnCopyright~(C)~2000-20
10~by~Daniel~Robertz.~All~rights~reserved.G6"C.>%(_nnformG,&FE"""FGFG>8'9$>8,""
!>8--%%nopsG6#&FI6#FG>8.-FQ6#&FI6#""#@$09)7"C'>81<#-%$seqG6$&9&6#&Fhn6#8(/Ffo;F
G-FQ6#Fhn>82-FQ6#F\o>83-%'removeG6%%$hasGFboF\o>84Fin>FI7#-%=Involutive/cancel_
locvar_rhsG6'FSFY9'FboFhn>8/7#-%"$G6$FMFO>807#-Faq6$FMFW>8+%%trueG>8*-F\qFR?(FB
FGFGFB3Fiq0&F\r6$FenFGFMC&>FfoFG>Fiq%&falseG@$Fgn>85,&-%$maxG6#-F_o6$-%'degreeG
6$&FS6#8)F\o/Fes;FGFOFG-%$addG6$&&F\r6$FGFG6#&FhnFds/Fes;FGF\p!""?(FBFGFGFB31Ff
o-FQ6#9%4FiqC$@$30FSF^q-%7Involutive/pinv_divideG6%&Fht6$Ffo""$&Fht6$Ffo""&&F\r
FTC'>%'_reducG,&FjuFGFGFG>FL,&FLFGFGFG@%FgnC+>86,&-F\s6#-F_o6$-Fas6$&&Fht6%FfoF
GFGFdsF\oFfsFG-Fis6$&&Fht6%FfoFcuFGF^tF`tFbt>87FM>Fes-FQ6#Ffp?(FBFGFGFB32FMFav2
FMFesC$@$332&&FfpFds6#FcuFav/&&&F`xFZFTFZ&FguFZ-%:Involutive/conv_divisibleG6$F
dxFguC$>FbwFes>FavF_x>Fes,&FesFGFbtFG@$2FirFavC$>Fes-9(6%FSFbo7$FY&&F\rFZFT>Ffp
7$-%#opGFew7%7$&FesFT&&FesFZFT7$Fgu-%'subsopG6$/FG&FazFZFhyFir@%/FbwFM>FI-%)sim
plifyG6#7$,&-%$mapG6$f*6#F,FB6$%)operatorG%&arrowGFB**&T#FbrFG&Fj[l6$FenFenFG&T
&6%T'""'FenFbtFJFGFBFB6(F2F\rF&FhtF0FfoFjvFbt-Fa[l6$f*Fd[lFBFe[lFB*&&T$6%T%Fa\l
FGFGFJFGFBFB6&F&FhtF0FfoFSFG,&-Fa[l6$f*Fd[lFBFe[lFBFh[lFBFBFb\l&Fht6%FfoFGFenFb
t-Fa[l6$f*Fd[lFBFe[lFBFf\lFBFBF[]lFYFG>FI-F\[l6#7$,&-Fa[l6$f*Fd[lFBFe[lFB**Fi[l
FGF[\lFG&&&&Fj\l6#F`\lFZFZFZFbtFJFGFBFB6(F2F\rF<FfpF?Fbw&&&Ffp6#FbwFTFTFbt-Fa[l
6$f*Fd[lFBFe[lFB*&&&&&Fj[l6#Fj\lFZFZFTFGFJFGFBFB6&F<FfpF?FbwFSFG,&-Fa[l6$f*Fd[l
FBFe[lFBF]^lFBFBFc^l&Fe^lFZFbt-Fa[l6$f*Fd[lFBFe[lFBF[_lFBFBFa_lFYFG>FI-Fdy6%FSF
boFY>FIFhp@$0%2Involutive/characGFM>FI-%$modG6$FIF``l@%/F``lFMC%-%$gcdG6&Far&Fh
t6%FfoFa\lFG.8%.8&>FI-%(collectG6%7$-%'normalG6#-%&evalaG6#,&-Fa[l6$f*Fd[lFBFe[
lFB*&Fj[lFGFJFGFBFB6$F.F`alFSFG-Fa[l6$f*Fd[lFBFe[lFB**Fj[lFG&Fj\lF\\lFG&T(6%T)F
a\lFenFbtFJFGFBFB6*F-F^alF2F\rF&FhtF0FfoFjvFbt-Fgal6#-Fjal6#,&-Fa[l6$f*Fd[lFBFe
[lFBF`blFBFBFablFYFG-Fa[l6$f*Fd[lFBFe[lFBFeblFBFBF[clF`]lFbtFbo%,distributedG@$
1FfuFLC$>FIF[`l>FLFMC%-Fc`l6$-%$GcdGFj`lF``l>FI-Fcal6%7$-Fc`l6$-%'NormalG6#-Fja
l6#-%)SimplifyG6#,&-Fa[l6$f*Fd[lFBFe[lFBF`blFBFBFablFSFG-Fa[l6$f*Fd[lFBFe[lFBFe
blFBFBF[clFjvFbtF``l-Fc`l6$-Fidl6#-Fjal6#-F^el6#,&-Fa[l6$f*Fd[lFBFe[lFBF`blFBFB
FablFYFG-Fa[l6$f*Fd[lFBFe[lFBFeblFBFBF[clF`]lFbtF``lFboFgcl@$1"#7FLC$>FIF[`l>FL
FM>FiqFjq>F\rF]r>Ffo,&FfoFGFGFG@'3/FSF^q0FYFdqC%@$2FMFL>FY&-Fdy6%FYFboFinFT@$4-
%7Involutive/member_multG6%FY%&P_HOMGFbo>F`hl7$-F\z6#F`hlFY7$FSFdqFbgl7$F^qFY@%
FfglF[`lFIFB6%F`hlFEFjuFBFB
M7R0
ICInvolutive/subsindetunivariatepolyf*6%%"pG%"vG%"wG6"6#%jnCopyright~(C)~2006-2
010~by~Daniel~Robertz.~All~rights~reserved.GF(@)5-%%typeG6$9$%"+G-F.6$F0%"*G-%$
mapG6&F"F09%9&-F.6$F0%"^G)-F"6%-%#opG6$"""F0F8F9-FA6$""#F0/F0F8F9F0F(F(F(F(
M7R0
I7Involutive/ptransfer_Tf*6$%&m_ordG%&N_OrdG6'%"iG%"jG%"kG%'n_entrG%"JG6#%jnCop
yright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"@$2"""-%%nopsG6#
%)P_T_ListGC(@%0%4Involutive/divisionG""!>F6-%%sortG6$F6%:Involutive/pplexdivis
ion3G@$309$F20FD""$>F6-F>6$F6%2Involutive/pplex3G>8'-F46#&F66%F2F2F2>8(7#-%$seq
G6$7"/8%;F2FL?(8$F2F2F3%%trueGC$>8&&F66%FfnFF""#>FR-%'subsopG6$/Fjn7$-%#opG6#&F
R6#FjnFfnFR@%F9-%$mapG6$f*6#F)F/6$%)operatorG%&arrowGF/-%5Involutive/pupdate_TG
6#&T#6#FDF/F/6$F,FR7#-%"$G6#FZ-F[p6$f*F^pF/F_pF/-%9Involutive/pupdate_T_stdGFdp
F/F/FhpFip>F6-F>6$F69%F/F5F/F/
M7R0
IFInvolutive/SubmoduleHilbertPolynomialf*6"6;%"bG%"dG%#dpG%"iG%"jG%"lG%"nG%"pG%
"sG%&n_mulG%,given_basisG%&m_ordG%'n_entrG%"FG%2tmp_P_T_List_dataG%%varsG%$varG
%%nvarG%(var_ordG%'vt_degG%)entr_posG%%seqvG%,force_evalaG%'lmprocG%$resG6#%jnC
opyright~(C)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C-@$4%4Involut
ive/ratcoeffG-%&ERRORG6#%fnnot~implemented~yet~for~involutive~bases~over~the~in
tegers.G>8,%%NULLG>8:%&falseG>8/""%@%519#"""32FVFU555-%%typeG6$&9"6#""#%)equati
onG-Fgn6$Fin-%%listG6#%(integerG-Fgn6$Fin%(numericG-Fgn6$Fin%%nameGC$>8.FN>8(FV
C$>F\p%%trueG>F^p""$?(8'F^pFVFUFap@--Fgn6$&Fjn6#FepFco@%F\p>FPFip@%/FJFK>FJFip-
FF6#%Zcannot~determine~which~indeterminate~or~value~to~plug~in.G-Fgn6$FipF`o>FP
Fip-Fgn6$FipFfo@%F^q>FJFipF`q3-Fgn6$FipF]o/-%#opG6$FVFipQ$varF$@%F^q>FJ-F_r6$F\
oFipF`q-Fgn6$FipFio@%F^q>FJFipF`q-FF6#%0invalid~option.G@$F^q>FJ.FJ@%F\pC3>81-%
6Involutive/proc_inputG6#&Fjn6#FV>80&FcsFhs>FM5FM&Fcs6#""&>8273%)P_T_ListG%*pnu
mber_tG%+PolTab_VarG%&_nvarG%&_pvarG%(_vardegG%(_tupdegG%,_entrblocksG%&P_HOMG%
)_pno_rhsG%0_pforce_collectG%._pforce_evalaG%)_inv_denG%+_JB_factorG%3_JB_facto
r_multvarG%(_JB_varG%*_JB_compaG>83-%5Involutive/proc_varsG6$FinFjs>86&FfuF[o>8
7&Ffu6#Fcp>88&Ffu6#""'>84&FfuFhs>897#-%$seqG6$-%$catG6$%#_xGFep/Fep;FV-%%nopsG6
#Fgv>F[v-%%subsG6$7#-F]w6$/&FgvFjp&FjvFjpFcwF[v@$30F[v7"/FPFQ>FP7#-%"$G6$FQ-Ffw
6#F[v>8)-%4Involutive/proc_ordG6*FPFgvF[vF_v&Ffu6#FQFjvFbv4FM@$&F_yFdy>FbvFex@$
/&F^v6#;,&FewFVFVFV,&FewFVFjsFV7#-Fjx6$""!Fjs>F^vFcz>8;-%&parseG6#-F`w6/Q@g->`I
nvolutive/pol_lead_mon`(g,F$-%(convertG6$Fjs%'stringGQ",F$-F^[l6$FjvF`[lFa[l-F^
[l6$&F_yFhsF`[lFa[l-F^[l6$FbvF`[lFa[l-F^[l6$&F_yF_tF`[lFa[l-F^[l6$F^vF`[lQ")F$-
%9Involutive/setupP_T_ListG6*-%(collectG6%&FcsFdyFgv%,distributedGFjs&FcsF[oFfz
&F_yF`v&FfuF_tFgv&FcsF`v@$4-%)assignedG6#Fdt-FF6#%Umissing~involutive~basis;~ru
n~InvolutiveBasis~first.G@%/&Fdt6%FVFevFVFcz>8<Fcz@%%5Involutive/janetlikeGC%>F
h]lFcz>8*-Ffw6#&Fdt6%FVFcpFV?&FepFdtFapC%>8--%*numboccurG6$&FepF_t%)infinityG>8
%-F^[l6$&Fep6$FcpFV%"+G@%/Ff^lF^^l>Fh]l,&Fh]lFV-%)binomialG6$,*Ff^lFVFJFVF]_l!"
"F[`lFV,&Ff^lFVF[`lFVFVC'>8$-Fjw6$/F[_lFczFj^l>8+7#-Fjx6$FczF^^l>Fh]lFf_l>Fd`l-
%8Involutive/nextmonomialG6$Fd`lF_`l?(F$FVFVF$0Fd`lFe`lC%>8&-F^[l6$Fd`lFb_l>Fh]
l,&Fh]lFV-Fh_l6$,,Ff^lFVFJFVF]_lF[`lFaalF[`lF[`lFVF\`lFV>Fd`lFj`l>Fh]l-%$addG6$
-Fh_l6$,*-Fh^l6$&Fdt6$FepF`tF[_lFVFJFV-F^[l6$&Fdt6%FepFcpFVFb_lF[`lF[`lFV,&Fabl
FVF[`lFV/Fep;FV-FfwF_]l@$F\p-%;Involutive/restoreP_T_ListG6#Fbt-%'expandG6#Fh]l
F$F$F$F$
M7R0
I@Involutive/count_non_basis_elemf*6%%"pG%"bG%"vG6%%"cG%"iG%"jG6#%jnCopyright~(
C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C%>8$""!?(8%"""F5-%%nops
G6#9$%%trueG@&-%%typeG6$&F96#F4%"+G?&8&F?F:@$-%$hasG6$FC9&@&-F=6$FC%"^G@$4-%'me
mberG6$FC9%>F1,&F1F5F5F54-FP6$-%'selectG6%FFFCFHFR>F1FT-FF6$F?FH@&-F=6$F?FL@$4-
FP6$F?FR>F1FT4-FP6$-FY6%FFF?FHFR>F1FTF1F.F.F.F.
M7R0
I2Involutive/AddRhsf*6#%"LG6&%"iG%"eG%"vG%"RG6#%jnCopyright~(C)~2000-2010~by~Da
niel~Robertz.~All~rights~reserved.G6"C%>8&-%*substringG6$-%(convertG6$-%+kernel
optsG6#%(versionG%'stringG;""""")@'5-%%typeG6$9$%'matrixG330F0Q)Maple~V,F-0F0Q)
Maple~6.F--FB6$FD%'MatrixG>8'-F56$FD%)listlistG-FB6$FD%%listG>FPFD-%&ERRORG6#%R
expecting~first~parameter~to~be~a~list~or~matrix.G@%2F=9#C$@$0-%%nopsG6#&9"6#""
#-F]o6#FP-FY6#%enthe~number~of~right~hand~sides~must~equal~the~length~of~L.G-%$
zipG6%f*6$F'F(F-6$%)operatorG%&arrowGF-/FD9%F-F-F-FPF_oC$>8%7#-%"$G6$""!Fco7#-%
$seqG6$/&FP6#8$-%'subsopG6$/FaqF=Fdp/Faq;F=FcoF-F-F-F-
M7R0
I;Involutive/PolMinPolyParamf*6%'%"pG%(polynomG'%"BG%%listG'%%varsGF*61%"iG%"jG
%"mG%"tG%"xG%%optsG%'paramsG%$varG%)maxcoeffG%"FG%*evalpointG%#hsG%'lambdaG%)pa
ramdenG%(paramnoG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~res
erved.G6"C7@$0%7Involutive/initializedG.%%trueG-%0Involutive/initGF?@$4%4Involu
tive/ratcoeffG-%&ERRORG6#%fnnot~implemented~yet~for~involutive~bases~over~the~i
ntegers.G>8)%%NULLG>8*FQ>8.FQ>8(FQ>81FQ>82""!?(8$""%"""9#FE@%-%%typeG6$&9"6#Fhn
%)equationG@-/-%#opG6$FjnF`oQ'paramsF?C$@$4-F^o6$-Fgo6$""#F`oF*-FL6#%Fexpecting
~a~list~for~option~"params".G>FSF_p/FfoQ*firstevalF?C$@$4-F^o6$F_p%'posintG-FL6
#%Uexpecting~a~positive~integer~for~option~"firsteval".G>FU7#F_p/FfoQ&denomF?>F
YF_p/-%*substringG6$Ffo;Fjn""$Q$varF?C$@$4-F^o6$F_p%%nameG-FL6#%\oexpecting~a~n
ame~for~the~indeterminate~of~the~minimal~polynomial.G>FWF_p/-Fhq6$Ffo;FjnFinQ%s
ubsF?>FWF_p>FP6$FPF`o>FPF^s>8--%6Involutive/proc_inputG6#9%>8+&-%5Involutive/pr
oc_varsG6$9&&Fas6#FjnF^t@%/FSFQ>FS-%'removeG6%%2Involutive/hasvarG&Fas6#""(Fgs@
$-%(convertG6$-%$mapG6%%'memberGFSFgs%#orG-FL6#%Xthe~lists~of~variables~and~par
ameters~must~be~disjoint.G@$0FYFQ@$4-F`u6%&-%'indetsG6#FYF^tFS.Fen-FL6#%0not~a~
parameterG@$/FUFQ>FU7#-%$maxG6$",+++++"*$-%4Involutive/maxcoeffG6#&Fas6#FinFap>
FU7$-Fgo6#FU-%$seqG6$Fhn/Fhn;Fjn,&-%%nopsG6#FSFjn!""Fjn-%;Involutive/Involutive
BasisG6$-%%subsG6$7#-Ffw6$/&FSFbo&FUFbo/Fhn;FjnF[xFesF\t-%&printG6#Q8Involutive
Basis~fertig.F?>8/-%<Involutive/PolHilbertSeriesG6#8'>8%Fap?(F?FjnFjnF?FEC'>8&-
%9Involutive/minpoly_paramG6-9$FesF\tFSFUF[x80FbyFfyFYFen@$0F\zFfn[@$2-F\xFdwFh
y-FL6#%Uneed~better~strategy~to~choose~the~evaluation~point.G>FU-%'subsopG6$/Fh
y,&&FU6#FhyFjnFjnFjnFU>Fhy,&FhyFjnFjnFjn@%0FWFQ-Fcx6$/FazFWF\zF\zF?F?F?F?
M7R0
I2Involutive/PolHomf*6%%#_MG%#_NG'%%varsG%%listG6-%"MG%"NG%#l0G%#l1G%$_l0G%%HP0
NG%%HP1NG%&alphaG%"iG%"jG%$varG6#%[oCopyright~(C)~2003-2005~by~Mohamed~Barakat.
~All~rights~reserved.G6"C->8$-%5Involutive/jetsmkmatG6#-%$mapG6$f*6#%"aGF86$%)o
peratorG%&arrowGF8&9$6#"""F8F8F8&-%6Involutive/proc_inputG6#FI6#""%>8%-F=6#-F@6
$f*FCF8FEF8FHF8F8F8&-FN6#9%FP>8&-&%'linalgG6#%'coldimG6#F;>8'-&F[o6#%'rowdimGF^
o>8(-Fjn6#FS>8)-%7Involutive/jetsdiagmatG6#-%"$G6$FSFhn>8*-F\p6#-F_p6$FSF`o>8+-
&F[o6#%*transposeG6#-%<Involutive/jetskroneckermatG6$F;-&F[o6#%%diagG6#-F_p6$FK
Ffo>8.&-%5Involutive/proc_varsG6$9&*&FhnFKFfoFKFJ-%5Involutive/PolKernelG6&FjoF
hpFbpF^r7&-F@6$f*FCF8FEF8/-%$lhsGFO-%6Involutive/matrixtypeG6%T#T%f*6$F3F4F8FEF
8&-%$rhsG6#T$6#,&*&,&FIFK!""FKFKF^sFKFKFfnFKF8F86&FDFIF/F^sF8F86&F-FhnF/Ffo&%"%
GFJ&F^t6#""#&F^t6#""$-%>Involutive/PolCartanCharacterG6#7#-F_p6#;FK-%%nopsG6#Fi
qF8F8F8F8
M7R0
I5Involutive/PolDerModf*6$%#_RG'%$varG%%listG6&%"RG%#RlG%"MG%&alphaG6#%[oCopyri
ght~(C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$-%5Involutive
/jetsmkmatG6#-%$mapG6$f*6#%"aGF06$%)operatorG%&arrowGF0&9$6#"""F0F0F0&-%6Involu
tive/proc_inputG6#FA6#""%>8%-F86$%#opG-%(convertG6$F3%)listlistG>8&-%8Involutiv
e/PolDirectSumG6#-%"$G6$F3-%%nopsG6#9%>8'-%'matrixG6#-F86$f*F;F0F=F0-F86$f*6#%"
bGF0F=F0-%%diffG6$FAT$F0F06$F<FAT#F0F06$F+FKFhn-%5Involutive/PolKernelG6'FTFjn-
FV6#-FY6$F3-Ffn6#FKFhnQ#GTF0F0F0F0F0
M7R0
I.Involutive/khf*6$%"LG%"MG6$%"iG%"jG6#%[oCopyright~(C)~2007-2010~by~Moritz~Sch
roeer.~All~rights~reserved.G6"7#-%$seqG6$-F/6$7$&9$6#8$-%#opG6#&9%6#8%/F>;"""-%
%nopsG6#F</F7;FA-FC6#F5F,F,F,F,
M7R0
I4Involutive/kartprodf*6#'%"LG-%%listG6#F(6#%"kG6#%[oCopyright~(C)~2007-2010~by
~Moritz~Schroeer.~All~rights~reserved.G6"C$>8$-%%nopsG6#9$@%/F1"""-%$mapG6$f*6#
%"XGF.6$%)operatorG%&arrowGF.7#F5F.F.F.&F56#F8-%.Involutive/khG6$FC-F"6#&F56#;"
"#!""F.F.F.F.
M7R0
I:Involutive/MinPolyRatFuncf*6#%"MG6%%"iG%"tG%"xG6#%^pCopyright~(C)~2007-2010~b
y~Daniel~Robertz~and~Moritz~Schroeer.~All~rights~reserved.G6"C&>8%""!>8&.%'lamb
daG?(8$""#"""9#%%trueG@'-%%typeG6$&9"6#F6%%nameG>F2F?-F=6$F?%)equationG@%/-%#op
G6$F8F?Q%testF,C$@$4-F=6$-FJ6$F7F?%'posintG-%&ERRORG6#%jnexpecting~number~of~ex
tra~evaluations~to~be~a~positive~integer.G>F/FR-FV6#%0invalid~option.GFZ@%2F0F/
-%<Involutive/MVMinPolInterpolG6%9$F2F/-Fjn6$F\oF2F,F,F,F,
M7R0
I1InvolutiveA/initf*6"F$6#%jnCopyright~(C)~2002-2010~by~Daniel~Robertz.~All~rig
hts~reserved.GF$-%0Involutive/initG6#9"F$F$F$F$
M7R0
I>Involutive/pnormal_form_localf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG6
=%"aG%"hG%"iG%"jG%"kG%"rG%#lmG%'n_entrG%*zero_listG%.rhs_zero_listG%#lvG%#nlG%#
nvG%"HG%&ecartG%#hiG%0do_polinvreduceG%2no_tail_reductionG%*first_runG%*do_expa
ndG%+do_collectG%)do_evalaG%+simplifierG%*HC_usableG%:HC_var_and_component_list
G%*HC_existsG%#HCG6#%dqCopyright~(C)~2000-2010~by~Carlos~F.~Cid,~Daniel~Robertz
~and~Markus~Lange-Hegermann.~All~rights~reserved.G6"C6@%1""(9#@%-%%typeG6$&9"6#
FM%(integerGC'@%/-%$modG6$FS""#""">85%%trueG>Fjn%&falseG@%/-Fen6$-%%iquoGFfnFgn
Fhn>84F[o>FeoF]o@%/-Fen6$-Fco6$FS""%FgnFhn>88F[o>F_pF]o@%/-Fen6$-Fco6$FS"")FgnF
hn>87F[o>FipF]o@%/-Fen6$-Fco6$FS"#;FgnFhn>89F[o>FcqF]o-%&ERRORG6#Q5unexpected~a
rgumentsFIC'>FjnF]o>FeoF]o>F_pF]o>FipF]o>FcqF]o@)F_p@%/%2Involutive/characG""!>
8:f*6$F,F'FIFIFI-%(collectG6%-%'normalG6#9$9%%,distributedGFIFIFI>Ferf*FgrFIFIF
I-Fir6%-Fen6$-%'NormalGF]s%1Involutiv/characGF_sF`sFIFIFIFip@%Far>Ferf*FgrFIFIF
I-%'expandGF]sFIFIFI>Ferf*FgrFIFIFI-Fen6$F]tFbrFIFIFIFcq@%Far>Ferf*FgrFIFIFI-Fi
r6%-F\s6#-%&evalaGF]sF_sF`sFIFIFI>Ferf*FgrFIFIFI-Fir6%-Fen6$-Fhs6#-F[u6#-%)Simp
lifyGF]sFbrF_sF`sFIFIFI@%Far>Ferf*FgrFIFIFIF[sFIFIFI>Ferf*FgrFIFIFI-Fen6$F[sFbr
FIFIFI@$4Feo>%(_nnformG,&FbvFhnFhnFhn>8%-Fer6$F^s9&>8+-%%nopsG6#&Fev6#Fhn>8.<#-
%$seqG6$&Fhv6#&9)6#8&/F[x;Fhn-F\w6#Fiw>8/-F\w6#Faw>80-%'removeG6%%$hasGFhvFaw>F
ev7#-%=Involutive/cancel_locvar_rhsG6'F^w&Fev6#Fgn9'FhvFiw>81F_s@$-FQ6$%'_local
GFVC$-%&printG6#Q$newFI-Fjy6#-%$mapG6$f*6#F,FI6$%)operatorG%&arrowGFI7$&F^sF`y&
F^s6#FgpFIFIFIFcy>8*-FayF]w>82-%1Involutive/ecartG6&FevF\[lFhvFiw>8,7#-%"$G6$Fc
rFjv>8-7#-Fg[l6$Fcr-F\w6#F_y>8)7$Fd[lFj[l>86F[o?(FIFhnFhnFI0&F\[l6$FgnFhnFcrC,@
$F`v>%'_reducG,&F\]lFhnFhnFhn>83Fcr@%3F`vFd\lC%>Fd\lF]o?(F[xFhnFhn-F\w6#FcyF[o@
$-%7Involutive/pinv_divideG6%&Fcy6$F[x""$&Fcy6$F[x""&&F\[lF_w>F_]lF[x@$/Faw<#-%
#opG6#Fhv>Fcy7$-Fg^lFf]l-Fg^l6#-F`z6$f*6#F.FIFdzFI7*7$-F^t6#*&&T$F]sFhn&T%F_wFh
n-F^t6#*&Fg_lFhn&Fj_lF`yFhn7$-%'subsopG6$/F^s,&&T'6%FhnFhnF^sFhnFhnFhn&Ff`l6$Fh
nFhn&Ff`l6$FhnFgnF_`l7"F\al7$&Ff`lFh\l-F^t6#*&Fg_lFhn&Ff`l6$FgnFgnFhnF\alT)FIFI
6*F'FhvF-FevF2F\[lF:F_[lFiw?(F[xFhnFhnFe]lF[o@$5/F_]lFcr2&Fcy6$F[xFgp&Fcy6$F_]l
Fgp@$3/&&&FcyFjw6#F]^lF`y&Fa^lF`y-%:Involutive/conv_divisibleG6$FcblFa^l>F_]lF[
x@%2FcrF_]lC&@$32FcrF]bl0&Fa\lF_wFd[lC%>Fbcl,&FbclFhnF^wFhn>F^wFd[l[@$2F_[lF]bl
C&@%/FbclFd[l>8(-9(6%F^wFhv7$F_y&&F\[lF`yF_w>F^dl7$F^wFbdl>F\[l-Fay6#&F^dlF_w>F
cy7$F[_l7*7$Fjdl&&F^dlF`yF_wFa^lFa^lFcrFcrFddlF\alF_[l@$4-FQ6$Fgy%%nameG-Fjy6$&
Fa^lF_wF_[l>Fev-Fer6$-F^t6#,&*&&Fcy6%F_]l""'FhnFhnFevFhnFhn7$,$**Fg\lFhn&F\[lFc
alFhn&Fcy6%F_]lFbflFgn!""&Fcy6%F_]lFhnFhnFhnFifl,$**Fg\lFhnFfflFhnFgflFifl&Fcy6
%F_]lFhnFgnFhnFiflFhnFhv@%0FbrFcr>Fa\l-Fen6$-F^t6#*&F`flFhnFa\lFhnFbr>Fa\lFegl@
%FjnFgcl@%FarC$>Fa\l7$-Fa`l6$/&F\[lF[al-Fer6$,&&Fbcl6#FahlFhn*&Fg\lFhnFfflFhnFh
nFhvFbcl&Fa\lF`y>Fev7$-Fa`l6$/Fahl-Fer6$,&&F^wFfhlFhnFghlFiflFhvF^wF_yC$>Fa\lF]
hl>FevFjhl@$F\dlC$>Fev-F`dl6%F^wFhvF_y>FevF[y@$Fagl>Fev-Fen6$FevFbr>Fev-Fer6$Fe
vFhv>F\[lF][l>F_[lF`[l@$3Fey1FgnFgy-Fjy6$Fa^lF_[l@$Fjn>FbclF^w@'3F\dl0F_yFj[lC%
>F_y&-F`dl6%F_yFhvF\alF_w@$33F][m4-%7Involutive/member_multG6%F_y%&P_HOMGFhvF`v
>Fj[m7$-Fg^l6#Fj[mF_y@%Feo7$FbclF_y7$FbclFj[lF\dl7$Fd[lF_yC$@$0FiwF\al>6$FbclF_
y-F]y6'FbclF_yFayFhvFiw-F`dl6%FbclFhvF_yFI6&Fj[mFbvF\]lFgyFIFI
M7R0
I9Involutive/LocalSyzygiesf*6%%#MMG%#NNG%$varG6(%"LG%"JG%#MNG%"MG%"NG%$SyzG6#%b
oCopyright~(C)~2007-2010~by~Markus~Lange-Hegermann.~All~rights~reserved.G6"C)@%
1""%9#@%/&9"6#F5Q%ginvF1>8)%<Involutive/SyzygyModuleGINVG>F>%8Involutive/Syzygy
ModuleG>F>FA>8'9$>8(9%>8&-%>Involutive/LocalBasisIdentityG6$7$-%#opG6#FD-FP6#FG
9&>FD&FJ6#;"""-%%nopsGFQ>FG&FJ6#;,&FZFYFYFY,&FZFY-FenFSFY-F>6%FDFT/Q$modF1FGF1F
1F1F1
M7R0
I?Involutive/PolIntersectionGINVf*6%%$_R1G%$_R2G'%$varG%%listG6+%"aG%"nG%#R1G%#
R2G%#R0G%"ZG%,trace_denomG%*_inv_den2G%$resG6#%fqCopyright~(C)~2003-2010~by~Moh
amed~Barakat,~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~rights~reserved.G6
"C+@%31""%9#/&9"6#F;Q&denomF6>8*%%trueGC$>FC%&falseG>%)_inv_denG.FI>8&-%$mapG6$
f*6#F+F66$%)operatorG%&arrowGF6&9$6#"""F6F6F6&-%6Involutive/proc_inputG6#FVF@>8
'-FN6$f*FQF6FRF6FUF6F6F6&-Fen6#9%F@>8%-%%nopsG6#&FLFW>8(-FN6$%#opG7$-FN6$f*FQF6
FRF6-FN6$Fjo7$FVFVF6F6F6FL-FN6$f*FQF6FRF6-FN6$Fjo7$FV-%"$G6$""!T#F6F66$F,FaoFhn
@%FCC$>8,-%?Involutive/InvolutiveBasisGINVG6&Fgo9&""#FA>8+FI>Faq-Fcq6%FgoFeqFfq
>8)-FN6$f*FQF6FRF6@$/&FV6#;FXF\q7#Fhp&FV6#;,&F\qFXFXFX!""F6F6F]qFaq@$/F]r7">F]r
7#7#-Fip6$F[qFao@%FCC%>Faq-Fcq6%F]rFeq&F?6#;F;F<>FI7#-Fjo6#-%&unionG6$<#-Fjo6#F
I<#-Fjo6#FhqFaqFgsF6FetF6F6
M7R0
I,InvolutiveA=6"%&falseGE\[l\al%9PolWeightedHilbertSeriesGf*F$F$6#%jnCopyright~
(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C$30%7Involutive/initia
lizedG.%%trueG0-%0Involutive/initGF$""!-%DInvolutive/PolWeightedHilbertSeriesG6
#9"F$F$F$%3monomcoefflistmultGf*F$F$6#%jnCopyright~(C)~2007-2010~by~Daniel~Robe
rtz.~All~rights~reserved.GF$C$F,-%>Involutive/monomcoefflistmultGF7F$F$F$%6Fact
orModuleBasisFastGf*F$F$6#%jnCopyright~(C)~2008-2010~by~Daniel~Robertz.~All~rig
hts~reserved.GF$C$F,-%AInvolutive/FactorModuleBasisFastGF7F$F$F$%5InvolutivePre
processGf*F$F$6#%jnCopyright~(C)~2005-2010~by~Daniel~Robertz.~All~rights~reserv
ed.GF$C$F,-%@Involutive/InvolutivePreprocessGF7F$F$F$%;pnormal_form_evala_poly_
lmGf*F$F$F)F$C$F,-%FInvolutive/pnormal_form_evala_poly_lmGF7F$F$F$%3pnormal_for
m_Z_absGf*F$F$6#%jnCopyright~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserv
ed.GF$C$F,-%>Involutive/pnormal_form_Z_absGF7F$F$F$%2PolResolutionFastGf*F$F$6#
%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%=Inv
olutive/PolResolutionFastGF7F$F$F$%)findconeGf*F$F$F;F$C$F,-%4Involutive/findco
neGF7F$F$F$%<pdegrevlex_deg_Z_entr_blockGf*F$F$FfnF$C$F,-%GInvolutive/pdegrevle
x_deg_Z_entr_blockGF7F$F$F$%8pnormal_form_collect_lmGf*F$F$F)F$C$F,-%CInvolutiv
e/pnormal_form_collect_lmGF7F$F$F$%/pdegrevlex_POTGf*F$F$FUF$C$F,-%:Involutive/
pdegrevlex_POTGF7F$F$F$%2InvolutiveOptionsGf*F$F$F)F$C$F,-%=Involutive/Involuti
veOptionsGF7F$F$F$%/PolLeftInverseGf*F$F$6#%jnCopyright~(C)~2003-2010~by~Daniel
~Robertz.~All~rights~reserved.GF$C$F,-%:Involutive/PolLeftInverseGF7F$F$F$%,pse
udored_ZGf*F$F$FUF$C$F,-%7Involutive/pseudored_ZGF7F$F$F$%*PolDerModGf*F$F$6#%[
oCopyright~(C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F,-%5Invo
lutive/PolDerModGF7F$F$F$%+pnegdeglexGf*F$F$FUF$C$F,-%6Involutive/pnegdeglexGF7
F$F$F$%'PolDetGf*F$F$6#%[oCopyright~(C)~2007-2010~by~Moritz~Schroeer.~All~right
s~reserved.GF$C$F,-%2Involutive/PolDetGF7F$F$F$%0invred_Z_nonnegGf*F$F$6#%\pCop
yright~(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G
F$C$F,-%;Involutive/invred_Z_nonnegGF7F$F$F$%9pnegdegrevlex_entr_blockGf*F$F$Ff
nF$C$F,-%DInvolutive/pnegdegrevlex_entr_blockGF7F$F$F$%.pdeglex_Z_POTGf*F$F$FUF
$C$F,-%9Involutive/pdeglex_Z_POTGF7F$F$F$%5block_ord_entr_blockGf*F$F$FfnF$C$F,
-%@Involutive/block_ord_entr_blockGF7F$F$F$%/conv_divisibleGf*F$F$FerF$C$F,-%:I
nvolutive/conv_divisibleGF7F$F$F$%.pnegdegrevlexGf*F$F$FUF$C$F,-%9Involutive/pn
egdegrevlexGF7F$F$F$%,pplex_Z_POTGf*F$F$FUF$C$F,-%7Involutive/pplex_Z_POTGF7F$F
$F$%3pplex_Z_entr_blockGf*F$F$FfnF$C$F,-%>Involutive/pplex_Z_entr_blockGF7F$F$F
$%*ecart_lm1Gf*F$F$6#%epCopyright~(C)~2006-2010~by~Daniel~Robertz~and~Markus~La
nge-Hegermann.~All~rights~reserved.GF$C$F,-%5Involutive/ecart_lm1GF7F$F$F$%,Pol
CokernelGf*F$F$FbqF$C$F,-%7Involutive/PolCokernelGF7F$F$F$%*proc_varsGf*F$F$6#%
jnCopyright~(C)~2002-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%5Invo
lutive/proc_varsGF7F$F$F$%/pnormal_form_ZGf*F$F$FUF$C$F,-%:Involutive/pnormal_f
orm_ZGF7F$F$F$%2invred_evala_polyGf*F$F$FerF$C$F,-%=Involutive/invred_evala_pol
yGF7F$F$F$%-pjanet_separGf*F$F$FerF$C$F,-%8Involutive/pjanet_separGF7F$F$F$%0Au
gmentInvBasisGf*F$F$FBF$C$F,-%;Involutive/AugmentInvBasisGF7F$F$F$%6pdegrevlex_
entr_blockGf*F$F$FfnF$C$F,-%AInvolutive/pdegrevlex_entr_blockGF7F$F$F$%+PolHomF
astGf*F$F$6#%^pCopyright~(C)~2003-2010~by~Mohamed~Barakat~and~Daniel~Robertz.~A
ll~rights~reserved.GF$C$F,-%6Involutive/PolHomFastGF7F$F$F$%/autoreduc_headGf*F
$F$FfnF$C$F,-%:Involutive/autoreduc_headGF7F$F$F$%&PolHPGf*F$F$FerF$C$F,-%1Invo
lutive/PolHPGF7F$F$F$%)coeffseqGf*F$F$F^rF$C$F,-%4Involutive/coeffseqGF7F$F$F$%
4PolIntersectionGINVGf*F$F$6#%fqCopyright~(C)~2003-2010~by~Mohamed~Barakat,~Dan
iel~Robertz~and~Markus~Lange-Hegermann.~All~rights~reserved.GF$C$F,-%?Involutiv
e/PolIntersectionGINVGF7F$F$F$%1pplex_entr_blockGf*F$F$FfnF$C$F,-%<Involutive/p
plex_entr_blockGF7F$F$F$%,jetszerocolGf*F$F$6#%inCopyright~(C)~2000-2002~by~Geh
rt~Hartjen.~All~rights~reserved.GF$C$F,-%7Involutive/jetszerocolGF7F$F$F$%-pneg
plex_POTGf*F$F$F[vF$C$F,-%8Involutive/pnegplex_POTGF7F$F$F$%+linear_varGf*F$F$F
IF$C$F,-%6Involutive/linear_varGF7F$F$F$%(PolExt1Gf*F$F$6#%^pCopyright~(C)~2000
-2010~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%3Invo
lutive/PolExt1GF7F$F$F$%7SubmoduleHilbertSeriesGf*F$F$F;F$C$F,-%BInvolutive/Sub
moduleHilbertSeriesGF7F$F$F$%'HenselGf*F$F$FIF$C$F,-%2Involutive/HenselGF7F$F$F
$%-algext2aliasGf*F$F$FfnF$C$F,-%8Involutive/algext2aliasGF7F$F$F$%1jetskroneck
ermatGf*F$F$FbqF$C$F,-%<Involutive/jetskroneckermatGF7F$F$F$%0pnegdegrevlex_ZGf
*F$F$FUF$C$F,-%;Involutive/pnegdegrevlex_ZGF7F$F$F$%2pdeglex_deg_blockGf*F$F$FU
F$C$F,-%=Involutive/pdeglex_deg_blockGF7F$F$F$%,LocalReduceGf*F$F$6#%boCopyrigh
t~(C)~2007-2010~by~Markus~Lange-Hegermann.~All~rights~reserved.GF$C$F,-%7Involu
tive/LocalReduceGF7F$F$F$%,LocalIsUnitGf*F$F$Fc]lF$C$F,-%7Involutive/LocalIsUni
tGF7F$F$F$%3SubmoduleDimensionGf*F$F$F;F$C$F,-%>Involutive/SubmoduleDimensionGF
7F$F$F$%,setup_basisGf*F$F$FfnF$C$F,-%7Involutive/setup_basisGF7F$F$F$%'PolSumG
f*F$F$FbqF$C$F,-%2Involutive/PolSumGF7F$F$F$%:pnormal_form_collect_polyGf*F$F$F
erF$C$F,-%EInvolutive/pnormal_form_collect_polyGF7F$F$F$%.PolResolutionGf*F$F$F
)F$C$F,-%9Involutive/PolResolutionGF7F$F$F$%1pnegdeglex_blockGf*F$F$FUF$C$F,-%<
Involutive/pnegdeglex_blockGF7F$F$F$%,pdeglex_degGf*F$F$FerF$C$F,-%7Involutive/
pdeglex_degGF7F$F$F$%3invred_evala_localGf*F$F$6#%boCopyright~(C)~2008-2010~by~
Markus~Lange-Hegermann.~All~rights~reserved.GF$C$F,-%>Involutive/invred_evala_l
ocalGF7F$F$F$%.setupP_T_ListGf*F$F$F)F$C$F,-%9Involutive/setupP_T_ListGF7F$F$F$
%.simp_invred_ZGf*F$F$FerF$C$F,-%9Involutive/simp_invred_ZGF7F$F$F$%-oneparam_n
umGf*F$F$FfnF$C$F,-%8Involutive/oneparam_numGF7F$F$F$%8pdegrevlex_Z_entr_blockG
f*F$F$FfnF$C$F,-%CInvolutive/pdegrevlex_Z_entr_blockGF7F$F$F$%*block_ordGf*F$F$
FUF$C$F,-%5Involutive/block_ordGF7F$F$F$%*pmult_varGf*F$F$FerF$C$F,-%5Involutiv
e/pmult_varGF7F$F$F$%4InvolutiveBasisFastGf*F$F$F)F$C$F,-%?Involutive/Involutiv
eBasisFastGF7F$F$F$%,checkIBginvGf*F$F$F)F$C$F,-%7Involutive/checkIBginvGF7F$F$
F$%+PolKaehlerGf*F$F$FbqF$C$F,-%6Involutive/PolKaehlerGF7F$F$F$%.is_janet_elemG
f*F$F$FfnF$C$F,-%9Involutive/is_janet_elemGF7F$F$F$%-PolKernelEmbGf*F$F$FbqF$C$
F,-%8Involutive/PolKernelEmbGF7F$F$F$%*PolHomHomGf*F$F$FbqF$C$F,-%5Involutive/P
olHomHomGF7F$F$F$%.PolRepresFastGf*F$F$F)F$C$F,-%9Involutive/PolRepresFastGF7F$
F$F$%)proc_ordGf*F$F$F[vF$C$F,-%4Involutive/proc_ordGF7F$F$F$%-PolFactorizeGf*F
$F$6#%\pCopyright~(C)~2006-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights
~reserved.GF$C$F,-%8Involutive/PolFactorizeGF7F$F$F$%1ginvBasisHomogenGf*F$F$6#
%enCopyright~(C)~2010~by~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%<Involuti
ve/ginvBasisHomogenGF7F$F$F$%6pnegplex_Z_entr_blockGf*F$F$FfnF$C$F,-%AInvolutiv
e/pnegplex_Z_entr_blockGF7F$F$F$%-invred_evalaGf*F$F$FerF$C$F,-%8Involutive/inv
red_evalaGF7F$F$F$%*prim_partGf*F$F$F)F$C$F,-%5Involutive/prim_partGF7F$F$F$%,p
transfer_TGf*F$F$F)F$C$F,-%7Involutive/ptransfer_TGF7F$F$F$%)PolSyzOpGf*F$F$Fbq
F$C$F,-%4Involutive/PolSyzOpGF7F$F$F$%5pdegrevlex_deg_Z_POTGf*F$F$FUF$C$F,-%@In
volutive/pdegrevlex_deg_Z_POTGF7F$F$F$%:pdegrevlex_deg_entr_blockGf*F$F$FfnF$C$
F,-%EInvolutive/pdegrevlex_deg_entr_blockGF7F$F$F$%1SyzygyModuleFastGf*F$F$F[vF
$C$F,-%<Involutive/SyzygyModuleFastGF7F$F$F$%/AssertInvBasisGf*F$F$F)F$C$F,-%:I
nvolutive/AssertInvBasisGF7F$F$F$%.PolKernelFastGf*F$F$F[xF$C$F,-%9Involutive/P
olKernelFastGF7F$F$F$%.pcriteria1234Gf*F$F$FIF$C$F,-%9Involutive/pcriteria1234G
F7F$F$F$%+PolTorsionGf*F$F$F[xF$C$F,-%6Involutive/PolTorsionGF7F$F$F$%/pnegplex
_Z_POTGf*F$F$FUF$C$F,-%:Involutive/pnegplex_Z_POTGF7F$F$F$%8pnegdeglex_Z_entr_b
lockGf*F$F$FfnF$C$F,-%CInvolutive/pnegdeglex_Z_entr_blockGF7F$F$F$%,Annihilator
Gf*F$F$F)F$C$F,-%7Involutive/AnnihilatorGF7F$F$F$%*jetsgrankGf*F$F$F]zF$C$F,-%5
Involutive/jetsgrankGF7F$F$F$%2PolMinPolyRatFuncGf*F$F$FfnF$C$F,-%=Involutive/P
olMinPolyRatFuncGF7F$F$F$%1MVMinPolInterpolGf*F$F$F^rF$C$F,-%<Involutive/MVMinP
olInterpolGF7F$F$F$%6pnegdeglex_entr_blockGf*F$F$FfnF$C$F,-%AInvolutive/pnegdeg
lex_entr_blockGF7F$F$F$%&PolHFGf*F$F$FerF$C$F,-%1Involutive/PolHFGF7F$F$F$%/ers
tenichtnullGf*F$F$F^rF$C$F,-%:Involutive/erstenichtnullGF7F$F$F$%2remove_whites
paceGf*F$F$F)F$C$F,-%=Involutive/remove_whitespaceGF7F$F$F$%;SubmoduleHilbertPo
lynomialGf*F$F$F;F$C$F,-%FInvolutive/SubmoduleHilbertPolynomialGF7F$F$F$%'pplex
3Gf*F$F$FerF$C$F,-%2Involutive/pplex3GF7F$F$F$%1writeGINV2headerGf*F$F$FfnF$C$F
,-%<Involutive/writeGINV2headerGF7F$F$F$%)pnegplexGf*F$F$F[vF$C$F,-%4Involutive
/pnegplexGF7F$F$F$%4pnegdegrevlex_Z_POTGf*F$F$FUF$C$F,-%?Involutive/pnegdegrevl
ex_Z_POTGF7F$F$F$%.pdeglex_deg_ZGf*F$F$FUF$C$F,-%9Involutive/pdeglex_deg_ZGF7F$
F$F$%0IsPommaretBasisGf*F$F$F;F$C$F,-%;Involutive/IsPommaretBasisGF7F$F$F$%2Gro
ebnerBasisFastGf*F$F$F)F$C$F,-%=Involutive/GroebnerBasisFastGF7F$F$F$%-PolDimen
sionGf*F$F$FerF$C$F,-%8Involutive/PolDimensionGF7F$F$F$%0LeadingMonomialGf*F$F$
F)F$C$F,-%;Involutive/LeadingMonomialGF7F$F$F$%0ginvBasisChangeGf*F$F$FfelF$C$F
,-%;Involutive/ginvBasisChangeGF7F$F$F$%+gb_leadmonGf*F$F$FfnF$C$F,-%6Involutiv
e/gb_leadmonGF7F$F$F$%+HomogenizeGf*F$F$FfelF$C$F,-%6Involutive/HomogenizeGF7F$
F$F$%=pnormal_form_collect_poly_lmGf*F$F$F)F$C$F,-%HInvolutive/pnormal_form_col
lect_poly_lmGF7F$F$F$%2pnegdegrevlex_POTGf*F$F$FUF$C$F,-%=Involutive/pnegdegrev
lex_POTGF7F$F$F$%0block_ord_Z_POTGf*F$F$FUF$C$F,-%;Involutive/block_ord_Z_POTGF
7F$F$F$%*block_cmpGf*F$F$FUF$C$F,-%5Involutive/block_cmpGF7F$F$F$%;pnormal_form
_simplify_polyGf*F$F$FerF$C$F,-%FInvolutive/pnormal_form_simplify_polyGF7F$F$F$
%*PolRepresGf*F$F$F)F$C$F,-%5Involutive/PolRepresGF7F$F$F$%/pdegrevlex_degGf*F$
F$FerF$C$F,-%:Involutive/pdegrevlex_degGF7F$F$F$%1PolHilbertSeriesGf*F$F$FerF$C
$F,-%<Involutive/PolHilbertSeriesGF7F$F$F$%6pnormal_form_Z_lm_oldGf*F$F$FUF$C$F
,-%AInvolutive/pnormal_form_Z_lm_oldGF7F$F$F$%2FactorModuleBasisGf*F$F$F)F$C$F,
-%=Involutive/FactorModuleBasisGF7F$F$F$%-PolSubFactorGf*F$F$F[xF$C$F,-%8Involu
tive/PolSubFactorGF7F$F$F$%.PolKernelGINVGf*F$F$6#%fqCopyright~(C)~2005-2010~by
~Mohamed~Barakat,~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~rights~reserve
d.GF$C$F,-%9Involutive/PolKernelGINVGF7F$F$F$%,member_multGf*F$F$F)F$C$F,-%7Inv
olutive/member_multGF7F$F$F$%0restoreP_T_ListGf*F$F$FfnF$C$F,-%;Involutive/rest
oreP_T_ListGF7F$F$F$%+JanetGraphGf*F$F$FIF$C$F,-%6Involutive/JanetGraphGF7F$F$F
$%,pmaxmin_degGf*F$F$F;F$C$F,-%7Involutive/pmaxmin_degGF7F$F$F$%-pnegdeglex_ZGf
*F$F$FUF$C$F,-%8Involutive/pnegdeglex_ZGF7F$F$F$%5pnormal_form_collectGf*F$F$Fe
rF$C$F,-%@Involutive/pnormal_form_collectGF7F$F$F$%0pjanet_div_onlyGf*F$F$FfnF$
C$F,-%;Involutive/pjanet_div_onlyGF7F$F$F$%5pdegrevlex_deg_blockGf*F$F$FUF$C$F,
-%@Involutive/pdegrevlex_deg_blockGF7F$F$F$%0PolBettiDiagramGf*F$F$F;F$C$F,-%;I
nvolutive/PolBettiDiagramGF7F$F$F$%-tupcoefflistGf*F$F$FfnF$C$F,-%8Involutive/t
upcoefflistGF7F$F$F$%1pdegrevlex_deg_ZGf*F$F$FUF$C$F,-%<Involutive/pdegrevlex_d
eg_ZGF7F$F$F$%-pnormal_formGf*F$F$FerF$C$F,-%8Involutive/pnormal_formGF7F$F$F$%
,pdeglex_POTGf*F$F$FUF$C$F,-%7Involutive/pdeglex_POTGF7F$F$F$%$HasGf*F$F$F)F$C$
F,-%/Involutive/HasGF7F$F$F$%'RepresGf*F$F$F[vF$C$F,-%2Involutive/RepresGF7F$F$
F$%.ecart_need_lmGf*F$F$F_uF$C$F,-%9Involutive/ecart_need_lmGF7F$F$F$%2pjanet_s
epar_onlyGf*F$F$FfnF$C$F,-%=Involutive/pjanet_separ_onlyGF7F$F$F$%-pdegrevlex_Z
Gf*F$F$FUF$C$F,-%8Involutive/pdegrevlex_ZGF7F$F$F$%8subsindetunivariatepolyGf*F
$F$FfnF$C$F,-%CInvolutive/subsindetunivariatepolyGF7F$F$F$%-invred_Z_absGf*F$F$
FerF$C$F,-%8Involutive/invred_Z_absGF7F$F$F$%1PolResolutionDimGf*F$F$F)F$C$F,-%
<Involutive/PolResolutionDimGF7F$F$F$%-invred_localGf*F$F$Fb`lF$C$F,-%8Involuti
ve/invred_localGF7F$F$F$%+ginvReduceGf*F$F$F)F$C$F,-%6Involutive/ginvReduceGF7F
$F$F$%3pbinary_insert_posGf*F$F$FerF$C$F,-%>Involutive/pbinary_insert_posGF7F$F
$F$%0InvolutiveBasisGf*F$F$F)F$C$F,-%;Involutive/InvolutiveBasisGF7F$F$F$%*SyzM
oduleGf*F$F$F)F$C$F,-%5Involutive/SyzModuleGF7F$F$F$%-SyzygyModuleGf*F$F$F[vF$C
$F,-%8Involutive/SyzygyModuleGF7F$F$F$%2remove_backquotesGf*F$F$F)F$C$F,-%=Invo
lutive/remove_backquotesGF7F$F$F$%0PolRightInverseGf*F$F$FfpF$C$F,-%;Involutive
/PolRightInverseGF7F$F$F$%3pdeglex_entr_blockGf*F$F$FfnF$C$F,-%>Involutive/pdeg
lex_entr_blockGF7F$F$F$%/PolInvolReduceGf*F$F$FerF$C$F,-%:Involutive/PolInvolRe
duceGF7F$F$F$%+proc_inputGf*F$F$F)F$C$F,-%6Involutive/proc_inputGF7F$F$F$%)pomm
_divGf*F$F$6#%enCopyright~(C)~2000-2010~by~Carlos~F.~Cid.~rights~reserved.GF$C$
F,-%4Involutive/pomm_divGF7F$F$F$%:pnormal_form_expand_localGf*F$F$Fb`lF$C$F,-%
EInvolutive/pnormal_form_expand_localGF7F$F$F$%5PolShorterResolutionGf*F$F$6#%\
pCopyright~(C)~2004-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserv
ed.GF$C$F,-%@Involutive/PolShorterResolutionGF7F$F$F$%4PolIntersectionListGf*F$
F$Fb`lF$C$F,-%?Involutive/PolIntersectionListGF7F$F$F$%2MVMinPolInterpolHGf*F$F
$F^rF$C$F,-%=Involutive/MVMinPolInterpolHGF7F$F$F$%4pnegdegrevlex_blockGf*F$F$F
UF$C$F,-%?Involutive/pnegdegrevlex_blockGF7F$F$F$%&ecartGf*F$F$F_uF$C$F,-%1Invo
lutive/ecartGF7F$F$F$%2GroebnerBasisGINVGf*F$F$F)F$C$F,-%=Involutive/GroebnerBa
sisGINVGF7F$F$F$%/pnegplex_blockGf*F$F$FUF$C$F,-%:Involutive/pnegplex_blockGF7F
$F$F$%+HenselStepGf*F$F$FIF$C$F,-%6Involutive/HenselStepGF7F$F$F$%-PolEulerChar
Gf*F$F$F)F$C$F,-%8Involutive/PolEulerCharGF7F$F$F$%0ssystem_booleanGf*F$F$Fb`lF
$C$F,-%;Involutive/ssystem_booleanGF7F$F$F$%,pdegrevlex3Gf*F$F$FerF$C$F,-%7Invo
lutive/pdegrevlex3GF7F$F$F$%)pdeglex3Gf*F$F$FerF$C$F,-%4Involutive/pdeglex3GF7F
$F$F$%7pdeglex_deg_entr_blockGf*F$F$FfnF$C$F,-%BInvolutive/pdeglex_deg_entr_blo
ckGF7F$F$F$%*CoeffListGf*F$F$FfnF$C$F,-%5Involutive/CoeffListGF7F$F$F$%1simp_ps
eudored_ZGf*F$F$FUF$C$F,-%<Involutive/simp_pseudored_ZGF7F$F$F$%/MinPolyRatFunc
Gf*F$F$6#%^pCopyright~(C)~2007-2010~by~Daniel~Robertz~and~Moritz~Schroeer.~All~
rights~reserved.GF$C$F,-%:Involutive/MinPolyRatFuncGF7F$F$F$%,block_ord_ZGf*F$F
$FUF$C$F,-%7Involutive/block_ord_ZGF7F$F$F$%5count_non_basis_elemGf*F$F$FfnF$C$
F,-%@Involutive/count_non_basis_elemGF7F$F$F$%4PolTorsionfreeParamGf*F$F$F^[lF$
C$F,-%?Involutive/PolTorsionfreeParamGF7F$F$F$%,GroebnerBasGf*F$F$F)F$C$F,-%7In
volutive/GroebnerBasGF7F$F$F$%+compute_hcGf*F$F$Fb`lF$C$F,-%6Involutive/compute
_hcGF7F$F$F$%7block_ord_Z_entr_blockGf*F$F$FfnF$C$F,-%BInvolutive/block_ord_Z_e
ntr_blockGF7F$F$F$%(pplex_ZGf*F$F$FUF$C$F,-%3Involutive/pplex_ZGF7F$F$F$%,Submo
duleHFGf*F$F$F;F$C$F,-%7Involutive/SubmoduleHFGF7F$F$F$%7findezugehoerigenpunkt
Gf*F$F$F^rF$C$F,-%BInvolutive/findezugehoerigenpunktGF7F$F$F$%&pplexGf*F$F$FerF
$C$F,-%1Involutive/pplexGF7F$F$F$%.autoreductionGf*F$F$F[vF$C$F,-%9Involutive/a
utoreductionGF7F$F$F$%'NotHasGf*F$F$F)F$C$F,-%2Involutive/NotHasGF7F$F$F$%%mdeg
Gf*F$F$F^rF$C$F,-%0Involutive/mdegGF7F$F$F$%8pnormal_form_evala_polyGf*F$F$FerF
$C$F,-%CInvolutive/pnormal_form_evala_polyGF7F$F$F$%9pnormal_form_evala_localGf
*F$F$Fb`lF$C$F,-%DInvolutive/pnormal_form_evala_localGF7F$F$F$%*autoreducGf*F$F
$FfnF$C$F,-%5Involutive/autoreducGF7F$F$F$%4simp_pnormal_form_ZGf*F$F$FUF$C$F,-
%?Involutive/simp_pnormal_form_ZGF7F$F$F$%0nonmult_prolongGf*F$F$FIF$C$F,-%;Inv
olutive/nonmult_prolongGF7F$F$F$%2cancel_locvar_rhsGf*F$F$6#%boCopyright~(C)~20
00-2010~by~Markus~Lange-Hegermann.~All~rights~reserved.GF$C$F,-%=Involutive/can
cel_locvar_rhsGF7F$F$F$%0DependsOnPowersGf*F$F$FfnF$C$F,-%;Involutive/DependsOn
PowersGF7F$F$F$%+pnegplex_ZGf*F$F$FUF$C$F,-%6Involutive/pnegplex_ZGF7F$F$F$%+je
tsmklistGf*F$F$6#%[oCopyright~(C)~2000-2002~by~Mohamed~Barakat.~All~rights~rese
rved.GF$C$F,-%6Involutive/jetsmklistGF7F$F$F$%(pdeglexGf*F$F$FerF$C$F,-%3Involu
tive/pdeglexGF7F$F$F$%/SubmoduleBasisGf*F$F$F;F$C$F,-%:Involutive/SubmoduleBasi
sGF7F$F$F$%,SubmoduleHPGf*F$F$F;F$C$F,-%7Involutive/SubmoduleHPGF7F$F$F$%3PolPa
rametrizationGf*F$F$F[xF$C$F,-%>Involutive/PolParametrizationGF7F$F$F$%-nextmon
omialGf*F$F$FIF$C$F,-%8Involutive/nextmonomialGF7F$F$F$%-cppInvReduceGf*F$F$F)F
$C$F,-%8Involutive/cppInvReduceGF7F$F$F$%/simp_prim_partGf*F$F$F)F$C$F,-%:Invol
utive/simp_prim_partGF7F$F$F$%.pupdate_T_stdGf*F$F$F)F$C$F,-%9Involutive/pupdat
e_T_stdGF7F$F$F$%*pplex_POTGf*F$F$FerF$C$F,-%5Involutive/pplex_POTGF7F$F$F$%2pn
ormal_form_Z_lmGf*F$F$FUF$C$F,-%=Involutive/pnormal_form_Z_lmGF7F$F$F$%)Syzygie
sGf*F$F$F)F$C$F,-%4Involutive/SyzygiesGF7F$F$F$%/PolRightDivideGf*F$F$FbqF$C$F,
-%:Involutive/PolRightDivideGF7F$F$F$%-PolDirectSumGf*F$F$FbqF$C$F,-%8Involutiv
e/PolDirectSumGF7F$F$F$%'AddRhsGf*F$F$F)F$C$F,-%2Involutive/AddRhsGF7F$F$F$%1tu
pcoefflistmultGf*F$F$F;F$C$F,-%<Involutive/tupcoefflistmultGF7F$F$F$%/pplexdivi
sion3Gf*F$F$6#%jnCopyright~(C)~2009-2010~by~Daniel~Robertz.~All~rights~reserved
.GF$C$F,-%:Involutive/pplexdivision3GF7F$F$F$%3InvBasisFastAssertGf*F$F$F)F$C$F
,-%>Involutive/InvBasisFastAssertGF7F$F$F$%5pdeglex_Z_entr_blockGf*F$F$FfnF$C$F
,-%@Involutive/pdeglex_Z_entr_blockGF7F$F$F$%&StatsGf*F$F$FerF$C$F,-%1Involutiv
e/StatsGF7F$F$F$%,PolZeroSetsGf*F$F$F)F$C$F,-%7Involutive/PolZeroSetsGF7F$F$F$%
+ginv2BasisGf*F$F$FfnF$C$F,-%6Involutive/ginv2BasisGF7F$F$F$%5pnormal_form_poly
_lmGf*F$F$F)F$C$F,-%@Involutive/pnormal_form_poly_lmGF7F$F$F$%1SyzygyModuleGINV
Gf*F$F$F[vF$C$F,-%<Involutive/SyzygyModuleGINVGF7F$F$F$%.solveinterpolGf*F$F$Ff
nF$C$F,-%9Involutive/solveinterpolGF7F$F$F$%+SubstituteGf*F$F$FIF$C$F,-%6Involu
tive/SubstituteGF7F$F$F$%;pnormal_form_collect_localGf*F$F$Fb`lF$C$F,-%FInvolut
ive/pnormal_form_collect_localGF7F$F$F$%*RemoveRHSGf*F$F$Fc]lF$C$F,-%5Involutiv
e/RemoveRHSGF7F$F$F$%,invred_polyGf*F$F$FerF$C$F,-%7Involutive/invred_polyGF7F$
F$F$%5simp_invred_Z_nonnegGf*F$F$FerF$C$F,-%@Involutive/simp_invred_Z_nonnegGF7
F$F$F$%5PolHilbertPolynomialGf*F$F$FerF$C$F,-%@Involutive/PolHilbertPolynomialG
F7F$F$F$%/PolMinPolyFastGf*F$F$F)F$C$F,-%:Involutive/PolMinPolyFastGF7F$F$F$%-A
nnihilator1Gf*F$F$F)F$C$F,-%8Involutive/Annihilator1GF7F$F$F$%'invredGf*F$F$Fer
F$C$F,-%2Involutive/invredGF7F$F$F$%/isMinimalBasisGf*F$F$F[vF$C$F,-%:Involutiv
e/isMinimalBasisGF7F$F$F$%)PolCoeffGf*F$F$FfpF$C$F,-%4Involutive/PolCoeffGF7F$F
$F$%1pdegrevlex_Z_POTGf*F$F$FUF$C$F,-%<Involutive/pdegrevlex_Z_POTGF7F$F$F$%)pl
eadmonGf*F$F$FerF$C$F,-%4Involutive/pleadmonGF7F$F$F$%8simp_pnormal_form_Z_absG
f*F$F$FUF$C$F,-%CInvolutive/simp_pnormal_form_Z_absGF7F$F$F$%1PolInvReduceGINVG
f*F$F$F)F$C$F,-%<Involutive/PolInvReduceGINVGF7F$F$F$%5NoetherNormalizationGf*F
$F$F;F$C$F,-%@Involutive/NoetherNormalizationGF7F$F$F$%,pbinary_hasGf*F$F$FIF$C
$F,-%7Involutive/pbinary_hasGF7F$F$F$%%pLCMGf*F$F$6#%inCopyright~(C)~2000-2002~
by~Carlos~F.~Cid.~All~rights~reserved.GF$C$F,-%0Involutive/pLCMGF7F$F$F$%,jetsd
iagmatGf*F$F$FbqF$C$F,-%7Involutive/jetsdiagmatGF7F$F$F$%)CompleteGf*F$F$F;F$C$
F,-%4Involutive/CompleteGF7F$F$F$%0PolIntersectionGf*F$F$F[xF$C$F,-%;Involutive
/PolIntersectionGF7F$F$F$%.pplexdivisionGf*F$F$Fg`oF$C$F,-%9Involutive/pplexdiv
isionGF7F$F$F$%.block_ord_POTGf*F$F$FUF$C$F,-%9Involutive/block_ord_POTGF7F$F$F
$%(PolExtnGf*F$F$F)F$C$F,-%3Involutive/PolExtnGF7F$F$F$%1PolSubFactorFastGf*F$F
$F[xF$C$F,-%<Involutive/PolSubFactorFastGF7F$F$F$%7simp_pnormal_form_Z_lmGf*F$F
$FUF$C$F,-%BInvolutive/simp_pnormal_form_Z_lmGF7F$F$F$%.LocalSyzygiesGf*F$F$Fc]
lF$C$F,-%9Involutive/LocalSyzygiesGF7F$F$F$%4invred_collect_polyGf*F$F$FerF$C$F
,-%?Involutive/invred_collect_polyGF7F$F$F$%8stdinterface_gettmpnameGf*F$F$F;F$
C$F,-%CInvolutive/stdinterface_gettmpnameGF7F$F$F$%*jetsmkmatGf*F$F$Fe[oF$C$F,-
%5Involutive/jetsmkmatGF7F$F$F$%6PolShortestResolutionGf*F$F$Ff_nF$C$F,-%AInvol
utive/PolShortestResolutionGF7F$F$F$%3InvBasisGINVAssertGf*F$F$F)F$C$F,-%>Invol
utive/InvBasisGINVAssertGF7F$F$F$%/monomcoefflistGf*F$F$FfnF$C$F,-%:Involutive/
monomcoefflistGF7F$F$F$%5copyright_InvolutiveGf*F$F$FerF$C$F,-%@Involutive/copy
right_InvolutiveGF7F$F$F$%3PolIndexRegularityGf*F$F$FerF$C$F,-%>Involutive/PolI
ndexRegularityGF7F$F$F$%;pnegdegrevlex_Z_entr_blockGf*F$F$FfnF$C$F,-%FInvolutiv
e/pnegdegrevlex_Z_entr_blockGF7F$F$F$%-PolInvReduceGf*F$F$F)F$C$F,-%8Involutive
/PolInvReduceGF7F$F$F$%+PolKernel2Gf*F$F$6#%^pCopyright~(C)~2005-2010~by~Mohame
d~Barakat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%6Involutive/PolKerne
l2GF7F$F$F$%(ItJanetGf*F$F$F[vF$C$F,-%3Involutive/ItJanetGF7F$F$F$%2PreImageRel
ationsGf*F$F$FfnF$C$F,-%=Involutive/PreImageRelationsGF7F$F$F$%.ishomogeneousGf
*F$F$FfnF$C$F,-%9Involutive/ishomogeneousGF7F$F$F$%,pcriteria12Gf*F$F$6#%\pCopy
right~(C)~2000-2002~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.GF
$C$F,-%7Involutive/pcriteria12GF7F$F$F$%-saveP_T_ListGf*F$F$FfnF$C$F,-%8Involut
ive/saveP_T_ListGF7F$F$F$%)maxcoeffGf*F$F$FfnF$C$F,-%4Involutive/maxcoeffGF7F$F
$F$%4pnormal_form_expandGf*F$F$FerF$C$F,-%?Involutive/pnormal_form_expandGF7F$F
$F$%+AutoreduceGf*F$F$F;F$C$F,-%6Involutive/AutoreduceGF7F$F$F$%/pbinary_insert
Gf*F$F$FerF$C$F,-%:Involutive/pbinary_insertGF7F$F$F$%2pnormal_form_polyGf*F$F$
FerF$C$F,-%=Involutive/pnormal_form_polyGF7F$F$F$%2LocalSyzygiesGINVGf*F$F$Fc]l
F$C$F,-%=Involutive/LocalSyzygiesGINVGF7F$F$F$%/PolMinPolyGINVGf*F$F$FfnF$C$F,-
%:Involutive/PolMinPolyGINVGF7F$F$F$%'PolHomGf*F$F$FbqF$C$F,-%2Involutive/PolHo
mGF7F$F$F$%,EliminationGf*F$F$FIF$C$F,-%7Involutive/EliminationGF7F$F$F$%6Facto
rModuleBasisGINVGf*F$F$Fg`oF$C$F,-%AInvolutive/FactorModuleBasisGINVGF7F$F$F$%=
pnormal_form_expand_lm_localGf*F$F$Fb`lF$C$F,-%HInvolutive/pnormal_form_expand_
lm_localGF7F$F$F$%0LocalReduceGINVGf*F$F$Fc]lF$C$F,-%;Involutive/LocalReduceGIN
VGF7F$F$F$%/proc_termorderGf*F$F$F[vF$C$F,-%:Involutive/proc_termorderGF7F$F$F$
%)InvBasisGf*F$F$FerF$C$F,-%4Involutive/InvBasisGF7F$F$F$%'hasvarGf*F$F$FfnF$C$
F,-%2Involutive/hasvarGF7F$F$F$%3pnormal_form_localGf*F$F$6#%dqCopyright~(C)~20
00-2010~by~Carlos~F.~Cid,~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~rights
~reserved.GF$C$F,-%>Involutive/pnormal_form_localGF7F$F$F$%,checkIBfastGf*F$F$F
)F$C$F,-%7Involutive/checkIBfastGF7F$F$F$%-InvBasisTestGf*F$F$FerF$C$F,-%8Invol
utive/InvBasisTestGF7F$F$F$%0pnormal_form_lmGf*F$F$F)F$C$F,-%;Involutive/pnorma
l_form_lmGF7F$F$F$%6writeGINV1MapleOutputGf*F$F$FfnF$C$F,-%AInvolutive/writeGIN
V1MapleOutputGF7F$F$F$%0pdeglex_deg_POTGf*F$F$FUF$C$F,-%;Involutive/pdeglex_deg
_POTGF7F$F$F$%1PolInvReduceFastGf*F$F$F)F$C$F,-%<Involutive/PolInvReduceFastGF7
F$F$F$%-pcriteria123Gf*F$F$FIF$C$F,-%8Involutive/pcriteria123GF7F$F$F$%<pnormal
_form_evala_lm_localGf*F$F$Fb`lF$C$F,-%GInvolutive/pnormal_form_evala_lm_localG
F7F$F$F$%*ginvBasisGf*F$F$FfnF$C$F,-%5Involutive/ginvBasisGF7F$F$F$%1pdegrevlex
_blockGf*F$F$FUF$C$F,-%<Involutive/pdegrevlex_blockGF7F$F$F$%.pjanet_stddivGf*F
$F$FerF$C$F,-%9Involutive/pjanet_stddivGF7F$F$F$%4pnegplex_entr_blockGf*F$F$Ffn
F$C$F,-%?Involutive/pnegplex_entr_blockGF7F$F$F$%*pdeglex_ZGf*F$F$FUF$C$F,-%5In
volutive/pdeglex_ZGF7F$F$F$%3pnormal_form_evalaGf*F$F$FerF$C$F,-%>Involutive/pn
ormal_form_evalaGF7F$F$F$%2pdeglex_deg_Z_POTGf*F$F$FUF$C$F,-%=Involutive/pdegle
x_deg_Z_POTGF7F$F$F$%.minpoly_paramGf*F$F$FfnF$C$F,-%9Involutive/minpoly_paramG
F7F$F$F$%*PolDefectGf*F$F$F[xF$C$F,-%5Involutive/PolDefectGF7F$F$F$%*pupdate_TG
f*F$F$F)F$C$F,-%5Involutive/pupdate_TGF7F$F$F$%3PolHilbertFunctionGf*F$F$FerF$C
$F,-%>Involutive/PolHilbertFunctionGF7F$F$F$%+jetsgetbasGf*F$F$F]zF$C$F,-%6Invo
lutive/jetsgetbasGF7F$F$F$%0jetscoeffmatrixGf*F$F$6#%\pCopyright~(C)~2000-2010~
by~Gehrt~Hartjen~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%;Involutive/j
etscoeffmatrixGF7F$F$F$%6pnormal_form_lm_localGf*F$F$Fb`lF$C$F,-%AInvolutive/pn
ormal_form_lm_localGF7F$F$F$%*PolKernelGf*F$F$FbqF$C$F,-%5Involutive/PolKernelG
F7F$F$F$%7pnormal_form_expand_lmGf*F$F$F)F$C$F,-%BInvolutive/pnormal_form_expan
d_lmGF7F$F$F$%/readGINVresultGf*F$F$Fg`oF$C$F,-%:Involutive/readGINVresultGF7F$
F$F$%)kartprodGf*F$F$F^rF$C$F,-%4Involutive/kartprodGF7F$F$F$%-pol_lead_monGf*F
$F$6%F*%'systemG%)rememberGF$C$F,-%8Involutive/pol_lead_monGF7F$F$F$%1writeGINV
1headerGf*F$F$FfnF$C$F,-%<Involutive/writeGINV1headerGF7F$F$F$%>pnormal_form_si
mplify_poly_lmGf*F$F$F)F$C$F,-%IInvolutive/pnormal_form_simplify_poly_lmGF7F$F$
F$%;simp_pnormal_form_Z_lm_oldGf*F$F$FUF$C$F,-%FInvolutive/simp_pnormal_form_Z_
lm_oldGF7F$F$F$%3algebraicextensionGf*F$F$Fg`oF$C$F,-%>Involutive/algebraicexte
nsionGF7F$F$F$%0PolMinPolyParamGf*F$F$F)F$C$F,-%;Involutive/PolMinPolyParamGF7F
$F$F$%.cancel_locvarGf*F$F$6#%epCopyright~(C)~2000-2010~by~Daniel~Robertz~and~M
arkus~Lange-Hegermann.~All~rights~reserved.GF$C$F,-%9Involutive/cancel_locvarGF
7F$F$F$%1pairstoequationsGf*F$F$F;F$C$F,-%<Involutive/pairstoequationsGF7F$F$F$
%,cppInvBasisGf*F$F$F)F$C$F,-%7Involutive/cppInvBasisGF7F$F$F$%,pinv_divideGf*F
$F$FerF$C$F,-%7Involutive/pinv_divideGF7F$F$F$%4InvolutiveBasisGINVGf*F$F$F)F$C
$F,-%?Involutive/InvolutiveBasisGINVGF7F$F$F$%/symmetricrangeGf*F$F$FfnF$C$F,-%
:Involutive/symmetricrangeGF7F$F$F$%>pnormal_form_collect_lm_localGf*F$F$Fb`lF$
C$F,-%IInvolutive/pnormal_form_collect_lm_localGF7F$F$F$%5invred_collect_localG
f*F$F$Fb`lF$C$F,-%@Involutive/invred_collect_localGF7F$F$F$%.GroebnerBasisGf*F$
F$F)F$C$F,-%9Involutive/GroebnerBasisGF7F$F$F$%*PolTabVarGf*F$F$FerF$C$F,-%5Inv
olutive/PolTabVarGF7F$F$F$%-jetsdepcheckGf*F$F$Fi\qF$C$F,-%8Involutive/jetsdepc
heckGF7F$F$F$%*polresdimGf*F$F$FbqF$C$F,-%5Involutive/polresdimGF7F$F$F$%2simp_
invred_Z_absGf*F$F$FerF$C$F,-%=Involutive/simp_invred_Z_absGF7F$F$F$%1readbinar
youtputGf*F$F$FfnF$C$F,-%<Involutive/readbinaryoutputGF7F$F$F$%(checkIBGf*F$F$F
)F$C$F,-%3Involutive/checkIBGF7F$F$F$%3LocalBasisIdentityGf*F$F$Fc]lF$C$F,-%>In
volutive/LocalBasisIdentityGF7F$F$F$%*remove_lmGf*F$F$FfnF$C$F,-%5Involutive/re
move_lmGF7F$F$F$%8PolIntersectionListGINVGf*F$F$Fb`lF$C$F,-%CInvolutive/PolInte
rsectionListGINVGF7F$F$F$%0PommaretNonMultGf*F$F$F;F$C$F,-%;Involutive/Pommaret
NonMultGF7F$F$F$%9SubmoduleHilbertFunctionGf*F$F$F;F$C$F,-%DInvolutive/Submodul
eHilbertFunctionGF7F$F$F$%,ginvMinPolyGf*F$F$F)F$C$F,-%7Involutive/ginvMinPolyG
F7F$F$F$%6pnormal_form_simplifyGf*F$F$FerF$C$F,-%AInvolutive/pnormal_form_simpl
ifyGF7F$F$F$%)pmax_degGf*F$F$FerF$C$F,-%4Involutive/pmax_degGF7F$F$F$%/pnegdegl
ex_POTGf*F$F$FUF$C$F,-%:Involutive/pnegdeglex_POTGF7F$F$F$%.MVPolInterpolGf*F$F
$F^rF$C$F,-%9Involutive/MVPolInterpolGF7F$F$F$%3pdegrevlex_deg_POTGf*F$F$FUF$C$
F,-%>Involutive/pdegrevlex_deg_POTGF7F$F$F$%9pdeglex_deg_Z_entr_blockGf*F$F$Ffn
F$C$F,-%DInvolutive/pdeglex_deg_Z_entr_blockGF7F$F$F$%6pnormal_form_Z_nonnegGf*
F$F$FUF$C$F,-%AInvolutive/pnormal_form_Z_nonnegGF7F$F$F$%;simp_pnormal_form_Z_n
onnegGf*F$F$FUF$C$F,-%FInvolutive/simp_pnormal_form_Z_nonnegGF7F$F$F$%1pnegdegl
ex_Z_POTGf*F$F$FUF$C$F,-%<Involutive/pnegdeglex_Z_POTGF7F$F$F$%)invred_ZGf*F$F$
FerF$C$F,-%4Involutive/invred_ZGF7F$F$F$%,PolCheckHomGf*F$F$FbqF$C$F,-%7Involut
ive/PolCheckHomGF7F$F$F$%#khGf*F$F$F^rF$C$F,-%.Involutive/khGF7F$F$F$%6pnormal_
form_evala_lmGf*F$F$F)F$C$F,-%AInvolutive/pnormal_form_evala_lmGF7F$F$F$%0pjane
t_divisionGf*F$F$FerF$C$F,-%;Involutive/pjanet_divisionGF7F$F$F$%3PolCartanChar
acterGf*F$F$FerF$C$F,-%>Involutive/PolCartanCharacterGF7F$F$F$%.pdeglex_blockGf
*F$F$FUF$C$F,-%9Involutive/pdeglex_blockGF7F$F$F$%9pnormal_form_simplify_lmGf*F
$F$F)F$C$F,-%DInvolutive/pnormal_form_simplify_lmGF7F$F$F$%-reduce_by_hcGf*F$F$
Fb`lF$C$F,-%8Involutive/reduce_by_hcGF7F$F$F$%/invred_collectGf*F$F$FerF$C$F,-%
:Involutive/invred_collectGF7F$F$F$%+PolMinPolyGf*F$F$F)F$C$F,-%6Involutive/Pol
MinPolyGF7F$F$F$%,pplex_blockGf*F$F$FUF$C$F,-%7Involutive/pplex_blockGF7F$F$F$%
+pdegrevlexGf*F$F$FerF$C$F,-%6Involutive/pdegrevlexGF7F$F$F$%.PommaretBasisGf*F
$F$F;F$C$F,-%9Involutive/PommaretBasisGF7F$F$F$F$
M7R0
I:Involutive/pdegrevlex_degf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%\pCopyright~(C)
~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C'>8%-%%
nopsG6#&9$6#""">8&,&-%$addG6$*&&F56#8$F8&%(_vardegGFAF8/FB;F8F1F8&%(_tupdegG6#&
F66#""#F8>8',&-F=6$*&&&9%F7FAF8FCF8FEF8&FH6#&FUFKF8@'2F:FN-%'RETURNG6#%%trueG2F
NF:-Ffn6#%&falseGC%>F:F<>FNFP@'FZFenFinFjn?(FBF1!""F8Fhn@&2FSF@Fen2F@FSFjn@%2FJ
FXF\oFhnF.F.F.F.
M7R0
I;Involutive/pnegdegrevlex_Zf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~20
04-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'>8%-%(convertG6$&9$6#"""%"+
G>8&-F26$&9%F6F8@'2F0F:-%'RETURNG6#%&falseG2F:F0-FB6#%%trueG?(8$-%%nopsG6#F4!""
F7FH@&2&F=6#FJ&F4FRFF2FSFQFA@&2-%$absG6#&F>6#""$-FX6#&F5FenFA2FgnFWFF@%2&F56#""
#&F>F^oFDFHF-F-F-F-
M7R0
IDInvolutive/pnegdegrevlex_entr_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyrig
ht~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(@&2&%,_entrblocksG
6#&9$6#""#&F26#&9%F6-%'RETURNG6#%&falseG2F8F1-F=6#%%trueG>8%-%(convertG6$&F56#"
""%"+G>8&-FG6$&F;FJFL@'2FEFNF<2FNFEFA?(8$-%%nopsG6#FI!""FKFC@&2&FQ6#FV&FIFhnFA2
FinFgnF<@$2F4F:F<FCF-F-F-F-
M7R0
I9Involutive/block_ord_POTf*6&%"aG%"bG%$sepG%+termordersG6#%"iG6#%jnCopyright~(
C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C$@&2&9$6#""#&9%F3-%'RET
URNG6#%&falseG2F5F1-F86#%%trueG@'4-&9'6#"""6$7$&&F2FD6#;FE&9&FDF17$&&F6FDFJF5F:
/FHFOC$?(8$F4FE-%%nopsG6#FMF>@&4-&FC6#FT6$7$&FI6#;,&&FM6#,&FTFE!""FEFEFEFE&FMFf
nF17$&FPFjnF5F70FinFcoF<F>F>F-F-F-F-
M7R0
IBInvolutive/block_ord_Z_entr_blockf*6&%"aG%"bG%$sepG%+termordersG6#%"iG6#%jnCo
pyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C$@&2&%,_entrbl
ocksG6#&9$6#""#&F26#&9%F6-%'RETURNG6#%&falseG2F8F1-F=6#%%trueG@'4-&9'6#"""6$7$&
&F5FI6#;FJ&9&FIF47$&&F;FIFOF:F?/FMFTC$?(8$F7FJ-%%nopsG6#FRFC@&4-&FH6#FY6$7$&FN6
#;,&&FR6#,&FYFJ!""FJFJFJFJ&FRF[oF47$&FUF_oF:F<0F^oFhoFA@)2-%$absG6#&F;6#""$-F]p
6#&F5F`pF?2FbpF\pFC2F4F:F?FCFCF-F-F-F-
M7R0
I:Involutive/simp_prim_partf*6%'%"pG%%listG'%$varGF''%"qGF'6(%"aG%#coG%"gG%"hG%
"iG%"rG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C
(>8'9$>8)9&@%0%2Involutive/characG""!C%>8&-%$modG6$-%(ContentG6$&F86#"""9%F?>8(
""#?(F5FLFLF530FCFL1FO-%%nopsG6#F8C%>8%-FE6$-FH6$&F86#FOFMF?>FC-FE6$-FH6$,&*&FC
FL%$_x1GFLFL*&FZFL%$_x2GFLFL7$FboFdoF?>FO,&FOFLFLFLC%>FC-%(contentGFI>FOFP?(F5F
LFLF5FRC%>FZ-F[pFhn>FC-F[pF_o>FOFgo>FC-%&evalaG6#FC@$30FCF@FSC%@%/F?F@>F8-%$map
G6$f*6#F-F56$%)operatorG%&arrowGF5-%(collectG6%-%'normalG6#*&F9FLT#!""T&%,distr
ibutedGF5F56&F/FCF)FMF8>F8-F`q6$f*FcqF5FdqF5-Fhq6%-FE6$-%'NormalGF\rF?F`rFarF5F
5FbrF8@$0-%&minusG6$-%'indetsGFgp<#-%&aliasGF5<">%)_inv_denG7$-%#opG6#FisFC@$0F
;7"@%F]q>F;-F`q6$f*FcqF5FdqF5FjqF5F56$F/FCF;>F;-F`q6$f*FcqF5FdqF5FirF5F5FftF;7$
F8F;F5F]tF5F5
M7R0
IBInvolutive/pnormal_form_expand_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_v
arG63%"aG%"hG%"iG%"kG%#lmG%$divG%+no_contentG%'n_entrG%*zero_listG%.rhs_zero_li
stG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robe
rtz.~All~rights~reserved.G6"C->%(_nnformG,&FB"""FDFD>8%9$>8+-%%nopsG6#&FF6#FD@$
09)7"C'>8.<#-%$seqG6$&9&6#&FQ6#8&/Fin;FD-FK6#FQ>8/-FK6#FU>80-%'removeG6%%$hasGF
enFU>81FR>FF7#-%=Involutive/cancel_locvar_rhsG6'FM&FF6#""#9'FenFQ>8,7#-%"$G6$""
!FI>8-7#-Fgp6$Fip-FK6#F_p>8*%%trueG>8)Fcq>8(-FbpFL?(F?FDFDF?3Feq0&Fgq6$FapFDFip
C&>FinFD>Feq%&falseG@$FP>82,&-%$maxG6#-FX6$-%'degreeG6$&FM6#8'FU/F`s;FDFIFD-%$a
ddG6$&&Fgq6$FDFD6#&FQF_s/F`s;FDF_o!""?(F?FDFDF?31Fin-FK6#9%4FeqC$@$30FMFdp-%7In
volutive/pinv_divideG6%&Fct6$Fin""$&Fct6$Fin""&&FgqFNC'>%'_reducG,&FeuFDFDFD@%F
PC+>83,&-Fgr6#-FX6$-F\s6$&&Fct6%FinFDFDF_sFUFasFD-Fds6$&&Fct6%FinF^uFDFisF[tF]t
>84Fip>F`s-FK6#Fio?(F?FDFDF?32FipFju2FipF`sC$@$331&&FioF_s6#F^uFju/&&&FiwF`pFNF
`p&FbuF`p-%:Involutive/conv_divisibleG6$F]xFbuC$>F[wF`s>FjuFhw>F`s,&F`sFDF]tFD@
$2FdrFjuC$>F`s-9(6%FMFen7$F_p&&FgqF`pFN>Fio7$-%#opGF^w7%7$&F`sFN&&F`sF`pFN7$Fbu
-%'subsopG6$/FD&FjyF`pFayFdr@%/F[wFip>FF-%'expandG6#,&*&&Fct6%Fin""'FDFDFFFDFD7
$,$**F\rFD&Fgq6$FapFapFD&Fct6%FinF[[lFapF]tFcvFDF]t,$**F\rFDF_[lFDFa[lF]t&Fct6%
FinFDFapFDF]tFD>FF-Fez6#,&*&&&&&Fio6#F[wF`pF`pFNFDFFFDFD7$,$**F\rFDF_[lFD&F]\lF
`pF]t&&F_\lFNFNFDF]t,$**F\rFDF_[lFDFd\lF]t&Ff\lF`pFDF]tFD>FF-F]y6%FMFenF_p>FFF[
p@$0%2Involutive/characGFip>FF-%$modG6$FFF`]lC$>FFFdz@$F_]l>FFFb]l>FeqFcq>FbqFa
r>FgqFhq>Fin,&FinFDFDFD@'3/FMFdp0F_pF[qC%>F_p&-F]y6%F_pFenFRFN@$3Fa^l4-%7Involu
tive/member_multG6%F_p%&P_HOMGFen>F]_l7$-Fey6#F]_lF_p7$FMF[qF`^l7$FdpF_pC$@$FP>
FFF[p@%/FbqFarF[]lFFF?6%F]_lFBFeuF?F?
M7R0
ICInvolutive/pnormal_form_evala_polyf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_
varG67%"aG%#caG%#cbG%"hG%"iG%"kG%"rG%#lmG%(termo_hG%$divG%#stG%'n_entrG%*zero_l
istG%.rhs_zero_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-20
10~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C->%(_nnformG,&F
F"""FHFH>8'9$>8.""!>8/-%%nopsG6#&FJ6#FH@$09)7"C'>82<#-%$seqG6$&9&6#&FX6#8(/F`o;
FH-FR6#FX>83-FR6#Ffn>84-%'removeG6%%$hasGF\oFfn>85FY>FJ7#-%=Involutive/cancel_l
ocvar_rhsG6'FT&FJ6#""#9'F\oFX>807#-%"$G6$FNFP>817#-F^q6$FN-FR6#Ffp>8*7$F[qFaq>8
+-FipFS?(FCFHFHFC0&F[r6$FhpFHFNC)>F`oFH>8-%&falseG>8,*&F_rFH&F[r6$FhpFhpFH@$FW>
86,&-%$maxG6#-Fin6$-%'degreeG6$&FT6#8)Ffn/Fis;FHFPFH-%$addG6$&&F[r6$FHFH6#&FXFh
s/Fis;FHFfo!""?(FCFHFHFC31F`o-FR6#9%4Fdr@%-%7Involutive/pinv_divideG6%&F\u6$F`o
""$&F\u6$F`o""&&F[rFUC&>%'_reducG,&F[vFHFHFH>FM,&FMFHFHFH@%FWC,>87,&-F`s6#-Fin6
$-Fes6$&&F\u6%F`oFHFHFhsFfnFjsFH-F]t6$&&F\u6%F`oFduFHFbtFdtFft>88FN>Fis-FR6#F`p
?(FCFHFHFC32FNFbv2FNFisC$@$331&&F`pFhs6#FduFbv/&&&FaxFgpFUFgp&FhuFgp-%:Involuti
ve/conv_divisibleG6$FexFhuC$>FcwFis>FbvF`x>Fis,&FisFHFftFH@$3Fiw0&FhqFUF[q[@$2F
]sFbvC$>Fis-9(6%FTF\o7$Ffp&&F[rFgpFU>F`p7$-%#opGFfw7%7$&FisFU&&FisFgpFU7$Fhu-%'
subsopG6$/FH&FgzFgpF^zF]s@%/FcwFN>FJ-%)simplifyG6#7$,&-%$mapG6$f*6#F,FC6$%)oper
atorG%&arrowGFC*(T#FH&T&6%T'""'FhpFftFKFHFCFC6(F4FgrF&F\uF0F`oF[wFft-Fg[l6$f*Fj
[lFCF[\lFC*&&T$6%T%Fd\lFHFHFKFHFCFC6&F&F\uF0F`oFTFH,&-Fg[l6$f*Fj[lFCF[\lFCF^\lF
CFCFe\l&F\u6%F`oFHFhpFft-Fg[l6$f*Fj[lFCF[\lFCFi\lFCFCF^]lFfpFH>FJ-Fb[l6#7$,&-Fg
[l6$f*Fj[lFCF[\lFC*(F_\lFH&&&&F]]l6#Fc\lFgpFgpFgpFftFKFHFCFC6(F4FgrF=F`pF@Fcw&&
&F`p6#FcwFUFUFft-Fg[l6$f*Fj[lFCF[\lFC*&&&&&F_\l6#F]]lFgpFgpFUFHFKFHFCFC6&F=F`pF
@FcwFTFH,&-Fg[l6$f*Fj[lFCF[\lFCF`^lFCFCFf^l&Fh^lFgpFft-Fg[l6$f*Fj[lFCF[\lFCF^_l
FCFCFd_lFfpFH>FJ-Fjy6%FTF\oFfp>FJFbp@$0%2Involutive/characGFN>FJ-%$modG6$FJFc`l
@%/Fc`lFNC$-%$gcdG6&F_r&F\u6%F`oFd\lFH.8%.8&>FJ-%(collectG6%7$-%'normalG6#-%&ev
alaG6#,&-Fg[l6$f*Fj[lFCF[\lFC*&F_\lFHFKFHFCFC6$F.FcalFTFH-Fg[l6$f*Fj[lFCF[\lFC*
*F_\lFH&F]]lFjrFH&T(6%T)Fd\lFhpFftFKFHFCFC6*F-FaalF3F[rF&F\uF0F`oF[wFft-Fjal6#-
F]bl6#,&-Fg[l6$f*Fj[lFCF[\lFCFcblFCFCFdblFfpFH-Fg[l6$f*Fj[lFCF[\lFCFhblFCFCF^cl
Fc]lFftF\o%,distributedGC$-Ff`l6$-%$GcdGF]alFc`l>FJ-Ffal6%7$-Ff`l6$-%'NormalG6#
-F]bl6#-%)SimplifyG6#,&-Fg[l6$f*Fj[lFCF[\lFCFcblFCFCFdblFTFH-Fg[l6$f*Fj[lFCF[\l
FCFhblFCFCF^clF[wFftFc`l-Ff`l6$-Fgdl6#-F]bl6#-F\el6#,&-Fg[l6$f*Fj[lFCF[\lFCFcbl
FCFCFdblFfpFH-Fg[l6$f*Fj[lFCF[\lFCFhblFCFCF^clFc]lFftFc`lF\oFjcl>Fdr%%trueG>F`o
,&F`oFHFHFH@%F]uC$>Fhq7$-Fjz6$/&F[r6$FHFhp-Ffal6%,&&Fcy6#F_glFHFhrFHF\oFjclFcy&
FhqFgp>FJ7$-Fjz6$/F_gl-Ffal6%,&&FTFeglFHFhrFftF\oFjclFTFfp@%Fi`l>Fhq-Ffal6%7$-F
jal6#-F]bl6#-Fg[l6$f*Fj[lFCF[\lFCFcblFCFCFdblFcy-Fjal6#-F]bl6#-Fg[l6$f*Fj[lFCF[
\lFCFcblFCFCFdblFfglF\oFjcl>Fhq-Ffal6%7$-Ff`l6$-Fgdl6#-F]bl6#-F\el6#-Fg[l6$f*Fj
[lFCF[\lFCFcblFCFCFdblFcyFc`l-Ff`l6$-Fgdl6#-F]bl6#-F\el6#-Fg[l6$f*Fj[lFCF[\lFCF
cblFCFCFdblFfglFc`lF\oFjcl>F[rF\r@'3/FcyF[q0FfpFaqC%>Ffp&-Fjy6%FfpF\oFYFU@$4-%7
Involutive/member_multG6%Ffp%&P_HOMGF\o>F\\m7$-Fbz6#F\\mFfp7$FcyFaqF`[m7$F[qFfp
-Fjy6%FcyF\oFfpFC6%F\\mFFF[vFCFC
M7R0
IDInvolutive/pnormal_form_simplify_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc
_varG64%"aG%"hG%"iG%"kG%#lmG%$divG%#stG%'n_entrG%)rhs_entrG%*zero_listG%.rhs_ze
ro_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%jnCopyright~(C)~2000-2010~by~Daniel
~Robertz.~All~rights~reserved.G6"C.>%(_nnformG,&FC"""FEFE>8%9$>8*""!>8+-%%nopsG
6#&FG6#FE>8,-FO6#&FG6#""#@$09)7"C'>8/<#-%$seqG6$&9&6#&Ffn6#8&/Fdo;FE-FO6#Ffn>80
-FO6#Fjn>81-%'removeG6%%$hasGF`oFjn>82Fgn>FG7#-%=Involutive/cancel_locvar_rhsG6
'FQFW9'F`oFfn>8-7#-%"$G6$FKFM>8.7#-F_q6$FKFU>8)%%trueG>8(-FjpFP?(F@FEFEF@3Fgq0&
Fjq6$FYFEFKC&>FdoFE>Fgq%&falseG@$Fen>83,&-%$maxG6#-F]o6$-%'degreeG6$&FQ6#8'Fjn/
Fcs;FEFMFE-%$addG6$&&Fjq6$FEFE6#&FfnFbs/Fcs;FEFjo!""?(F@FEFEF@31Fdo-FO6#9%4FgqC
$@$30FQF\q-%7Involutive/pinv_divideG6%&Fft6$Fdo""$&Fft6$Fdo""&&FjqFRC'>%'_reduc
G,&FhuFEFEFE>FJ,&FJFEFEFE@%FenC+>84,&-Fjr6#-F]o6$-F_s6$&&Fft6%FdoFEFEFbsFjnFdsF
E-Fgs6$&&Fft6%FdoFauFEF\tF^tF`t>85FK>Fcs-FO6#Fdp?(F@FEFEF@32FKF_v2FKFcsC$@$332&
&FdpFbs6#FauF_v/&&&F^xFXFRFX&FeuFX-%:Involutive/conv_divisibleG6$FbxFeuC$>F`wFc
s>F_vF]x>Fcs,&FcsFEF`tFE@$2FgrF_vC$>Fcs-9(6%FQF`o7$FW&&FjqFXFR>Fdp7$-%#opGFcw7%
7$&FcsFR&&FcsFXFR7$Feu-%'subsopG6$/FE&F_zFXFfyFgr@%/F`wFK>FG-%)simplifyG6#7$,&-
%$mapG6$f*6#F,F@6$%)operatorG%&arrowGF@**&T#F`rFE&Fh[l6$FYFYFE&T&6%T'""'FYF`tFH
FEF@F@6(F0FjqF&FftF.FdoFhvF`t-F_[l6$f*Fb[lF@Fc[lF@*&&T$6%T%F_\lFEFEFHFEF@F@6&F&
FftF.FdoFQFE,&-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F@F`\l&Fft6%FdoFEFYF`t-F_[l6$f*Fb[lF@F
c[lF@Fd\lF@F@Fi\lFWFE>FG-Fjz6#7$,&-F_[l6$f*Fb[lF@Fc[lF@**Fg[lFEFi[lFE&&&&Fh\l6#
F^\lFXFXFXF`tFHFEF@F@6(F0FjqF:FdpF=F`w&&&Fdp6#F`wFRFRF`t-F_[l6$f*Fb[lF@Fc[lF@*&
&&&&Fh[l6#Fh\lFXFXFRFEFHFEF@F@6&F:FdpF=F`wFQFE,&-F_[l6$f*Fb[lF@Fc[lF@F[^lF@F@Fa
^l&Fc^lFXF`t-F_[l6$f*Fb[lF@Fc[lF@Fi^lF@F@F__lFWFE>FG-Fby6%FQF`oFW>FGFfp@$0%2Inv
olutive/characGFK>FG-%$modG6$FGF^`l>FG-Fjz6#7$,&-F_[l6$f*Fb[lF@Fc[lF@Fd\lF@F@Fi
\lFQFE-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F@F`\lFhvF`t,&-F_[l6$f*Fb[lF@Fc[lF@Fd\lF@F@Fi\
lFWFE-F_[l6$f*Fb[lF@Fc[lF@Ff[lF@F@F`\lF^]lF`t>FgqFhq>FjqF[r>Fdo,&FdoFEFEFE@'3/F
QF\q0FWFbqC%@$2FKFJ>FW&-Fby6%FWF`oFgnFR@$4-%7Involutive/member_multG6%FW%&P_HOM
GF`o>Fibl7$-Fjy6#FiblFW7$FQFbqF[bl7$F\qFW@%F_blFi_lFGF@6%FiblFCFhuF@F@
M7R0
I=Involutive/invred_evala_polyf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmp
rocG%(loc_varG68%"aG%"cG%#caG%#cbG%"hG%#h2G%"iG%"kG%#lmG%"nG%"qG%"rG%$divG%'n_e
ntrG%(termo_hG%*zero_listG%#lvG%#nlG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-2
010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C/>81-%%nopsG6#
&9$6#""">837#-%"$G6$""!FH>8(FL@$49&>8)&FM6#""#@$09*7"C&>84<#-%$seqG6$&9(6#&F]o6
#8*/F[p;FO-FJ6#F]o>85-FJ6#Fao>86F^o@%Fen>FX-%9Involutive/cancel_locvarG6&FX9)Fg
oF]o>6$FXFgn-%=Involutive/cancel_locvar_rhsG6'FXFgnF[qFgoF]o>8--FJ6#9%>8/FQ>8%7
#-FT6$FVFbq>8.FO>8,-F[q6#FX?(FEFOFOFE0&F`r6$FjnFOFVC)>F[pFO>80%&falseG>82*&FerF
O&F`r6$FjnFjnFO@$F\o>87,&-%$maxG6#-Fdo6$-%'degreeG6$&FX6#8+Fao/F_t;FOFHFO-%$add
G6$&&F`r6$FOFO6#&F]oF^t/F_t;FOFap!""?(FEFOFOFE31F[pFbq4Fjr@%-%7Involutive/pinv_
divideG6%&Feq6$F[p""$&Feq6$F[p""&&F`rFNC$@%F\oC+>88,&-Ffs6#-Fdo6$-F[t6$&&Feq6%F
[pFOFOF^tFaoF`tFO-Fct6$&&Feq6%F[pFguFOFhtFjtF\u>89FV>F_tFO?(FEFOFOFE32FVF`v1F_t
-FJ6#FepC$@$332&&FepF^t6#FguF`v/&&&F_xFinFNFin&F[vFin-%:Involutive/conv_divisib
leG6$FcxF[vC$>FawF_t>F`vF^x>F_t,&F_tFOFOFO@$3Few0FgqFQ[@$2FcsF`v>Fep7$-%#opGFhw
7%7$FXFgnF`rFcs@%/FawFVC$>FX-%)simplifyG6#,&-%$mapG6$f*6#F-FE6$%)operatorG%&arr
owGFE*&&T$6%T%""'FOFOFMFOFEFE6&F&FeqF3F[pFXFO-Fcz6$f*FfzFEFgzFE*(T#FO&T&6%T'F_[
lFjnF\uFMFOFEFE6(F;F]sF&FeqF3F[pFivF\u@$FZ>Fgn-F_z6#,&-Fcz6$f*FfzFEFgzFEFjzFEFE
F`[lFgnFO-Fcz6$f*FfzFEFgzFEFd[lFEFEFj[l&Feq6%F[pFOFjnF\uC$>FX-F_z6#,&-Fcz6$f*Ff
zFEFgzFE*&&&&&Fe[l6#F^[lFinFinFNFOFMFOFEFE6&F?FepFBFawFXFO-Fcz6$f*FfzFEFgzFE*(F
e[lFO&&&&F^[l6#Fi[lFinFinFinF\uFMFOFEFE6(F;F]sF?FepFBFaw&&&Fep6#FawFNFNF\u@$FZ>
Fgn-F_z6#,&-Fcz6$f*FfzFEFgzFEF`]lFEFEFf]lFgnFO-Fcz6$f*FfzFEFgzFEFj]lFEFEF`^l&Fb
^lFinF\u@%Fen>FXFhp>F]qF^q@$0%2Involutive/characGFVC$>FX-%$modG6$FXFf_l@$FZ>Fgn
-Fj_l6$FgnFf_l@%/Ff_lFVC%-%$gcdG6&Fer&Feq6%F[pF_[lFO.8&.8'>FX-%(collectG6%-%'no
rmalG6#-%&evalaG6#,&-Fcz6$f*FfzFEFgzFE*&Fe[lFOFMFOFEFE6$F0F[alFXFO-Fcz6$f*FfzFE
FgzFE**Fe[lFO&F^[lF`sFO&T(6%T)F_[lFjnF\uFMFOFEFE6*F/Fi`lF5F`rF&FeqF3F[pFivF\uFg
o%,distributedG@$FZ>Fgn-F^al6%-Faal6#-Fdal6#,&-Fcz6$f*FfzFEFgzFEFjalFEFEF[blFgn
FO-Fcz6$f*FfzFEFgzFEF_blFEFEFeblFf\lF\uFgoFfblC%-Fj_l6$-%$GcdGFe`lFf_l>FX-F^al6
%-Fj_l6$-%'NormalG6#-Fdal6#-%)SimplifyG6#,&-Fcz6$f*FfzFEFgzFEFjalFEFEF[blFXFO-F
cz6$f*FfzFEFgzFEF_blFEFEFeblFivF\uFf_lFgoFfbl@$FZ>Fgn-F^al6%-Fj_l6$-Fadl6#-Fdal
6#-Ffdl6#,&-Fcz6$f*FfzFEFgzFEFjalFEFEF[blFgnFO-Fcz6$f*FfzFEFgzFEF_blFEFEFeblFf\
lF\uFf_lFgoFfbl>Fjr%%trueG>F[p,&F[pFOFOFO@%F`u@%Fa`lC$>Fgq-%'subsopG6$/&F`r6$FO
Fjn-F^al6%,&&Fgq6#F^glFOF]sFOFgoFfblFgq>FX-F[gl6$/F^gl-F^al6%,&&FXFdglFOF]sF\uF
goFfblFXC$>Fgq-Fj_l6$FjflFf_l>FX-Fj_l6$FfglFf_lC%@%Fa`l>Fgq-F^al6%-Faal6#-Fcz6$
f*FfzFEFgzFEFjalFEFEF[blFgqFgoFfbl>Fgq-F^al6%-Fj_l6$-Fadl6#-Fcz6$f*FfzFEFgzFEFj
alFEFEF[blFgqFf_lFgoFfbl>F^r*&F[alFOF^rFO@$9'@%Fa`l>Fiq-F[gl6$/F[p,&&FiqFjoFO*(
Fi`lFOF_sFO&Feq6%F[pF_[lFjnF\uFOFiq>Fiq-Fj_l6$F^jlFf_l>F`rFar@$0F^rFOC%@$F`y@%F
a`l>Fgq-Fcz6$f*FfzFEFgzFE-Faal6#*&FMFOFe[lF\uFEFE6$F7F^rFgq>Fgq-Fcz6$f*FfzFEFgz
FE-Fj_l6$-FadlFd[mFf_lFEFEFf[mFgq@$FZ@%Fa`l>Fgn-Faal6#*&FgnFOF^rF\u>Fgn-Fj_l6$-
FadlFb\mFf_l@$F[jl@%Fa`l>Fiq-Faal6#*&FiqFOF^rF\u>Fiq-Fj_l6$-FadlF\]mFf_l7$7$Fgq
FgnFiqFEFEFEFE
M7R0
I9Involutive/simp_invred_Zf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmprocG
%(loc_varG65%"aG%"cG%"eG%"hG%#h2G%"iG%"jG%"kG%"lG%#lmG%"nG%"rG%$divG%'n_entrG%(
termo_hG%*zero_listG%#lvG%#nlG%"HG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid
~and~Daniel~Robertz.~All~rights~reserved.G6"C,>81-%%nopsG6#&9$6#""">837#-%"$G6$
""!FE>8'-%'expandGFH@$49&>8(&FJ6#""#>8.-FG6#9%>8/FN>8%7#-FQ6$FSF[o>8--9)6#FU?(F
BFLFLFB0&Fgo6$FinFLFSC*>8)FL>80%&falseG>8*&Fgo6$FLFin>82-%'subsopG6$/Ffp&Fgo6$F
inFinFN?(FBFLFLFB31FapF[o4FcpC$@$-%7Involutive/pinv_divideG6%&F^o6$Fap""$&F^o6$
Fap""&&FgoFKC$>8,-%%iquoG6$F]p&F^o6%Fap""'FL@$0FcrFSC%>FU-%)simplifyG6#,&FUFL-%
$mapG6$f*6#F-FB6$%)operatorG%&arrowGFB**T#FL&T%F`qFL&T(6%T)FirFin!""FJFLFBFB6*F
5FcrF6FgoF&F^oF2Fap&F^o6%FapFLFLFbt@$FY>Ffn-F_s6#,&FfnFL-Fcs6$f*FfsFBFgsFBFjsFB
FBFct&F^o6%FapFLFinFbt>Fcp%%trueG>Fap,&FapFLFLFL@%FdqC$>F`o-F_s6#,&F`oFL*&F]pFL
FjpFLFL>FU-F_s6#,&FUFLFjuFbt@$9'C$>Fap,&FapFLFbtFL>Fbo-F\q6$/Fap,&&Fbo6#FapFL*(
FcrFLF_qFL&F^o6%FapFirFinFbtFLFbo>FU-FWFjo>FgoFho7$7$F`oFfnFboFBFBFBFB
M7R0
I7Involutive/checkIBginvf*6/%#_FG%$varG%"cG%&m_ordG%(var_ordG%)entr_posG%'varde
gG%'tupdegG%)_algextsG%._algextindetsG%/transextindetsG%%fextG%(nocheckG6I%"iG%
"jG%"kG%"lG%"mG%#lmG%&fnameG%"FG%#IBG%"SG%%seqvG%%charG%+zero_listsG%'n_entrG%)
rhs_entrG%'no_rhsG%)alg_elemG%+trans_elemG%(algextsG%-algextindetsG%'compatG%%f
ileG%*termorderG%-coefficientsG%(ginvvarG%+ginvvarsepG%+ginvvardegG%+parameters
G%(tr_elemG%(al_elemG%&algebG%(minpolyG%%alebG%(rootofsG%+tmprootofsG%,ginvroot
ofsG%(tupelimG%)radicalsG%-ginvcomplexIG6#%jnCopyright~(C)~2000-2010~by~Daniel~
Robertz.~All~rights~reserved.G6"Cio>81&9$6#""">82&F[o6#""#>83&F[o6#""$>85-%'rem
oveG6$f*6#F3Ffn6$%)operatorG%&arrowGFfn-%'memberG6$F[oT$FfnFfn6$F&9%&F[o6#""(>8
4-%>Involutive/algebraicextensionG6)&F[o6#""%&F[o6#""'9,9-Fio7"Fhq>8+&F\qF\o>86
&F\qFfo>87&F\qFaq>8I&F\q6#""&>8E&F\qFdq>Fio&F\qFip>F\q&F\qFao>88%%trueG>8?Fio>8
BF`r>8CF]r>8GFhq>8:""!>8H7#Fin>8J%&falseG>%&_nvarG-%%nopsG6#Fgp>8.7#-%$seqG6$-%
$catG6$%#_xG8$/Fau;F]oFct@'2F[t-%+searchtextG6$Q&linuxFfn-%+kerneloptsG6#%(vers
ionGC$@%/-%*substringG6$-%(convertG6$-%*interfaceG6#.F]v%'stringG;F]o"#GQ=Stand
ard~Worksheet~InterfaceFfn>8*-%CInvolutive/stdinterface_gettmpnameGFfnC%>F`w-%(
ssystemG6#%Gecho~/tmp/$USER/Involutive-$PPID-$USERG@%2F[t-Fgu6$Q"$Ffn&F`wFao>F`
wQ0/tmp/InvolutiveFfn>F`w-%=Involutive/remove_whitespaceG6#F^x>F`w-F^u6$F`w9/@$
4-%;Involutive/ssystem_booleanG6#-F^u6$%)test~-r~GF`w-%'RETURNG6#7-FatF\qFbsFds
FfsFhrFhsFjsF]tFcrF`t2F[t-Fgu6$Q&APPLEFfnFju>F`wFawC$>F`wQ1\TEMP\InvolutiveFfn>
F`wFfx>89-%&fopenG6$F`w%%READG>8-Q!Ffn>FauF]o?(FfnF]oF]oFfn3/-Fgu6$Q2DivisionIn
terfaceFfnFezF[t1FauFgoC$>Fau,&FauF]oF]oF]o>Fez-F^u6$Fez-%*readbytesG6%F_z"%+5%
%TEXTG-%'fcloseG6#F_z>Fau-Fgu6$Q+SystemTypeFfnFez@$/FauF[tFay>8%-Fgu6%Q(module=
FfnFez;,&FauF]o"#5F]o!""@%/Fd\lF[t@$50FinF]o0FdoF`sFayC$>8&-Fgu6%Q+rightPart=Ff
nFez;,(FauF]o"#<F]oFd\lF]oF[]l@%/Fd]lF[tC&>Fd]l-Fgu6%Q"|+FfnFezFh]l?(FfnF]oF]oF
fn32F[tFd]l0&Fez6#,*FauF]o"#;F]oFd\lF]oFd]lF]oQ")Ffn>Fd]l,&Fd]lF]oF[]lF]o>8'-Fb
v6$Fez;,(FauF]oFi^lF]oFd\lF]o,*FauF]o"#:F]oFd\lF]oFd]lF]o@$50-%&parseG6#F^_lFin
Fa]lFayC'>F^_l-Fbv6$Fez;Fb_l,*FauF]o"#8F]oFd\lF]oFd]lF]o@$0Fh_l,&FinF]oF_oF]oFa
y>F^_l-Fgu6%Fa^lFez;,*FauF]o"#FF]oFd\lF]oFd]lF]oF[]l?(FfnF]oF]oFfn32F[tF^_l0&Fe
z6#,,FauF]o"#EF]oFd\lF]oFd]lF]oF^_lF]oFj^l>F^_l,&F^_lF]oF[]lF]o@$50,(FinF]oF_oF
]o-Fi_l6#-Fbv6$Fez;,*FauF]oFbalF]oFd\lF]oFd]lF]o,,FauF]o"#DF]oFd\lF]oFd]lF]oF^_
lF]oF[]lF_o0FdoFatFay>Fau-Fgu6$Q/MonomInterfaceFfnFez@$Fb\lFay>Fd\l-Fgu6%Q""Ffn
Fez;,&FauF]oFi^lF]oF[]l>Fjs-Fbv6$Fez;F\cl,(FauF]o"#9F]oFd\lF]o@55/FjsQ$LexFfn/F
jsQ'PotLexFfn@%309'F]o43/FinF]o/F\dlFgo>FjsF]o>FjsF[t5/FjsQ-PotDegRevLexFfn/Fjs
Q0PotDegRevLexDegFfn@%30F\dlFbo43F_dl/F\dlFbq>FjsFbo>FjsF[t/FjsQ'TopLexFfn@%30F
\dlFgo43F_dl/F\dlF]o>FjsFgo>FjsF[t555/FjsQ*DegRevLexFfn/FjsQ-DegRevLexDegFfn/Fj
sQ-TopDegRevLexFfn/FjsQ0TopDegRevLexDegFfn@%30F\dlFbq43F_dl/F\dlFbo>FjsFbq>FjsF
[t555/FjsQ%ElimFfn/FjsQ(ElimDegFfn/FjsQ(TopElimFfn/FjsQ+TopElimDegFfn@%0F\dl7$F
bqFbq>FjsFjgl>FjsF[t5/FjsQ(PotElimFfn/FjsQ+PotElimDegFfn@%0F\dl7$FboFbo>FjsFdhl
>FjsF[t/FjsQ+PosElimLexFfn@%Fdel>FjsFgo>FjsF[t5/FjsQ1PosElimDegRevLexFfn/FjsQ4P
osElimDegRevLexDegFfn@%Fgfl>FjsFbq>FjsF[t5/FjsQ,PosElimElimFfn/FjsQ/PosElimElim
DegFfn@%Figl>FjsFjgl>FjsF[t-%&ERRORG6#%7unknown~term~ordering.G>Fd\l-Fgu6%Q"[Ff
nFezF[cl@$F]]lFay>8(-Fgu6%Q(tupSep=FfnFez;Fb_lF[]l@%/FfjlF[tC$>Fd]l-Fgu6%Q(varS
ep=FfnFezFjjl@%F\^lC$>Fd]l-Fgu6%Q)degrees=FfnFezFjjl@%F\^lC'>Fd]l-Fgu6%Fa^lFezF
jjl?(FfnF]oF]oFfn3Fd^l0&Fez6#Fc_lFj^l>Fd]lF\_l>8<-Fbv6$Fez;,(FauF]oFd_lF]oFd\lF
]o,*FauF]oFbclF]oFd\lF]oFd]lF]o>8=F[t>8>FhqC'>F^_l-Fgu6%Fa^lFez;,*FauF]oF`blF]o
Fd\lF]oFd]lF]oF[]l?(FfnF]oF]oFfn3F]al0&Fez6#,,FauF]o"#CF]oFd\lF]oFd]lF]oF^_lF]o
Fj^l>F^_lFdal>F]]m-Fi_l6#-Fbv6$Fez;,*FauF]o"#BF]oFd\lF]oFd]lF]o,,FauF]oFc^mF]oF
d\lF]oFd]lF]oF^_lF]o>Fd\m-Fbv6$Fez;Fh\m,*FauF]o"#7F]oFd\lF]oFd]lF]o>F[]mF[tC'>F
^_l-Fgu6%Fa^lFez;Fh^lF[]l?(FfnF]oF]oFfn3F]al0&Fez6#,,FauF]oFd_lF]oFd\lF]oFd]lF]
oF^_lF]oFj^l>F^_lFdal>F[]m-Fi_l6#-Fbv6$Fez;,*FauF]o"#AF]oFd\lF]oFd]lF]o,,FauF]o
FbclF]oFd\lF]oFd]lF]oF^_lF]o>Fd\mFf^m>F]]mFhqC$>Fd]l-Fgu6%Fa[mFez;,*FauF]oFj]mF
]oFd\lF]oFfjlF]oF[]l@%F\^lC$>Fd]l-Fgu6%Fg[mFezFg`m@%F\^lC(>Fd]l-Fgu6%Fa^lFezFg`
m?(FfnF]oF]oFfn3Fd^l0&Fez6#,,FauF]oFc^mF]oFd\lF]oFfjlF]oFd]lF]oFj^l>Fd]lF\_l>F]
t-Fi_l6#-Fbv6$Fez;,*FauF]oFc^mF]oFd\lF]oFfjlF]o,,FauF]o"#?F]oFd\lF]oFfjlF]oFd]l
F]o>Fd\m-Fbv6$Fez;Fh\m,*FauF]oFbclF]oFd\lF]oFfjlF]o>F[]mF[t>F]]mFhqC(>F]tF[bm>F
^_l-Fgu6%Fa^lFez;,,FauF]o"#LF]oFd\lF]oFfjlF]oFd]lF]oF[]l?(FfnF]oF]oFfn3F]al0&Fe
z6#,.FauF]o"#KF]oFd\lF]oFfjlF]oFd]lF]oF^_lF]oFj^l>F^_lFdal>F]]m-Fi_l6#-Fbv6$Fez
;,,FauF]o"#JF]oFd\lF]oFfjlF]oFd]lF]o,.FauF]oFadmF]oFd\lF]oFfjlF]oFd]lF]oF^_lF]o
>Fd\mFdbm>F[]mF[tC(>F]tF[bm>F^_l-Fgu6%Fa^lFez;,,FauF]oFj]mF]oFd\lF]oFfjlF]oFd]l
F]oF[]l?(FfnF]oF]oFfn3F]al0&Fez6#,.FauF]oFc^mF]oFd\lF]oFfjlF]oFd]lF]oF^_lF]oFj^
l>F^_lFdal>F[]m-Fi_l6#-Fbv6$Fez;,,FauF]o"#IF]oFd\lF]oFfjlF]oFd]lF]o,.FauF]oF_`m
F]oFd\lF]oFfjlF]oFd]lF]oF^_lF]o>Fd\mFdbm>F]]mFhq>Fd]l-Fgu6$Q"'FfnFd\m?(FfnF]oF]
oFfnFd^lC$@%/&Fd\m6#,&Fd]lF]oF]oF]oQ"@FfnC$>F^_l-Fgu6%Q",FfnFd\m;FhfmF[]l@%/F^_
lF[tC%>F^_l-Fgu6%F^gmFd\m;,&Fd]lF]o!"$F]oFd]l@$FagmFay>Fd\m-F^u6$-Fbv6$Fd\m;F]o
,(Fd]lF]o!"&F]oF^_lF]o-Fbv6$Fd\m;,&Fd]lF]oFboF]oF[]l>Fd\m-F^u6$-Fbv6$Fd\m;F]oF\
_l-Fbv6$Fd\m;,(Fd]lF]oFboF]oF^_lF]oF[]l>Fd\m-F^u6$Fihm-Fbv6$Fd\mF_gm>Fd]lF_fm>F
d\m-Fi_l6#Fd\m@$0Fd\m-Fi_l6#-Fev6$FgpF[wFay>Fau-Fgu6$Q/CoeffInterfaceFfnFez@$Fb
\lFay>FauF\cl>Fd\l-Fgu6%FjblFez;FauF[]l>8;-Fbv6$Fez;Fau,(FauF]oFd\lF]o!"#F]o>Fd
\l-Fgu6%Q.modularShort=FfnFezFhjm@%0Fd\lF[tC)>Fd\l,&Fd\lF]oFa`lF]o>Fd]l-Fgu6%Fa
^lFez;,&FauF]oFd\lF]oF[]l?(FfnF]oF]oFfn3Fd^l0&Fez6#,*FauF]oFd\lF]oFd]lF]oF[]lF]
oFj^l>Fd]lF\_l@$F\^lFay>F^_l-Fgu6%F^gmFez;F]\nFc\n@$Fagm>F^_lFd]l>8/-Fi_l6#-Fbv
6$Fez;,(FauF]oFd\lF]oF[]lF]o,*FauF]oFd\lF]oF^_lF]oF_[nF]o>F]]nF[t@$0F]]n9&Fay>F
d\l-Fgu6%Q0fieldParameter=FfnFezFhjm@$Fe[nC&>Fd]l-Fgu6%Q+parameter=FfnFez;FaclF
[]l>Fbs-Fi_l6#-Fbv6$Fez;Facl,*FauF]oFd\lF]oFj\lF]oFd]lF]o>Fbs-%$mapG6$Fi_lFbs>F
auFacl>Fd\l-Fgu6%Fb^nFezFhjm@$Fe[nC$>F^_l-Fgu6%Q+extension=FfnFezF\\n@%FagmC&>F
d]l-Fgu6%Fc[nFezF\\n@$F\^l>Fd]l-Fgu6%Q,traceDenom=FfnFezF\\n@%F\^lC&>Fd]lFj[n?(
FfnF]oF]oFfnF_\n>Fd]lF\_l@$F\^lFay>Fbs-Fi_l6#-Fbv6$Fez;,(FauF]oFd\lF]o""*F]o,*F
auF]oFd\lF]oFd]lF]oF_[nF]o>Fbs-Fi_l6#-Fbv6$Fez;F_an,*FauF]oFd\lF]oFd]lF]o!"%F]o
>FbsF\_nC)>Fds-Fi_l6#-Fbv6$Fez;F_an,*FauF]oFd\lF]oF^_lF]oFianF]o>Fds-F]_n6$Fi_l
Fds>Fd]l-Fgu6%Fc[nFez;,(FauF]oFd\lF]oF^_lF]oF[]l@$F\^l>Fd]l-Fgu6%Fb`nFezFibn@%F
\^lC&>Fd]l-Fgu6%Fa^lFezFibn?(FfnF]oF]oFfn3Fd^l0&Fez6#,,FauF]oFd\lF]oF^_lF]oFd]l
F]oF[]lF]oFj^l>Fd]lF\_l@$F\^lFay>Ffs-Fbv6$Fez;,*FauF]oFd\lF]oF^_lF]oFj\lF]o,,Fa
uF]oFd\lF]oF^_lF]oFd]lF]oFhgmF]o>Ffs-Fbv6$Fez;F`dn,,FauF]oFd\lF]oF^_lF]oFd]lF]o
FahmF]o>Ffs-F]_n6$Fi_l-Fi_l6#-F^u6%FcjlFfsQ"]Ffn@$0-Fet6#Ffs-Fet6#FdsFay>8@7$-%
#opG6#Fio-Fien6#9.@$0-%&minusG6$<#-Fien6#Ffen<#-Fien6#Fbs<"Fay>8A-%'selectG6$f*
F^pFfnF_pFfn/-Fgu6$Q'RootOfFfn-Fev6$F[oF[wF[tFfnFfnFfnF\q>8F-F[p6$f*F^pFfnF_pFf
n-Fcp6$F[oT#FfnFfn6$FPF[gnF\q@$0-Fafn6$<#-Fien6#-F]_n6$Fi_l-F]_n6%FevF[gnF[w<#-
FienFdenFifnFay>FauF]o>F[gnFhq>8DFhq>FhsFhq?(FfnF]oF]oFfn1FauFcenC$@%/-Fbv6$-Fe
v6$&Fds6#FauF[w;F]oFbqQ%_algFfnC$>F_in7$-Fien6#F_inFjin>Fhs7$-Fien6#Fhs-%'RootO
fG6$&FfsF[jnFjin>F[gn7$-Fien6#F[gnFjin@%/FhinQ#_IFfnC%>F`tF`s>Fds-%'subsopG6$/F
au%%NULLGFds>Ffs-Ff[o6$Fh[oFfs>FauFa[l?(FauF]oF]o,&-FetFfjnF]oF[]lF]oF`s>Fhs7$-
Fien6#&Fhs6#;F]oFau-Fien6#-%%subsG6$/&F_inF[jn&FhsF[jn&Fhs6#;Fa[lF[]l@$0-Fafn6$
<#-Fien6#Fggn<#FejnFifn-Fby6#7-FatF\qFbsFdsFfsFhr7#-F[u6$F]]o/Fau;F]o-FetFbjnFj
sF]tFcrF`t@$90-Fby6#7-F`sF\qFbsFdsFfsFhrF^^oFjsF]tFcrF`t@$4-F\y6#-F^u6%F`yF`w%'
.janetGF[^oA-F^u6$F`wQ'.janetFfn@$43-%)assignedG6#%+_IB_RESULTG-Fh_o6#%-_IB_RES
ULTlmG-F]jl6#%Cerror~in~computation~or~interface.G@$0-FetFi_o-Fet6#FjqF[^o>8,Fj
_o@%-%%typeG6$&Fg`oF\o%%listG@%Fdo@$0Fin-Fet6#F\ao>F_sFat@$0Fd`lFaao>F_sFat@$5F
`]l4Fdo>F_sFat7-F_sF\qFbsFdsFfsFhrF^^oFjsF]tFcrF`tFfn6#FctFfnFfn
M7R0
I:Involutive/conv_divisiblef*6$%"aG%"bG6#%"iG6#%\pCopyright~(C)~2000-2010~by~Ca
rlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C%@$0&9$6#""#&9%F1-%&ERR
ORG6#%Finput~must~be~in~the~same~list~entry.G?(8$"""F;%&_nvarG%%trueG@$2&F46$F;
F:&F0FA-%'RETURNG6#%&falseGF=F+F+F+F+
M7R0
I5Involutive/PolTabVarf*6"6$%"iG%"nG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~C
id~and~Daniel~Robertz.~All~rights~reserved.GF$C%@$4-%)assignedG6#%)P_T_ListG-%&
ERRORG6#%Umissing~involutive~basis;~run~InvolutiveBasis~first.G>8%-%%nopsG6#%+P
olTab_VarG?(8$"""F=F6%%trueG-%&printG6#&F:6#F<F$F$F$F$
M7R0
IBInvolutive/SubmoduleHilbertSeriesf*6"6(%"iG%"jG%"sG%,given_basisG%/args_witho
ut_sG%$resG6#%jnCopyright~(C)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.
GF$C)@$4%4Involutive/ratcoeffG-%&ERRORG6#%fnnot~implemented~yet~for~involutive~
bases~over~the~integers.G>8&%%NULLG>8(F8@%19#"""C$>8'%&falseG@$/F=F>C$@%3-%%typ
eG6$&9"6#F>%)equationG5/-%#opG6$F>FKQ$varF$/FQQ%subsF$>F7-FR6$""#FK>F7FK@$4-FI6
$F7%%nameG-F36#%_oexpecting~an~indeterminate~for~the~Hilbert~series~as~first~ar
gument.GC$@%55-FI6$&FL6#FZFN-FI6$Fdo%(numericG-FI6$Fdo-%%listG6#%(integerGC$>FA
FB>8%F>C%>FA%%trueG>Fbp""$>F:6$FKFdo?(8$FbpF>F=Fep@'-FI6$&FL6#F[qFjn@%/F7F8>F7F
_q-F36#%Qcannot~determine~which~indeterminate~to~plug~in.G3-FI6$F_qFN5/-FR6$F>F
_qFT/F\rFVC$@%Fbq>F7-FR6$FZF_qFdq@$Fgn-F36#%Sexpecting~an~indeterminate~for~the
~Hilbert~series.G>F:6$F:F_q@$Fbq>F7.F7@%FA>8)-%:Involutive/SubmoduleBasisG6$F:/
FVF7C$@$4-%)assignedG6#%)P_T_ListG-F36#%Umissing~involutive~basis;~run~Involuti
veBasis~first.G>F_s-Fas6$7#-%$seqG6$-%$catG6$%#_xGF[q/F[q;F>-%%nopsG6#&Fjs6%F>F
gpF>Fcs@%-FI6$F_sF\p-%(convertG6$F_s%"+GF_sF$F$F$F$
M7R0
I7Involutive/cppInvBasisf*65'%"FG%%listG%$varG%'n_entrG%'no_rhsG%"cG%$POTG%'var
degG%'tupdegG%-inv_tup_permG%%fextG%+time_boundG%#trG%*quietmodeG%%voffG%*donot
readG%+tracedenomG%,whichoutputG%*nowarningG%)dolaunchG6(%%fileG%&fnameG%"iG%"r
G%%nvarG%'std_wsG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~res
erved.G6"CH@%9'@$2"&++"9&-%&ERRORG6#%@length~of~tuples~exceeds~10000.G@$2FI,&FJ
"""-%%nopsG6#&&9$6#FR6#""#FRFK@'2""!-%+searchtextG6$Q&linuxFC-%+kerneloptsG6#%(
versionGC$@%/-F^o6#%)wordsizeG"#k@$2"+[O[Z@9(-FL6#%?characteristic~must~be~<~2^
31.G@$2"&oF$F[p-FL6#%?characteristic~must~be~<~2^15.G@%/-%*substringG6$-%(conve
rtG6$-%*interfaceG6#.F`o%'stringG;FR"#GQ=Standard~Worksheet~InterfaceFCC$>8%-%C
Involutive/stdinterface_gettmpnameGFC>8)%%trueGC&@$4-%;Involutive/ssystem_boole
anG6#%3test~-d~/tmp/$USERGC$>8'-%(ssystemG6#%1mkdir~/tmp/$USERG@$0&FfrFZQ!FC-FL
6#%Ecannot~write~temporary~file~to~/tmp.G>Fgq-Fhr6#%Gecho~/tmp/$USER/Involutive
-$PPID-$USERG@%2Fhn-Fjn6$Q"$FC&FgqFZ>FgqQ0/tmp/InvolutiveFC>Fgq-%=Involutive/re
move_whitespaceG6#F[t>F[r%&falseG2Fhn-Fjn6$Q&APPLEFCF]oC%@$F`pFbp>FgqFhq>F[rF\r
C%@$F`pFbp>FgqQ1\TEMP\InvolutiveFC>F[rFct@$96C&>Ffr-F[q6$F]oFaq@$5550-Fhp6$Ffr;
FR""(Q(Maple~1FC/-Fhp6$Ffr;FR"")Q)Maple~10FC/FbvQ)Maple~11FC/FbvQ)Maple~12FC-FL
6#%Scan~only~'launch'~JB~in~Maple~version~13~or~newer.G>Fgq-%$catG6%FgqQ(-launc
hFC-F[q6$%9Involutive/launchJBcountGFaq>Few,&FewFRFRFR>Fgq-F`w6$Fgq9->8$-%&fope
nG6$Fgq%&WRITEG>8(-FT6#9%-%(fprintfG6$F]xQ@Computation~of~involutive~basisFC@$5
2FRFJ4FF-Fhx6$F]xQ,~for~moduleFC-Fhx6$F]xQ-;|+variables~FC?(8&FRFR,&FcxFR!""FRF
\rC$-Fhx6$F]x-F[q6$&Ffx6#FfyFaq-Fhx6$F]xQ$~>~FC-Fhx6$F]x-F[q6$&Ffx6#FcxFaq-Fhx6
$F]xQ#;|+FC@$09*7#-%"$G6$FRFcxC&-Fhx6$F]xQ2variable~degrees~FC?(FfyFRFRFgyF\rC$
-Fhx6$F]x-F[q6$&F^[lF_zFaq-Fhx6$F]xQ#,~FC-Fhx6$F]x-F[q6$&F^[lFhzFaqFiz@$09+7#-F
a[l6$FhnFJC&-Fhx6$F]xQ/tuple~degrees~FC?(FfyFRFR,&FJFRFhyFRF\rC$-Fhx6$F]x-F[q6$
&Fh\lF_zFaqF^\l-Fhx6$F]x-F[q6$&Fh\l6#FJFaqFiz-Fhx6$F]xQ'order~FC-Fhx6$F]xQ,deg_
rev_lexFC@$F^yC$-Fhx6$F]xQ';|+rhs~FC-Fhx6$F]x-F[q6$,&FJFRFRFRFaq-Fhx6$F]xQ1;|+d
ivision~JanetFC@'0F[pFhnC%-Fhx6$F]xQ*;|+over~Z[FC-Fhx6$F]x-F[q6$F[pFaq-Fhx6$F]x
Q"]FC%4Involutive/ratcoeffG-Fhx6$F]xQ);|+over~QFCC$-Fhx6$F]xQ2;|+over~Z;|+absre
m~FC@%%2Involutive/absremG-Fhx6$F]xQ%trueFC-Fhx6$F]xQ&falseFC-Fhx6$F]xQ';|+POT~
FC@%9)Fh`lF[al@$F^y-Fhx6$F]xQ5;|+compatibility~trueFC@(/-%'removeG6%%$hasG%3Inv
olutive/invcritG7$""$""%7"-Fhx6$F]xQ0;|+criteria~noneFC/Fial7#FR-Fhx6$F]xQ-;|+c
riteria~1FC/Fial7#Fen-Fhx6$F]xQ-;|+criteria~2FC@$094Fabl-Fhx6$F]x-F`w6$Q*;|+out
put~FCFacl@&9/C$-Fhx6$F]xQ2;|+trace~relationsFC@$93-Fhx6$F]xQ/,~denominatorsFCF
^dl-Fhx6$F]xQ5;|+trace~denominatorsFC@$2Fhn9.C$-Fhx6$F]xQ+;|+seconds~FC-Fhx6$F]
x-F[q6$FgdlFaq-Fhx6$F]xQ+;|+expandedFC@$59091-Fhx6$F]xQ.;|+verbose~offFC-Fhx6$F
]xQ+;|+|+begin|+|+FC?(FfyFRFR-FT6#FXF\rC$@%FF@%/FJFR-Fhx6$F]x-F[q6$-%#opG6#&FX6
$FfyFRFaq-Fhx6$F]x-F[q6$F[glFaq-Fhx6$F]x-F[q6$-%$mapG6$Fifl&FXF_zFaq-Fhx6$F]xQ$
;|+|+FC-Fhx6$F]xQ(end;|+|+|+FC-%'fcloseG6#F]x@%Fbu-%'RETURNG6#7$,&FewFRFhyFR-&%
'systemG6#%'launchG6$Q#JBFC-F`w6$FgqQ,~_IB_RESULTFC@%Feel@%F[rC&>Ffr-Fhr6#-F`w6
%Q'runJB~FCFgqFail@$/Ffr%%NULLG-FL6#%?could~not~run~program~'runJB'.G>Ffr&FfrFY
@$0FfrFhn-FL6#%epprogram~'runJB'~not~found~or~interrupted~(e.g.~by~the~user~or~
because~of~memory~shortage).GC%>Ffr-Fhr6#-F`w6%Q$JB~FCFgqQ8~_IB_RESULT~>~/dev/n
ullFC@%3/FbjlFhn/F]sF^s>FfrFhn>FfrFR@$Fdjl-FL6#%bpprogram~'JB'~not~found~or~int
errupted~(e.g.~by~the~user~or~because~of~memory~shortage).GC%>Ffr-Fjhl6#-F`w6%F
^[mFgqFail@$F\jl-FL6#%<could~not~run~program~'JB'.G@$FdjlFg[m@$FgnC%>Ffr-Fhr6#-
F`w6'Q&if~[~FCFgqQ,.janet~-ot~FCFgqQ:~];~then~echo~-n~true;~fiFC@$2Fhn-%'length
G6#F]s-FL6#%dpoutput~file~of~'JB'~is~older~than~input~file~(probably,~program~'
JB'~stopped~abnormally).G@$492C$>Ffr-Fhr6#-F`w6%Q*filesize~FCFgqQ'.janetFC@$30F
frF]jlFb[mC$>Ffy-%'sscanfG6$F]sQ#%dFC@$334952Fhn-FTF_z2"'++I&FfyFY-%(WARNINGG6#
Q\oresulting~involutive~basis~is~big;~reading~it~may~take~a~while...FC@$Fi]m-Fd
hl6#FablA-F`w6$FgqFa^m@$33F^_m-%)assignedG6#%6_IB_RESULTout_of_timeGFe`m-Ff_m6#
%[ocomputation~of~involutive~basis~stopped~due~to~time~restriction.G@+5/FaclFab
l/-Fhp6$Facl;FR"#dQZinvbasis,invbasislm,invbasisanc,multvar,factormodulebasisFC
C'@$54333-Fc`m6#%+_IB_RESULTG-Fc`m6#%-_IB_RESULTlmG-Fc`m6#%._IB_RESULTancG-Fc`m
6#%2_IB_RESULTmultvarG3F^`l43-Fc`m6#%1_IB_RESULTfactorG-Fc`m6#%8_IB_RESULTfacto
rmultvarG-FL6#%Cerror~in~computation~or~interface.G@$F^`lC%@%09,7#-Fa[l6#;FRFJ>
%+_JB_factorG-Ffgl6$f*6#F=FC6$%)operatorG%&arrowGFC7#-%$seqG6$&FX6#&T$6#%"jG/F\
em;FRT&FCFC6&F/FecmF)FJFjbm>F[dmFjbm>%3_JB_factor_multvarGF]cm>%(_JB_varGFfx@$-
Fc`m6#%0_IB_RESULTcompaG>%*_JB_compaG-Ffgl6$f*F_dmFCF`dmFC&FX6#;,&FjdmFRFRFRFhy
FCFC6$F)FJFiem@$F^dlC%A-F`w6$FgqQ'.denomFC@$4-Fc`m6#%0_IB_RESULTdenomGF^cm>%*_J
B_denomGF^gm-Fdhl6#7&7#-Fedm6$&F[bm6#,&-FTFjamFRFfyFhy/Ffy;Fhn,&FjgmFRFhyFR7#-F
edm6$&Fabm6#,&-FTF`bmFRFfyFhy/Ffy;Fhn,&FdhmFRFhyFR7#-Fedm6$&F^bm6#,&-FTF]bmFRFf
yFhy/Ffy;Fhn,&F^imFRFhyFR7#-Fedm6$&Fdbm6#,&-FTFcbmFRFfyFhy/Ffy;Fhn,&FhimFRFhyFR
/-Fhp6$Facl;FR"#RQHinvbasis,invbasislm,invbasisanc,multvarFCC%@$FeamF^cm@$F^dlC
%AFgfm@$F[gmF^cm>F`gmF^gmFagm/FaclQ)invbasisFCC%@$4FiamF^cm@$F^dlC%AFgfm@$F[gmF
^cm>F`gmF^gm-Fdhl6#7&FdgmFablFablFabl/FaclQ2factormodulebasisFCC'@$FfbmF^cm@%Fd
cm>F[dm-Ffgl6$f*F_dmFCF`dmFCFcdmFCFCF`emFjbm>F[dmFjbm>FcemF]cm>FeemFfx@$F^dlC$@
$F[gmF^cm>F`gmF^gm-FL6#%4error~in~interface.GFC6(F[dmFcemFeemF[fmF`gmFewFCFC
M7R0
I>Involutive/PolIndexRegularityf*6"6'%"iG%"qG%,given_basisG%$varG%2tmp_P_T_List
_dataG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rig
hts~reserved.GF$C%@%2""!9#C$>8&%%trueG>6$8(8'-%7Involutive/setup_basisG6#9"C$@$
4-%)assignedG6#%)P_T_ListG-%&ERRORG6#%Umissing~involutive~basis;~run~Involutive
Basis~first.G>F4%&falseG>8%-%4Involutive/pmax_degGFC?(8$F0"""FLF5@$/-%1Involuti
ve/PolHPG6#FP-%1Involutive/PolHFGFVC$@$F4-%;Involutive/restoreP_T_ListG6#F8-%'R
ETURNGFVF$F$F$F$
M7R0
I;Involutive/jetscoeffmatrixf*6#%%_resG60%"cG%"lG%"mG%"nG%"pG%"rG%"vG%$resG%#ba
G%#KMG%#KLG%#reG%#cvG%#vaG6#%\pCopyright~(C)~2000-2010~by~Gehrt~Hartjen~and~Dan
iel~Robertz.~All~rights~reserved.G6"C.>8+-%6Involutive/jetsmklistG6#9$@$/F:7"-%
'RETURNG6#-%'matrixG6$""!FH>8&-%%nopsG6#F:@'-%%typeG6$F:%)listlistGC$>8'-FL6#&F
:6#""">F:-%$mapG6$%#opGF:-FP6$FX%%listGC$@$2FZ-FL6#<#-Fin6#-Fgn6$FLF:-%&ERRORG6
#%NYour~list~contains~lists~of~different~length!G>FUFH>FUFH@%32FZ9#4-FP6$&9"6#"
"#%'symbolG>8*Fdp>Fjp%%NULLG>8.F\q>8,F\q?&8/-%'expandGFM%%trueGC&@%-FP6$Fbq%"+G
>Fbq-%(convertG6$FbqF\o>Fbq7#Fbq>807#-%"$G6$FH-FL6#7#F`q@$0Fbq7#FH?&8)FbqFeqC%>
8$-%'coeffsG6$F^sFjp>81*&F^sFZFas!""@%-%'memberG6%FfsFir.8(>Fbr-%'subsopG6$/F^t
FasFbrC$>F`q6$F`qFfs>Fbr7$-Fin6#FbrFas>F^q6$F^qFbr>8%-FLFjt@%/F^uFH>F^q7#F^q>F^
q-Fat6$-Fin6#-Fgn6$f*6#%"iGF76$%)operatorG%&arrowGF7/F>7$-Fin6#&T#F=-Fer6$FH,&T
%FZ-FLFdvFhsF7F76&F1F^qF(F^u7#-Fer6#;FZ-FL6#FcuFcu@&32FgpF`p-FP6$&Fep6#""$Fhp-%
'assignG6$FhwFir3F_pFbp-F\x6$FdpFir@%/FUFH-%%copyG6#-F]r6$F^qFF-FF6%FJ*&FUFZF^u
FZ-Fgn6$FinF^qF7F7F7F7
M7R0
I4Involutive/findconef*6&%"mG%$varG%$basG%%multG6%%"iG%"jG%"qG6#%jnCopyright~(C
)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C%>8$-%%nopsG6#9&?(F/"""F
8F/1F8F2C$?(F/F8F8F/3F94-%'divideG6%9$&F66#F2.8&>F2,&F2F8!""F8@$F9C$@$-%(conver
tG6$-%$mapG6$f*6#F+F/6$%)operatorG%&arrowGF/1-%'degreeG6$T#&T&6#FA&&T(6#T)FhnF/
F/6*F,FEF&9%F(9'F*F27#-%"$G6#;F8-F46#F_o%$andG-%'RETURNGFC>F2FG-Fjo6#""!F/F/F/F
/
M7R0
I;Involutive/IsPommaretBasisf*6"6$%"iG%"nG6#%jnCopyright~(C)~2007-2010~by~Danie
l~Robertz.~All~rights~reserved.GF$C&@$4-%)assignedG6#%)P_T_ListG-%&ERRORG6#%Umi
ssing~involutive~basis;~run~InvolutiveBasis~first.G@$%5Involutive/janetlikeG-F2
6#%Mnot~implemented~yet~for~Janet-like~division.G>8%7#-%"$G6#;"""-%%nopsGF/-%&e
valbG6#/-%%subsG6$/%)infinityGFA-%$mapG6$f*6#F&F$6$%)operatorG%&arrowGF$&F06$9$
""&F$F$F$F;-FN6$f*FQF$FRF$-%4Involutive/pomm_divG6#&F06$FW""$F$F$F$F;F$F$F$F$
M7R0
I5Involutive/RemoveRHSf*6#%"lG6"6#%boCopyright~(C)~2007-2010~by~Markus~Lange-He
germann.~All~rights~reserved.GF&@%-%%typeG6$9$%"=G-%$lhsG6#F-F-F&F&F&F&
M7R0
I:Involutive/pplexdivision3f*6$%"aG%"bG6"6#%jnCopyright~(C)~2009-2010~by~Daniel
~Robertz.~All~rights~reserved.GF'-%9Involutive/pplexdivisionG6$&9$6#""$&9%F/F'F
'F'F'
M7R0
I9Involutive/pupdate_T_stdf*6#%"LG6)%"iG%"jG%"lG%"nG%"vG%$conG%(allmultG6#%jnCo
pyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C$>8'-%%nopsG6#
9$@$2""!F3C&>8*7#-%"$G6$%)infinityG%&_nvarG>%)P_T_ListG-%'subsopG6$/&F76#F37*&&
FE6#FJ6#"""&FN6#""#&FN6#""$7#-F@6$F:FCF=&FN6#""'7"&FN6#"")FE>8(FQ?(8$,&F3FQ!""F
QFaoFQ%%trueGC'>8%F]o?(F0FQFQF031FeoFC/&FE6&&F76#,&F_oFQFQFQFWFQFeo&FE6&&F76#F_
oFWFQFeo>Feo,&FeoFQFQFQ>8)-FG6$-%$seqG6$/8&F:/F]q;FdpFC&&FE6#Fap6#""%@$3/FeoF]o
/F_pF:>F]o,&F]oFQFQFQ>FE-FG6$/Fap-FG6$/FdqFfpFaqFEF06#FEF0F0
M7R0
I<Involutive/pplex_entr_blockf*6$%"aG%"bG6#%"iG6#%jnCopyright~(C)~2006-2010~by~
Daniel~Robertz.~All~rights~reserved.G6"C&@&2&%,_entrblocksG6#&9$6#""#&F06#&9%F4
-%'RETURNG6#%&falseG2F6F/-F;6#%%trueG?(8$"""FD-%%nopsG6#&F36#FDFA@&2&FH6#FC&&F9
FIFMF?2FNFLF:@$2F2F8F:FAF+F+F+F+
M7R0
I<Involutive/pdegrevlex_deg_Zf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCopyright~(
C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(>8%-%%nopsG6#&9$6#""">
8&,&-%$addG6$*&&F56#8$F8&%(_vardegGFAF8/FB;F8F1F8&%(_tupdegG6#&F66#""#F8>8',&-F
=6$*&&&9%F7FAF8FCF8FEF8&FH6#&FUFKF8@'2F:FN-%'RETURNG6#%%trueG2FNF:-Ffn6#%&false
GC%>F:F<>FNFP@'FZFenFinFjn?(FBF1!""F8Fhn@&2FSF@Fen2F@FSFjn@&2-%$absG6#&FU6#""$-
Fio6#&F6F\pFjn2F^pFhoFen@%2FJFXF\oFhnF.F.F.F.
M7R0
I9Involutive/pnegdegrevlexf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2004
-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8%-%(convertG6$&9$6#"""%"+G>
8&-F26$&9%F6F8@'2F0F:-%'RETURNG6#%&falseG2F:F0-FB6#%%trueG?(8$-%%nopsG6#F4!""F7
FH@&2&F=6#FJ&F4FRFF2FSFQFA@%2&F56#""#&F>FXFDFHF-F-F-F-
M7R0
I;Involutive/block_ord_Z_POTf*6&%"aG%"bG%$sepG%+termordersG6#%"iG6#%jnCopyright
~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C$@&2&9$6#""#&9%F3-%'R
ETURNG6#%&falseG2F5F1-F86#%%trueG@'4-&9'6#"""6$7$&&F2FD6#;FE&9&FDF17$&&F6FDFJF5
F:/FHFOC$?(8$F4FE-%%nopsG6#FMF>@&4-&FC6#FT6$7$&FI6#;,&&FM6#,&FTFE!""FEFEFEFE&FM
FfnF17$&FPFjnF5F70FinFcoF<@%2-%$absG6#&F66#""$-Fho6#&F2F[pF:F>F>F-F-F-F-
M7R0
I7Involutive/pbinary_hasf*6&%"aG%"FG%"sG%"nG6#%"pG6#%jnCopyright~(C)~2005-2010~
by~Daniel~Robertz.~All~rights~reserved.G6"C%@$/9&9'@%-%$hasG6$&9%6#F19$-%'RETUR
NGF9-F<6#""!>8$-%%iquoG6$,(F1"""F2FFFFFF""#@%-F56$&F86#;FA!""F:-F"6&F:F8FAF2-F"
6&F:F8F1,&FAFFFNFFF-F-F-F-
M7R0
I4Involutive/pleadmonf*6%%"pG%%seqvG%$cmpG6'%"iG%"jG%"nG%"CG%"LG6#%\pCopyright~
(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C)>8'
7#-%'coeffsG6%-%(collectG6%9$9%%,distributedGF<.8(>8&-%%nopsG6#F3@$/FA"""-%'RET
URNG6$&F36#FGF?>F?7#F?>8%FG?(8$""#FGFA%%trueG@$-9&6$&F?6#FP&F?6#FR>FPFR-FI6$&F3
FZFYF0F0F0F0
M7R0
I<Involutive/simp_pseudored_Zf*6&%"fG%"FG%%seqvG%'lmprocG6,%"iG%"jG%"hG%"lG%#lm
G%(termo_hG%$divG%'n_entrG%*zero_listG%.rhs_zero_listG6#%jnCopyright~(C)~2004-2
010~by~Daniel~Robertz.~All~rights~reserved.G6"C->%(_nnformG,&F9"""F;F;>8&9$>8+-
%%nopsG6#&F=6#F;>8,7#-%"$G6$""!F@>8-7#-FJ6$FL-FB6#&F=6#""#>8*%%trueG>8(-9'FC>8%
&Fen6$F;FV>8)-%'subsopG6$/Fin&Fen6$FVFVFG?(F6F;F;F63FX0&Fen6$FVF;FLC%>8$F;>FX%&
falseG?(F6F;F;F631F[p-FB6#9%4FXC$@$30FDFG-%7Involutive/pinv_divideG6%&Fcp6$F[p"
"$&Fcp6$F[p""&&FenFEC)>%'_reducG,&FeqF;F;F;>8'-%%ilcmG6$Fgo&Fcp6%F[p""'F;>F=-%)
simplifyG6#,&*(FhqF;Fgo!""F=F;F;7$,$-%$mapG6$f*6#%"aGF66$%)operatorG%&arrowGF6*
,T#F;&T&6%T'F^rF;Fer&T)6#T+F;&Fds6%FfsF^rFVFerF>F;F6F66,F-FhqF&FcpF*F[pF/F]oF+F
in&Fcp6%F[pF;F;Fer,$-Fir6$f*F\sF6F^sF6FasF6F6F]t&Fcp6%F[pF;FVFerF;>FXFY>FenFfn>
FinFjn>F]oF^o>F[p,&F[pF;F;F;@'3/FDFG0FTFNC$@$4-%7Involutive/member_multG6%FT%&P
_HOMG9&>Ffu7$-%#opG6#FfuFT7$FDFNF^u7$FGFTF=F66%FfuF9FeqF6F6
M7R0
I6Involutive/Substitutef*6$%"LG'%%varsG%%listG6(%"iG%'n_entrG%#suG%"vG%#L2G%"SG
6#%jnCopyright~(C)~2005-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C*>8%&-%
6Involutive/proc_inputG6#9$6#"""@$2F<F5-%&ERRORG6#%QSubstitute~is~not~applicabl
e~in~the~module~case.G>8&7">8'&-%5Involutive/proc_varsG6$9%F5F;>8(F:>8)-%@Invol
utive/InvolutivePreprocessG6$FNFG?(F2F<F<F20FPFEC*-%)userinfoG6&""$%+Substitute
G%Enumber~of~possible~substitutions~~~~G-%%nopsG6#FP>FD7$-%#opG6#FD&FPF;>FN-%)s
implifyG6#-%%subsG6$F_oFN@$0%2Involutive/characG""!>FN-%$modG6$FNFio>FN-%'remov
eG6$f*6#F*F26$%)operatorG%&arrowGF2/F:FjoF2F2F2FN>FG-Fap6%%2Involutive/hasvarGF
G7$-F]o6$F<&FD6#!""-F]o6#-%&minusG6$<#-F]o6#FG-%'indetsG6#FN@$/FNFE[>FPFQ7%FNFD
FGF2F2F2F2
M7R0
I5Involutive/jetsmkmatf*6#'%$matG<&%'matrixG%&arrayG%%listG%)listlistG6$%"MG%"i
G6#%[oCopyright~(C)~2000-2002~by~Mohamed~Barakat.~All~rights~reserved.G6"@)-%%t
ypeG6$9$F(F6-F46$F6F+@%-F46$&F66$"""F>F*C%>8$-F(6$-%%nopsG6#F6-FE6#&F66#F>?&8%-
%$mapG6$f*6#%"aGF16$%)operatorG%&arrowGF1-%#opG6#-FN6$f*6#%"bGF1FSF17$T$F6F1F16
$FRF67#-%"$G6#;F>-FE6#&FinFJF1F16$F&F67#-F]o6#;F>FD%%trueG>&FA6#-FW6#FL&F6F[p-%
%copyG6#FA-%(convertGF5-F46$F6F*-F(6%F>FDF6FbpF1F1F1F1
M7R0
I9Involutive/minpoly_paramf*6-%"pG%"BG%%varsG%'paramsG%#evG%%stepG%"xG%#hsG%"tG
%)paramdenG%(paramnoG6+%"eG%"iG%"jG%#mpG%'lastmpG%+evalpointsG%)minpolysG%#suG%
#IBG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C$>8
$9(@%2"""9)C'>8)7">8*FH>8(%%NULLG>8&FC?(F<FCFCF<%%trueGC%@%09.""!C$-%&printG6$Q
2multipliziere~mitF<9->8'-F"6-*&FfnFC9$FC9%9&9'F?,&FDFC!""FC9*9+9,FfnFU>Fhn-F"6
-F\oF]oF^oF_oF?F`oFboFcoFdoFfnFU@$0FhnFVC->FG7$-%#opG6#FGF?>FJ7$-F^p6#FJFhn-FY6
$Q+#~minpolysF<FO-FY6$Q"eF<F?-FY6$Q,new~minpolyF<Fhn>Fhn-&%-CurveFittingG6#%8Po
lynomialInterpolationG6%-%$mapG6$f*6#F2F<6$%)operatorG%&arrowGF<&F\o6#T$F<F<6$F
*FDFGFJ&F_o6#FD-FY6$Q-new~interpolF<Fhn@$30FLFM/-%)simplifyG6#,&FhnFCFLFaoFV-%'
RETURNG6#Fhn>FLFhn>FO,&FOFCFCFC@$2"$,#FO-%(WARNINGG6#Q^pthe~degree~(in~a~parame
ter)~of~a~coefficient~of~the~minimal~polynomial~exceeds~200.F<>F?-%'subsopG6$/F
D,&&F?FarFCFCFCF?C+>8+7#-%$seqG6$/&F_o6#8%&F?Fjt/F[u;FC-%%nopsG6#F_o>8,-%;Invol
utive/InvolutiveBasisG6$-%%subsG6$FctF]oF^o-FY6#Q8InvolutiveBasis~fertig.F<@$0-
%<Involutive/PolHilbertSeriesG6#FdoFco-F^s6#FV-%)userinfoG6&""$F"%5evaluation~p
oint~~~~GF?>Fhn-%6Involutive/PolMinPolyG6&-Fhu6$FctF\oFcuF^o/Q$varF<Fbo-FY6$Q&d
enomF<-%&denomGF_s>Fhn-%'normalG6#*&FhnFCFdwFC-%8Involutive/oneparam_numG6&FhnF
bo&F?6#FC&F_oF_xF<F<F<F<
M7R0
I8Involutive/PolFactorizef*6%%$_R1G%$_R2G'%$varG%%listG6+%"aG%"iG%"vG%#R1G%#R2G
%"JG%"FG%"NG%'n_entrG6#%\pCopyright~(C)~2006-2010~by~Alban~Quadrat~and~Daniel~R
obertz.~All~rights~reserved.G6"C+>8'-%$mapG6$f*6#F+F66$%)operatorG%&arrowGF6&9$
6#"""F6F6F6&-%6Involutive/proc_inputG6#FC6#""%>8(-FH6#9%>8,&FMFD>FM-F;6$f*F>F6F
?F6FBF6F6F6&FMFJ>8)-%;Involutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#FM9&>
8*7"?(8%FEFE-%%nopsG6#F9%%trueGC%>8+-%8Involutive/PolInvReduceG6%/&F96#F`o7#-%"
$G6$""!-FboFjnFZF[o@$0-%$lhsG6#Fgo7#-F`p6$FbpFR-%'RETURNG6#%%FAILG>F]o7$-%#opG6
#F]o-F;6$f*F>F6F?F6,$FC!""F6F6F6-%$rhsGFhp>8&-%*substringG6$-%(convertG6$-%+ker
neloptsG6#%(versionG%'stringG;FE"")@'5-%%typeG6$FC%'matrixG-F^s6$FPF`s-%%copyG6
#-F`sFdq330F]rQ)Maple~V,F60F]rQ)Maple~6.F65-F^s6$FC%'MatrixG-F^s6$FPF`t-Fds6#-F
`tFdqF]oF6F6F6F6
M7R0
IAhomalg/InvolutiveZeroSets/IBasisf*6$%"MG'%$varG%%listG6(%"oG%"vG%$ordG%%elimG
%$POTG%$retG6#%jnCopyright~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved
.G6"C+>8'%&falseG>8(F6?(8$""$"""9#%%trueG@%-%%typeG6$&9"6#F:%)equationG@'/-%$lh
sG6#FCQ3POSITION_OVER_TERMF2@%-FA6$-%$rhsGFK%(booleanG>F8FP-%&ERRORG6#%Yexpecti
ng~boolean~value~for~"POSITION_OVER_TERM"~option.G/FIQ,ELIMINATIONF2@%FN>F5FP-F
U6#%Rexpecting~boolean~value~for~"ELIMINATION"~option.G-FU6#%0unknown~option.G-
FU6#%0invalid~option.G@%F8>8&F<>FaoF;@$4F5>Fao,&FaoF<F<F<>8%-%5homalg/Normalize
RingG6$9%%+InvolutiveG@%/&Fho6#""#7">8)-%;Involutive/InvolutiveBasisG6%9$&Fho6#
F<Fao>Fep-Fgp6&FipF`pFjpFao@%-%)assignedG6#%-_InvZeroSetsG>Fcq7$-%#opGFbq-Fgq6#
-%7Involutive/PolZeroSetsGF2>FcqFjqOFepF2FbqF2F2
M7R0
I7Involutive/LocalIsUnitf*6$%#elG%%seqvG6%%"pG%'locvarG%(loc_varG6#%boCopyright
~(C)~2007-2010~by~Markus~Lange-Hegermann.~All~rights~reserved.G6"C'@%1""$9#>8&&
9"6#F1>F47#-%"$G6#;"""-%%nopsG6#9%>8%-%$mapG6$f*6#%"kGF-6$%)operatorG%&arrowGF-
&T$6#9$F-F-6$F&FBF4@&-%%typeG6$FQ%%listGC$@$0-F@FPF>-%&ERRORG6#Q>Wrong~Argument
~in~LocalIsUnitF->FQ-%#opGFP-FU6$FQ%"=GFfn@&-FU6$FQ-%(polynomG6$%)anythingG<#-F
\oFAC$>8$-%%subsG6$<#-F\o6#-FF6$f*6#%"vGF-FKF-/FQ""!F-F-F-FDFQ@%5/F[pFhp-%$hasG
6$F[pFB-%'RETURNG6#%&falseG-F`q6#%%trueG-FU6$FQ-%(ratpolyG6$Ffo<#-F\o6#%%pvarG-
F`q6#3-F"6%-%&denomGFPFBF4-F"6%-%&numerGFPFBF4F_qF-F-F-F-
M7R0
I5Involutive/ecart_lm1f*6&%"hG%#lmG%%seqvG%(loc_varG6"6#%epCopyright~(C)~2006-2
010~by~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~rights~reserved.GF)@%09'7
"@%/&9$6#"""7#-%"$G6$""!-%%nopsG6#F2-%'RETURNG6#F:-F?6#,&-%$maxG6#-%$seqG6$-%'d
egreeG6$&F26#%"kG<#-%#opG6#9&/FO;F5F;F5-%$addG6$&&9%F4FN/FO;F5-F<6#Fen!""F>F)F)
F)F)
M7R0
I4InvolutiveQS/homalg=6"%&falseGE\[l+%<NeedsStablyFreePresentationG%%trueG%1Pre
sentationInfoG%Chomalg/Involutive/PolHilbertCartanG%'ReduceG%@homalg/Involutive
/PolInvoReduceG%3SyzygiesGeneratorsG%>homalg/Involutive/PolSyzygiesG%.BasisOfMo
duleG%9homalg/Involutive/IBasisG%*BestBasisG%:homalg/Involutive/BasisQSG%2Facto
rModuleBasisG%Dhomalg/Involutive/FactorModuleBasisG%3ReduceRingElementsG%Dhomal
g/Involutive/PolNormalizeInputG%.SimplifyBasisG%8Involutive/jetsdepcheckG%'IsUn
itG%9homalg/Involutive/IsUnitGF$
M7R0
I5Involutive/pplex_POTf*6$%"aG%"bG6#%"iG6#%\pCopyright~(C)~2000-2010~by~Carlos~
F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C%@&2&9$6#""#&9%F1-%'RETURNG6
#%&falseG2F3F/-F66#%%trueG?(8$"""F?-%%nopsG6#&F06#F?F<@&2&FC6#F>&&F4FDFHF:2FIFG
F5F<F+F+F+F+
M7R0
I>Involutive/pdeglex_entr_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)
~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(@&2&%,_entrblocksG6#&9$6
#""#&F26#&9%F6-%'RETURNG6#%&falseG2F8F1-F=6#%%trueG>8%-%(convertG6$&F56#"""%"+G
>8&-FG6$&F;FJFL@'2FEFNFA2FNFEF<?(8$FKFK-%%nopsG6#FIFC@&2&FQ6#FV&FIFgnF<2FhnFfnF
A@$2F4F:F<FCF-F-F-F-
M7R0
I9Involutive/pdeglex_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2004
-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8%-%(convertG6$&9$6#"""%"+G>
8&-F26$&9%F6F8@'2F0F:-%'RETURNG6#%%trueG2F:F0-FB6#%&falseG?(8$F7F7-%%nopsG6#F4F
D@&2&F=6#FJ&F4FQFF2FRFPFAFDF-F-F-F-
M7R0
I;Involutive/pdeglex_deg_POTf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCopyright~(C
)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(@&2&9$6#""#&9%F4-%'RETU
RNG6#%&falseG2F6F2-F96#%%trueG>8%-%%nopsG6#&F36#""">8&-%$addG6$*&&FE6#8$FG&%(_v
ardegGFOFG/FP;FGFA>8'-FK6$*&&&F7FFFOFGFQFGFS@'2FIFVF=2FVFIF8?(FPFGFGFAF?@&2FZFN
F82FNFZF=F?F.F.F.F.
M7R0
I6Involutive/pnegdeglexf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2004-20
10~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8%-%(convertG6$&9$6#"""%"+G>8&-
F26$&9%F6F8@'2F0F:-%'RETURNG6#%&falseG2F:F0-FB6#%%trueG?(8$F7F7-%%nopsG6#F4FH@&
2&F=6#FJ&F4FQFA2FRFPFF@%2&F56#""#&F>FWFDFHF-F-F-F-
M7R0
I7Involutive/member_multf*6%%"aG%"LG%%seqvG6'%"bG%"fG%"iG%"jG%"kG6#%jnCopyright
~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"@%-%%typeG6$9$%%listGC
&@$/9%7"-%'RETURNG6#%&falseG>8&"""?(F0FBFBF031FA-%%nopsG6#F5/&F56#FA""!>FA,&FAF
BFBFB@%FEC$?&8$F:%%trueG@$0&FRFKFL@%%4Involutive/ratcoeffG@%0%2Involutive/chara
cGFL@$-%$modG6$-%'DivideG6%FJFV.8%Fen@$34-%$hasG6$F^o9&/-Fhn6$-%'expandG6#*&F^o
FBFRFBFenF5-F=6#FSC$>F^o-%'normalG6#*&FJFBFV!""@$3Fao/-Fbp6#-%$zipG6%f*6$F,F-F0
6$%)operatorG%&arrowGF0,&*&T#FBF5FBFBF:FepF0F06$F*F^oFRF57#-%"$G6$FLFFF]pC$>F^o
Fap@$33Fao-F36$F^o-%(polynomG6#%(integerG/-Fbp6#-F\q6%f*F_qF0F`qF0FcqF0F0FfqFRF
5FgqF]pF?FS@%0F5FLC$?&FRF:FS@$0FRFL@%FX@%FZ@$-Fhn6$-F[o6%F5FRF]oFen@$FaoF]pC$>F
^o-Fbp6#*&F5FBFRFep@$FaoF]pC$>F^oF\t@$F_rF]pF?FSF0F0F0F0
M7R0
I@Involutive/pnormal_form_poly_lmf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_var
G67%"aG%#caG%#cbG%"hG%"iG%"kG%#lmG%(termo_hG%$divG%#stG%+no_contentG%'n_entrG%*
zero_listG%.rhs_zero_listG%#lvG%#nlG%#nvG%"HG%"eG%#meG%#hiG6#%jnCopyright~(C)~2
000-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C.>%(_nnformG,&FF"""FHFH>8'9
$>8/-%%nopsG6#&FJ6#FH@$09)7"C'>82<#-%$seqG6$&9&6#&FU6#8(/F]o;FH-FO6#FU>83-FO6#F
Y>84-%'removeG6%%$hasGFinFY>85FV>FJ7#-%=Involutive/cancel_locvar_rhsG6'FQ&FJ6#"
"#9'FinFU>807#-%"$G6$""!FM>817#-F[q6$F]q-FO6#Fcp>8.%%trueG>8,Fgq>8*-FfpFP>8+*&&
F[r6$FepFHFH&F[r6$FepFepFH?(FCFHFHFC3Fiq0F`rF]qC&>F]oFH>Fiq%&falseG@$FT>86,&-%$
maxG6#-Ffn6$-%'degreeG6$&FQ6#8)FY/Fis;FHFMFH-%$addG6$&&F[r6$FHFH6#&FUFhs/Fis;FH
Fco!""?(FCFHFHFC31F]o-FO6#9%4FiqC$@$30FQFhp-%7Involutive/pinv_divideG6%&F\u6$F]
o""$&F\u6$F]o""&&F[rFRC(>%'_reducG,&F^vFHFHFH@%FTC+>87,&-F`s6#-Ffn6$-Fes6$&&F\u
6%F]oFHFHFhsFYFjsFH-F]t6$&&F\u6%F]oFguFHFbtFdtFft>88F]q>Fis-FO6#F]p?(FCFHFHFC32
F]qFcv2F]qFisC$@$331&&F]pFhs6#FguFcv/&&&FbxFdpFRFdp&F[vFdp-%:Involutive/conv_di
visibleG6$FfxF[vC$>FdwFis>FcvFax>Fis,&FisFHFftFH@$2F]sFcvC$>Fis-9(6%FQFin7$Fcp&
&F[rFdpFR>F]p7$-%#opGFgw7%7$&FisFR&&FisFdpFR7$F[v-%'subsopG6$/FH&FczFdpFjyF]s@%
/FdwF]q>FJ-%'expandG6#,&*&&F\u6%F]o""'FHFHFJFHFH7$,$*(F^rFH&F\u6%F]oFd[lFepFftF
\wFHFft,$*(F^rFHFh[lFft&F\u6%F]oFHFepFHFftFH>FJ-F^[l6#,&*&&&&&F]p6#FdwFdpFdpFRF
HFJFHFH7$,$*(F^rFH&Fd\lFdpFft&&Ff\lFRFRFHFft,$*(F^rFHF[]lFft&F]]lFdpFHFftFH>FJ-
Ffy6%FQFinFcp>FJF_p@$0%2Involutive/characGF]q>FJ-%$modG6$FJFg]l@%/Fg]lF]qC$-%$g
cdG6&F`rFb[l.8%.8&>FJ7$-%'normalG6#,&-%$mapG6$f*6#F,FC6$%)operatorG%&arrowGFC*&
T#FHFKFHFCFC6$F.Fe^lFQFH-F]_l6$f*F`_lFCFa_lFC**Fe_lFH&T%FcrFH&T(6%T)Fd[lFepFftF
KFHFCFC6*F-Fc^lF2F[rF&F\uF0F]oF\wFft-Fi^l6#,&-F]_l6$f*F`_lFCFa_lFCFd_lFCFCFf_lF
cpFH-F]_l6$f*F`_lFCFa_lFCFj_lFCFCFa`lF\\lFftC$-Fj]l6$-%$GcdGFa^lFg]l>FJ7$-Fj]l6
$-%'NormalG6#,&-F]_l6$f*F`_lFCFa_lFCFd_lFCFCFf_lFQFH-F]_l6$f*F`_lFCFa_lFCFj_lFC
FCFa`lF\wFftFg]l-Fj]l6$-Feal6#,&-F]_l6$f*F`_lFCFa_lFCFd_lFCFCFf_lFcpFH-F]_l6$f*
F`_lFCFa_lFCFj_lFCFCFa`lF\\lFftFg]l>FiqFgq>FfqFjr>F[rF\r>F^rF_r>F]o,&F]oFHFHFH@
'3/FQFhp0FcpF_qC%>Fcp&-Ffy6%FcpFinFVFR@$3Fbcl4-%7Involutive/member_multG6%Fcp%&
P_HOMGFin>F^dl7$-F^z6#F^dlFcp7$FQF_qFacl7$FhpFcpC$@$FT>FJF_p@%/FfqFjrFb]lFJFC6%
F^dlFFF^vFCFC
M7R0
IFInvolutive/simp_pnormal_form_Z_lm_oldf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(l
oc_varG6+%"aG%"iG%"hG%"lG%#lmG%$divG%'n_entrG%*zero_listG%.rhs_zero_listG6#%jnC
opyright~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C+>%(_nnformG,
&F:"""F<F<>8&9$>8*-%%nopsG6#&F>6#F<>8+7#-%"$G6$""!FA>8,7#-FK6$FM-FC6#&F>6#""#>8
)%%trueG>8(-9'FD?(F7F<F<F73FY0&Ffn6$FWF<FMC%>8%F<>FY%&falseG?(F7F<F<F731F`o-FC6
#9%4FYC$@$30FEFH-%7Involutive/pinv_divideG6%&Fho6$F`o""$&Fho6$F`o""&&FfnFFC%>%'
_reducG,&FjpF<F<F<>8'-%%iquoG6$F\o&Fho6%F`o""'F<@$0F]qFMC%>F>-%(collectG6%7$-%'
normalG6#,&FEF<-%$mapG6$f*6#F,F76$%)operatorG%&arrowGF7**T#F<&T%6$FWFWF<&T(6%T)
FcqFW!""F?F<F7F76*F/F]qF0FfnF&FhoF-F`o&Fho6%F`oF<F<Fas-F]r6#,&FUF<-Far6$f*FdrF7
FerF7FhrF7F7Fbs&Fho6%F`oF<FWFas9&%,distributedG>FYFZ>FfnFgn>F`o,&F`oF<F<F<@'3/F
EFH0FUFOC$@$4-%7Involutive/member_multG6%FU%&P_HOMGF]t>F]u7$-%#opG6#F]uFU7$FEFO
Fet7$FHFUF>F76%F]uF:FjpF7F7
M7R0
I<Involutive/PolInvReduceGINVf*6%%"fG'%"BG%%listG'%%varsGF(6L%"aG%"cG%#f1G%"gG%
"iG%"jG%"kG%"rG%"vG%"zG%'n_entrG%)rhs_entrG%'no_rhsG%"FG%"SG%&m_ordG%%fextG%)tu
p_permG%$varG%(var_ordG%'vt_degG%(deg_ordG%)alg_elemG%+trans_elemG%)radicalsG%'
compatG%*nocollectG%(nocheckG%.return_coeffsG%*checkginvG%)entr_posG%(algextsG%
-algextindetsG%(rootofsG%,ginvrootofsG%*quietmodeG%/transextindetsG%+f_alg_elem
G%+B_alg_elemG%%algoG%*donotreadG%+tracedenomG6#%jnCopyright~(C)~2000-2010~by~D
aniel~Robertz.~All~rights~reserved.G6"C^p@$0%7Involutive/initializedG.%%trueG-%
0Involutive/initGFX>81-%6Involutive/proc_inputG6#9%>8.&F\o6#""">8/&F\o6#""#>80&
F\o6#""$>8:&F\o6#""'>8JFap>8;&F\o6#""(>86-%5Involutive/proc_varsG6$9&Fbo>87&F]q
Fio>88&F]qF^p>89&F]q6#""%>85&F]q6#""&>8B&F]qFcp>F]q&F]qFdo>Fhp-%'removeG6$f*6#F
0FX6$%)operatorG%&arrowGFX-%'memberG6$9$T#FXFX6$F>F]qFhp>8%%2Involutive/characG
>83F\r>8C7">8DF]t>8HF]t>84Q!FX>8@%&falseG>8?Fgt>8>Fgt>8,-%(convertG6$-%+kernelo
ptsG6#%(versionG%'stringG>8K%%NULLG>8LFgt>8MFgt>8G-%&evalbG6#552""!-%+searchtex
tG6$Q&APPLEFXF]u/-%*substringG6$-F_u6$-%*interfaceG6#.FduFeu;Feo"#GQ=Standard~W
orksheet~InterfaceFX/%5Involutive/InvoBasisG%>Involutive/InvBasisGINVAssertG>F]
u-F\w6$F]u;Feo"")?(8(F\rFeo9#Fhn@)5-%%typeG6$&9"6#F`x%(integerG-Fex6$FgxF(>FjsF
gx-Fex6$Fgx%)equationG@3/-%#opG6$FeoFgxQ%NameFXC$@$4-Fex6$-Fdy6$FjoFgxFeu-%&ERR
ORG6#%Fexpecting~a~string~for~option~"Name".G>FctF\z/FcyQ%charFX>FgsF\z/FcyQ'al
gextFX@%-Fex6$F\zF(?&8*F\zFhnC&>8--%&minusG6$-%'indetsG6#F\[l<%-Fdy6#F_t-Fdy6#-
%$mapG6%F_uFap%%nameG-Fdy6#Fat@$50-%%nopsG6#F_[lFeo4-Fex6$F\[l-%(polynomG6$%)an
ythingGF_[l-F_z6#%`sexpecting~a~univariate~polynomial~(possibly~with~rational~c
oefficients~in~previously~defined~algebraic~elements)~for~option~"algext".G@$0-
%*intersectG6$F_[l<#-Fdy6#F]q<"-F_z6#%_qthe~univariate~polynomial~for~option~"a
lgext"~may~not~contain~indeterminates~of~the~polynomial~ring.G@$4-Fas6$-FdyFf\l
F_tC$>F\t7$-Fdy6#F\tF\[l>F_t7$Fg[lFa^lC&>F_[l-Fa[l6$-Fd[l6#F\zFf[l@$5Fc\l4-Fex6
$F\zFj\lF^]l@$Fb]lFj]l@$F^^lC$>F\t7$Fe^lF\z>F_tFh^l/FcyQ)transextFX@'-Fex6$F\z-
F(6#F^\l?&F\[lF\zFhn@$4-Fas6$F\[l7$-Fdy6#FhpF_\l>Fat7$F_\lF\[l-Fex6$F\zF^\l@$4-
Fas6$F\zFf`l>Fat7$F_\lF\z-F_z6#%Sexpecting~(list~of)~name(s)~for~option~"transe
xt".G/FcyQ&quietFXC$@$4-Fex6$F\z%(booleanG-F_z6#%Lexpecting~boolean~value~for~o
ption~"quiet".G>F^vF\z/FcyQ(collectFXC$@$Fjal-F_z6#%Nexpecting~boolean~value~fo
r~option~"collect".G>F[u4F\z/FcyQ*algorithmFX>FguFgx/FcyQ*donotreadFXC$@$Fjal-F
_z6#%Pexpecting~boolean~value~for~option~"donotread".G>FjuF\z-F_z6#%0invalid~op
tion.G-Fex6$FgxFeu@%/FgxF_cl>FjuFhnC$>82Fgx?(F\[lFeoFeo-%'lengthG6#F`dlFhn@(/&F
`dlFe[lQ"CFX>FftFhn/FgdlQ"LFX>FitFhn0FgdlQ"SFXFfclFfcl@$Fft-%'RETURNG6#-%:Invol
utive/PolInvolReduceG6#Fhx@$52Feo-Fe\l6#Fcr3/FielFeo0&FcrFdoFboF`el>%&_nvarG-Fe
\lFh]l@$30FcqF]t4-Fex6$FjsF(>Fjs7#-%"$G6$Fjs-Fe\l6#Fcq@$0F^r7#-F[gl6#;FeoFbo>F\
o-%'subsopG6$/F\r-F\\l6$f*F\s6#F1FXFX-Fggl6$/Feo7#-%$seqG6$&&FcsFdo6#&Fds6#8$/F
jhl;FeoT%FcsFXFX6&F=F^rF6Fbo&F\oF[rF\o>8A-%7Involutive/checkIBginvG6/F\oF]qFgsF
jsFcqFcr&Ffq6#;FeoF`fl&Ffq6#;,&F`flFeoFeoFeo,&F`flFeoFboFeoF\tF_tFatFctFit>Fap&
FailFio>8<&Fail6#"#5>Fhp&FailF^p>F_t&FailF[r>F\t&FailF`r>F`xFeo?(FXFeoFeoFX1F`x
-Fe\lFh[l@%-Fas6$&F_tFix-F\\l6$%&parseG-F\\l6%F_u7#-%&aliasGFXFeuC%@$4-Fas6$Fa[
m-F\\l6$Fd[m-F\\l6%F_uFapFeu>Fap7$-Fdy6#Fap-Fd[m6#-F_u6$Fa[mFeu>F_t-Fggl6$/F`xF
huF_t>F\t-Fggl6$F^]mF\t>F`x,&F`xFeoFeoFeo>Fap-Fir6$f*F\sFXF]sFX-Fas6$Fcs-F\\l6$
%$rhsG&FdsFjpFXFX6$FIFailFap>8E&FailFcp>8F&FailFjp>F`xFeo?(FXFeoFeoFX2F`x-Fe\l6
#Fc^mC$>Fc^m7$-Fdy6#&Fc^m6#;FeoF`x-Fdy6#-%%subsG6$/-F\^m6#&Fc^mFix-%$lhsGFi_m&F
c^m6#;Fc]m!"">F`xFc]m@$0&Fail6#F^xFev>FjsFd`m>8=&FailFdo@'-Fex6$FcsF(@%2Fev-Fe\
lF_o@%333533-Fex6$&F`oFdoF`y-Fex6$-Fdy6$FeoFiamF(2Feo-Fe\l6#F\bm3-Fex6$FiamF(2F
eo-Fe\l6#Fiam2Fev-Fe\l6#Fcs4-Fex6$FfhlF`y4-Fex6$FfhlF(>8&7#Fcs>FacmFcs@%333Fgbm
FjbmF]cm2FeoFbo>FacmFbcm>FacmFcs5-Fex6$Fcs%'matrixG330F]uQ)Maple~V,FX0F]uQ)Mapl
e~6.FX-Fex6$Fcs%'MatrixG>Facm-F_u6$Fcs%)listlistG>FacmFbcm>F\o-F^o6#Facm@$0FcoF
bo-F_z6#%Bf~has~wrong~number~of~components.G@$4F]pC$@$F\p-F_z6#%Jinvolutive~bas
is~has~no~right~hand~sides.G@$0FhoFgo-F_z6#%Pright~hand~side~has~wrong~number~o
f~components.G>8I-Fir6$f*F\sFXF]sFXF`sFXFX6$FBFapFbp@$-%$hasG6$-F\\l6$f*6#F,FXF
]sFX3-Fex6$Ffhl-F(6#-F[]l6$F]]lFds-Fex6$&FcsFioFbgmFXFXFesF_ilFgt-F_z6#-%$catG6
%%Sexpecting~a~(list~(of~lists)~of)~polynomial(s)~in~G-F_u6$F]qFeu%4~as~first~a
rgument.G>Fbfm-%>Involutive/algebraicextensionG6)F_ilFbfmF\tF_tFhpF`^mF`jl>F_il
&FbfmFdo>F\t&FbfmF^p>F_t&FbfmF[r>F`jl&FbfmF`r>F`^m&FbfmFcp>Fhp&FbfmFjp>Fh`m3Fh`
m4&FbfmFe`m>Fbfm&FbfmFio@$0F`jlF]tC$>F\t-Fe_m6$F`jlF\t>F_il-Fe_m6$F`jlF_il@$0-F
a[l6$<#-Fdy6#Fip<$Fg]lFg`lFi]lC%>Fh`mFgt>F\[l7#-Fdy6#Fcjm>Fat7$F_\l-FdyFe[l@$4F
h`mC$>Fap-%'selectG6$f*F\sFXF]sFXF`sFXFX6$FRFfpFap@%Fc`m-%?Involutive/Involutiv
eBasisGINVG6'&Fhx6#;FjoF``mFd`mFgu/FgzF\t/F[`lFf`l-F]\n6&F_\nFguFb\nFc\n@%4F[u@
%0FhsFev>8'-%$modG6$-%(collectG6%F_ilF]q%,distributedGFhs>F[]nF_]n>F[]nF_il@$F`
gl>F[]n-F\\l6$f*F\sF]hlFXFXF^hlFXFXF^ilF[]n@%F\p@%/FboFeo>F[]n-F\\l6$f*F^gmFXF]
sFX&FfhlFdoFXFXFXF[]n>F[]n-F\\l6$f*F^gmFXF]sFXFfhlFXFXFXF[]n@%F]p>F[]n-F\\l6$f*
F^gmFXF]sFX7$-Fdy6#Ffhl-F[gl6$FevFdsFXFX6$F7FgoF[]n>F[]n-F\\l6$f*F^gmFXF]sFX-F\
\l6$FdyFcsFXFXFXF[]n>8+-%6Involutive/ginvReduceG66F[]nF]qFapFhpFboFgoF\pFgsFjsF
cqFcrFeilFhilF\tF_tFatFctFjuF\vF^v@$Fju-FaelFX>Fh_n-F\\l6$f*F\sFXF]sFX@%3-Fex6$
Fcs%"*G-%(hastypeGF\am-%'expandGFibmFcsFXFXFXFh_n@$Fiim>Fh_n-Fe_m6$-F\\l6$f*F\s
FXF]sFX/-F\^mFibm-F\`mFibmFXFXFXF`jlFh_n?(F`x-Fe\l6#F`^mF``mFeoFhn>Fh_n-Fe_m6$&
F`^mFixFh_n?(F`xFh^mF``mFeoFhn>Fh_n-Fe_m6$Fj_mFh_n@$F`gl>F^r-F\\l6$f*F\sF]hlFXF
XC$-Fas6%FcsFds.FjhlFjhlFXFX6$F=F^rFagl?(F\[lFeoFeo-Fe\l6#Fh_nFhn@%-Fex6$&FacmF
e[lF`y@%F\^nC%>F[]n&&Fh_nFe[lFdo@$-Fex6$-Fdy6$FeoF`cnF(>F[]n7#F[]n@%/FgoFeo@%-F
ex6$-Fdy6$FjoF`cnF(>Fh_n-Fggl6$/F\[l/F[]n7#&FecnFioFh_n>Fh_n-Fggl6$/F\[l/F[]nFj
dnFh_n>Fh_n-Fggl6$/F\[l/F[]n&Fecn6#;Fjo,&FboFeoFgoFeoFh_nC%>F[]n&FecnFcgl@$F`gl
>F[]n7#-Fchl6$&F[]n6#&F^r6#8)/FefnFdgl@%F^dn@%F`dn>Fh_n-Fggl6$/F\[l/F[]n7#&Fecn
6#,&FboFeoFeoFeoFh_n>Fh_n-Fggl6$/F\[l/F[]nF_gnFh_n>Fh_n-Fggl6$/F\[l/F[]n&Fecn6#
;FagnFhenFh_n@%F\^n@%F\p@%-Fex6$F`cnF(>Fh_n-Fggl6$/F\[l7#FecnFh_n>Fh_n-Fggl6$/F
\[lFecnFh_n@%Fbhn>Fh_n-Fggl6$/F\[l7#FdcnFh_n>Fh_n-Fggl6$/F\[lFdcnFh_nC%>F[]nF[f
n@$F`gl>F[]nF^fn>Fh_n-Fggl6$/F\[lF[]nFh_n@)F[am@%345F[cm-FexFjdm-Fex6$FacmF[em-
FdyF\cnFh_nF\dm-F^dmF\cnF_dm-F_u6$Fh_nFgdmFgjnFX6#F`flFXFX
M7R0
I:Involutive/SubmoduleBasisf*6"6:%"bG%"iG%"jG%"lG%"pG%"sG%,given_basisG%&m_ordG
%'n_entrG%"FG%2tmp_P_T_List_dataG%%varsG%$varG%%nvarG%(var_ordG%'vt_degG%)entr_
posG%%seqvG%,force_evalaG%'lmprocG%(seq_varG%#suG%#lmG%$resG6#%jnCopyright~(C)~
2007-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C,@$4%4Involutive/ratcoeffG
-%&ERRORG6#%fnnot~implemented~yet~for~involutive~bases~over~the~integers.G>86%&
falseG>8+""%>89%%NULLG@'5/9#"""32FUFT55-%%typeG6$&9"6#""#%)equationG-Fen6$Fgn%(
integerG-Fen6$Fgn-%%listG6#F^oC$>8*FJ>8&Fjn2""!FTC$>Ffo%%trueG>Fho""$-FE6#%goex
pecting~either~an~involutive~basis~or~list~of~variables~as~first~argument.G?(8%
FhoFUFTF]p@'5-Fen6$&Fhn6#FdpF^o-Fen6$FipFbo>FLFip3-Fen6$FipF[o/-%#opG6$FUFipQ%s
ubsF$C$@$-Fen6$-Fcq6$FjnFipFbo-FE6#%Hexpecting~expression~for~option~"subs".G>F
OFjq-FE6#%0invalid~option.G@%FfoC3>8--%6Involutive/proc_inputG6#&Fhn6#FU>8,&Ffr
F[s>FI5FI&Ffr6#""&>8.73%)P_T_ListG%*pnumber_tG%+PolTab_VarG%&_nvarG%&_pvarG%(_v
ardegG%(_tupdegG%,_entrblocksG%&P_HOMG%)_pno_rhsG%0_pforce_collectG%._pforce_ev
alaG%)_inv_denG%+_JB_factorG%3_JB_factor_multvarG%(_JB_varG%*_JB_compaG>8/-%5In
volutive/proc_varsG6$FgnF]s>82&FitFin>83&Fit6#F_p>84&Fit6#""'>80&FitF[s>857#-%$
seqG6$-%$catG6$%#_xGFdp/Fdp;FU-%%nopsG6#Fju>F^u-%%subsG6$7#-F`v6$/&FjuFjp&F]vFj
pFfvF^u@$30F^u7"/FLFM>FL7#-%"$G6$FM-Fiv6#F^u>8'-%4Involutive/proc_ordG6*FLFjuF^
uFbu&Fit6#FMF]vFeu4FI@$&FbxFgx>FeuFhw@$/&Fau6#;,&FhvFUFUFU,&FhvFUF]sFU7#-F]x6$F
joF]s>FauFjo>87-%&parseG6#-Fcv6/Q@g->`Involutive/pol_lead_mon`(g,F$-%(convertG6
$F]s%'stringGQ",F$-F`z6$F]vFbzFcz-F`z6$&FbxF[sFbzFcz-F`z6$FeuFbzFcz-F`z6$&FbxFb
sFbzFcz-F`z6$FauFbzQ")F$-%9Involutive/setupP_T_ListG6*-%(collectG6%&FfrFgxFju%,
distributedGF]s&FfrFinFhy&FbxFcu&FitFbsFju&FfrFcuC(@$4-%)assignedG6#Fgs-FE6#%Um
issing~involutive~basis;~run~InvolutiveBasis~first.G>F]s-Fiv6#&Fgs6%FUFUFU>Fit-
F[u6$FjrF]s>FjuF[v>F]vF^v@$0-Fiv6#&Fgs6%FUF_pFUFhv-FE6#%[qthe~current~involutiv
e~basis~was~computed~w.r.t.~a~different~number~of~variables~than~nops(var).G@%/
&Fgs6%FUFhuFUFjo@%/F]sFU>8;Fjo>F`^lFcyC%>81Fhv>887#-F`v6$/FdwFcw/Fdp;FUFd^l@%F^
^l@%%5Involutive/janetlikeGC$>F`^lFjo?&FdpFgsF]p@%/&FdpFbs7#-F]x6$%)infinityGFd
^l>F`^l,&F`^lFU*&-F]w6$Ff^l&Fdp6$FhuFjnFU-%$mulG6$,&FUFU&Fju6#Fho!""/FhoF\_lFg`
lFUC)>8$-F]w6$/Fi_lFjoFe_l>8(7#-F]x6$FjoFd^l>8:F]`l?(FhoFUFUFd^lF]p@$/&Fdp6$Fcs
FhoFi_l>Feal*&FealFUFd`lFg`l>F`^l,&F`^lFUFealFU>F`al-%8Involutive/nextmonomialG
6$F`alF[al?(F$FUFUF$0F`alFaalC$>F`^l,&F`^lFU*&FealFU-Fb`l6$)Fe`l&F`alFf`lFh`lFU
FU>F`alF`bl>F`^l-%$addG6$*&-F]w6$Ff^l&Fgs6%FdpFhuFjnFU-Fb`l6$)Fd`l-F]w6$/Fi_lFU
&Fgs6%FdpFcsFhoFh`lFg`l/Fdp;FU-FivFb\lC$>8)Fcy@%F__lC$>F`^lFddl?&FdpFgsF]p@%Fd_
l>F`^l-%'expandG6#,&F`^lFU-%'subsopG6$/&Fdp6$F_pFjnF\`lFddlFUC)>F[alF\al>F`alFa
al>FealF]`l?(FhoFUFUFd^lF]p@$Fhal>FealF\bl>F`^l-F\el6#,&F`^lFU-F`el6$/FcelFealF
ddlFU>F`alF`bl?(F$FUFUF$FdblC$>F`^l-F\el6#,&F`^lFU-F`el6$/FcelFhblFddlFU>F`alF`
bl>F`^l-F\el6#-F`cl6$-F`el6$/&Fgs6%FdpF_pFjnFbclFddlF_dl@$Ffo-%;Involutive/rest
oreP_T_ListG6#Fes@%0FOFP-F]w6$-%$mapG6$f*6#F'F$6$%)operatorG%&arrowGF$/9$T#F$F$
6$F;FOFjuF`^lF`^lF$F$F$F$
M7R0
I7Involutive/SubmoduleHPf*6"6:%"bG%"dG%"iG%"jG%"lG%"nG%"pG%"sG%&n_mulG%,given_b
asisG%&m_ordG%'n_entrG%"FG%2tmp_P_T_List_dataG%%varsG%$varG%%nvarG%(var_ordG%'v
t_degG%)entr_posG%%seqvG%,force_evalaG%'lmprocG%$resG6#%jnCopyright~(C)~2007-20
10~by~Daniel~Robertz.~All~rights~reserved.GF$C-@$4%4Involutive/ratcoeffG-%&ERRO
RG6#%fnnot~implemented~yet~for~involutive~bases~over~the~integers.G>8+%%NULLG>8
9%&falseG>8.""%@%519#"""32FUFT555-%%typeG6$&9"6#""#%)equationG-Ffn6$Fhn-%%listG
6#%(integerG-Ffn6$Fhn%(numericG-Ffn6$Fhn%%nameGC$>8-FM>8'FUC$>F[p%%trueG>F]p""$
?(8&F]pFUFTF`p@--Ffn6$&Fin6#FdpFbo@%F[p>FOFhp@%/FIFJ>FIFhp-FE6#%Zcannot~determi
ne~which~indeterminate~or~value~to~plug~in.G-Ffn6$FhpF_o>FOFhp-Ffn6$FhpFeo@%F]q
>FIFhpF_q3-Ffn6$FhpF\o/-%#opG6$FUFhpQ$varF$@%F]q>FI-F^r6$F[oFhpF_q-Ffn6$FhpFho@
%F]q>FIFhpF_q-FE6#%0invalid~option.G@$F]q>FI.FI@%F[pC3>80-%6Involutive/proc_inp
utG6#&Fin6#FU>8/&FbsFgs>FL5FL&Fbs6#""&>8173%)P_T_ListG%*pnumber_tG%+PolTab_VarG
%&_nvarG%&_pvarG%(_vardegG%(_tupdegG%,_entrblocksG%&P_HOMG%)_pno_rhsG%0_pforce_
collectG%._pforce_evalaG%)_inv_denG%+_JB_factorG%3_JB_factor_multvarG%(_JB_varG
%*_JB_compaG>82-%5Involutive/proc_varsG6$FhnFis>85&FeuFjn>86&Feu6#Fbp>87&Feu6#"
"'>83&FeuFgs>887#-%$seqG6$-%$catG6$%#_xGFdp/Fdp;FU-%%nopsG6#Ffv>Fju-%%subsG6$7#
-F\w6$/&FfvFip&FivFipFbwFju@$30Fju7"/FOFP>FO7#-%"$G6$FP-Few6#Fju>8(-%4Involutiv
e/proc_ordG6*FOFfvFjuF^v&Feu6#FPFivFav4FL@$&F^yFcy>FavFdx@$/&F]v6#;,&FdwFUFUFU,
&FdwFUFisFU7#-Fix6$""!Fis>F]vFbz>8:-%&parseG6#-F_w6/Q@g->`Involutive/pol_lead_m
on`(g,F$-%(convertG6$Fis%'stringGQ",F$-F][l6$FivF_[lF`[l-F][l6$&F^yFgsF_[lF`[l-
F][l6$FavF_[lF`[l-F][l6$&F^yF^tF_[lF`[l-F][l6$F]vF_[lQ")F$-%9Involutive/setupP_
T_ListG6*-%(collectG6%&FbsFcyFfv%,distributedGFis&FbsFjnFez&F^yF_v&FeuF^tFfv&Fb
sF_v@$4-%)assignedG6#Fct-FE6#%Umissing~involutive~basis;~run~InvolutiveBasis~fi
rst.G@%/&Fct6%FUFdvFUFbz>8;Fbz@%%5Involutive/janetlikeGC%>Fg]lFbz>8)-Few6#&Fct6
%FUFbpFU?&FdpFctF`pC$>8,-%*numboccurG6$&FdpF^t%)infinityG@%/Fe^lF]^l>Fg]l,&Fg]l
FU-%)binomialG6$,(FIFU-F][l6$&Fdp6$FbpFU%"+G!""Fe^lFUFe^lFUC(>8%Fc_l>8$-Fiw6$/F
j^lFbzFi^l>8*7#-Fix6$FbzF]^l>Fg]l,&Fg]lFU-F`_l6$,(FIFUF[`lFh_lFe^lFUFe^lFU>Fb`l
-%8Involutive/nextmonomialG6$Fb`lF]`l?(F$FUFUF$0Fb`lFc`lC$>Fg]l,&Fg]lFU-F`_l6$,
*FIFUF[`lFh_l-F][l6$Fb`lFg_lFh_lFe^lFUFe^lFU>Fb`lF\al>Fg]l-%$addG6$-F`_l6$,(-Fg
^l6$&Fct6$FdpF_tFj^lFUFIFU-F][l6$&Fct6%FdpFbpFUFg_lFh_lFabl/Fdp;FU-FewF^]l@$F[p
-%;Involutive/restoreP_T_ListG6#Fat-%'expandG6#Fg]lF$F$F$F$
M7R0
I:Involutive/autoreduc_headf*6&%"LG%%seqvG%'lmprocG%'ppprocG60%"aG%"cG%"gG%"hG%
"iG%"jG%"qG%"FG%"GG%#lmG%*reductionG%$divG%'n_entrG%*zero_listG6#%jnCopyright~(
C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(>80-%%nopsG6#&9$6%"""F
DFD>817#-%"$G6$""!F=>8,FB>8.%%trueG?(F:FDFDF:FOC%>FO%&falseG>8(FD?(F:FDFDF:1FV-
F?6#FMC*>8&&FM6#FV>8'&Fgn6#FD>8+-%'subsopG6$/FV%%NULLGFM>8/FT>8--9&6#&F[oF]o>8)
FD?(F:FDFDF:30F\pFF1F^p-F?6#F_o@%/-%'divideG6%&&Fho6#""#F\q&F_o6%F^p""'F]q.8*FP
C(>%'_reducG,&FeqFDFDFD@%/%2Involutive/characGFK>F[o-%(collectG6%7$-%'normalG6#
,&-%$mapG6$f*6#F*F:6$%)operatorG%&arrowGF:*&&T#6%T%F`qFDFDFBFDF:F:6&F1F_oF/F^pF
\pFD-Fdr6$f*FgrF:FhrF:*(&F]s6$F]qFDFDF_sFDFBFDF:F:6&F3FhoF0Fbq&F_o6%F^pFDFD!""-
F`r6#,&-Fdr6$f*FgrF:FhrF:F[sF:F:F`s&F[oF\qFD-Fdr6$f*FgrF:FhrF:FdsF:F:Fgs&F_o6%F
^pFDF]qFjs9%%,distributedG>F[o-F\r6%7$-%$modG6$-%'NormalG6#,&-Fdr6$f*FgrF:FhrF:
F[sF:F:F`sF\pFD-Fdr6$f*FgrF:FhrF:FdsF:F:FgsFhsFjsFiq-F^u6$-Fau6#,&-Fdr6$f*FgrF:
FhrF:F[sF:F:F`sFatFD-Fdr6$f*FgrF:FhrF:FdsF:F:FgsFetFjsFiqFgtFht>FOFP>FfoFP>FhoF
io>F^pFD>F^p,&F^pFDFDFD@%FapC%@$/FfoFPC%>8%-9'6%F\pFgt7#FD>F[o7$&FawF]o-Fdr6$f*
FgrF:FhrF:*&&&F]sF\qF]oFDFBFDF:F:6$F+FawFat>&F[qF]o*&&&FawF\qF]oFDFaxFD@%/&FgnF
\q&FhoF]o>FM-Fao6$/FV7*F[oFgxFhx&Fgn6#""%&Fgn6#""&F[q7"-%1Involutive/ecartG6&F[
oFhoFgt%(loc_varGFM>FM-Fao6$/FV7*F[oFgxFhx7#-FI6$FK%&_nvarGFayF[qFdyFeyFM>FV,&F
VFDFDFD>FMF`oFMF:6#FeqF:F:
M7R0
I?Involutive/InvolutiveBasisGINVf*6#%"LG6W%%fextG%"cG%"iG%"jG%"kG%"lG%"rG%"vG%"
zG%'n_entrG%)rhs_entrG%'no_rhsG%"FG%"RG%$varG%(var_ordG%'vt_degG%(deg_ordG%$POT
G%)tup_permG%#GBG%#IBG%&m_ordG%%contG%(do_normG%+time_boundG%#trG%#lmG%)alg_ele
mG%*nocollectG%(rootofsG%+trans_elemG%(algextsG%-algextindetsG%/transextindetsG
%)radicalsG%)entr_posG%%algoG%*quietmodeG%*donotreadG%*nowarningG%+tracedenomG%
(homogenG%+changedegsG%#hfG%+movedboundG%-qlengthboundG%,degreeboundG%1extendba
sis_fextG%*outoftimeG%,whichoutputG%)dolaunchG%&ginv2G6#%jnCopyright~(C)~2000-2
010~by~Daniel~Robertz.~All~rights~reserved.G6"C.@$0%7Involutive/initializedG.%%
trueG-%0Involutive/initGFhn@%-%%typeG6$9$%*nonnegintGC1>89-%:Involutive/readGIN
VresultG6#,&Feo"""F^pF^p>8-&&Fio6#F^pFcp>8.&Fbp6#""#>8/&Fbp6#""$>8%&Fbp6#""%>82
&Fbp6#""&>87&Fbp6#"")>8B&Fbp6#""*>8G&Fbp6#"#5>8<&Fbp6#"#6>88&Fbp6#"#7>8L&Fbp6#"
#8>8=&Fbp6#"#9>8M&Fbp6#"#:>Fio&FioFgpCdo>80-%6Involutive/proc_inputG6#Feo>F`p&F
dtFcp>Fep&FdtFgp>Fjp&FdtF\q>8@&Fdt6#""'>8C&Fdt6#""(>Fdt&FdtFaq@%332Fhp9#-Fco6$&
9"F\q%%listG4-Fco6$Fav-Fcv6#%(integerGC)>FdqFav>81-Fft6#&FbvFgp@$2F^p&F]wFcp-%&
ERRORG6#%Xexpecting~list~of~relations~for~the~residue~class~ring.G@$4&F]wF\q-Fe
w6#%foright~hand~sides~for~relations~of~the~residue~class~ring~are~not~supporte
d.G>F]w&F]wFaq@%/&F]w6$F^pF^p7#""!>F]w7"C$>F]w7#-%$seqG6$-F\y6$7$-%'subsopG6$/8
&&F]w6%8'F^pF^p7#-%"$G6$FexF`p7#-F[z6$FexFep/Fey;F^pF`p/Fhy;F^p-%%nopsG6#F]w>Fd
t7$-%#opG6#Fdt-FjzFfz>8*FbqC&@$2F^vFhp-Few6#%Pexpecting~list~of~variables~as~se
cond~argument.G>FdqF`w>F]wFgx>F^[lF]q>Fdq-%5Involutive/proc_varsG6$FdqF`p>83&Fd
qFgp>84&FdqF\q>85&FdqFaq>Fiq&FdqFfq>8H&FdqFau>Fdq&FdqFcp>%&_nvarG-Fez6#Fdq@$-%$
hasG6$-%$mapG6$f*6#%"aGFhn6$%)operatorG%&arrowGFhn3-Fco6$&FeoFcp-Fcv6#-%(polyno
mG6$%)anythingGT#-Fco6$&FeoFgpFa^lFhnFhn6$F5FdqFdt%&falseG-Few6#-%$catG6%%Oexpe
cting~a~list~of~(lists~of)~polynomials~in~G-%(convertG6$Fdq%'stringG%4~as~first
~argument.G>Fdu-%'removeG6$f*6#F)FhnFj]lFhn-%'memberG6$FeoFg^lFhnFhnF[_lFdu>%(_
nnformGFex>%'_reducGFex>%'_crit1GFex>%'_crit2GFex>%'_crit3GFex>%'_crit4GFex>%&P
_HOMGFgx>8+-Fd_l6$-%+kerneloptsG6#%(versionGFf_l>F_q%2Involutive/characG@%/F]\l
Fgx>8:Fbq>F\bl7#-F[z6$Fbq-Fez6#F]\l>8DFgx>8EFgx>8FFgx>8;F^o>FhrF^o>8$Q!Fhn>8TF^
cl>8IF^cl>FgsFex>8>F\_l>F]sF\_l>8VFgx>8J-%&evalbG6#52Fex-%+searchtextG6$Q&APPLE
FhnF`al/-%*substringG6$-Fd_l6$-%*interfaceG6#.FfalFf_l;F^p"#GQ=Standard~Workshe
et~InterfaceFhn>8KF\_l>FbsF\_l>F\tF\_l>8NF\_l>8OFgx>8QFex>8RFex>8SFex>8AF\_l>8U
F\_l>8PFgx>8WF\_l>8XF\_l?(FeyF^[lF^pF^vF^o@)5-Fco6$&Fbv6#FeyFiv-Fco6$F^glFcv>F\
blF^gl-Fco6$F^glFf_l@1/F^glQ/tracerelationsFhnC$-%(WARNINGG6#Q[ooption~'tracere
lations'~is~not~applicable~with~ginv~up~to~now...Fhn>FeclF^o/F^glQ*donotreadFhn
>FbelF^o/F^glQ&denomFhn>F\tF^o/F^glQ(homogenFhnC(@$-%)assignedG6#%#_hG-Few6#%`u
cannot~use~_h~as~homogenizing~variable,~since~a~value~is~assigned~to~that~symbo
l.~Please~provide~an~unassigned~name~for~the~homogenizing~variable~via~"homogen
"=name.G>FfelF^o>Fdq7$-FjzF_]lF[il>F`\l7%-Fjz6#&F`\l6#;F^pF]]lF^p-Fjz6#&F`\l6#;
,&F]]lF^pF^pF^p!"">F]]lF_jl@$0F]\lFgxC$>F]\l-Fby6$/F`jl7$-Fjz6#&F]\l6#F`jlF[ilF
]\l>Fc\l-Fby6$/F`jl7$-Fjz6#&Fc\lF][mF^pFc\l/F^glQ)noextrasFhnC$>FhclQ)invbasisF
hn>FhrF\_l/F^glQ'launchFhn>FfflF^o/F^glQ&ginv2Fhn>FhflF^oC$>8)F^gl?(FhyF^pF^p-%
'lengthG6#Fd\mF^o@&/&Fd\m6#FhyQ"NFhn>FhrF\_l0F[]mF^cl-Few6#%0invalid~option.G-F
co6$F^gl%)equationG@S/-Fjz6$F^pF^glQ%NameFhnC$@$4-Fco6$-Fjz6$FhpF^glFf_l-Few6#%
Fexpecting~a~string~for~option~"Name".G>F]clF`^m/Fh]mQ,ExtendBasisFhnC$@$F]^m-F
ew6#%Hexpecting~a~string~for~option~"Extend".G>F`clF`^m/Fh]mQ%charFhnC$@$4-Fco6
$F`^mFfo-Few6#%Qexpecting~0~or~a~prime~number~for~option~"char".G>F_qF`^m/Fh]mQ
%timeFhnC$@$Fb_m-Few6#%Sexpecting~time~bound~in~seconds~for~option~"time".G>Fgs
F`^m/Fh]mQ*nowarningFhnC$@$4-Fco6$F`^m%(booleanG-Few6#%Pexpecting~boolean~value
~for~option~"nowarning".G>FbsF`^m/Fh]mQ)GroebnerFhnC$@$Fe`m-Few6#%Oexpecting~bo
olean~value~for~option~"Groebner".G>F]sF`^m/Fh]mQ'algextFhn@%-Fco6$F`^mFcv?&8(F
`^mF^oC&>8,-%&minusG6$-%'indetsG6#F[bm<%-Fjz6#Fhbl-Fjz6#-Fe]l6%Fd_lF_u%%nameG-F
jz6#Ffbl@$50-Fez6#F^bmF^p4-Fco6$F[bm-Fd^l6$Ff^lF^bm-Few6#%`sexpecting~a~univari
ate~polynomial~(possibly~with~rational~coefficients~in~previously~defined~algeb
raic~elements)~for~option~"algext".G@$0-%*intersectG6$F^bm<#Fbil<"-Few6#%_qthe~
univariate~polynomial~for~option~"algext"~may~not~contain~indeterminates~of~the
~polynomial~ring.G@$4-F_`l6$-FjzFccmFfblC$>Fdbl7$-Fjz6#FdblF[bm>Ffbl7$F]cmFjdmC
&>F^bm-F`bm6$-Fcbm6#F`^mFebm@$5Facm4-Fco6$F`^mFgcmFicm@$F]dmFcdm@$FgdmC$>Fdbl7$
F^emF`^m>FfblFaem/Fh]mQ)transextFhn@'-Fco6$F`^m-Fcv6#F\cm?&F[bmF`^mF^o@$4-F_`l6
$F[bm7$-Fjz6#FduFfbm>Fhbl7$FfbmF[bm-Fco6$F`^mF\cm@$4-F_`l6$F`^mF_gm>Fhbl7$FfbmF
`^m-Few6#%Sexpecting~(list~of)~name(s)~for~option~"transext".G/Fh]mQ*algorithmF
hnC$>FbclF`^m@$54-Fco6$FbclFf_l33330FbclQ#TQFhn0FbclQ)TQDegreeFhn0FbclQ*TQGradi
ngFhn0FbclQ,TQBlockHighFhn0FbclQ+TQBlockLowFhn-Few6#%gqexpecting~strings~"TQ"~o
r~"TQDegree"~or~"TQBlockHigh"~or~"TQBlockLow"~or~"TQGrading"~for~option~"algori
thm".G/Fh]mQ&quietFhnC$@$Fe`m-Few6#%Lexpecting~boolean~value~for~option~"quiet"
.G>FjclF`^m/Fh]mQ(collectFhnC$@$Fe`m-Few6#%Nexpecting~boolean~value~for~option~
"collect".G>F`fl4F`^m/Fh]mFbhlC$@$Fe`m-Few6#%Lexpecting~boolean~value~for~optio
n~"denom".G>F\tF`^m/Fh]mQ(contentFhnC$@$Fe`m-Few6#%Nexpecting~boolean~value~for
~option~"content".G>FjblF`^m/Fh]mF_hlC$@$Fe`m-Few6#%Pexpecting~boolean~value~fo
r~option~"donotread".G>FbelF`^m/Fh]mFehlC(@$4Fdgm-Few6#%hnexpecting~name~of~hom
ogenizing~variable~for~option~"homogen".G>FfelF^o>Fdq7$FbilF`^m>F`\lFdil>F]]lF_
jl@$FcjlC$>F]\l-Fby6$/F`jl7$FjjlF`^mF]\l>Fc\lF_[m/Fh]mQ'changeFhnC%@$30F`^mFgx4
-Fco6$F`^m-%)listlistG6#Ffo-Few6#%`oexpecting~list~of~lists~of~degrees~for~vari
ables~for~option~"change".G>FhelF`^m@$30FhelFgx0-Fez6#&FhelFcpF]]l-Few6#%colist
~of~degrees~has~wrong~length~in~right~hand~side~for~option~"change".G/Fh]mQ#HFF
hnC$@$4-Fco6$F`^m-FcvF_^n-Few6#%enexpecting~a~list~of~non-negative~integers~for
~option~"HF".G>FdflF`^m/Fh]mQ+MovedBoundFhnC$@$Fb_m-Few6#%Zexpecting~a~non-nega
tive~integer~for~option~"MovedBound".G>FjelF`^m/Fh]mQ-QlengthBoundFhnC$@$Fb_m-F
ew6#%fnexpecting~a~non-negative~integer~for~option~"QlengthBound".G>F\flF`^m/Fh
]mQ,DegreeBoundFhnC$@$Fb_m-Few6#%enexpecting~a~non-negative~integer~for~option~
"DegreeBound".G>F^flF`^m/Fh]mQ.tailreductionFhnFhn5/Fh]mQ'degreeFhn/Fh]mQ'maxde
gFhnFhn/-Ffdl6$Fh]m;F^pF]qQ$varFhnFhn/-Ffdl6$Fh]m;F^pFbqQ%subsFhnFhnF`]mF`]m@$4
F`fl@%0FhalFex>Fdt-%$modG6$-%(collectG6%FdtFdq%,distributedGFhal>FdtF[cn>Fd\m-%
4Involutive/proc_ordG6*F\blFdqF]\lF`\lFc\lFdqFh\lF^o>86&Fd\mFaq@$Fecn>Fh\lFgx@$
0Fiq7#-F[z6#Faz>Fdt-Fe]l6$f*F]`l6#F*FhnFhn-Fby6$/F^p7#-F\y6$&F`^l6#&Fg^l6#F]cl/
F]cl;F^pT%FeoFhnFhn6&F:FiqF0F`pFdt>%)_inv_denGFgx>F_u-%>Involutive/algebraicext
ensionG6)FdtF_uFdblFfblFduFgxFgx>Fdt&F_uFcp>Fdbl&F_uF\q>Ffbl&F_uFaq>Fcr&F_uFfq>
F^r&F_uFau>Fdu&F_uFfu>F_u&F_uFgp@$0FcrFgxC$>Fdbl-%%subsG6$FcrFdbl>Fdt-Fjfn6$Fcr
Fdt@'Ff^n>Fio-%;Involutive/ginvBasisChangeG6FFdtFdqF_uFduF`pFepFjpF_qF\blF]\lFh
\l7$Fgil-Fjz6#Fhel&F`\l6#;F_jl,&F]]lF^pF`pF^pFdblFfblFhblF]clF`clFbclFgsFeclFjc
lF\_lFjblFbelFbsF\tFjelF\flF^flFhclFiqFhrF^rFcrFdflFfel>Fio-%<Involutive/ginvBa
sisHomogenG6FFdtFdqF_uFduF`pFepFjpF_qF\blF]\lFh\lFgilFggnFdblFfblFhblF]clF`clFb
clFgsFeclFjclF\_lFjblFbelFbsF\tFjelF\flF^flFhclFiqFhrF^rFcrFdfl>Fio-%5Involutiv
e/ginvBasisG6GFdtFdqF_uFduF`pFepFjpF_qF\blF]\lFh\lFgilFggnFdblFfblFhblF]clF`clF
bclFgsFeclFjclF\_lFjblFbelFbsF\tFjelF\flF^flFhclFiqFhrF^rFcrFdflFffl@$5FbelFffl
-%'RETURNG6#-Fjz6#Fio@$332FexFgs-Fihl6#%6_IB_RESULTout_of_timeG/F`in.%%TrueGC$@
$/FioFgx-Ffhn6#Fgx>FbflF^o@$3F\t-Fihl6#%._GINV_inv_denG>FbenF^jn@$F]sC$>Fd\m-%'
selectG6$f*F]`lFhnFj]lFhn/&&&Fg^lFgpFgtFcp&&&&Fg^lF\qFgtFcpFgpFhnFhn6$F<Fio7#-F
[z6#;F^p-Fez6#Fbp>Fio-Fe]l6$f*F]`lFhnFj]lFhn7#-F\y6$&Feo6#&Fg^l6#F_en/F_en;F^p-
Fez6#Fg^lFhnFhn6&F,Fd\mF*FhyFio@%330FbpFdx52F^pFd[o0-Fe]l6$f*F]`lFhnFj]lFhn-Fj_
l6%Fb]lFeoFexFhnFhnFhnFbp7#FgxFhr@%%4Involutive/ratcoeffGC$@$F\t>Fben7$-Fjz6#Fb
en-Fjz6#-Fe]l6$f*F]`lFhnFj]lFhn@$0&F`^lFcpF^pFb^oFhnFhnFhn&FioF\q@%/F_qFex@%3/F
`pF^pFjp>Fio7#-F\y6$-F\cn6%*&&FbpF_glF^p&&&Fc^oF_glFcpFcpF`jlFdqF^cn/FeyFc[o>Fi
o7#-F\y6$-F\cn6%-Fe]l6$f*FbdnFhnFj]lFhn*&FeoF^p&&&F^[oF`\oFcpFcpF`jlFhnFhn6&F<F
ioF)FeyF`_oFdqF^cnFd_o@%Fg^o>Fio7#-F\y6$-Fibn6$F]_oF_qFd_o>Fio7#-F\y6$-Fibn6$-F
\cn6%-Fe]l6$f*FbdnFhnFj]lFhnF^`oFhnFhnFb`oF`_oFdqF^cnF_qFd_o>Fio-%$zipG6%f*6$F)
F*FhnFj]lFhn@%-Fco6$&&9%FcpFcp%'negintG-%'expandG6#,$FeoF`jlFeoFhnFhnFhnFbpFc^o
>FioFbp@$FffnC$>Fio-Fjfn6$-Fe]l6$f*F]`lFhnFj]lFhn/-%$rhsGFgt-%$lhsGFgtFhnFhnFhn
FcrFio>Fben-Fjfn6$-Fe]l6$f*F]`lFhnFj]lFhnF_coFhnFhnFhnFcrFben?(Fey-Fez6#F^rF`jl
F^pF^oC$>Fio-Fjfn6$&F^rF_glFio>Fben-Fjfn6$FadoFben@$FjcnC$>Fiq-Fe]l6$f*F]`lFbdn
FhnFhnC$-F_`l6%FeoFg^l.F]clF]clFhnFhn6$F:FiqF[dn>Fio-Fe]l6$f*F]`lFbdnFhnFhn7$-F
\y6$&FeoFjdnF]en-F\y6$&FeoF\en/F]cl;,&F_enF^pF^pF^p-FezFgtFhnFhnF`enFio@%Fjp@$F
fin@%Fh^o>FioFdx>Fio7#Fiy@%Fh^o@%/FepF^pC%>F^al-Fe]l6$f*F]`lFhnFj]lFhn@$3/F`^lF
ex0&Feo6#,&Fg^lF^pF^pF^pFexFagoFhnFhn6$F0F`pFio>Fio-Fe]l6$f*F]`lFhnFj]lFhn@$0F`
^lFex/F`^lFagoFhnFhnFdgoFio@$Ffin>Fio7#/FexFexC%>F^al-Fe]l6$f*F]`lFhnFj]lFhn@$3
F_go0&Feo6#;Fcgo,&Fg^lF^pF_enF^p7#-F[z6$FexF_enFhhoFhnFhn6&F0F`pF1FepFio>Fio-Fe
]l6$f*F]`lFhnFj]lFhn@$Fjgo/F`^lFhhoFhnFhnF_ioFio@$Ffin>Fio7#/FexF]z@%FgfoC%>F^a
l-Fe]l6$f*F]`lFhnFj]lFhn@$3/&Feo6#;F^pFg^l7#-F[z6$FexFg^lF`goFagoFhnFhnFdgoFio>
Fio-Fe]l6$f*F]`lFhnFj]lFhn@$0FcjoFfjo/FcjoFagoFhnFhnFdgoFio@$Ffin>Fio7#/FiyFexC
%>F^al-Fe]l6$f*F]`lFhnFj]lFhn@$3FbjoFghoFhhoFhnFhnF_ioFio>Fio-Fe]l6$f*F]`lFhnFj
]lFhn@$F^[p/FcjoFhhoFhnFhnF_ioFio@$Ffin>Fio7#/FiyF]z@$4F\t>Fben.Fben@%3F]inFbs7
$Fio4FbflFioFhn6+F]]lFd`lFb`lFf`lFh`lFj`lF\alF^alFbenFhnFhn
M7R0
I7Involutive/GroebnerBasf*6"F$6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~A
ll~rights~reserved.GF$-%;Involutive/InvolutiveBasisG6$9"/Q)GroebnerF$%%trueGF$F
$F$F$
M7R0
I7Involutive/setup_basisf*6$%"BG%"vG61%"FG%,force_evalaG%2tmp_P_T_List_dataG%%v
arsG%(var_ordG%'vt_degG%%seqvG%)entr_posG%$varG%&m_ordG%"iG%"jG%"lG%"TG%'lmproc
G6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C8>8$-%
6Involutive/proc_inputG6#9$>8%&F<6#""&@%4-%)assignedG6#%)P_T_ListG>8&7">FM73FK%
*pnumber_tG%+PolTab_VarG%&_nvarG%&_pvarG%(_vardegG%(_tupdegG%,_entrblocksG%&P_H
OMG%)_pno_rhsG%0_pforce_collectG%._pforce_evalaG%)_inv_denG%+_JB_factorG%3_JB_f
actor_multvarG%(_JB_varG%*_JB_compaG>Fgn.Fgn>Fhn.Fhn>Fin.Fin>Fjn.Fjn>8'-%5Invol
utive/proc_varsG6$9%&F<6#""">8(&Fdo6#""#>8)&Fdo6#""$>8+&Fdo6#""'>8,&FdoFjo>8*7#
-%$seqG6$-%$catG6$%#_xG8./Fhq;F[p-%%nopsG6#F\q>F]p-%%subsG6$7#-Fbq6$/&F\q6#Fhq&
F_qFgrFiqF]p@%/F]pFN>8-""%>F\s7#-%"$G6$F]s-F\r6#F]p?(FhqFepF[p9#%%trueG@'5-%%ty
peG6$&9"Fgr%(integerG-F[t6$F]t%%listG>F\sF]t-F[t6$F]t%'stringGC$>81F]t?(8/F[pF[
p-%'lengthG6#FitFgs@&/&Fit6#F[uQ"SF9>FBFgs0FauQ!F9-%&ERRORG6#%?option~must~be~t
he~string~"S".G-Fhu6#%0invalid~option.G>80-%4Involutive/proc_ordG6*F\sF\qF]pFcp
&Fdo6#F]sF_qFgp4FB@$&F_vFdv>FgpFN@$/&Fbp6#;,&F[rF[pF[pF[p,&F[rF[pFioF[p7#-Fas6$
""!Fio>FbpFcw>82-%&parseG6#-Feq6/Q@g->`Involutive/pol_lead_mon`(g,F9-%(convertG
6$FioFftQ",F9-F^x6$F_qFftF`x-F^x6$&F_vFjoFftF`x-F^x6$FgpFftF`x-F^x6$&F_vFDFftF`
x-F^x6$FbpFftQ")F9-%9Involutive/setupP_T_ListG6*&F<FdvFio&F<F_pFfw&F_vFdp&FdoFD
F\q&F<Fdp6$FMF\qF96&FgnFhnFinFjnF9F9
M7R0
I8Involutive/oneparam_numf*6&%"mG%'lambdaG%"nG%"zG6&%"bG%"cG%"iG%"jG6#%jnCopyri
ght~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"@%-%%typeG6$9$%"+GC
%>8%7#-%'coeffsG6%F59%.8$>F9-%$mapG6%%:Involutive/symmetricrangeGF99&-%$addG6$*
&-FH6$*&&&F96#8&6#8'""")9',&FSFT!""FTFT/FS;FT-%%nopsG6#FOFT&F@FPFT/FQ;FT-Ffn6#F
9C$>F9-FE6$F;FF*&-FH6$*&&F9FRFTFUFT/FSFjnFTF@FTF0F0F0F0
M7R0
I=Involutive/PreImageRelationsf*6%%"FG'%"BG%%listG'%%varsGF(6,%"aG%"bG%"iG%"jG%
"tG%'n_entrG%$varG%#F1G%#F2G%"RG6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.
~All~rights~reserved.G6"C,@$4%4Involutive/ratcoeffG-%&ERRORG6#%5not~implemented
~yet.G@)-%%typeG6$9$%)listlistGC%>8)-%%nopsG6#&FE6#""">8+-%$mapG6$f*6#F,6#F.F8F
8C%>8$FO?(F8FOFOF831FZ-FK6#FE/&FE6#FZ""!>FZ,&FZFOFOFO@%Fgn7$F[oFZ-F>6#%Sexpecti
ng~a~factor~module~basis~as~first~argument.GF8F8F8FE>FQ7#-%$seqG6$-%'selectG6$f
*FVF86$%)operatorG%&arrowGF8/&FE6#""#T#F8F86$F.8&FQ/Fgp;FOFI3-FC6$FE-F(6#%(ratp
olyG4-FC6$FE-F(6#%(polynomGC$>FIFhn>FQ7#-Fho6$-FS6$f*FVF8F8F8@%/-%#opG6$FO-%&nu
merGFin!""7$,$FdrFfrFep7$FdrFepF8F8Ffp-%(convertG6$&FE6#FgpF(Fhp3-FC6$FEF_q4-FC
6$FEFeqC$>FIFO>FQ-FS6$f*FVF8F8F8@%F`rFhrFdrF8F8F8-F[s6$FEF(C$>FIFO>FQFE>8*-%5In
volutive/proc_varsG6$9&FI>8(&-%4Involutive/proc_ordG6*""%&FbtFN&FbtFcp&Fbt6#""$
&Fbt6#F]uF^u&Fbt6#""'%%trueG6#""&>FbtF^u@%/FIFO>FQ-%%sortG6$FQFht>FQ-FS6%F`vFQf
*6$%#t1G%#t2GF8F8F8@'2Fbp&9%Fcp%&falseG2F[wFbpFhu-Fep6$FM&F\wFNF8F86$F0Fht-%:In
volutive/AssertInvBasisG6$F\wFft>8,-%=Involutive/FactorModuleBasisG6#Fft@$45-FC
6$FgwFcq-FC6$FgwFF-F>6#%Kexpected~a~zero-dimensional~factor~module.G@%F]vC&>Fgp
FO?(F8FOFOF81Fgp-FK6#FQ@%-%7Involutive/member_multG6%&FQF^sFgwFbtC%>8',&FgpFOFO
FO?(F8FOFOF81FcyFjx@%4-%$hasG6$*&&FQ6#FcyFOF`yFfrFbt>FQ-%'subsopG6$/Fcy%%NULLGF
Q>Fcy,&FcyFOFOFO>FQ-Faz6$/FgpFdzFQC%>FcyFO?(F8FOFOF83Fix2FcyFgp@%4-Fjy6$*&F`yFO
F]zFfrFbtC$>FQFhz>FcyFO>FcyFfz>FgpFdy>8--%8Involutive/PolInvReduceG6%FQF\wFft7#
-Fho6$&&-%5Involutive/prim_partG6%7#,&F`yFO&F[\lF^sFfrFbt7"FNFN/Fgp;FOFjxC&?(FZ
FOFOFIFhuC$>FgpFO?(F8FOFOF81Fgp-FK6#&FQF\o@%-F^y6%-Faz6$/&&Fe]lF^sFcp&F]^lFN7#-
%"$G6$F]oFIFgwFbtC%>FcyFdy?(F8FOFOF81FcyFc]l@%3/&&Fe]lF^zFcpF\^l4-Fjy6$*&&F[_lF
NFOF^^lFfrFbt>Fe]l-Faz6$FczFe]l>FcyFfz>Fe]l-Faz6$FjzFe]lC%>FcyFO?(F8FOFOF83Fb]l
F_[l@%3/F\^lFj^l4-Fjy6$*&F^^lFOF`_lFfrFbtC$>Fe]lFf_l>FcyFO>FcyFfz>FgpFdy>FQ-FS6
$f*FVF8F^pF8-Faz6$/FbpFM7#-Fa^l6$F]oFepF8F86$F1FI-FS6$FbrFQ>F[\lF\\l7#-Fho6$&-F
e\l6%-%$zipG6%f*6$F,F-F8F^pF8,&FEFOF\wFfrF8F8F8F`yFi\lFbtFj\lFNF[]lF8F8F8F8
M7R0
I8Involutive/PolDirectSumf*6"6#%"LG6#%[oCopyright~(C)~2003-2005~by~Mohamed~Bara
kat.~All~rights~reserved.GF$C$>8$-%#opG6#-%$mapG6$f*6#%"aGF$6$%)operatorG%&arro
wGF$-%5Involutive/jetsmkmatG6#-F06$f*F3F$F5F$&9$6#"""F$F$F$&-%6Involutive/proc_
inputG6#F?6#""%F$F$F$7#9"-%7Involutive/jetsdiagmatG6#F+F$F$F$F$
M7R0
I3Involutive/PolExt1f*6$%$AR1G'%%varsG%%listG6(%"aG%$invG%$AR0G%#R0G%#R1G%$RR1G
6#%^pCopyright~(C)~2000-2010~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~
reserved.G6"C(@%/%6Involutive/matrixtypeG%'MatrixG>8%&%.LinearAlgebraG6#%*Trans
poseG>F9&%'linalgG6#%*transposeG>8(-F?6#-%5Involutive/jetsmkmatG6#-%$mapG6$f*6#
F*F26$%)operatorG%&arrowGF2&9$6#"""F2F2F2&-%6Involutive/proc_inputG6#FS6#""%>8&
-%4Involutive/PolSyzOpG6$FS9%>8'-F96#Fgn>8)-Fin6$F]oF[o@%2""#9#-%8Involutive/Po
lSubFactorG6&FaoFDF[o&9"6#""$-Fio6%FaoFDF[oF2F2F2F2
M7R0
I0Involutive/mdegf*6$%"AG%"cG6'%#m1G%#m2G%"nG%"iG%"jG6#%[oCopyright~(C)~2007-20
10~by~Moritz~Schroeer.~All~rights~reserved.G6"C&>8&-&%.LinearAlgebraG6#%0Column
DimensionG6#9$>8$-%$addG6$-%$maxG6#-%$seqG6$-f*6$%"xG%"yGF/6$%)operatorG%&arrow
GF/@%/F9""!FO-%'degreeG6$F99%F/F/F/6$&F96$8'8(FS/FW;"""F2/FXFZ>8%-F=6$-F@6#-FC6
$-f*FGF/FJF/@%FNFOFPF/F/F/6$&F96$FXFWFSFYFfn-%$minG6$F;FhnF/F/F/F/
M7R0
I4Involutive/coeffseqf*6%%"LG%"zG%"dG6$%"iG%"jG6#%[oCopyright~(C)~2007-2010~by~
Moritz~Schroeer.~All~rights~reserved.G6"7#-%$seqG6$7#-F06$-%&coeffG6%&9$6#8$9%8
%/F;;"""-%%nopsG6#F9/F=;""!,&9&F@!""F@F-F-F-F-
M7R0
I:Involutive/erstenichtnullf*6#'%"LG%%listG6#%"iG6#%[oCopyright~(C)~2007-2010~b
y~Moritz~Schroeer.~All~rights~reserved.G6"?(8$"""F/-%%nopsG6#9$%%trueG@$0&F36#F
.""!-%'RETURNGF8F,F,F,F,
M7R0
I=Involutive/MVMinPolInterpolHf*6,%"AG%"uG'%"nG%'posintG'%'lambdaG%%nameG'%&ogr
adG-%%listG6#%*nonnegintG'%.StuetzstellenG-F06#-F06#%(numericG'%+MinPolListG-F0
6#%(polynomG'%"zGF,'%%degrGF)'%*aenderungG%)listlistG64%"iG%"jG%"mG%"qG%3erster
ungleichnullG%)mpdegreeG%*mpldegreeG%*zuaendernG%1StuetzstellenneuG%/Stuetzstel
lenLG%"PG%0GradDifferenzenG%)SubsListG%+MatrixListG%.MinPolListneuG%)GradListG%
"CG%1zuletztgeaendertG6#%[oCopyright~(C)~2007-2010~by~Moritz~Schroeer.~All~righ
ts~reserved.G6"C1@$45-%%typeG6$9%F0-F[o6$F]oF,-%&ERRORG6#%enExpecting~fourth~ar
gument~to~be~of~type~list~or~type~name.G>8&-&%.LinearAlgebraG6#%-RowDimensionG6
#9$@$2""*9#>8)9,>8--%4Involutive/kartprodG6#7#-%$seqG6$&9)6#8$/F`q;"""9&>80-%$m
apG6$f*6#%"XG6#FGFenFen7#-F[q6$/&T$F_q&F\pF_q/F`q;FcqT&FenFen6&F&F]oF(FdqFep>81
-Fhq6$f*F[rFen6$%)operatorG%&arrowGFen-%%subsG6$F\pFcrFenFen6$F%F\pFfq>829*@$/F
`p"#6?(F`qFcqFcq-%%nopsG6#Fep%%trueG@$/&&FepF_q6#&9-6#Fcq&Fft6#""#>Ffs-%'subsop
G6$/F`q-&Fho6#%2MinimalPolynomialG6$&FjrF_q9+Ffs>83-Fhq6$f*6#%"pGFenF^sFen-%'de
greeGFcsFenFen6$F@FfuFfs@%2F`p"#5>Fbp-%$maxG6#-%#opG6#Fhu>Fbp-Ffv6$FhvFbp>8*-%$
minGFgv>8/-%$zipG6%f*6$%"xG%"yGFenF^sFen,&F\pFcqF]o!""FenFenFen7#-F[q6$Fbp/F`q;
Fcq-F]tFjvFhu@$0-%(convertG6$Fcw%$setG<#""!C(>8(-%:Involutive/erstenichtnullG6#
Fcw>8.-%BInvolutive/findezugehoerigenpunktG6$,&F]yFcqF\xFcq9(>85-&%,RandomTools
G6#%)GenerateG6#-%(integerG6#/%&rangeGFbq>8,F^q?(F`qFcqFcq%)infinityGF_tC$>8'-F
[z6#-Faz6#/Fdz;"(+++"".++++++"@$4-%$hasG6$&Ffz6#FiyF[[lC$>&Fi[l6#,&&FbyFj[lFcqF
cqFcqF[[l[-%'RETURNG6#-F"6,F\pF]oFdq9'FgyFfzFfsFfuFbp7$FiyF[[l>84-%4Involutive/
coeffseqG6%FfsFfuFeo,&)Fg\lFbpFcq-%$addG6$*&-%9Involutive/MVPolInterpolG6&Fdq&F
j\lF_qF^qF]oFcq)Fg\l,&F`qFcqF\xFcqFcq/F`q;FcqFbpFcqFenFenFenFen
M7R0
ICInvolutive/stdinterface_gettmpnamef*6"6'%"iG%"jG%"rG%"PG%"SG6#%jnCopyright~(C
)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.GF$C&>8(-%(convertG6$-%+kern
eloptsG6#%(versionG%'stringG@%5555/-%*substringG6$F/;"""""(Q(Maple~VF$/F>Q(Mapl
e~6F$/F>Q(Maple~7F$/F>Q(Maple~8F$/F>Q(Maple~9F$>8'Q+unknownPIDF$>FN-F16$-F46#%$
pidGF7>F/-%(ssystemG6#Q$envF$@'/F/%%NULLG-%$catG6$%1/tmp/Involutive-GFN0&F/6#FB
""!FhnC%>F/&F/6#""#@%/-F?6$F/;FB""&Q&USER=F$C$>8$FB>8%-%+searchtextG6%Q"|+F$F/;
""'!""C$>F^p-Fbp6$Q'|+USER=F$F/>F`p-Fbp6%FdpF/;,&F^pFBFfpFBFgp@%5/F^pF_o/F`pF_o
FhnC&>F/-F?6$F/;Faq,(F^pFB""%FBF`pFB>8&-FX6#-Fin6$%.test~-d~/tmp/GF/@$0&F^rF^oF
_oC$>F^r-FX6#-Fin6$%,mkdir~/tmp/GF/@$Fer-%&ERRORG6#%Ecannot~write~temporary~fil
e~to~/tmp.G-Fin6(%&/tmp/GF/%-/Involutive-GFN%"-GF/F$F$F$F$
M7R0
ICInvolutive/pdegrevlex_Z_entr_blockf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyrigh
t~(C)~2006-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C)@&2&%,_entrblocksG6
#&9$6#""#&F26#&9%F6-%'RETURNG6#%&falseG2F8F1-F=6#%%trueG>8%-%(convertG6$&F56#""
"%"+G>8&-FG6$&F;FJFL@'2FEFNFA2FNFEF<?(8$-%%nopsG6#FI!""FKFC@&2&FQ6#FV&FIFhnFA2F
inFgnF<@&2-%$absG6#&F;6#""$-F^o6#&F5FaoF<2FcoF]oFA@$2F4F:F<FCF-F-F-F-
M7R0
I@Involutive/pdegrevlex_deg_Z_POTf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCopyrig
ht~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C(@&2&9$6#""#&9%F4-%
'RETURNG6#%&falseG2F6F2-F96#%%trueG>8%-%%nopsG6#&F36#""">8&-%$addG6$*&&FE6#8$FG
&%(_vardegGFOFG/FP;FGFA>8'-FK6$*&&&F7FFFOFGFQFGFS@'2FIFVF=2FVFIF8?(FPFA!""FGF?@
&2FZFNF=2FNFZF8@%2-%$absG6#&F76#""$-Fao6#&F3FdoF;F?F.F.F.F.
M7R0
I@Involutive/pdegrevlex_deg_blockf*6$%"aG%"bG6&%"iG%"nG%$tdaG%$tdbG6#%jnCopyrig
ht~(C)~2004-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'>8%-%%nopsG6#&9$6#
""">8&,&-%$addG6$*&&F56#8$F8&%(_vardegGFAF8/FB;F8F1F8&%(_tupdegG6#&F66#""#F8>8'
,&-F=6$*&&&9%F7FAF8FCF8FEF8&FH6#&FUFKF8@'2F:FN-%'RETURNG6#%%trueG2FNF:-Ffn6#%&f
alseGC%>F:F<>FNFP@'FZFenFinFjn?(FBF1!""F8Fhn@&2FSF@[email protected].
M7R0
I7Involutive/pdeglex_POTf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2004-2
010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@&2&9$6#""#&9%F3-%'RETURNG6#%&f
alseG2F5F1-F86#%%trueG>8%-%(convertG6$&F26#"""%"+G>8&-FB6$&F6FEFG@'2F@FIF<2FIF@
F7?(8$FFFF-%%nopsG6#FDF>@&2&FL6#FQ&FDFXF72FYFWF<F>F-F-F-F-
M7R0
I9Involutive/pdeglex_Z_POTf*6$%"aG%"bG6%%"iG%$tdaG%$tdbG6#%jnCopyright~(C)~2004
-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'@&2&9$6#""#&9%F3-%'RETURNG6#%
&falseG2F5F1-F86#%%trueG>8%-%(convertG6$&F26#"""%"+G>8&-FB6$&F6FEFG@'2F@FIF<2FI
F@F7?(8$FFFF-%%nopsG6#FDF>@&2&FL6#FQ&FDFXF72FYFWF<@%2-%$absG6#&F66#""$-Fhn6#&F2
F[oF:F>F-F-F-F-
M7R0
I8Involutive/pnormal_formf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(loc_varG63%"aG%
"hG%"iG%"kG%"rG%#lmG%$divG%'n_entrG%*zero_listG%.rhs_zero_listG%#lvG%#nlG%#nvG%
"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Rober
tz.~All~rights~reserved.G6"C,>%(_nnformG,&FB"""FDFD>8%9$>8+-%%nopsG6#&FF6#FD@$0
9)7"C'>8.<#-%$seqG6$&9&6#&FQ6#8&/Fin;FD-FK6#FQ>8/-FK6#FU>80-%'removeG6%%$hasGFe
nFU>81FR>FF7#-%=Involutive/cancel_locvar_rhsG6'FM&FF6#""#9'FenFQ>8,7#-%"$G6$""!
FI>8-7#-Fgp6$Fip-FK6#F_p>8(7$FdpF[q>8)-FbpFL?(F?FDFDF?0&Feq6$FapFDFipC(>FinFD>8
*%&falseG@$FP>82,&-%$maxG6#-FX6$-%'degreeG6$&FM6#8'FU/F^s;FDFIFD-%$addG6$&&Feq6
$FDFD6#&FQF]s/F^s;FDF_o!""?(F?FDFDF?31Fin-FK6#9%4F^r@%-%7Involutive/pinv_divide
G6%&Fat6$Fin""$&Fat6$Fin""&&FeqFNC%>%'_reducG,&F`uFDFDFD@%FPC,>83,&-Fer6#-FX6$-
Fjr6$&&Fat6%FinFDFDF]sFUF_sFD-Fbs6$&&Fat6%FinFitFDFgsFisF[t>84Fip>F^s-FK6#Fio?(
F?FDFDF?32FipFeu2FipF^sC$@$331&&FioF]s6#FitFeu/&&&FdwF`pFNF`p&F]uF`p-%:Involuti
ve/conv_divisibleG6$FhwF]uC$>FfvF^s>FeuFcw>F^s,&F^sFDF[tFD@$3F\w0&FbqFNFdp[@$2F
brFeuC$>F^s-9(6%FMFen7$F_p&&FeqF`pFN>Fio7$-%#opGFiv7%7$&F^sFN&&F^sF`pFN7$F]u-%'
subsopG6$/FD&FjyF`pFayFbr@%/FfvFip>FF-%'expandG6#,&*&&Fat6%Fin""'FDFDFFFDFD7$,$
**FiqFD&Feq6$FapFapFD&Fat6%FinF[[lFapF[tF^vFDF[t,$**FiqFDF_[lFDFa[lF[t&Fat6%Fin
FDFapFDF[tFD>FF-Fez6#,&*&&&&&Fio6#FfvF`pF`pFNFDFFFDFD7$,$**FiqFDF_[lFD&F]\lF`pF
[t&&F_\lFNFNFDF[t,$**FiqFDF_[lFDFd\lF[t&Ff\lF`pFDF[tFD>FF-F]y6%FMFenF_p>FFF[p@$
0%2Involutive/characGFip>FF-%$modG6$FFF`]l@%/F`]lFip>FF7$-%'normalG6#,&-%$mapG6
$f*6#F,F?6$%)operatorG%&arrowGF?*&&T$6%T%F[[lFDFDFGFDF?F?6&F&FatF.FinFMFD-F^^l6
$f*Fa^lF?Fb^lF?**&T#FjqFD&F`_lF`[lFD&T&6%T'F[[lFapF[tFGFDF?F?6(F1FeqF&FatF.FinF
^vF[t-Fj]l6#,&-F^^l6$f*Fa^lF?Fb^lF?Fe^lF?F?Fj^lF_pFD-F^^l6$f*Fa^lF?Fb^lF?F^_lF?
F?Ff_lFe[lF[t>FF7$-Fc]l6$-%'NormalG6#,&-F^^l6$f*Fa^lF?Fb^lF?Fe^lF?F?Fj^lFMFD-F^
^l6$f*Fa^lF?Fb^lF?F^_lF?F?Ff_lF^vF[tF`]l-Fc]l6$-Fe`l6#,&-F^^l6$f*Fa^lF?Fb^lF?Fe
^lF?F?Fj^lF_pFD-F^^l6$f*Fa^lF?Fb^lF?F^_lF?F?Ff_lFe[lF[tF`]l>F^r%%trueG>Fin,&Fin
FDFDFD@%Fbt@%Ff]lC$>Fbq7$-F]z6$/&Feq6$FDFap-Fj]l6#,&&Ffx6#FeblFD*&FiqFDF_[lFDFD
Ffx&FbqF`p>FF7$-F]z6$/Febl-Fj]l6#,&&FMF[clFDF\clF[tFMF_pC$>Fbq7$-F]z6$/Febl-Fc]
l6$-Fe`lFhblF`]lFfxF]cl>FF7$-F]z6$/Febl-Fc]l6$-Fe`lFdclF`]lFMF_p@%F_]l>Fbq-Fc]l
6$*&FizFDFbqFDF`]l>FbqF\el>FeqFfq@'3/FfxFdp0F_pF[qC%>F_p&-F]y6%F_pFenFRFN@$3Fbe
l4-%7Involutive/member_multG6%F_p%&P_HOMGFen>F^fl7$-Fey6#F^flF_p7$FfxF[qFael7$F
dpF_pC$@$FP>Ffx-%9Involutive/cancel_locvarG6&FfxFbpFenFQ-F]y6%FfxFenF_pF?6%F^fl
FBF`uF?F?
M7R0
I2Involutive/invredf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmprocG%(loc_v
arG66%"aG%"cG%"hG%#h2G%"iG%"kG%#lmG%"nG%"qG%"rG%$divG%'n_entrG%(termo_hG%*zero_
listG%#lvG%#nlG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~
and~Daniel~Robertz.~All~rights~reserved.G6"C/>8/-%%nopsG6#&9$6#""">817#-%"$G6$"
"!FF>8&FJ@$49&>8'&FK6#""#@$09*7"C&>82<#-%$seqG6$&9(6#&F[o6#8(/Fio;FM-FH6#F[o>83
-FH6#F_o>84F\o@%FY>FV-%9Involutive/cancel_locvarG6&FV9)FeoF[o>6$FVFen-%=Involut
ive/cancel_locvar_rhsG6'FVFenFipFeoF[o>8+-FH6#9%>8-FO>8%7#-FR6$FTF`q>8,FM>8*-Fi
p6#FV?(FCFMFMFC0&F^r6$FhnFMFTC*@$-%)assignedG6#%.PRINTinvredlmG-%&printG6$Q#lmF
C&F^r6$FhnFhn>FioFM>8.%&falseG>80*&FcrFMF_sFM@$Fjn>85,&-%$maxG6#-Fbo6$-%'degree
G6$&FV6#8)F_o/Fft;FMFFFM-%$addG6$&&F^r6$FMFM6#&F[oFet/Fft;FMF_p!""?(FCFMFMFC31F
ioF`q4Fcs@%-%7Involutive/pinv_divideG6%&Fcq6$Fio""$&Fcq6$Fio""&&F^rFLC$@%FjnC+>
86,&-F]t6#-Fbo6$-Fbt6$&&Fcq6%FioFMFMFetF_oFgtFM-Fjt6$&&Fcq6%FioF^vFMF_uFauFcu>8
7FT>FftFM?(FCFMFMFC32FTFgv1Fft-FH6#FcpC$@$332&&FcpFet6#F^vFgv/&&&FfxFgnFLFgn&Fb
vFgn-%:Involutive/conv_divisibleG6$FjxFbvC$>FhwFft>FgvFex>Fft,&FftFMFMFM@$3F\x0
FeqFO[@$2FjsFgv>Fcp7$-%#opGF_x7%7$FVFenF^rFjs@%/FhwFTC$>FV-%'expandG6#,&*&&Fcq6
%Fio""'FMFMFVFMFM*(FfsFM&Fcq6%FioF\[lFhnFcuF`wFMFcu@$FX>Fen-Ffz6#,&*&FjzFMFenFM
FM*(FfsFMF^[lFcu&Fcq6%FioFMFhnFMFcuC$>FV-Ffz6#,&*&&&&&Fcp6#FhwFgnFgnFLFMFVFMFM*
(FfsFM&F`\lFgnFcu&&Fb\lFLFLFMFcu@$FX>Fen-Ffz6#,&*&F_\lFMFenFMFM*(FfsFMFe\lFcu&F
g\lFgnFMFcu@%FY>FVFfp>F[qF\q@$0%2Involutive/characGFTC$>FV-%$modG6$FVFe]l@$FX>F
en-Fi]l6$FenFe]l@%/Fe]lFTC$>FV-%'normalG6#,&-%$mapG6$f*6#F-FC6$%)operatorG%&arr
owGFC*&&T$6%T%F\[lFMFMFKFMFCFC6&F&FcqF1FioFVFM-Fh^l6$f*F[_lFCF\_lFC**&T#FdrFM&F
j_lF`sFM&T&6%T'F\[lFhnFcuFKFMFCFC6(F3F^rF&FcqF1FioF`wFcu@$FX>Fen-Fd^l6#,&-Fh^l6
$f*F[_lFCF\_lFCF__lFCFCFd_lFenFM-Fh^l6$f*F[_lFCF\_lFCFh_lFCFCF``lFg[lFcuC$>FV-F
i]l6$-%'NormalG6#,&-Fh^l6$f*F[_lFCF\_lFCF__lFCFCFd_lFVFM-Fh^l6$f*F[_lFCF\_lFCFh
_lFCFCF``lF`wFcuFe]l@$FX>Fen-Fi]l6$-Faal6#,&-Fh^l6$f*F[_lFCF\_lFCF__lFCFCFd_lFe
nFM-Fh^l6$f*F[_lFCF\_lFCFh_lFCFCF``lFg[lFcuFe]l>Fcs%%trueG>Fio,&FioFMFMFM@%Fgu@
%F`^lC$>Feq-%'subsopG6$/&F^r6$FMFhn-Fd^l6#,&&Feq6#FcclFMFfsFMFeq>FV-F`cl6$/Fccl
-Fd^l6#,&&FVFiclFMFfsFcuFVC$>Feq-F`cl6$/Fccl-Fi]l6$-FaalFfclFe]lFeq>FV-F`cl6$/F
ccl-Fi]l6$-FaalF_dlFe]lFVC%@%F`^l>Feq*&FjzFMFeqFM>Feq-Fi]l6$FdelFe]l>F\r*&FjzFM
F\rFM@$9'@%F`^l>Fgq-F`cl6$/Fio,&&FgqFhoFM*(FcrFMF_sFMF^[lFcuFMFgq>Fgq-Fi]l6$F^f
lFe]l>F^rF_r@$0F\rFMC%@$Fgy@%F`^l>Feq-Fd^l6#*&FeqFMF\rFcu>Feq-Fi]l6$-FaalF_glFe
]l@$FX@%F`^l>Fen-Fd^l6#*&FenFMF\rFcu>Fen-Fi]l6$-FaalFiglFe]l@$F[fl@%F`^l>Fgq-Fd
^l6#*&FgqFMF\rFcu>Fgq-Fi]l6$-FaalFchlFe]l7$7$FeqFenFgqFCFCFCFC
M7R0
I:Involutive/invred_collectf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmproc
G%(loc_varG66%"aG%"cG%"hG%#h2G%"iG%"kG%#lmG%"nG%"qG%"rG%$divG%'n_entrG%(termo_h
G%*zero_listG%#lvG%#nlG%"HG%"eG%#meG%#hiG6#%\pCopyright~(C)~2000-2010~by~Carlos
~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C/>8/-%%nopsG6#&9$6#""">817#
-%"$G6$""!FF>8&FJ@$49&>8'&FK6#""#@$09*7"C&>82<#-%$seqG6$&9(6#&F[o6#8(/Fio;FM-FH
6#F[o>83-FH6#F_o>84F\o@%FY>FV-%9Involutive/cancel_locvarG6&FV9)FeoF[o>6$FVFen-%
=Involutive/cancel_locvar_rhsG6'FVFenFipFeoF[o>8+-FH6#9%>8-FO>8%7#-FR6$FTF`q>8,
FM>8*-Fip6#FV?(FCFMFMFC0&F^r6$FhnFMFTC)>FioFM>8.%&falseG>80*&FcrFM&F^r6$FhnFhnF
M@$Fjn>85,&-%$maxG6#-Fbo6$-%'degreeG6$&FV6#8)F_o/F]t;FMFFFM-%$addG6$&&F^r6$FMFM
6#&F[oF\t/F]t;FMF_p!""?(FCFMFMFC31FioF`q4Fhr@%-%7Involutive/pinv_divideG6%&Fcq6
$Fio""$&Fcq6$Fio""&&F^rFLC$@%FjnC+>86,&-Fds6#-Fbo6$-Fis6$&&Fcq6%FioFMFMF\tF_oF^
tFM-Fat6$&&Fcq6%FioFeuFMFftFhtFjt>87FT>F]tFM?(FCFMFMFC32FTF^v1F]t-FH6#FcpC$@$33
2&&FcpF\t6#FeuF^v/&&&F]xFgnFLFgn&FiuFgn-%:Involutive/conv_divisibleG6$FaxFiuC$>
F_wF]t>F^vF\x>F]t,&F]tFMFMFM@$3Fcw0FeqFO[@$2FasF^v>Fcp7$-%#opGFfw7%7$FVFenF^rFa
s@%/F_wFTC$>FV-%)simplifyG6#,&-%$mapG6$f*6#F-FC6$%)operatorG%&arrowGFC*&&T$6%T%
""'FMFMFKFMFCFC6&F&FcqF1FioFVFM-Faz6$f*FdzFCFezFC*(T#FM&T&6%T'F][lFhnFjtFKFMFCF
C6(F9F[sF&FcqF1FioFgvFjt@$FX>Fen-F]z6#,&-Faz6$f*FdzFCFezFCFhzFCFCF^[lFenFM-Faz6
$f*FdzFCFezFCFb[lFCFCFh[l&Fcq6%FioFMFhnFjtC$>FV-F]z6#,&-Faz6$f*FdzFCFezFC*&&&&&
Fc[l6#F\[lFgnFgnFLFMFKFMFCFC6&F=FcpF@F_wFVFM-Faz6$f*FdzFCFezFC*(Fc[lFM&&&&F\[l6
#Fg[lFgnFgnFgnFjtFKFMFCFC6(F9F[sF=FcpF@F_w&&&Fcp6#F_wFLFLFjt@$FX>Fen-F]z6#,&-Fa
z6$f*FdzFCFezFCF^]lFCFCFd]lFenFM-Faz6$f*FdzFCFezFCFh]lFCFCF^^l&F`^lFgnFjt@%FY>F
VFfp>F[qF\q@$0%2Involutive/characGFTC$>FV-%$modG6$FVFd_l@$FX>Fen-Fh_l6$FenFd_l@
%/Fd_lFTC$>FV-%(collectG6%-%'normalG6#,&-Faz6$f*FdzFCFezFCFhzFCFCF^[lFVFM-Faz6$
f*FdzFCFezFC**&Fc[lFdrFM&Fc[lF^sFMFd[lFjtFKFMFCFC6(F3F^rF&FcqF1FioFgvFjtFeo%,di
stributedG@$FX>Fen-Fc`l6%-Ff`l6#,&-Faz6$f*FdzFCFezFCFhzFCFCF^[lFenFM-Faz6$f*Fdz
FCFezFCF_alFCFCFbalFd\lFjtFeoFcalC$>FV-Fc`l6%-Fh_l6$-%'NormalG6#,&-Faz6$f*FdzFC
FezFCFhzFCFCF^[lFVFM-Faz6$f*FdzFCFezFCF_alFCFCFbalFgvFjtFd_lFeoFcal@$FX>Fen-Fc`
l6%-Fh_l6$-Fhbl6#,&-Faz6$f*FdzFCFezFCFhzFCFCF^[lFenFM-Faz6$f*FdzFCFezFCF_alFCFC
FbalFd\lFjtFd_lFeoFcal>Fhr%%trueG>Fio,&FioFMFMFM@%F^u@%F_`lC$>Feq-%'subsopG6$/&
F^r6$FMFhn-Fc`l6%,&&Feq6#F\elFMF[sFMFeoFcalFeq>FV-Fidl6$/F\el-Fc`l6%,&&FVFbelFM
F[sFjtFeoFcalFVC$>Feq-Fh_l6$FhdlFd_l>FV-Fh_l6$FdelFd_lC%@%F_`l>Feq-Fc`l6%-Ff`l6
#-Faz6$f*FdzFCFezFCFhzFCFCF^[lFeqFeoFcal>Feq-Fc`l6%-Fh_l6$-Fhbl6#-Faz6$f*FdzFCF
ezFCFhzFCFCF^[lFeqFd_lFeoFcal>F\r*&&Fcq6%FioF][lFMFMF\rFM@$9'@%F_`l>Fgq-Fidl6$/
Fio,&&FgqFhoFM*(FcrFMF]sFM&Fcq6%FioF][lFhnFjtFMFgq>Fgq-Fh_l6$F^hlFd_l>F^rF_r@$0
F\rFMC%@$F^y@%F_`l>Feq-Faz6$f*FdzFCFezFC-Ff`l6#*&FKFMFc[lFjtFCFC6$F5F\rFeq>Feq-
Faz6$f*FdzFCFezFC-Fh_l6$-FhblFdilFd_lFCFCFfilFeq@$FX@%F_`l>Fen-Ff`l6#*&FenFMF\r
Fjt>Fen-Fh_l6$-FhblFbjlFd_l@$F[hl@%F_`l>Fgq-Ff`l6#*&FgqFMF\rFjt>Fgq-Fh_l6$-Fhbl
F\[mFd_l7$7$FeqFenFgqFCFCFCFC
M7R0
I4Involutive/invred_Zf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmprocG%(loc
_varG64%"cG%"eG%"hG%#h2G%"iG%"jG%"kG%"lG%#lmG%"nG%"rG%$divG%'n_entrG%(termo_hG%
*zero_listG%#lvG%#nlG%"HG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Dani
el~Robertz.~All~rights~reserved.G6"C,>80-%%nopsG6#&9$6#""">827#-%"$G6$""!FD>8&F
H@$49&>8'&FI6#""#>8--FF6#9%>8.FM>8$7#-FP6$FRFhn>8,-9)6#FT?(FAFKFKFA0&Fdo6$FfnFK
FRC)>8(FK>8/%&falseG>8)&Fdo6$FKFfn>81-%'subsopG6$/Fcp&Fdo6$FfnFfnFM?(FAFKFKFA31
F^pFhn4F`pC$@$-%7Involutive/pinv_divideG6%&F[o6$F^p""$&F[o6$F^p""&&FdoFJC$>8+-%
%iquoG6$Fjo&F[o6%F^p""'FK@$0F`rFRC%>FT-%'expandG6#,&FTFK**F`rFK&Fgp6#FcpFK&F[o6
%F^pFfrFfn!""&F[o6%F^pFKFKFKFds@$FV>FY-F\s6#,&FYFK**F`rFKF`sFKFbsFds&F[o6%F^pFK
FfnFKFds>F`p%%trueG>F^p,&F^pFKFKFK@%FaqC$>F]o-F\s6#,&F]oFK*&FjoFKFgpFKFK>FT-F\s
6#,&FTFKFitFds@$9'C$>F^p,&F^pFKFdsFK>F_o-Fip6$/F^p,&&F_o6#F^pFK*(F`rFKF\qFKFbsF
dsFKF_o>FdoFeo7$7$F]oFYF_oFAFAFAFA
M7R0
I:Involutive/PolInvolReducef*6$%"fG%"BG6D%"aG%"cG%#f1G%#h2G%"iG%"jG%"kG%"lG%"rG
%"sG%"vG%"FG%"TG%%varsG%$varG%'lmprocG%(var_ordG%'vt_degG%(deg_ordG%)tup_permG%
)rhs_entrG%'n_entrG%.return_coeffsG%'no_rhsG%&m_ordG%*zero_listG%%seqvG%.force_
collectG%,force_evalaG%(loc_varG%)entr_posG%+trans_elemG%,given_basisG%2tmp_P_T
_List_dataG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~Al
l~rights~reserved.G6"CE>8.-%*substringG6$-%(convertG6$-%+kerneloptsG6#%(version
G%'stringG;""""")@%32Ffn9#-%%typeG6$9%%%listG@)-F]o6$9$F`o@%2""!-%%nopsG6#F_o@%
333533-F]o6$&F_o6#Ffn%)equationG-F]o6$-%#opG6$FfnFdpF`o2Ffn-Fio6#Fip3-F]o6$FdpF
`o2Ffn-Fio6#Fdp2Fgo-Fio6#Fdo4-F]o6$&FdoFepFfp4-F]o6$F[rF`o>8&7#Fdo>F`rFdoC$@$55
43-%)assignedG6#%)P_T_ListG-F]o6$F\sF`o/F\s7"4-F]o6$&F\sFepF`o-%&ERRORG6#%Umiss
ing~involutive~basis;~run~InvolutiveBasis~first.G@%333FeqFhqF\r2Ffn-Fio6#&&FdsF
epFep>F`rFar>F`rFdo5-F]o6$Fdo%'matrixG330FOQ)Maple~V,FL0FOQ)Maple~6.FL-F]o6$Fdo
%'MatrixG>F`r-FT6$Fdo%)listlistG5-F]o6$Fdo%'vectorG3Fit-F]o6$Fdo%'VectorG>F`r7#
-FTFco>F`rFarC$@$FerFes@)Fbo@%Fjs>F`rFar>F`rFdoFdt>F`rFbuFeu>F`rF^v>F`rFar>8/-%
6Involutive/proc_inputG6#F`r>89&F[wFep>88&F[w6#""#@'331""%F[o-F]o6$&9"6#F[xF`o4
-F]o6$F^x-F`o6#%(integerGC&>8D%%trueG>8E73F\s%*pnumber_tG%+PolTab_VarG%&_nvarG%
&_pvarG%(_vardegG%(_tupdegG%,_entrblocksG%&P_HOMG%)_pno_rhsG%0_pforce_collectG%
._pforce_evalaG%)_inv_denG%+_JB_factorG%3_JB_factor_multvarG%(_JB_varG%*_JB_com
paG>81-%5Involutive/proc_varsG6$F^xF`w>8)""&331""$F[o-F]o6$&F_x6#FizF`o4-F]o6$F
\[lFdxC&>FixFjx>F\yF]y>F_z-Faz6$F\[lF`w>FdzF[xC%>Fix%&falseG>F_zFay>FdzFfw>84&F
_zFew>85&F_zF][l>86&F_zF`x>87&F_z6#Fez>8B&F_z6#""'>82&F_zFep>8>7#-%$seqG6$-%$ca
tG6$%#_xG8(/F\^l;Ffn-Fio6#F`]l>F^\l-%%subsG6$7#-Ff]l6$/&F`]l6#F\^l&Fc]lFj^lF]^l
F^\l@$4%4Involutive/ratcoeffG@&0-%&minusG6$-%'indetsG6#-%$mapG6$f*6#F(FL6$%)ope
ratorG%&arrowGFLF[rFLFLFL&F[wF`x<#-FjpF`^l<"-Ffs6#%cono~parameters~allowed~in~i
nvolutive~basis~computation~over~the~integers.G&F[wFi\l-Ffs6#%apno~algebraic~ex
tensions~are~allowed~in~involutive~basis~computation~over~the~integers.G>8:Fj[l
>8?Fj[l>8@Fj[l@%/F^\lF`s>8<F[x>Fcal7#-%"$G6$F[x-Fio6#F^\l?(F\^lFdzFfnF[oFjx@'5-
F]o6$&F_xFj^lFfx-F]o6$F`blF`o>FcalF`bl-F]o6$F`blFZC$>80F`bl?(8*FfnFfn-%'lengthG
6#FhblFjx@(/&Fhbl6#FjblQ"CFL>F[alFjx/F`clQ"SFL>F_alFjx0F`clQ!FL-Ffs6#%aooptions
~must~be~given~by~a~string~consisting~of~letters~in~|fr"C",~"S"|hr.G-Ffs6#%0inv
alid~option.G@%FixC)>Fhbl-F]wFjo@$0F`w&FhblFep-Ffs6#%Bf~has~wrong~number~of~com
ponents.G>8;&FhblF][l>F_al5F_al&FhblFi\l>8C&Fhbl6#""(@%4&F[wF][lC$@$Fjdl-Ffs6#%
Linvolutive~basis~B~has~no~right~hand~sides.G@$0Fcw&FhblFew-Ffs6#%Pright~hand~s
ide~has~wrong~number~of~components.G>FjdlFjx>F]al5F]al-%&evalbG6#0-Fb_l6$<#-Fjp
6#F`elF``lFb`lC%>FjdlFfy>F]al5F]alFgy>F_al5F_alFhy>8+-%4Involutive/proc_ordG6*F
calF`]lF^\lFa\lFd\lFc]lF[]l4F_al@$&FeglF`x>F[]lF`s>8A&FeglF]]l>F`yF_^l@$/&Fa\l6
#;,&F`yFfnFfnFfn,&F`yFfnF`wFfn7#-Fgal6$FgoF`w>Fa\lFgo>83-%&parseG6#-Fi]l6/Q@g->
`Involutive/pol_lead_mon`(g,FL-FT6$F`wFZQ",FL-FT6$Fc]lFZFfil-FT6$&FeglFepFZFfil
-FT6$F[]lFZFfil-FT6$&FeglFi\lFZFfil-FT6$Fa\lFZQ")FL@$Fix-%9Involutive/setupP_T_
ListG6*-%(collectG6%&FhblF`xF`]l%,distributedGF`wFcwF]il&FeglF][lFg\lF`]lFjdl@$
/&F\s6%FfnF^]lFfnFgoC$@$Fix-%;Involutive/restoreP_T_ListG6#F\y@%F[al@%Fdt-%'RET
URNG6#7$-%%copyGFgq7#Fgo-Fj[m6#7$FdoF_\m@%Fdt-Fj[m6#F]\m-Fj[mFgq>8=Fhhl>F[w-Fij
l6%-Fc^l6$7#-Ff]l6$Fh^l/F\^l;FfnF`yF_`lFc]lF\[m@$0Fg\l7#-Fgal6#;FfnF`wC$>F[w-Fh
_l6$f*6#F,6#F-FLFL-%'subsopG6$/Ffn7#-Ff]l6$&F[r6#&T#6#8$/F\_m;FfnT%FdoFLFL6&F;F
g\lF=F`wF[w>Fg\l-Fh_l6$f*F^^mF_^mFLFLC$-%'memberG6%FdoFj^m.F\_mF\_mFLFL6$F;Fg\l
Fe]m?(FjblFfnFfn-Fio6#F[wFjxC(@'0F^hlF`s>8--%8Involutive/invred_localG6)&F[wFac
lF\sFjdlF[alFc]lF]ilF^hlF^_l@'F_al>Fb`m-%8Involutive/invred_evalaGFe`mF]al>Fb`m
-%:Involutive/invred_collectGFe`m>Fb`m-%2Involutive/invredGFe`m@'F_al@%%2Involu
tive/absremG>Fb`m-%=Involutive/simp_invred_Z_absGFe`m>Fb`m-%@Involutive/simp_in
vred_Z_nonnegGFe`mF]al@%Fcam>Fb`mFeam>Fb`mFham@%Fcam>Fb`m-%8Involutive/invred_Z
_absGFe`m>Fb`m-%;Involutive/invred_Z_nonnegGFe`m>8,-Fc^l6$7#-Ff]l6$/Fh]lFi^lFa]
m&&Fb`mFepFep@$Fd]m>Febm7#-Ff]l6$&Febm6#&Fg\lFj^l/F\^lFh]m@*-F]o6$&F`rFaclFfp@(
-F]o6$-Fjp6$FfnFjcmFhu>Febm-Fhu6#Febm3Fit-F]o6$F^dmF\v@%-F]o6$F^dm&F\v6#%'colum
nG>Febm-FidmFbdm>Febm-&F\v6#%$rowGFbdm4-F]o6$F^dmF`o>Febm-FjpFbdm-F]o6$FjcmFhu>
FebmFadm3Fit-F]o6$FjcmF\v@%-F]o6$FjcmFidm>FebmF]em>FebmF_em4-F]o6$FjcmF`o>FebmF
gem@$34FjdlFhcmC$@%0Fc]lF`]l>8'-Fc^l6$Fhbm&F]cmFew>F^gmFagm@)-F]o6$-Fjp6$FfwFjc
mF`o>Febm/FebmF^gm-F]o6$FfgmFhu>Febm/Febm-Fhu6#F^gm3Fit-F]o6$FfgmF\v@%-F]o6$Ffg
mFidm>Febm/Febm-FidmF_hm>Febm/Febm-F`emF_hm>Febm/Febm-FjpF_hm@%F[alC$>8%-Fh_l6$
f*F[`lFLF\`lFL-Fc^l6$7#-Ff]l6$/-Fi]l6$F[^lF__m&Fj^m6#F__m/F__mFb]mFdoFLFL6&F6F`
]lF,F\^l&Fb`mFew>F[w-Fa^m6$/Fjbl7$FebmFbimF[w>F[w-Fa^m6$/FjblFebmF[w@$FixFd[m@-
Fbo@%345Fiq-F]oFcu-F]o6$F`rFdu-FjpF]`mF[wFfu-FhuF]`mFet-FgtF]`mFht-FT6$F[wF`uFi
u@%-F]o6$FdoFidm-FidmF]`m-F`emF]`mFe[nFL6#F`yFLFL
M7R0
I7Involutive/pcriteria12f*6#'%"qG%%listG6$%"iG%"lG6#%\pCopyright~(C)~2000-2002~
by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C%@$/&9$6#""#&F26#"
"$-%'RETURNG6#%&falseG?(8$"""F>%*pnumber_tG%%trueG@$-%7Involutive/pinv_divideG6
%&%)P_T_ListG6$F=F7&FF6$F=""&F5C%@$/-%%nopsG6#&FF6%F>F>F>F>C$>8%7$,&&F26$F4F>F>
&FF6%F=F4F>F>&F26$F4F4@$-%:Involutive/conv_divisibleG6$FUF5C$>%'_crit1G,&F^oF>F
>F>-F96#F@@$0-%0Involutive/pLCMG6$F1&FF6$F=F4&F56#;F>F4C$>%'_crit2G,&F^pF>F>F>F
`oF8F;F-6$F^oF^pF-F-
M7R0
I9Involutive/pcriteria1234f*6#'%"qG%%listG6(%"iG%"jG%"lG%"dG%#hgG%#hpG6#%jnCopy
right~(C)~2005-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C%@$/&9$6#""#&F66
#""$-%'RETURNG6#%&falseG?(8$"""FB%*pnumber_tG%%trueG@$-%7Involutive/pinv_divide
G6%&%)P_T_ListG6$FAF;&FJ6$FA""&F9C*@$/-%%nopsG6#&FJ6%FBFBFBFBC$>8&7$,&&F66$F8FB
FB&FJ6%FAF8FBFB&F66$F8F8@$-%:Involutive/conv_divisibleG6$FYF9C$>%'_crit1G,&FboF
BFBFB-F=6#FD>FY-%0Involutive/pLCMG6$F5&FJ6$FAF8@$0FY&F96#;FBF8C$>%'_crit2G,&Fcp
FBFBFBFdo>8'-%(convertG6$&FY6#FB%"+G>8%FB?(F1FBFBF131F^qFC2-Fhp6$&FJ6%F^qF;FBF\
qFfpC$@$/&FJ6%F^qF;F8&F66$F;F8C%>8)-Fho6$&FJ6$F^qF;F5>8(-Fho6$FcrFjo@$333-F^o6$
F`rFY0-Fhp6$&F`rF[qF\qFfp-F^o6$FfrFY0-Fhp6$&FfrF[qF\qFfpC$>%'_crit3G,&F[tFBFBFB
Fdo>F^q,&F^qFBFBFB@$0&F66#""(7"C%>Ffp-Fhp6$&F9F[qF\q>F^qFB?(F1FBFBF13Faq4-%6Inv
olutive/pdegrevlexG6$FatFcrC$@$-%;Involutive/nonmult_prolongG6%Fcr&FJ6$F^qFNF9C
$>F`r-Fho6$&FJ6$F^qF8F5@$3-F^o6$F`rF9F_sC$>%'_crit4G,&FdvFBFBFBFdo>F^qF^tF<F?F1
6&FboFcpF[tFdvF1F1
M7R0
I4Involutive/InvBasisf*6#%"LG6jo%"aG%"dG%"gG%"hG%"iG%"jG%"kG%"lG%#lmG%"mG%"FG%"
GG%#GBG%"HG%"QG%#Q2G%"RG%"TG%&ib_gbG%&m_ordG%&B_OrdG%&N_OrdG%&Q_OrdG%'lmprocG%/
default_lmprocG%'N_FormG%*N_Form_lmG%/N_Form_autoredG%'pseudoG%(seq_varG%%varsG
%$varG%(var_ordG%'vt_degG%(deg_ordG%)tup_permG%-inv_tup_permG%.force_collectG%,
force_evalaG%'n_entrG%)rhs_entrG%*zero_listG%(allmultG%.rhs_zero_listG%'no_rhsG
%(do_normG%,no_transferG%%seqvG%(loc_varG%)critprocG%#ppG%#eqG%.last_was_zeroG%
.head_red_percG%+start_timeG%+time_boundG%+trans_elemG%)entr_posG%*pnumber_qG%)
strategyG%/tail_reductionG%'fbasisG%'Q2_valG%(newcritG%,newcrit_addG%+factortim
eG%/lastfactortimeG%,factorTsizeG%*printtimeG%.lastprinttimeG%,forceexpandG%+sa
vecharacG%-saveratcoeffG%*nowarningG%*denomlistG%,commondenomG%#hcG%+nonminimal
G6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~Cid~and~Daniel~Robertz.~All~rights~r
eserved.G6"Cfq>8.-%6Involutive/proc_inputG6#9$>8K&Fdp6#""">8L&Fdp6#""#>8P&Fdp6#
""$>8J&Fdp6#""&>8fn&Fdp6#""(>Fdp&Fdp6#""%@%332Fbq9#-%%typeG6$&9"Ffq%%listG4-F\s
6$F^s-F`s6#%(integerGC)>8CF^s>84-Ffp6#&F_sFaq@$2F]q&F[tF\q-%&ERRORG6#%Xexpectin
g~list~of~relations~for~the~residue~class~ring.G@$4&F[tFfq-Fct6#%foright~hand~s
ides~for~relations~of~the~residue~class~ring~are~not~supported.G>F[t&F[tFdr@%/&
F[t6$F]qF]q7#""!>F[t7"C$>F[t7#-%$seqG6$-Fju6$7$-%'subsopG6$/8(&F[t6%8)F]qF]q7#-
%"$G6$FcuFjp7#-Fiv6$FcuF_q/Fcv;F]qFjp/Ffv;F]q-%%nopsG6#F[t>Fdp7$-%#opG6#Fdp-Fhw
Fdw>FcvFerC&@$2FjrFbq-Fct6#%Pexpecting~list~of~variables~as~second~argument.G>F
isF^t>F[tFeu>FcvFgq>8B-%5Involutive/proc_varsG6$FisFjp>8D&FfxFaq>8E&FfxFfq>8F&F
fxFdr>8G&FfxF[r>8gn&Ffx6#""'>Fis&FfxF\q>%&_nvarG-Fcw6#Fis@%0%2Involutive/charac
GFcu>Fdp-%$modG6$-%(collectG6%FdpFis%,distributedGFcz>FdpFhz@$-%$hasG6$-%$mapG6
$f*6#F'Fap6$%)operatorG%&arrowGFap3-F\s6$&FhpF\q-F`s6#-%(polynomG6$%)anythingGT
#-F\s6$&FhpFaqF]\lFapFap6$FFFisFdp%&falseG-Fct6#-%$catG6%%Oexpecting~a~list~of~
(lists~of)~polynomials~in~G-%(convertG6$Fis%'stringG%4~as~first~argument.G>8I-%
&evalbG6#0-%&minusG6$<#-Fhw6#F^r<#-FhwF`z<">8S7#-Fju6$-F\]l6$%#_xGFfv/Ffv;F]qF^
z>8N7#-Fiv6$%)infinityGF^z>%(_nnformGFcu>%'_reducGFcu>%'_crit1GFcu>%'_crit2GFcu
>%'_crit3GFcu>%'_crit4GFcu>%,_inv_roundsGFcu>8RFcu>F[y-%%subsG6$7#-Fju6$/&Fis6#
Ffv&Fd^lF\alF[_lF[y@$4%4Involutive/ratcoeffG@&0-F[^l6$-%'indetsG6#-Fb[l6$f*Fe[l
FapFf[lFapF\\lFapFapFapFdpF`^lFb^l-Fct6#%cono~parameters~allowed~in~involutive~
basis~computation~over~the~integers.GFiq-Fct6#%apno~algebraic~extensions~are~al
lowed~in~involutive~basis~computation~over~the~integers.G>8<4Fiq>8Q%%trueG@%/F[
yFeu>87Fer>Fjbl7#-Fiv6$Fer-Fcw6#F[y>8enFcu>8boFcu>80Fh\l>8jnFfbl>8inFcu>8Y"$+">
8[oFeu>8]oFh\l>8^oFcu>8_oFcu>8aoFcu>8doFh\l>8goFh\l>8eoFcz>8foF`al>8[pFcu?(FfvF
cvF]qFjrFfbl@)-F\s6$&F_sF\alFb]l@%/FfelQ&denomFapFapC$>8/Ffel?(8*F]qF]q-%'lengt
hG6#F\flFfbl@(/&F\fl6#F^flQ"NFap>FeblFh\l/FdflQ"SFapC$>FiqFfbl>FbblFh\l0FdflQ!F
ap-Fct6#%aooptions~must~be~given~by~a~string~consisting~of~letters~in~|fr"N",~"
S"|hr.G5-F\s6$FfelFfs-F\s6$FfelF`s>FjblFfel-F\s6$Ffel%)equationG@K/-Fhw6$F]qFfe
lQ%charFap@%3-F\s6$-Fhw6$FbqFfelFfs5/FdhlFcu-%(isprimeG6#FdhlC$>FczFdhl@$Fbz>F`
alFfbl-Fct6#%Texpecting~zero~or~a~prime~number~for~option~"char".G/F]hlQ)divisi
onFapC$@$54-F\s6$FdhlF`s30<#-FhwFjhl<#-Fiv6#F\_l0F\jlF`^l-Fct6#%Oexpecting~prio
rity~list~for~option~"division".G@%/F\jlF^jl>%4Involutive/divisionGFdhl>Fhjl-Fb
[l6$f*6#F+6#F-FapFapC$-%'memberG6%FhpFc\l.8$Fd[mFapFapFg\lFdhl/F]hlQ%timeFapC$@
$4-F\s6$Fdhl%*nonnegintG-Fct6#%Sexpecting~time~bound~in~seconds~for~option~"tim
e".G>FbclFdhl/F]hlQ*printtimeFapC$@$Fi[m-Fct6#%Yexpecting~time~period~in~second
s~for~option~"printtime".G>FdclFdhl/F]hlQ(percentFapC$@$4-F\s6$Fdhl%'posintG-Fc
t6#%Sexpecting~a~positive~integer~for~option~"percent".G>F\dlFdhl/F]hlQ&quietFa
pFap/F]hlQ)GroebnerFapC$@$4-F\s6$Fdhl%(booleanG-Fct6#%Oexpecting~boolean~value~
for~option~"Groebner".G>FfclFdhl/F]hlQ'expandFapC%@$/F`alFh\l-Fct6#%gooption~'e
xpand'~is~not~implemented~for~the~case~of~integer~coefficients~yet.G@$F[^m-Fct6
#%Mexpecting~boolean~value~for~option~"expand".G>FidlFdhl/F]hlQ.tailreductionFa
pC$@$F[^m-Fct6#%Texpecting~boolean~value~for~option~"tailreduction".G>FhclFdhl/
F]hlQ*nowarningFapC$@$F[^m-Fct6#%Pexpecting~boolean~value~for~option~"nowarning
".G>F[elFdhl/F]hlFielFap3/F]hlQ*strategyIFap/FdhlFfbl>FjclF]q3/F]hlQ+strategyII
FapFd`m>FjclFbq3/F]hlQ,strategyIIIFapFd`m>FjclFgq/F]hlQ+nonminimalFapC$@$Fi[m-F
ct6#%Xexpecting~non-negative~integer~for~option~"nonminimal".G>FaelFdhl/F]hlQ&b
asisFapC$@$Fgil-Fct6#%Cexpecting~list~for~option~"basis".G>F_dlFdhl3/F]hlQ$neuF
apFd`m>FadlFfbl/F]hlQ(neu_addFapC$@$Fi[m-Fct6#%Texpecting~nonnegative~integer~f
or~option~"neu_add".G>FcdlFdhl/F]hlQ+factortimeFapC$@$Fi[m-Fct6#%Yexpecting~tim
e~bound~in~seconds~for~option~"factortime".G>FedlFdhl/F]hlQ,factorTsizeFapC$@$F
i[m-Fct6#%Xexpecting~nonnegative~integer~for~option~"factorTsize".G>FgdlFdhl-Fc
t6#%0invalid~option.GFjcm>8+-%4Involutive/proc_ordG6*FjblFisF[yF^yFayFd^lFgyFbb
l>89&F^dmFaq>88&F^dmFfq@$&F^dmFdr>FgyFeu>8T&F^dmFiy@)0F\emFeuC%@$F_al-Fct6#Q_oc
ase~of~non-rational~coefficients~not~implemented~in~the~local~case.Fap?(FcvF]qF
]q-FcwFiwFfblC&>8ho-Fb[l6$f*Fe[lFapFf[lFap-%&denomGFgpFapFapFap&Fdp6$FcvF]q>8io
-%$lcmG6#-Fhw6#Fiem@$4-%7Involutive/LocalIsUnitG6%FbfmFisF\em-Fct6#QHfound~a~de
nominator~that~is~not~a~unit.Fap>&Fdp6#Fcv7$-Fb[l6$f*Fe[lFapFf[lFap-%'normalG6#
*&Fc\lF]qFhpF]qFapFap6$F\pFbfmF_fm-Fb[l6$f*Fe[lFapFf[lFapFggmFapFapF[hm&Fdp6$Fc
vFbq@)FiqC'>Fdp-%&evalaGFiw>8=%DInvolutive/pnormal_form_evala_localG>8>%GInvolu
tive/pnormal_form_evala_lm_localG>8?Fhhm@%/FczFcu>8V%:Involutive/simp_prim_part
G>Faimf*6%%"pGFF%"qGFapFapFap7$Fhp9&FapFapFapFe]lC&>Fghm%FInvolutive/pnormal_fo
rm_collect_localG>Fjhm%IInvolutive/pnormal_form_collect_lm_localG>F]imF\jm>Faim
FbimFidlC&>Fghm%EInvolutive/pnormal_form_expand_localG>Fjhm%HInvolutive/pnormal
_form_expand_lm_localG>F]im%EInvolutive/pnormal_form_ecpand_localG>FaimFbimC&>F
ghmF\jm>FjhmF^jm>F]imF\jm>FaimFbimFiqC%>FdpFdhm@%F`alC%>Fghm%>Involutive/pnorma
l_form_evalaG>Fjhm%AInvolutive/pnormal_form_evala_lmG>F]imFc[nC%>Fghm%?Involuti
ve/simp_pnormal_form_ZG>Fjhm%BInvolutive/simp_pnormal_form_Z_lmG@%%2Involutive/
absremG>F]im%CInvolutive/simp_pnormal_form_Z_absG>F]im%FInvolutive/simp_pnormal
_form_Z_nonnegG@%F_im>FaimFbim>Faimf*FeimFapFapFapFhimFapFapFapFe]lC$@%F`alC%>F
ghm%@Involutive/pnormal_form_collectG>Fjhm%CInvolutive/pnormal_form_collect_lmG
>F]imFj\nC%>FghmFi[n>FjhmF[\n@%F]\n>F]imF_\n>F]imFa\n>FaimFbimC$@%F`alC%>Fghm%8
Involutive/pnormal_formG>Fjhm%;Involutive/pnormal_form_lmG>F]imFi]nC%>Fghm%:Inv
olutive/pnormal_form_ZG>Fjhm%=Involutive/pnormal_form_Z_lmG@%F]\n>F]im%>Involut
ive/pnormal_form_Z_absG>F]im%AInvolutive/pnormal_form_Z_nonnegG>Faim%5Involutiv
e/prim_partG@$FidlC$>Fghm%?Involutive/pnormal_form_expandG>Fjhm%BInvolutive/pno
rmal_form_expand_lmG>8Wf*6$F'%"bGFapFapFap-Fg]l6#/&Fhp6#;F]qFbq&9%Fh_nFapFapFap
>8:f*6$%#_aG%#_bG6%F-%#n1G%#n2GFapFap@%/&FhpFfq&F[`nFfq@'30Ff\lFg`n/&F[`nFaqFh`
nFfbl3/Ff\lFg`n0F]anFh`nFh\lC%>8%-%*numboccurG6$&F\\lF\qFcu>8&-Fean6$&&F[`nF\qF
\qFcu@'2FianFcanFfbl2FcanFianFh\l-Fg]l6#2-Fcw6#-%$addG6$&Fgan6#Fd[m/Fd[m;F]qFc\
l-Fcw6#-Fgbn6$&F\bnFjbnF[cn-T%6$FhpF[`nFapFap6&FNFjpF<Fcdm@$F_em>F]`nf*F_`nFb`n
FapFapC%@&2&Fhp6#"")&F[`nF]dn-%'RETURNG6#Ffbl2F_dnF\dn-Fadn6#Fh\l@$Ff`n@'Fj`nF`
dnF^anFddnC%>FcanFdan>FianFjan@'F_bnF`dnF`bnFddnC$FabnO%"%G-Fadn6#FbcnFapFapFec
n@$/&F^y6#;,&F^zF]qF]qF]q,&F^zF]qFjpF]qFgv>F^yFcu>8;-%&parseG6#-F\]l6/Q@g->`Inv
olutive/pol_lead_mon`(g,Fap-F`]l6$FjpFb]lQ",Fap-F`]l6$Fd^lFb]lFcfn-F`]l6$&F^dmF
\qFb]lFcfn-F`]l6$FgyFb]lFcfn-F`]l6$&F^dmF[rFb]lFcfn-F`]l6$F^yFb]lQ")Fap@%0Fdy7#
-Fiv6#F_wC$>Fdp-Fb[l6$f*F][m6#F,FapFap-F`v6$/F]q7#-Fju6$&F\\l6#&Fc\lFjbn/Fd[m;F
]qFccnFhpFapFap6&FJFdyFNFjpFdp>8H-Fb[l6$f*F][mF[hnFapFapC$F`[mFd[mFapFap6$FJFdy
Fcgn>FihnFdy@$0Fd^lFisC%>Fdp-Fb[l6$f*Fe[lFapFf[lFap-Fe`l6$7#-Fju6$/&T'6#Fccn&Fc
\lF_jn/FccnF\_lFhpFapFap6(FVFd^lF,FfvFFFisFdp>F[t-Fb[l6$f*Fe[lFapFf[lFapFginFap
FapFbjnF[t>F_dl-Fb[l6$f*Fe[lFapFf[lFapFginFapFapFbjnF_dl>8MFgv>8O7#-Fiv6$Fcu-Fc
w6#&Fdp6$F]qFbq@+/%3Involutive/invcritGFeu>8Uf*FapFapFapFapFh\lFapFapFap/Fh[o7$
F]qFbq>Fj[o%7Involutive/pcriteria12G/Fh[o7%F]qFbqFgq>Fj[o%8Involutive/pcriteria
123G/Fh[o7&F]qFbqFgqFer>Fj[o%9Involutive/pcriteria1234G-Fct6#%Wundefined~involu
tive~criteria;~see~?InvolutiveOptions.G>%+_JB_factorG.F\]o>%3_JB_factor_multvar
G.F_]o>%(_JB_varG.Fb]o>%*_JB_compaG.Fe]o>%&P_HOMGFeu>%)_inv_denGFeu>8Z-%%timeGF
ap>8`oF\^o>8coF\^o>82Feu>8hnFcu?(FcvF]qF]qFfemFfbl@&53F_im0F_fmF\[o3Fbz0-Ffz6$F
_fmFczF\[oC(@%F_em>Fian7#-%=Involutive/cancel_locvar_rhsG6'F_fmF_hmFjenFd^lF\em
>FianFagm@$F`al>Fian-Faim6%&FianF\qFd^l&FianFaq>Fian7$-Fb[l6$f*Fe[lFapFf[lFap-F
iz6%FhpFc\lF[[lFapFap6$FVFd^lF\`oF]`o>8,-Fjen6#F\`o@%F`al>Fd^o-%:Involutive/pbi
nary_insertG6)7*Fian&Fg`oF\qF`ao7#-Fiv6$FcuF^zF^_l&Fg`oFaqFeu-%1Involutive/ecar
tG6&FianFg`oFd^lF\emFd^oF]qFf^oFf^oF]`nF`_n>Fd^o-F]ao6)7*Fian7$-Fhw6#F`ao&FdaoF
\qF\boFaaoF^_lFdaoFeuFeaoFd^oF]qFf^oFf^oF]`nF`_n>Ff^o-Fcw6#Fd^o53F_im0F_hmF^[o3
Fbz0-Ffz6$F_hmFczF^[o>Fh]o7$-Fhw6#Fh]oF_hm@$/Ff^oFcuC1@%/FjpF]q>F\flFcu>F\flF\[
o@$4Fdq@%/F_qF]q>F\fl/F\flFcu>F\fl/F\flF^[o@$Fain>Fh]o-Fb[l6$f*Fe[lFapFf[lFapFg
inFapFap6(FFFisF+FcvFVFd^lFh]o@$Fhco>Fh]o-Fb[l6$f*Fe[lFapFf[lFap-FhwFgpFapFapFa
pFh]o@%F`al>%)P_T_ListG7#7*7$F\[oF^[o7$FaaoF]qF_eoFaaoF^_l7$FcuF]qFeuFcu>F[eo7#
7*F^eo7%FaaoF]qF]qFdeoFaaoF^_lF`eoFeuFcu>%*pnumber_tGF]q>FczF]el>F`alF_el>%&_pv
arGFfx>%)_pno_rhsGFdq>%0_pforce_collectGFe]l>%._pforce_evalaGFiq>%+PolTab_VarG7
#7%Fcu-%5Involutive/pmult_varG6$F^_lFisFcu>%(_StatssG7*Fd_lFf_lFh_lFj_lF\`lF^`l
F]qFb`l@%32FcuFbclF[el-Fadn6#7$7#F\flFfbl-Fadn6#Fago>F[eo7#&Fd^oF\q>Fd^o-F`v6$/
F]q%%NULLGFd^o>Ff^o,&Ff^oF]q!""F]q>FfeoF]q?(FapF]qF]qFap30Fd^oFeu5/FbclFcu2,&F]
^oF]qF\^oF^hoFbclC7>F``l,&F``lF]qF]qF]q@$-%)assignedG6#%)PRINTnoTG-%&printG6$Q#
#TFap-Fcw6#F[eo@$-F\io6#%)PRINTlmTG?(FcvFcioF^hoF]qFfbl-F`io6#&&F[eoFbgmFfq@$-F
\io6#%,PRINTanclmTG?(FcvFcioF^hoF]qFfbl-F`io6$&F]joFaqF\jo@$-F\io6#%)PRINTlcTG?
(FcvFcioF^hoF]qFfbl-F`io6#&F]joFiy@$-F\io6#%'PRINTTG?(FcvFcioF^hoF]qFfbl-F`io6#
F]jo@$-F\io6#%)PRINTnoQG-F`io6$Q##QFapFabo@$-F\io6#%)PRINTlmQG?(FcvFaboF^hoF]qF
fbl-F`io6#&&Fd^oFbgmFfq@$-F\io6#%,PRINTanclmQG?(FcvFaboF^hoF]qFfbl-F`io6$&Fd\pF
aqFc\p@$-F\io6#%,PRINTdegncQG?(FcvFaboF^hoF]qFfbl-F`io6$-F`]l6$&Fc\pF\q%"+G-Fcw
6#&&Fd\pFiyF\q@$-F\io6#%)PRINTlcQG?(FcvFaboF^hoF]qFfbl-F`io6#F[^p@$-F\io6#%'PRI
NTQG?(FcvFaboF^hoF]qFfbl-F`io6#Fd\p@$33-F\io6#%(PRINTHSG-F\s6$F__pF`]m/-Ffz6$Fc
ioF__pFcu-F`io6#-%<Involutive/PolHilbertSeriesGFap@$32FcuFdcl1Fdcl,&F]^oF]qFb^o
F^hoC%F_ioFe_p>Fb^oF]^o@$532FcuFgdl1FgdlFfeo32FcuFedl2Fedl,&F]^oF]qF`^oF^hoC&>8
17$-Fhw6#-Fb[l6$f*Fe[lFapFf[lFap&&FhpFiyFaqFapFapFapF[eo-Fhw6#-Fb[l6$f*Fe[lFapF
f[lFapFbapFapFapFapFd^o>F[ap-Fe`l6$7#-Fju6$/&Fd^lFbgm&FisFbgm/FcvF\_lF[ap-F`io6
$Q"HFapF[ap>F`^oF]^o>FcvF]q>8--%$maxG6$-%&truncG6#,$*&F\dlF]qFf^oF]q#F]qF]dlF]q
>83Feu@$FbhoC&@$2FcuFjcl@%5/FjblFer/FjblFbq>Fcan-F`]l6$&&FfgoFfqF\qFg]p>FcanFad
p>8XFfbl>8@Fh\l?(FapF]qF]qFap3Fbho53/FjclFcu5Fddp1FcvFibp3Fhcp553Fjcp/F^dpFcan3
30FjblFer0FjblFbq/FadpFcanFddpC'>FianFfgo>Fd^oFhgo>Ff^oF]ho@%33/F\emFeuF`al-Fj[
o6#Fian>FddpFfblC$@'0F_dlFeu>8'-Fghm6(F\`oF[eoFd^lFjenFaimF\em2FjclFbq@%F`al>Fg
fp-FjhmFifp>6$FgfpFfdpF]gp>FgfpFhfp@%0&FgfpF\qF\[oC%>Fg`o-Fjen6#Fcgp@%F_al@%0F\
bo&FianFfqC$@%-F\s6$F_bo%'negintG>Fdcp-F]ao6)7*-%'expandG6#,$FgfpF^ho7$F]bo,$F_
boF^hoFihpFaaoF^_l7$Fjhp&FdaoFaqFeu-Ffao6&FgfpFg`oFd^lF\emFdcpF]q-Fcw6#FdcpF_ip
F]`nF`_n>Fdcp-F]ao6)7*FgfpF\boF\boFaaoF^_lFdaoFeuF]ipFdcpF]qF_ipF_ipF]`nF`_n@$F
fdp>Fdcp-F]ao6)FianFdcpF]qF_ipF_ipF]`nF`_n>FdcpFgip@%0F`aoF[hp>Fdcp-F]ao6)7*Fgf
pF`aoF`aoFaaoF^_lFdaoFeuF]ipFdcpF]qF_ipF_ipF]`nF`_n>FdcpFgip>FddpFh\l>FddpFfbl>
Fcv,&FcvF]qF]qF]q@$0FdcpFeu@%1FbqFjclC'>F[apFdcp@$-F\io6#%)PRINTnoHG-F`io6$Q##H
Fap-Fcw6#F[ap@$-F\io6#%)PRINTlmHG?(FcvFb[qF^hoF]qFfbl-F`io6#&&F[apFbgmFfq?(FcvF
]qF]qFb[qFfblC$>6$F[eoF^fl-%>Involutive/pbinary_insert_posG6)-F`v6%/F\rF^_l/Far
FeuF\\qF[eoF]qFfeoFfeoFcdmF`_n@%2F^flFcioC'?(Ffv,&F^flF]qF]qF]qF]qFcioFfblC$>Fd
^o-F]ao6)&F[eoF\alFd^oF]qFf^oFf^oF]`nF`_n>Ff^oFabo>F[eo&F[eo6#;F]qF^fl>FfeoF^fl
>Fb`l,&Fb`lF]qF]qF]q-%7Involutive/ptransfer_TG6$FjblFcdm>FfeoFcio?&Ffv-%8Involu
tive/pjanet_separG6&Fd^lF\emFjblFcdmFfblC$>Fd^o-F]ao6)FfvFd^oF]qFf^oFf^oF]`nF`_
n>Ff^oFaboC-@$-F\io6#%*PRINTnoQ2G-F`io6$Q$#Q2FapF_ip@$-F\io6#%(PRINTQ2G?(FcvF_i
pF^hoF]qFfbl-F`io6#&FdcpFbgm@$F`_q?(FcvF_ipF^hoF]qFfbl-F`io6#-Fe`l6$7#-Fju6$/F]
alF[alF[_lFf_q@$-F\io6#%*PRINTlmQ2G?(FcvF_ipF^hoF]qFfbl-F`io6#&Ff_qFfq@%3Fefp/F
adlFfblC)>8\o-Fb[l6$f*F][mFapFf[lFap-%@Involutive/count_non_basis_elemG6%FganFc
\lFccnFapFap6&F^oF_dlFVFd^lFdcp>F^fl-%$minG6#-Fhw6#F^aq@%/F^flF]qC$>FfvFcu?(Fcv
F]qF]q-FcwF[bqFfblC$@$3/&F^aqFbgmF]q-%9Involutive/is_janet_elemG6%&&Ff_qF\qF\qF
_dlFd^lC$>FfvFcv[@$31Ffbq,&F^flF]qFcdlF]q/FfvFcu>FfvFcvC$>FfvF]q?(FcvF]qF]qFabq
Ffbl@$FacqC$>FfvFcvF^cq@$-F\io6#%+PRINTvalQ2G-F`io6$Q'val~Q2FapF^aq@$-F\io6#%+P
RINTminQ2G@%-Fhbq6%&&&FdcpF\alF\qF\qF_dlFd^l-F`io6&Q'min~Q2FapFfv&F^aqF\alQ"*Fa
p-F`io6%F^eqFfvF_eq>FianF[eq>Fdcp-F`v6$/FfvF[hoFdcpC$>Fian&FdcpF\q>Fdcp-F`v6$Fj
goFdcp@$-F\io6#%'PRINTgG-F`io6$Q"gFapF\`o@%Fhcl>FgfpFhfp>FgfpF\`o@$-F\io6#%'PRI
NThG-F`io6$Q"hFapFgfp>Fg`oFfgp@$F_al>Fg`o-F`v6$/F]qF\boFg`o@'/FfeoFcuC&>F[eo7#7
*FgfpF]`oF`aoFaaoF^_lFdaoFeuF]ip>Ffeo,&FfeoF]qF]qF]q>Fdcp7$-FhwF`ip-Fhw6#F_^q?&
FfvFdcpFfblC$>Fd^oFd^q>Ff^oFabo/F]`oF`aoC&>F`\q-Fb\q6)7*FgfpF]`oF`ao&FianFdrF^_
lFdaoFeuF]ipF[eoF]qFfeoFfeoFcdmF`_n@%Fi\q@%2FcuFaelC-?(Ffv,(F^flF]qFaelF]qF]qF]
qF]qFcioFfblC$>Fd^oF_]q>Ff^oFabo>85&F[eo6#;F]q-Fhaq6$,&F^flF]qFaelF]qFcio>F[eoF
d]q>FfeoF^flF_^q@$-F\io6#%0PRINTnonminimalG-F`io6$Q+reduce~modFap-Fe`l6$F\bp-Fb
[l6$f*F[hnFapFf[lFapF\\lFapFapFapF[eo?&Ffv&Fgiq6#;F\]q-Fcw6#FgiqFfblC%@$Fajq-F`
io6#-Fe`l6$F\bp&FfvF\q@%F`al>Fgfp-Fjhm6(Fh[rF[eoFd^lFjenFaimF\em-Fct6#%enoption
~'nonminimal'~not~implemented~yet~over~the~integers.G@%FbgpC%>Fg`oFfgp@%0F`ao&F
fvFfqC$@$Fajq-F`io6$Q'new~lmFap-Fe`l6$F\bpFdao>Fd^o-F]ao6)F_jpFd^oF]qFf^oFf^oF]
`nF`_n@$Fajq-F`io6#Q/no~consequenceFap>Ff^oFabo@$Fajq-F`io6#Q0reduces~to~zeroFa
p>F[eoFgiq>FfeoFcio>Fb`lFi]qFj]qC'?(FfvF\]qF]qFcioFfblC$>Fd^oF_]q>Ff^oFabo>F[eo
Fd]q>FfeoF^fl>Fb`lFi]qFj]q>FfeoFcio>FdcpF^hq?&FfvFdcpFfblC$>Fd^oFd^q>Ff^oFaboC&
>F[eo-F]ao6)FjgqF[eoF]qFfeoFfeoFcdmF`_n>FfeoF\hq>FdcpF^hq?&FfvFdcpFfblC$>Fd^oFd
^q>Ff^oFabo@$3F_emFdqC%>8jo-%6Involutive/compute_hcG6&FjenFfdmFd^lF\em>F[eo-%8I
nvolutive/reduce_by_hcG6(F[eoFh_rFjenFfdmFd^lF\em>Fd^o-F^`r6(Fd^oFh_rFjenFfdmFd
^lF\em@$33F]go4F[el1FbclFfho-%(WARNINGG6#%[ocomputation~of~involutive~basis~sto
pped~due~to~time~restriction.G@$32F]qFfeoFhclC&@$3F_alFebl?(FcvF]qF]qFcioFfbl@$
-F\s6$&F[eo6%FcvFjyF]qF`hp@%/&F[eoF`hm&F[eo6$FcvFgq>F[eo-F`v6$/Fcv-F`v6$/F]q-Fb
[l6$f*Fe[lFapFf[lFap-Fb[l6$f*6#F*FapFf[lFap-Ffhp6#,$FhpF^hoFapFapFapFhpFapFapFa
p&F[eoF`fm-F`v6$/Fbq7$-Fhw6#&FjarFh_n,$&FjarFfqF^ho-F`v6$/Fgq7$-Fhw6#&F[brFh_n,
$&F[brFfqF^ho-F`v6$/Fjy7$-Ffhp6#,$FfarF^ho&F[eo6%FcvFjyFbqF]joF[eo>F[eo-F`v6$/F
cv-F`v6$/F]q-Fb[l6$f*Fe[lFapFf[lFap-Fb[l6$f*FjbrFapFf[lFapF[crFapFapFapFhpFapFa
pFapF^crFadrF[eo>F[eo-%9Involutive/autoreductionG6(F[eoF]imFd^lFjenFaimF\em@$3F
[io0FcioFfeo-F`io6#Q/autoreduction!Fap>FfeoFcio@$50Fgy7#FjpF_al>F[eo-%%sortG6$F
[eoFfdm@$Febl@%F`al@%Fbz?(FcvF]qF]qFcioFfblC$@$0-F[^l6$-Ffal6#Ffar<#-%&aliasGFa
pFb^l>Fj]o7$-Fhw6#Fj]oFfar@%Fiq>F[eo-F`v6$/Fcv-F`v6$/F]q-Fb[l6$f*Fe[lFapFf[lFap
-Ffz6$-Fehm6#-%)SimplifyG6#-Fiz6%-Fb[l6$f*FjbrFapFf[lFap*&FhpF]q&F[eo6%Fc\lFjyF
]qF^hoFapFap6$F+FccnFhpFc\lF[[lFczFapFap6&FVFd^lF+FcvF^cr-F`v6$/Fjy7$F]qFhdrF]j
oF[eo>F[eo-F`v6$/Fcv-F`v6$/F]q-Fb[l6$f*Fe[lFapFf[lFap-Fiz6%-Fb[l6$f*FjbrFapFf[l
Fap-Ffz6$-%'NormalG6#FcirFczFapFapFfirFhpFc\lF[[lFapFapFgirF^crFhirF[eo?(FcvF]q
F]qFcioFfblC$@$F`gr>Fj]oFigr@%Fiq>F[eo-F`v6$/Fcv-F`v6$/F]q-Fb[l6$f*Fe[lFapFf[lF
ap-Fehm6#-Fiz6%-Fb[l6$f*FjbrFapFf[lFap-FhgmF_[sFapFapFfirFhpFc\lF[[lFapFapFgirF
^crFhirF[eo>F[eo-F`v6$/Fcv-F`v6$/F]q-Fb[l6$f*Fe[lFapFf[lFap-Fiz6%-Fb[l6$f*FjbrF
apFf[lFapFf\sFapFapFfirFhpFc\lF[[lFapFapFgirF^crFhirF[eo@$4F]ar?(FcvF]qF]qFcioF
fbl@$Fdar@%Fiar>F[eo-F`v6$/Fcv-F`v6$/F]q-Fb[l6$f*Fe[lFapFf[lFap-Fb[l6$f*FjbrFap
Ff[lFapF[crFapFapFapFhpFapFapFapF^crF_crF[eo>F[eo-F`v6$/Fcv-F`v6$/F]q-Fb[l6$f*F
e[lFapFf[lFap-Fb[l6$f*FjbrFapFf[lFapF[crFapFapFapFhpFapFapFapF^crFadrF[eo>FcvF]
q?(FapF]qF]qFap31FcvFfeoFiar>FcvFdjp@%/FcvF\hq>86F]q>F]`sFcu@%3Ffcl/F]`sFcu>F\f
l-Fb[l6$f*Fe[lFapFf[lFap@$F_anF\\lFapFapFapF[eo>F\fl-Fb[l6$f*Fe[lFapFf[lFapF\\l
FapFapFapF[eo>8AF\bp@%FainC$>F\fl-Fb[l6$f*Fe[lFapFf[lFap-Fe`l6$Fc\lFhpFapFap6$F
DF\as-%<Involutive/pairstoequationsG6'F\flFdqFjpF_qFihn>Fh]o-Fb[l6$f*Fe[lFapFf[
lFapFcasFapFapFeasFh]o>F\flFfas@$Fhco>Fh]o-Fb[l6$f*Fe[lFapFf[lFapFhdoFapFapFapF
h]o>FczF]el>F`alF_el>FjeoFfx>F\foFdq>F^foFe]l>F`foFiq>Fifo7*Fd_lFf_lFh_lFj_lF\`
lF^`lF]`sFb`l@%Fbco>Fbfo-%$zipG6%f*6$F+F,FapFf[lFap7$Fhp-Fhw6#F[`nFapFapFap-Fe`
l6$F\as-Fgas6'-Fb[l6$f*Fe[lFapFf[lFapF\\lFapFapFapF[eoFdqFjpF_qFihn-Fb[l6$f*Fe[
lFapFf[lFap7$-Fffo6$&F[eo6$FhpF\rFc\l-Fe`l6$Fccn*&&F[eo6%FhpFjyF]qF]q&F[eo6%Fhp
FjyFbqF]qFapFap6&FFFisFDF\as7#-Fiv6#;F]qFfeo>Fbfo-F^cs6%f*FacsFapFf[lFapFbcsFap
FapFap-Fe`l6$F\as-Fgas6'-Fb[l6$f*Fe[lFapFf[lFapF\\lFapFapFapF[eoFdqFjpF_qFihn-F
b[l6$f*Fe[lFapFf[lFap7$F`ds7$Fdds&F^jn6#&F[eo6%FhpFgqFbqFapFap6(FFFisFDF\asFJFd
yF\es@%F\go7$F\fl-Fg]l6#FehoF\flFap6;F^zFjeoF\foF^foF`foFbfoFh]oFd_lFf_lFh_lFj_
lF\`lF^`lF``lFfeoF[eoFifoFj]oF\]oF_]oFb]oFe]oFczF`alFhjlFapFap
M7R0
I=Involutive/GroebnerBasisFastf*6#%"LG6D%"cG%"iG%"jG%"lG%"rG%"vG%%fileG%&fnameG
%%fextG%'n_entrG%)rhs_entrG%'no_rhsG%"FG%"RG%$varG%&m_ordG%%voffG%(var_ordG%'vt
_degG%(deg_ordG%$POTG%)tup_permG%-inv_tup_permG%#IBG%(do_normG%+time_boundG%)en
tr_posG%*quietmodeG%*donotreadG%+tracedenomG%*nowarningG%*outoftimeG%)dolaunchG
%'std_wsG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~reserved.G6
"Cfp@$0%7Involutive/initializedG.%%trueG-%0Involutive/initGFK>80-%6Involutive/p
roc_inputG6#9$>8-&FU6#""">8.&FU6#""#>8/&FU6#""$@$&FU6#""&-%&ERRORG6#%jnGroebner
BasisFast~cannot~compute~in~algebraic~field~extensions.G>FU-%'expandG6#&FU6#""%
@%332F]o9#-%%typeG6$&9"Fao%%listG4-Fhp6$Fjp-F\q6#%(integerGC)>82Fjp>81-FW6#&F[q
F\o@$2Fhn&FgqFgn-Fho6#%Xexpecting~list~of~relations~for~the~residue~class~ring.
G@$4&FgqFao-Fho6#%foright~hand~sides~for~relations~of~the~residue~class~ring~ar
e~not~supported.G>Fgq-F]p6#&FgqF`p@%/&Fgq6$FhnFhn7#""!>Fgq7">FU7$-%#opG6#FU-%$s
eqG6$-Fis6$7$-%'subsopG6$/8%&Fgq6%8&FhnFhn7#-%"$G6$F`sFen7#-Fht6$F`sFjn/Fbt;Fhn
Fen/Fet;Fhn-%%nopsG6#Fgq>8(FapC&@$2FfpF]o-Fho6#%Pexpecting~list~of~variables~as
~second~argument.G>FeqFjq>FgqFbs>FeuFbo>Feq-%5Involutive/proc_varsG6$FeqFen>85&
FeqF\o>86&FeqFao>87&FeqF`p>89&FeqFeo>8>&Feq6#""'>Feq&FeqFgn>%&_nvarG-Fbu6#Feq@$
0-%&minusG6$-%'indetsGFgs<#-FfsFiw<"-Fho6#%Lno~parameters~allowed~in~GroebnerBa
sisFast.G>8$%2Involutive/characG@%/FdvFbs>83Fap>F]y7#-Fht6$Fap-Fbu6#Fdv>8<FQ>8,
Q!FK>8=F`s>8)-%(convertG6$-%+kerneloptsG6#%(versionG%'stringG>8?-%&evalbG6#552F
`s-%+searchtextG6$Q&APPLEFKF\z/-%*substringG6$-F^z6$-%*interfaceG6#.FczFdz;Fhn"
#GQ=Standard~Worksheet~InterfaceFK/%5Involutive/InvoBasisG%>Involutive/InvBasis
FastAssertG>84FQ>8@%&falseG>8AFe\l>8BFe\l>8CFe\l>8DFe\l?(FbtFeuFhnFfpFQ@)5-Fhp6
$&F[q6#FbtFbq-Fhp6$Fc]lF\q>F]yFc]l-Fhp6$Fc]lFdz@)/Fc]lQ*donotreadFK>Fd\lFQ/Fc]l
Q&denomFK>Fg\lFQ/Fc]lQ'launchFK>F]]lFQC$>8'Fc]l?(FetFhnFhn-%'lengthG6#Ff^lFQ@&/
&Ff^l6#FetQ"NFK>FeyFe\l0F]_lFhy-Fho6#%0invalid~option.G-Fhp6$Fc]l%)equationG@7/
-Ffs6$FhnFc]lQ%NameFKC$@$4-Fhp6$-Ffs6$F]oFc]lFdz-Fho6#%Fexpecting~a~string~for~
option~"Name".G>FgyFb`l/Fj_lQ%charFKC$@$4-Fhp6$Fb`l%*nonnegintG-Fho6#%Qexpectin
g~0~or~a~prime~number~for~option~"char".G>FhxFb`l/Fj_lQ%timeFKC$@$F\al-Fho6#%Se
xpecting~time~bound~in~seconds~for~option~"time".G>FjyFb`l/Fj_lQ)GroebnerFKFK/F
j_lQ.tailreductionFKFK/Fj_lQ(verboseFK@'/Fb`lQ#onFK>Fb\lFe\l/Fb`lQ$offFK>Fb\lFQ
-Fho6#%?expecting~string~"on"~or~"off"G/Fj_lF\^lC$@$4-Fhp6$Fb`l%(booleanG-Fho6#
%Pexpecting~boolean~value~for~option~"donotread".G>Fd\lFb`l/Fj_lF_^lC$@$F_cl-Fh
o6#%Lexpecting~boolean~value~for~option~"denom".G>Fg\lFb`l/Fj_lQ*nowarningFKC$@
$F_cl-Fho6#%Pexpecting~boolean~value~for~option~"nowarning".G>Fi\lFb`l/Fj_lQ&qu
ietFKC$@$F_cl-Fho6#%Lexpecting~boolean~value~for~option~"quiet".G>FfzFb`lFb_lFb
_l@$5530F]yF]o0F]yFap2Fhn-Fbu6#F`w3/FeelFhn0&F`wFgnFen-%'RETURNG6#-%7Involutive
/GroebnerBasG6#F[q@$0FdvFbs-Fho6#%inUp~to~now,~only~degrevlex~is~implemented~in
~GroebnerBasisFast.G>Ff^l-%4Involutive/proc_ordG6*F]yFeqFdvFgvFjvFeqF`wFQ>88&Ff
^lF`p@%0F]w7#-Fht6#F^uC$>8:-%$mapG6$f*6#F(6#F)FKFKC$-%'memberG6%FYT#.FhxFhxFKFK
6$F<F]wF_gl>FU-Ffgl6$f*FiglFjglFKFK-F_t6$/Fhn7#-Fis6$&&FYFgn6#&F_hl6#Fhx/Fhx;Fh
nT%FYFKFK6&F<F]wF0FenFU>FdglF]w>%)_inv_denGFbs>%&P_HOMGFbs@$0FgqFbsC$-%7Involut
ive/cppInvBasisG65FgqFeqFhnFQFhxFe\l&Fgv6#;FhnFgwF_sF_glQ'__ringFKF`sFe\lFQFQFe
\lFe\lQHinvbasis,invbasislm,invbasisanc,multvarFKFi\lFe\l@$3-%)assignedG6#%6_IB
_RESULTout_of_timeGFjjl>F[]lFQ@'2F`s-F^[l6$Q&linuxFKF\zC$@%/-Faz6#%)wordsizeG"#
k@$2"+[O[Z@Fhx-Fho6#%?characteristic~must~be~<~2^31.G@$2"&oF$Fhx-Fho6#%?charact
eristic~must~be~<~2^15.G@%Fa[lC$>8+-%CInvolutive/stdinterface_gettmpnameGFK>8EF
QC&@$4-%;Involutive/ssystem_booleanG6#%3test~-d~/tmp/$USERGC$>Feu-%(ssystemG6#%
1mkdir~/tmp/$USERG@$0&FeuF\oFhy-Fho6#%Ecannot~write~temporary~file~to~/tmp.G>Fg
\m-Ff]m6#%Gecho~/tmp/$USER/Involutive-$PPID-$USERG@%2F`s-F^[l6$Q"$FK&Fg\mF\o>Fg
\mQ0/tmp/InvolutiveFK>Fg\m-%=Involutive/remove_whitespaceG6#Fh^m>F[]mFe\lF\[lC%
@$F_\mFa\m>Fg\mFh\m>F[]mFQC%@$F_\mFa\m>Fg\mQ1\TEMP\InvolutiveFK>F[]mFe\l@$F]]lC
&>FeuF]z@$5550-Fc[l6$Feu;Fhn""(Q(Maple~1FK/-Fc[l6$Feu;Fhn"")Q)Maple~10FK/Fg`mQ)
Maple~11FK/Fg`mQ)Maple~12FK-Fho6#%Scan~only~'launch'~JB~in~Maple~version~13~or~
newer.G>Fg\m-%$catG6%Fg\mQ(-launchFK-F^z6$%9Involutive/launchJBcountGFdz>Fjam,&
FjamFhnFhnFhn>Fg\m-Feam6$Fg\mFgy>8*-%&fopenG6$Fg\m%&WRITEG-%(fprintfG6$FabmQ@Co
mputation~of~involutive~basisFK@$52FhnFen4F_o-Fgbm6$FabmQ,~for~moduleFK-Fgbm6$F
abmQ-;|+variables~FK?(FbtFhnFhn,&FgwFhn!""FhnFQC$-Fgbm6$Fabm-F^z6$&FeqFd]lFdz-F
gbm6$FabmQ$~>~FK-Fgbm6$Fabm-F^z6$&Feq6#FgwFdz-Fgbm6$FabmQ#;|+FK@$0F`jl7#-Fht6$F
hnFgwC&-Fgbm6$FabmQ2variable~degrees~FK?(FbtFhnFhnFecmFQC$-Fgbm6$Fabm-F^z6$&Fgv
Fd]lFdz-Fgbm6$FabmQ#,~FK-Fgbm6$Fabm-F^z6$&FgvFedmFdzFfdm@$0&Fgv6#;,&FgwFhnFhnFh
n,&FgwFhnFenFhnFftC&-Fgbm6$FabmQ/tuple~degrees~FK?(FbtFhnFhn,&FenFhnFfcmFhnFQC$
-Fgbm6$Fabm-F^z6$&Fgv6#,&FgwFhnFbtFhnFdzFiem-Fgbm6$Fabm-F^z6$&Fgv6#FgfmFdzFfdm-
Fgbm6$FabmQ'order~FK-Fgbm6$FabmQ,deg_rev_lexFK@$F]cmC$-Fgbm6$FabmQ';|+rhs~FK-Fg
bm6$Fabm-F^z6$,&FenFhnFhnFhnFdz-Fgbm6$FabmQ1;|+division~JanetFK@'0FhxF`sC%-Fgbm
6$FabmQ*;|+over~Z[FK-Fgbm6$Fabm-F^z6$FhxFdz-Fgbm6$FabmQ"]FK%4Involutive/ratcoef
fG-Fgbm6$FabmQ);|+over~QFKC$-Fgbm6$FabmQ2;|+over~Z;|+absrem~FK@%%2Involutive/ab
sremG-Fgbm6$FabmQ%trueFK-Fgbm6$FabmQ&falseFK-Fgbm6$FabmQ';|+POT~FK@%F[glFfjmFij
m@$F]cm-Fgbm6$FabmQ5;|+compatibility~trueFK@(/-%'removeG6%%$hasG%3Involutive/in
vcritG7$FboFapFbs-Fgbm6$FabmQ0;|+criteria~noneFK/Ff[n7#Fhn-Fgbm6$FabmQ-;|+crite
ria~1FK/Ff[n7#F]o-Fgbm6$FabmQ-;|+criteria~2FK-Fgbm6$FabmQ?;|+output~compatibili
ty,gb,gblmFK@$Fg\l-Fgbm6$FabmQ5;|+trace~denominatorsFK@$2F`sFjyC$-Fgbm6$FabmQ+;
|+seconds~FK-Fgbm6$Fabm-F^z6$FjyFdz-Fgbm6$FabmQ+;|+expandedFK@$5FfzFb\l-Fgbm6$F
abmQ.;|+verbose~offFK-Fgbm6$FabmQ+;|+|+begin|+|+FK?(FbtFhnFhn-FbuFgsFQC$@%F_o@%
/FenFhn-Fgbm6$Fabm-F^z6$-Ffs6#&FU6$FbtFhnFdz-Fgbm6$Fabm-F^z6$Fa_nFdz-Fgbm6$Fabm
-F^z6$-Ffgl6$Ffs&FUFd]lFdz-Fgbm6$FabmQ$;|+|+FK-Fgbm6$FabmQ(end;|+|+|+FK-%'fclos
eG6#Fabm@%F]]l-F\fl6#7$,&FjamFhnFfcmFhn-&%'systemG6#%'launchG6$Q#JBFK-Feam6$Fg\
mQ,~_IB_RESULTFKC$@%Ffz@%F[]mC%>Feu-Ff]m6#-Feam6%Q'runJB~FKFg\mFean@$/Feu%%NULL
G-Fho6#%?could~not~run~program~'runJB'.G>Feu&FeuFgnC$>Feu-Ff]m6#-Feam6%Q$JB~FKF
g\mQ8~_IB_RESULT~>~/dev/nullFK@%3/FgbnF`s/F[^mFhy>FeuF`s>FeuFhnC$>Feu-F^an6#-Fe
am6%F^cnFg\mFean@$Fabn-Fho6#%<could~not~run~program~'JB'.G@$0FeuF`s-Fho6#%bppro
gram~'JB'~not~found~or~interrupted~(e.g.~by~the~user~or~because~of~memory~short
age).G@$2F`s-F^[l6$F`[mF`zC%>Feu-Ff]m6#-Feam6'Q&if~[~FKFg\mQ).GB~-ot~FKFg\mQ:~]
;~then~echo~-n~true;~fiFK@$2F`s-Fi^l6#F[^m-Fho6#%dpoutput~file~of~'JB'~is~older
~than~input~file~(probably,~program~'JB'~stopped~abnormally).G@$4Fd\lC$>Feu-Ff]
m6#-Feam6%Q*filesize~FKFg\mQ$.GBFK@$30FeuFbbnFbcnC$>Fbt-%'sscanfG6$F[^mQ#%dFK@$
334Fi\l2F`s-FbuFd]l2"'++I&FbtFgn-%(WARNINGG6#Qjnresulting~Groebner~basis~is~big
;~reading~it~may~take~a~while...FK>%(_nnformGF`s>%'_reducGF`s>%'_crit1GF`s>%'_c
rit2GF`s>%'_crit3GF`s>%'_crit4GF`s@$Fd\l-F\flFKA-Feam6$Fg\mFbfn@$43-Fhjl6#%+_IB
_RESULTG-Fhjl6#%-_IB_RESULTlmG-Fho6#%Cerror~in~computation~or~interface.G@$33F_
gnFgjlFjjl-Ffgn6#%incomputation~of~Groebner~basis~stopped~due~to~time~restricti
on.G@$Ffjl>F[]lFQ@$-Fhjl6#%0_IB_RESULTcompaG>%*_JB_compaG-Ffgl6$f*FiglFK6$%)ope
ratorG%&arrowGFK&FY6#;,&F_hlFhnFhnFhnFfcmFKFK6$F0FenFajn@$Fg\lC%A-Feam6$Fg\mQ'.
denomFK@$4-Fhjl6#%0_IB_RESULTdenomGFcin>FgilFi[o@%330F_inF_s52Fhn-FbuF^in0-Ffgl
6$f*FiglFKFgjnFK-Fg[n6%Fi[nFYF`sFKFKFKF_in7#FbsFey@%F\jmC$@$Fg\l>Fgil7$-Ffs6#Fg
il-Ffs6#-Ffgl6$f*FiglFKFgjnFK@$0&F]ilFgnFhnFg]oFKFKFKFbin@%/FhxF`s>8;7#-Fis6$-F
]p6#*&&F_in6#,&Fa\oFhnFbtFfcmFhn&&&FbinFc^oFgnFgnFfcm/Fbt;F`s,&Fa\oFhnFfcmFhn>F
[^o7#-Fis6$-F]p6#*&-%$modG6$*$Fe^oFfcmFhxFhnFb^oFhnFh^o>F[^o-%$zipG6%f*6$F(F)FK
FgjnFK@%-Fhp6$&&9%FgnFgn%'negintG-F]p6#,$FYFfcmFYFKFKFK7#-Fis6$Fb^oFh^o7#-Fis6$
&Fbin6#,&-FbuFainFhnFbtFfcm/Fbt;F`s,&F_aoFhnFfcmFhn>F[^oFf`o@$F^gl>F[^o-Ffgl6$f
*FiglFjglFKFK7$-Fis6$&FYF^ilFail-Fis6$&FYF`il/Fhx;,&FcilFhnFhnFhn-FbuFXFKFK6&F=
FdglF0FenF[^o@$F]cm@%Fj^n@%/FjnFhnC&@%/FgqFbs>FU-Ffgl6$f*FiglFKFgjnFK@%/F]ilF`s
@%0&FY6#F][oF`sFhnF`sFfcmFKFKF^[oF[^o>FU-Ffgl6$f*FiglFKFgjnFK@%Fcco@%5Faco/-%8I
nvolutive/cppInvReduceG6%7#F]ilFcjlFQF_sFhnFfcm@%FacoF`sFfcmFKFKF^[oF[^o>Fiil-F
fgl6$f*FiglFKFgjnFK@$/&F_hlFXFhn&&FcilFX6#,&T'FhnFhnFhnFKFK6(F3FUF>F[^oF0Fen7#-
Fht6#;FhnFf^n>F[^o-Ffgl6$f*FiglFKFgjnFK@$/FidoFfcm/&F[eoFgnFjdoFKFKF_eoF`eo@$/F
[^oFbs>F[^o7#/F`sF`sC&@%F[co>FU-Ffgl6$f*FiglFKFgjnFK@%Faco@%0&FY6#;F][o,&F_hlFh
nFcilFhn7#-Fht6$F`sFcilFhnF`sFfcmFKFK6&F0FenF1FjnF[^o>FU-Ffgl6$f*FiglFKFgjnFK@%
Fifo@%F\doFhnFfcm@%FacoF`sFfcmFKFKFagoF[^o>Fiil-Ffgl6$f*FiglFKFgjnFK@$Fhdo&F[eo
6#;F]eo,&F^eoFhnT)FhnFKFK6*F3FUF>F[^oF0FenF1FjnF`eo>F[^o-Ffgl6$f*FiglFKFgjnFK@$
Fieo/F[foF^hoFKFKFchoF`eo@$F]fo>F[^o7#/F`sFjt@%FhboC&@%F[co>FU-Ffgl6$f*FiglFKFg
jnFK@%/&FY6#;FhnF_hl7#-Fht6$F`sF_hl@%FccoFhnF`sFfcmFKFKF^[oF[^o>FU-Ffgl6$f*Figl
FKFgjnFK@%Fcco@%5Ffio3/-%*numboccurG6$FgioF`s,&F_hlFhnFfcmFhn/-F_do6%7#-Ffs6#-F
]x6$<#-Ffs6#Fgio<#F`sFcjlFQF_sFhnFfcm@%FfioF`sFfcmFKFKF^[oF[^o>Fiil-Ffgl6$f*Fig
lFKFgjnFK@$FhdoFjdoFKFKF_eoF`eo>F[^o-Ffgl6$f*FiglFKFgjnFK@$Fieo/&F[eo6#;FhnF^eo
FjdoFKFKF_eoF`eo@$F]fo>F[^o7#/FftF`sC&@%F[co>FU-Ffgl6$f*FiglFKFgjnFK@%Ffio@%Fif
oFhnF`sFfcmFKFKFagoF[^o>FU-Ffgl6$f*FiglFKFgjnFK@%Fifo@%FdjoFhnFfcm@%FfioF`sFfcm
FKFKFagoF[^o>Fiil-Ffgl6$f*FiglFKFgjnFK@$FhdoF^hoFKFKFchoF`eo>F[^o-Ffgl6$f*FiglF
KFgjnFK@$Fieo/Fc\pF^hoFKFKFchoF`eo@$F]fo>F[^o7#/FftFjt@$-Fhjl6#Fcjn@%Fhbo>Fiil7
$-Ffs6#Fiil-Ffs6#-Ffgl6$FfsFcjn>Fiil7$F^_p-FfsFj^p@$4Fg\l>Fgil.Fgil@%3Fa]nFi\l7
$F[^o4F[]lF[^oFK6-FgwFjgnF\hnF^hnF`hnFbhnFdhnFiilFgilFcjnFjamFKFK
M7R0
I4Involutive/Syzygiesf*6#%"LG6E%"aG%"iG%"jG%"lG%'n_entrG%)rhs_entrG%"FG%"QG%$va
rG%%varsG%(var_ordG%'vt_degG%*tmp_P_HOMG%/default_lmprocG%'lmprocG%'N_FormG%&B_
OrdG%&N_OrdG%&n_ordG%&m_ordG%(deg_ordG%)tup_permG%*zero_listG%.rhs_zero_listG%.
force_collectG%,force_evalaG%(loc_varG%%seqvG%+trans_elemG%#ppG%*old_P_HOMG%-ol
d_P_T_ListG%)entr_posG%*denomlistG%,commondenomG6#%jnCopyright~(C)~2000-2010~by
~Daniel~Robertz.~All~rights~reserved.G6"Chn@$43-%)assignedG6#%&P_HOMG-FR6#%)P_T
_ListG-%&ERRORG6#%Umissing~involutive~basis;~run~InvolutiveBasis~first.G>8*-%6I
nvolutive/proc_inputG6#9$>8(&Fgn6#""">8)&Fgn6#""#@$&Fgn6#""$-FY6#%Cexpecting~L~
with~right~hand~sides.G@$50F]o-%%nopsG6#&FW6%F`oF`oF`o0Fbo-Fap6#&FW6%F`oF`oFeo-
FY6#%jninput~is~not~a~generating~set~for~the~current~involutive~basis.G>8=&Fgn6
#""&>8@&Fgn6#""(>Fgn&Fgn6#""%@$29#Feo-FY6#%Pexpecting~list~of~variables~as~seco
nd~argument.G>8-&9"Fdo>8%Fio>8,-%5Involutive/proc_varsG6$FbrF]o>8.&FhrFdo>8/&Fh
rFho>88&FhrFiq>89&FhrF`q>8D&Fhr6#""'>Fhr&FhrF_o>%&_nvarG-Fap6#Fhr>8?7#-%$seqG6$
-%$catG6$%#_xG8&/F]u;F`oF`t>F]s-%%subsG6$7#-Fgt6$/&Fhr6#F]u&FdtFiuF^uF]s@%0%2In
volutive/characG""!>Fgn-%$modG6$-%(collectG6%FgnFhr%,distributedGF]v>FgnFcv>8<-
%&evalbG6#0-%&minusG6$<#-%#opG6#Fcq<#-FcwFbt<">%)_inv_denG7">814F^q@%/F]sFjw>87
Fjq>Fax7#-%"$G6$Fjq-Fap6#F]s?(F]uFfrF`oF]r%%trueG@'5-%%typeG6$&FdrFiu%(integerG
-F^y6$F`y%%listG>FaxF`y-F^y6$F`y%'stringG@&/F`yQ"SFLC$>F^qFjx>F\x%&falseG0F`yQ!
FL-FY6#%0invalid~option.GFbz>8'-%4Involutive/proc_ordG6*FaxFhrF]sF`sFcsFdtFisF\
x>85&FfzFdo>84&FfzFho@$&FfzFiq>FisFjw>8>&FfzF[t@)0Fd[lFjwC%@$4%4Involutive/ratc
oeffG-FY6#Q_ocase~of~non-rational~coefficients~not~implemented~in~the~local~cas
e.FL?(FfrF`oF`o-Fap6#FgnFjxC&>8E-%$mapG6$f*6#F'FL6$%)operatorG%&arrowGFL-%&deno
mGFjnFLFLFL&Fgn6$FfrF`o>8F-%$lcmG6#-Fcw6#Fd\l@$4-%7Involutive/LocalIsUnitG6%Fb]
lFhrFd[l-FY6#QHfound~a~denominator~that~is~not~a~unit.FL>&Fgn6#Ffr7$-Ff\l6$f*Fi
\lFLFj\lFL-%'expandG6#*&T#F`oF[oF`oFLFL6$FIFb]lF_]l-Ff\l6$f*Fi\lFLFj\lFLFg^lFLF
LF\_l&Fgn6$FfrFeo@'F^qC%>Fgn-%&evalaGFa\l>83%DInvolutive/pnormal_form_evala_loc
alG@%/F]vF^v>8A%:Involutive/simp_prim_partG>F]`lf*6%%"pGF/%"qGFLFLFL7$F[o9&FLFL
FLFivC$>Fh_l%FInvolutive/pnormal_form_collect_localG>F]`lF^`lC$>Fh_l%>Involutiv
e/pnormal_form_localG>F]`lF^`lF^qC%>FgnFe_l@%F[\l>Fh_l%>Involutive/pnormal_form
_evalaG>Fh_l%?Involutive/simp_pnormal_form_ZG@%F[`l>F]`lF^`l>F]`lf*Fa`lFLFLFLFd
`lFLFLFLFivC$@%F[\l>Fh_l%@Involutive/pnormal_form_collectG>Fh_lFdal>F]`lF^`lC$@
%F[\l>Fh_l%8Involutive/pnormal_formG>Fh_l%:Involutive/pnormal_form_ZG>F]`l%5Inv
olutive/prim_partG@$/&F`s6#;,&F`tF`oF`oF`o,&F`tF`oF]oF`o7#-Fex6$F^vF]o>F`sF^v>8
2-%&parseG6#-Fjt6/Q@g->`Involutive/pol_lead_mon`(g,FL-%(convertG6$F]oFhyQ",FL-F
[dl6$FdtFhyF]dl-F[dl6$&FfzF_oFhyF]dl-F[dl6$FisFhyF]dl-F[dl6$&FfzF`qFhyF]dl-F[dl
6$F`sFhyQ")FL@$0Ffs7#-Fex6#;F`oF]o>Fgn-Ff\l6$f*6#F(6#F)FLFL-%'subsopG6$/F`o7#-F
gt6$&&F[oF_o6#&F[_l6#8$/Fcfl;F`oT%F[oFLFL6&F<FfsF+F]oFgn>8BFT>8CFW@$0FdtFhrC$>F
gn-Ff\l6$f*Fi\lFLFj\lFL-Fbu6$7#-Fgt6$/&T'6#Fffl&F[_lF[hl/FfflF_uF[oFLFL6(FBFdtF
(FfrF/FhrFgn>FT-Ff\l6$f*Fi\lFLFj\lFLFcglFLFLF^hlFT>80FT>FTFjw>8:F^cl>8;7#-Fex6$
F^vFbo?(FfrF`oF`oF`\lFjxC$>Fcfl-Fh_l6(Fa^lFWFdtFcclF]`lFd[l@$0Fcfl7$FghlFihlC%>
FTFifl>FWF[glFjp@$/FboF`o>FT-Ff\l6$f*Fi\lFLFj\lFL-FcwFjnFLFLFLFT?(FfrF`oF`o-Fap
6#FdhlFjx@$4-%7Involutive/member_multG6%&FdhlFb^lFTFdt>FT7$Fgjl-FcwFS>FdhlFT>FT
Fjw?(FfrF`oF`o-FapFVFjx>FW-Fhel6$/Ffr-Fhel6$/Fjq7#-Fex6$F^vF`t&FWFb^lFW>8+-%8In
volutive/pjanet_separG6&FdtFd[lFaxF[[l?(FfrF`oF`o-Fap6#F[\mFjxC$>Fcfl-Fh_l6(&F[
\mF`]lFWFdtFcclF]`lFd[l@$FcilC%>FTFifl>FWF[glFjp@$Fiil>FT-Ff\l6$f*Fi\lFLFj\lFLF
^jlFLFLFLFT?(FfrF`oF`oF`jlFjx@$Fcjl>FTFijl@$F]gl>FT-Ff\l6$f*Fi\lFLFj\lFLFcglFLF
L6(F/FhrF(FfrFBFdtFT>FdhlFT>FTFifl>FWF[gl>Fiw.FiwFdhlFL6&F`tFTFWFiwFLFL
M7R0
I/Involutive/Hasf*6%%"GG'%%varsG%%listG'%#viGF(66%"aG%"iG%"lG%"FG%#NGG%$varG%%v
ar2G%(var_ordG%'vt_degG%(deg_ordG%'lmprocG%,force_evalaG%)tup_permG%'n_entrG%)r
hs_entrG%'no_rhsG%%seqvG%&m_ordG%)tmp_nvarG%)entr_posG6#%jnCopyright~(C)~2000-2
010~by~Daniel~Robertz.~All~rights~reserved.G6"CC>8'-%6Involutive/proc_inputG6#9
$>81&FE6#""">82&FE6#""#>83&FE6#""$>8/&FE6#""&>8)-%5Involutive/proc_varsG6$9%FK>
8+&FinFR>8,&FinFW>8-&Fin6#""%>80&FinFfn>87&Fin6#""'>Fin&FinFM>86%&_nvarG>Fep-%%
nopsG6#Fin>847#-%$seqG6$-%$catG6$%#_xG8%/Fdq;FNFep>F_o-%%subsG6$7#-F^q6$/&Fin6#
Fdq&F[qF`rFeqF_o>FE-%(collectG6%&FEFgoFin%,distributedG@%0F[qFinC$>FE-%$mapG6$f
*6#F,FB6$%)operatorG%&arrowGFB-Fiq6$7#-F^q6$/&T'6#T%&T#F\t/F]tFfqFIFBFB6(F<F[qF
-FdqF1FinFE>8*-F]s6$f*F`sFBFasFBFdsFBFBFat9&>FctFgt@%/F_o7">85Fho>F]u7#-%"$G6$F
ho-Fhp6#F_o?(FdqFhoFN9#%%trueG@'5-%%typeG6$&9"F`r%(integerG-F[v6$F]vF(>F]uF]v-F
[v6$F]v%'stringGC$>8&F]v?(8$FNFN-%'lengthG6#FhvFgu@&/&Fhv6#FjvQ"SFB>FZFgu0F`wQ!
FB-%&ERRORG6#%?option~must~be~the~string~"S".G-Fgw6#%0invalid~option.G>Fhv-%4In
volutive/proc_ordG6*F]uFinF_oFboFeoF[qF]p4FZ@$&FhvFgo>F]pF[u@$/&Fbo6#;,&FepFNFN
FN,&FepFNFKFN7#-Fau6$""!FK>FboF_y>8.-%&parseG6#-Faq6/Q@g->`Involutive/pol_lead_
mon`(g,FB-%(convertG6$FKFevQ",FB-Fjy6$F[qFevF\z-Fjy6$&FhvFMFevF\z-Fjy6$F]pFevF\
z-Fjy6$&FhvFfnFevF\z-Fjy6$FboFevQ")FB@$0Fjo7#-Fau6#;FNFK>FE-F]s6$f*6#F-6#%"jGFB
FB-%'subsopG6$/FN7#-F^q6$&&FIFM6#&F_tFaw/Fjv;FNF]tFIFBFB6&F8FjoF9FKFE>8(F[u?(Fd
qFNFN-Fhp6#FEFguC$>Fhv-Fby6#&&FEF`rFM@$-%$hasG6$&Fhv6$FSFSFct>Ff\l7$-%#opG6#Ff\
lF_]l@$Fir>Ff\l-F]s6$f*F`sFBFasFBFdsFBFB6(F1FinF-FdqF<F[qFf\l@$F[[lC$>Fjo-F]s6$
f*Fd[lFe[lFBFBC$-%'memberG6%FIF_t.FjvFjvFBFB6$F8FjoF\[l>Ff\l-F]s6$f*Fd[lFe[lFBF
BFg[lFBFBFd\lFf\l@$/FKFN>Ff\l-F]s6$f*F`sFBFasFB-Fh[l6$/FN-Fi]l6#F_\lFIFBFBFBFf\
l@%FU>Ff\l-F]s6$f*F`sFBFasFBF_\lFBFBFBFf\l@%/FPFN>Ff\l-F]s6$f*F`sFBFasFB/F_\l-F
i]l6#&FIFRFBFBFBFf\l>Ff\l-F]s6$f*F`sFBFasFB/F_\lFj`lFBFBFBFf\l>FepFdp-%'RETURNG
Fj]lFB6#FepFBFB
M7R0
I8Involutive/nextmonomialf*6$%"mG%"bG6%%"iG%"lG%"nG6#%jnCopyright~(C)~2005-2010
~by~Daniel~Robertz.~All~rights~reserved.G6"C(>8%-%%nopsG6#9$>8&F4>8$F0?(F-"""F:
F-31F:F81&9%6#F8&F6F@C$>FA""!>F8,&F8F:!""F:@$F<>FA,&FAF:F:F:-%'RETURNG6#F6F-F-F
-F-
M7R0
I6Involutive/PolMinPolyf*6#%"pG6R%"aG%"bG%"eG%"gG%"iG%"jG%"kG%"lG%"mG%"nG%"sG%"
xG%#peG%#hsG%'n_entrG%*zero_listG%%varsG%$varG%)entr_posG%.force_collectG%,forc
e_evalaG%(var_ordG%)tup_permG%(deg_ordG%'vt_degG%'lmprocG%&m_ordG%(tup_cmpG%(lo
c_varG%*new_powerG%+power_listG%+monom_listG%%relsG%*low_boundG%*upp_boundG%"FG
%#FBG%#IBG%"MG%%seqvG%#suG%#eqG%+trans_elemG%,given_basisG%2tmp_P_T_List_dataG%
(lm_entrG%"SG%"UG6#%jnCopyright~(C)~2000-2010~by~Daniel~Robertz.~All~rights~res
erved.G6"CK@$0%7Involutive/initializedG.%%trueG-%0Involutive/initGFY@$4%4Involu
tive/ratcoeffG-%&ERRORG6#%fnnot~implemented~yet~for~involutive~bases~over~the~i
ntegers.G@%32""#9#-%%typeG6$&9"6#Ffo%%listGC$>8OFin>8)""%C$>Fap%&falseG>FcpFfo>
8/.%'lambdaG>8L""!>8EF_q>8F"#I>87Fgp>88Fgp>8>%%NULLG?(8(Fcp"""FgoFin@)/&F\p6#F]
rQ"SFY>FhqFin5-Fio6$Far%(integerG-Fio6$FarF^p>FjqFar-Fio6$Far%)equationGC$@$4-F
io6$-%#opG6$F^rFar%'stringG-F`o6#%\oexpecting~a~string~on~the~left~hand~side~of
~an~optional~equation.G@+5/FdsQ'degreeFY/FdsQ'maxdegFYC$@$4-Fio6$-Fes6$FfoFar%'
posintG-F`o6#%Nexpecting~a~positive~integer~as~degree~bound.G>FcqFft/FdsQ'minde
gFYC$@$FctFit>FaqFft/-%*substringG6$Fds;F^r""$Q$varFYC$@$4-Fio6$Fft%%nameG-F`o6
#%\oexpecting~a~name~for~the~indeterminate~of~the~minimal~polynomial.G>FjpFft/-
Fdu6$Fds;F^rFdpQ%subsFY>F^qFft-F`o6#%0invalid~option.GFiv@%FapC*>8G-%6Involutiv
e/proc_inputG6#F[p>82&F_w6#F^r>Fhq5Fhq&F_w6#""&>8N&F_w6#""(>6$8P85-%7Involutive
/setup_basisG6%F[p&F\p6#FguFjq>Ffq5Ffq-%&evalbG6#0-%&minusG6$<#-Fes6#F]x<#-Fes6
#Fdx<">84Fhx>Fdx-%5Involutive/proc_varsG6$F[zFdwC(@$5543-%)assignedG6#%)P_T_Lis
tG-Fio6$FizF^p/Fiz7"4-Fio6$&FizFfwF^p-F`o6#%Umissing~involutive~basis;~run~Invo
lutiveBasis~first.G>Fdw-%%nopsG6#&Fiz6%F^rF^rF^r>F[z%&_pvarG>FdxF[z>Ffq5Ffq%0_p
force_collectG>Fhq5Fhq%._pforce_evalaG>89&FdxF]p>8<&FdxFix>8;&Fdx6#Fdp>8:&FdxFj
w>86&Fdx6#""'>Fdx&FdxFfw>8K7#-%$seqG6$-%$catG6$%#_xGF]r/F]r;F^r-Fg[lFhy>Fe\l-%%
subsG6$7#-F\^l6$/&FdxFbr&Fi]lFbrFb^lFe\l>%&_nvarGFd^l>837#-%"$G6$F_qFdw@$4-Fio6
$9$-%(polynomG6$%)anythingGFdx-F`o6#-F_^l6%%9expecting~polynomial~in~G-%(conver
tG6$FdxFgs%4~as~first~argument.G>81-%<Involutive/PolHilbertSeriesG6#.8.@$/Fj`lF
_qC$@$Fap-%;Involutive/restoreP_T_ListG6#Fcx@%0F^qF_q-%'RETURNG6#F^q-Fjal6#Fjp@
$4-%$hasG6$F[`lFdxC$@$FapFdal@%Fhal-Fjal6#,&F^qF^rF[`l!""-Fjal6#,&FjpF^rF[`lFib
l>8+-%4Involutive/proc_ordG6*FdpFdxF][lFh\lF][lFi]lFb]l4Fhq>8Q&F^clFfw>8?&F^clF
jw>8@&F^clFd]l@$/&Fh\l6#;,&Fd^lF^rF^rF^r,&Fd^lF^rFdwF^rFc_l>Fh\lF_q>8=-%&parseG
6#-F_^l6/Q@g->`Involutive/pol_lead_mon`(g,FY-Ff`l6$FdwFgsQ",FY-Ff`l6$Fi]lFgsF^e
l-Ff`l6$FeclFgsF^el-Ff`l6$7#FdwFgsF^el-Ff`l6$FhclFgsF^el-Ff`l6$Fh\lFgsQ")FY>8Mf
*6$F'F(FYFYFY-F]y6#/F[`l9%FYFYFY>8H-%=Involutive/FactorModuleBasisG6$F[zQ"CFY>8
,-Fg^l6$Fi^lF[`l>Fdfl-Fg^l6$Fi^lFdfl>8DF][l>8--Fg[l6#Fdfl@%/FdwF^rC(>F]rF^r>8AF
^r>8C7#F^r>8J7#7$F^r-Fe_l6$F_q,&FcglF^rFiblF^r?(FYF^rF^rFY3/FaglF][l1F]rFcqC+-%
)userinfoG6&Fgu%+PolMinPolyG%+degree~~~~GF]r@'Fhq>F[hl&&&-%8Involutive/invred_e
valaG6)7$7#-%(collectG6%*&FjflF^rF[hlF^rFi]l%,distributedG7#F_qFizFinFgpFi]lFed
lFjclFfwFfwFfwFfq>F[hl&&&-%:Involutive/invred_collectGFgilFfwFfwFfw>F[hl&&&-%2I
nvolutive/invredG6)7$7#-%'normalG6#F]jlF_jlFizFinFgpFi]lFedlFjclFfwFfwFfw-F\il6
%FdpF^il%>involutive~reduction~finishedG@$/F[hlF_qC$@$FapFdal@%Fhal-Fjal6#)F^qF
]r-Fjal6#)FjpF]r@$/F]rF^r>FjflF[hl>8*-%:Involutive/monomcoefflistG6%F[hlFi]lFdf
l?(FYF^rF^rFY4-Fio6$Fd\mF^pC&>6$FdflFd\m-%>Involutive/pbinary_insert_posG6)Fd\m
FdflF^rFcglFcglFgclF\fl>Fcgl,&FcglF^rF^rF^r@%/Fd\mFcgl>F`hl-%$mapG6$f*6#F,FY6$%
)operatorG%&arrowGFY7$-Fes6#F[`lF_qFYFYFYF`hl>F`hl-Fh]m6$f*F[^mFYF\^mFY-%'subso
pG6$/T#6$F_q&F[`l6#Fj^mF[`lFYFY6$F-Fd\mF`hl>Fd\mFe\m@%1FaqF]r@%/%2Involutive/ch
aracGF_qC%>F`hl7$-Fes6#F`hlFd\m>8R-%&solveG6$<#-F\^l6$,&-%$addG6$*&&&F`hl6#,&Fc
pF^rF^rF^r6#8$F^r&8S6#FcpF^r/Fcp;F_q,&F]rF^rFiblF^rF^r&&F`hl6#,&F]rF^rF^rF^rF[a
mF^r/F\am;F^rFdgl<#-F\^l6$F]amF`am@$0F[`mF[rC$@$FapFdal@%Fhal-Fjal6#-Fg^l6$/Fjp
F^q-Fg^l6$F[`m,&F_\mF^r-Fd`m6$*&F]amF^r)FjpFcpF^rF`amF^r-Fjal6#FfbmC$>8&-%$modG
6$-%)LinsolveG6$-&%'linalgG6#%*transposeGFi_m-%'vectorG6#Fd\mFd_m@%-Fio6$FacmF^
dm>FaglFacmC%>F`hl-Fccm6$-%*GausselimG6#7$-Fes6#-%$zipG6%f*F^flFYF\^mFY7$F`^mFb
flFYFYFYF`hlF]hl7$-FesF_dmF_\mFd_m>F]hl-Fh]m6$Fes-Ff`l6$-&Fjcm6#%*submatrixG6%F
`hl;F^rFfam;Fc]mFc]m%)listlistG>F`hl-Ff`l6$-F[fm6%F`hlF_fm;F^rFcglFafm>F`hlFg_m
>F]rFfam@$0FaglF][lC$>F]rFbam@%Fc_m>Fagl7#,&F_\mF^r-F`[m6#-Fd`m6$*&&FaglF_amF^r
&F]hlF_amF^r/Fcp;F^rF]rFibl>Fagl7#-Fccm6$,&F_\mF^r-%'NormalGFcgmFiblFd_mC.>F_w7
#-Fe_l6$F][lFdw>807#-F\^l6$,&FdwF^rF]rFibl/F]r;F_q,&FdwF^rFiblF^r>FcpFdw?(F]rF^
rF^rFdglFinC%?(FYF^rF^rFY31F^rFcp/&&FdflFbrF_amF_q>Fcp,&FcpF^rFiblF^r@$2FcpF^r-
F`o6#%_oexpecting~factor~module~basis~to~be~the~result~of~FactorModuleBasis.G>F
_w-Fg^m6$/Fcp7$-Fes6#&F_wF_amFgimF_w>F_w7#-F\^l6$&F_w6#&F_]lF_dm/Fd\m;F^rFdw>Fd
fl-Fh]m6$f*F[^mFYF\^mFY7#-F\^l6$&F[`l6#&Fj^m6#T%/F\\n;F^rT'FYFY6(F=F_]lF-Fd\mF5
FdwFdfl>F]rF^r>8BFdfl>F]hlF^hl>F`hl7#-Fh]m6$Fes7#-F\^l6$-Fh]m6$Fes-%8Involutive
/tupcoefflistG6&&Fc\nF_amFi]lF_wFhhm/FcpFgfm?(FYF^rF^rFYFghlC(F[il>Fd\mF][l?(F^
clF^rF^r-Fg[l6#Fc\nFinC&@'Fhq>F[hl&&-Ffil6)7$-F[jl6%-Fh]m6$f*6#F'FYF\^mFY*&Fj^m
F^rF[`lF^rFYFY6$F/Fjfl&Fc\n6#F^clFi]lF^jlF_jlFizFinFgpFi]lFedlFjclFfwFfwFfq>F[h
l&&-Fejl6)7$-F[jl6%-Fh]m6$f*Ff^nFYF\^mFYFg^nFYFYFh^nFi^nFi]lF^jlF_jlFizFinFgpFi
]lFedlFjclFfwFfw>F[hl&&-F[[m6)7$-F`[m6#-Fh]m6$f*Ff^nFYF\^mFYFg^nFYFYFh^nFi^nF_j
lFizFinFgpFi]lFedlFjclFfwFfw>Fc\n-Fg^m6$/F^clF[hlFc\n>Fd\m7$Fdem-F_]n6&F[hlFi]l
F_wFhhm?(FYF^rF^rFY4-Fio6$&Fd\m6#Fibl-F^p6#F^pC*>8%F^r>8'F_q?(FYF^rF^rFY/&F]an6
#&Fhhm6#FcanF_qC$>Fean,&FeanF^r-Fg[l6#&F_wFianF^r>Fcan,&FcanF^rF^rF^r>6$FdflFac
m-F`]m6)FhanFabnF^rF_bnF_bnFgclF\fl>F_w-Fg^m6$/FjanFdflF_w>FcglFc]m@%/,&FacmF^r
FeanF^rFcgl>F`hl-Fh]m6$f*Ff^nFYF\^mFY-Fg^m6$-F\^l6$/*&Fj^mF^r,&F\\nF^rFiblF^rF^
r6$&F[`l6#FicnF_q/Fj^m;F^r-Fg[l6#F_\nF[`lFYFY6(F,FcpF0FcglFEFc\nF`hl>F`hl-Fh]m6
$f*Ff^nFYF\^mFY-Fg^m6$-F\^l6$/,(*&,&Fj^mF^rFiblF^rF^rFjcnF^rF^rF_\nF^rT)F^r6$F_
q&F[`l6#F\en/Fj^m;F^r-Fg[l6#T+F[`lFYFY6,F,FcpF0FcglF)FacmF*FeanFEFc\nF`hl@%2F^r
-Fg[lF_dm@%/FacmF_bn>Fd\m7$-Fes6#-Fh]m6$f*F[^mFYF\^mFY-Fg^m6$/Fj^m7$-Fes6#F\_mF
_qF[`lFYFY6$F(Fcan&Fd\m6#;F^r!"#Fg`n>Fd\m7$-Fes6#-Fh]m6$f*F[^mFYF\^mFY-Fg^m6$/F
j^m-Fg^m6$/F\\n6$F_q&F\_mF[\nF\_mF[`lFYFY6&F(FcanF)FacmF\gnFg`n>Fd\m7#Fg`n>Fd\m
-Fh]m6$Fes-Fh]m6$FesFd\m@%Fc_mC$>Facm-&Fjcm6#%)linsolveG6$FhcmFd\m@%0FacmF[r>Fa
glFacmC%>F`hl-&Fjcm6#%*gausselimG6#7$-Fes6#-F_em6%f*F^flFYF\^mFYFbemFYFYFYF`hlF
]hlFcem>F]hl7#-F\^l6$&F`hl6$Fcp,&*&Fg]nF^rFcglF^rF^rF^rF^r/FcpF_fm>F`hl-Ff`l6$-
F[fm6%F`hlF_fm;F^rFfjnFafmC$>FacmFbcm@%Fadm>FaglFacmC%>F`hl-Fccm6$-Fidm6#7$-Fes
6#-F_em6%f*F^flFYF\^mFYFbemFYFYFYF`hlF]hlFcemFd_m>F]hlF`jn>F`hlFijn>F]rFfam@$F[
gmC$>F]rFbam@%Fc_m>FaglF`gm>FaglF\hm@$FapFdal@%Fhhl-F`o6#%apstopped~calculation
~of~minimal~polynomial~since~upper~bound~for~the~degree~is~reached.G@%Fc_m@%Fha
l-Fg^l6$Febm-F[jl6$-F`[m6#*&&FaglFfwF^r-%'lcoeffG6$Fe]oFjpFiblFjp-F[jlFh]o@%Fha
l-Fccm6$F^]oFd_m-Fccm6$Fi]oFd_mFY6#F`_lFYFY
M7R0
I9Involutive/solveinterpolf*6+%"LG%"vG%"pG%'paramsG%#evG%$pfdG%)lessevalG%%degs
G%%stepG6.%"dG%"eG%"iG%"jG%$solG%(lastsolG%+evalpointsG%*solutionsG%#suG%#IBG%(
warned1G%(warned2G6#%jnCopyright~(C)~2006-2010~by~Daniel~Robertz.~All~rights~re
served.G6"C&>8.%&falseG>8/FA>8%9(@%2"""9,C(>8$9+>8*7">8+FQ>8)%%NULLG>8'""!?(F=F
IFIF=%%trueGC2>8(-F"6+9$9%9&9'FE9)9*FM,&FJFI!""FI@$/FhnFV-%'RETURNG6#FV@$4-%%ty
peG6$Fhn-%(polynomG6$%)anythingGF^o-%&ERRORG6#%=solution~is~not~a~polynomialG?(
8&FIFIFaoFen@$/&FM6#Ffp%)infinityG>Fip-%'degreeG6$Fhn&F^oFjp@$334-%$hasG6$&FM6#
;FIFaoF[q07#-%$seqG6$F]q/FfpFjqFhq4F@C$-%(WARNINGG6#QUdegrees~in~parameters~cha
nged;~bad~evaluation~point?F=>F@Fen@$30F_oFQ/FXFY-%'printfG6#-%$catG6%Q6degrees
~of~factors:~~F=-%(convertG6$-%%sortG6#-%$mapG6$f*6#F1F=6$%)operatorG%&arrowGF=
-%"$G6$-F^q6$&F[o6#FIT$&F[o6#""#F=F=6$F*F_o&-%(factorsG6#FhnFjt%'stringGQ"|+F=>
FP7$-%#opG6#FPFE>FS7$-Ffu6#FSFhn-%)userinfoG6&""$F"%5degrees~~~~~~~~~~~~~GF\r>F
hn-&%-CurveFittingG6#%8PolynomialInterpolationG6%-Fjs6$f*F]tF=F^tF=&F[o6#FhtF=F
=6$F-FJFPFS&F^o6#FJ-F]v6&""&F"%8interpolated~polynomialGFhn@$53F`o/FX&FMF_w30FU
FV/-%)simplifyG6#,&FhnFIFUFboFY-FfoF`u>FUFhn>FX,&FXFIFIFI@%/-%$modG6$FXF[uFI>FE
-%'subsopG6$/FJ,(&FEF_wFIFXFboFboFIFE>FE-F[y6$/FJ,(F_yFIFXFIFIFIFE@$32"$+"FX4FC
C$-Fdr6#QZthe~degree~(in~a~parameter)~of~a~coefficient~exceeds~100.F=>FCFenC$-F
]v6&""%F"%5evaluation~point~~~~GFE@%/&FEFgtF[qC%>8,7#-F^r6$/F`q&FEFjp/Ffp;F[u-%
%nopsG6#F^o>Fhn-%&solveG6$-%%subsG6$FizF[oF\o@%FdoFV-Fi[l6$FhnF]oC%>Fiz7#-F^r6$
F][l/Ffp;FIFa[l>FhnFe[l@%FdoFV-Fi[l6$-Fjs6$f*F]tF=F^tF=-F[y6$/F[u-%8Involutive/
oneparam_numG6&-Ffu6$F[uF[oFht&T%Fgt&T(FgtF[oF=F=6(F&F\oF0FEF(F^oFhnF]oF=F=F=F=
M7R0
I7Involutive/Eliminationf*6%'%#IBG%%listG'%&vars1GF''%&vars2GF'6B%"aG%"iG%"jG%"
lG%"mG%"sG%(new_redG%%rvarG%%BlexG%)Blex_redG%&IBlexG%)IBlex_lmG%*new_IBlexG%"F
G%'n_entrG%'no_rhsG%.force_collectG%,force_evalaG%&m_ordG%*upp_boundG%+trans_el
emG%%var1G%)var_ord1G%(vt_deg1G%)deg_ord1G%*tup_perm1G%%seqvG%#suG%'lmprocG%(lo
c_varG%%var2G%)entr_posG6#%jnCopyright~(C)~2005-2010~by~Daniel~Robertz.~All~rig
hts~reserved.G6"CN@$4%4Involutive/ratcoeffG-%&ERRORG6#%fnnot~implemented~yet~fo
r~involutive~bases~over~the~integers.G@$4-%)assignedG6#%)P_T_ListG-FU6#%Umissin
g~involutive~basis;~run~InvolutiveBasis~first.G>8(-%<Involutive/PolHilbertSerie
sGFO@$4-%%typeG6$F\o%(polynomG-FU6#%@module~is~not~zero-dimensional.G@$/F\o""!-
%'RETURNG6#7#"""@$/F\oF_p-F\p6#9$>81-%6Involutive/proc_inputGFcp>82&Ffp6#F_p>83
&Ffp6#""$@$4F^q-FU6#%Fright~hand~sides~not~implemented~yet.G>85&Ffp6#""&>88&Ffp
6#""(>87%%NULLG?(8%""%F_p9#%%trueG@'/&9"6#FerQ"SFO>FhqFhr-Fbo6$F[s%(integerG>Fb
rF[s-FU6#%0invalid~option.G>89-%5Involutive/proc_varsG6$9%Fjp>8:&Fhs6#""#>8;&Fh
sF`q>8<&Fhs6#Ffr>8=&FhsFjq>8C&Fhs6#""'>Fhs&FhsF\q@$/-%%nopsG6#FhsF_pFbp>%&_nvar
GFeu>8>7#-%$seqG6$-%$catG6$%#_xGFer/Fer;F_pFiu>8?7#-F^v6$/&FhsF]s&F[vF]sFdv>F^t
-%%subsG6$FgvF^t>8B&-Fjs6$9&FjpF\q@$0<#-%#opGFgu<#-F\x6#Fcw-FU6#%Xexpecting~the
~same~set~of~variables~in~vars1~and~vars2.G>84-%&evalbG6#0-%&minusG6$<#-F\x6#F]
rFjw<">86Ffr-%3Involutive/checkIBG6)FdpF\tFhsFayFjtF[vFhq>8'-%4Involutive/proc_
ordG6*FayFhsF^tFctFftF[vF]u4Fhq@$&FfyFht>F]u7">8A&FfyF_u@$/&Fct6#;,&FiuF_pF_pF_
p,&FiuF_pFjpF_p7#-%"$G6$FjoFjp>FctFjo>8@-%&parseG6#-Fav6/Q@g->`Involutive/pol_l
ead_mon`(g,FO-%(convertG6$Fjp%'stringGQ",FO-Fg[l6$F[vFi[lFj[l-Fg[l6$&FfyF\qFi[l
Fj[l-Fg[l6$F]uFi[lFj[l-Fg[l6$&FfyFjqFi[lFj[l-Fg[l6$FctFi[lQ")FO>8.7#-%6Involuti
ve/PolMinPolyG6'&Fcw6#!""FdpF\tF^]lFbr>8/7#-%'subsopG6$/F`]l-%'degreeG6#&Fi\lF\
q7#-F[[l6$FjoFiu>8,7#-F^v6$)F^]lFer/Fer;Fjo,&Fh]lF_pF`]lF_p@'Fhq>8--%$mapG6$f*6
#F-FO6$%)operatorG%&arrowGFO&&&-%8Involutive/invred_evalaG6)7$7#Fdp7#FjoFgnFhr%
&falseGT#T%T'F\qF\qF\qFOFO6(FGF[vFIF_[lFJF`z-F`w6$FgvF`^lFdx>Fj^l-F\_l6$f*F__lF
OF`_lFO&&&-%:Involutive/invred_collectGFh_lF\qF\qF\qFOFOF``lFa`l>Fj^l-F\_l6$f*F
__lFOF`_lFO&&&-%2Involutive/invredGFh_lF\qF\qF\qFOFOF``lFa`l>8+7#-F^v6$-Fav6$%#
_RGFer/Fer;F_p-Ffu6#Fj^l>80Fhr?(FOF_pF_pFOFhrC'@%FbblC%>Ffy&Fb]lF_]l>Fer,&FiuF_
pF`]lF_p?(FOF_pF_pFOFhrC&>Ffy-Fe]l6%/Fer,&&FfyF]sF_pF_pF_p-F^v6$/8$Fjo/Ffcl;,&F
erF_pF_pF_pFiuFfy>8&-Ffu6#Fb]l?(FOF_pF_pFO1F_pF[dlC$@$-%:Involutive/conv_divisi
bleG6$7$&Fb]l6#F[dlF_p7$FfyF_p[>F[dl,&F[dlF_pF`]lF_p@%F_dlC$>Fer,&FerF_pF`]lF_p
@$2FerF_p-FU6#%;cannot~find~next~monomial.GFidl>Ffy-Fe]l6$/F`]l,&&FfyF_]lF_pF_p
F_pFfy>F\o-%$mulG6$)&FcwF]sFbclFdv@'Fhq>8*&&&-Fg_l6)7$7#-F`w6$FgvF\oF[`lFgnFhrF
\`lF[vF_[lF`zF\qF\qF\qFdx>Fcfl&&&-F[alFhflF\qF\qF\q>Fcfl&&&-FdalFhflF\qF\qF\q>8
)&-%6Involutive/jetsgetbasG6$-%;Involutive/jetscoeffmatrixG6#7$-F\xF`blFcfl7$-F
\x6#Ffal%#_SGF`t@%/FhglF^zC&>F`^l7$-F\x6#F`^lF\o>Fj^lF`hl>Ffal7$Fchl-Fav6$F\bl,
&-FfuFdhlF_pF_pF_p>FbblF\`lC&>Fi\l7$-F\x6#Fi\l,&F\oF_p-F`w6$-%$zipG6%f*6$F.F/FO
F`_lFO/FdpF\tFOFOFOFfalF`^l-%&solveG6$&FhglF\qFehlF`]l>Fb]l7$-F\xF]dlFfy@$/-Fg[
l6$&Ffy6#;FatF`]l%"+GFjoFidl>FbblFhr-F\pFiilFO6#FiuFOFO
M7R0
I2Involutive/Henself*6(%"fG%#g0G%#h0G%"xG%"pG%"nG6&%"iG%"gG%"hG%"HG6#%jnCopyrig
ht~(C)~2005-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C'>8%9%>8&9&>8$"""?(
F2F<F<F231F;,&9)F<!""F<0-%'expandG6#,&9$F<*&F5F<F8F<FB""!C&>8'-%6Involutive/Hen
selStepG6(FHF5F89'9(F;>F5&FM6#F<>F8&FM6#""#>F;,&F;F<F<F<-%'RETURNG6#7$F5F8F2F2F
2F2
M7R0
I3Involutive/ItJanetf*6&%"pG'%"JG%%listG'%%varsGF('%"cGF(6,%"dG%#d2G%"iG%"mG%"q
G%"rG%)coset_lmG%$varG%'lmprocG%,force_evalaG6#%jnCopyright~(C)~2002-2010~by~Da
niel~Robertz.~All~rights~reserved.G6"C,>8-&-%6Involutive/proc_inputG6#9%6#""&>8
+-%5Involutive/proc_varsG6$9&""">8,&-%4Involutive/proc_ordG6*""%&FF6#FK&FF6#""#
&FF6#""$&FF6#FRFS%)entr_posG4F=FT@$2FZ9#>8*-%$mapG6$f*6#F0F:6$%)operatorG%&arro
wGF:7#-T#6#-%#opG6$FK9$F:F:6$F6FM9'>8)""!>8(-%'expandG6#F]p>FF-%(convertG6$FJ%$
setG>8$-%'degreeG6$FdpFF?(F:FKFKF:-%$hasG6$FdpFJC'>Fdp-%8Involutive/PolInvReduc
eG6%/FdpFbpFBFJ@%-Fdq6$-F[p6$FKFdpFJC'>8'7#-FM6#F_r>8&FK?(F:FKFKF:31Fhr-%%nopsG
6#F_p0&FcrFV&F]o6$FhrFW>Fhr,&FhrFKFKFK@$2F\sFhr-%'RETURNG6#,&F_rFK-F[p6$FWFdp!"
">Fdp,*F[tF]t*(&FcrFTFK&F]o6$FhrFKF]t-F[p6$FW&F_p6#FhrFKFKF_rFK*(FatFKFbtF]t-F[
p6$FKFftFKF]tC$>Fap,&FapFKF_rFK>Fdp,$F[tF]t>8%-F`q6$-Ffp6#FdpFF@$2F^qFau-%&ERRO
RG6#%foplease~check~if~all~indeterminates~for~the~right~hand~sides~are~unassign
ed.G>F^qFau-Fhs6#,&FapFKFdpFKF:F:F:F:
M7R0
I:Involutive/PolRightDividef*6&%#_AG%#_BG%#_LG%%_varG6/%"AG%"BG%"mG%"LG%#BLG%$v
arG%$ILBG%"RG%"rG%#IBG%"ZG%#ZZG%#SIG6#%[oCopyright~(C)~2003-2005~by~Mohamed~Bar
akat.~All~rights~reserved.G6"C1>8$-%$mapG6$f*6#%"aGF96$%)operatorG%&arrowGF9&9$
6#"""F9F9F9&-%6Involutive/proc_inputG6#FG6#""%>8%-F>6$f*FAF9FCF9FFF9F9F9&-FL6#9
%FN>8&-%%nopsG6#&FQFH@'/9#""$C$>8)&9"6#F\o>8(FQ32F\oF[o-%%typeG6$&FaoFN%%listGC
%>8'-F>6$f*FAF9FCF9FFF9F9F9&-FL6#9&FN>F_oFjo>Fdo-F>6$%#opG7$FQF^p-%&ERRORG6#%Ne
xpecting~list~of~variables~as~last~argument!G>8*-%;Involutive/InvolutiveBasisG6
$-%2Involutive/AddRhsG6#FdoF_o>8+-F>6$f*FAF9FCF9@%-Fho6$FGF[pFG7#FGF9F9F9-F>6$%
$rhsGFaq>8,-Ffn6#Fiq>8--F>6$f*FAF9FCF9@%F^rFGF`rF9F9F9-F>6$%$lhsGFaq>Fir-Ffq6#F
ir>8.7#-%"$G6$""!Fer>8/7#-Fhs6$FjsFZ>80-F>6&%8Involutive/PolInvReduceG-F>6$f*FA
F9FCF9/FGT#F9F96$F4FesF<FirF_o>Fat-F>6$f*FAF9FCF9@%/-F`sFMFit-FcrFM-F]q6#%VThe~
second~(+third)~argument~is~not~a~generating~set!GF9F96$F5F\tFat@$32FOF[o-Fho6$
&Fao6#""&%'symbolG@%/%6Involutive/matrixtypeG%'MatrixG-%'assignG6$F\v-%(convert
G6$-%&evalmG6#,$-%#&*G6$Fat-&%'linalgG6#%*submatrixG6%Fiq;FIFer;,&-Ffn6#FQFIFIF
IFer!""Fcv-Fev6$F\vFjv@%Fav-Fhv6$-F[w6#,$-F_w6$Fat-Fbw6%FiqFgw;FIFjwF\xFcvFbxF9
F9F9F9
M7R0
I5Involutive/PolDefectf*6%%$_R1G%$_R0G'%$varG%%listG6%%#R1G%#R0G%$RR1G6#%^pCopy
right~(C)~2003-2010~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.
G6"C&>8$-%5Involutive/jetsmkmatG6#-%$mapG6$f*6#%"aGF06$%)operatorG%&arrowGF0&9$
6#"""F0F0F0&-%6Involutive/proc_inputG6#FA6#""%>8%-F56#-F86$f*F;F0F=F0F@F0F0F0&-
FF6#9%FH>8&-%4Involutive/PolSyzOpG6$FK9&@%2""$9#-%8Involutive/PolSubFactorG6&FV
F3FZ&9"FH-Fjn6%FVF3FZF0F0F0F0
M7R0
I1InvolutiveT/initf*6"F$6#%jnCopyright~(C)~2002-2010~by~Daniel~Robertz.~All~rig
hts~reserved.GF$-%0Involutive/initG6#9"F$F$F$F$
M7R0
I1Involutive/ecartf*6&%"hG%#lmG%%seqvG%(loc_varG6"6#%epCopyright~(C)~2006-2010~
by~Daniel~Robertz~and~Markus~Lange-Hegermann.~All~rights~reserved.GF)-%'RETURNG
6#-%5Involutive/ecart_lm1G6&9$&9%6#"""9&9'F)F)F)F)
M7R0
IEInvolutive/pnormal_form_expand_localf*6(%"fG%"FG%%seqvG%'lmprocG%'ppprocG%(lo
c_varG6"6#%boCopyright~(C)~2008-2010~by~Markus~Lange-Hegermann.~All~rights~rese
rved.GF+-%'RETURNG6#-%>Involutive/pnormal_form_localG6)9$9%9&9'9(9)"")F+F+F+F+
M7R0
I;Involutive/invred_Z_nonnegf*6)%"fG%"TG%'no_rhsG%.return_coeffsG%%seqvG%'lmpro
cG%(loc_varG65%"aG%"cG%"eG%"hG%#h2G%"iG%"jG%"kG%"lG%#lmG%"nG%"rG%$divG%'n_entrG
%(termo_hG%*zero_listG%#lvG%#nlG%"HG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.~C
id~and~Daniel~Robertz.~All~rights~reserved.G6"C,>81-%%nopsG6#&9$6#""">837#-%"$G
6$""!FE>8'FI@$49&>8(&FJ6#""#>8.-FG6#9%>8/FN>8%7#-FQ6$FSFin>8--9)6#FU?(FBFLFLFB0
&Feo6$FgnFLFSC)>8)FL>80%&falseG>8*&Feo6$FLFgn>82-%'subsopG6$/Fdp&Feo6$FgnFgnFN?
(FBFLFLFB31F_pFin4FapC$@$-%7Involutive/pinv_divideG6%&F\o6$F_p""$&F\o6$F_p""&&F
eoFKC$>8,-%%iquoG6$F[p&F\o6%F_p""'FL@&0FarFSC%>FU-%'normalG6#,&FUFL-%$mapG6$f*6
#F-FB6$%)operatorG%&arrowGFB**T#FL&T%F^qFL&T(6%T)FgrFgn!""FJFLFBFB6*F5FarF6FeoF
&F\oF2F_p&F\o6%F_pFLFLF`t@$FW>FZ-F]s6#,&FZFL-Fas6$f*FdsFBFesFBFhsFBFBFat&F\o6%F
_pFLFgnF`t>Fap%%trueG/-%%signG6#F[pF`tC&>Far,$-Fbu6#FerF`t>FU-F]s6#,&FUFL-Fas6$
f*FdsFBFesFBFhsFBFBFatFbtF`t@$FW>FZ-F]s6#,&FZFL-Fas6$f*FdsFBFesFBFhsFBFBFatF\uF
`t>FapF_u>F_p,&F_pFLFLFL@%FbqC$>F^o-%'expandG6#,&F^oFL*&F[pFLFhpFLFL>FU-F_w6#,&
FUFLFbwF`t@$9'C$>F_p,&F_pFLF`tFL>F`o-Fjp6$/F_p,&&F`o6#F_pFL*(FarFLF]qFL&F\o6%F_
pFgrFgnF`tFLF`o>FeoFfo7$7$F^oFZF`oFBFBFBFB
M7R0
I;Involutive/PommaretNonMultf*6#'%$varG%%listG6(%"iG%"jG%"kG%$indG%&jmultG%&pmu
ltG6#%jnCopyright~(C)~2007-2010~by~Daniel~Robertz.~All~rights~reserved.G6"C&@$4
-%)assignedG6#%)P_T_ListG-%&ERRORG6#%Umissing~involutive~basis;~run~InvolutiveB
asis~first.G@$%5Involutive/janetlikeG-F:6#%Mnot~implemented~yet~for~Janet-like~
division.G>8'7#-%"$G6#;"""-%%nopsG6#9$?(8$FIFI%*pnumber_tG%%trueGC%>8(-%%subsG6
$/%)infinityGFI&F86$FO""&>8)-%4Involutive/pomm_divG6#&F86$FO""$@$0FTFhn-%&print
G6$&&%+PolTab_VarG6#FO6#F^o-%$mapG6$f*6#F+F16$%)operatorG%&arrowGF1&T$FLF1F16$F
&FM-%'selectG6$f*6#F*F1F^pF130&T#FL""!/&T%FLF]qF1F16&F-FTF.FhnFCF1F1F1F1
M7R0
I;Involutive/pjanet_divisionf*6%%"LG%%seqvG%(loc_varG6.%"aG%"iG%"jG%"lG%"FG%"QG
%"kG%"nG%#suG%$conG%(allmultG%'bufferG6#%\pCopyright~(C)~2000-2010~by~Carlos~F.
~Cid~and~Daniel~Robertz.~All~rights~reserved.G6"C*>8+-%%nopsG6#9$@$/F:""!-%'RET
URNG6#7$F>7">8.7#-%"$G6$%)infinityG%&_nvarG>8(F>>8)FF>FP-%'subsopG6$/F:7*&FP6$F
:"""&FP6$F:""#&FP6$F:""$7#-FK6$FAFNFH&FP6$F:""'FF&FP6$F:"")FP?(8%,&F:Fen!""FenF
hoFen%%trueGC)>8,FH>8-&FP6$Ffo""%>8&Fen?(F7FenFenF731FcpFN/&&FP6%,&FfoFenFenFen
F[oFen6#&%4Involutive/divisionG6#Fcp&&FP6%FfoF[oFenF\qC%>F\p-FU6$/Fcp&&FP6$F[q"
"&F\qF\p@%2&F\pF_qFM@$0&F^pF_q,&F^rFenFenFenC%>8/-%(collectG6%7$-%$mapG6$f*6#F)
F76$%)operatorG%&arrowGF7*&)&T$6#&F^q6#T%,&&T'FhsFenFenFenFenF>FenF7F76(F&9%F+F
cpF1F\p&FP6%FfoFenFen-F[s6$f*F^sF7F_sF7FbsF7F7F]t&FP6%FfoFenFhnF^t%,distributed
G>FR7$-%#opG6#FR7*Fer&FP6$FfoFhn-FU6$/Fen-FU6$/F]q,(F`qFenF^rFenFenFenFaq&FP6$F
foF[oF\oFH7$&FP6%FfoFaoFen*&)&F^tF\qFbrFen&FP6%FfoFaoFhnFenFfu-%5Involutive/eca
rt_lm1G6&&FP6$FfoFenF]uF^t9&>F^p-FU6$/FcpFbrF^p>F^p-FU6$/FcpFAF^p>Fcp,&FcpFenFe
nFen@$FfpC$@%%5Involutive/janetlikeGC%>8',&FhpFenF`qFho>F\p-FU6$/Fcp,&FfwFenFho
FenF\p@$0FarFfwC%>Fer-Fgr6%7$-F[s6$f*F^sF7F_sF7*&)FdsF\tFenF>FenF7F76(F&F^tF+Fc
pF,FfwF_t-F[s6$f*F^sF7F_sF7FgxF7F7FixFdtF^tFft>FR7$Fit7*FerF]u-FU6$/Fen-FU6$/F]
q,&F`qFenFfwFenFaqFfuF\oFH7$Fiu*&)F]vFfwFenF^vFenFfuF`v>F^p-FU6$/FcpFfwF^pC$>F\
p-FU6$F]wF\p@$/FarFAC%>Fer-Fgr6%7$-F[s6$f*F^sF7F_sF7*&FdsFenF>FenF7F76&F&F^tF+F
cpF_t-F[s6$f*F^sF7F_sF7F\[lF7F7F][lFdtF^tFft>FR7$Fit7*FerF]u-FU6$/Fen-FU6$/F]q,
&F`qFenFenFenFaqFfuF\oFH7$Fiu*&F]vFenF^vFenFfuF`v>F^p-FU6$/FcpFenF^p>F^p-FU6$-%
$seqG6$/8*FA/Fh\l;F_wFNF^p>F\p-FU6$-Fe\l6$/F]qF^r/Fcp;FenFNF\o>FP-FU6$/Ffo-FU6$
/FapF^p-FU6$/F[rF\p&FP6#FfoFP7$FPFRF76#FNF7F7