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/Stafford...............................................................................................................................................................................................................................�^zK����taffordStaffordTStaffordAStafford/versionStafford/compiledStafford/copyright_StaffordStafford/dual_fracStafford/adjointStafford/Ore_lclmStafford/Ore_lcrmStafford/lclmStafford/llcStafford/CommonLeftMultipleStafford/right_div_conditionsStafford/lcrmStafford/rlcStafford/lclmRatStafford/llcRatStafford/lcrmRatStafford/rlcRatStafford/max_abs_coeffStafford/monombasisStafford/max_rightvarStafford/genallStafford/genallRatStafford/test_orderStafford/containsStafford/q_elim_JanetOreStafford/find_monomialStafford/MakeOneStafford/FindOneStafford/FindOneRatStafford/Find_h_SchmaleStafford/Find_h_LeykinStafford/FindRhoStafford/FindRho_ds1Stafford/FindRho_dsStafford/FindTStafford/FindTdsStafford/sigmanotinM,uM7R0
I1Stafford/adjointf*6$%"MG'%$AlgG%&tableG6$%"aG%#vrG6#%\pCopyright~(C)~2005-201
0~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"@)/9$%%ZEROGF2/F1
7"F4-%%typeG6$F1.%)functionG-%%subsG6$7$/%$INJG%%SURJG/F@F?F1C&>8%&9%6#Q-right_
indetsF.@$4-F66$FD%$setG-%&ERRORG6#%eoThe~loaded~version~of~algolib~is~incompat
ible.~Please~load~the~latest~one.G>FD-%$mapG6$f*6#F*F.6$%)operatorG%&arrowGF./F
1,$F1!""F.F.F.-%(convertG6$FD%%listG@%-F66$F1%'matrixG-&%'linalgG6#%*transposeG
6#-F;6$FD-FT6$f*FWF.FXF.-%3Stafford/dual_fracG6$-%'expandG6#F1T$F.F.6$F'FFF1-F;
6$FD-F\p6$F^pFFF.F.F.F.
M7R0
I.Stafford/lclmf*6%%"aG%"bG'%$AlgG%%listG6+%"cG%"iG%"nG%#vlG%#vrG%#_tG%%mAlgG%&
mTOrdG%#GBG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~Al
l~rights~reserved.G6"C*>8'&9&6#""$>8(&F;6#""%>8&-%%nopsG6#F9>8*-&%,Ore_algebraG
6#%-diff_algebraG6'-%$seqG6$7$&F?6#8%&F9FU/FV;"""FD/%%commG-%&unionG6$<#8)<#-%#
opG6#&F;6#""'/%(polynomG<$F[o-F^oFG/%%funcG&F;6#"")/%/characteristicG&F;6#""(>8
+-%6OreModules/term_orderG6$FI-%'lexdegG6$7#F[o7$Ffo-F^o6#F?>8,-%.OreModules/gb
G6$7$*&9$FZF[oFZ*&9%FZ,&FZFZF[o!""FZFbp>F^q-%'removeG6%%$hasGF^qF[o@%2""!-FF6#F
^q&F^q6#FZF`rF6F6F6F6
M7R0
I1Stafford/FindTdsf*6'%"rG%%betaG'%"aG%%listG'%$AlgGF)%,startweightG61%"iG%"jG%
"pG%"tG%"SG%#vlG%#vrG%&basisG%'lambdaG%#muG%%mAlgG%&mTOrdG%#GBG%(weightsG%$tmpG
6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~re
served.G6"C,>8)&9'6#""$>8*&&FD6#""%6#;"""9$>8'-%%nopsG6#9&>8&,&FRFOFOFO>807$,&-
%$addG6$*&&8,6#8%FO&FVF^oFO/F_o;FOFRFO&8-6#FO!""-%$seqG6$,&*&F\oFO9%FOFO&Fdo6#,
&F_oFOFOFOFfoFao>8+6$-Fho6$&F]o6#8$/FgpFbo-Fho6$&FdoFfp/Fgp;FOFX>8.-&%,Ore_alge
braG6#%-skew_algebraG6(-%#opG6#&&FD6#"#8FM/%(polynomG7$&FB6#FPFap/%%commG7%Fap-
Fgq6#&FB6#;,&FPFOFOFOFfo-Fgq6#&FD6#""'/%%funcG&FD6#"")/%/characteristicG&FD6#""
(/%.alg_relationsG&FD6#""*>817#-%"$G6$FO,*FRFOFXFOFOFO-FT6#FHFO>F_oFO?(F?FOFOF?
%%trueGC)@$-%)assignedG6#%9STAFFORD_FINDTDS_VERBOSEG-%&printG6$Q(weightsF?F`t>8
/-%6OreModules/term_orderG6%F_q-%%wdegG6$F`t7&FcpFipF`r-FgqFgt7#Fap@%%7Stafford
/FindTJanetOreGC%>82-%=OreModules/OreModulesOptionsG6$Q.GroebnerBasisF?Q)JanetO
reF?>Fen-%.OreModules/gbG6$FenFfu-Ffv6$FhvFdv>FenF[w>8(-%'removeG6%%$hasGFen7#F
cp@$0Fbw7"C$@$F]u-Fbu6$Q3successful~weightsF?F`t-%'RETURNG6#7$-%&coeffG6$&FbwFe
oFcoF_o@%3/F_oFO2FL9#>F_o,&9(FOFOFO>F_oF_p>F`t-%'subsopG6$-Fho6$/FgpF_oFhpF`tF?
F?F?F?
M7R0
I:Stafford/sigmanotinM_heurf*6('%"MG%%listG%"rG'%"dGF'%&alphaG'%$AlgGF'%&mTOrdG
6*%"aG%"bG%"fG%"iG%"mG%&sigmaG%#vlG%#vrG6#%\pCopyright~(C)~2005-2010~by~Alban~Q
uadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C->8*&9(6#""$>8+&F?6#""%>8(-%
%nopsG6#9&>8&)&F=6#,&9%"""FTFT,*-%$maxG6#-%#opG6#-%$mapG6%%'degreeGFL&FCFQFT-Fi
n6$9'FjnFT-%$minG6#-FZ6#-Fgn6%Fin9$Fjn!""FTFT>8)-%0OreModules/MultG6&F]o-%(conv
ertG6$-%$zipG6%f*6$F0F1F:6$%)operatorG%&arrowGF:*&FeoFTFSFTF:F:F:FL7#-%$seqG6$&
%'lambdaG6#8'/F_q;FTFH%"+GFNF?@$0-%7OreModules/normal_formG6%FhoFeo9)""!-%'RETU
RNG6#FN>FN*&FNFTFPFT>Fho-Fjo6&F]o-F]p6$-F`p6%f*FcpF:FdpF:FgpF:F:F:FLFhpFbqFNF?@
$FdqFjq>FN)FP*&FUFTFHFT?(F:FTFTF:%%trueGC%>Fho-Fjo6&F]o-F]p6$-F`p6%f*FcpF:FdpF:
FgpF:F:F:FLFhpFbqFNF?@$FdqFjq>FNF^rF:F:F:F:
M7R0
IFStafford/InjectiveParametrizationRat2f*6$%"RG'%$AlgG%%listG62%"aG%"bG%"cG%"dG
%"iG%"jG%"rG%"EG%"FG%"LG%#LIG%"MG%"PG%&R_adjG%#vlG%#vrG6#%\pCopyright~(C)~2005-
2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C1>8,-%EOreMod
ules/ShortestFreeResolutionRatG6$9$9%@$4-%%typeG6$F?%&tableG-%&ERRORG6#%aqthis~
version~of~OreModules~is~not~compatible~with~the~version~of~Stafford.~Please~up
date~the~packages.G@$2""#-%%nopsG6#-%#opG6$FQ-%%evalG6#F?-%'RETURNG6#7">8',&-&%
'linalgG6#%'rowdimG6#&F?6#"""!""-&F^o6#%'coldimGFaoFdo@$2FjnFQ@%/&9"6#FeoQ*nove
rboseF<Fen-FL6#%aoThe~OreRank~of~the~corresponding~module~must~be~greater~or~eq
ual~to~2.G@$/-%;OreModules/RightInverseRatG6$FboFDFhnFen>82&FD6#""$>83&FD6#""%>
81-%6OreModules/InvolutionGFip>8&-Fgo6#Feq>8*-F]oF[r>8/-%&evalmGF[r>F?-&F^o6#%%
diagG6#-%"$G6$FdoF]r?(8(FdoFdoFiq%%trueGC)>8$-%$mapG6$FV-%(convertG6$-&F^o6#%*s
ubmatrixG6%F`r;Fdo,(F]rFdoF]sFeoFdoFdo;FdoFdo%)listlistG>8--%%sortG6$-%$zipG6%f
*6$F.F/F<6$%)operatorG%&arrowGF<7$FCFDF<F<F<Fas7#-Fjr6#F]tf*FjtF<F<F<@%/&FCFco"
"!F^s@%/&FDFcoFfu%&falseG-%&evalbG6#1-%'degreeG6$Feu<$-FV6#T#-FV6#T%-F`v6$Fiu<#
FfvF<F<6&F8F[qF9F`q>8%-%'removeG6$f*6#F.F<F[uF<FduF<F<F<Fbt@%/-FS6#F^wFQC%>80-%
;Stafford/PermutationMatrixG6#7%&F^w6$FdoFQ&F^w6$FQFQ-FV6#-F`w6%%$hasGF_u7$F_xF
ax>Fas-Ffs6$-Fbr6#-%#&*G6$Fjw-%'vectorG6#FasF(>8+-%7Stafford/ElementaryRatG6%Fa
s7#-Fjr6$Ffu,&F]rFdoF]sFeoFDC%>8.7%7$7$&FbtF`x&FbtFbx-%:OreModules/LeftInverseR
atG6$-Fbr6#7$7#&Fas6#Fcz7#&Fas6#FdzFD7$7$Fcz&Fbt6$F^tFQ-Ffz6$-Fbr6#7$F[[l7#&Fas
6#Fc[lFD7$7$FdzFc[l-Ffz6$-Fbr6#7$F^[lFj[lFD>F_z-F`w6$f*FcwF<F[uF</&FC6#FQFhnF<F
<F<F_z@%0F_zFhnC&>F_z-Fdt6$F_zf*FjtF<F<F<1-%$maxG6#-FV6#-Ffs6$-Fcs6%F`vFi\l<#Fc
v%$setG-Fd]l6#-FV6#-Ffs6$-Fcs6%F`v&FDFj\lF\^lF]^lF<F<6$F9F`q>Fjw-F\x6#7%&&&F_zF
coFcoFco&F]_lFj\l-FV6#-F`w6%FgxF_u7$F\_lF__l>FasFjx>FeyFfyC'>Fjw-F\x6#7$-%$seqG
6$&Fbt6$8)FQ/Fa`l;FQF^tFcz>Fas7$-F]`l6$&Fas6#F_`lFb`lF\[l>F^w&-%:Stafford/TwoGe
neratorsRatG6&&FasFco&FasFj\l&Fas6#F^tFDF]q>F^w-%'subsopG6%/Fdo&F^wFco/FQ&F^wFj
\lFiy>Fey-Fgy6%FasF^wFD>Fey-%0OreModules/MultG6(&FeyFbq&FeyF]q&FeyFj\l&FeyFcoFj
wFD@$2F]sFiq>F`r-Fis6%-F`bl6%Fey-Fis6%F`rF]t;FQ,(FiqFdoF]sFeoFdoFdoFDFc`l;Fdo,&
FiqFdoF]sFeo>F?-F`bl6%-Fbr6#7$-F]`l6$-Feal6$/Fa`lFdo7#-Fjr6$FfuF]r/Fa`l;Fdo,&F]
sFdoFeoFdo-FV6#-Fcs6$f*6#F/F<F[uF<7$-Fjr6$Ffu,&FevFdoFeoFdo-FV6#FCF<F<6$F.F]s-F
fs6$FeyF`tF?FD-Fgq6$-Fis6%F?;,(F]rFdoFjnFeoFdoFdoF]r;FdoF]rFDF<F<F<F<
M7R0
I1Stafford/lcrmRatf*6%%"aG%"bG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-2010~by~A
lban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF*-%1Stafford/adjointG6$-
%1Stafford/lclmRatG6%-F.6$9$&9&6#"""-F.6$9%F6F7F6F*F*F*F*
M7R0
I1Stafford/FindOnef*6$'%"gG%%listG'%$AlgGF'6(%"iG%"jG%"kG%"mG%"tG%#vlG6#%\pCopy
right~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6
"C(>8'-%%nopsG6#9$>8(-%6OreModules/term_orderG6$&9%6#"""-%%tdegG6$-%#opG6#&FA6#
""$-FH6#&FA6#""%>8$FC>8%FS?(FS""#FCF6%%trueG@$4-%4Stafford/test_orderG6%&F:6#FU
&F:6#FSF<>FUFS-%1Stafford/MakeOneG6$FhnFAF3F3F3F3
M7R0
I7Stafford/ElementaryRatf*6%%#vaG%#vbG'%$AlgG%%listG6-%"aG%#apG%"bG%"cG%"gG%"iG
%"nG%#E1G%#E2G%#E3G%#E4G6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Danie
l~Robertz.~All~rights~reserved.G6"C.@%-%%typeG6$9$%'matrixG>8$-%$mapG6$%#opG-%(
convertG6$F>%)listlistG>FAF>>8*-%%nopsG6#FA@%-F<6$9%F?>8&-FC6$FE-FG6$FSFI>FUFS>
8+-F?6%FLFLf*6$F0%"jGF8F8F8@'/F>FS"""/FST#&T%6#F>""!F8F86&F1FLF-FU>8%-&%'linalg
G6#%*submatrixG6%-%0OreModules/MultG6%Ffn-%&evalmG6#7#-%$seqG6$7#&FA6#8)/F[q;F^
oFL9&;F^o,&FLF^o!""F^o;F^oF^o>8'-%:OreModules/LeftInverseRatG6$FgoF^q>Fdq-FC6$F
E-FG6$FdqFI>8(-%)simplifyG6#,*&FA6#F^oF^o-F_p6%&FUFdr&FA6#FLF^qF^oFaqF^oFhrFaq>
8,-F?6%FLFLf*FjnF8F8F8@'F]oF^o/F>F`o-F_p6%Fbo&T'6#FST*FdoF8F86*F1FLF/F^rF.FdqF(
F^q>8--F?6%FLFLf*FjnF8F8F8@'F]oF^o3/F>F^oF_oFaqFdoF8F86$F1FL>8.-F?6%FLFLf*FjnF8
F8F8@'F]oF^o/FSF^o@%2F>F`o,$&Fbo6$F>F^oFaq,&&Fbo6$F^oF^oFaqF^oF^oFdoF8F86&F1FLF
,Fgo7&-Fbp6#Ffn-Fbp6#F[s-Fbp6#Fis-Fbp6#FbtF8F8F8F8
M7R0
I7Stafford/find_monomialf*6('%"pG%(polynomG'%"vG%%listG%"mG%"eG%'_min_mG%'_min_
eG6+%"bG%"cG%"dG%"iG%"jG%"nG%#m0G%&min_eG%&min_mG6#%\pCopyright~(C)~2005-2010~b
y~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C'>8)-%%nopsG6#9%>8+
9)>8,9(?(8'"""FKF>%%trueGC$>8&-%'degreeG6$9$&FB6#FJ@$2""!FOC$>8%-%&coeffG6$FS)F
TFO@%-%%typeG6$Fen%"+GC$>6$8*8$-F"6(Fen-%%subsG6$/FT%%NULLGFB*&9&FKFinFK*&9'FK,
&FOFKFKFKFKFGFD@$2FcoFDC$>FGFbo>FDFcoC$>Fco*(-%$mulG6$,&-FQ6$Fen&FB6#8(FKFKFK/F
`q;FKF>FKF_pFKF^pFK@$FapC$>FG*(F\pFKFinFKFenFK>FDFco6$FGFDF;F;F;F;
M7R0
I1Stafford/MakeOnef*6$%"pG'%$AlgG%%listG6-%"aG%"bG%"dG%"iG%"jG%"lG%"mG%"nG%"rG%
#vlG%#vrG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~
rights~reserved.G6"C,@$/9$""!-%&ERRORG6#%Qexpecting~non-zero~polynomial~as~firs
t~argument.G>8-&9%6#""$>8.&FD6#""%>8+-%%nopsG6#FB>6$8*8$-%7Stafford/find_monomi
alG6(F;7$-%#opG6#FH-FZFP"""FgnF<%)infinityG>8)7#Fgn>8,F[o?(8'FgnFgnFM%%trueGC$>
8&-%'degreeG6$FS&FH6#F_o@$2F<FcoC$>Fjn-%$mapG6$f*6#F*F76$%)operatorG%&arrowGF7-
FZ6#-F^p6$f*6#F+F7FbpF7-%0OreModules/MultG6%T$F;T&F7F76&F*F;F'F_qT#F7F76&F/FjnF
'FD7#-%$seqG6$*()!""8(Fgn-%)binomialG6$FcoFjqFgn)&FBFhoFjqFgn/Fjq;F<Fco>F]o-F^p
6$f*FapF7FbpF7-FZ6#-F^p6$f*FjpF7FbpF7-F\q6%F;F^qF_qF7F7F`qFaqF7F76&F2F]oF'FD7#-
Feq6$)F_r,&FcoFgnFjqFiqF`r?(F_oFgnFgnFMF`oC$>Fco-Feo6$FSF_r@$FjoC$>Fjn-F^p6$f*F
apF7FbpF7-FZ6#-F^p6$f*FjpF7FbpF7F[qF7F7F`qFaqF7F7Fbq7#-Feq6$*(FhqFgnF[rFgn)FgoF
bsFgnF`r>F]o-F^p6$f*FapF7FbpF7-FZ6#-F^p6$f*FjpF7FbpF7F[sF7F7F`qFaqF7F7F]s7#-Feq
6$)FgoFjqF`r7$FjnF]oF7F7F7F7
M7R0
I6Stafford/containsunitf*6%%"GG'%#vlG%%listG'%#vrGF(6"6#%\pCopyright~(C)~2005-2
010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF+-%&evalbG6#0-%'
removeG6%%$hasG9$7$-%#opG6#9%-F96#9&7"F+F+F+F+
M7R0
I7Stafford/BasisOfModulef*6$%"RG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-2010~by
~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF)-%7OreModules/LeftInv
erseG6$-%BStafford/InjectiveParametrizationG6$9$&9"6#;""#9#9%F)F)F)F)
M7R0
I3Stafford/dual_fracf*6$%"fG'%$AlgG%&tableG6&%"dG%"gG%"hG%"iG6#%\pCopyright~(C)
~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C%>8%9$@
)-%%typeG6$F3%"+GC&>8&F3>F3""!?(F0"""F@F0-F76$F<F9C$>F3,&F3F@-F"6$-%#opG6$F@F<9
%F@>F<,&F<F@FH!"">F3,&F3F@-F"6$F<FKF@-F76$F3%"*GC&>8$F@?(8'F@F@-%%nopsG6#F3%%tr
ueG@$3-F76$-FI6$FZF3%"^G2-FI6$""#F]oF>>FX*&FXF@F]oF@>FX*$FXFN>F3*&-&%,Ore_algeb
raG6#%0dual_polynomialG6%*&F3F@FXF@FKQ&fullyF0F@-F[p6%FXFKFapFN-F76$F3F_o>F3-%'
subsopG6$/F@-F"6$-FI6$F@F3FKF3>F3-F[p6%F3FKFapF3F0F0F0F0
M7R0
I<Stafford/CommonLeftMultiplef*6%%"pG%"qG'%%varsG%%listG68%"dG%"gG%"iG%"jG%"rG%
&opvarG%$varG%(mulprocG%&ind_pG%&ind_qG%(ind_p_qG%#dpG%#dqG%'comm_pG%'comm_qG%)
comm_p_qG%#cpG%#cqG%)main_varG%-main_var_degG%"LG%"RG6#%enCopyright~(C)~2010~by
~Daniel~Robertz.~All~rights~reserved.G6"C/@$0%5JanetOre/initializedG.%%trueG-%.
JanetOre/initGFC>8*&-%2JanetOre/procvarsG6$9&""!6#""">8(""%>8)%%NULLG>8+-%(unap
plyG6%*&%#_aGFU%#_bGFUF\oF]o@$31FX9#-%%typeG6$&9"6#FXF)@&/Feo7">FW""&45-Fco6$Fe
o%'stringG-Fco6$Feo%)equationGC%>FZFeo>Fgn&-%1JanetOre/procopsG6%FMFZFM6#""$>FW
F\p?(8&FWFUFaoFI-%&ERRORG6#%0invalid~option.G>8,7#-%#opG6#-%'indetsG6#9$>8-7#-F
iq6#-F\r6#9%>83FI>F`qFU?(FCFUFUFC1F`q-%%nopsG6#FfqC&>8'FU?(FCFUFUFC31Fas-F]s6#F
`r/-%'normalG6#,&-Fgn6$&Ffq6#F`q&F`r6#FasFU-Fgn6$F`tF^t!""FS>Fas,&FasFUFUFU@$Fd
sC$>Fhr%&falseG[>F`q,&F`qFUFUFU@%FhrC)>81FI>F`qFU?(FCFUFUFCF[sC%>FasF]u?(FCFUFU
FC31FasF\s/-Fis6#,&-Fgn6$F^t&FfqFatFU-Fgn6$F_vF^tFdtFS>FasFft@$FhuC$>FauFjtF[u>
82FI>F`qFU?(FCFUFUFC1F`qFesC%>FasF]u?(FCFUFUFC3Fds/-Fis6#,&-Fgn6$&F`rF_tF`tFU-F
gn6$F`tFewFdtFS>FasFft@$FdsC$>FgvFjtF[u@%3FauFgvC$>8%-%$gcdG6&F^rFfr.84.857$Fex
Fgx7$FfrF^rC,>F`x-%0JanetOre/JBasisG6%7$/F^r7$FUFS/Ffr7$FSFUFRFZ>8.7#-Fiq6#-%*i
ntersectG6$<#-FiqF^s<#-FiqFfs>87Fdt>86Fen?&Fas-%'selectG6$f*6#F-FC6$%)operatorG
%&arrowGFC-%'memberG6$F^rT#FCFC6$F5FeyFMFIC%>8/-%'degreeG6$F^rFas>80-Ff[l6$FfrF
as@$2Faz,&Fd[lFUFi[lFUC$>FczFas>FazF^\l@$/FczFenC&?&FasFfqFIC$>8$Fe[l@$2FazFh\l
C$>FczFas>FazFh\l?&FasF`rFIC$>Fh\lFj[l@$Fj\lC$>FczFas>FazFh\l>Fd[l-Ff[l6$F^rFcz
>Fi[l-Ff[l6$FfrFcz@'2Fi[lFd[lC$>Fex-%&coeffG6%F^rFczFd[l>Fgx-F`^l6%-Fgn6$)Fcz,&
Fd[lFUFi[lFdtFfrFczFd[l2Fd[lFi[lC$>Fex-F`^l6%-Fgn6$)Fcz,&Fi[lFUFd[lFdtF^rFczFi[
l>Fgx-F`^l6%FfrFczFi[lC$>FexF_^l>FgxFc_l>88-F]y6&7$7&FexFexFUFS7&FgxFSFSFUFRFZ"
"#>89-%4JanetOre/JInvReduceG6&/,&-Fgn6$&&Fi_lFTF\qF^rFU-Fgn6$&Fj`lFgoFfrFdt7$FS
FSF`xFRFZ@%0-%$lhsG6#Fa`lFSC$>Fi_l-F]y6&7$7&F^rF^rFUFS7&FfrFSFSFUFRFZF_`l7$Fi`l
F]al7$,&Fi`lFU&-%$rhsGFcalFTFU,&F]alFU&F_bl6#F_`lFdtFCFCFCFC
M7R0
I1Stafford/FindRhof*6&%"rG%"qG'%"aG%%listG'%$AlgGF)60%"iG%"jG%"pG%"tG%"GG%"SG%#
vlG%#vrG%&basisG%'lambdaG%#muG%%mAlgG%&mTOrdG%#GBG6#%\pCopyright~(C)~2005-2010~
by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C/>8*&9'6#""$>8+&FB
6#""%>8'-%%nopsG6#9&>8&,&FK"""FSFS>8(7$,&-%$addG6$*&&8-6#8%FS&FOFhnFS/Fin;FSFKF
S&8.6#FS!""-%$seqG6$,&*&FfnFS9%FSFS&F^o6#,&FinFSFSFSF`oF[o>8,6$-Fbo6$&Fgn6#8$/F
apF\o-Fbo6$&F^oF`p/Fap;FSFQ>8/-&%,Ore_algebraG6#%-skew_algebraG6(-%#opG6#&FB6#"
#8/%(polynomG7$F[p-Faq6#&FB6#""&/%%commG7$F[p-Faq6#&FB6#""'/%%funcG&FB6#"")/%/c
haracteristicG&FB6#""(/%.alg_relationsG&FB6#""*>80-%6OreModules/term_orderG6%Fi
p-%'lexdegG6$7$F]p-Faq6#&FF6#;,&9$FSFSFSF`o7%Fcp-Faq6#F@-Faq6#&FF6#;FSFdt7#F[p>
81-%.OreModules/gbG6$FUFfs>8)-%'removeG6%%$hasGF_uFgn@$-%)assignedG6#%9STAFFORD
_FINDRHO_VERBOSEGC$-%&printG6#Q"SF=-F`v6#-%$mapG6$f*6#F.F=6$%)operatorG%&arrowG
F=-%(collectG6%Fdt7#-Fbo6$&T#6#T%/Ffw;FST'%,distributedGF=F=6(F7F^oF-FapF/FQFdu
?(FapFSFS-FM6#Fdu%%trueG@$4-Fhu6$-%&coeffG6$&FduF`pF]oF`t-%'RETURNG6#Fdx-%&ERRO
RG6#%3problem~in~FindRhoGF=F=F=F=
M7R0
I4Stafford/FindF_heurf*6'%"rG%"MG%&alphaG'%"dG%%listG'%$AlgGF*63%"aG%#e1G%#e2G%
#epG%"gG%"iG%"jG%"mG%"pG%&sigmaG%#vlG%#vrG%#MpG%&basisG%%mAlgG%&mTOrdG%&flistG6
#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~res
erved.G6"C/>8.&9(6#""$>8/&FF6#""%>8+-%%nopsG6#9'>81-%$seqG6$&%'lambdaG6#8)/Ffn;
"""FO@$-%3Stafford/genallRatG6%9%FJ7#FU-%'RETURNG6#""!>82-&%,Ore_algebraG6#%-sk
ew_algebraG6(-%#opG6#&FF6#"#8/%(polynomG7$-F]p6#FDFU/%%commG7$FU-F]p6#&FF6#""'/
%%funcG&FF6#"")/%/characteristicG&FF6#""(/%.alg_relationsG&FF6#""*>83-%6OreModu
les/term_orderG6%Feo-%%tdegG6%Fep-F]p6#FJFUF_o>8%,*-%$maxG6#-F]p6#-%$mapG6%%'de
greeGFS&FJ6#,&9$FinFinFinFin-Fcs6$9&FdsFin-F\s6#-F]p6#-Fas6%FcsF^oFds!""FinFin>
8&,*F[sFinFhsFin-%$minGF\tFatFinFin@%2FinFOC$@%1*&FirFinFOFin"#5>8'-&%)combinat
G6#%'chooseG6$F\u""#>F_u-Fau6$F]uFfu>847'-FW6$)&FDFes,&FirFinFfnFin/Ffn;Fco,(Fc
tFinFirFatFHFin)F`vF\u-FW6$,(FevFin)F`v&&F_uFen6#FinFin)F`v&F[w6#FfuFin/Ffn;Fin
-FQ6#F_u*&FevFinFdsFin-FW6$,(FdwFinFivFinF]wFinF`w@%2FMFirC$@%1FirF]u>F_u-Fau6$
FirFfu>F_uFhu>F[v7&F]v-FW6$,()F`vFirFinFivFinF]wFinF`w*&FfxFinFdsFin-FW6$,(FgxF
inFivFinF]wFinF`w>F[v7#F]v>8*Fin?(FAFinFinFA1F^y-FQ6#F[vC%>8--%0OreModules/Mult
G6&Fjs-%(convertG6$-%$zipG6%f*6$F.%"bGFA6$%)operatorG%&arrowGFA*&FgsFinF^oFinFA
FAFAFS7#FV%"+G&F[v6#F^yFF@$0-%7OreModules/normal_formG6%FeyF^oF_rFcoC$>80-%.Ore
Modules/gbG6$7$-F]p6#F^oFeyF_r@$-F\o6%Fa[lFJFfz-Fao6#Fhz>F^y,&F^yFinFinFin-%6St
afford/FindF_LeykinG6'FgsF^oFjsFSFFFAFAFAFA
M7R0
I2Stafford/FindF_HSf*6&%"vG%"qG%"rG'%$AlgG%%listG6:%&alphaG%%betaG%'lambdaG%"aG
%"fG%#fkG%%fkhkG%"gG%"iG%"jG%"kG%"nG%"tG%'vtildeG%"FG%"GG%"JG%#LMG%"RG%$OrdG%)R
_for_LMG%+Ord_for_LMG%#vlG%#vrG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~an
d~Daniel~Robertz.~All~rights~reserved.G6"C4>8:&9'6#""$>8;&FK6#""%>8/-%%nopsG6#F
O>86-&%,Ore_algebraG6#%-diff_algebraG6&-%$seqG6$7$&FO6#8,&FIF_o/F`o;"""FT/%(pol
ynomG7$8&-%#opG6#FI/%%commG7$Fho-Fjo6#&FK6#""'/%%funcG&FK6#"")>87-%6OreModules/
term_orderG6%FY-%'lexdegG6$&FO6#;,&9&FdoFdoFdoFT7%Fho-Fjo6#&FO6#;FdoFeqFio7#Fho
>88-Fen6&-F[o6$F]o/F`oFcq/FfoF\rF\pFdp>89-F\q6%F^r-%%tdegG6$Fho-Fjo6#FaqF\r@'-%
%typeG6$9$%"+G>81-%$mapG6$f*6#F4FF6$%)operatorG%&arrowGFF@%3-%$hasG6$Fbs&T#6#,&
T&FdoFdoFdo-Fat6$Fbs&T'Fet,&Fbs""#-&Ffn6#%-skew_productG6%-%'selectG6%FatFbsFjt
-%'removeGFeu&T*6#Fdo!""FbsFFFF6*FBFIF'FeqFCFOF)FKFbs-F`s6$Fbs%"*G@%3-Fat6$Fbs&
FI6#Fdq-Fat6$Fbs&FOFev>Fes,&FbsF]u-F_u6%-Fdu6%FatFbsFdv-FguF^w&FKFjuF[v>FesFbs>
FesFbs>80-%'degreeG6$FesFhv@%2""!FdwC(>8+7#-%&coeffG6$Fes)FhvFdw>85&-%4OreModul
es/lead_monG6$&F]xFjuFfr6#F]u>8$7#-F[o6$-Ffw6$FdxF^o/F`o;,&FeqFdoF]uFdoFT?(8-,&
FdwFdoF[vFdoF[vFdo%%trueGC$>F]x7$-F`x6$Fes)FhvFfy-Fjo6#F]x@$0FixFjwC%>FdxFex>8%
F]y@$2-%$mulG6$,&&FfzF_oFdoFdoFdo/F`o;Fdo,(FTFdoFeqF[vF[vFdo-Fjz6$,&&F\yF_oFdoF
doFdoF^[l>F\yFfz>F]x7$-%%subsG6$/FhvFjwFesF_z@$FbzC%>FdxFex>FfzF]y@$Fhz>F\yFfzC
%>F]x7#Fes>FdxFex>F\yF]y>847#Fdo>837"?(FFFdoFdoFF/F[]lF\]lC&>F[]l7#9%?(FfyFdoFd
o-FV6#Fh\lFhy?(F`oFdoFdo-FVF`zFhy>F[]l7$-Fjo6#F[]l-F_u6%&F]xF_o&Fh\l6#FfyFY>F[]
l-%.OreModules/gbG6$-Fgs6$f*6#F/FFF[tFF*&FbsFdoFdtFdoFFFF6$F.FhoF[]lFjp@$4-%6St
afford/containsunitG6%F[]l&FI6#Fcy&FOFa_lC%>Fh\l7$-FjoFe]l-%6Stafford/nextmonom
ialG6%&Fh\l6#F[vF`_lF\y@$/Fj_lFdo-%&ERRORG6#%<error~in~construction~of~J.G>F[]l
F\]l>8.Fdo>8(Fjw>82F\]l?(FFFdoFdoFF4-F^_l6%-Fgs6$f*Fh^lFFF[tFF-%)simplifyG6#*&F
bsFdoFdtF[vFFFFFj^lFh`lF`_lFb_lC*@$2FdoFd]lC%>F[]lFa]l?(FfyFdoFdoFd`lFhy?(F`oFd
oFdoFg]lFhy>F[]lFi]l>F[]l-Fc^l6$-Fgs6$f*Fh^lFFF[tFFFi^lFFFFFj^lF[]lFjp>F`oFdo>8
)Fjw>Fh`lF\]l?(FFFdoFdoFF4-%3Stafford/inclusionG6(F[]lFh`lFYFjp7$Fio-FjoFWFiqC'
>Fdbl,&FdblFdo)FdvF`oFdo>F`o,&F`oFdoFdoFdo>8*-F_u6%Fdbl&Fh\l6#Fd`lFY>Fh`l7$Fb]l
-F_u6%Fbs,&Ff`lFdoFdclFdoFY>Fh`l-Fc^l6$-Fgs6$f*Fh^lFFF[tFFFi^lFFFFFj^lFh`lFjp>F
f`lF]dl-%&printG6$Q"fFFFf`l>Fd`l,&Fd`lFdoFdoFdo7$Ff`l-Faal6#*&&Fh`lFjuFdoFhoF[v
FFFFFFFF
M7R0
I8Stafford/TwoGenerators2f*6&%"aG%"bG%"cG'%$AlgG%%listG6<%#asG%#bsG%#coG%"fG%#g
1G%#g2G%#h1G%#h2G%"qG%#qcG%#qsG%"rG%"sG%"tG%"vG%$tmpG%'lambdaG%#muG%'paramsG%"n
G%"GG%"RG%#vlG%#vrG%#p1G%#p2G6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~
Daniel~Robertz.~All~rights~reserved.G6"C1>8:&9'6#""$>8;&FM6#""%>87-%%nopsG6#FK@
,/9$""!-%'RETURNG6#7%9&9%7$"""Fgn/F]oFgn-Fin6#7%FfnF\o7$FgnF_o/F\oFgn-Fin6#7%Ff
nF]o7$FgnFgn43-%$hasG6$Ffn7$-%#opGFY-Fap6#FQ-F]p6$F]oF_pFfo4-F]p6$F\oF_p-Fin6#7
%FfnF\o7$Fgn*&,&F]o!""F_oF_oF_oF\oF_q@&4-F]p6$-%)simplifyG6#*&FfnF_oF]oF_qF_p-F
in6#7%,&FfnF_oF\oF_oF]oF^o43-F]p6$-Feq6#*&FfnF_oF\oF_qF_p-F]p6$-Feq6#*&F]oF_oF\
oF_qF_pFfo@$0&FM6#""(Fgn-%&ERRORG6#%_oStafford's~Theorem~only~holds~for~Weyl~al
gebras~in~characteristic~0.G>89-&%,Ore_algebraG6#%-diff_algebraG6&-%$seqG6$7$&F
Q6#%"iG&FKF^t/F_t;F_oFV/%(polynomG7$84F`p/%%commG7$Fft-Fap6#&FM6#""'/%%funcG&FM
6#"")>8$Ffn>8%F]o>8&Fio@%/-FXFcpF_oC%>83-%2Stafford/Ore_lclmG6%FfnF\oFM>8*&F_v6
#""#>8,&F_vFNC%>F_v-%.Stafford/lclmGFbv>Fdv&-%-Stafford/llcG6&F_vFfnFgnFM6$F_oF
_o>Fiv&-Fbw6&F_vF\oFgnFMFdw>8+Fgn>8/,&-%6Stafford/max_rightvarG6$FivFMF_oF_qF_o
?(FHF_oF_oFH2F_qF\xC3@$/FdvFgnC(>F_vFeu>FeuFgu>FguF_v>F_vFdv>FdvFjw>FjwF_v@%/Fj
wFgnC$>8(Fgn>8)F_o@%F[vC%>F_v-%2Stafford/Ore_lcrmG6%FdvFjwFM>FayFev>FcyFjvC%>F_
v-%.Stafford/lcrmGFiy>Fay&-%-Stafford/rlcG6&F_vFdvFgnFMFdw>Fcy,$&-Fcz6&F_vFjwFg
nFMFdwF_q>8--&Fes6#%-skew_productG6%FivF\o&FM6#F_o@%F[vC%>F_v-Fav6%F[[lFguFM>80
Fev>81FjvC%>F_v-F^wFg[l>Fi[l&-Fbw6&F_vF[[lFgnFMFdw>F[\l&-Fbw6&F_vFguFgnFMFdw>82
-F][l6%F[\lFcyFa[l>8'-%2Stafford/FindF_HSG6&Fh\lFivF\xFM>88&F\]lFfv>F\]l&F\]lFb
[l>F_v-F][l6%Fh\lF\]lFa[l>8.Fa]l>F\x,&-F_x6$Fi]lFMF_oF_qF_o@$FbxC)>Fa]l-Fbw6&Fi
]lFivF_vFM>8<&Fa]lFdw>8=&Fa]l6$F_oFgv>FivFi]l>F_v-F][l6%Fg^lFi[lFa[l>Fdv-F][l6%
,&Fd^lF_oF_vF_qFdvFa[l>Fjw,&-F][l6%Fa_lFjwFa[lF_o-F][l6%Fg^lF[\lFa[lF_o>Fay-F][
l6%FayF\]lFa[l>Fcy-F][l6%FcyF\]lFa[l>Fiu,&FiuF_o7$FayFcyF_o>Feu,&FeuF_o-F][l6%F
ayF\oFa[lF_o>Fgu,&FguF_o-F][l6%FcyF\oFa[lF_o7%FeuFguFiuFHFHFHFH
M7R0
I8Stafford/BasisOfModule2f*6$%"RG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-2010~b
y~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF)-%7OreModules/LeftIn
verseG6$-%CStafford/InjectiveParametrization2G6$9$&9"6#;""#9#9%F)F)F)F)
M7R0
I:Stafford/BasisOfModuleRatf*6$%"RG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-2010
~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF)-%:OreModules/Left
InverseRatG6$-%EStafford/InjectiveParametrizationRatG6$9$&9"6#;""#9#9%F)F)F)F)
M7R0
I2Stafford/Ore_lcrmf*6%%"aG%"bG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-2010~by~
Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF*-%$mapG6%%1Stafford/ad
jointG-%2Stafford/Ore_lclmG6%-F06$9$&9&6#"""-F06$9%F7F8F7F*F*F*F*
M7R0
I>Stafford/right_div_conditionsf*6%%"pG%"qG'%$AlgG%%listG6)%"iG%#GBG%#vlG%#vrG%
&basisG%%mAlgG%&mTOrdG6#%goCopyright~(C)~2010~by~Alban~Quadrat~and~Daniel~Rober
tz.~All~rights~reserved.G6"C)>8&&9&6#""$>8'&F96#""%>8(6$%'lambdaG%#nuG>8)-&%,Or
e_algebraG6#%-skew_algebraG6(-%#opG6#&F96#"#8/%(polynomG7$FB-FO6#&F96#""&/%%com
mG7$FB-FO6#&F96#""'/%%funcG&F96#"")/%/characteristicG&F96#""(/%.alg_relationsG&
F96#""*>8*-%6OreModules/term_orderG6%FG-%'lexdegG6$7#FD7%-FO6#F=-FO6#F7FE7#FB>8
%-%.OreModules/gbG6$7#,&*&9%"""FDFeqFeqFE!""F^p-%$mapG6$f*6#F+F46$%)operatorG%&
arrowGF4-%&coeffG6$-%7OreModules/normal_formG6%*&T$FeqFDFeqT%T'9$F4F46(F%FirF,F
]qF1F^p7$FDFEF4F4F4F4
M7R0
I7Stafford/Find_h_Leykinf*6&%"rG%"qG'%"gG%%listG'%$AlgGF)6,%"hG%"iG%"jG%"mG%"tG
%$indG%#vlG%#vrG%%mAlgG%&mTOrdG6#%goCopyright~(C)~2010~by~Alban~Quadrat~and~Dan
iel~Robertz.~All~rights~reserved.G6"C0>8*&9'6#""$>8+&F>6#""%>8'-%%nopsG6#9&>8$-
%1Stafford/FindOneG6$FKF>>8(&FM6#""">FM&FM6#""#>8,-&%,Ore_algebraG6#%-skew_alge
braG6(-%#opG6#&F>6#"#8/%(polynomG7#-F]o6#F</%%commG7#-F]o6#&F>6#""'/%%funcG&F>6
#"")/%/characteristicG&F>6#""(/%.alg_relationsG&F>6#""*>8--%6OreModules/term_or
derG6$Fen-%%tdegG6$Feo-F]o6#FB>8)-%%sortG6$7#-%"$G6#;FU-FI6#FMf*6$F.F/F96$%)ope
ratorG%&arrowGF9-%4Stafford/test_orderG6%&-%4OreModules/lead_monG6$&T#6#9$T%FX&
-F^s6$&Fas6#9%FdsFXFdsF9F96&F-FMF6F_q>FR-%$mapG6$f*6#F.F9FfrF9F`sF9F96$F1FRFiq>
FM-F^t6$f*FatF9FfrF9F`sF9F96$F-FMFiq@$-%)assignedG6#%:STAFFORD_STEPDOWN_VERBOSE
GC$-%&printG6$Q"tF9FR-F_u6$Q"hF9FM@$-Fjt6#%8STAFFORD_STEPDOWN_CHECKG-F_u6$Q5add
(t_j~*~g_i~*~h_j)F97#-%$seqG6$-%'expandG6#-%$addG6$-%0OreModules/MultG6&&FR6#8&
&FK6#8%&FMFjvF>/F[w;FU-FI6#FR/F^w;FUFGFMF9F9F9F9
M7R0
I<Stafford/ModuleIntersectionf*6%'%#L1G%)listlistG'%#L2GF''%$AlgG%%listG6,%"iG%
"jG%"qG%"GG%#GBG%%mAlgG%&mTOrdG%&basisG%#vlG%#vrG6#%\pCopyright~(C)~2005-2010~b
y~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C,>8,&9&6#""$>8-&F?6
#""%>8&-%%nopsG6#&9$6#""">8+-%$seqG6$&%'lambdaG6#8$/FX;FO,$FH""#>8)-&%,Ore_alge
braG6#%-skew_algebraG6(-%#opG6#&F?6#"#8/%(polynomG7$FQ-F`o6#&F?6#""&/%%commG7$F
Q-F`o6#&F?6#""'/%%funcG&F?6#"")/%/characteristicG&F?6#""(/%.alg_relationsG&F?6#
""*>8*-%6OreModules/term_orderG6$Fhn-%'lexdegG6$7#-FS6$FU/FX;FOFH7%-F`o6#F=-F`o
6#FC-FS6$FU/FX;,&FHFOFOFOFen>8'7$-FS6$-%$addG6$*&&&FMFW6#8%FO,&&FVFfsFO&FV6#,&F
HFOFgsFOFOFO/FgsF`r/FX;FO-FJ6#FM-FS6$-Fas6$*&&&9%FWFfsFOFisFOF]t/FX;FO-FJ6#Fit>
8(-%.OreModules/gbG6$F\sFeq>F_u-%'removeG6%%$hasGF_uF\r@%/F_u7"7#7#-%"$G6$""!FH
-%$mapG6$f*6#%"PG6$F.F/F:F:-Fbv6$f*6#F.F:6$%)operatorG%&arrowGF:-%&coeffG6$T$FM
F:F:6$FfvFM7#-FS6$Fis/Fgs;,&T#FOFOFO,$FjwFfnF:F:6$F0FHF_uF:F:F:F:
M7R0
I7Stafford/splitvariablef*6%%#_pG%#vlG%#vrG6&%"aG%"cG%"pG%"tG6#%\pCopyright~(C)
~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"@%/9$""!
7#7$F3F3C$>8%-%%subsG6$7$/9%F3/9&F3F2@%/F8F3C$>8&-%(collectG6%F2<$F>F@%,distrib
utedG@%-%%typeG6$FE%"+G-%$mapG6$f*6#F)F/6$%)operatorG%&arrowGF/7$*&)T$-%'degree
G6$F2Fen""")T&-Fgn6$F2F[oFin-F:6$7$/FenFin/F[oFinF2F/F/6&F&F>F'F@-%(convertG6$F
E%%listG7#7$*&)F>-Fgn6$FEF>Fin)F@-Fgn6$FEF@Fin-F:6$7$/F>Fin/F@FinFEC$>FE-FG6%,&
F2FinF8!""FIFJ@'/FEF37#7$FinF8FL7$F_q-%#opG6#-FQ6$f*FTF/FUF/FXF/F/FcoFdo7$F_qFi
oF/F/F/F/
M7R0
I:Stafford/MainStepExtendedf*6(%"aG%"bG%"cG%#u1G%#u2G'%$AlgG%%listG6B%#asG%#bsG
%#coG%"fG%#g1G%#g2G%#h1G%#h2G%"qG%#qcG%#qsG%"rG%"sG%"tG%"vG%$tmpG%'lambdaG%#muG
%'paramsG%"nG%"GG%"RG%#vlG%#vrG%#p1G%#p2G%#t1G%#t2G%#t3G%%mAlgG%&mTOrdG%#GBG6#%
goCopyright~(C)~2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G
6"C4@$0%5Stafford/initializedG.%%trueG-%.Stafford/initGFP@$5/9'""!/9(Fgn-%&ERRO
RG6#%Dexpecting~u1~and~u2~to~be~non-zero.G>8:&9)6#""$>8;&Fao6#""%>87-%%nopsG6#F
_o@$/9&Fgn-%'RETURNG6#7%9$9%7$FgnFgn@$5/FepFgn/FfpFgn-F[o6#%Mdon't~know~yet~wha
t~to~do~if~a~=~0~or~b~=~0.G@$0&Fao6#""(Fgn-F[o6#%_oStafford's~Theorem~only~hold
s~for~Weyl~algebras~in~characteristic~0.G>89-&%,Ore_algebraG6#%-diff_algebraG6&
-%$seqG6$7$&Feo6#%"iG&F_oFdr/Fer;"""Fjo/%(polynomG7#84/%%commG7$F]s-%#opG6#&Fao
6#""'/%%funcG&Fao6#"")>8$Fep>8%Ffp>8&Fgp@%/-F\p6#FeoFirC%>83-%2Stafford/Ore_lcl
mG6%FepF`pFao>8*&Fht6#""#>8,&FhtFboC%>Fht-%.Stafford/lclmGF[u>F]u&-%-Stafford/l
lcG6&FhtFepFgnFao6$FirFir>Fbu&-F[v6&FhtF`pFgnFaoF]v>8+Fgn@$-%)assignedG6#%1STAF
FORD_VERBOSEGC%-%&printG6$Q#h1FPF]u-F[w6$Q"qFPFbu-F[w6$Q+q*c~+~h1*aFP-%'expandG
6#,&-%0OreModules/MultG6%FbuF`pFaoFir-Fiw6%F]uFepFao!"">8/-%6Stafford/max_right
varG6$FbuFao?(FPFirFirFP2FgnF_xC5@$Fev-F[w6$Q"rFPF_x@$/F]uFgnC(>FhtF]t>F]tF_t>F
_tFht>FhtF]u>F]uFcv>FcvFht@%/FcvFgnC$>8(Fgn>8)Fir@%FctC%>Fht-%2Stafford/Ore_lcr
mG6%-Fiw6%F]uFfnFao-Fiw6%FcvFinFaoFao>FgyF^u>FiyFcuC'>80F`z>81Fbz>Fht-%1Staffor
d/lcrmRatG6%FhzFjzFao>Fgy&-%0Stafford/rlcRatG6&FhtFhzFgnFaoF]v>Fiy,$&-Fb[l6&Fht
FjzFgnFaoF]vF]x>8-Fhw@%FctC%>Fht-Fjt6%Fj[lF_tFao>FhzF^u>FjzFcuC%@%-%$hasG6$-%&d
enomG6#Fj[lF_o>Fht-%;OreModules/SyzygyModuleRatG6$-%&evalmG6#7$7#Fj[l7#F_tFao>F
ht-%8OreModules/SyzygyModuleGF]]l>Fhz&FhtF]v>Fjz,$&Fht6$FirF`uF]x>82-Fiw6&FjzFi
nFiyFao@$FevC&-F[w6$Q"sFPFhz-F[w6$Q"tFPFjz-F[w6$Q,s*qc~-~t*bsFP-Few6#,&-Fiw6%Fh
zFj[lFaoFir-Fiw6%FjzF_tFaoF]x-F[w6$Q"vFPF^^l>88-%2Stafford/StepDownG6&F^^lFbuF_
xFao>8.&Fg_l6#Fir>8'&Fg_lFgo>F_x-Fax6$F\`lFao@$Fev-F[w6$Q&new~rFPF_x@$FdxC)>8<&
Fg_lF_u>8=&Fg_lFbo>FbuF\`l>Fht-Fiw6%F_alFhzFao>F]u-Fiw6%,&F\alFirFhtF]xF]uFao>F
cv,&-Fiw6%FhalFcvFaoFir-Fiw6%F_alFjzFaoFir@$FevC$Fjv-F[w6$Q#h2FPFcv>Fgy-Fiw6%Fg
yF``lFao>Fiy-Fiw6%FiyF``lFao>Fat,&FatFir7$FgyFiyFir>F]t,&F]tFir-Fiw6&FfnFgyF`pF
aoFir>F_t,&F_tFir-Fiw6&FinFiyF`pFaoFir@$-Ffv6#%/STAFFORD_CHECKGC&>8A-&F[r6#%-sk
ew_algebraG6(-Fbs6#&Fao6#"#8/F[s7'-FbsF]p&F]sF^`l&85F^`l&F[elF_u&F[elFbo/F_s7'F
idlFjdlF\elF]elFasFgs/%/characteristicGFaq/%.alg_relationsG&Fao6#""*>8B-%6OreMo
dules/term_orderG6%F[dl-%'lexdegG6$&Feo6#;,&F_xFirF`uFirF]x7(FidlFjdlF\elF]el-F
bs6#&Feo6#;Fir,&F_xFirFirFirFhdl7&FidlFjdlF\elF]el>8C-%.OreModules/gbG6$7%,&*&F
`pFirFidlFirFirFjdlF]x,&*&F]tFirFidlFirFirF\elF]x,&*&F_tFirFidlFirFirF]elF]xFhe
l-F[w6$Q&checkFP-%$mapG6$f*FdrFP6$%)operatorG%&arrowGFP-%(collectG6%Fep7%&T#F^`
l&FfhlF_u&FfhlFbo%,distributedGFPFP6$F?F[el-%'removeG6%Fe\lF\glF]s7%F]tF_tFatFP
FPFPFP
M7R0
I6Stafford/max_rightvarf*6$%"pG'%$AlgG%%listG6%%"rG%"vG%#vrG6#%\pCopyright~(C)~
2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C'>8&&9%6
#""%>8%-%*intersectG6$-%'indetsG6#9$<#-%#opG6#F2>8$-%%nopsGFC?(F/"""FIF/31FIFE4
-%'memberG6$&F26#FEF8>FE,&FEFI!""FIFEF/F/F/F/
M7R0
I6Stafford/FindF_Leykinf*6'%"rG%"MG%&alphaG'%"dG%%listG'%$AlgGF*65%"aG%"fG%"gG%
"iG%"jG%"mG%"pG%"tG%&sigmaG%#vlG%#vrG%"LG%#MpG%#N1G%#N2G%&basisG%%mAlgG%&mTOrdG
%'Mp_oldG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~
rights~reserved.G6"C/>8-&9(6#""$>8.&FH6#""%>8)-%%nopsG6#9'>83-%$seqG6$&%'lambda
G6#8'/Fhn;"""FQ@$-%3Stafford/genallRatG6%9%FL7#FW-%'RETURNG6#""!>84-&%,Ore_alge
braG6#%-skew_algebraG6(-%#opG6#&FH6#"#8/%(polynomG7$-F_p6#FFFW/%%commG7$FW-F_p6
#&FH6#""'/%%funcG&FH6#"")/%/characteristicG&FH6#""(/%.alg_relationsG&FH6#""*>85
-%6OreModules/term_orderG6%Fgo-%%tdegG6%Fgp-F_p6#FLFWFao>8%-%5Stafford/sigmanot
inMG6(F`o9$FU9&FHFar>8,-%$addG6$-%0OreModules/MultG6'F`s&FUFgnF[sFenFHFin>8+-%3
Stafford/tsigmainMG6&F`oFQFbsFH>80-%.OreModules/gbG6$7$-F_p6#F`oFbsFar@$-F^o6%F
`tFL7#FX-Fco6#F[s?(FCF[oF[oFC%%trueGC(>8&-F"6'F_sF`t-Fgs6%F[tF`sFHFUFH>8*-Fds6$
-Fgs6'F`sFisFauFenFHFin>81-Fbt6$7$FetFguFar@$-F^o6%F]vFLFao-Fco6#Fau>82-Fbt6$7$
Fet-Fgs6%F[tFguFHFar@%0F]vFgvC'>8/-%<Stafford/ModuleIntersectionG6%-%$mapG6$f*6
#%"PG6#F1FCFC-Ffw6$f*F[xFC6$%)operatorG%&arrowGFC-%&coeffG6$T$F_sFCFC6$FjwF_s7#
T#FCFC6$F=FWF`t7#-Ffw6$f*F[xFCF_xFC-Fcx6$FhxF_sFCFC6$F4FguFaoFH>86F`t>F`t-Fbt6$
7$Fet-F_p6#-Ffw6$f*FiwF[xFCFC-Fds6$*&&F_s6#8$F[o&FfnF`zF[o/Faz;F[oFhxFCFC6$F3FQ
FawFar@$4-%2Stafford/containsG6%FbyF`tFar-%&ERRORG6#%9does~not~contain~old~Mp!G
@$-Fiz6%F`tFbyFar-F\[l6#%6new~Mp~equals~old~Mp!G-Fco6#,&FauF[oF[sF[oFCFCFCFC
M7R0
I6Stafford/nextmonomialf*6%%"mG'%%varsG%%listG'%"bGF(6%%"iG%"lG%"nG6#%\pCopyrig
ht~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C(
>8%-%%nopsG6#9%>8&7#-%$seqG6$-%'degreeG6$9$&F86#8$/FE;"""F4>FEFH?(F1FHFHF131FEF
41&9&FD&F:FDC$>FP""!>FE,&FEFHFHFH@$FL>FP,&FPFHFHFH-%$mulG6$)FCFPFFF1F1F1F1
M7R0
I*StaffordT=6"%&falseGE\[len%.max_abs_coeffGf*F$F$6#%goCopyright~(C)~2010~by~Al
ban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF$C$30%5Stafford/initializ
edG.%%trueG0-%.Stafford/initGF$""!-%7Stafford/max_abs_coeffG6#9"F$F$F$%,FindRho
_ds1Gf*F$F$6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~Al
l~rights~reserved.GF$C$F,-%5Stafford/FindRho_ds1GF7F$F$F$%,normalf_locGf*F$F$F;
F$C$F,-%5Stafford/normalf_locGF7F$F$F$%'llcRatGf*F$F$F;F$C$F,-%0Stafford/llcRat
GF7F$F$F$%'FindF2Gf*F$F$F;F$C$F,-%0Stafford/FindF2GF7F$F$F$%.find_monomialGf*F$
F$F;F$C$F,-%7Stafford/find_monomialGF7F$F$F$%*dual_fracGf*F$F$F;F$C$F,-%3Staffo
rd/dual_fracGF7F$F$F$%4MainStepExtendedRatGf*F$F$F)F$C$F,-%=Stafford/MainStepEx
tendedRatGF7F$F$F$%+FindRho_dsGf*F$F$F;F$C$F,-%4Stafford/FindRho_dsGF7F$F$F$%-c
ontainsunitGf*F$F$F;F$C$F,-%6Stafford/containsunitGF7F$F$F$%(lcrmRatGf*F$F$F;F$
C$F,-%1Stafford/lcrmRatGF7F$F$F$%*inclusionGf*F$F$F;F$C$F,-%3Stafford/inclusion
GF7F$F$F$%-FindF_HS_RatGf*F$F$F;F$C$F,-%6Stafford/FindF_HS_RatGF7F$F$F$%)Ore_lc
lmGf*F$F$F;F$C$F,-%2Stafford/Ore_lclmGF7F$F$F$%)MainStepGf*F$F$F;F$C$F,-%2Staff
ord/MainStepGF7F$F$F$%,sigmanotinMGf*F$F$F;F$C$F,-%5Stafford/sigmanotinMGF7F$F$
F$%'rlcRatGf*F$F$F;F$C$F,-%0Stafford/rlcRatGF7F$F$F$%)FindF_HSGf*F$F$F;F$C$F,-%
2Stafford/FindF_HSGF7F$F$F$%-max_rightvarGf*F$F$F;F$C$F,-%6Stafford/max_rightva
rGF7F$F$F$%/Find_h_SchmaleGf*F$F$F)F$C$F,-%8Stafford/Find_h_SchmaleGF7F$F$F$%)O
re_lcrmGf*F$F$F;F$C$F,-%2Stafford/Ore_lcrmGF7F$F$F$%,MainStepRatGf*F$F$F;F$C$F,
-%5Stafford/MainStepRatGF7F$F$F$%'genallGf*F$F$F;F$C$F,-%0Stafford/genallGF7F$F
$F$%*tsigmainMGf*F$F$F;F$C$F,-%3Stafford/tsigmainMGF7F$F$F$%+gettmpnameGf*F$F$6
#%\pCopyright~(C)~2009-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~res
erved.GF$C$F,-%4Stafford/gettmpnameGF7F$F$F$%-nextmonomialGf*F$F$F;F$C$F,-%6Sta
fford/nextmonomialGF7F$F$F$%+monombasisGf*F$F$F;F$C$F,-%4Stafford/monombasisGF7
F$F$F$%3copyright_StaffordGf*F$F$F;F$C$F,-%<Stafford/copyright_StaffordGF7F$F$F
$%(MakeOneGf*F$F$F;F$C$F,-%1Stafford/MakeOneGF7F$F$F$%,FindF_BjorkGf*F$F$F;F$C$
F,-%5Stafford/FindF_BjorkGF7F$F$F$%-FindF_guess1Gf*F$F$F;F$C$F,-%6Stafford/Find
F_guess1GF7F$F$F$%*genallRatGf*F$F$F;F$C$F,-%3Stafford/genallRatGF7F$F$F$%(Find
OneGf*F$F$F;F$C$F,-%1Stafford/FindOneGF7F$F$F$%$rlcGf*F$F$F;F$C$F,-%-Stafford/r
lcGF7F$F$F$%+FindF_heurGf*F$F$F;F$C$F,-%4Stafford/FindF_heurGF7F$F$F$%.multiind
exdivGf*F$F$F;F$C$F,-%7Stafford/multiindexdivGF7F$F$F$%1MainStepExtendedGf*F$F$
F)F$C$F,-%:Stafford/MainStepExtendedGF7F$F$F$%(FindRhoGf*F$F$F;F$C$F,-%1Staffor
d/FindRhoGF7F$F$F$%(adjointGf*F$F$F;F$C$F,-%1Stafford/adjointGF7F$F$F$%+test_or
derGf*F$F$F;F$C$F,-%4Stafford/test_orderGF7F$F$F$%,FindF_guessGf*F$F$F;F$C$F,-%
5Stafford/FindF_guessGF7F$F$F$%3CommonLeftMultipleGf*F$F$6#%enCopyright~(C)~201
0~by~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%<Stafford/CommonLeftMultipleG
F7F$F$F$%$llcGf*F$F$F;F$C$F,-%-Stafford/llcGF7F$F$F$%&FindTGf*F$F$F;F$C$F,-%/St
afford/FindTGF7F$F$F$%%lclmGf*F$F$F;F$C$F,-%.Stafford/lclmGF7F$F$F$%)containsGf
*F$F$F;F$C$F,-%2Stafford/containsGF7F$F$F$%)StepDownGf*F$F$F;F$C$F,-%2Stafford/
StepDownGF7F$F$F$%%lcrmGf*F$F$F;F$C$F,-%.Stafford/lcrmGF7F$F$F$%-FindF_LeykinGf
*F$F$F;F$C$F,-%6Stafford/FindF_LeykinGF7F$F$F$%1sigmanotinM_heurGf*F$F$F;F$C$F,
-%:Stafford/sigmanotinM_heurGF7F$F$F$%+FindOneRatGf*F$F$F;F$C$F,-%4Stafford/Fin
dOneRatGF7F$F$F$%.Find_h_LeykinGf*F$F$F)F$C$F,-%7Stafford/Find_h_LeykinGF7F$F$F
$%.splitvariableGf*F$F$F;F$C$F,-%7Stafford/splitvariableGF7F$F$F$%5right_div_co
nditionsGf*F$F$F)F$C$F,-%>Stafford/right_div_conditionsGF7F$F$F$%,StepDownRatGf
*F$F$F;F$C$F,-%5Stafford/StepDownRatGF7F$F$F$%0q_elim_JanetOreGf*F$F$F)F$C$F,-%
9Stafford/q_elim_JanetOreGF7F$F$F$%(lclmRatGf*F$F$F;F$C$F,-%1Stafford/lclmRatGF
7F$F$F$%(FindTdsGf*F$F$F;F$C$F,-%1Stafford/FindTdsGF7F$F$F$F$
M7R0
I1Stafford/versionQ)16.02.106"F$
M7R0
I2Stafford/Ore_lclmf*6%%"aG%"bG'%$AlgG%%listG6#%"gG6#%\pCopyright~(C)~2005-2010
~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C$>8$-&%,Ore_algeb
raG6#%+skew_gcdexG6&9$9%&&9&6#""%6#"""&F<F?7%-&F46#%-skew_productG6%&F1F=F8FAFH
,$&F16#""&!""F.F.F.F.
M7R0
I9Stafford/q_elim_JanetOref*6&%"rG%"qG%#vfG'%$AlgG%%listG6.%"iG%"jG%"kG%"nG%"JG
%"LG%"SG%#vlG%#vrG%$varG%$opsG%(weightsG6#%goCopyright~(C)~2010~by~Alban~Quadra
t~and~Daniel~Robertz.~All~rights~reserved.G6"C*>8+&9'6#""$>8,&F?6#""%>8'-%%nops
G6#FC>8-7$-%#opG6#F=-FPFK>8.7#-%$seqG6$-%%weylG6$&FC6#8$&F=Fgn/Fhn;"""FH>8/7#-%
"$G6$F\o,$FH""#>8&F\o?(F:F\oF\oF:%%trueGC*@$-%)assignedG6#%7STAFFORD_ELIMQ_VERB
OSEG-%&printG6$Q0elim~q:~weightsF:F^o>8(-%0JanetOre/JBasisG6%7$/9%7$F\o""!/9&7$
F\qF\o-%$zipG6%f*6$F,F-F:6$%)operatorG%&arrowGF:/9$FjpF:F:F:FMF^oFT>8*-%'remove
G6$f*6#F,F:FeqF:-%$hasG6$-%$lhsG6#Fiq&T#6#;T&!""F:F:6&F4FCF%FiqFdp@$0F[r7"C$@$F
[pC$-F`p6$Q"SF:F[r-F`p6$Q;elim~q:~successful~weightsF:F^o-%'RETURNG6#7%-Fer6#&F
[r6#F\o&-%$rhsGF_tFat&Fct6#Fdo>8)-F]r6%Fbr-%:JanetOre/JLeadingMonomialG6$Fdp-Fa
q6%f*FdqF:FeqF:FhqF:F:F:FMF^o&FC6#;FiqF\s@$/-FJ6#F[r-FJ6#Fht-F[t6#F`s>Ffo,&FfoF
\oF\oF\o>F^o-%'subsopG6$-FW6$/FhnFfo/Fhn;,&FHF\oFiqF\oFcoF^oF:F:F:F:
M7R0
I5Stafford/FindRho_ds1f*6&%"rG%"qG'%"aG%%listG'%$AlgGF)60%"iG%"jG%"pG%"tG%"SG%#
vlG%#vrG%&basisG%'lambdaG%#muG%%mAlgG%&mTOrdG%#GBG%(weightsG6#%\pCopyright~(C)~
2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C,>8)&9'6
#""$>8*&FB6#""%>8'-%%nopsG6#9&>8&,&FK"""FSFS>807$,&-%$addG6$*&&8,6#8%FS&FOFhnFS
/Fin;FSFKFS&8-6#FS!""-%$seqG6$,&*&FfnFS9%FSFS&F^o6#,&FinFSFSFSF`oF[o>8+6$-Fbo6$
&Fgn6#8$/FapF\o-Fbo6$&F^oF`p/Fap;FSFQ>8.-&%,Ore_algebraG6#%-skew_algebraG6(-%#o
pG6#&FB6#"#8/%(polynomG7$F[p-Faq6#&FB6#""&/%%commG7$F[p-Faq6#&FB6#""'/%%funcG&F
B6#"")/%/characteristicG&FB6#""(/%.alg_relationsG&FB6#""*>817#-%"$G6$FS,*FKFS-F
M6#FFFSFQFS-FM6#F@FS>FinFS?(F=FSFSF=%%trueGC)@$-%)assignedG6#%;STAFFORD_FINDRHO
DS_VERBOSEG-%&printG6$Q2find~rho:~weightsF=Ffs>8/-%6OreModules/term_orderG6%Fip
-%%wdegG6$Ffs7'F]p-Faq6#&FF6#;,&9$FSFSFSF`oFcp-FaqF_t-Faq6#&FF6#;FSF\v7#F[p>FU-
%.OreModules/gbG6$FUF^u>8(-%'removeG6%%$hasGFU7#F]p?(FapFSFS-FM6#FivFbt@$4-F]w6
$-%&coeffG6$&FivF`pF]oFhuC$@$Fet-Fjt6$Q=find~rho:~successful~weightsF=Ffs-%'RET
URNG6#Ffw>FinFio>Ffs-%'subsopG6$-Fbo6$/FapFin/Fap;FS,(FKFSF\tFSF\vF`oFfsF=F=F=F
=
M7R0
I5Stafford/FindF_Bjorkf*6&%"rG%$rhoG'%"dG%%listG'%$AlgGF)6<%&alphaG%&alistG%%ad
f0G%"fG%#f0G%"iG%"jG%"kG%"lG%"mG%'next_tG%"tG%"LG%"MG%'M_testG%&MlistG%#vlG%#vr
G%&basisG%%mAlgG%&mTOrdG%'vl_degG%$lenG%$indG%#nfG%"wG6#%\pCopyright~(C)~2005-2
010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C:>84&9'6#""$>8
5&FN6#""%@$4-%$hasG6$9%FR-%'RETURNG6#""!>8--%%nopsG6#9&>86-%$seqG6$&%'lambdaG6#
8)/Fho;"""F[o>87-&%,Ore_algebraG6#%-skew_algebraG6(-%#opG6#&FN6#"#8/%(polynomG7
#Fao/%%commG7$Fao-Fep6#&FN6#""'/%%funcG&FN6#"")/%/characteristicG&FN6#""(/%.alg
_relationsG&FN6#""*>88-%6OreModules/term_orderG6%F]p-%'lexdegG6$7#&FR6#9$7%-Fep
6#&FR6#;,&F_sF[pF[pF[p!""-Fep6#&FR6#;F[p,&F_sF[pFgsF[pFaoF\q>81-%.OreModules/gb
G6$7#-Fco6$*&FenF[pFeoF[pFioFer>80-%$mapG6$f*6#F2FI6$%)operatorG%&arrowGFI&-%4O
reModules/lead_monG6$F_sT#6#""#FIFI6$FAFerF_t>8,-Fjt6$f*F]uFIF^uFI-%$minG6#-Fep
6#-Fjt6%%'degreeG-%'selectG6%FYFeu&FfoF^s&T%6#T(FIFI6(F9FhtF>FRF%F_s7#-%"$G6#Fj
o>8:Fju@$-%)assignedG6#%4FINDF_BJORK_VERBOSEGC$-%&printG6#Fht-F\x6#Fju>8$Fen>8%
7">837#F_t>8'Fdx>8/Fdx>8.F[p>89Fin>8=%%NULLG?(FIF[pF[pFI2Fin-%(convertG6$Fju%"+
GC'>Fax-%0OreModules/MultG6%F]yFaxFN>Fcx7$-Fep6#FcxFax?(FIF[pF[pFI%%trueGC+>8()
&FLF^sF_y?(FIF[pF[pFIFczC&>8&-F\z6&Fax-Ffy6$-%$zipG6%f*6$F2F3FIF^uFI*&F_sF[pFen
F[pFIFIFIF_o7#FboFhyFfzFN>8<-%7OreModules/normal_formG6%F\[lF_tFer@$0Fi[lFin[>F
fz*&FfzF[pFhzF[p>82-Fat6$7$-Fep6#F_tFi[lFer@$Ffw-F\x6$Q'M_testFIFc\l>Fht-Fjt6$f
*F]uFIF^uFIFauFIFIFhuFc\l>Fju-Fjt6$f*F]uFIF^uFIF^vFIFIF^wF_w@$FfwC$F[xF^x>F_y,&
F_yF[pF[pF[p@$0FjuFdwC'>FdwFju>Fix7$-Fep6#FixFfz>F_tFc\l>Ffx7$-Fep6#FfxF_tF_\l@
$Ffw-F\x6$Q#f0FIFfz@$FdyC(>8;-Fgv6$f*F]uFIF^uFI0-%(collectG6$,&-F\z6%Feu&T&F^sF
]wF[p-F\z6%Fh_lFeuF]wFgs&T)6#T,FinFIFI6,F-FaxF(F_oF+FNF>FRF%F_sF_w@%2-F]o6#F]_l
F[oC'@$/F]_lFdx>F]_l7#F[p@$Ffw-F\x6$Q$indFIF]_l>F]y-%1Stafford/FindTdsG6'F_sFen
-Fjt6$f*F]uFIF^uFI-F\z6&FeuFh_lT'T*FIFI6*F-FaxF(F_oF1FfzF+FNF]_lFNFay>Fi[l-Fjt6
$f*F]uFIF^uFI-F[\l6%F_s&Feu6#F[pF[wFIFI6&F<FfxFAFer7#-Fco6$*&-F\z6'&F]yFablFax&
F_oFgoFfzFNF[pFeoF[pFio@$0Fi[l7#-Faw6$FinF[o>F]y-F`al6'F_sFen7#-Fco6$-F\z6&FaxF
jblFfzFNFioFNFay>F]yFacl>Fay&F]yFfu>F]yFibl@$Ffw-F\x6$Q'next_tFIF]y>F[y7$-Fep6#
F[yF]y@%0FixFdx>Ffz&Fix6#Fgs>FfzFin?(8+,&-F]oF`^lF[pFgsF[pFgsF[pFczC$>Ffz,&&Fix
6#F[elF[pFfzF[p@$-Fgw6#%2FINDF_BJORK_CHECKGC)@$Ffw-F\x6$Q*current~fFIFfz>F\[l-F
\z6&&FcxFbel-Ffy6$-Fb[l6%f*Fe[lFIF^uFIFf[lFIFIFIF_oFg[lFhyFfzFN@$Ffw-F\x6$Q%tes
tFIF[el>F_t-Fat6$7$-Fep6#&FfxFbelF\[lFer>Fht-Fjt6$f*F]uFIF^uFIFauFIFIFhuF_t>Fju
-Fjt6$f*F]uFIF^uFIF^vFIFIF^wF_w@$Fdy-%&ERRORG6#%8problem~in~FindF_Bjork.GFfzFIF
IFIFI
M7R0
I5Stafford/StepDownRatf*6&%"vG%"qG%"rG'%$AlgG%%listG68%"aG%"bG%"dG%#dgG%"fG%#fj
G%"gG%"hG%"iG%"jG%"mG%"nG%#qsG%$rhoG%"uG%#vlG%#vrG%$indG%&basisG%%mAlgG%&mTOrdG
%#GBG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~righ
ts~reserved.G6"C3>80-%5Stafford/FindF_guessG6&9$9%9&9'@$0FG7"-%'RETURNG6#FG>83&
FN6#""$>84&FN6#""%>8/-%%nopsG6#FV>8'-%7Stafford/splitvariableG6%FK&FV6#FM&FenFd
o>8&-%$mapG6$f*6#F,FD6$%)operatorG%&arrowGFD&FK6#"""FDFDFDF_o>8*-Fio6$f*F\pFDF]
pFD&FK6#""#FDFDFDF_o>8.-F\o6#Fgo@$-%)assignedG6#%8STAFFORD_STEPDOWN_CHECKG-%&pr
intG6$Q3v~-~add(d_i~*~g_i)FD-%'expandG6#,&FKFbp-%$addG6$-%0OreModules/MultG6%&F
go6#8,&FdpFcrFN/Fdr;FbpF\q!""@$-Faq6#%:STAFFORD_STEPDOWN_VERBOSEGC$-Feq6$Q"dFDF
go-Feq6$Q"gFDFdp>8+-%0Stafford/Find_hG6&FMFLFdpFN@$Fjr-Feq6$Q"hFDFes>82""!>8(F_
t?(8-FbpFbp-F\o6#Fes%%trueGC3>8%-Fio6$f*F\pFDF]pFD-F`r6%FK&T#6#T%T(FDFD6(F3FesF
5FctF)FNFdp@$FjrC$-Feq6$Q"jFDFct-Feq6$Q"bFDFit@%/F^tF_t>81-%4Stafford/FindRho_d
sG6&FMFLFitFN>F`v-Fbv6&FMFL7$-%#opG6#FitF^tFN@$Fjr-Feq6$Q$rhoFDF`v@$F`qC'>86&%'
lambdaGFap>87-&%,Ore_algebraG6#%-skew_algebraG6(-Fiv6#&FN6#"#8/%(polynomG7#Fbw/
%%commG7$Fbw-Fiv6#&FN6#""'/%%funcG&FN6#"")/%/characteristicG&FN6#""(/%.alg_rela
tionsG&FN6#""*>88-%6OreModules/term_orderG6%Ffw-%%tdegG6$-Fiv6#FenFbwFdx>89-%.O
reModules/gbG6$7#*&FLFbpFcwFbpF]z-Feq6$Q#nfFD7$-%$seqG6$-%7OreModules/normal_fo
rmG6%*&-F`r6%F`v&FitFcrFNFbpFcwFbpFgzF]zFfr-Fe[l6%*&-F`r6%F`vF^tFNFbpFcwFbpFgzF
]z>8)-%/Stafford/FindFG6&FMF`vFgoFN@$Fjr-Feq6$Q#fjFDFa\l>Fa\l-F`r6%Fa\l&Fes6#Fc
tFN>Fat,&FatFbpFa\lFbp@$Fjr-Feq6$Q"fFDFat>Ffw-Fhw6(F]x/Fcx7%Fcw&%#muGFap&Fj]lFi
p/Ffx7&FcwFi]lF[^lFhxF]yFbyFgy>F]z-F_z6%Ffw-%'lexdegG6$7$Fcw-Fiv6#&Fen6#;FMFhr7
%-Fiv6#&Fen6#;Fbp,&FMFbpFhrFbpFi]lF[^lFh]l>Fgz-Fiz6$7$,&F\[lFbpFi]lFhr,&*&-F`r6
%FKFatFNFbpFcwFbpFbpF[^lFhrF]z@$Fjr-Feq6$Q#GBFDFgz>FG-%'selectG6$f*6#F4FDF]pFD3
4-%$hasG6$-%&coeffG6$FKFcw&F`u6#;T&Fhr0-%(collectG6%Fi`l7$-Fiv6#F`u-Fiv6#T'%,di
stributedGF_tFDFD6(F<FenF'FMF;FVFgz@$FP-FS6#7&-Fj`l6$&FGFapFcw,$-Fj`l6$FbblFi]l
Fhr,$-Fj`l6$FbblF[^lFhrFat@$2FctFdt>F^t,&F^tFbp-F`r6%FKFa\lFNFbp-%&ERRORG6#%8pr
oblem~in~StepDownRat.GFDFDFDFD
M7R0
I@Stafford/TwoStrongGeneratorsRatf*6(%"aG%"bG%"cG%#u1G%#u2G'%$AlgG%%listG6&%"iG
%#vlG%#vrG%"LG6#%goCopyright~(C)~2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~
rights~reserved.G6"C'@$5/9'""!/9(F:-%&ERRORG6#%Dexpecting~u1~and~u2~to~be~non-z
ero.G>8%&9)6#""$>8&&FD6#""%>8'-%'selectG6$f*6#F.F46$%)operatorG%&arrowGF4/-%'de
greeG6$&9$FE<#-%#opG6#T#F:F4F46$F0FH-%(convertG6$-%;OreModules/SyzygyModuleRatG
6$-%&evalmG6#7%7#Fen7#9%7#9&FD%)listlistG@%0FM7"7%FenFho7$F:F:-%=Stafford/MainS
tepExtendedRatG6(FenFhoFjoF9F<FDF4F4F4F4
M7R0
I*StaffordA=6"%&falseGE\[ljo%2BasisOfModuleRat2Gf*F$F$6#%\pCopyright~(C)~2005-2
010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF$C$30%5Stafford/
initializedG.%%trueG0-%.Stafford/initGF$""!-%;Stafford/BasisOfModuleRat2G6#9"F$
F$F$%.max_abs_coeffGf*F$F$6#%goCopyright~(C)~2010~by~Alban~Quadrat~and~Daniel~R
obertz.~All~rights~reserved.GF$C$F,-%7Stafford/max_abs_coeffGF7F$F$F$%,FindRho_
ds1Gf*F$F$F)F$C$F,-%5Stafford/FindRho_ds1GF7F$F$F$%,normalf_locGf*F$F$F)F$C$F,-
%5Stafford/normalf_locGF7F$F$F$%'llcRatGf*F$F$F)F$C$F,-%0Stafford/llcRatGF7F$F$
F$%'FindF2Gf*F$F$F)F$C$F,-%0Stafford/FindF2GF7F$F$F$%.find_monomialGf*F$F$F)F$C
$F,-%7Stafford/find_monomialGF7F$F$F$%*dual_fracGf*F$F$F)F$C$F,-%3Stafford/dual
_fracGF7F$F$F$%4MainStepExtendedRatGf*F$F$F;F$C$F,-%=Stafford/MainStepExtendedR
atGF7F$F$F$%/TwoGenerators2Gf*F$F$F)F$C$F,-%8Stafford/TwoGenerators2GF7F$F$F$%+
FindRho_dsGf*F$F$F)F$C$F,-%4Stafford/FindRho_dsGF7F$F$F$%-containsunitGf*F$F$F)
F$C$F,-%6Stafford/containsunitGF7F$F$F$%.BasisOfModuleGf*F$F$F)F$C$F,-%7Staffor
d/BasisOfModuleGF7F$F$F$%(lcrmRatGf*F$F$F)F$C$F,-%1Stafford/lcrmRatGF7F$F$F$%<I
njectiveParametrizationRatGf*F$F$F)F$C$F,-%EStafford/InjectiveParametrizationRa
tGF7F$F$F$%*inclusionGf*F$F$F)F$C$F,-%3Stafford/inclusionGF7F$F$F$%-FindF_HS_Ra
tGf*F$F$F)F$C$F,-%6Stafford/FindF_HS_RatGF7F$F$F$%)Ore_lclmGf*F$F$F)F$C$F,-%2St
afford/Ore_lclmGF7F$F$F$%)MainStepGf*F$F$F)F$C$F,-%2Stafford/MainStepGF7F$F$F$%
,sigmanotinMGf*F$F$F)F$C$F,-%5Stafford/sigmanotinMGF7F$F$F$%2TwoGeneratorsRat2G
f*F$F$F)F$C$F,-%;Stafford/TwoGeneratorsRat2GF7F$F$F$%'rlcRatGf*F$F$F)F$C$F,-%0S
tafford/rlcRatGF7F$F$F$%)FindF_HSGf*F$F$F)F$C$F,-%2Stafford/FindF_HSGF7F$F$F$%-
max_rightvarGf*F$F$F)F$C$F,-%6Stafford/max_rightvarGF7F$F$F$%/Find_h_SchmaleGf*
F$F$F;F$C$F,-%8Stafford/Find_h_SchmaleGF7F$F$F$%)Ore_lcrmGf*F$F$F)F$C$F,-%2Staf
ford/Ore_lcrmGF7F$F$F$%,MainStepRatGf*F$F$F)F$C$F,-%5Stafford/MainStepRatGF7F$F
$F$%3ModuleIntersectionGf*F$F$F)F$C$F,-%<Stafford/ModuleIntersectionGF7F$F$F$%'
genallGf*F$F$F)F$C$F,-%0Stafford/genallGF7F$F$F$%*tsigmainMGf*F$F$F)F$C$F,-%3St
afford/tsigmainMGF7F$F$F$%2PermutationMatrixGf*F$F$F)F$C$F,-%;Stafford/Permutat
ionMatrixGF7F$F$F$%+gettmpnameGf*F$F$6#%\pCopyright~(C)~2009-2010~by~Alban~Quad
rat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%4Stafford/gettmpnameGF7F$F
$F$%-nextmonomialGf*F$F$F)F$C$F,-%6Stafford/nextmonomialGF7F$F$F$%/BasisOfModul
e2Gf*F$F$F)F$C$F,-%8Stafford/BasisOfModule2GF7F$F$F$%+monombasisGf*F$F$F)F$C$F,
-%4Stafford/monombasisGF7F$F$F$%3copyright_StaffordGf*F$F$F)F$C$F,-%<Stafford/c
opyright_StaffordGF7F$F$F$%+ElementaryGf*F$F$F)F$C$F,-%4Stafford/ElementaryGF7F
$F$F$%(MakeOneGf*F$F$F)F$C$F,-%1Stafford/MakeOneGF7F$F$F$%,FindF_BjorkGf*F$F$F)
F$C$F,-%5Stafford/FindF_BjorkGF7F$F$F$%-FindF_guess1Gf*F$F$F)F$C$F,-%6Stafford/
FindF_guess1GF7F$F$F$%*genallRatGf*F$F$F)F$C$F,-%3Stafford/genallRatGF7F$F$F$%2
ReduceLeftInverseGf*F$F$F)F$C$F,-%;Stafford/ReduceLeftInverseGF7F$F$F$%(FindOne
Gf*F$F$F)F$C$F,-%1Stafford/FindOneGF7F$F$F$%$rlcGf*F$F$F)F$C$F,-%-Stafford/rlcG
F7F$F$F$%+FindF_heurGf*F$F$F)F$C$F,-%4Stafford/FindF_heurGF7F$F$F$%.multiindexd
ivGf*F$F$F)F$C$F,-%7Stafford/multiindexdivGF7F$F$F$%.TwoGeneratorsGf*F$F$F)F$C$
F,-%7Stafford/TwoGeneratorsGF7F$F$F$%1MainStepExtendedGf*F$F$F;F$C$F,-%:Staffor
d/MainStepExtendedGF7F$F$F$%(FindRhoGf*F$F$F)F$C$F,-%1Stafford/FindRhoGF7F$F$F$
%(adjointGf*F$F$F)F$C$F,-%1Stafford/adjointGF7F$F$F$%+test_orderGf*F$F$F)F$C$F,
-%4Stafford/test_orderGF7F$F$F$%7TwoStrongGeneratorsRatGf*F$F$F;F$C$F,-%@Staffo
rd/TwoStrongGeneratorsRatGF7F$F$F$%2Macaulay2StaffordGf*F$F$F;F$C$F,-%;Stafford
/Macaulay2StaffordGF7F$F$F$%=InjectiveParametrizationRat2Gf*F$F$F)F$C$F,-%FStaf
ford/InjectiveParametrizationRat2GF7F$F$F$%,FindF_guessGf*F$F$F)F$C$F,-%5Staffo
rd/FindF_guessGF7F$F$F$%3CommonLeftMultipleGf*F$F$6#%enCopyright~(C)~2010~by~Da
niel~Robertz.~All~rights~reserved.GF$C$F,-%<Stafford/CommonLeftMultipleGF7F$F$F
$%$llcGf*F$F$F)F$C$F,-%-Stafford/llcGF7F$F$F$%&FindTGf*F$F$F)F$C$F,-%/Stafford/
FindTGF7F$F$F$%%lclmGf*F$F$F)F$C$F,-%.Stafford/lclmGF7F$F$F$%)containsGf*F$F$F)
F$C$F,-%2Stafford/containsGF7F$F$F$%4TwoStrongGeneratorsGf*F$F$F;F$C$F,-%=Staff
ord/TwoStrongGeneratorsGF7F$F$F$%:InjectiveParametrization2Gf*F$F$F)F$C$F,-%CSt
afford/InjectiveParametrization2GF7F$F$F$%)StepDownGf*F$F$F)F$C$F,-%2Stafford/S
tepDownGF7F$F$F$%.ElementaryRatGf*F$F$F)F$C$F,-%7Stafford/ElementaryRatGF7F$F$F
$%1BasisOfModuleRatGf*F$F$F)F$C$F,-%:Stafford/BasisOfModuleRatGF7F$F$F$%%lcrmGf
*F$F$F)F$C$F,-%.Stafford/lcrmGF7F$F$F$%-FindF_LeykinGf*F$F$F)F$C$F,-%6Stafford/
FindF_LeykinGF7F$F$F$%1sigmanotinM_heurGf*F$F$F)F$C$F,-%:Stafford/sigmanotinM_h
eurGF7F$F$F$%+FindOneRatGf*F$F$F)F$C$F,-%4Stafford/FindOneRatGF7F$F$F$%.Find_h_
LeykinGf*F$F$F;F$C$F,-%7Stafford/Find_h_LeykinGF7F$F$F$%.splitvariableGf*F$F$F)
F$C$F,-%7Stafford/splitvariableGF7F$F$F$%5right_div_conditionsGf*F$F$F;F$C$F,-%
>Stafford/right_div_conditionsGF7F$F$F$%,StepDownRatGf*F$F$F)F$C$F,-%5Stafford/
StepDownRatGF7F$F$F$%0q_elim_JanetOreGf*F$F$F;F$C$F,-%9Stafford/q_elim_JanetOre
GF7F$F$F$%1TwoGeneratorsRatGf*F$F$F)F$C$F,-%:Stafford/TwoGeneratorsRatGF7F$F$F$
%(lclmRatGf*F$F$F)F$C$F,-%1Stafford/lclmRatGF7F$F$F$%(FindTdsGf*F$F$F)F$C$F,-%1
Stafford/FindTdsGF7F$F$F$%9InjectiveParametrizationGf*F$F$F)F$C$F,-%BStafford/I
njectiveParametrizationGF7F$F$F$%0StaffordOptionsGf*F$F$F)F$C$F,-%9Stafford/Sta
ffordOptionsGF7F$F$F$F$
M7R0
I2Stafford/containsf*6%'%"LG%%listG'%"GGF'%&mTOrdG6#%"aG6#%\pCopyright~(C)~2005
-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"-%(convertG6$
-%$mapG6#f*F+F/6$%)operatorG%&arrowGF//-%&evalbG6$-%7OreModules/normal_formG6%9
$T$T&T(""!F/F/6(F)9%F*9&F&FA%$andGF/F/F/F/
M7R0
I3Stafford/tsigmainMf*6&'%"MG%%listG'%"mG%'posintG%&sigmaG'%$AlgGF'6)%"iG%"GG%#
vlG%#vrG%&basisG%%mAlgG%&mTOrdG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~an
d~Daniel~Robertz.~All~rights~reserved.G6"C*>8&&9'6#""$>8'&F=6#""%>8%7$,&9&"""%#
muG!""-%#opG6#9$>8(6$-%$seqG6$&%'lambdaG6#8$/FZ;FJ9%FK>8)-&%,Ore_algebraG6#%-sk
ew_algebraG6(-FN6#&F=6#"#8/%(polynomG7$FR-FN6#&F=6#""&/%%commG7$FR-FN6#&F=6#""'
/%%funcG&F=6#"")/%/characteristicG&F=6#""(/%.alg_relationsG&F=6#""*>8*-%6OreMod
ules/term_orderG6%Fin-%'lexdegG6$7#FT7%FK-FN6#FA-FN6#F;7#FR>FF-%'removeG6%%$has
G-%.OreModules/gbG6$FFFeqFX-%&coeffG6$&FF6#FJFKF8F8F8F8
M7R0
I2Stafford/StepDownf*6&%"vG%"qG%"rG'%$AlgG%%listG68%"aG%"bG%"dG%#dgG%"fG%#fjG%"
gG%"hG%"iG%"jG%"mG%"nG%#qsG%$rhoG%"uG%#vlG%#vrG%$indG%&basisG%%mAlgG%&mTOrdG%#G
BG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~
reserved.G6"C3>80-%5Stafford/FindF_guessG6&9$9%9&9'@$0FG7"-%'RETURNG6#FG>83&FN6
#""$>84&FN6#""%>8/-%%nopsG6#FV>8'-%7Stafford/splitvariableG6%FK&FV6#FM&FenFdo>8
&-%$mapG6$f*6#F,FD6$%)operatorG%&arrowGFD&FK6#"""FDFDFDF_o>8*-Fio6$f*F\pFDF]pFD
&FK6#""#FDFDFDF_o>8.-F\o6#Fgo@$-%)assignedG6#%8STAFFORD_STEPDOWN_CHECKG-%&print
G6$Q3v~-~add(d_i~*~g_i)FD-%'expandG6#,&FKFbp-%$addG6$-%0OreModules/MultG6%&Fgo6
#8,&FdpFcrFN/Fdr;FbpF\q!""@$-Faq6#%:STAFFORD_STEPDOWN_VERBOSEGC$-Feq6$Q"dFDFgo-
Feq6$Q"gFDFdp>8+-%0Stafford/Find_hG6&FMFLFdpFN@$Fjr-Feq6$Q"hFDFes>82""!>8(F_t?(
8-FbpFbp-F\o6#Fes%%trueGC/>8%-Fio6$f*F\pFDF]pFD-F`r6%FK&T#6#T%T(FDFD6(F3FesF5Fc
tF)FNFdp@$FjrC$-Feq6$Q"jFDFct-Feq6$Q"bFDFit@%/F^tF_t>81-%4Stafford/FindRho_dsG6
&FMFLFitFN>F`v-Fbv6&FMFL7$-%#opG6#FitF^tFN@$Fjr-Feq6$Q$rhoFDF`v@$F`qC'>86&%'lam
bdaGFap>87-&%,Ore_algebraG6#%-skew_algebraG6(-Fiv6#&FN6#"#8/%(polynomG7$-FivF]o
Fbw/%%commG7$Fbw-Fiv6#&FN6#""'/%%funcG&FN6#"")/%/characteristicG&FN6#""(/%.alg_
relationsG&FN6#""*>88-%6OreModules/term_orderG6%Ffw-%%tdegG6%Fex-Fiv6#FenFbw7#F
bw>89-%.OreModules/gbG6$7#*&FLFbpFcwFbpF^z-Feq6$Q#nfFD7$-%$seqG6$-%7OreModules/
normal_formG6%*&-F`r6%F`v&FitFcrFNFbpFcwFbpFizF^zFfr-Fg[l6%*&-F`r6%F`vF^tFNFbpF
cwFbpFizF^z>8)-%/Stafford/FindFG6&FMF`vFgoFN@$Fjr-Feq6$Q#fjFDFc\l>Fc\l-F`r6%Fc\
l&Fes6#FctFN>Fat,&FatFbpFc\lFbp@$Fjr-Feq6$Q"fFDFat@%%8Stafford/apply_JanetOreG>
FG-%9Stafford/q_elim_JanetOreG6&FMFL-F`r6%FKFatFNFNC(>Ffw-Fhw6(F]x/Fcx7&FexFcw&
%#muGFap&Fe^lFip/Fgx7&FcwFd^lFf^lFixF^yFcyFhy>F^z-F`z6%Ffw-%'lexdegG6$7$Fcw-Fiv
6#&Fen6#;FMFhr7&-Fiv6#&Fen6#;Fbp,&FMFbpFhrFbpFexFd^lFf^l7%FcwFd^lFf^l>Fiz-F[[l6
$7$,&F^[lFbpFd^lFhr,&*&F\^lFbpFcwFbpFbpFf^lFhrF^z@$Fjr-Feq6$Q#GBFDFiz>FG-%'sele
ctG6$f*6#F4FDF]pFD34-%$hasG6$-%&coeffG6$FKFcw&F`u6#;T&Fhr0-%(collectG6%Fcal7$-F
iv6#F`u-Fiv6#T'%,distributedGF_tFDFD6(F<FenF'FMF;FVFiz@$FP>FG7%-Fdal6$&FGFapFcw
,$-Fdal6$F[clFd^lFhr,$-Fdal6$F[clFf^lFhr@$FP-FS6#7$-FivFTFat@$2FctFdt>F^t,&F^tF
bp-F`r6%FKFc\lFNFbp-%&ERRORG6#%5problem~in~StepDown.GFDFDFDFD
M7R0
I7Stafford/TwoGeneratorsf*6&%"aG%"bG%"cG'%$AlgG%%listG6&%"iG%#vlG%#vrG%"LG6#%\p
Copyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserve
d.G6"C&>8%&9'6#""$>8&&F76#""%>8'-%'selectG6$f*6#F,F26$%)operatorG%&arrowGF2/-%'
degreeG6$&9$F8<$-%#opG6#T#-FQ6#T%""!F2F26&F-F5F.F;-%(convertG6$-%8OreModules/Sy
zygyModuleG6$-%&evalmG6#7%7#FN7#9%7#9&F7%)listlistG@%0F@7"7%FNF_o7$FWFW-%2Staff
ord/MainStepG6&FNF_oFaoF7F2F2F2F2
M7R0
I7Stafford/multiindexdivf*6$%"aG%"bG6#%"iG6#%\pCopyright~(C)~2005-2010~by~Alban
~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C$?(8$"""F/-%%nopsG6#9$%%tr
ueG@$2&9%6#F.&F3F9-%'RETURNG6#%&falseGF4F+F+F+F+
M7R0
I;Stafford/TwoGeneratorsRat2f*6&%"aG%"bG%"cG'%$AlgG%%listG6<%#asG%#bsG%#coG%"fG
%#g1G%#g2G%#h1G%#h2G%"qG%#qcG%#qsG%"rG%"sG%"tG%"vG%$tmpG%'lambdaG%#muG%'paramsG
%"nG%"GG%"RG%#vlG%#vrG%#p1G%#p2G6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~a
nd~Daniel~Robertz.~All~rights~reserved.G6"C1>8:&9'6#""$>8;&FM6#""%>87-%%nopsG6#
FK@,/9$""!-%'RETURNG6#7%9&9%7$"""Fgn/F]oFgn-Fin6#7%FfnF\o7$FgnF_o/F\oFgn-Fin6#7
%FfnF]o7$FgnFgn43-%$hasG6$FfnFQ-F]p6$F]oFQFfo4-F]p6$F\oFQ-Fin6#7%FfnF\o7$Fgn-%0
OreModules/MultG6%,&F]o!""F_oF_o*$F\oF\qFM@&4-F]p6$-%)simplifyG6#*&FfnF_oF]oF\q
FQ-Fin6#7%,&FfnF_oF\oF_oF]oF^o43-F]p6$-Fcq6#*&FfnF_oF\oF\qFQ-F]p6$-Fcq6#*&F]oF_
oF\oF\qFQFfo@$0&FM6#""(Fgn-%&ERRORG6#%_oStafford's~Theorem~only~holds~for~Weyl~
algebras~in~characteristic~0.G>89-&%,Ore_algebraG6#%-diff_algebraG6&-%$seqG6$7$
&FQ6#%"iG&FKF\t/F]t;F_oFV/%(polynomG7#84/%%commG7$Fdt-%#opG6#&FM6#""'/%%funcG&F
M6#"")>8$Ffn>8%F]o>8&Fio@%/-FX6#FQF_oC%>83-%2Stafford/Ore_lclmG6%FfnF\oFM>8*&F_
v6#""#>8,&F_vFNC%>F_v-%1Stafford/lclmRatGFbv>Fdv&-%0Stafford/llcRatG6&F_vFfnFgn
FM6$F_oF_o>Fiv&-Fbw6&F_vF\oFgnFMFdw>8+Fgn>8/,&-%6Stafford/max_rightvarG6$FivFMF
_oF\qF_o?(FHF_oF_oFH2F\qF\xC3@$/FdvFgnC(>F_vFdu>FduFfu>FfuF_v>F_vFdv>FdvFjw>Fjw
F_v@%/FjwFgnC$>8(Fgn>8)F_o@%FjuC%>F_v-%2Stafford/Ore_lcrmG6%FdvFjwFM>FayFev>Fcy
FjvC%>F_v-%1Stafford/lcrmRatGFiy>Fay&-%0Stafford/rlcRatG6&F_vFdvFgnFMFdw>Fcy,$&
-Fcz6&F_vFjwFgnFMFdwF\q>8--Fip6%FivF\oFM@%FjuC%>F_v-Fav6%F[[lFfuFM>80Fev>81FjvC
%>F_v-F^wFb[l>Fd[l&-Fbw6&F_vF[[lFgnFMFdw>Ff[l&-Fbw6&F_vFfuFgnFMFdw>82-Fip6%Ff[l
FcyFM>8'-%6Stafford/FindF_HS_RatG6&Fc\lFivF\xFM>88&Fg\lFfv>Fg\l&Fg\l6#F_o>F_v-F
ip6%Fc\lFg\lFM>8.F\]l>F\x,&-F_x6$Fe]lFMF_oF\qF_o@$FbxC)>F\]l-Fbw6&Fe]lFivF_vFM>
8<&F\]lFdw>8=&F\]l6$F_oFgv>FivFe]l>F_v-Fip6%Fc^lFd[lFM>Fdv-Fip6%,&F`^lF_oF_vF\q
FdvFM>Fjw,&-Fip6%F]_lFjwFMF_o-Fip6%Fc^lFf[lFMF_o>Fay-Fip6%FayFg\lFM>Fcy-Fip6%Fc
yFg\lFM>Fhu,&FhuF_o7$FayFcyF_o>Fdu,&FduF_o-Fip6%FayF\oFMF_o>Ffu,&FfuF_o-Fip6%Fc
yF\oFMF_o-Fin6#7%FduFfuFhuFHFHFHFH
M7R0
I4Stafford/Elementaryf*6%%#vaG%#vbG'%$AlgG%%listG6-%"aG%#apG%"bG%"cG%"gG%"iG%"n
G%#E1G%#E2G%#E3G%#E4G6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~R
obertz.~All~rights~reserved.G6"C.@%-%%typeG6$9$%'matrixG>8$-%$mapG6$%#opG-%(con
vertG6$F>%)listlistG>FAF>>8*-%%nopsG6#FA@%-F<6$9%F?>8&-FC6$FE-FG6$FSFI>FUFS>8+-
F?6%FLFLf*6$F0%"jGF8F8F8@'/F>FS"""/FST#&T%6#F>""!F8F86&F1FLF-FU>8%-&%'linalgG6#
%*submatrixG6%-%0OreModules/MultG6%Ffn-%&evalmG6#7#-%$seqG6$7#&FA6#8)/F[q;F^oFL
9&;F^o,&FLF^o!""F^o;F^oF^o>8'-%7OreModules/LeftInverseG6$FgoF^q>Fdq-FC6$FE-FG6$
FdqFI>8(-%)simplifyG6#,*&FA6#F^oF^o-F_p6%&FUFdr&FA6#FLF^qF^oFaqF^oFhrFaq>8,-F?6
%FLFLf*FjnF8F8F8@'F]oF^o/F>F`o-F_p6%Fbo&T'6#FST*FdoF8F86*F1FLF/F^rF.FdqF(F^q>8-
-F?6%FLFLf*FjnF8F8F8@'F]oF^o3/F>F^oF_oFaqFdoF8F86$F1FL>8.-F?6%FLFLf*FjnF8F8F8@'
F]oF^o/FSF^o@%2F>F`o,$&Fbo6$F>F^oFaq,&&Fbo6$F^oF^oFaqF^oF^oFdoF8F86&F1FLF,Fgo7&
-Fbp6#Ffn-Fbp6#F[s-Fbp6#Fis-Fbp6#FbtF8F8F8F8
M7R0
ICStafford/InjectiveParametrization2f*6$%"RG'%$AlgG%%listG60%"aG%"bG%"cG%"dG%"i
G%"jG%"rG%"EG%"FG%"LG%"MG%&R_adjG%#vlG%#vrG6#%\pCopyright~(C)~2005-2010~by~Alba
n~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C1>8,-%BOreModules/Shortes
tFreeResolutionG6$9$9%@$4-%%typeG6$F=%&tableG-%&ERRORG6#%aqthis~version~of~OreM
odules~is~not~compatible~with~the~version~of~Stafford.~Please~update~the~packag
es.G@$2""#-%%nopsG6#-%#opG6$FO-%%evalG6#F=-%'RETURNG6#7">8',&-&%'linalgG6#%'row
dimG6#&F=6#"""!""-&F\o6#%'coldimGF_oFbo@$2FhnFO@%/&9"6#FcoQ*noverboseF:FY-FJ6#%
aoThe~OreRank~of~the~corresponding~module~must~be~greater~or~equal~to~2.G@$/-%8
OreModules/RightInverseG6$F`oFBFfnFY>80&FB6#""$>81&FB6#""%>8/-%6OreModules/Invo
lutionGFgp>8&-Feo6#Fcq>8*-F[oFiq>8.-%&evalmGFiq>F=-&F\o6#%%diagG6#-%"$G6$FboF[r
?(8(FboFboFgq%%trueGC*>8$-&F\o6#%*submatrixG6%F^r;Fbo,(F[rFboF[sFcoFboFbo;FboFb
o>8--%%sortG6$-%$zipG6%f*6$F.F/F:6$%)operatorG%&arrowGF:7$FAFBF:F:F:&-%$mapG6$F
T-%(convertG6$F_s%)listlistG6#;Fbo!"#7#-Fhr6#;Fbo,&F[rFboF[sFcof*FatF:F:F:@%/&F
AFao""!F\s@%/&FBFaoFju%&falseG-%&evalbG6#1-%'degreeG6$Fiu<$-FT6#T#-FT6#T%-Fdv6$
F]vFfvF:F:6&F6FipF7F^q>8%&-%7Stafford/TwoGeneratorsG6&&F_s6$&&FisFao6#FOFbo&F_s
6$&&FisFjwFjwFbo&F_s6$FfsFboFBF[q>Faw-%'subsopG6%/Fhw&FawFao/F]x&FawFjw7#-Fhr6$
FjuFeu>8+-%4Stafford/ElementaryG6%F_sFawFB>F]y-%0OreModules/MultG6'&F]yF`q&F]yF
[q&F]yFjw&F]yFaoFB@$2F[sFgq>F^r-Fas6%-Fcy6%F]y-Fas6%F^rFes;FO,(FgqFboF[sFcoFboF
boFB;FOFfs;Fbo,&FgqFboF[sFco>F=-Fcy6%-F`r6#7$-%$seqG6$-Fcx6$/8)Fbo7#-Fhr6$FjuF[
r/Fc[l;Fbo,&F[sFboFcoFbo-FT6#-Fht6$f*6#F/F:FbtF:7$-Fhr6$Fju,&FivFboFcoFbo-FT6#F
AF:F:6$F.F[s-F[u6$F]yF]uF=FB-Feq6$-Fas6%F=;,(F[rFboFhnFcoFboFboF[r;FboF[rFBF:F:
F:F:
M7R0
IEStafford/InjectiveParametrizationRatf*6$%"RG'%$AlgG%%listG60%"aG%"bG%"cG%"dG%
"iG%"jG%"rG%"EG%"FG%"LG%"MG%&R_adjG%#vlG%#vrG6#%\pCopyright~(C)~2005-2010~by~Al
ban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C1>8,-%EOreModules/Short
estFreeResolutionRatG6$9$9%@$4-%%typeG6$F=%&tableG-%&ERRORG6#%aqthis~version~of
~OreModules~is~not~compatible~with~the~version~of~Stafford.~Please~update~the~p
ackages.G@$2""#-%%nopsG6#-%#opG6$FO-%%evalG6#F=-%'RETURNG6#7">8',&-&%'linalgG6#
%'rowdimG6#&F=6#"""!""-&F\o6#%'coldimGF_oFbo@$2FhnFO@%/&9"6#FcoQ*noverboseF:FY-
FJ6#%aoThe~OreRank~of~the~corresponding~module~must~be~greater~or~equal~to~2.G@
$/-%;OreModules/RightInverseRatG6$F`oFBFfnFY>80&FB6#""$>81&FB6#""%>8/-%6OreModu
les/InvolutionGFgp>8&-Feo6#Fcq>8*-F[oFiq>8.-%&evalmGFiq>F=-&F\o6#%%diagG6#-%"$G
6$FboF[r?(8(FboFboFgq%%trueGC*>8$-&F\o6#%*submatrixG6%F^r;Fbo,(F[rFboF[sFcoFboF
bo;FboFbo>8--%%sortG6$-%$zipG6%f*6$F.F/F:6$%)operatorG%&arrowGF:7$FAFBF:F:F:&-%
$mapG6$FT-%(convertG6$F_s%)listlistG6#;Fbo!"#7#-Fhr6#;Fbo,&F[rFboF[sFcof*FatF:F
:F:@%/&FAFao""!F\s@%/&FBFaoFju%&falseG-%&evalbG6#1-%'degreeG6$Fiu<$-FT6#T#-FT6#
T%-Fdv6$F]v<#FjvF:F:6&F6FipF7F^q>8%&-%:Stafford/TwoGeneratorsRatG6&&F_s6$&&FisF
ao6#FOFbo&F_s6$&&FisF[xF[xFbo&F_s6$FfsFboFBF[q>Fbw-%'subsopG6%/Fiw&FbwFao/F^x&F
bwF[x7#-Fhr6$FjuFeu>8+-%7Stafford/ElementaryRatG6%F_sFbwFB>F^y-%0OreModules/Mul
tG6'&F^yF`q&F^yF[q&F^yF[x&F^yFaoFB@$2F[sFgq>F^r-Fas6%-Fdy6%F^y-Fas6%F^rFes;FO,(
FgqFboF[sFcoFboFboFB;FOFfs;Fbo,&FgqFboF[sFco>F=-Fdy6%-F`r6#7$-%$seqG6$-Fdx6$/8)
Fbo7#-Fhr6$FjuF[r/Fd[l;Fbo,&F[sFboFcoFbo-FT6#-Fht6$f*6#F/F:FbtF:7$-Fhr6$Fju,&Fi
vFboFcoFbo-FT6#FAF:F:6$F.F[s-F[u6$F^yF]uF=FB-Feq6$-Fas6%F=;,(F[rFboFhnFcoFboFbo
F[r;FboF[rFBF:F:F:F:
M7R0
I;Stafford/BasisOfModuleRat2f*6$%"RG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-201
0~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF)-%:OreModules/Lef
tInverseRatG6$-%FStafford/InjectiveParametrizationRat2G6$9$&9"6#;""#9#9%F)F)F)F
)
M7R0
I-Stafford/rlcf*6&%"pG%"aG%"bG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-2010~by~A
lban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF+-%1Stafford/adjointG6$-
%5OreModules/FactorizeG6%-F/6$-%&evalmG6#7#7#9$&9'6#"""-F76#7$7#-F/6$9%F<7#-F/6
$9&F<F=F<F+F+F+F+
M7R0
I3Stafford/genallRatf*6%%"GG'%#vrG%%listG'%'modgenGF(6#%"MG6#%\pCopyright~(C)~2
005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"@%/-%%nops
G6#9&"""-%&evalbG6#0-%'removeG6%%$hasG9$9%7"C$>8$F;@%/-F36#FDF2-F86#0-&%'linalg
G6#%$detG6#-%&evalmG6#-%$mapG6$f*6#%"PG6#%"iGF/F/-FV6$f*FenF/6$%)operatorG%&arr
owGF/-%&coeffG6$T$F?F/F/6$FZF?F`oF/F/6$F*F5FD""!%&falseGF/F/F/F/
M7R0
I2Stafford/MainStepf*6&%"aG%"bG%"cG'%$AlgG%%listG6B%#asG%#bsG%#coG%"fG%#g1G%#g2
G%#h1G%#h2G%"qG%#qcG%#qsG%"rG%"sG%"tG%"vG%$tmpG%'lambdaG%#muG%'paramsG%"nG%"GG%
"RG%#vlG%#vrG%#p1G%#p2G%#t1G%#t2G%#t3G%%mAlgG%&mTOrdG%#GBG6#%\pCopyright~(C)~20
05-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C2@$0%5Staf
ford/initializedG.%%trueG-%.Stafford/initGFN>8:&9'6#""$>8;&FZ6#""%>87-%%nopsG6#
FX@,/9$""!-%'RETURNG6#7%9&9%7$"""Fdo/FjoFdo-Ffo6#7%FcoFio7$FdoF\p/FioFdo-Ffo6#7
%FcoFjo7$FdoFdo43-%$hasG6$Fco7$-%#opGF`o-F^q6#Fhn-Fjp6$FjoF\qFcp4-Fjp6$FioF\q-F
fo6#7%FcoFio7$Fdo*&,&Fjo!""F\pF\pF\pFioF\r@$0&FZ6#""(Fdo-%&ERRORG6#%_oStafford'
s~Theorem~only~holds~for~Weyl~algebras~in~characteristic~0.G>89-&%,Ore_algebraG
6#%-diff_algebraG6&-%$seqG6$7$&Fhn6#%"iG&FXFcs/Fds;F\pF]o/%(polynomG7#84/%%comm
G7$F[t-F^q6#&FZ6#""'/%%funcG&FZ6#"")>8$Fco>8%Fjo>8&Ffp@%/-F_oF`qF\pC%>83-%2Staf
ford/Ore_lclmG6%FcoFioFZ>8*&Fdu6#""#>8,&FduFenC%>Fdu-%.Stafford/lclmGFgu>Fiu&-%
-Stafford/llcG6&FduFcoFdoFZ6$F\pF\p>F^v&-Fgv6&FduFioFdoFZFiv>8+Fdo@$-%)assigned
G6#%1STAFFORD_VERBOSEGC%-%&printG6$Q#h1FNFiu-Fgw6$Q"qFNF^v-Fgw6$Q+q*c~+~h1*aFN-
%'expandG6#,&-%0OreModules/MultG6%F^vFioFZF\p-Fex6%FiuFcoFZF\r>8/-%6Stafford/ma
x_rightvarG6$F^vFZ?(FNF\pF\pFN2FdoFjxC5@$Faw-Fgw6$Q"rFNFjx@$/FiuFdoC(>FduFjt>Fj
tF\u>F\uFdu>FduFiu>FiuF_w>F_wFdu@%/F_wFdoC$>8(Fdo>8)F\p@%F`uC%>Fdu-%2Stafford/O
re_lcrmG6%FiuF_wFZ>FbzFju>FdzF_v@%%8Stafford/apply_JanetOreGC%>Fdu-%<Stafford/C
ommonLeftMultipleG6&FiuF_wF\q7#-F_s6$-%%weylG6$FbsFesFfs>Fbz&Fdu6#F\p>Fdz,$FjuF
\rC%>Fdu-%1Stafford/lcrmRatGFjz>Fbz&-%0Stafford/rlcRatG6&FduFiuFdoFZFiv>Fdz,$&-
Ff\l6&FduF_wFdoFZFivF\r>8-Fdx@%F`uC%>Fdu-Ffu6%F^]lF\uFZ>80Fju>81F_vC%@%-Fjp6$-%
&denomG6#F^]lFX>Fdu-%;OreModules/SyzygyModuleRatG6$-%&evalmG6#7$7#F^]l7#F\uFZ>F
du-%8OreModules/SyzygyModuleGFb^l>Fe]l&FduFiv>Fg]l,$&Fdu6$F\pF\vF\r>82-Fex6%Fg]
lFdzFZ@$FawC&-Fgw6$Q"sFNFe]l-Fgw6$Q"tFNFg]l-Fgw6$Q,s*qc~-~t*bsFN-Fax6#,&-Fex6%F
e]lF^]lFZF\p-Fex6%Fg]lF\uFZF\r-Fgw6$Q"vFNFc_l>88-%2Stafford/StepDownG6&Fc_lF^vF
jxFZ>8.&F\alF\\l>8'&F\alFjn>Fjx-F\y6$FaalFZ@$Faw-Fgw6$Q&new~rFNFjx@$F_yC)>8<&F\
alF[v>8=&F\alFen>F^vFaal>Fdu-Fex6%FcblFe]lFZ>Fiu-Fex6%,&F`blF\pFduF\rFiuFZ>F_w,
&-Fex6%F\clF_wFZF\p-Fex6%FcblFg]lFZF\p@$FawC$Ffw-Fgw6$Q#h2FNF_w>Fbz-Fex6%FbzFda
lFZ>Fdz-Fex6%FdzFdalFZ>F^u,&F^uF\p7$FbzFdzF\p>Fjt,&FjtF\p-Fex6%FbzFioFZF\p>F\u,
&F\uF\p-Fex6%FdzFioFZF\p@$-Fbw6#%/STAFFORD_CHECKGC&>8A-&Fjr6#%-skew_algebraG6(-
F^q6#&FZ6#"#8/Fis7'F]q&F[tF\\l&85F\\l&F^flF[v&F^flFen/F]t7'F\flF]flF_flF`flF_tF
dt/%/characteristicGF_r/%.alg_relationsG&FZ6#""*>8B-%6OreModules/term_orderG6%F
_el-%'lexdegG6$&Fhn6#;,&FjxF\pF\vF\pF\r7(F\flF]flF_flF`fl-F^q6#&Fhn6#;F\p,&FjxF
\pF\pF\pF]q7&F\flF]flF_flF`fl>8C-%.OreModules/gbG6$7%,&*&FioF\pF\flF\pF\pF]flF\
r,&*&FjtF\pF\flF\pF\pF_flF\r,&*&F\uF\pF\flF\pF\pF`flF\rF[gl-Fgw6$Q&checkFN-%$ma
pG6$f*FcsFN6$%)operatorG%&arrowGFN-%(collectG6%Fco7%&T#F\\l&FiilF[v&FiilFen%,di
stributedGFNFN6$F=F^fl-%'removeG6%FjpF_hlF[t7%FjtF\uF^uFNFNFNFN
M7R0
I6Stafford/FindF_HS_Ratf*6&%"vG%"qG%"rG'%$AlgG%%listG6:%&alphaG%%betaG%'lambdaG
%"aG%"fG%#fkG%%fkhkG%"gG%"iG%"jG%"kG%"nG%"tG%'vtildeG%"FG%"GG%"JG%#LMG%"RG%$Ord
G%)R_for_LMG%+Ord_for_LMG%#vlG%#vrG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadra
t~and~Daniel~Robertz.~All~rights~reserved.G6"C4>8:&9'6#""$>8;&FK6#""%>8/-%%nops
G6#FO>86-&%,Ore_algebraG6#%-diff_algebraG6&-%$seqG6$7$&FO6#8,&FIF_o/F`o;"""FT/%
(polynomG7#8&/%%commG7$Fho-%#opG6#&FK6#""'/%%funcG&FK6#"")@%2""!9&>87-%6OreModu
les/term_orderG6%FY-%'lexdegG6$&FO6#;,&FjpFdoFdoFdoFT7$Fho-F]p6#&FO6#;FdoFjpFgo
>F\q-F^q6%FY-%%tdegG6$Fho-F]pFWFgo>88-Fen6&-F[o6$F]o/F`oFeqFeoFioFbp>89-F^q6%Fe
r-Far6$Fho-F]p6#FcqFgo@'-%%typeG6$9$%"+G>81-%$mapG6$f*6#F4FF6$%)operatorG%&arro
wGFF@%3-%$hasG6$Fgs&T#6#,&T&FdoFdoFdo-Fft6$Fgs&T'Fjt,&Fgs""#-&Ffn6#%-skew_produ
ctG6%-%'selectG6%FftFgsF_u-%'removeGFju&T*6#Fdo!""FgsFFFF6*FBFIF'FjpFCFOF)FKFgs
-Fes6$Fgs%"*G@%3-Fft6$Fgs&FI6#Ffq-Fft6$Fgs&FOFjv>Fjs,&FgsFbu-Fdu6%-Fiu6%FftFgsF
iv-F\vFcw&FKF_vF`v>FjsFgs>FjsFgs>80-%'degreeG6$FjsF]w@%2FipFiwC(>8+7#-%&coeffG6
$Fjs)F]wFiw>85&-%4OreModules/lead_monG6$&FaxF_vF\s6#Fbu>8$7#-F[o6$-F[x6$FhxF^o/
F`o;,&FjpFdoFbuFdoFT?(8-,&FiwFdoF`vFdoF`vFdo%%trueGC$>Fax7$-Fdx6$Fjs)F]wFjy-F]p
6#Fax@$0F]yFipC%>FhxFix>8%Fay@$2-%$mulG6$,&&FjzF_oFdoFdoFdo/F`o;Fdo,(FTFdoFjpF`
vF`vFdo-F^[l6$,&&F`yF_oFdoFdoFdoFb[l>F`yFjz>Fax7$-%%subsG6$/F]wFipFjsFcz@$FfzC%
>FhxFix>FjzFay@$F\[l>F`yFjzC%>Fax7#Fjs>FhxFix>F`yFay>847#Fdo>837"?(FFFdoFdoFF/F
_]lF`]lC&>F_]l7#9%?(FjyFdoFdo-FV6#F\]lF\z?(F`oFdoFdo-FVFdzF\z>F_]l7$-F]p6#F_]l-
Fdu6%&FaxF_o&F\]l6#FjyFY>F_]l-%.OreModules/gbG6$-F\t6$f*6#F/FFF`tFF*&FgsFdoFitF
doFFFF6$F.FhoF_]lF\q@$4-%6Stafford/containsunitG6%F_]l&FI6#Fgy&FOFe_lC%>F\]l7$-
F]pFi]l-%6Stafford/nextmonomialG6%&F\]l6#F`vFd_lF`y@$/F^`lFdo-%&ERRORG6#%<error
~in~construction~of~J.G>F_]lF`]l>8.Fdo>8(Fip>82F`]l?(FFFdoFdoFF4-Fb_l6%-F\t6$f*
F\_lFFF`tFF-%)simplifyG6#*&FgsFdoFitF`vFFFFF^_lF\alFd_lFf_lC)@$2FdoFh]lC%>F_]lF
e]l?(FjyFdoFdoFh`lF\z?(F`oFdoFdoF[^lF\z>F_]lF]^l>F_]l-Fg^l6$-F\t6$f*F\_lFFF`tFF
F]_lFFFFF^_lF_]lF\q>F`oFdo>8)Fip>F\alF`]l?(FFFdoFdoFF4-%3Stafford/inclusionG6(F
_]lF\alFYF\q7$-F]p6#FIFcrFjqC'>Fhbl,&FhblFdo)FivF`oFdo>F`o,&F`oFdoFdoFdo>8*-Fdu
6%Fhbl&F\]l6#Fh`lFY>F\al7$Ff]l-Fdu6%Fgs,&Fj`lFdoFiclFdoFY>F\al-Fg^l6$-F\t6$f*F\
_lFFF`tFFF]_lFFFFF^_lF\alF\q>Fj`lFbdl>Fh`l,&Fh`lFdoFdoFdo7$Fj`l-Feal6#*&&F\alF_
vFdoFhoF`vFFFFFFFF
M7R0
I;Stafford/PermutationMatrixf*6#%"LG6$%"iG%"PG6#%\pCopyright~(C)~2005-2010~by~A
lban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C%>8%-%'matrixG6%-%%nop
sG6#9$F2""!?(8$"""F9F2%%trueG>&F.6$F8&F56#F8F9-%%copyG6#F.F+F+F+F+
M7R0
I;Stafford/ReduceLeftInversef*6%%"MG'%$AlgG%%listG%"PG6/%"iG%"jG%"mG%"nG%"LG%#L
2G%"SG%&basisG%%mAlgG%&mTOrdG%"GG%#vlG%#vrG6#%\pCopyright~(C)~2005-2010~by~Alba
n~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C&>8/&9%6#""$>80&F?6#""%>8
(-%7OreModules/LeftInverseG6$9$F?@%/FH7"FOC+>8*-%8OreModules/SyzygyModuleGFK>8'
-&%'linalgG6#%'rowdimG6#FR>8&-&FY6#%'coldimGFfn>8+-%$seqG6$&%'lambdaG6#8$/Feo;"
""Fhn>8,-&%,Ore_algebraG6#%-skew_algebraG6(-%#opG6#&F?6#"#8/%(polynomG7$-Fbp6#F
=F^o/%%commG7$F^o-Fbp6#&F?6#""'/%%funcG&F?6#"")/%/characteristicG&F?6#""(/%.alg
_relationsG&F?6#""*@%2""#9#>8--%6OreModules/term_orderG6%Fjo-%'lexdegG6$7#-F`o6
$&F^o6#&9&FdoFfo7$Fjp-Fbp6#FC7#F^o>Fhr-Fjr6%Fjo-F]s6$FisFfsFis>8.-%.OreModules/
gbG6$7#-F`o6$-%$addG6$*&&FR6$Feo8%Fho&Fco6#F]uFho/F]uFgo/Feo;FhoFVFhr>8)-%7OreM
odules/normal_formG6%-Fht6$*&&FH6$FhoF]uFhoF^uFhoF`uF`tFhr-%&evalmG6#7#-%$mapG6
$f*6#%"aGF:6$%)operatorG%&arrowGF:-%&coeffG6$T#FLF:F:6$F0FduFisF:F:F:F:
M7R0
I2Stafford/compiledQ.201002161000|+6"F$
M7R0
I7Stafford/max_abs_coefff*6#%"pG6"6#%goCopyright~(C)~2010~by~Alban~Quadrat~and~
Daniel~Robertz.~All~rights~reserved.GF&@+5-%%typeG6$9$%%listG-F,6$F.%"+G-%$maxG
6#-%#opG6#-%$mapG6$F"-%(convertGF-5-F,6$F.%"*G-F,6$F.%"^G-F:6$F"F.-F,6$F.%(nume
ricG-%$absG6#F.-F,6$F.%%nameG"""%)infinityGF&F&F&F&
M7R0
I/Stafford/FindTf*6&%"rG%%betaG'%"aG%%listG'%$AlgGF)60%"iG%"jG%"pG%"tG%"GG%"SG%
#vlG%#vrG%&basisG%'lambdaG%#muG%%mAlgG%&mTOrdG%#GBG6#%\pCopyright~(C)~2005-2010
~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C/>8*&9'6#""$>8+&&
FB6#""%6#;"""9$>8'-%%nopsG6#9&>8&,&FPFMFMFM>8(7$,&-%$addG6$*&&8-6#8%FM&FTF\oFM/
F]o;FMFPFM&8.6#FM!""-%$seqG6$,&*&FjnFM9%FMFM&Fbo6#,&F]oFMFMFMFdoF_o>8,6$-Ffo6$&
F[o6#8$/FepF`o-Ffo6$&FboFdp/Fep;FMFV>8/-&%,Ore_algebraG6#%-skew_algebraG6(-%#op
G6#&&FB6#"#8FK/%(polynomG7$&F@6#FNF_p/%%commG7%F_p-Feq6#&F@6#;,&FNFMFMFMFdo-Feq
6#&FB6#""'/%%funcG&FB6#"")/%/characteristicG&FB6#""(/%.alg_relationsG&FB6#""*>8
0-%6OreModules/term_orderG6%F]q-%'lexdegG6$7#Fap7%FgpF^r-Feq6#FF7#F_p>81-%.OreM
odules/gbG6$FYF^t>8)-%'removeG6%%$hasGF[uF[o@$-%)assignedG6#%7STAFFORD_FINDT_VE
RBOSEGC$-%&printG6#Q"SF=-F\v6#-%$mapG6$f*6#F.F=6$%)operatorG%&arrowGF=-%(collec
tG6%FN7#-Ffo6$&T#6#T%/Fbw;FMT'%,distributedGF=F=6(F7FboF-FepF/FVF`u?(FepFMFM-FR
6#F`u%%trueG-%'RETURNG6#-%&coeffG6$&F`uFdpFao-%&ERRORG6#%1problem~in~FindTGF=F=
F=F=
M7R0
I5Stafford/sigmanotinMf*6('%"MG%%listG%"rG'%"dGF'%&alphaG'%$AlgGF'%&mTOrdG6)%"a
G%"bG%"fG%"iG%"mG%&sigmaG%#vlG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and
~Daniel~Robertz.~All~rights~reserved.G6"C&>8*&9(6#""$>8(-%%nopsG6#9&>8&"""?(F9F
IFIF9%%trueGC%>8)-%0OreModules/MultG6&9'-%(convertG6$-%$zipG6%f*6$F0F1F96$%)ope
ratorG%&arrowGF9*&9$FI9%FIF9F9F9FF7#-%$seqG6$&%'lambdaG6#8'/Fbo;FIFB%"+GFHF>@$0
-%7OreModules/normal_formG6%FNFin9)""!-%'RETURNG6#FH>FH*&FHFI&F<6#,&FjnFIFIFIFI
F9F9F9F9
M7R0
I/StaffordA/initf*6"F$6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~
Robertz.~All~rights~reserved.GF$-%.Stafford/initG6#9"F$F$F$F$
M7R0
I0Stafford/llcRatf*6&%"pG%"aG%"bG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-2010~b
y~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF+-%8OreModules/Factor
izeRatG6%-%&evalmG6#7#7#9$-F26#7$7#9%7#9&9'F+F+F+F+
M7R0
I5Stafford/FindF_guessf*6&%"vG%"qG%"rG'%$AlgG%%listG61%"fG%"hG%"iG%"jG%"kG%#qsG
%#vlG%#vrG%#GBG%*monomialsG%&basisG%%mAlgG%&mTOrdG%&mAlg0G%'mTOrd0G6#%\pCopyrig
ht~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C*
>8*&9'6#""$>8+&FB6#""%>8-7">8$""!>8%FO>8(FO?(F="""FUF=1FS%6Stafford/guessF_coun
tGC&@%/FQFOC&@%/FSFO>FNFU>FN)&F@6#9&-%)binomialG6$,&FSFUFUFU""#>FSFao>FK7$-%#op
G6#FKFN>FQ,&-%%nopsGFhoFU!""FUC$>FN,&&FK6#FQFUFNFU>FQ,&FQFUF]pFU@$-%)assignedG6
#%4FINDF_GUESS_VERBOSEG-%&printG6$Q&try~fF=FN@%%8Stafford/apply_JanetOreG>8)-%9
Stafford/q_elim_JanetOreG6&F]o9%-%0OreModules/MultG6%9$FNFBFBC(>8/-&%,Ore_algeb
raG6#%-skew_algebraG6(-Fgo6#&FB6#"#8/%(polynomG7&-Fgo6#F@&%'lambdaG6#FU&%#muGF_
s&Fas6#Fbo/%%commG7&F]sF`sFbs-Fgo6#&FB6#""'/%%funcG&FB6#"")/%/characteristicG&F
B6#""(/%.alg_relationsG&FB6#""*>80-%6OreModules/term_orderG6%F\r-%'lexdegG6$7$F
]s-Fgo6#&FF6#;F]oF]p7&-Fgo6#&FF6#;FU,&F]oFUF]pFUF[sF`sFbs7%F]sF`sFbs>8,-%.OreMo
dules/gbG6$7$,&*&FeqFUF]sFUFUF`sF]p,&*&FfqFUF]sFUFUFbsF]pF\u@$Ffp-F[q6$Q#GBF=Fb
v>Faq-%'selectG6$f*6#F.F=6$%)operatorG%&arrowGF=34-%$hasG6$-%&coeffG6$FiqF]s&T#
6#;T&F]p0-%(collectG6%F]x7$-Fgo6#Fax-Fgo6#T'%,distributedGFOF=F=6(F3FFF'F]oF2F@
Fbv@$0FaqFL>Faq7%-F^x6$&FaqF_sF]s,$-F^x6$FgyF`sF]p,$-F^x6$FgyFbsF]p@$Fby-%'RETU
RNG6#7$-Fgo6#FaqFNFLF=F=F=F=
M7R0
I5Stafford/normalf_locf*6(%"fG'%"GG%%listG'%$AlgG%&tableG%$OrdG'%%varsGF('%'loc
_vrGF(61%"aG%"cG%#fsG%"gG%"hG%&old_hG%&old_lG%"iG%"jG%"lG%#lmG%"NG%"vG%#lvG%#nv
G6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~r
eserved.G6"C+@%-%%typeG6$9$F(>8&FI>FK7#FI@$0-%'removeG6%%$hasG9%-FQ6%FS9(7$-%#o
pG6#&9&6#Q,left_indetsFC-FZ6#9)7"@%FF-%'RETURNG6#7#-%"$G6$""!-%%nopsG6#FI-F`o6#
Ffo>8.-%$mapG6$f*6#F2FC6$%)operatorG%&arrowGFC&-%4OreModules/lead_monG6$FIT$6#"
"#FCFC6$F,9'FT>F]p-F_p6$f*Fbp6#F:FCFC7#-%$seqG6$-%'degreeG6$FI&Fjp6#8$/F]r;"""-
Fho6#FjpFCFC6$F.FWF]p>81-F_p6$f*6#%"PG6#%$posGFCFCC$-%'memberG6%FIFjp.F]rF]rFCF
CFcrF\o>82-FQ6%FS7#-Fdo6#;F`r-Fho6#FWFer>8/F]o?(8+F`rF`r-Fho6#FK%%trueGC%>8'&FK
6#F_t@$0FetFfoC&>8%Fbt>8*F]o?(FCF`rF`rFCF\uC%>F\u%&falseG>8(-%7OreModules/norma
l_formG6%FetFTF^q@$0FduFfoC(>8-&-Fhp6$FduF^qF[q>F\v7#-Ffq6$-Fiq6$F\v&FW6#8,/Fhv
Fis@$30F^uF]o-%4Stafford/test_orderG6%8)FduF^qC$>FduF`w[>FhvF`r?(FCF`rF`rFC31Fh
v-Fho6#F]p4-%7Stafford/multiindexdivG6$-F_p6$f*FbpFCFcpFC&&T#6#T%FioFCFC6&F<F]p
F:FhvFcs-F_p6$f*FbpFCFcpFC&FcxFioFCFC6$F;F\vFcs>Fhv,&FhvF`rF`rF`r@$FgwC'>F`wFdu
>F^uF\v>F\v7#-Ffq6$-%$maxG6$Ffo,&&&F]pFgv6#&FerF\rF`r&F\vF\z!""/F]r;F`r-Fho6#Fe
r>Fet-&%,Ore_algebraG6#%-skew_productG6%-%$mulG6$)&F\oF\r&F\vF\r/F]r;F`r-FhoF[o
FduFgn>F\uFbt>FetFdu>F]t7$-FZ6#F]tFet@%FFF]t&F]t6#F`rFCFCFCFC
M7R0
I)Stafford=6"%&falseGE\[l:%2BasisOfModuleRat2Gf*F$F$6#%\pCopyright~(C)~2005-201
0~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF$C$30%5Stafford/in
itializedG.%%trueG0-%.Stafford/initGF$""!-%;Stafford/BasisOfModuleRat2G6#9"F$F$
F$%4MainStepExtendedRatGf*F$F$6#%goCopyright~(C)~2010~by~Alban~Quadrat~and~Dani
el~Robertz.~All~rights~reserved.GF$C$F,-%=Stafford/MainStepExtendedRatGF7F$F$F$
%/TwoGenerators2Gf*F$F$F)F$C$F,-%8Stafford/TwoGenerators2GF7F$F$F$%.BasisOfModu
leGf*F$F$F)F$C$F,-%7Stafford/BasisOfModuleGF7F$F$F$%<InjectiveParametrizationRa
tGf*F$F$F)F$C$F,-%EStafford/InjectiveParametrizationRatGF7F$F$F$%)MainStepGf*F$
F$F)F$C$F,-%2Stafford/MainStepGF7F$F$F$%2TwoGeneratorsRat2Gf*F$F$F)F$C$F,-%;Sta
fford/TwoGeneratorsRat2GF7F$F$F$%,MainStepRatGf*F$F$F)F$C$F,-%5Stafford/MainSte
pRatGF7F$F$F$%3ModuleIntersectionGf*F$F$F)F$C$F,-%<Stafford/ModuleIntersectionG
F7F$F$F$%2PermutationMatrixGf*F$F$F)F$C$F,-%;Stafford/PermutationMatrixGF7F$F$F
$%/BasisOfModule2Gf*F$F$F)F$C$F,-%8Stafford/BasisOfModule2GF7F$F$F$%+Elementary
Gf*F$F$F)F$C$F,-%4Stafford/ElementaryGF7F$F$F$%2ReduceLeftInverseGf*F$F$F)F$C$F
,-%;Stafford/ReduceLeftInverseGF7F$F$F$%.TwoGeneratorsGf*F$F$F)F$C$F,-%7Staffor
d/TwoGeneratorsGF7F$F$F$%1MainStepExtendedGf*F$F$F;F$C$F,-%:Stafford/MainStepEx
tendedGF7F$F$F$%7TwoStrongGeneratorsRatGf*F$F$F;F$C$F,-%@Stafford/TwoStrongGene
ratorsRatGF7F$F$F$%2Macaulay2StaffordGf*F$F$F;F$C$F,-%;Stafford/Macaulay2Staffo
rdGF7F$F$F$%=InjectiveParametrizationRat2Gf*F$F$F)F$C$F,-%FStafford/InjectivePa
rametrizationRat2GF7F$F$F$%4TwoStrongGeneratorsGf*F$F$F;F$C$F,-%=Stafford/TwoSt
rongGeneratorsGF7F$F$F$%:InjectiveParametrization2Gf*F$F$F)F$C$F,-%CStafford/In
jectiveParametrization2GF7F$F$F$%.ElementaryRatGf*F$F$F)F$C$F,-%7Stafford/Eleme
ntaryRatGF7F$F$F$%1BasisOfModuleRatGf*F$F$F)F$C$F,-%:Stafford/BasisOfModuleRatG
F7F$F$F$%1TwoGeneratorsRatGf*F$F$F)F$C$F,-%:Stafford/TwoGeneratorsRatGF7F$F$F$%
9InjectiveParametrizationGf*F$F$F)F$C$F,-%BStafford/InjectiveParametrizationGF7
F$F$F$%0StaffordOptionsGf*F$F$F)F$C$F,-%9Stafford/StaffordOptionsGF7F$F$F$F$
M7R0
I6Stafford/FindF_guess1f*6&%"rG%$rhoG'%"dG%%listG'%$AlgGF)67%"fG%"hG%"iG%"jG%"k
G%"lG%"mG%"pG%#vlG%#vrG%"LG%"MG%'M_testG%*monomialsG%&basisG%%mAlgG%&mTOrdG%&mA
lg0G%'mTOrd0G%$adfG%#nfG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Danie
l~Robertz.~All~rights~reserved.G6"C9>8,&9'6#""$>8-&FI6#""%@$0&FI6#""(""!-%&ERRO
RG6#%[oexpecting~Weyl~algebra~with~ground~field~of~characteristic~zero.G@$4-%$h
asG6$9%FM-%'RETURNG6#FV>8*-%%nopsG6#9&>82-%$seqG6$&%'lambdaG6#8&/F\p;"""F_o>8+-
%7Stafford/max_abs_coeffG6#7$Fjn-%#opGFbo@%/Fap%)infinityG>FapFV>Fap-%$maxG6$"&
85$-%*nextprimeG6#Fap@$-%)assignedG6#%4FINDF_GUESS_VERBOSEG-%&printG6$Q"pFDFap>
83-&%,Ore_algebraG6#%-skew_algebraG6(-Fgp6#&FI6#"#8/%(polynomG7#Feo/%%commG7$Fe
o-Fgp6#&FI6#""'/%%funcG&FI6#"")/%/characteristicGFap/%.alg_relationsG&FI6#""*>8
4-%6OreModules/term_orderG6%F^r-%%tdegG6&&FM6#9$-Fgp6#&FM6#;,&F[uF_pF_pF_p!""-F
gp6#&FM6#;F_p,&F[uF_pFbuF_pFeoF\s>85-F`r6(FerFjrF]sFes/F[tFVF\t>86-Fdt6%FjuFftF
\s>8/-%.OreModules/gbG6$7#-Fgo6$*&FjnF_pFioF_pF]pF_v>8.-%$mapG6$f*6#F/FD6$%)ope
ratorG%&arrowGFD&-%4OreModules/lead_monG6$F[uT#6#""#FDFD6$F?F_vFcv>8)-F^w6$f*Fa
wFDFbwFD-%$minG6#-Fgp6#-F^w6%%'degreeG-%'selectG6%FhnFiw&FjoFjt&T%6#T(FDFD6(F7F
\wF6FMF%F[u7#-%"$G6#F^p@$FeqC$-Fjq6#F\w-Fjq6#F^x>817">8$FV>8%FV>8(FV?(FDF_pF_pF
D32FV-%(convertG6$F^x%"+G1Fez""&C'@%/FczFVC&@%/FezFV>FazF_p>Faz)&FGFjt-%)binomi
alG6$,&FezF_pF_pF_pF[x>FezF\\l>F^z7$-Fgp6#F^zFaz>Fcz,&-FaoFa\lF_pFbuF_pC$>Faz,&
&F^z6#FczF_pFazF_p>Fcz,&FczF_pFbuF_p@$Feq-Fjq6$Q&try~fFDFaz>87-%0OreModules/Mul
tG6&Fjn-Fjz6$-%$zipG6%f*6$F/F0FDFbwFD*&F[uF_pFjnF_pFDFDFDFco7#FfoF\[lFazFI>88-%
7OreModules/normal_formG6%Fa]lFcvF_v@$0F_^lFVC&>80-Fev6$7$-Fgp6#FcvF_^lFbt>F\w-
F^w6$f*FawFDFbwFDFewFDFD6$F=FbtFg^l>F^x-F^w6$f*FawFDFbwFDFbxFDFDFbyFcy@$FeqC$Fi
yF[z@%/FizFVFaz-%5Stafford/FindF_BjorkG6#9"FDFDFDFD
M7R0
I0Stafford/FindF2f*6'%"rG%"MG%&alphaG'%"dG%%listG'%$AlgGF*63%"aG%#e1G%#e2G%#epG
%"gG%"iG%"jG%"mG%"pG%&sigmaG%#vlG%#vrG%#MpG%&basisG%%mAlgG%&mTOrdG%&flistG6#%\p
Copyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserve
d.G6"C->8.&9(6#""$>8/&FF6#""%>8+-%%nopsG6#9'>81-%$seqG6$&%'lambdaG6#8)/Ffn;"""F
O@$-%3Stafford/genallRatG6%9%FJ7#FU-%'RETURNG6#""!>82-&%,Ore_algebraG6#%-skew_a
lgebraG6(-%#opG6#&FF6#"#8/%(polynomG7$-F]p6#FDFU/%%commG7$FU-F]p6#&FF6#""'/%%fu
ncG&FF6#"")/%/characteristicG&FF6#""(/%.alg_relationsG&FF6#""*>83-%6OreModules/
term_orderG6%Feo-%%tdegG6%Fep-F]p6#FJFUF_o>847&-FW6$)&FD6#,&9$FinFinFinFfn/Ffn;
FinFH-FW6$,&F]sFin)F^s,&FfnFinFHFinFin/Ffn;FinF^q-FW6$,(F]sFinFgsFin)F^s,&FfnFi
nFhqFinFin/Ffn;FinFcq-FW6$,*F]sFin)F^s,&FfnFinFinFinFinFgsFin)F^s,&FfnFinF^qFin
FinFbs>8*Fin?(FAFinFinFA1Fjt-FQ6#FirC%>8--%0OreModules/MultG6&9&-%(convertG6$-%
$zipG6%f*6$F.%"bGFA6$%)operatorG%&arrowGFA*&FasFinF^oFinFAFAFAFS7#FV%"+G&Fir6#F
jtFF@$0-%7OreModules/normal_formG6%FauF^oF_rFcoC$>80-%.OreModules/gbG6$7$-F]p6#
F^oFauF_r@$-F\o6%F^wFJFcv-Fao6#Fev>Fjt,&FjtFinFinFin-%6Stafford/FindF_LeykinG6'
FasF^oFeuFSFFFAFAFAFA
M7R0
I:Stafford/TwoGeneratorsRatf*6&%"aG%"bG%"cG'%$AlgG%%listG6&%"iG%#vlG%#vrG%"LG6#
%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~rese
rved.G6"C&>8%&9'6#""$>8&&F76#""%>8'-%'selectG6$f*6#F,F26$%)operatorG%&arrowGF2/
-%'degreeG6$&9$F8<#-%#opG6#T#""!F2F26$F.F;-%(convertG6$-%;OreModules/SyzygyModu
leRatG6$-%&evalmG6#7%7#FN7#9%7#9&F7%)listlistG@%0F@7"7%FNF\o7$FTFT-%5Stafford/M
ainStepRatG6&FNF\oF^oF7F2F2F2F2
M7R0
I1Stafford/lclmRatf*6%%"aG%"bG'%$AlgG%%listG6+%"cG%"iG%"nG%#vlG%#vrG%#_tG%%mAlg
G%&mTOrdG%#GBG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.
~All~rights~reserved.G6"C*>8'&9&6#""$>8(&F;6#""%>8&-%%nopsG6#F9>8*-&%,Ore_algeb
raG6#%-diff_algebraG6'-%$seqG6$7$&F?6#8%&F9FU/FV;"""FD/%%commG-%&unionG6$<#8)<#
-%#opG6#&F;6#""'/%(polynomGFjn/%%funcG&F;6#"")/%/characteristicG&F;6#""(>8+-%6O
reModules/term_orderG6$FI-%'lexdegG6$7#F[oF?>8,-%.OreModules/gbG6$7$*&9$FZF[oFZ
*&9%FZ,&FZFZF[o!""FZF`p>Fip-%'removeG6%%$hasGFipF[o@%2""!-FF6#Fip&Fip6#FZF[rF6F
6F6F6
M7R0
I0Stafford/rlcRatf*6&%"pG%"aG%"bG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-2010~b
y~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF+-%1Stafford/adjointG
6$-%8OreModules/FactorizeRatG6%-F/6$-%&evalmG6#7#7#9$&9'6#"""-F76#7$7#-F/6$9%F<
7#-F/6$9&F<F=F<F+F+F+F+
M7R0
I=Stafford/TwoStrongGeneratorsf*6(%"aG%"bG%"cG%#u1G%#u2G'%$AlgG%%listG6&%"iG%#v
lG%#vrG%"LG6#%goCopyright~(C)~2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rig
hts~reserved.G6"C'@$5/9'""!/9(F:-%&ERRORG6#%Dexpecting~u1~and~u2~to~be~non-zero
.G>8%&9)6#""$>8&&FD6#""%>8'-%'selectG6$f*6#F.F46$%)operatorG%&arrowGF4/-%'degre
eG6$&9$FE<$-%#opG6#T#-Fhn6#T%F:F4F46&F/FBF0FH-%(convertG6$-%8OreModules/SyzygyM
oduleG6$-%&evalmG6#7%7#Fen7#9%7#9&FD%)listlistG@%0FM7"7%FenF[p7$F:F:-%:Stafford
/MainStepExtendedG6(FenF[pF]pF9F<FDF4F4F4F4
M7R0
I;Stafford/Macaulay2Staffordf*6&%"aG%"bG%"cG'%$AlgG%%listG61%"iG%"jG%"kG%"rG%"v
G%%fileG%%fextG%&fnameG%"SG%#vlG%#vrG%*keepinputG%+keepoutputG%*quietmodeG%'std
_wsG6#%goCopyright~(C)~2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~res
erved.G6"CL>8-&9'6#""$>8.&FB6#""%>8*Q!F=>8/%&falseG>80FO>8(-%(convertG6$-%+kern
eloptsG6#%(versionG%'stringG>81-%&evalbG6#52""!-%+searchtextG6$Q&APPLEF=FS/-%*s
ubstringG6$-FU6$-%*interfaceG6#.FZFen;""""#GQ=Standard~Worksheet~InterfaceF=?(8
%""&F]p9#%%trueG@%-%%typeG6$&9"6#Fap%)equationG@+/-%#opG6$F]pFipQ.keepinputfile
F=C$@$4-Fgp6$-F`q6$""#Fip%(booleanG-%&ERRORG6#%Texpecting~boolean~value~for~opt
ion~'keepinputfile'.G>FNFhq/F_qQ/keepoutputfileF=C$@$Feq-F]r6#%Uexpecting~boole
an~value~for~option~'keepoutputfile'.G>FQFhq/F_qQ%NameF=>FKFhq/F_qQ&quietF=C$@$
Feq-F]r6#%Lexpecting~boolean~value~for~option~"quiet".G>FgnFhq-F]r6#%0invalid~o
ption.GFds@'2F]o-F_o6$Q&linuxF=FS@%FboC$>8+-%4Stafford/gettmpnameGF=>82FdpC'>8'
-%(ssystemG6#%hnif~test~-d~/tmp/$USER~;~then~echo~true~;~else~echo~false~;~fiG@
$4-%&parseG6#&Fft6#FjqC$>Fft-Fht6#%1mkdir~/tmp/$USERG@$0F`uFL-F]r6#%Ecannot~wri
te~temporary~file~to~/tmp.G>F_t-Fht6#%Eecho~/tmp/$USER/Stafford-$PPID-$USERG@%2
F]o-F_o6$Q"$F=&F_tFau>F_tQ./tmp/StaffordF=>F_t-Fdo6$Fev;F]p,&-%'lengthG6#FevF]p
!""F]p>FctFO2F]o-F_o6$FaoFWC$>F_tF`t>FctFdpC$>F_tQ/\TEMP\StaffordF=>FctFO>F_t-%
$catG6$F_tFK>8)-%&fopenG6$F_t%&WRITEG-%(fprintfG6$FaxQ6load~"D-modules.m2";|+F=
-Fgx6$FaxQ%R=QQF=>8,Q"[F=?(8&F]pF]p-%%nopsG6#F@Fdp>F^y-F^x6%F^y-FU6$&F@6#FayFen
Q",F=?(FayF]pF]p-Fcy6#FFFdp>F^y-F^x6%F^y-FU6$&FFF[zFenF\z-Fgx6$FaxF^y-Fgx6$FaxQ
.WeylAlgebra=>F=>F^yQ"|frF=?(FayF]pF]pF^zFdpC$>F^y-F^x6&F^yFhyQ#=>F=Fcz@$2FayF^
z>F^y-F^x6$F^yF\zFfz-Fgx6$FaxQ%|hr];|+F=-Fgx6$FaxQ2I=stafford~ideal(F=-Fgx6$Fax
-FU6$9$Fen-Fgx6$FaxQ#,|+F=-Fgx6$Fax-FU6$9%FenFc\l-Fgx6$Fax-FU6$9&Fen-Fgx6$FaxQ$
);|+F=-Fgx6%FaxQ0f~=~"%s"~<<~""|+F=-F^x6$F_tQ%.outF=-Fgx6$FaxQ8f~<<~"_M2_RESULT
~:=~["|+F=-Fgx6$FaxQ?f~<<~toString(entries~gens~I)|+F=-Fgx6$FaxQ+f~<<~"]:"|+F=-
Fgx6$FaxQ,f~<<~close|+F=-%'fcloseG6#Fax@%FgnC$@%Fct>Fft-Fht6#-F^x6$Q'runM2~F=F_
t>Fft-Fht6#-F^x6$Q&M2~<~F=F_t@%/Fft%%NULLG-F]r6#%4could~not~run~'M2'.G>Fft&Fft6
#F]p>Fft-%'systemGFc_l@$0FftF]o-F]r6#%Zerror~while~running~Macaulay2,~please~ch
eck~installation.G@$4FctC$>Fft-Fb`l6#-F^x6'Q7sed~'s/|fr/[/g;s/|hr/]/g'~F=F_tQ(.
out~>~F=F_tQ%.resF=@$Fd`l-F]r6#%boerror~while~reading~the~result~of~Macaulay2,~
please~check~installation.GA-F^x6$F_tFbal@$54-%)assignedG6#%+_M2_RESULTG/F`bl7"
-F]r6#%Cerror~in~computation~or~interface.G@$FhsC$@$4FNC$>Fft-Fht6#-F^x6$%$rm~G
F_t@$0F^`lF]o-F]r6#%Dcannot~remove~temporary~input~file.G@$4FQC&>Fft-Fht6#-F^x6
$F`clFf]l@$Fbcl-F]r6#%Ecannot~remove~temporary~output~file.G>Fft-Fht6#-F^x6$F`c
lFhal@$FbclF_dl-F`q6#-F`qF_blF=F=F=F=
M7R0
I9Stafford/StaffordOptionsf*6#%"aG6$%"sG%)oldvalueG6#%\pCopyright~(C)~2005-2010
~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C%@$4-%%typeG6$9$%
'stringG-%&ERRORG6#%Fexpecting~a~string~as~first~argument.G@//F2Q'GuessFF+C$>8%
%6Stafford/guessF_countG@$1""#9#@%4-F06$&9"6#FA%(integerG-F56#%enexpecting~inte
ger~as~second~parameter~for~option~'GuessF'.G>F>FG/F2Q&FindFF+C$>F=%/Stafford/F
indFG@$F@@%4-F06$FG%*procedureG-F56#%fnexpecting~procedure~as~second~parameter~
for~option~'FindF'.G>FSFG/F2Q&FindHF+C$>F=%0Stafford/Find_hG@$F@@%FV-F56#%fnexp
ecting~procedure~as~second~parameter~for~option~'FindH'.G>F\oFG/F2Q(FindRhoF+C$
>F=%9Stafford/FindRhoJanetOreG@$F@@%/FGQ)JanetOreF+>Fgo%%trueG>Fgo%&falseG/F2Q&
FindTF+C$>F=%7Stafford/FindTJanetOreG@$F@@%Fjo>FdpF]p>FdpF_p/F2F[pC$>F=%8Staffo
rd/apply_JanetOreG@$F@@%4-F06$FG%(booleanG-F56#%]oexpecting~boolean~value~as~se
cond~parameter~for~option~'JanetOre'.G>F\qFG-F56#%0invalid~option.GF=F+6(F>FSF\
oF\qFgoFdpF+F+
M7R0
I4Stafford/monombasisf*6$'%%varsG%%listG%$degG6(%"BG%"CG%"cG%"iG%"jG%"nG6#%\pCo
pyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.
G6"C'>8)-%%nopsG6#9$>8$7">8%-&%)combinatG6#%'chooseG6$7#-%"$G6#;""",(F5FJ9%FJ!"
"FJ,&F5FJFMFJ?(8'FJFJ-F76#F>%%trueGC$>8&7%""!-%#opG6#&F>6#FP,&F5FJFLFJ>F;7$-FZ6
#F;-%$mulG6$)&F96#8(,(&FV6#,&FcoFJFJFJFJ&FVFboFMFMFJ/Fco;FJF5F;F2F2F2F2
M7R0
I=Stafford/MainStepExtendedRatf*6(%"aG%"bG%"cG%#u1G%#u2G'%$AlgG%%listG6<%#asG%#
bsG%#coG%"fG%#g1G%#g2G%#h1G%#h2G%"qG%#qcG%#qsG%"rG%"sG%"tG%"vG%$tmpG%'lambdaG%#
muG%'paramsG%"nG%"GG%"RG%#vlG%#vrG%#p1G%#p2G6#%goCopyright~(C)~2010~by~Alban~Qu
adrat~and~Daniel~Robertz.~All~rights~reserved.G6"C3@$0%5Stafford/initializedG.%
%trueG-%.Stafford/initGFJ@$5/9'""!/9(FW-%&ERRORG6#%Dexpecting~u1~and~u2~to~be~n
on-zero.G>8:&9)6#""$>8;&F[o6#""%>87-%%nopsG6#Fin@$/9&FW-%'RETURNG6#7%9$9%7$FWFW
@$5/F_pFW/F`pFW-Fen6#%Mdon't~know~yet~what~to~do~if~a~=~0~or~b~=~0.G@$0&F[o6#""
(FW-Fen6#%_oStafford's~Theorem~only~holds~for~Weyl~algebras~in~characteristic~0
.G>89-&%,Ore_algebraG6#%-diff_algebraG6&-%$seqG6$7$&F_o6#%"iG&FinF^r/F_r;"""Fdo
/%(polynomG7#84/%%commG7$Fgr-%#opG6#&F[o6#""'/%%funcG&F[o6#"")>8$F_p>8%F`p>8&Fa
p@%/-Ffo6#F_oFcrC%>83-%2Stafford/Ore_lclmG6%F_pFjoF[o>8*&Fbt6#""#>8,&FbtF\oC%>F
bt-%.Stafford/lclmGFet>Fgt&-%-Stafford/llcG6&FbtF_pFWF[o6$FcrFcr>F\u&-Feu6&FbtF
joFWF[oFgu>8+FW>8/-%6Stafford/max_rightvarG6$F\uF[o?(FJFcrFcrFJ2FWF_vC3@$-%)ass
ignedG6#%1STAFFORD_VERBOSEG-%&printG6$Q"rFJF_v@$/FgtFWC(>FbtFgs>FgsFis>FisFbt>F
btFgt>FgtF]v>F]vFbt@%/F]vFWC$>8(FW>8)Fcr@%F]tC%>Fbt-%2Stafford/Ore_lcrmG6%-%0Or
eModules/MultG6%FgtFVF[o-Ffx6%F]vFYF[oF[o>F\xFht>F^xF]uC'>80Fex>81Fhx>Fbt-%1Sta
fford/lcrmRatG6%F^yF`yF[o>F\x&-%0Stafford/rlcRatG6&FbtF^yFWF[oFgu>F^x,$&-Fhy6&F
btF`yFWF[oFgu!"">8--Ffx6%F\uFjoF[o@%F]tC%>Fbt-Fdt6%FazFisF[o>F^yFht>F`yF]uC%>Fb
t-%8OreModules/SyzygyModuleG6$-%&evalmG6#7$7#Faz7#FisF[o>F^y&FbtFgu>F`y,$&Fbt6$
FcrFjtF_z>82-Ffx6&F`yFYF^xF[o>88-%5Stafford/StepDownRatG6&F]\lF\uF_vF[o>8'&Fa\l
Fit>Fbt-Ffx6%F]\lFf\lF[o>8.&Fa\l6#Fcr>F_v-Fav6$F\]lF[o@$FdvC)>Fa\l-%0Stafford/l
lcRatG6&F\]lF\uFbtF[o>8<&Fa\lFgu>8=&Fa\lF[\l>F\uF\]l>Fbt-Ffx6%F\^lF^yF[o>Fgt-Ff
x6%,&Fi]lFcrFbtF_zFgtF[o>F]v,&-Ffx6%Fe^lF]vF[oFcr-Ffx6%F\^lF`yF[oFcr>F\x-Ffx6%F
\xFf\lF[o>F^x-Ffx6%F^xFf\lF[o>F[t,&F[tFcr7$F\xF^xFcr>Fgs,&FgsFcr-Ffx6&FVF\xFjoF
[oFcr>Fis,&FisFcr-Ffx6&FYF^xFjoF[oFcr7%FgsFisF[tFJFJFJFJ
M7R0
IBStafford/InjectiveParametrizationf*6$%"RG'%$AlgG%%listG65%"aG%"bG%"cG%"dG%"gG
%"iG%"jG%"kG%"rG%"EG%"FG%"LG%#LIG%"MG%"PG%&R_adjG%#vlG%#vrG%%contG6#%\pCopyrigh
t~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C1>
8.-%BOreModules/ShortestFreeResolutionG6$9$9%@$4-%%typeG6$FB%&tableG-%&ERRORG6#
%aqthis~version~of~OreModules~is~not~compatible~with~the~version~of~Stafford.~P
lease~update~the~packages.G@$2""#-%%nopsG6#-%#opG6$FT-%%evalG6#FB-%'RETURNG6#7"
>8',&-&%'linalgG6#%'rowdimG6#&FB6#"""!""-&Fao6#%'coldimGFdoFgo@$2F]oFT@%/&9"6#F
hoQ*noverboseF?Fhn-FO6#%aoThe~OreRank~of~the~corresponding~module~must~be~great
er~or~equal~to~2.G@$/-%8OreModules/RightInverseG6$FeoFGF[oFhn>84&FG6#""$>85&FG6
#""%>83-%6OreModules/InvolutionGF\q>8&-Fjo6#Fhq>8,-F`oF^r>81-%&evalmGF^r>FB-&Fa
o6#%%diagG6#-%"$G6$FgoF`r?(8)FgoFgoF\r%%trueGC.>8(F[o?(8*FgoFgo,(F`rFgoF`sFhoFg
oFgoFasC$>86-%(contentG6$-%$addG6$&Fcr6$Ffs8+/Fct;Fgo,(F\rFgoF`sFhoFgoFgo7$-FY6
#F^q-FY6#Fcq@%0Fjs""!>Fds7$-FY6#FdsFjs>Fds7$FauFgo>82-Fhr6#-%$seqG6$*$&Fds6#Ffs
Fho/Ffs;FgoFgs>Fcr-%$mapG6$%'normalG-Fer6#-%#&*G6$FfuFcr>FB-%0OreModules/MultG6
%-Fer6#7$-Fju6$-%'subsopG6$/FfsFgo7#-F]s6$F^uF`r/Ffs;Fgo,&F`sFgoFhoFgo-FY6#-Fcv
6$f*6#F0F?6$%)operatorG%&arrowGF?7$-F]s6$F^u,&T#FgoFhoFgo-FY6#FFF?F?6$F/F`s-%(c
onvertG6$Ffu%)listlistGFBFG>8$-Fcv6$FY-F`y6$-&Fao6#%*submatrixG6%FcrF`v;FgoFgoF
by>8/-%%sortG6$-%$zipG6%f*6$F/F0F?FdxF?7$FFFGF?F?F?Fdy7#-F]s6#F`vf*FhzF?F?F?@%/
&FFFfoF^uFas@%/&FGFfoF^u%&falseG-%&evalbG6#1-%'degreeG6$F`[l<$-FY6#F[y-FY6#T%-F
j[l6$Fc[l<#F_\lF?F?6&F:F^qF;Fcq>8%-%'removeG6$f*6#F/F?FdxF?F_[lF?F?F?F`z@%/-FV6
#Fg\lFTC%>Ffu-%;Stafford/PermutationMatrixG6#7%&Fg\l6$FgoFT&Fg\l6$FTFT-FY6#-Fi\
l6%%$hasGFjz7$Fg]lFi]l>Fdy-F`y6$-Fer6#-Fiv6$Ffu-%'vectorG6#FdyF(>8--%4Stafford/
ElementaryG6%Fdy7#-F]s6$F^u,&F`rFgoF`sFhoFGC%>807%7$7$&F`zFh]l&F`zFj]l-%7OreMod
ules/LeftInverseG6$-Fer6#7$7#&Fdy6#Fj_l7#&Fdy6#F[`lFG7$7$Fj_l&F`z6$FgsFT-F]`l6$
-Fer6#7$Fb`l7#&Fdy6#Fj`lFG7$7$F[`lFj`l-F]`l6$-Fer6#7$Fe`lFaalFG>Ff_l-Fi\l6$f*F\
]lF?FdxF?/&FF6#FTF[oF?F?F?Ff_l@%0Ff_lF[oC&>Ff_l-Fbz6$Ff_lf*FhzF?F?F?1-%$maxG6#-
FY6#-F`y6$-Fcv6%Fj[lF`bl<#F]\l%$setG-F[cl6#-FY6#-F`y6$-Fcv6%Fj[l&FGFablFcclFdcl
F?F?6$F;Fcq>Ffu-Fd]l6#7%&&&Ff_lFfoFfoFfo&FddlFabl-FY6#-Fi\l6%F_^lFjz7$FcdlFfdl>
FdyFb^l>F\_lF]_lC'>Ffu-Fd]l6#7$-Fju6$&F`z6$FfsFT/Ffs;FTFgsFj_l>Fdy7$-Fju6$&Fdy6
#FeelFgelFc`l>Fg\l&-%7Stafford/TwoGeneratorsG6&&FdyFfo&FdyFabl&Fdy6#FgsFGF`q>Fg
\l-Few6%/Fgo&Fg\lFfo/FT&Fg\lFablF`_l>F\_l-F^_l6%FdyFg\lFG>F\_l-F]w6(&F\_lFeq&F\
_lF`q&F\_lFabl&F\_lFfoFfuFG@$2F`sF\r>Fcr-Fjy6%-F]w6%F\_l-Fjy6%FcrF`v;FTFftFGFhe
l;Fgo,&F\rFgoF`sFho>FB-F]w6%-Fer6#7$Fbw-FY6#-Fcv6$f*FcxF?FdxF?FgxF?F?F^y-F`y6$F
\_lFbyFBFG-Fjq6$-Fjy6%FB;,(F`rFgoF]oFhoFgoFgoF`r;FgoF`rFGF?F?F?F?
M7R0
I.Stafford/initf*6"6#%*ini_printG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~
and~Daniel~Robertz.~All~rights~reserved.GF$@$50%5Stafford/initializedG.%%trueG3
2""!9#-%%typeG6$&9"6#""".%%listGC*>8$f*F$F$F$F$@$0%4_Env_Stafford_printG%&false
G-%&printG6#F7F$F$F$>%6Stafford/guessF_countGF9>%/Stafford/FindFG%5Stafford/Fin
dF_BjorkG>%0Stafford/Find_hG%7Stafford/Find_h_LeykinG>%8Stafford/apply_JanetOre
GFC>%9Stafford/FindRhoJanetOreGFC>%7Stafford/FindTJanetOreGFC>F,F-F$6)F,FHFJFMF
PFRFTF$F$
M7R0
I/StaffordT/initf*6"F$6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~
Robertz.~All~rights~reserved.GF$-%.Stafford/initG6#9"F$F$F$F$
M7R0
I5Stafford/MainStepRatf*6&%"aG%"bG%"cG'%$AlgG%%listG6<%#asG%#bsG%#coG%"fG%#g1G%
#g2G%#h1G%#h2G%"qG%#qcG%#qsG%"rG%"sG%"tG%"vG%$tmpG%'lambdaG%#muG%'paramsG%"nG%"
GG%"RG%#vlG%#vrG%#p1G%#p2G6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Dan
iel~Robertz.~All~rights~reserved.G6"C2@$0%5Stafford/initializedG.%%trueG-%.Staf
ford/initGFH>8:&9'6#""$>8;&FT6#""%>87-%%nopsG6#FR@,/9$""!-%'RETURNG6#7%9&9%7$""
"F^o/FdoF^o-F`o6#7%F]oFco7$F^oFfo/FcoF^o-F`o6#7%F]oFdo7$F^oF^o43-%$hasG6$F]oFX-
Fdp6$FdoFXF]p4-Fdp6$FcoFX-F`o6#7%F]oFco7$F^o-%0OreModules/MultG6%,&Fdo!""FfoFfo
*$FcoFcqFT@&4-Fdp6$-%)simplifyG6#*&F]oFfoFdoFcqFX-F`o6#7%,&F]oFfoFcoFfoFdoFeo43
-Fdp6$-Fjq6#*&F]oFfoFcoFcqFX-Fdp6$-Fjq6#*&FdoFfoFcoFcqFXF]p@$0&FT6#""(F^o-%&ERR
ORG6#%_oStafford's~Theorem~only~holds~for~Weyl~algebras~in~characteristic~0.G>8
9-&%,Ore_algebraG6#%-diff_algebraG6&-%$seqG6$7$&FX6#%"iG&FRFct/Fdt;FfoFgn/%(pol
ynomG7#84/%%commG7$F[u-%#opG6#&FT6#""'/%%funcG&FT6#"")>8$F]o>8%Fdo>8&F`p@%/-Fin
6#FXFfoC%>83-%2Stafford/Ore_lclmG6%F]oFcoFT>8*&Ffv6#""#>8,&FfvFUC%>Ffv-%.Staffo
rd/lclmGFiv>F[w&-%-Stafford/llcG6&FfvF]oF^oFT6$FfoFfo>F`w&-Fiw6&FfvFcoF^oFTF[x>
8+F^o>8/-%6Stafford/max_rightvarG6$F`wFT?(FHFfoFfoFH2F^oFcxC3@$-%)assignedG6#%1
STAFFORD_VERBOSEG-%&printG6$Q"rFHFcx@$/F[wF^oC(>FfvF[v>F[vF]v>F]vFfv>FfvF[w>F[w
Fax>FaxFfv@%/FaxF^oC$>8(F^o>8)Ffo@%FavC%>Ffv-%2Stafford/Ore_lcrmG6%F[wFaxFT>F`z
F\w>FbzFawC%>Ffv-%1Stafford/lcrmRatGFhz>F`z&-%0Stafford/rlcRatG6&FfvF[wF^oFTF[x
>Fbz,$&-Fb[l6&FfvFaxF^oFTF[xFcq>8--F`q6%F`wFcoFT@%FavC%>Ffv-Fhv6%Fj[lF]vFT>80F\
w>81FawC%>Ffv-%8OreModules/SyzygyModuleG6$-%&evalmG6#7$7#Fj[l7#F]vFT>Fc\l&FfvF[
x>Fe\l,$&Ffv6$FfoF^wFcq>82-F`q6%Fe\lFbzFT>88-%5Stafford/StepDownRatG6&Fh]lF`wFc
xFT>8'&F\^lF]w>Ffv-F`q6%Fh]lFa^lFT>8.&F\^l6#Ffo>Fcx-Fex6$Fg^lFT@$FhxC)>F\^l-%0S
tafford/llcRatG6&Fg^lF`wFfvFT>8<&F\^lF[x>8=&F\^lFf]l>F`wFg^l>Ffv-F`q6%Fg_lFc\lF
T>F[w-F`q6%,&Fd_lFfoFfvFcqF[wFT>Fax,&-F`q6%F``lFaxFTFfo-F`q6%Fg_lFe\lFTFfo>F`z-
F`q6%F`zFa^lFT>Fbz-F`q6%FbzFa^lFT>F_v,&F_vFfo7$F`zFbzFfo>F[v,&F[vFfo-F`q6%F`zFc
oFTFfo>F]v,&F]vFfo-F`q6%FbzFcoFTFfo7%F[vF]vF_vFHFHFHFH
M7R0
I3Stafford/inclusionf*6(%"GG%"FG'%$AlgG%&tableG%$OrdG'%%varsG%%listG'%'loc_vrGF
-6#%"iG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~ri
ghts~reserved.G6"@%/9%7"%&falseG@%0-%5Stafford/normalf_locG6(9$F79&9'9(9)7#-%"$
G6$""!-%%nopsG6#F?F9%%trueGF4F4F4F4
M7R0
I.Stafford/lcrmf*6%%"aG%"bG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-2010~by~Alba
n~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF*-%1Stafford/adjointG6$-%.S
tafford/lclmG6%-F.6$9$&9&6#"""-F.6$9%F6F7F6F*F*F*F*
M7R0
I0Stafford/genallf*6&%"GG'%#vlG%%listG'%#vrGF('%'modgenGF(6#%"MG6#%\pCopyright~
(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"@%/-%
%nopsG6#9'"""-%&evalbG6#0-%'removeG6%%$hasG9$7$-%#opG6#9%-FD6#9&7"C$>8$F=@%/-F5
6#FMF4-F:6#0-&%'linalgG6#%$detG6#-%&evalmG6#-%$mapG6$f*6#%"PG6#%"iGF1F1-Fin6$f*
F^oF16$%)operatorG%&arrowGF1-%&coeffG6$T$FAF1F16$F]oFAFioF1F16$F,F7FM""!%&false
GF1F1F1F1
M7R0
I4Stafford/test_orderf*6"6#%"sG6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~an
d~Daniel~Robertz.~All~rights~reserved.GF$C$>8$-%(convertG6$-%+kerneloptsG6#%(ve
rsionG%'stringG@%5555/-%*substringG6$F+;"""""(Q(Maple~VF$/F:Q(Maple~6F$/F:Q(Map
le~7F$/F:Q(Maple~8F$/F:Q(Maple~9F$-&%)GroebnerG6#%*testorderG6#9"-&FK6#%*TestOr
derGFNF$F$F$F$
M7R0
I8Stafford/Find_h_Schmalef*6&%"rG%"qG'%"gG%%listG'%$AlgGF)60%"hG%"iG%"jG%"lG%"m
G%"nG%#vlG%#vrG%&alphaG%(nextmonG%#GBG%"LG%%mAlgG%&mTOrdG6#%goCopyright~(C)~201
0~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C0>8*&9'6#""$>8+&
FB6#""%>8)-%%nopsG6#FF>8(-FM6#9&>80-&%,Ore_algebraG6#%-skew_algebraG6(-%#opG6#&
FB6#"#8/%(polynomG7"/%%commG7#-Fgn6#&FB6#""'/%%funcG&FB6#"")/%/characteristicG&
FB6#""(/%.alg_relationsG&FB6#""*>81-%6OreModules/term_orderG6$FU-%%tdegG6%&FF6#
9$-Fgn6#&FF6#;,&F`q"""FgqFgqFK-Fgn6#&FF6#;Fgq,&F`qFgq!""Fgq>8/-%$mapG6$f*6#F.F=
6$%)operatorG%&arrowGF=&-%4OreModules/lead_monG6$F`qT#6#""#F=F=6$F:FgpFS>8'-Fbr
6$f*FerF=FfrF=-Fbr6$f*6#F/F=FfrF=-%'degreeG6$T$F`qF=F=6$F.F`q&F]s6#;,&T&FgqFgqF
gqT'F=F=6(F4FFF%F`qF2FKF`r>8,&Fbs6#Fgq?(8%F_sFgq-FM6#Fbs%%trueG@$2-%$mulG6$,&&&
Fbs6#F[u6#8&FgqFgqFgq/Fiu;Fgq,&FKFgqF`qF^r-Fbu6$,&&FgtFhuFgqFgqFgqFju>FgtFfu@$-
%)assignedG6#%7STAFFORD_FINDH_VERBOSEG-%&printG6$Q&alphaF=Fgt>8$7#Fgq?(F=FgqFgq
F=F^uC/@$Fcv-Fhv6$Q"hF=F\w>8.-%.OreModules/gbG6$7$9%-%$seqG6$-F\x6$-%0OreModule
s/MultG6%&FSFgu&F\wFhuFB/Fiu;Fgq-FM6#F\w/F[u;FgqFPFgp@$Fcv-Fhv6$Q#GBF=Few>F`r-F
br6$f*FerF=FfrF=FirF=F=F`sFew@$Fcv-Fhv6$Q"LF=F`r>Fbs-%$minG6#-Fgn6#-Fbr6%F[tF`r
<#-Fgn6#&FF6#;F`qFK@$Fcv-Fhv6$Q"lF=Fbs@$/Fbs""!-%'RETURNGFhx>8--%6Stafford/next
monomialG6%&F\w6#F^r&F@FdqFgt@$/F_[lFgq[>F[uF_s?(F=FgqFgqF=31F[uFgx4-%'divideG6
$F_[l&F\wFgu>F[u,&F[uFgqFgqFgq@%F\\l>F\w-%'subsopG6$/F[uF_[lF\w>F\w7$-FgnFhxF_[
l-%&ERRORG6#%3problem~in~Find_h.GF=F=F=F=
M7R0
I4Stafford/gettmpnamef*6"6'%"iG%"jG%"rG%"PG%"SG6#%\pCopyright~(C)~2009-2010~by~
Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF$C&>8(-%(convertG6$-%+k
erneloptsG6#%(versionG%'stringG@%5555/-%*substringG6$F/;"""""(Q(Maple~VF$/F>Q(M
aple~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$%//tmp/Stafford-GFN0&F/6#F
B""!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_
oFhnC&>F/-F?6$F/;Faq,(F^pFB""%FBF`pFB>8&-FX6#-Fin6$%.test~-d~/tmp/GF/@$0&F^rF^o
F_oC$>F^r-FX6#-Fin6$%,mkdir~/tmp/GF/@$Fer-%&ERRORG6#%Ecannot~write~temporary~fi
le~to~/tmp.G-Fin6(%&/tmp/GF/%+/Stafford-GFN%"-GF/F$F$F$F$
M7R0
I<Stafford/copyright_Staffordf*6"F$6#%\pCopyright~(C)~2005-2010~by~Alban~Quadra
t~and~Daniel~Robertz.~All~rights~reserved.GF$C)-%&printG6#%9Stafford~(2005-2010
)~(C)G-F)6#%inCopyright~(C)~(2005-2010)~by~Alban~Quadrat~and~Daniel~Robertz.G-F
)6#%5All~rights~reserved.G-F)6#%YThis~software~should~be~referenced~if~it~is~us
ed~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-Stafford/llcf*6&%"pG%"aG%"bG'%$AlgG%%listG6"6#%\pCopyright~(C)~2005-2010~by~A
lban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.GF+-%5OreModules/Factorize
G6%-%&evalmG6#7#7#9$-F26#7$7#9%7#9&9'F+F+F+F+
M7R0
I4Stafford/FindOneRatf*6$'%"gG%%listG'%$AlgGF'6%%"iG%"jG%"tG6#%\pCopyright~(C)~
2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~reserved.G6"C'>8&-%6O
reModules/term_orderG6$&9%6#"""-%%tdegG6#-%#opG6#&F86#""%>8$F:>8%FE?(FE""#F:-%%
nopsG6#9$%%trueG@$4-%4Stafford/test_orderG6%&FM6#FG&FM6#FEF3>FGFE-%1Stafford/Ma
keOneG6$-%'normalG6#*&-%&denomG6#FTF:FTF:F8F0F0F0F0
M7R0
I4Stafford/FindRho_dsf*6&%"rG%"qG'%"aG%%listG'%$AlgGF)62%"iG%"jG%"pG%"tG%"SG%#v
lG%#vrG%&basisG%'lambdaG%#muG%%mAlgG%&mTOrdG%#GBG%(weightsG%,startweightG%$tmpG
6#%\pCopyright~(C)~2005-2010~by~Alban~Quadrat~and~Daniel~Robertz.~All~rights~re
served.G6"C4>8)&9'6#""$>8*&FD6#""%>8'-%%nopsG6#9&>8&,&FM"""FUFU>807$,&-%$addG6$
*&&8,6#8%FU&FQFjnFU/F[o;FUFMFU&8-6#FU!""-%$seqG6$,&*&FhnFU9%FUFU&F`o6#,&F[oFUFU
FUFboF]o>8+6$-Fdo6$&Fin6#8$/FcpF^o-Fdo6$&F`oFbp/Fcp;FUFS>8.-&%,Ore_algebraG6#%-
skew_algebraG6(-%#opG6#&FD6#"#8/%(polynomG7$F]p-Fcq6#&FD6#""&/%%commG7$F]p-Fcq6
#&FD6#""'/%%funcG&FD6#"")/%/characteristicG&FD6#""(/%.alg_relationsG&FD6#""*>81
7#-%"$G6$FU,*FMFU-FO6#FHFUFSFU-FO6#FBFU>82-%$maxG6$""#-Fet6#-Fcq6#-%$mapG6%%'de
greeGFQ&FB6#9$@$-%)assignedG6#%;STAFFORD_FINDRHODS_VERBOSEG-%&printG6$Q6find~rh
o:~startweightF?Fct>F[oFU?(F?FUFUF?%%trueGC)@$Fdu-Fiu6$Q2find~rho:~weightsF?Fhs
>8/-%6OreModules/term_orderG6%F[q-%%wdegG6$Fhs7'F_p-Fcq6#&FH6#;,&FbuFUFUFUFboFe
p-FcqFat-Fcq6#&FH6#;FUFbu7#F]p@%%9Stafford/FindRhoJanetOreGC%>83-%=OreModules/O
reModulesOptionsG6$Q.GroebnerBasisF?Q)JanetOreF?>FW-%.OreModules/gbG6$FWFev-F`x
6$FbxF^x>FWFex>8(-%'removeG6%%$hasGFW7#F_p@$0F\y7"C$@$Fdu-Fiu6$Q=find~rho:~succ
essful~weightsF?Fhs[@%/F[oFU>F[oFct>F[oF[p>Fhs-%'subsopG6$-Fdo6$/FcpF[oFdpFhs>F
]pFep>F[qF\q>Fhs7#-F[t6$FU,(F^tFUF`tFUFSFU>F[oFU?(F?FUFUF?/-%'selectG6$f*6#F-F?
6$%)operatorG%&arrowGF?4-F`y6$-%&coeffG6$Fbu&T#Fao&T%6#;,&T(FUFUFUFboF?F?6(F6F`
oF3FHF%FbuF\yFdyC'>F[oF[p>Fhs-Faz6$-Fdo6$Fez/Fcp;FU,(FUFUF^tFUFbuFboFhs@$FduFav
>Fev-Fgv6%F[q-Fjv6$Fhs7'F_oF]wFcwFdw-Fdo6$Fgp/Fcp;FgtFSFiw>F\y-Ffx6$F\yFev?(Fcp
FUFU-FO6#F\yF^v@$4-F`y6$-F\\l6$&F\yFbpF_oF_wC$@$FduFgy-%'RETURNG6#Ff^lF?F?F?F?