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/fabianska/maple/lib/9/QuillenSuslin......................................................................................................................................................................................................................?�+E����uillenSuslinQuillenSuslinAQuillenSuslinTQuillenSuslin/versionALLPROCSQuillenSuslinA/initQuillenSuslin/APatchingQuillenSuslin/APatchQuillenSuslin/CofactorsQuillenSuslin/CompleteMatrixQuillenSuslin/copyright_QuillenSuslinQuillenSuslin/DenomOfQuillenSuslin/easy2QuillenSuslin/easyfQuillenSuslin/easygQuillenSuslin/easysrQuillenSuslin/FindIrreducibleNotInQuillenSuslin/FindMonic1VarQuillenSuslin/FindMonicInQuillenSuslin/HEURISTICQuillenSuslin/HorrocksNQuillenSuslin/HorrocksQuillenSuslin/initQuillenSuslin/InvertibleInQuillenSuslin/iseasyg1QuillenSuslin/iseasyQuillenSuslin/IsInSQuillenSuslin/IsMonicQuillenSuslin/IsParkNormalisedQuillenSuslin/IsRegularQuillenSuslin/IsUnimodQuillenSuslin/JIsUnimod............,uM7R0
I)ALLPROCS7$Q6QuillenSuslin/version6"Q)ALLPROCSF%F%
M7R0
I:QuillenSuslin/PatchingNewf*6(%"mG'%"rG%%listG'%$varGF(%"XG'%"UGF(%&paramG6*%"
iG%"VG%"YG%"ZG%"pG%#irG%#rmG%#UIG6#%enCopyright~(C)~2004~by~Anna~Fabianska.~All
~rights~reserved.G6"C,@$2""%9#>8(-%2InvolutiveOptionsG6$Q)rationalF:9)>8*-%$map
G6$f*6#%"aGF:6$%)operatorG%&arrowGF:)9$T$F:F:6$F%FS9%@%0&-%0InvolutiveBasisG6$F
H9&6#"""FinC$@$2""&F?-FC6$FEFA-%&ERRORG6#%<the~row~r~is~not~unimodularGC$>8)-%$
rhsG6#&-Fen6$-%'AddRhsG6#FHFgnFhn@$4-%%typeG6$FfoF(>Ffo7#Ffo>8&9'>8',&FipFin*(&
FHFhnFin&FfoFhnFinFipFin!"">8+-&%.LinearAlgebraG6#%.MatrixInverseG6#&9(Fhn>8%-%
".G6$Fiq-%%subsG6$/FipF[qFbq?(8$""#Fin-%%nopsG6#FV%%trueGC&>Fhp,&FhpFin*(&FH6#,
&FerFinF`qFinFin&FfoF`sFinFipFinF`q>F[q,&F[qFin*(&FH6#FerFin&FfoFgsFinFipFinF`q
>Fbq-Fdq6#&FjqFgs>F\r-F^r6%F\r-Far6$/FipFhpF\tF`r@$F\oF^oO-%)simplifyG6#F\rF:F:
F:F:
M7R0
I>QuillenSuslin/RedRightInversef*6%'%"fG%%listG'%$VARGF'%"pG6)%"gG%"rG%$varG%#g
rG%#IBG%"SG%#ISG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.
G6"C(@$2""#9#>8%-%=Involutive/InvolutiveOptionsG6$Q)rationalF59&@%/9%7">8&7#%$_
T_G>FGFD>8(-%;Involutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#9$FG@%0-%$lhs
G6#&FL6#"""FenC$@$F8-F>6$F@F<-%&ERRORG6#%:the~row~is~not~unimodularGC'>8$-%$rhs
GFX-%&printG6#Q5compute~SyzygyModuleF5>8)-%8Involutive/SyzygyModuleG6$FSFG>8*-F
N6$FhoFG>8'-%8Involutive/PolInvReduceG6%F`oF]pFG@$F8FhnOFapF5F5F5F5
M7R0
I@QuillenSuslin/ReduceBasisDegreef*6&'%"BG%'MatrixG'%"qG%(integerG'%$varG%%list
G%&paramG6.%"nG%"fG%"RG%#IBG%#NBG%"iG%"rG%"jG%"ZG%#IRG%#ZiG%*reductionG6#%enCop
yright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G6"C+>8(-%%copyG6#9$>8$-
&%.LinearAlgebraG6#%0ColumnDimensionGFD@$0-&FJ6#%-RowDimensionGFDFG-%&ERRORG6#%
:The~matrix~is~not~square!G>8/%&falseG>8*-%=Involutive/InvolutiveOptionsG6$Q)ra
tionalF>9'?(8),&9%"""F_oF_oF_oFG%%trueGC(>8,-%(convertG6$FA%)listlistG@%/F\oFG>
8&&Fco6#;F_o,&FGF_o!""F_o>F[p7$-%#opG6#&Fco6#;F_o,&F\oF_oF`pF_o-Fdp6#&Fco6#;,&F
\oF_oF_oF_oFG>8--%;Involutive/InvolutiveBasisG6$F[p9&>8.-%8Involutive/PolInvRed
uceG6%&Fco6#F\oFaqFeq@$0FgqF[r>FXF`o?(8+F_oF_oFGF`o>&FA6$F\oFar&Fgq6#Far@$2""%9
#-%'assignG6$&9"6#""&FX-Fgn6$FinFenOFAF>F>F>F>
M7R0
I8QuillenSuslin/testSEASYf*6''%"fG%%listG'%"gGF''%$varGF''%"SGF'%&paramG6#%"EG6
#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G6"C&-%)userinfoG
6%""$%+SHeuristicG%,test~SeasyfG>8$-%6QuillenSuslin/Seasyf1G6&9$9&9'9(@%/-%)wha
ttypeG6#F<%'MatrixGC$-F66%F8F9%;Seasyf1~-~no~induction~!!!GOF<C%-F66%F8F9%-test
~Seasyf2G>F<-%6QuillenSuslin/Seasyf2GF?@%FEC$-F66%F8F9%;Seasyf2~-~no~induction~
!!!GOF<C%-F66%F8F9%-test~SeasysrG>F<-%6QuillenSuslin/SeasysrGF?@%FEC$-F66%F8F9%
;Seasysr~-~no~induction~!!!GOF<C%-F66&F8F9%-~test~SeasygG9%>F<-%9QuillenSuslin/
testSeasygG6'F@FgoFAFBFC@$FEC$-F66%F8F9%:Seasyg~-~no~induction~!!!GOF<OF<F3F3F3
F3
M7R0
I6QuillenSuslin/version"-Z:423?6"
M7R0
I5QuillenSuslin/APatchf*6'%"AG'%"XG%'symbolG'%%varcG%%listG'%"UGF+%&paramG6,%"i
G%"VG%"YG%"ZG%#UIG%'DeltaIG%"rG%"dG%#idG%"nG6#%enCopyright~(C)~2006~by~Anna~Fab
ianska.~All~rights~reserved.G6"C,-%)userinfoG6%""$%&PatchG%gnyou~should~test~be
fore~if~we~have~enough~local~|+information!G>8--%%nopsG6#9'>8+7#-%"$G6$""!FE>8)
FL?(8$"""FUFE%%trueGC%>8(-&%.LinearAlgebraG6#%.MatrixInverseG6#&FI6#FT>&FRF[o-%
)simplifyG6#-%".G6$Fjn-%%subsG6$/9%,&FhoFU8'FUFY>&FKF[o-%6QuillenSuslin/DenomOf
G6#F]o@%/-FG6#FKFU>8,7#*$&FK6#FU!"">Fep-%;QuillenSuslin/RightInverseG6%FK9&9(>8
&Fho>8%-F_o6#-Feo6$/Fjo,$*(,&FhoFU9$FjpFUFhpFU&FepFipFUFjp&FRFip?(FT""#FUFEFVC$
>Fbq,&FbqFU*(&FK6#,&FTFUFjpFUFU&FepFgrFUF\rFUFjp>Fdq-F_o6#-Fbo6$Fdq-Feo6%/FhoFb
q/Fjo,$*(F\pFU&FepF[oFUF\rFUFjpF]oOFdqF<F<F<F<
M7R0
I?QuillenSuslin/RightInverseFastf*6%'%"fG%%listG'%$VARGF'%&paramG6&%"gG%"rG%$va
rG%#IBG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C(@$2"
"#9#@%/-%)whattypeG6#9&%(integerG@%-%(isprimeGF<>8%-%=Involutive/InvolutiveOpti
onsG6$Q%charF2F=-%&ERRORG6#QjnExpecting~a~prime~number~as~a~characteristic~of~a
~finite~field!F2>FC-FE6$Q)rationalF2F=@%/9%7">8&7#%$_T_G>FUFR>8'-%?Involutive/I
nvolutiveBasisFastG6$-%2Involutive/AddRhsG6#9$FU@$F5@%F9-FE6$FGFC-FE6$FOFC@%0-%
$lhsG6#&FZ6#"""FioC$-%)userinfoG6%""$%,QSAlgorithmG%MThe~row~is~not~unimodular~
in~the~given~ring.GOFS>8$-%$rhsGFfoOFcpF2F2F2F2
M7R0
I4QuillenSuslin/RowQSf*6&'%"FG%%listG'%$varGF'%"pG%*lastparamG62%"gG%"EG%$VARG%
#SUG%$ISUG%"NG%#ffG%#ggG%#fnG%#gnG%"fG%"UG%#QMG%#fmG%"RG%&paramG6#%enCopyright~
(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C.@%2""#9#>839&>FF%%trueG-%)
userinfoG6&""$%,QSAlgorithmG%&RowQSG&9"6#;"""!"#-FK6%FMFN%5Compute~RightInverse
G>8$-%;QuillenSuslin/RightInverseG6%9$9%FF@$/FZ7"OF\o-FK6&FMFN%-RightInverseGFZ
@$/FinF\oC$-FK6&FMFN%CNo~variables~-~a~row~of~constants~GFhn@%/&%$argG6#FM%&fal
seGO-%4QuillenSuslin/RowZZG6#FhnO-%4QuillenSuslin/RowQQGF`p@$3/FFFI/-%%nopsG6#F
inFT-FK6%FMFN%&QQ[x]G-FK6&FMFNFO%coTest~heuristic~methods.~For~more~information
~set~infolevel[Heuristic]:=3G>8%F\p@$52FD""%09'Q'noeasyF?>Fbq-%7QuillenSuslin/t
estEASYG6&FhnFZFinFF@%/-%)whattypeG6#Fbq%'MatrixGC%-FK6%FMFO%+Heuristic:G-FK6%F
MFN%BUsing~heuristic~methods~return~E:GOFbqC8-FK6%FMFN%ENot~easy~-~no~heuristic
~methods~workG>8.Fhn@%4-%6QuillenSuslin/IsMonicG6$Fas&Fin6#!""C%>8&-%$mapG6$f*6
#%"aGF?6$%)operatorG%&arrowGF?-%$catG6$Fhn%"_GF?F?F?Fin>6%8)8'8(-%@QuillenSusli
n/NormalizationStepG6'FasFinF\tFFQ%lastF?>8,-%%subsG6$F]u&-%(convertG6$-%)simpl
ifyG6#-%".G6$-Fcr6#FasF\u%)listlistG6#FTC'>F\tFin>F\u-&%.LinearAlgebraG6#%/Diag
onalMatrixG6#7#-%"$G6$FT-FipFcv>F]u7#/&FinFev&F\tFev>F^u7#/FhwFgw>FduFas>Fdu-F]
v6#Fdu-FK6&FMFN%<The~row~after~normalizationGFdu-FK6&FMFN%NTest~heuristic~metho
ds~for~the~normalized~rowGFdu>8--Ffn6%FduF\tFF>FbqF\p@$Fdq>Fbq-F\r6&FduFgxF\tFF
@%F_rC$-FK6%FMFN%KHeuristic~for~the~row~after~normalization:GO-F]v6#-F`v6$F\u-F
fu6$F^uFbq-FK6%FMFN%QNo~heuristic~methods~work~for~the~normalized~rowG>6$8*82-%
8QuillenSuslin/ReduceDegG6%Fdu&F\tFhs.%(reducedG@%FgzC(-FK6&FMFN%Jthe~row~after
~normalization~and~reductionGF`z-FK6&FMFN%KTest~heuristic~methods~for~the~reduc
ed~rowGF`z>8+-Ffn6%F`zF\tFF>FbqF\p@$Fdq>Fbq-F\r6&F`zFa[lF\tFF@%F_rC$-FK6%FMFN%Y
Heuristic~for~the~row~after~normalization~and~reduction:GO-F]v6#-F`v6$F\u-Ffu6$
F^u-F`v6$FazFbq-FK6%FMFN%NNo~heuristic~methods~work~for~the~reduced~rowG-FK6&FM
FN%KNo~reduction~-~the~row~was~already~reducedGF`z-FK6%FMFN%[oOneStep~-~Enter~t
he~inductive~procedure~and~reduce~one~variable:G-FK6%FMFN%enOneStep~-~Compute~l
ocal~solutions~and~patch~them~together!G-FK6%FMFN%gnOneStep~-~For~more~informat
ion~set~infolevel[OneStepMore]:=3G>80-%:QuillenSuslin/OneStepMoreGFc[l-FK6&FMFN
%1After~one~step:~G-Fju6$-F]v6#-F`v6$-Fcr6#F`zFg]lFdv>8/-F]v6#-F`v6$F\u-Ffu6$F^
u-F]v6#-F`v6$FazFg]l>81&F]^lFev-FK6&FMFN%BNow~repeat~the~computation~for~fmGFb_
l@%Feq>Ff^l-F]v6#-F`v6$Ff^l-Ffu6$F^u-F"6%Fb_l&F\tFRFF>Ff^l-F]v6#-F`v6$Ff^l-Ffu6
$F^u-F"6&Fb_lFa`lFFFhqOFf^lF?F?F?F?
M7R0
I6QuillenSuslin/Seasyf2f*6''%"fG%%listG'%$varGF'%"SG%$parG%$strG6.%&paramG%"nG%
#IBG%"iG%"jG%"kG%#riG%#M1G%#M2G%"PG%"lG%"sG6#%enCopyright~(C)~2006~by~Anna~Fabi
anska.~All~rights~reserved.G6"C'@%2""$9#>8$9'>FC%%trueG-%)userinfoG6%""%%&SEASY
G%9test~two~components~of~fG>8%-%%nopsG6#9$?(8'"""FU,&FNFU!""FUFF?(8(,&FTFUFUFU
FUFNFFC$>8/-%;QuillenSuslin/InvertibleInG6&7$&FR6#FT&FR6#FY9&9%FC@&0-FP6#Fgn""!
C.>8+-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$FUFN>&Fio6$FTFT*&&&Fgn6#""
#6#FUFU&FgnF\qFW>&Fio6$FYFT*&&FipFjpFUF]qFW>&Fio6$FTFY,$F^oFW>&Fio6$FYFYF\o>8,F
jo?(8.FUFUFNFF>&F[r6$FTF]r,$&FR6#F]rFW>&F[rFfpFU>&F[rFeqFfo@%0FTFUC$>8--%@Quill
enSuslin/PermutationMatrixG6%FUFTFNO-%)simplifyG6#-%".G6%FioF[rF\sO-Fbs6#-Fes6$
FioF[r>FTFN>FYFN/FTFVC$-FH6%FJ%*HeuristicG%LThe~row~is~not~Seasyf2~over~the~giv
en~ring.GO%&falseGOFhsF<F<F<F<
M7R0
I:QuillenSuslin/SuslinLemmaf*6&%"pG%"qG'%"vG%'symbolG%"tG6*%"sG%"aG%"bG%#cpG%#c
qG%"hG%"iG%"kG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6
"C-@$/-%6QuillenSuslin/IsMonicG6$7#9$7#9&%&falseG-%&ERRORG6%%UThe~first~polynom
ial~should~be~monic~in~the~variableGF@%"!G>8$-%'degreeG6$F>F@@$2FI-FJ6$9%F@-FC6
#%^oThe~polynomial~q~should~be~of~degree~smaller~then~the~polynomial~p!G@$2,&FH
"""!""FW9'-FC6#%[oThe~polynomial~q~is~of~degree~smaller~then~the~last~parameter
~t!G>8%-%$mapG6$f*6#F2F66$%)operatorG%&arrowGF6-%&coeffG6%T$T&,&T'FWF>FXF6F66(F
%F>F(F@F,FH7#-%"$G6#;FWFH>8&-Fjn6$f*F]oF6F^oF6FaoF6F66(F&FPF(F@F,FHFio>8+,&FHFW
FYFX@$2""%9#C%-%&printG6$Q"aF6Fhn-F]q6$Q"bF6F_p-F]q6&Q"kF6FepQ%b[k]F6&F_p6#Fep@
%/Fgq""!C%>8)F[r>8'F[r>8(F[rC$@%/FepFWC$>FbrFW>F`rF[rC&>Fbr)F@,&FepFWFXFW?(8*FW
FWF\s%%trueG>Fbr,&FbrFW*&&Fhn6#F^sFW)F@,(FepFWFXFWF^sFXFWFW>F`r&F_p6#F\s@$2""#F
ep?(F^sFWFW,&FepFW!"#FWF_s>F`r,&F`rFW*&&F_p6#FfsFW)F@F^sFWFW>F^r-%)simplifyG6#,
&*&FbrFWFPFWFW*&F`rFWF>FWFX@$Fhp-F]q6%%RThe~leading~coefficient~and~the~leading
~monomial:G-%1QuillenSuslin/LCG6$F^rF@)F@-FJFcuO6%,$F`rFXFbrF^rF6F6F6F6
M7R0
I9QuillenSuslin/SHeuristicf*6('%"fG%%listG'%"gGF''%$varGF''%"SGF'%&paramG%*last
paramG6+%"hG%"EG%"FG%"GG%"HG%"MG%"nG%"iG%*infolevelG6#%enCopyright~(C)~2006~by~
Anna~Fabianska.~All~rights~reserved.G6"C'>8*-%%nopsG6#9$@$2""&9#>&8,6#%+SHeuris
ticG""$>8%-%8QuillenSuslin/testSEASYG6'FC9%9&9'9(@$/FO%&falseG-%)userinfoG6%""!
FL%erNo~heuristic~methods~work~for~the~given~row~and~this~inverse.~You~can~try~
the~same~procedure~giving~another~right~inverse.GOFOF<F<F<F<
M7R0
I<QuillenSuslin/BasisOfModulef*6%'%"RG<$%'MatrixG%%listG'%$varGF)%&paramG6&%"nG
%"mG%"CG%(reducedG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserve
d.G6"C%>8&-%/CompleteMatrixG6%9$9%9&@%/-%)whattypeG6#F;F)C$>8$""">8%-%%nopsGFBC
$>FE-&%.LinearAlgebraG6#%-RowDimensionGFB>FH-&FO6#%0ColumnDimensionGFB@%/-FA6#F
7F(C%>8'%%trueG?(F4FFFFF4Fgn>F7-%@QuillenSuslin/ReduceBasisDegreeG6'F7FEF<%&fal
seG.FgnO-&FO6#%*SubMatrixG6%F7;,&FEFFFFFFFH;FFFH-%&ERRORG6#%8Not~a~unimodular~m
atrixGF4F4F4F4
M7R0
IDQuillenSuslin/BasisOfCokernelModulef*6%'%"RG<$%'MatrixG%%listG'%$varGF)%&para
mG6(%"nG%"mG%"CG%#FRG%(reducedG%"rG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~A
ll~rights~reserved.G6"C)>8$-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8%-&F<6#%0Co
lumnDimensionGF?@$-%;QuillenSuslin/IsZeroMatrixGF?C$-%(WARNINGG6#%ioThe~module~
is~defined~as~a~cokernel~of~a~zero~matrix,~thus~isomorph~to~D^|fr1xq|hrGO-&F<6#
%/IdentityMatrixG6#F9@%/F9""">8'F@C(>8)-%=Involutive/InvolutiveOptionsG6$Q)rati
onalF69&>FY-%AInvolutive/PolShortestResolutionG6$F@9%-Fhn6$FjnFfn@%/-%%nopsG6#F
YFWC$>FY&FY6#FW@$/-%7QuillenSuslin/IsUnimodG6%FYF`oF[o%&falseGC$-FL6#%=The~modu
le~is~not~projectiveGO7"C$-FL6#%coThe~module~is~not~projective,~the~shortest~fr
ee~resolution~has~length~>1GOFgp>F9-F;Fgo>FB-FDFgo>8&-%=QuillenSuslin/CompleteM
atrixGF`p@%2""$9#>8(%%trueG>FjqFap@%/-%)whattypeG6#FbqF(C$?(F6FWFWF6Fjq>Fbq-%@Q
uillenSuslin/ReduceBasisDegreeG6'FbqF9F`oF[o.FjqO-&F<6#%*SubMatrixG6%Fbq;,&F9FW
FWFWFB;FWFCC%-%)userinfoG6%Fgq%6BasisOfCokernelModuleG%\qThe~full~row~rank~matr
ix~defining~the~module~(as~a~cokernel)~is~not~unimodular~in~the~given~ring.GFcp
OFgpF6F6F6F6
M7R0
I>QuillenSuslin/RCFactorizationf*6$'%"PG%'MatrixG'%$varG%%listG6.%"qG%"rG%"DG%"
NG%"RG%$RtTG%"LG%$LtTG%"UG%$R2pG%#NpG%#DpG6#%enCopyright~(C)~2007~by~Anna~Fabia
nska.~All~rights~reserved.G6"C.>8$-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8%-&F
@6#%0ColumnDimensionGFC>8&-&F@6#%/DiagonalMatrixG6#7#-%"$G6$-%6QuillenSuslin/De
nomOfGFCF=>8'-%)simplifyG6#-%".G6$FLFD>8(-F'6#-%$<|gr>G6$FL,$FY!""@%2""#9#>8*&-
%7QuillenSuslin/LinBose1G6%F[o9%%$optG6#Feo>Fho&-F[p6$F[oF]pF_p@$4-%7QuillenSus
lin/IsUnimodG6%FhoF]p%%trueGC$-%(WARNINGG6#%\othe~transfer~matrix~does~not~admi
t~a~right~coprime~factorization.G-%'RETURNG6#7">8,-%:QuillenSuslin/QSAlgorithmG
Fhp>8--&F@6#%*SubMatrixG6%Fdq;""",&F=F_rFFF_r;,&F=F_rF_rF_rF`r>8.-Fjq6%Fhq;F_rF
=;F_rFF>8/-Fjq6%FhqFarFhr-F`q6#7$FdrFjrF:F:F:F:
M7R0
I<QuillenSuslin/FindMonic1Varf*6%'%"AG%%listG'%"vG%'symbolG%&paramG6&%#IBG%"iG%
"kG%"rG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C)@$2"
"#9#>8'-%=Involutive/InvolutiveOptionsG6$Q)rationalF39&>8$-%;Involutive/Involut
iveBasisG6$-%2Involutive/AddRhsG6#9$7#9%>8&""!?(8%"""FP-%%nopsG6#FA%%trueG@$/-%
$absG6#-%1QuillenSuslin/LCG6$-%$lhsG6#&FA6#FOFJFPC$>FLFO>FOFQ@$/FLFMC&@$F6-F<6$
F>F:-%&printG6%%coCheck~if~the~hight~of~the~ideal~generated~by~the~leading~coef
ficients~ofGFH%^qis~greater~then~the~Krull~dimension~of~the~ring~of~coefficient
s.~See~Lemma~10.5~Vaserstein,~Suslin.G-%(WARNINGG6#%=Fail~to~find~~monic~elemen
t.GO7"@$F6FcoO6$-Fhn6#&FA6#FL-%$rhsGFdpF3F3F3F3
M7R0
I8QuillenSuslin/HorrocksNf*6&'%#ffG%%listG'%$MaxGF''%$varGF'%&paramG64%"fG%"LG%
"TG%%lastG%%varcG%$MAXG%"rG%#fmG%"NG%"sG%"iG%"mG%"jG%$lcMG%$dlcG%$LCMG%#SLG%#ft
G6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C2>8$9$>8&-&
%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$"""-%%nopsG6#FE>8'&9&6#!"">8(&FZ6
#;FS!"#@$2""%9#-%&printG6&%TConsider~the~polynomials~as~polynomials~in~variable
GFX%gnand~with~coefficients~with~the~polynomial~ring~in~variables:GFhn>8*-%2Inv
olutiveOptionsG6$Q)rationalFB9'@%0Fhn7">8)-%0InvolutiveBasisG6$9%Fhn>Fap-Fcp6$F
ep7#%$_T_G@$F^oC%-Fbo6$Q$MAXFBFap-%(WARNINGG6#%_rIt~will~not~be~tested~here~if~
the~ideal~is~maximal~in~the~given~ring~of~coefficients.~Please~check~it~on~your
~own...G-%(WarningG6#%Lwe~set~Max=[0]~for~the~computation~in~QQ[x]G-Fio6$F[pFgo
>8-""!>8%-%$mapG6$f*6#%"aGFB6$%)operatorG%&arrowGFB@%2F\r-%'degreeG6$FFT#F\r-%(
ReduceFG6&FFT%T(T*FBFB6*F1FXF3FapF+FZF,F\pFE?(8.FSFSFT%%trueG@$0&F^r6#FfsF\r@%/
-%(DenomOfGFVFS@%/F[rF\r>F[rFfs@$2-F[s6#&FEF[t-F[s6#&FE6#F[r>F[rFfsC$>F[rFfs>Ff
sFT@$0F[rF\rC(>&FH6$F[rF[r*$FjtFfn>8,FI?(FfsFSFSFTFgs>&Fhu6$F[rFfs,$FgtFfn>&Fhu
FeuFS>FH-%".G6$FHFhuO-%)simplifyG6#FH@$F^oC$-Fbo6$%Zthe~row~should~have~an~elem
ent~monic~in~the~last~variableGFX-Fbo6$Q"fFBFE@%-%(IsMonicG6$FEFXC'>FhuFI>Fhu&-
%*ReduceDegG6%FEFX.%%flagG6#""#>FH-Ffv6#Fav>FE-F`r6$f*FcrFBFerFB-Ffv6#FFFBFBFB&
-%(convertG6$-Fbv6$-%'MatrixGFgxFH%)listlistG6#FS@%F\x@%F^oC$-Fbo6$Qgnthe~row~w
as~reduced,~do~the~computation~for~the~reduced~row:FBFE>FH-Fbv6$FH-%*HorrocksNG
6'-FfvFVFepFZF\p%$strG>FH-Fbv6$FH-F\z6&F^zFepFZF\pC)>8/&&-Fbw6%FEFXF\pF]xF]x@$F
^oC$-Fbo6#%6SuslinLemma~neccesaryG-Fbo6$Q4the~monic~componentFB&FE6#Fgz>81-F`r6
$f*6#F8FBFerFB-F_s6&FFT$T&%&falseGFBFB6&F)FepF+FZFE>&Fg[lFe[lF\r>F[rF\r?(FfsFSF
SFTFgs@$0&Fg[lF[tF\rC$>F[rFfs>FfsFT@%FauC0?(FfsFSFSFTFgs@$30FfsFgz0FfsF[rC$>80F
fs>FfsFT>FhuFI@$F^oC$-Fbo6&Q'monic:FBFd[lQ0invertible~lc:~FBFjt-Fbo6%Q1Suslin~L
emma~forFBFd[lFjt>847#-%,SuslinLemmaG6&Fd[lFjtFX-F[s6$&Fg[lF[uFX>&Fhu6$FgzFe]l&
Fb^lFay>&Fhu6$F[rFe]l&Fb^lF]x@$F^o-Fbo6$Q'SUSLINFBFb^l>FHF`x>85-F`r6$f*FcrFBFer
FBFfxFBFBFBFhx>FhuFI>&Fhu6$Fe]lFe]l-Ffv6#*$-Ffv6#-%#LCG6$&Fh_l6#Fe]lFXFfn>FHF`x
>Fh_l-F`r6$f*FcrFBFerFBFfxFBFBFBFhx@%F^o>FH-Fbv6$FH-F\z6'-Ffv6#Fh_lFepFZF\pF_z>
FH-Fbv6$FH-F\z6&FealFepFZF\pC$-Fbo6#QEThe~row~f~seems~to~be~NOT~unimodularFBO-F
J6#7#-FQ6$F\rFTC&@$F^o-Fbo6#Qgp3.~test~if~one~of~the~leading~coefficients~of~th
e~elements~is~invertible~in~the~localisationFB>Fg[l-F`r6$f*F[\lFBFerFB-F_s6&-Ff
`lF\sFasFbsFcsFBFBFdsFE?(FfsFSFSFTFgs@$0-Ffv6#Fh\lF\r@%Fau@$2-F[s6$FgtFX-F[s6$F
jtFX>F[rFfs>F[rFfs@%FauC)@$F^o-Fbo6$FjtQZhas~a~leading~coefficient~invertible~i
n~the~localisation:FB>FHFI>Fdu-Ffv6#*$-Ffv6#-Ff`lF]dlFfn>Fh_l-F`r6$f*FcrFBFerFB
FfxFBFBFB&-Fjx6$-Fbv6$-F_yFVFHF`yFay@$F^oC$-Fbo6$QAft~is~monic~in~the~last~vari
ableFB-%(collectG6$-Ffv6#&Fh_lF[uFX-Fbo6$Q#LCFB-Ffv6#-Ff`l6$FbflFX>FEFh_l@%F^oC
$Fey>FHFiy>FHFazC$-%&ERRORG6$%ZFail~to~find~a~monic~component~of~f~in~the~last~
variable!GFXOFablOFevFBFBFBFB
M7R0
I6QuillenSuslin/IsMonicf*6%%"FG%$VarG%$strG6'%"fG%$varG%"iG%"jG%"MG6#%enCopyrig
ht~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C'@%-%%typeG6$9$%%listG>8
$F6>F97#F6@%-F46$9%F7>8%F?>FA7#F?>8(7"?(8&"""FI-%%nopsG6#FA%%trueG?(8'FIFI-FK6#
F9FM@$/-%$absG6#-%)simplifyG6#-%1QuillenSuslin/LCG6$&F96#FO&FA6#FHFI@%0FEFF>FE6
$FE7%7$FgnFinFOFH>FEF_o@%F\o@%2""#9#O6$FMFEOFMO%&falseGF0F0F0F0
M7R0
I1QuillenSuslin/LMf*6$%"fG%"vG6"6#%enCopyright~(C)~2004~by~Anna~Fabianska.~All~
rights~reserved.GF'C$@$/9$""!OF.-%'RETURNG6#)9%-%'degreeG6$F-F4F'F'F'F'
M7R0
I6QuillenSuslin/ReduceFf*6&%"bG'%"MG%%listG'%$varGF(%&paramG6&%"rG%"cG%"pG%"iG6
#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C%@%2""$9#>8&9
'>F:%%trueG@%/-%)whattypeG6#9$F(C$>8%7#-%"$G6#;"""-%%nopsGFB?(8'FLFLFMF=@%0*$-%
&denomG6#&FC6#FP""#FL@%/-%8QuillenSuslin/ReduceModG6&FT9%9&F:""!-%&ERRORG6$FTQU
~This~term~cannot~be~reduced~modulo~M:~Division~by~0F3>&FFFX*&-Fgn6&-%)simplify
G6#-%&numerGFVFinFjnF:FL-Fgn6&-Ffo6#FTFinFjnF:!"">Fao-Fgn6&FWFinFjnF:@%0*$-FUFB
FYFL@%/-Fgn6&FepFinFjnF:F[o-F]o6$FepF_o>FF*&-Fgn6&-FioFBFinFjnF:FLFhpF^p>FF-Fgn
6&FCFinFjnF:OFFF3F3F3F3
M7R0
I4QuillenSuslin/RowQQf*6#'%"fG%%listG6)%$minG%"jG%"nG%"iG%#M1G%#M2G%"PG6#%enCop
yright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G6"C,>8&-%%nopsG6#9$>8$%
)infinityG?(8%"""F?F5%%trueG@$30&F96#F>""!2-%$absG6#FDF;C$>F;FH>8'F>@$/F;F<-%&E
RRORG6#%6It~is~a~row~of~zeros!G>8(-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$
G6$F?F5>8)FW>&FV6$FNFN*$&F96#FN!""?(F>F?F?F5F@>&F\o6$FNF>,$FDFco>&F\oF_oF?@%/FN
F?O-%)simplifyG6#-%".G6$FVF\oC$>8*-%@QuillenSuslin/PermutationMatrixG6%F?FNF5O-
F_p6#-Fbp6%FVF\oFfpF2F2F2F2
M7R0
I9QuillenSuslin/testdeglocf*6&'%"fG%%listG'%%varsGF''%"PGF'%&paramG6,%"nG%"dG%"
iG%"jG%"UG%%lastG%"MG%#IBG%"HG%"rG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~Al
l~rights~reserved.G6"C'>8$-%%nopsG6#9$>8)&9%6#!"">8--%=Involutive/InvolutiveOpt
ionsG6$Q)rationalF:9'?(8&"""FQF=%%trueGC$>8%-%&numerG6#&FA6#FP@&3/-%'degreeG6$F
YFC""!0-%;Involutive/InvolutiveBasisG6$7$-%#opG6#9&,&FQFQ*&%$_T_GFQFUFQFG7$-Fbo
6#FEFgo7#FQC)>8(-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$FQF=>&F^p6$FPFP
*$FYFG>8*F_p?(8'FQFQF=FRC$>&F^q6$FPF`q,$&FA6#F`qFG>&F^qF[qFQ>8,-%)simplifyG6#-%
".G6$F^pF^q@&/FN%&falseG@$/FUFQ>FUF[o/-Fin6#FUF[o>FUF[oO6$F[rFU/FPF=C$-%&printG
6#Q7no~invertible~elementsF:O6$7"F[o-F^o6$FMFIF:F:F:F:
M7R0
I@QuillenSuslin/NormalizationStepf*6''%"FG%%listG'%$varGF''%%NVARGF'%$parG%$opt
G6:%%nvarG%)IMOutputG%"iG%"jG%"nG%#npG%&alphaG%#SUG%$ISUG%$FMIG%#suG%$isuG%"fG%
#nsG%#FsG%"mG%"uG%"qG%"aG%#qsG%&paramG%$dnsG%%dFslG%"MG6#%enCopyright~(C)~2005~
by~Anna~Fabianska.~All~rights~reserved.G6"C&@%0&9"6#!""Q%lastFI>8$9&>FS7$&FTFO-
%#opG6#&FT6#;"""!"#@$0-%%nopsG6#9%-F]o6#FS-%&ERRORG6#%`pThe~number~of~the~new~v
ariables~and~the~number~of~the~old~variables~are~not~the~same!G@%29#""%>88%%tru
eG>F[p9'@'/F[pF\pC$-%)userinfoG6%""$%,QSAlgorithmG%6normalization~over~QQG-%BQu
illenSuslin/NormalizationStepQQG6%9$F_oFS3/-%)whattypeG6#F[p%(integerG-%(isprim
eGF`qC%-Fcp6&FepFfp%Tnormalization~over~a~finite~field~of~characteristicGF[p-%&
printG6$FgqF[p-%BQuillenSuslin/NormalizationStepFFG6&F[qF_oFSF[pC1-Fcp6%FepFfp%
6normalization~over~ZZG>8(-F]o6#F[q>8+7#-%"$G6$FhnF\o>8,Fhr?(8&FhnFhnF\oF\pC$>&
Fgr6#F_s/&F_oFcs&FSFcs>&F]sFcs/FfsFes>8%7#-%6QuillenSuslin/IsMonicG6%F[qF_oQ$st
rFI@%/&F[t6#FhnF\pC(>8'&&F[t6#""#Fjt>F_s&Fit6#Fep>8)&F[q6#Fgt>8*-%@QuillenSusli
n/PermutationMatrixG6%FgtFcrFcr@$0F_sFhnC&>&FgrFdt/&F_oFdtFfs>Fbs/Fes&FSFdt>&F]
sFdt/FfsF^v>Fhs/FavFesO6%FduFgrF]sC6>8--%:QuillenSuslin/FindMonicInGF]r@%/F[w7"
-Fiq6#Q7should~never~happen???FIC'>F`u&F[wFdt>85&F[wFjt>8.&F[wF^u>8/&F[w6#Fio@$
3/F[p%&falseG-%'memberG6$Fhn-%$mapG6$f*6#%"rGFI6$%)operatorG%&arrowGFI-%$absGFe
rFIFIFI<#-FY6#FhwC$>Fdu-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-Fjr6$FhnFcr@$4
F[p?(F_sFhnFhnFcrF\p@$/-Fby6#&FhwFcsFhnC&?(FgtFhnFhnFcrF\p>&Fdu6$FgtF_s&FhwFbu>
8;-Ffu6%F_sFcrFcr>F_sFcrO6%-%)simplifyG6#-%".G6$FduF`[lF[xF^x-Fiq6$Q"FFIF[q?(F_
sFhnFhnFcrF\p@&/&F[qFcs""!C(>80F[q>&Ff\lFcs&F[q6#Fcr>Ff\l&Ff\lFfn>F`[lFa[l>F[w-
F]w6&Ff\lF_oFSF[p>F_sFcr/F_sFcrC$-Fiq6#Q4Changed~on~10.06.08FI?(FgtFhnFhnFcrF\p
C'-FiqFbu>Ff\l-Fix6$f*6#F1FIF^yFI@$0F[qT#&T&FerFIFI6&F2FgtF&F[q7#-Fjr6#;FhnFdr-
Fiq6$.Ff\lFf\l>F[wF_]l@&0F[wF`wC%>F`[l-&Fjy6#%*SubMatrixG6%-&Fjy6#%/IdentityMat
rixGFj\l7#-Fjr6#;FhnFcr7$-FY6#-Fix6$f*F^^lFIF^yFI@$F`^lF[qFIFI6$F2FgtFe^lFgt-Fi
q6$Q"MFIF`[l>FgtFcr/FgtFcrC$-%(WARNINGG6#%DNo~monic~element~found~in~the~idealG
OF`w-Fiq6$Q"fFIFf\l-Fiq6$Q$FMIFIF[w>F`uFfw>FhwFiw>F[xF\x>F^xF_x-Fiq6(Q2f,~np,~q
,~su,~isuFIFf\lF`uFhwF[xF^x>82-%%subsG6$F[xF[q>F_bl-Fix6$f*6#F2FIF^yFI-Fg[lFerF
IFIFIF_bl>87-Fabl6$F[xFhw>81-Fabl6$F[xF`u>89-%'degreeG6$F^clFav>8:-Fdcl6$&F_blF
OFav@%2FgclFbcl>83Fc\l>F^dl,(FgclFhnFbclFPFhnFhn>FgrF[x>F]sF^x-Fiq6$Q"mFIF^dl>8
4-Fix6$f*6#%"bGFIF^yFI*&F[qFhn)&Fa^lFdtT%FhnFIFI6&F/FSF>F^dlFjbl-Fiq6$Q"uFIFgdl
>Fdu-Fiy6#7#-Fjr6$FhnFdr@%/FdrF[u>&Fdu6$FhnF[uFgdl?(F_sFhnFhn,&FdrFhnFPFhnF\p>&
Fdu6$F_sFdr&FgdlFcs-Fiq6#Fdu>Fdu-Fg[l6#-Fj[l6$F`[l-Fabl6$F]sFduOFhvFIFIFIFI
M7R0
I?QuillenSuslin/IsParkNormalizedf*6$%"aG'%$varG%%listG6,%+normalizedG%"lG%"pG%#
coG%#deG%"cG%#dpG%"dG%"iG%"jG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rig
hts~reserved.G6"C$@%/-%)simplifyG6#9$""!>8$%%trueGC)>F@%&falseG>8+-%'degreeG6$F
=&9%6#""">8(7">8'FP>8&F:?(F6FMFMF60FTF>C'>8*-FH6$FTFJ>8)-%&coeffG6%FTFJFY>FR7$-
%#opG6#FR-F;6#Fgn>FO7$-F^o6#FOFY>FT-F;6#,&FTFM*&FgnFM)FJFYFM!""?(8,FMFM-%%nopsG
F_oFA?(8-FMFM-F`p6#FKFA@%0-FH6$&FR6#F^p&FK6#Fbp-%;QuillenSuslin/LowestDegreeGFh
pC%-%)userinfoG6'""$%1IsParkNormalizedG%0the~coefficientGFip%:is~not~a~Laurent~
monomialG>F^pF_p>FbpFcp@$3/FbpFcp/F^pF_p>F@FAOF@F6F6F6F6
M7R0
IFQuillenSuslin/ParkMatrixNormalizationf*6%%"MG'%$varG%%listG'%%varnGF(6-%#MMG%
+normalizedG%(degreesG%$ROWG%$COLG%"aG%"lG%"iG%"jG%"sG%#isG6#%enCopyright~(C)~2
006~by~Anna~Fabianska.~All~rights~reserved.G6"C.@$0-%%nopsG6#9%-F>6#9&-%&ERRORG
6#%cpThe~list~of~new~variables~and~the~list~of~the~old~variables~should~have~th
e~same~length!G>8%%&falseG>8'-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8(-&FO6#%0
ColumnDimensionGFR>8*""!>8-7#-%"$G6$"""F=>8.Fin?(8,F]oF]oF=%%trueGC$>&Fhn6#Fao/
&F@Ffo&FCFfo>&F_oFfo/FioFho>8&-%$mapG6$f*6#F1F96$%)operatorG%&arrowGF9@$0FSFfn-
%'degreeG6$FST$F9F96$F'F@-F`p6$f*FcpF9FdpF9-%#opGFRF9F9F9<#-Fbq6#-%(convertG6$F
S%)listlistG@$/F^p<#FfnC$-%&printG6#Q2a~constant~matrixF9O6&FSFhnF_oFen?(F9F]oF
]oF94FIC(>&Fhn6#F]o/&F@Fir&FCFir>&F_oFir/F\sF[s?(Fao""#F]oF=FboC$>Feo/Fho*&FioF
]o)F\s)Fen,&FaoF]o!""F]oF]o>F[p/Fio*&FhoF]o)F[s,$FgsFisF]o>8$-%)simplifyG6#-%%s
ubsG6$FhnFS?(8+F]oF]oFLFbo?(FaoF]oF]oFUFboC$>8)&F`t6$FhtFao@%4-%?QuillenSuslin/
IsParkNormalizedG6$F\uFCC$>FhtFL>FaoFU@$3/FhtFL/FaoFU>FIFbo@$Fer>Fen,&FenF]oF]o
F]oO6&-F`p6$f*FcpF9FdpF9-%(collectG6$FS&F\qFirF9F96$F*FCF`tFhnF_oFenF9F9F9F9
M7R0
I8QuillenSuslin/Horrockspf*6&'%#ffG%%listG'%$MaxGF''%$varGF'%&paramG65%"fG%"LG%
"TG%%lastG%%varcG%$MAXG%"rG%#fmG%"NG%"sG%"iG%"mG%"jG%$lcMG%"FG%$dlcG%$LCMG%#SLG
%#ftG6#%jnCopyright~(C)~2005-2007~by~Anna~Fabianska.~All~rights~reserved.G6"C6>
8$9$>8&-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$"""-%%nopsG6#FF>8'&9&6#!
"">8(&Fen6#;FT!"#@$2""%9#-%&printG6&%TConsider~the~polynomials~as~polynomials~i
n~variableGFY%gnand~with~coefficients~with~the~polynomial~ring~in~variables:GFi
n>8*-%=Involutive/InvolutiveOptionsG6$Q)rationalFC9'@%0Fin7">8)-%;Involutive/In
volutiveBasisG6$9%Fin>Fbp-Fdp6$Ffp7#%$_T_G@$F_oC%-Fco6$Q$MAXFCFbp-%(WARNINGG6#%
_rIt~will~not~be~tested~here~if~the~ideal~is~maximal~in~the~given~ring~of~coeff
icients.~Please~check~it~on~your~own...G-%(WarningG6#%Lwe~set~Max=[0]~for~the~c
omputation~in~QQ[x]G-Fjo6$F\pFho>8-""!>8%-%$mapG6$f*6#%"aGFC6$%)operatorG%&arro
wGFC@%2F]r-%'degreeG6$FGT#F]r-%6QuillenSuslin/ReduceFG6&FGT%T(T*FCFC6*F1FYF3Fbp
F+FenF,F]pFF?(8.FTFTFU%%trueG@$0&F_r6#FgsF]r@%/-%6QuillenSuslin/DenomOfGFWFT@%/
F\rF]r>F\rFgs@$2-F\s6#&FFF\t-F\s6#&FF6#F\r>F\rFgsC$>F\rFgs>FgsFU@$0F\rF]rC(>&FI
6$F\rF\r*$F[uFgn>8,FJ?(FgsFTFTFUFhs>&Fiu6$F\rFgs,$FhtFgn>&FiuFfuFT>FI-%".G6$FIF
iuO-%)simplifyG6#FI@$F_o-Fco6#Qgp2.~test~if~one~of~the~leading~coefficients~of~
the~elements~is~invertible~in~the~localizationFC>81-Far6$f*6#F8FCFfrFC-F`s6&-%1
QuillenSuslin/LCGF]sFbsFcsFdsFCFCFesFF?(FgsFTFTFUFhs@$0-Fgv6#&F^wF\tF]r@%Fbu@$2
-F\s6$FhtFY-F\s6$F[uFY>F\rFgs>F\rFgs@$FbuC(@$F_oC$-Fco6#Q'SECONDFC-Fco6$F[uQZha
s~a~leading~coefficient~invertible~in~the~localization:FC>FIFJ>Feu-Fgv6#*$-Fgv6
#-FfwFcxFgn>86-Far6$f*FdrFCFfrFC-Fgv6#FGFCFCFC&-%(convertG6$-Fcv6$-%'MatrixGFWF
I%)listlistG6#FT@$F_oC$-Fco6$QAft~is~monic~in~the~last~variableFC-%(collectG6$-
Fgv6#&FiyF\uFY-Fco6$Q#LCFC-Fgv6#-Ffw6$Fc[lFY>FFFiy@$F_oC%-Fco6#Q&THIRDFC-Fco6$%
Zthe~row~should~have~an~element~monic~in~the~last~variableGFY-Fco6$Q#ffFCFG@%-%
6QuillenSuslin/IsMonicG6$FFFYC'>FiuFJ>Fiu&-%8QuillenSuslin/ReduceDegG6%FFFY.%%f
lagG6#""#>FI-Fgv6#Fbv>FF-Far6$f*FdrFCFfrFCF]zFCFCFC&-Faz6$-Fcv6$-FfzF^zFIFgzFhz
@%Fc]l@%F_oC$-Fco6$Qgnthe~row~was~reduced,~do~the~computation~for~the~reduced~r
ow:FCFF>FI-Fcv6$FI-%7QuillenSuslin/HorrocksG6'-FgvFWFfpFenF]p%$strG>FI-Fcv6$FI-
F]_l6&F__lFfpFenF]pC)>8/&&-Fi\l6%FFFYF]pFd]lFd]l@$F_oC$-Fco6#%6SuslinLemma~necc
esaryG-Fco6$Q4the~monic~componentFC&FF6#Fh_l>F^w-Far6$f*FbwFCFfrFC-F`s6&FGT$T&F
csFCFC6(F)FfpF+FenF,F]pFF>&F^wFf`lF]r>F\rF]r?(FgsFTFTFUFhs@$0F\xF]rC$>F\rFgs>Fg
sFU@%FbuC0?(FgsFTFTFUFhs@$30FgsFh_l0FgsF\rC$>80Fgs>FgsFU>FiuFJ@$F_oC$-Fco6&Q'mo
nic:FCFe`lQ0invertible~lc:~FCF[u-Fco6%Q1Suslin~Lemma~forFCFe`lF[u>857#-%:Quille
nSuslin/SuslinLemmaG6&Fe`lF[uFY-F\s6$&F^wF\uFY>&Fiu6$Fh_lFbbl&F_clFhz>&Fiu6$F\r
Fbbl&F_clFd]l@$F_o-Fco6$Q'SUSLINFCF_cl>FIFg]l>Fiy-Far6$f*FdrFCFfrFCF]zFCFCFCF]^
l>FiuFJ>&Fiu6$FbblFbbl-Fgv6#*$-Fgv6#-Ffw6$&Fiy6#FbblFYFgn>FIFg]l>Fiy-Far6$f*Fdr
FCFfrFCF]zFCFCFCF]^l@%F_o>FI-Fcv6$FI-F]_l6'-Fgv6#FiyFfpFenF]pF`_l>FI-Fcv6$FI-F]
_l6&F`flFfpFenF]pC$-Fco6#QEThe~row~f~seems~to~be~NOT~unimodularFCO-FK6#7#-FR6$F
]rFUC$-%&ERRORG6$%QNo~component~of~f~is~monic~in~the~last~variable!GFYOF\glOFfv
FCFCFCFC
M7R0
IFQuillenSuslin/ParkMatrixNormalisationf*6%%"MG'%$varG%%listG'%%varnGF(6-%#MMG%
+normalisedG%(degreesG%$ROWG%$COLG%"aG%"lG%"iG%"jG%"sG%#isG6#%enCopyright~(C)~2
006~by~Anna~Fabianska.~All~rights~reserved.G6"C.@$0-%%nopsG6#9%-F>6#9&-%&ERRORG
6#%cpThe~list~of~new~variables~and~the~list~of~the~old~variables~should~have~th
e~same~length!G>8%%&falseG>8'-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8(-&FO6#%0
ColumnDimensionGFR>8*""!>8-7#-%"$G6$"""F=>8.Fin?(8,F]oF]oF=%%trueGC$>&Fhn6#Fao/
&F@Ffo&FCFfo>&F_oFfo/FioFho>8&-%$mapG6$f*6#F1F96$%)operatorG%&arrowGF9@$0FSFfn-
%'degreeG6$FST$F9F96$F'F@-F`p6$f*FcpF9FdpF9-%#opGFRF9F9F9<#-Fbq6#-%(convertG6$F
S%)listlistG@$/F^p<#FfnC$-%&printG6#Q2a~constant~matrixF9O6&FSFhnF_oFen?(F9F]oF
]oF94FIC(>&Fhn6#F]o/&F@Fir&FCFir>&F_oFir/F\sF[s?(Fao""#F]oF=FboC$>Feo/Fho*&FioF
]o)F\s)Fen,&FaoF]o!""F]oF]o>F[p/Fio*&FhoF]o)F[s,$FgsFisF]o>8$-%)simplifyG6#-%%s
ubsG6$FhnFS?(8+F]oF]oFLFbo?(FaoF]oF]oFUFboC$>8)&F`t6$FhtFao@%4-%?QuillenSuslin/
IsParkNormalisedG6$F\uFCC$>FhtFL>FaoFU@$3/FhtFL/FaoFU>FIFbo@$Fer>Fen,&FenF]oF]o
F]oO6&-F`p6$f*FcpF9FdpF9-%(collectG6$FS&F\qFirF9F96$F*FCF`tFhnF_oFenF9F9F9F9
M7R0
I4QuillenSuslin/RowZZf*6#'%"fG%%listG6#%"iG6#%enCopyright~(C)~2006~by~Anna~Fabi
anska.~All~rights~reserved.G6"C'@$0-%6QuillenSuslin/DenomOfG6#9$"""-%&ERRORG6#%
<It~is~not~a~row~of~integersG-%=Involutive/InvolutiveOptionsG6$Q)rationalF,%&fa
lseG@$0-%;Involutive/InvolutiveBasisG6$F37#%$_T_G7#F4-F66#%TThis~row~is~not~uni
modular~in~the~ring~of~integers!G-F:6$F<%%trueG-%4QuillenSuslin/easyfG6%F37"F=F
,F,F,F,
M7R0
I:QuillenSuslin/QSAlgorithmf*6&'%"FG<$%'MatrixG%%listG'%$varGF)%"pG%*lastparamG
6"6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.GF.@%/-%)whatt
ypeG6#9$F)-%'RETURNG6#-%4QuillenSuslin/RowQSG6#9"-F86#-%7QuillenSuslin/MatrixQS
GF<F.F.F.F.
M7R0
I8QuillenSuslin/HEURISTICf*6&'%"fG%%listG'%$varGF'%&paramG%*lastparamG6,%"gG%"h
G%"EG%"FG%"GG%"HG%"MG%"nG%"iG%*infolevelG6#%enCopyright~(C)~2006~by~Anna~Fabian
ska.~All~rights~reserved.G6"C(>8+-%%nopsG6#9$@%2""#9#>8$-%;QuillenSuslin/RightI
nverseG6%F@9%9&>FF-FH6$F@FJ@$2""$FD>&8-6#%*HEURISTICGFQ>8&-%7QuillenSuslin/test
EASYG6&F@FFFJFK@$/FX%&falseGC&@%FB>8%-FH6%FFFJFK>F\o-FH6$FFFJ@$FP>FSFQ>8(-FZ6&F
FF\oFJFK@%/FeoFhn>FXFeoC'>8)-&%.LinearAlgebraG6#%*TransposeG6#-&F`p6#%.MatrixIn
verseG6#Feo>8'-%)simplifyG6#-%".G6$-%'MatrixGF?F]p>8*-&F`p6#%/DiagonalMatrixG6#
7#-%"$G6$"""F<?(8,FCF^rF<%%trueG>&Fdq6$F^rF`r,$&FjpFdr!"">FX-F\q6#-F_q6$F]pFdqO
FXF9F9F9F9
M7R0
I7QuillenSuslin/Horrocksf*6&'%#ffG%%listG'%$MaxGF''%$varGF'%&paramG65%"fG%"LG%"
TG%%lastG%%varcG%$MAXG%"rG%#fmG%"NG%"sG%"iG%"mG%"jG%$lcMG%"FG%$dlcG%$LCMG%#SLG%
#ftG6#%jnCopyright~(C)~2005-2007~by~Anna~Fabianska.~All~rights~reserved.G6"C6-%
)userinfoG6&""$%,QSAlgorithmG%0~Maximal~ideal:G9%@%/-%)whattypeG6#9'%(integerG@
%-%(isprimeGFPC$>8$-%$mapG6$f*6#F8FC6$%)operatorG%&arrowGFC-%$modG6$9$T$FCFC6$F
,FQF^o>8*-%=Involutive/InvolutiveOptionsG6$Q%charFCFQ-%&ERRORG6#QjnExpecting~a~
prime~number~as~a~characteristic~of~a~finite~field!FCC$>FXF^o>Fbo-Fdo6$Q)ration
alFCFQ>8&-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$"""-%%nopsG6#FX>8'&9&6
#!"">8(&Fdq6#;F]q!"#@$2""%9#-%&printG6&%TConsider~the~polynomials~as~polynomial
s~in~variableGFbq%gnand~with~coefficients~with~the~polynomial~ring~in~variables
:GFhq@%0Fhq7">8)-%;Involutive/InvolutiveBasisG6$FKFhq>Fjr-F\s6$FK7#%$_T_G@$F^rC
%-Fbr6$Q$MAXFCFjr-%(WARNINGG6#%_rIt~will~not~be~tested~here~if~the~ideal~is~max
imal~in~the~given~ring~of~coefficients.~Please~check~it~on~your~own...G-Fis6#%L
we~set~Max=[0]~for~the~computation~in~QQ[x]G@%FM-Fdo6$FfoFbo-Fdo6$F`pFbo>8-""!>
8%-FZ6$f*6#%"aGFCFhnFC@%2Fft-%'degreeG6$F^oT#Fft-%6QuillenSuslin/ReduceFG6&F^oT
%T(T*FCFC6*F1FbqF3FjrF+FdqF,FQFX?(8.F]qF]qF^q%%trueG@$0&Fht6#F\vFft@%/-%6Quille
nSuslin/DenomOfGF`qF]q@%/FetFft>FetF\v@$2-Fau6#&FXFav-Fau6#&FX6#Fet>FetF\vC$>Fe
tF\v>F\vF^q@$0FetFftC(@%FM>&Fbp6$FetFet-F\o6$*$F`wFfqFQ>F[xF_x>8,Fcp?(F\vF]qF]q
F^qF]v>&Fbx6$FetF\v,$F]wFfq>&FbxF\xF]q>Fbp-%".G6$FbpFbxO-%)simplifyG6#Fbp@$F^r-
Fbr6#Qgp2.~test~if~one~of~the~leading~coefficients~of~the~elements~is~invertibl
e~in~the~localizationFC>81-FZ6$f*FgnFCFhnFC-Feu6&-%1QuillenSuslin/LCGFbuFguFhuF
iuFCFCFjuFX?(F\vF]qF]qF^qF]v@$0-F`y6#&FgyFavFft@%Fgw@$2-Fau6$F]wFbq-Fau6$F`wFbq
>FetF\v>FetF\v@$FgwC(@$F^rC$-Fbr6#Q'SECONDFC-Fbr6$F`wQZhas~a~leading~coefficien
t~invertible~in~the~localization:FC>FbpFcp@%FM>F[x-F\o6$*$-F`y6#-F^zF[[lFfqFQ>F
[x-F`y6#F]\l>86-FZ6$f*F\uFCFhnFC-F`y6#F^oFCFCFC&-%(convertG6$-F\y6$-%'MatrixGF`
qFbp%)listlistG6#F]q@$F^rC$-Fbr6$QAft~is~monic~in~the~last~variableFC-%(collect
G6$-F`y6#&Fe\lFawFbq-Fbr6$Q#LCFC-F`y6#-F^z6$F_^lFbq>FXFe\l@$F^rC%-Fbr6#Q&THIRDF
C-Fbr6$%Zthe~row~should~have~an~element~monic~in~the~last~variableGFbq-Fbr6$Q#f
fFCF^o@%-%6QuillenSuslin/IsMonicG6$FXFbqC'>FbxFcp>Fbx&-%8QuillenSuslin/ReduceDe
gG6%FXFbq.%%flagG6#""#>Fbp-F`y6#F[y>FX-FZ6$f*F\uFCFhnFCFi\lFCFCFC&-F]]l6$-F\y6$
-Fb]lFj\lFbpFc]lFd]l@%F_`l@%F^rC$-Fbr6$Qgnthe~row~was~reduced,~do~the~computati
on~for~the~reduced~row:FCFX>Fbp-F\y6$Fbp-F"6'-F`yF`qFKFdqFQ%$strG>Fbp-F\y6$Fbp-
F"6&FjalFKFdqFQC)>8/&&-Fe_l6%FXFbqFQF``lF``l@$F^rC$-Fbr6#%6SuslinLemma~neccesar
yG-Fbr6$Q4the~monic~componentFC&FX6#Fcbl>Fgy-FZ6$f*FgnFCFhnFC-Feu6&F^oF_oT&FhuF
CFC6(F)FKF+FdqF,FQFX>&FgyFaclFft>FetFft?(F\vF]qF]qF^qF]v@$0FdzFftC$>FetF\v>F\vF
^q@%FgwC0?(F\vF]qF]qF^qF]v@$30F\vFcbl0F\vFetC$>80F\v>F\vF^q>FbxFcp@$F^rC$-Fbr6&
Q'monic:FCF`clQ0invertible~lc:~FCF`w-Fbr6%Q1Suslin~Lemma~forFCF`clF`w>857#-%:Qu
illenSuslin/SuslinLemmaG6&F`clF`wFbq-Fau6$&FgyFawFbq>&Fbx6$FcblF\el&FielFd]l>&F
bx6$FetF\el&FielF``l@$F^r-Fbr6$Q'SUSLINFCFiel>FbpFc`l>Fe\l-FZ6$f*F\uFCFhnFCFi\l
FCFCFCFi`l>FbxFcp@%FM>&Fbx6$F\elF\el-F\o6$*$-F`y6#-F^z6$&Fe\l6#F\elFbqFfqFQ>Feg
l-F`y6#Figl>FbpFc`l>Fe\l-FZ6$f*F\uFCFhnFCFi\lFCFCFCFi`l@%F^r>Fbp-F\y6$Fbp-F"6'-
F`y6#Fe\lFKFdqFQF[bl>Fbp-F\y6$Fbp-F"6&F^ilFKFdqFQC$-Fbr6#QEThe~row~f~seems~to~b
e~NOT~unimodularFCO-Fdp6#7#-F[q6$FftF^qC$-Fho6$%QNo~component~of~f~is~monic~in~
the~last~variable!GFbqOFjilOF_yFCFCFCFC
M7R0
I5QuillenSuslin/iseasyf*6%'%"fG%%listG'%$VARGF'%&paramG61%$parG%"rG%$varG%"nG%#
IBG%"SG%#SiG%"gG%"jG%"iG%#SIG%"eG%$IBeG%&alphaG%%answG6#%enCopyright~(C)~2005~b
y~Anna~Fabianska.~All~rights~reserved.G6"C/>82%&falseG@%2""#9#>8$9&>FG%%trueG>8
%-%=Involutive/InvolutiveOptionsG6$Q)rationalF=FG@%/9%7">8&7#%$_T_G>FVFS>8(-%?I
nvolutive/InvolutiveBasisFastG6$-%2Involutive/AddRhsG6#9$FV@%0-%$lhsG6#&Fen6#""
"FdoC$@$FC-FN6$FPFL-%&ERRORG6#%:the~row~is~not~unimodularGC&>8+-%$rhsGFao>8'-%%
nopsG6#F_p?(8-FdoFdoFcpFJ@$/&F_p6#Fhp""!C%-%&printG6#Q<One~component~0,~try~eas
ysrF=>F@FJ>FhpFcp@%/FGFJ?(FhpFdoFdoFcpFJ@$/-%'degreeG6$F[qFVF]qC%-F`q6#QEOne~in
vertible~component~,~try~easygF=>F@FJ>FhpFcp?(FhpFdoFdoFcpFJ@$/-%$absG6#F[qFdoC
%F^r>F@FJ>FhpFcp@$/F@FJC$FgoO6$F@F_p-%(WARNINGG6#%KIt~can~take~long:~compute~Sy
zygy~Module~S:G>8)-%8Involutive/SyzygyModuleG6$F\oFV-F`q6#Ffs?(FhpFdoFdoFcpFJC,
>8*-%$mapG6$f*6#%"aGF=6$%)operatorG%&arrowGF=&F\o6#T#F=F=6$F5FhpFfs-F`q6%Q&i,~S
iF=FhpF_t>8.-%;Involutive/InvolutiveBasisG6$-Fjn6#F_tFV-F`q6$Q#SIF=Fau-F`qFhr>8
/-%8Involutive/PolInvReduceG6%7#F[qFauFV-F`q6$Q"eF=F\v-F`q6$F\vQVsoll~was~inver
tierbares~sein!~ueberpruefen~mit~~IB...F=>80-Fcu6$7#F\vFV@$5/Fhv7#Fdo/Fhv7#F]qC
'-F`q6#Q(TRUE!!!F=>81-Fap6#F\v-F`q6%Q)alpha,~SF=FgwFfsFgoOFJFgoOF@F=F=F=F=
M7R0
I:QuillenSuslin/Laurent2Polf*6%'%#LLG%%listG'%$varGF''%'newvarGF'6:%"LG%"vG%"iG
%%varnG%#suG%$isuG%"pG%#apG%#DeG%#vsG%#vdG%"EG%"mG%"dG%"wG%%susuG%&isusuG%$vchG
%%ivchG%"FG%$vstG%"PG%"jG%#djG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~ri
ghts~reserved.G6"C5>8'-%$mapG6$f*6#F/FG6$%)operatorG%&arrowGFG-%$catG6%%"_G9$FV
FGFGFG9%>89-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$"""-%%nopsG6#FW@%/&F
W6#F_o""!C$?(8&""#F_oF`o%%trueG@$0&FW6#FjoFgoC'>&FZ6$F_oF_oFgo>&FZ6$FjoFjoFgo>&
FZ6$F_oFjoF_o>&FZ6$FjoF_oF_o>FjoF`o>8$&-%(convertG6$-%)simplifyG6#-%".G6$-%'Mat
rixGFboFZ%)listlistGFfo>F`qFW>F`qFaq>6%&8%Ffo8(8)-%CQuillenSuslin/LaurentNormal
izationG6%&F`qFfoFXFJ>Fcr-%%subsG6$FdrF`q>8*-%;QuillenSuslin/LowestDegreeG6$Fbr
&FJFfo>8+-%&coeffG6%FbrFcsF_s>8,-Ffn6#7%*&Fes!"")Fcs,$F_sF_tF_o*&FesF_o)FcsF_sF
_o-F]o6$F_o,&-Fao6#FcrF_o!"#F_o>8--Ffq6#-Fiq6$-F\r6#7#FcrFjs>8.F[u>8/-Ffn6#7#-F
]o6$F_o-Fao6#F`q?(FjoF[pF_oFgtF\pC%>82-Ffq6#&FduFjp>81-Fas6$FavFcs?(FGF_oF_oFG1
FfvFgoC(>80Fgu>&F]wFjp,$*&-Fgs6%FavFcsFfvF_o)FcsFfvF_oF_t>Fdu-Ffq6#-Fiq6$FduF]w
>FavFbv>FfvFgv>Ffu-Ffq6#-Fiq6$FfuF]w>Fdu-FL6$f*6#%"aGFGFPFG-%(collectG6$FW&T#Ff
oFGFG6$F0FJ-Ffq6#-Fiq6$F[uFfu>6%878384-%8QuillenSuslin/ParkStep3G6%FduFJ9&>85-F
\s6$FdyFdr>86-F\s6$FerFey>Fcy&-Fcq6$FcyF]rFfoO6&Fcy-Ffq6#-F\s6$Fer-Ffq6#-Fiq6%F
ZFjsFfuF[zF_zFGFGFGFG
M7R0
IBQuillenSuslin/RedRightInverseFastf*6%'%"fG%%listG'%$VARGF'%"pG6)%"gG%"rG%$var
G%#grG%#IBG%"SG%#ISG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reser
ved.G6"C(@$2""#9#>8%-%=Involutive/InvolutiveOptionsG6$Q)rationalF59&@%/9%7">8&7
#%$_T_G>FGFD>8(-%?Involutive/InvolutiveBasisFastG6$-%2Involutive/AddRhsG6#9$FG@
%0-%$lhsG6#&FL6#"""FenC$@$F8-F>6$F@F<-%&ERRORG6#%:the~row~is~not~unimodularGC'>
8$-%$rhsGFX-%(WARNINGG6#%Ncompute~the~SyzygyModule,~it~may~take~long...G>8)-%8I
nvolutive/SyzygyModuleG6$FSFG>8*-FN6$FhoFG>8'-%8Involutive/PolInvReduceG6%F`oF]
pFG@$F8FhnOFapF5F5F5F5
M7R0
I:QuillenSuslin/FindEasyRowf*6%'%"MG%'MatrixG'%$varG%%listG%&paramG6(%"mG%"nG%"
iG%"jG%"PG%"pG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G6
"C(>8%-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8$-&F;6#%0ColumnDimensionGF>>8)7#
-%"$G6$""!F8?(8&"""FOF8%%trueG?(8'FOFOFAFP@(/-%$absG6#&F?6$FNFRFOC%>&FG6#FN""$>
FRFA>FNF839&/-%'degreeGFWFL>Ffn-%$maxG6$Ffn""#/FXFL>Ffn-Fbo6$FfnFO>8(-Fbo6#-%#o
pG6#FG?(FNFOFOF8FP@$/FfnFjoC$OFN>FNF8F5F5F5F5
M7R0
I>QuillenSuslin/WeakLeftCoprimef*6$'%"PG%'MatrixG'%$varG%%listG6(%"qG%"rG%"DG%"
NG%"RG%"LG6#%]oCopyright~(C)~2006~by~Alban~Quadrat~and~A.~F.~All~rights~reserve
d.G6"C)>8$-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8%-&F:6#%0ColumnDimensionGF=>
8&-&F:6#%/DiagonalMatrixG6#7#-%"$G6$-%(DenomOfGF=F7>8'-%)simplifyG6#-%".G6$FFF>
>8(-F'6#-%$<|gr>G6$FF,$FS!""@%2""#9#>8)-%)LinBose1G6%Fen9%%$optG>Fbo-Fdo6$FenFf
o-%'RETURNG6#7$-&F:6#%*SubMatrixG6%-%(convertG6$&Fbo6#F_oF';"""F7Fip,$-F`p6%Fdp
Fip;,&F7FjpFjpFjp,&F7FjpF@FjpF\oF4F4F4F4
M7R0
IIQuillenSuslin/Transformation2ReducedFormf*6%%"eG'%"LG%%listG'%"vGF(6%%#IBG%#N
FG%&IBInLG6#%enCopyright~(C)~2007~by~Anna~Fabianska.~All~rights~reserved.G6"C&>
8$-%;Involutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#9%%$varG>8%-%8Involuti
ve/PolInvReduceG6&9$F4F<Q"CF1>8&-%'MatrixG6#-%$mapG6$f*6#%"iGF16$%)operatorG%&a
rrowGF1-%$rhsG6#&T#6#FBF1F16$F,F47#-%"$G6#;"""-%%nopsG6#F4O6$-%)simplifyG6#-%".
G6$-FG6#&F>6#""#FE-FGF:F1F1F1F1
M7R0
IBQuillenSuslin/BasisOfKernelModulef*6%'%"RG%'MatrixG'%$varG%%listG%&paramG6$%#
R2G%"BG6#%enCopyright~(C)~2007~by~Anna~Fabianska.~All~rights~reserved.G6"C'@$/9
&%&falseG-%(WARNINGG6#%HNot~implemented~yet,~computation~over~QG@$-%;QuillenSus
lin/IsZeroMatrixG6#9$C$-F86#%ioThe~module~is~defined~as~a~kernel~of~a~zero~matr
ix,~thus~isomorphic~to~D^|fr1xq|hrGO-&%.LinearAlgebraG6#%/IdentityMatrixG6#-&FG
6#%-RowDimensionGF>>8$-F'6#-%8Involutive/SyzygyModuleG6$F?9%>8%-%AQuillenSuslin
/BasisOfImageModuleG6%FPFVF5OFXF1F1F1F1
M7R0
I;QuillenSuslin/IsZeroMatrixf*6#'%"MG%'MatrixG6"6#%enCopyright~(C)~2007~by~Anna
~Fabianska.~All~rights~reserved.GF(@%/-%#opG6#<#-F.6#-%$mapG6$f*6#%"rGF(6$%)ope
ratorG%&arrowGF(-F.6#9$F(F(F(-%(convertG6$F>%)listlistG""!O%%trueGO%&falseGF(F(
F(F(
M7R0
I4QuillenSuslinA/initf*6"F$6#%jnCopyright~(C)~2003-2007~by~Anna~Fabianska.~All~
rights~reserved.GF$-%3QuillenSuslin/initG6#9"F$F$F$F$
M7R0
ICQuillenSuslin/FindIrreducibleNotInf*6&'%"pG%&primeG'%"SG%$setG%"vG%$strG6,%*N
FaktorenG%"iG%"jG%"kG%"lG%&irredG%*FaktorenpG%$FakG%"dG%"PG6#%enCopyright~(C)~2
005~by~Anna~Fabianska.~All~rights~reserved.G6"C*>8*f*6#%"xGF:6$%)operatorG%&arr
owGF:-%$mapG6$f*6#F/F:FAF:&9$6#"""F:F:F:&-%$modG6$-%(FactorsG6#FJT$6#""#F:F:6$F
&FJ>8$-FE6$f*F?F:FAF:-%#opG6#-T#FSF:F:6$F4F=9%@$2""$9#-%&printG6$Q*NFaktorenF:F
Y>8&""!>8-9&?(F:FLFLF:3-%#inG6$-FO6$FjoFJFY2FgoFJC$>Fjo,&FjoFL!""FL>Fgo,&FgoFLF
LFL@$/FgoFJC'>8)%&falseG?(8%FLFL-%%nopsG6#FY%%trueG?(8'FLFLFbqFeqC$>8+-F=6#-FO6
$,&*&&FY6#FaqFL&FY6#FgqFLFLFgpFLFJ?(8(FLFL-Fcq6#FjqFeq@$4-%&evalbG6#-F_p6$&Fjq6
#FfrFYC'>FjoF`s>FfrFgr>FgqFbq>FaqFbq>F^qFeq@$3F_o4F^q-Fco6#QZtwo:~find~irreduci
ble~polynomials~over~FFp~with~degree...F:>8,FL?(F:FLFLF:FjsC%>Fjq-F=6#,&)F[p)FJ
F_tFLF[pFgp?(FfrFLFLFgrFeq@$FjrC'>FjoF`s>FfrFgr>FgqFbq>FaqFbq>F^qFeq>F_t,&F_tFL
FLFLOFjoF:F:F:F:
M7R0
I7QuillenSuslin/IsUnimodf*6%'%"MG<$%'MatrixG%%listG'%$VARGF)%&paramG6&%"fG%"rG%
#IBG%$varG6#%enCopyright~(C)~2003~by~Anna~Fabianska.~All~rights~reserved.G6"C)@
%/-%)whattypeG6#9$F(>8$-%8QuillenSuslin/MaxMinorsGF:>F=F;@$/-%%nopsG6#F="""C&@$
529#""$/9&%%trueG@%/-%'degreeG6#&F=6#FF""!OFOO%&falseG@$/FNFZ@%/-%$absGFTFFOFOO
FZ@%3/-F96#FN%(integerG-%(isprimeGFao@%/-%$modG6$FUFNFFOFOOFZ-%&ERRORG6#QjnExpe
cting~a~prime~number~as~a~characteristic~of~a~finite~field!F4OQ#??F4@$2""#FK@%F
_o@%Fco>8%-%=Involutive/InvolutiveOptionsG6$Q%charF4FNF\p>Fhp-Fjp6$Q)rationalF4
FN@%/9%7">8'7#%$_T_G>FfqFcq>8&-%;Involutive/InvolutiveBasisG6$F=Ffq@$Fcp@%F_o-F
jp6$F\qFhp-Fjp6$F`qFhp@%/F[r7#FFOFOOFZF4F4F4F4
M7R0
I8QuillenSuslin/MaxMinorsf*6#'%"MG%'MatrixG6%%"cG%"rG%"sG6#%enCopyright~(C)~200
3~by~Anna~Fabianska.~All~rights~reserved.G6"C%>8$-&%.LinearAlgebraG6#%0ColumnDi
mensionG6#9$>8%-&F46#%-RowDimensionGF7@%2F1F:-%$mapG6$f*6#F+F.6$%)operatorG%&ar
rowGF.-%5QuillenSuslin/SubDetG6%T$F87#-%"$G6#;"""T%F.F.6&F&F8F)F1-&%)combinatG6
#%'chooseG6$7#-FO6#;FRF:F1-FB6$f*FEF.FFF.-FJ6%FLFMF8F.F.6&F&F8F*F:-FV6$7#-FO6#;
FRF1F:F.F.F.F.
M7R0
I@QuillenSuslin/PermutationMatrixf*6%%"iG%"kG%"nG6#%"PG6#%enCopyright~(C)~2005~
by~Anna~Fabianska.~All~rights~reserved.G6"C(>8$-&%.LinearAlgebraG6#%/DiagonalMa
trixG6#7#-%"$G6$"""9&>&F/6$9$F?""!>&F/6$9%FDF@>&F/6$F?FDF:>&F/6$FDF?F:OF/F,F,F,
F,
M7R0
I8QuillenSuslin/ReduceModf*6&%"TG'%"MG%%listG'%$varGF(%&paramG6(%"tG%"rG%$VARG%
#IBG%"aG%"cG6#%jnCopyright~(C)~2005-2007~by~Anna~Fabianska.~All~rights~reserved
.G6"C'@%-%%typeG6$9$F(>8$F;>F=7#F;@%32""$9#/-%)whattypeG6#9'%(integerG@%5-%(isp
rimeGFH/FI""!>8%-%=Involutive/InvolutiveOptionsG6$Q%charF5FI-%&ERRORG6#QjnExpec
ting~a~prime~number~as~a~characteristic~of~a~finite~field!F5>FR-FT6$Q)rationalF
5FI@%2"""-%%nopsG6#9&C%>8&7$&F_o6#;F[o!"#7#&F_o6#!"">8'-%;Involutive/Involutive
BasisG6%9%Fbo7$""%Fcp>8)-%$mapG6$f*6#F1F56$%)operatorG%&arrowGF5-%8Involutive/P
olInvReduceG6&F;T#T%FbpF5F56&F0F]pF/Fbo-%)simplifyG6#F=C$>F]p-F_p6$FapF_o>Fep-F
gp6$f*FjpF5F[qF5-F_q6%F;FaqT&F5F56&F0F]pF*F_oFdq@%FA-FT6$FVFR-FT6$FhnFR@%F8OFep
O&Fep6#F[oF5F5F5F5
M7R0
I:QuillenSuslin/VarChangeZZf*6%%"PG'%$varG%%listG'%%nvarGF(60%)IMOutputG%"cG%"i
G%'varneuG%"jG%#pjG%"mG%#suG%$isuG%$VARG%(PermvarG%"kG%"MG%%bestG6#%enCopyright
~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C(>8+7#-%"$G6$"""-%%nopsG6#
9%>8,F@?(8&FDFDFE%%trueGC$>&F?6#FL/&FHFQ&9&FQ>&FJFQ/FTFS>8$-%6QuillenSuslin/IsM
onicG6%9$FH%$strG@%/&FZ6#FDFMC'>FL&&FZ6#""#6#""$>FP/FS&FUF]o>&F?F]o/&FHF]oFT>&F
JF]o/FhoFS>FW/FTF\pC&>80%)infinityG@%2Feo9#C$-%(WARNINGG6#%]oAll~permutations~o
f~variables~will~be~tested,~which~may~take~long!G>8.-%9QuillenSuslin/PermOfList
GFG>F_q7#FH?(8/FDFD-FF6#F_qFMC(>8-&F_q6#Feq?(FLFDFDFEFMC$>FP/&FjqFQFT>FW/FTFar>
8%7#-FB6$""!,&-FF6#FjqFDFDFD>&FerF]oFhn?(FLFDFDF[sFM>&Fer6#,&FLFDFDFD-%1Quillen
Suslin/LCG6$&FerFQ&Fjq6#,$FL!""@%0-%$absG6#&Fer6#F[tFD@%3/FeqFfq/FdpFep-%&ERROR
G6#%Hno~change~of~variables~over~ZZ~possibleG-F[qFitC%?(FLFcoFD,&-FF6#FerFDF[tF
DFMC&>8(,&F_uFDFLF[t>8)-%)simplifyG6#-%%subsG6$F?&Fer6#Fcu>8*Fir?(F<FDFDF<0-F_t
6#-Fhu6#-Fes6$FfuFhoFDC'>F`v,&F`vFDFDFD>FP/Far,&)FhoF`vFDFTFD>FW/FT,&FarFD)&Fjq
F]oF`vF[t>FfuFgu>Ffu-%(collectGFhv@$Fgp-%&printG6(Q$VARF<FjqQ"mF<F`vQ#suF<F?@$3
Fgp2F`vFdpC$>FdpF`v>817&FdpFjqF?FJ@$3Fgp2FdpFepC%-F[x6$Q%bestF<Ffx>F?&FfxFdo>FJ
&Ffx6#""%O6$F?FJF<F<F<F<
M7R0
IIQuillenSuslin/RepresentBasisInGeneratorsf*6$'%"LG%%listG'%"vGF'6$%#IBG%&IBInL
G6#%enCopyright~(C)~2007~by~Anna~Fabianska.~All~rights~reserved.G6"C&>8$-%;Invo
lutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#9$%$varG-%&printG6#F2>8%-%'Matr
ixG6#-%$mapG6$f*6#%"iGF/6$%)operatorG%&arrowGF/-%$rhsG6#&T#F8F/F/6$F+F27#-%"$G6
#;"""-%%nopsGF=OF?F/F/F/F/
M7R0
I4QuillenSuslin/easygf*6&'%"fG%%listG'%$varGF'%&paramG%$strG6%%$parG%"gG%*infol
evelG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G6"C&@%2""#
9#>8$9&>F9%%trueG>8%-%;QuillenSuslin/RightInverseG6%9$9%F9@$2F7""%>&8&6#%&easyg
G""$O-%8QuillenSuslin/testeasygG6&FBF>FCF9F2F2F2F2
M7R0
I4QuillenSuslin/IsInSf*6%%"fG'%"SG%%listG%&paramG6&%"iG%"jG%"qG%"nG6#%enCopyrig
ht~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G6"C*@$0-%&denomG6#9$"""O3-F
"6%-%&numerGF79%9&-F"6%F5F@FA@$/F8""!O%&falseG>8'-%%nopsG6#F@@$/F@7#F9@'FA@%/-%
'degreeGF7FFO%%trueGOFH/-%$absGF7F9OFWOFH@$FSC$-%)userinfoG6%""$%&IsInSG%/Test~
constantsG@)FAOFWFYOFW0-F66#-%)simplifyGF7F9OFHC%?(8$F9F9FJFW@$/&F@6#F[pF9C$>F[
pFJOFH?(F[pF9F9FJFW@$/-%$modG6$F8F^pFFC$>F[pFJOFWOFH-F[o6%F]oF^o%/Test~quotient
sG?(F[pF9F9FJFWC&>8&-Fgo6#*&F8F9F^p!""-F[o6%F]oF^oFcq@$/FcqF9OFW@$3/-FU6#-F66#F
cqFF-F"6%FcqF@FAC$>F[pFJOFWOFHF1F1F1F1
M7R0
I;QuillenSuslin/LowestDegreef*6$%#LLG%"vG6*%"LG%"dG%#deG%#coG%"pG%"cG%#ddG%#dpG
6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G6"C+>8$-%(colle
ctG6$9$9%>8%-%'degreeG6$F5F:@$/F<%%FAILGC$-%&printG6#%?It~is~not~a~Laurent~poly
nomialGOFB@$/F5""!O,$-F>6#F5!"">8&7">8'FS>8(F5?(F2"""FYF20FWFKC'>8+-F>6$FWF:>8)
-%&coeffG6%FWF:Fgn>FU7$-%#opG6#FU-%)simplifyG6#F[o>FR7$-Fbo6#FRFgn>FW-Feo6#,&FW
FY*&F[oFY)F:FgnFYFPO&FR6#FPF2F2F2F2
M7R0
IBQuillenSuslin/NormalisationStepQQf*6&'%"FG%%listG'%$varGF''%%NVARGF'%$optG6-%
%nvarG%"iG%"jG%"sG%"kG%"nG%"dG%"NG%#SUG%$ISUG%"mG6#%enCopyright~(C)~2005~by~Ann
a~Fabianska.~All~rights~reserved.G6"C/@%0&9"6#!""Q%lastF;>8$9&>FE7$&FFFA-%#opG6
#&FF6#;"""!"#@$0-%%nopsG6#9%-FU6#FE-%&ERRORG6#%`pThe~number~of~the~new~variable
s~and~the~number~of~the~old~variables~are~not~the~same!G>8)-FU6#9$>8,7#-%"$G6$F
PFT>8-F_o?(8%FPFPFT%%trueGC$>&F^o6#Ffo/&FWF[p&FEF[p>&FdoF[p/F^pF]p>8+-&%.Linear
AlgebraG6#%/DiagonalMatrixG6#7#-Fao6$FPFin>8'""!>8(F_q>8*%)infinityG?(FfoFPFPFT
Fgo?(8&FPFPFinFgo@$/-%'degreeG6#-%)simplifyG6#-%1QuillenSuslin/LCG6$&F\o6#FgqF]
pF_q@$2-F[r6#FcrFcqC%>FcqFgr>F^qFgq>FaqFfo@%2F_qF^qC'>&Fcp6$F^qF^q*$-Far6$&F\o6
#F^q&FW6#FaqFB>&F^o6#FP/&FWF\t&FEFis>&F^oFis/Fhs&FEF\t>&FdoF\t/FctFhs>&FdoFis/F
_tF^tC&?(FfoFPFPFinFgo@$2-F[r6#&F\oF[pFcqC$>FcqF^u>F^qFfo>8.,&FcqFPFPFP?(Ffo""#
FPFTFgoC$>Fjo/F]p,&F^pFP)Fct)Feu,&FTFPFfoFBFP>F`p/F^p,&F]pFP)F^tF^vFB>Fas*$-Far
6$-%%subsG6$F^oFfsFctFBO6%FcpF^oFdoF;F;F;F;
M7R0
I8QuillenSuslin/ReduceDegf*6$'%"fG%%listG'%"vG%'symbolG6.%#lcG%#ldG%"kG%"iG%"jG
%#drG%#dkG%"TG%"PG%"RG%(reducedG%#fnG6#%enCopyright~(C)~2005~by~Anna~Fabianska.
~All~rights~reserved.G6"C)>8+-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$""
"-%%nopsG6#9$>8$-%$mapG6$f*6#%"aGF:6$%)operatorG%&arrowGF:-%)simplifyG6#-%1Quil
lenSuslin/LCG6$FLT$F:F:6$F)9%FL>8%-FP6$f*FSF:FUF:-%'degreeGFgnF:F:FinFL>8.%&fal
seG>8&""!?(8'FHFHFI%%trueG@$/-%$absG6#-FY6#&FN6#FioFH@&/FfoFgo>FfoFio2-Fao6$&FL
FcpFjn-Fao6$&FL6#FfoFjn>FfoFio@%FepC%-%&printG6#%BThis~row~has~no~monic~compone
nts!G@$2""#9#-%'assignG6$&9"6#""$FcoO6$FLF=C'>8*F[q?(FioFHFHFIFjoC$>8,Fgo@$0Fio
FfoC&>8--FY6#Fjp>8)-Fao6$F^sFjn?(F:FHFHF:2,&FerFH!""FHFbsC&>FcoFjo>Fir-FY6#,&Fi
rFH*(-%&coeffG6%F^sFjnFbsFH)Fjn,&FbsFHFerFhsFH&FNF^qFHFH>F^s-FY6#,&FjpFH*&FirFH
F]qFHFhs>FbsFcs>&F=6$FfoFio,$-FY6#FirFhs@$/FcoFjoC$>8/&-%(convertG6$-FY6#-%".G6
$-%'MatrixGFKF=%)listlistG6#FH>F=-F^v6$F=&-F"6$FfuFjn6#Fhq@$FgqFjqO6$FguF=F:F:F
:F:
M7R0
I9QuillenSuslin/testSeasygf*6('%"fG%%listG'%"gGF''%$varGF'%"SG%$parG%$strG6,%"n
G%"iG%"jG%"kG%#M1G%#M2G%"PG%"sG%"rG%&paramG6#%enCopyright~(C)~2006~by~Anna~Fabi
anska.~All~rights~reserved.G6"C-@%2""%9#>8-9(>FC%%trueG>8$-%%nopsG6#9$@%/FC%&fa
lseG-%)userinfoG6%""$%'SeasygG%(over~ZZG-FQ6%FSFT%(over~QQG>8+-%)simplifyG6#-%(
convertG6$-%$zipG6%f*6$%"aG%"bGF<6$%)operatorG%&arrowGF<*&FL"""9%FfoF<F<F<FLFgo
%"+G>8(-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$FfoFH>8)F[p-FQ6%FSFT%1te
st~1~componentG?(8%FfoFfoFHFF@$-%4QuillenSuslin/IsInSG6%&Fgo6#F[q9'FCC'-FQ6&FS%
+SHeuristicGF`q%+invertibleG?(8'FfoFfoFHFFC$>&Fjo6$FiqF[q*&&Fgo6#FiqFfoFZ!"">&F
fp6$F[qFiq,$&FLF`rFar>&Ffp6$F[qF[qFfo@%0F[qFfoC$>8*-%@QuillenSuslin/Permutation
MatrixG6%FfoF[qFHO-Ffn6#-%".G6%FjoFfpF^sO-Ffn6#-Ffs6$FjoFfp>F[qFH-FQ6%FSFT%2tes
t~2~componentsG?(F[qFfoFfoFHFF?(8&,&F[qFfoFfoFfoFfoFHFFC(>FjoF[p>FfpF[p-FQ6%FSF
T%)invertInG>8,-%;QuillenSuslin/InvertibleInG6&7$F`q&Fgo6#FctFbq9&FC@$3/F[q,&FH
FfoFarFfo/F\u7"C$-FQ6%FSFT%,NOT~SO~EASYGOFO@$0F\uFiuC->FjoF[p?(FiqFfoFfoFHFF>F\
rF^r>&Fjo6$F[qFct,$*(&&F\u6#""#F\wFfoFZFfo&F\u6#FfoFarFar>&Fjo6$FctFct*(&F[wF_w
FfoFZFfoF^wFar>FfpF[p?(FiqFfoFfoFHFF>FcrFer>FhrFfo>&FfpFgv-Ffn6#,$*(,&*&&FLFaqF
foFjvFfoFar*&&FLFbuFfoFdwFfoFfoFfoFZFfoF^wFarFar@%F[sC$>F^sF_sOFcsOFis>F[qFH>Fc
tFHOFisF<F<F<F<
M7R0
I7QuillenSuslin/LinBose2f*6$'%"RG%'MatrixG'%$varG%%listG6)%$extG%$MinG%"UG%"BG%
"pG%"qG%#RpG6#%]oCopyright~(C)~2006~by~Alban~Quadrat~and~A.~F.~All~rights~reser
ved.G6"@%-&%'linalgG6#%'iszeroG6#-%(convertG6$-%8Involutive/SyzygyModuleG6$9$9%
%&arrayGC%>8$-%?Involutive/PolTorsionfreeParamG6$-&%.LinearAlgebraG6#%*Transpos
eG6#FCFD>8%-%AInvolutive/PolShortestResolutionG6$&FH6#"""FD@'2FY-%%nopsG6#FSC$-
%(WARNINGG6#%NThe~conditions~for~LinBose2~are~not~fulfilledG-%'RETURNG6#7"/-%;I
nvolutive/PolRightInverseG6$&FSFXFD%%FAILGC$FjnF^oC(>8)-&FN6#%-RowDimensionG6#F
fo>8(-&FN6#%0ColumnDimensionGF`p>8&-%:QuillenSuslin/QSAlgorithmG6%FfoFD%%trueG>
8'-&FN6#%*SubMatrixG6%Fhp;FYFbp;,&F[pFYFYFYFbp>8*-F`q6%-%:Involutive/PolLeftInv
erseG6$F^qFD;FY,&-FdpFQFY-F]pFQ!"";FYF`r-F_o6#-F'6#7$7#FC7#FhqC$-F[o6#%@The~mat
rix~is~not~full~row~rankGF^oF5F5F5F5
M7R0
I4QuillenSuslin/easy2f*6%'%"fG%%listG'%$varGF'%&paramG6-%"gG%"nG%"kG%"iG%"aG%#M
1G%#M2G%"rG%#grG%#ggG%"GG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~
reserved.G6"C4@%2""#9#C&>8--%;QuillenSuslin/RightInverseG6%9$9%9&-%&printG6#FA>
8,-%>QuillenSuslin/RedRightInverseGFD-FI6$Q*red,~gr:=F9FL>FA-FC6$FEFF>8%-%%nops
G6#FE-FI6#Q'weiterF9@$F<>8+-%=Involutive/InvolutiveOptionsG6$Q)rationalF9FG>8.7
$FAFL-FI6$Q"GF9F_o>8$FL-FI6#Feo>8&"""?(F9FjoFjoF930-%;Involutive/InvolutiveBasi
sG6$7#&Feo6#FioFF7#Fjo2FioFV>Fio,&FioFjoFjoFjo@$/FioFV@$F]pC$@$F<-F[o6$F]oFin-%
'RETURNG6#Q`qit~is~not~so~easy~-~none~of~the~components~of~the~inverse~of~the~|
+row~is~invertible~in~the~given~ringF9>8)-%'MatrixG6#-%$<|gr>G6%-&%.LinearAlgeb
raG6#%*TransposeG6#-Ffq6#7$-&F]r6#%/DiagonalMatrixG6#7#-%"$G6$Fjo,&FioFjo!""Fjo
-&F]r6#%/ConstantMatrixG6%""!F]s,(FVFjoFioF^sFjoFjo-%$<,>G6#-%#opGFgo-F\r6#-Ffq
6#7$-F`s6%Fds,&FVFjoFioF^sFio-Fer6#7#-F[s6$FjoFbt>8(7#-F[s6$FdsFV?(8'FjoFjoFV%%
trueG>&Fit6#F^u,$&FEFbuF^s>&FitFcpFds>8*,&-F\r6#-Ffq6#7%-F`s6%FdsFVF]s-Fgs6#-Fj
s6#Fit-F`s6%FdsFVFbtFjo-Fer6#7#-F[s6$FjoFVFjo@$F<F]qO-%)simplifyG6#-%".G6$FdqFh
uF9F9F9F9
M7R0
I:QuillenSuslin/FindMonicInf*6&'%"fG%%listG'%$varGF''%%nvarGF'%&paramG6;%)IMOut
putG%"jG%"iG%"nG%"qG%#SUG%$ISUG%"rG%&IMIBfG%$IBfG%$parG%"pG%$moqG%&BLOCKG%%IBfb
G%"BG%$IBBG%#BBG%%degrG%%lastG%&firstG%"dG%#moG%"QG%$FMIG6#%enCopyright~(C)~200
5~by~Anna~Fabianska.~All~rights~reserved.G6"C/>8)7#-%"$G6$"""-%%nopsG6#9%>8*FM?
(8&FQFQFR%%trueGC$>&FL6#FY/&FUFhn&9&Fhn>&FWFhn/F[oFjn>8$-%6QuillenSuslin/IsMoni
cG6%9$FUQ"pFI@$/&Fao6#FQFZC)>8%&&Fao6#""#F`p>FY&F_p6#""$>8'&Feo6#F]p>8(7#-FO6$"
"!-FS6#Feo>&F[qFipFQ@$0FYFQC&>&FLFjo/&FUFjoF[o>Fgn/Fjn&F\oFjo>&FWFjo/&%%varnGFj
oFjn>F^o/F]rFjnO6&FgpF[qFLFW@%29#""%>8.FZ>F\s9'>8+-%=Involutive/InvolutiveOptio
nsG6$Q)rationalFIF\s>8--%;Involutive/InvolutiveBasisG6$-%2Involutive/AddRhsGFaq
FU>8,7#-Fco6%-%$mapG6$f*6#%"aGFI6$%)operatorG%&arrowGFI-%$lhsGFaqFIFIFIFfsFUQ$s
trFI@%/&F]tFjoFZC*>F]p&&F]tF`pF`p>FY&FcuFdp>Fgp-F[u6#&FfsFip>F[q-%$rhsGFhu@$/F`
qFQ>F[q7#F[q@$FeqC&>FhqFiq>FgnF\r>F_rFdr>F^o/F[oFjq@$2FepFir-Fbs6$FdsF`sOFfrC%>
8;F\q@$/F\sFZ-%(WARNINGG6#%FNo~VarChange~over~QQ~implemented~yet!G@%/FRFQC$>8<-
%<QuillenSuslin/FindMonic1VarG6%FeoFjqF\s@%0Fjw7"C&>Fgp&FjwFjo>F[q&FjwF`p>8/Fgp
>80F[qC$@$FivFjvOF`xC1>87&FU6#!"">817$7#F_y&FU6#;FQ!"#>85-Fhs6%FjsFdy7$FjrFjr>8
2-Fbt6$f*FetFIFgtFIFjtFIFIFIF\z>83-Fbt6$f*FetFIFgtFI-%1QuillenSuslin/LCG6$FeoT#
FIFI6$FAF_yFaz>86-Fbt6$f*FetFIFgtFI-%'degreeGF\[lFIFIF^[lFaz>89-%$maxG6#-%#opG6
#F`[l>8:-Fbt6$f*6#F0FIFgtFI)F][l,&T%FQ&T'FaqFbyFIFI6(FAF_yFCFg[lF@F`[l7#-FO6#;F
Q-FSF]\l>Fjw-F"6&FfzFgy&F\oFhyF\s@%F_xC$>FgpFcx>F[qFexC$@$FivFjvOF`x>Fix-%$zipG
6%f*6$%"xG%"yGFIFgtFI*&FeoFQFUFQFIFIFIF_\lF[q>Fgx-%(convertG6$-F\^l6%f*F_^lFIFg
tFIFb^lFIFIFIFazFix%"+G>Fgx-%)simplifyG6#Fgx>6$FLFW-%:QuillenSuslin/VarChangeZZ
G6%FgxFUF\o>F_w-Fe^l6$-F\^l6%f*F_^lFIFgtFI-Fbt6$f*FetFIFgtFI*&T$FQFeoFQFIFI6$F`
^lFeo-F\vFTFIFIFIFixF\zFj^l@$FivFjv-%&printG6#FjwO6&FgxF_wFLFWFIFIFIFI
M7R0
I1QuillenSuslin/LCf*6$%#ffG%"vG6#%"fG6#%enCopyright~(C)~2004~by~Anna~Fabianska.
~All~rights~reserved.G6"C$>8$-%)simplifyG6#9$@%2""!-%'degreeG6$F.9%-%'RETURNG6#
-%&coeffG6%F.F9F6-F;6#F.F+F+F+F+
M7R0
I?QuillenSuslin/WLCFactorizationf*6$'%"PG%'MatrixG'%$varG%%listG6(%"qG%"rG%"DG%
"NG%"RG%"LG6#%]oCopyright~(C)~2006~by~Alban~Quadrat~and~A.~F.~All~rights~reserv
ed.G6"C*>8$-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8%-&F:6#%0ColumnDimensionGF=
>8&-&F:6#%/DiagonalMatrixG6#7#-%"$G6$-%6QuillenSuslin/DenomOfGF=F7>8'-%)simplif
yG6#-%".G6$FFF>>8(-F'6#-%$<|gr>G6$FF,$FS!""@%2""#9#>8)-%7QuillenSuslin/LinBose1
G6%Fen9%%$optG>Fbo-Fdo6$FenFfo@$/Fbo7"C$-%(WARNINGG6#%Xthe~transfer~matrix~does
~not~admit~a~WLC~factorization.G-%'RETURNG6#F]p-Fdp6#7$-&F:6#%*SubMatrixG6%-%(c
onvertG6$&Fbo6#F_oF';"""F7Fcq,$-Fjp6%F^qFcq;,&F7FdqFdqFdq,&F7FdqF@FdqF\oF4F4F4F
4
M7R0
I.QuillenSuslin=6"%&falseGE\[lP%&PatchGf*F$F$6#%enCopyright~(C)~2004~by~Anna~Fa
bianska.~All~rights~reserved.GF$C$30%:QuillenSuslin/initializedG.%%trueG0-%3Qui
llenSuslin/initGF$""!-%4QuillenSuslin/PatchG6#9"F$F$F$%,OneLocalSolGf*F$F$6#%en
Copyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.GF$C$F,-%:QuillenSusl
in/OneLocalSolGF7F$F$F$%,Laurent2PolGf*F$F$F;F$C$F,-%:QuillenSuslin/Laurent2Pol
GF7F$F$F$%2NormalizationStepGf*F$F$6#%enCopyright~(C)~2005~by~Anna~Fabianska.~A
ll~rights~reserved.GF$C$F,-%@QuillenSuslin/NormalizationStepGF7F$F$F$%6BasisOfC
okernelModuleGf*F$F$F;F$C$F,-%DQuillenSuslin/BasisOfCokernelModuleGF7F$F$F$%1Se
tLastVariableAGf*F$F$FGF$C$F,-%?QuillenSuslin/SetLastVariableAGF7F$F$F$%(DenomO
fGf*F$F$6#%enCopyright~(C)~2008~by~Anna~Fabianska.~All~rights~reserved.GF$C$F,-
%6QuillenSuslin/DenomOfGF7F$F$F$%1IsParkNormalizedGf*F$F$F;F$C$F,-%?QuillenSusl
in/IsParkNormalizedGF7F$F$F$%)DenomOfAGf*F$F$FGF$C$F,-%7QuillenSuslin/DenomOfAG
F7F$F$F$%9InjectiveParametrizationGf*F$F$F;F$C$F,-%GQuillenSuslin/InjectivePara
metrizationGF7F$F$F$%3BasisOfImageModuleGf*F$F$6#%enCopyright~(C)~2007~by~Anna~
Fabianska.~All~rights~reserved.GF$C$F,-%AQuillenSuslin/BasisOfImageModuleGF7F$F
$F$%,SuslinLemmaGf*F$F$FGF$C$F,-%:QuillenSuslin/SuslinLemmaGF7F$F$F$%5LaurentNo
rmalizationGf*F$F$F;F$C$F,-%CQuillenSuslin/LaurentNormalizationGF7F$F$F$%,QSAlg
orithmGf*F$F$F;F$C$F,-%:QuillenSuslin/QSAlgorithmGF7F$F$F$%*MaximalZZGf*F$F$FGF
$C$F,-%8QuillenSuslin/MaximalZZGF7F$F$F$%1WLCFactorizationGf*F$F$6#%]oCopyright
~(C)~2006~by~Alban~Quadrat~and~A.~F.~All~rights~reserved.GF$C$F,-%?QuillenSusli
n/WLCFactorizationGF7F$F$F$%*CofactorsGf*F$F$FGF$C$F,-%8QuillenSuslin/Cofactors
GF7F$F$F$%*MaximalFFGf*F$F$FGF$C$F,-%8QuillenSuslin/MaximalFFGF7F$F$F$%8ParkMat
rixNormalizationGf*F$F$F;F$C$F,-%FQuillenSuslin/ParkMatrixNormalizationGF7F$F$F
$%)LinBose2Gf*F$F$FcqF$C$F,-%7QuillenSuslin/LinBose2GF7F$F$F$%#LCGf*F$F$F)F$C$F
,-%1QuillenSuslin/LCGF7F$F$F$%+SHeuristicGf*F$F$F;F$C$F,-%9QuillenSuslin/SHeuri
sticGF7F$F$F$%(IsMonicGf*F$F$FGF$C$F,-%6QuillenSuslin/IsMonicGF7F$F$F$%2ReduceB
asisDegreeGf*F$F$F;F$C$F,-%@QuillenSuslin/ReduceBasisDegreeGF7F$F$F$%#LMGf*F$F$
F)F$C$F,-%1QuillenSuslin/LMGF7F$F$F$%)HorrocksGf*F$F$6#%jnCopyright~(C)~2005-20
07~by~Anna~Fabianska.~All~rights~reserved.GF$C$F,-%7QuillenSuslin/HorrocksGF7F$
F$F$%*OneStepQSGf*F$F$F;F$C$F,-%8QuillenSuslin/OneStepQSGF7F$F$F$%-RightInverse
Gf*F$F$F)F$C$F,-%;QuillenSuslin/RightInverseGF7F$F$F$%)LinBose1Gf*F$F$FcqF$C$F,
-%7QuillenSuslin/LinBose1GF7F$F$F$%*ReduceDegGf*F$F$FGF$C$F,-%8QuillenSuslin/Re
duceDegGF7F$F$F$%4BasisOfKernelModuleGf*F$F$FhoF$C$F,-%BQuillenSuslin/BasisOfKe
rnelModuleGF7F$F$F$%/CompleteMatrixGf*F$F$F;F$C$F,-%=QuillenSuslin/CompleteMatr
ixGF7F$F$F$%*MaximalQQGf*F$F$FGF$C$F,-%8QuillenSuslin/MaximalQQGF7F$F$F$%*MaxMi
norsGf*F$F$6#%enCopyright~(C)~2003~by~Anna~Fabianska.~All~rights~reserved.GF$C$
F,-%8QuillenSuslin/MaxMinorsGF7F$F$F$%-LowestDegreeGf*F$F$F;F$C$F,-%;QuillenSus
lin/LowestDegreeGF7F$F$F$%1RightInverseFastGf*F$F$FGF$C$F,-%?QuillenSuslin/Righ
tInverseFastGF7F$F$F$%*IsRegularGf*F$F$FGF$C$F,-%8QuillenSuslin/IsRegularGF7F$F
$F$%5BasisOfCoimageModuleGf*F$F$FhoF$C$F,-%CQuillenSuslin/BasisOfCoimageModuleG
F7F$F$F$%-InvertibleInGf*F$F$F;F$C$F,-%;QuillenSuslin/InvertibleInGF7F$F$F$%&Is
InSGf*F$F$F;F$C$F,-%4QuillenSuslin/IsInSGF7F$F$F$%1WRCFactorizationGf*F$F$FcqF$
C$F,-%?QuillenSuslin/WRCFactorizationGF7F$F$F$%*OneStepEYGf*F$F$F;F$C$F,-%8Quil
lenSuslin/OneStepEYGF7F$F$F$%0RCFactorizationGf*F$F$FhoF$C$F,-%>QuillenSuslin/R
CFactorizationGF7F$F$F$%)IsUnimodGf*F$F$FawF$C$F,-%7QuillenSuslin/IsUnimodGF7F$
F$F$%.ParkAlgorithmGf*F$F$F;F$C$F,-%<QuillenSuslin/ParkAlgorithmGF7F$F$F$%0LCFa
ctorizationGf*F$F$FhoF$C$F,-%>QuillenSuslin/LCFactorizationGF7F$F$F$%*Heuristic
Gf*F$F$F;F$C$F,-%8QuillenSuslin/HeuristicGF7F$F$F$F$
M7R0
I7QuillenSuslin/MatrixQSf*6%'%"MG%'MatrixG'%$varG%%listG%"pG64%"nG%"mG%"iG%"eG%
#URG%"UG%"RG%"AG%#UAG%#MpG%"PG%#MPG%#QAG%"EG%"TG%&paramG%$PERG%#MMG6#%enCopyrig
ht~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C&@%2""#9#>839&>FH%%trueG
>8$-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8%-&FP6#%0ColumnDimensionGFS@%/FM"""
C$@%2FF""%>80-%4QuillenSuslin/RowQSG6%&-%(convertG6$FT%)listlistG6#Fgn9%FH>F]o-
F_o6&FaoFgoFH&9"6#F[o@%0F]o7"C'>8--%)simplifyG6#-%".G6$FTF]o>8.-&FP6#%/Diagonal
MatrixG6#7$""!-%"$G6$Fgn,&FVFgn!""Fgn?(8&FgnFgnFVFK@$/&Fcp6$FgnFiqFgnC&>&F[q6$F
iqFiqFbq>&F[q6$FiqFgnFgn>&F[qF]rFgn>FiqFV>8)-Fep6#-Fhp6$F]oF[qOFirOF`p@%/FMFfqC
%-%)userinfoG6%""$%,QSAlgorithmG%RFind~the~last~row~by~computing~the~maximal~mi
norsG>F]o-%9QuillenSuslin/AddLastRowG6#F\p@%F_pC$>Fir-&FP6#%.MatrixInverseG6#F]
oOFirOF`pC5@$4-%7QuillenSuslin/IsUnimodG6%FTFgoFHC$-%(WARNINGG6#%jrThe~matrix~i
s~not~unimodular...~To~check~if~the~module~defined~as~the~cokernel~is~free~use:
~QuillenSuslin/BasisOfCokernelModuleGOF`p@%2-FFFAF[o>8'-%:QuillenSuslin/FindEas
yRowG6%FTFgoFI>FguFgn@%0FguFgnC%>84-%@QuillenSuslin/PermutationMatrixG6%FgnFguF
M-Fds6%FfsFgs%EPermutatation~the~rows~of~the~matrixG>85-Fhp6$F`vFT>FhvFT>8*-&FP
6#%*SubMatrixG6%FhvFgn7#-Fdq6#;FgnFV-Fds6&FfsFgs%6Algorithm~for~the~rowGF]w>8(-
F_o6%&-Fco6$F]wFeoFfoFgoFH@$/F[xF`pOF`p>Fcp-Fep6#-Fhp6$FhvF[x>F[qF\q?(FiqFgnFgn
FVFK@$F[rC&>F`rFbq>FcrFgn>FfrFgn>FiqFV>8/-Fep6#-Fhp6$FcpF[q>8+-F_w6%Fby7#-Fdq6#
;FEFM7#-Fdq6#;FEFV>8,-F"6%FhyFgoFH>F]o-F]q6#7$-F'6#7#7#FgnFdz>Fir-Fep6#-Fhp6%F[
xF[qF]o>81-Fep6#-Fhp6$FhvFir>82-F]q6#7#-Fdq6$FgnFV?(FiqFEFgnFMFK>&F[\lFdr,$&Fe[
lFdrFgq@%F]vO-Fep6#-Fhp6%FirF[\l-F]q6#7$F`v-F]q6#7#-Fdq6$Fgn,&FVFgnFMFgqO-Fep6#
-Fhp6$FirF[\lFAFAFAFA
M7R0
I8QuillenSuslin/OneStepQSf*6&'%"FG%%listG'%$varGF'%&paramG%"AG6-%"fG%$VARG%%var
nG%$MAXG%"HG%#UUG%"rG%"NG%#SUG%$ISUG%"QG6#%enCopyright~(C)~2006~by~Anna~Fabians
ka.~All~rights~reserved.G6"C%-%)userinfoG6%""$%*OneStepQSG%fpIf~the~row~is~"eas
y"~this~procedure~is~not~needed.~See~Logar,~Sturmfels~Patching~procedure.G@$/9%
7"C$-%&printG6#QIno~step~possible~-~no~variables~to~set~0F:O-&%.LinearAlgebraG6
#%/DiagonalMatrixG6#-%"$G6$"""-%%nopsG6#8$@%-%6QuillenSuslin/IsMonicG6$9$&FD6#!
""C,>FYFhn>8&&FD6#;FU!"#@%/9&%&falseG@%/F_oFE>8'7#""#>F[p7$F]p-%#opG6#F_o@%Fio>
F[p7#""!>F[p7#F`p>8(-%7QuillenSuslin/HorrocksG6&FYF[pFDFfo>8)7#Fjp>8*7#-%6Quill
enSuslin/DenomOfG6#Fjp-F=6)F?F@%/MAX,~H,~r,~detGF[pFjpFbq-&FN6#%,DeterminantGFf
q?(F:FUFUF:4-%7QuillenSuslin/IsUnimodG6%FbqF_oFfoC'@%Feo>F[p-%8QuillenSuslin/Ma
ximalZZG6$FbqF_o>F[p-%8QuillenSuslin/MaximalQQGFhr>FjpF[q>F_q7$-Fap6#F_q-%$mapG
6$f*6#%"aGF:6$%)operatorG%&arrowGF:-%)simplifyG6#FhnF:F:F:Fjp>Fbq7$-Fap6#FbqFdq
Fgq-F=6&F?F@FbqFbq@%2F?9#O-%5QuillenSuslin/APatchG6'9'FinF`oF_qFfoO-%4QuillenSu
slin/PatchG6&FinF`oF_qFfo-%&ERRORG6#.4%&monicGF:F:F:F:
M7R0
I4QuillenSuslin/Patchf*6&'%"XG%'symbolG'%%varcG%%listG'%"UGF*%&paramG6,%"iG%"VG
%"YG%"ZG%#UIG%'DeltaIG%"rG%"dG%#idG%"nG6#%enCopyright~(C)~2004~by~Anna~Fabiansk
a.~All~rights~reserved.G6"C,-%)userinfoG6%""$%&PatchG%fnyou~should~test~before~
if~we~have~enough~local~information!G>8--%%nopsG6#9&>8+7#-%"$G6$""!FD>8)FK?(8$"
""FTFD%%trueGC%>8(-&%.LinearAlgebraG6#%.MatrixInverseG6#&FH6#FS>&FQFjn-%)simpli
fyG6#-%".G6$Fin-%%subsG6$/9$,&FgoFT8'FTFX>&FJFjn-%6QuillenSuslin/DenomOfG6#F\o@
%/FDFT>8,7#*$&FJ6#FT!"">Fbp-%;QuillenSuslin/RightInverseG6%FJ9%9'>8&Fgo>8%-F^o6
#-Fdo6$/Fio,$*(FgoFTFepFT&FbpFfpFTFgp&FQFfp?(FS""#FTFDFUC$>F_q,&F_qFT*(&FJ6#,&F
SFTFgpFTFT&FbpFbrFTFgoFTFgp>Faq-F^o6#-Fao6$Faq-Fdo6%/FgoF_q/Fio,$*(F[pFT&FbpFjn
FTFgoFTFgpF\oOFaqF;F;F;F;
M7R0
I;QuillenSuslin/RightInversef*6%'%"fG%%listG%$VARG%&paramG6&%#IBG%"gG%"rG%$varG
6#%enCopyright~(C)~2004~by~Anna~Fabianska.~All~rights~reserved.G6"C)@$/-%%nopsG
6#9$"""C&@$529#""$/9&%%trueG@%/-%'degreeG6#&F86#F9""!O7#*$FH!""C$-%)userinfoG6%
F?%,QSAlgorithmG%MThe~row~is~not~unimodular~in~the~given~ring.GO7"@$/FA%&falseG
@%/-%$absGFGF9OFLC$FPOFV@%3/-%)whattypeG6#FA%(integerG-%(isprimeGF`o@%/-%$modG6
$FH%"pGF9O7#-Fgo6$FMFAC$FPOFV-%&ERRORG6#QjnExpecting~a~prime~number~as~a~charac
teristic~of~a~finite~field!F1OQ#??F1@$2""#F>@%F]o@%Fbo>8&-%=Involutive/Involuti
veOptionsG6$Q%charF1FAF`p>F\q-F^q6$Q)rationalF1FA@%/9%FV>8'7#%$_T_G>FiqFgq>8$-%
;Involutive/InvolutiveBasisG6$-%2Involutive/AddRhsGF7Fiq@$Fgp@%F]o-F^q6$F`qF\q-
F^q6$FdqF\q@%0-%$lhsG6#&F^rFIF9C$FPOFV>8%-%$rhsGF^sOFcsF1F1F1F1
M7R0
I9QuillenSuslin/AddLastRowf*6%'%"FG%'MatrixG'%$varG%%listG%&paramG6+%"nG%"mG%(m
inorenG%$VARG%"iG%"rG%#IBG%"gG%"UG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~Al
l~rights~reserved.G6"C'>8%-&%.LinearAlgebraG6#%0ColumnDimensionG6#9$>8$-&F>6#%-
RowDimensionGFA@%/9%7">8'7#%$_T_G>FNFK@%/,&F;"""!""FUFDC(>8&-%8QuillenSuslin/Co
factorsGFA@$2""#9#>8)-%=Involutive/InvolutiveOptionsG6$Q)rationalF89&>8*-%;Invo
lutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#FYFN@$Fgn-F]o6$F_oF[o@%0-%$lhsG
6#&Fbo6#FUFUC%-%(WARNINGG6#%jsThe~matrix~is~not~unimodular~in~the~given~ring.~T
o~check~if~the~module~defined~as~the~cokernel~is~free~use:~QuillenSuslin/BasisO
fCokernelModuleG-%&ERRORG6#%PThe~matrix~is~not~unimodular~in~the~given~ring.GOF
L>8+-%$rhsGF`p>8,-F'6#-%$<,>G6$FB-F'6#F^q-%&printG6#Q4iterative-~MatrixQSF8OFbq
F8F8F8F8
M7R0
IBQuillenSuslin/NormalizationStepFFf*6''%"fG%%listG'%$varGF''%%NVARGF'%"pG%$opt
G6.%%nvarG%"FG%"iG%"jG%"sG%"kG%"nG%"dG%"NG%#SUG%$ISUG%"mG6#%enCopyright~(C)~200
7~by~Anna~Fabianska.~All~rights~reserved.G6"C0@%0&9"6#!""Q%lastF=>8$9&>FG7$&FHF
C-%#opG6#&FH6#;"""!"#@$0-%%nopsG6#9%-FW6#FG-%&ERRORG6#%`pthe~number~of~the~new~
variables~and~the~number~of~the~old~variables~are~not~the~same!G>8%-%$mapG6$f*6
#%"rGF=6$%)operatorG%&arrowGF=-%$modG6$9$T$F=F=6$F,9'Fho>8*-FW6#F[o>8-7#-%"$G6$
FRFV>8.Fbp?(8&FRFRFV%%trueGC$>&Fap6#Fip/&FYF^q&FGF^q>&FgpF^q/FaqF`q>8,-&%.Linea
rAlgebraG6#%/DiagonalMatrixG6#7#-Fdp6$FRF]p>8(""!>8)Fbr>8+%)infinityG?(FipFRFRF
VFjp?(8'FRFRF]pFjp@$/-%'degreeG6#-%)simplifyG6#-%1QuillenSuslin/LCG6$&F[o6#FjrF
`qFbr@$2-F^s6#FfsFfrC%>FfrFjs>FarFjr>FdrFip@%2FbrFarC'>&Ffq6$FarFar-Ffo6$*$-Fds
6$&F[o6#Far&FY6#FdrFDF[p>&Fap6#FR/&FYFau&FGF^u>&FapF^u/F]u&FGFau>&FgpFau/FhuF]u
>&FgpF^u/FduFcuC&?(FipFRFRF]pFjp@$2-F^s6#&F[oF^qFfrC$>FfrFcv>FarFip>8/,&FfrFRFR
FR?(Fip""#FRFVFjpC$>F]q/F`q,&FaqFR)Fhu)Fjv,&FVFRFipFDFR>Fcq/Faq,&F`qFR)FcuFcwFD
>Fdt-Ffo6$*$-Fds6$-%%subsG6$FapF[uFhuFDF[pO6%FfqFapFgpF=F=F=F=
M7R0
I;QuillenSuslin/InvertibleInf*6&'%"LG%%listG'%"SGF''%$varGF'%&paramG6,%"sG%"cG%
#IBG%#IRG%"iG%$PIRG%"nG%#coG%"aG%"rG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~
All~rights~reserved.G6"C'>8%"""?&8$9%%%trueG>F=*&F=F>F@F>>8--%=Involutive/Invol
utiveOptionsG6$Q)rationalF:9'>8'-%;Involutive/InvolutiveBasisG6$7$-%#opG6#9$,&F
>F>*&%$_T_GF>F=F>!""7$-FS6#9&FX@%0FM7#F>C%-%)userinfoG6%""$%-InvertibleInG%K~no
~invertible~elements~in~the~given~idealG-FH6$FJFFO7"C%>8&-FO6$-%2Involutive/Add
RhsGFTFgn>8*-%%nopsG6#Fho?(8(F>F>"#5FBC$>8)-%8Involutive/PolInvReduceG6&)F=FcpF
hoFgnQ"CF:@&/&Fgp6#F>""!C)>F@F[q>FcpFdp@%/-F`pFTF>>8+Faq>Fiq7#-%"$G6$FaqFgq?(Fc
pF>F>F^pFB>Fiq,&FiqF>-%$mapG6$f*6#F6F:6$%)operatorG%&arrowGF:*&FUF>&&T#6#""#6#T
%F>F:F:6&F3FgpF2Fcp-%$rhsG6#&Fho6#FcpF>Fbo@%Ffq>Fiq7#-%)simplifyG6#Fiq>FiqF[tO7
$F@Fiq/FcpFdp-%&printG6#QCthe~upper~bound~for~degree~reachedF:F:F:F:F:
M7R0
I8QuillenSuslin/MaximalFFf*6&'%"LG%%listG'%$varGF''%"pG%*nonnegintG%&paramG64%#
IBG%"FG%$nenG%"aG%$denG%#L1G%$IB1G%#pmG%$fpmG%"MG%"iG%#FiG%)FaktorenG%*NFaktore
nG%%varnG%$PZSG%"PG%$_T_G6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~
reserved.G6"C0-%=Involutive/InvolutiveOptionsG6$Q%charFC9&>8$-%;Involutive/Invo
lutiveBasisG6$9$9%@$2""$9#FC@$/FK7#"""C%-%&printG6#QDthe~ideal~is~already~the~w
hole~ringFC-FF6$FH""!O7">8%-%=Involutive/FactorModuleBasisG6#FP@$FR-Fen6$Q"FFCF
^o@$/F^oFWC$FhnOFK@%-%%typeG6$F^o%"+GC$>8&<"?&8.F^o%%trueGC$>8'-%'indetsG6#-%&d
enomG6#Fdp@$2-%%nopsG6#Fap-Fbq6#Fhp>FapFhp>Fap-Fjp6#-F]q6#F^o@$FR-Fen6$Q$nenFCF
ap@%/FapFbpC$@$FR-Fen6#Q<FactorModuleBasis~is~FINITEFC?(Fdp""#FX-FbqF[rFepC'@$F
R-Fen6$%.PolMinPoly~ofG&F^oF^q>8+-%6Involutive/PolMinPolyG6'F_sFKFP/Q$varFC%'la
mbdaG/Q'degreeFCFir>8,-%$modG6$-%(FactorsG6#FasFI@$FR-Fen6'%+MinPoly~ofGF_s%":G
FasF[t@%-F]t6$-%(IrreducGFatFIC%@$FR-Fen6%Q,MinPoly~of~FCF_sQ9~is~irreducible~o
ver~FFpFC@%/-%'degreeGFatFirC&@$FRC$-Fen6#QNand~of~degeree~=~dim~of~the~FactorM
odule,~so:FC-Fen6#Q7IB~is~an~maximal~idealFC>FdpFirFhnOFK@$FR-Fen6#QZbut~deg(mp
)<>~dim(FactorModule)~so:~take~the~next~elementFC@$/FdpFir-Fen6#%dqall~minimal~
polynomials~are~irreducible,~but~all~of~degree~smaller~then~the~dimension~of~th
e~FactorModuleGC'@$FR-Fen6#QSMinPoly~REDUCIBLE,~take~one~factor~to~the~ideal...
FC>8)7$-%#opG6#FO-%%subsG6$/FgsF_s&&&F[t6#Fhr6#FXF]x>FdpFir@$FR-Fen6$Q#L1FCF`w>
8*-FM6$F`wFPC,@$FR-Fen6#Q;FactormoduleBasis~infiniteFC>827#-Fcw6#-%&minusG6$<#-
FcwFaoFap@$FR-Fen6$QBvarn:=[op(|frop(var)|hr~minus~nen)];~FCF]y@$/F]yF\o>F]y7#8
5-FM6$FOF]y>83<#-Fcw6#-%7Involutive/PolZeroSetsGFC@$FR-Fen6$Q$PZSFCFbz>F`wFO?(F
dpFXFXFaqFepC&>84-%CQuillenSuslin/FindIrreducibleNotInG6%FIFbz&FapF^q@$FR-Fen6%
Q$addFCF`[lQ-to~the~idealFC>F`w7$-Fcw6#F`wF`[l@$FRF`x>FdxFex@$FR-Fen6$Q$IB1FCFd
x>8--F"6%FdxFPFIFhnOFe\lFCFCFCFC
M7R0
I8QuillenSuslin/OneStepEYf*6$'%"VG%%listG'%$varGF'6D%"vG%&monicG%%varcG%#IMG%"u
G%"lG%"YG%"sG%"wG%$RESG%&alphaG%"AG%#vaG%#waG%"iG%"jG%#T1G%#T2G%#T3G%#T4G%#ssG%
#IBG%%rhs1G%"cG%#fgG%$IBiG%%rhsiG%$difG%#cdG%)sigmatauG%%tripG%#UUG%"UG%%TESTG6
#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G6"CC>88f*6'%"pG%
$monG%"bG%"rG%"dGFOFOFOO-%)simplifyG6#*&,&-%%subsG6$/9%,&9&"""*&9'Fao9(FaoFao9$
Fao-F[o6$/F^oF`oFeo!""FaoFcoFioFOFOFO>8%&F^o6#Fao>8&&F^o6#;""#Fio>8$Feo-%&print
G6#QenThe~first~component~should~be~monic~in~the~first~variable!FO>8(-%;Quillen
Suslin/RightInverseG6%FepF^o%%trueG>8),&-%'degreeG6$&FepF]pF[pFaoFaoFao@$2Fcp9#
-Fgp6$%0Number~of~stepsGFaq>8*7#-%"$G6$""!Faq>&F^rF]pFcr?(83FcpFaoFaqF_q>&F^r6#
Fgr,&&F^r6#,&FgrFaoFioFaoFaoFaoFao@$Fhq-Fgp6$Q"YFOF^r>8+Fcr?(Fgr""$Fao-%%nopsG6
#FepF_q>Fds-Ffn6#,&FdsFao*&&FepFjrFao&F[qFjrFaoFao@$Fhq-Fgp6$Q"sFOFds>8,F_r@%/F
gsFfs?(FgrFaoFaoFaqF_q>&FftFjr-Ffn6#,&&Fep6#FcpFao*&FirFao&Fep6#FfsFaoFao?(FgrF
aoFaoFaqF_q>F[u-Ffn6#,&F_uFao*&FirFaoFdsFaoFao@$Fhq-Fgp6$Q"wFOFft>8--%$mapG6$f*
6#%"aGFO6$%)operatorG%&arrowGFO-Ffn6#-%*resultantG6%&T#F]pFeoT%FOFO6&F+FepF,F[p
Fft@$Fhq-Fgp6$Q+ResultantsFOF_v>8.-F]q6%F_vF_pF_q@$Fhq-Fgp6$Q4alpha~-~the~inver
seFOFgw>8/7#-Far6$Fcr,&FaqFaoFaoFao>&F_xF]pF[p?(FgrFaoFaoFaqF_q>&F_x6#,&FgrFaoF
aoFao-Ffn6#,&&F_xFjrFao*(&FgwFjrFao&F_vFjrFaoF[pFaoFio@$Fhq-Fgp6$Q/A~-~the~poin
tsFOF_x?(FgrFaoFaoFcxF_qC$>&80Fjr-Ffn6#-F[o6$/F[pF^yFep>&81Fjr-Ffn6#-F[o6$F_zFf
t>8CF_r?(82FaoFaoFaqF_qCI>84-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-Far6$FaoF
gs@%Fht>&F][l6$FfsFcp-Ffn6#&F^r6#Fjz?(FgrFfsFaoFgsF_q>&F][l6$FgrFcp-Ffn6#*&F]\l
Fao-F[o6$/F[p&F_xF^\lF`tFao@$Fhq-Fgp6#Q(test~T1FO>8E-Ffn6#-%".G6$-%'MatrixG6#&F
jyF^\lF][l@$0-Ffn6#,&&F_]l6$FaoFaoFao&Fh]lF]pFioFcr-%&ERRORG6#%2Problem~1~with~
T1G@$0-Ffn6#,&&F_]l6$FaoFcpFao&&FbzF^\lF^\lFioFcr-Fb^l6#%2Problem~2~with~T1G?(F
grFfsFaoFgsF_q@$0-Ffn6#,&&F_]l6$FaoFgrFao&Fh]lFjrFioFcr-Fb^l6#%2Problem~3~with~
T1G>89-%;Involutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#7$Ffq&FftF^\lF^o>8
:-Fav6$f*FdvFOFfvFO-%$rhsG6#FeoFOFOFOF^`l>8;&-%8Involutive/PolInvReduceG6&&F_vF
^\lF^`lF^oQ"CFOF`u>8<-Ffn6#-%(convertG6$-Ffn6#-Fav6$f*6#F:FOFfvFO-Fav6$f*FdvFOF
fvFO*&&F_w6#T&FaoFeoFaoFOFO6&FBF`wF:Feo&F_wF^alFOFO6&FAFh`lFBF`al7#-Far6#;Fao-F
hs6#F`al%"+G@$FhqC$-Fgp6$Q#fgFOFhal-Fgp6$Q2test~-should~be~0FO-Ffn6#,(*&&FhalF]
pFaoFfqFaoFao*&&FhalF`uFaoFf`lFaoFaoFealFio>85F^[l>8=-F``l6$-Fc`l6#7$F`^lF\_lF^
o>8>-Fav6$f*FdvFOFfvFOF\alFOFOFOFgdl?(FgrFfsFaoFgsF_qC(>&8?Fjr-Ffn6#,&Fi_lFao&&
Fjy6#,&FjzFaoFaoFaoFjrFio>8@&-Fcal6&FeelFgdlF^oFfalF`u>&8AFjr-Ffn6#-F\bl6$-Ffn6
#-Fav6$f*FcblFOFfvFO-Fav6$f*FdvFOFfvFOFgblFOFO6&FGF`wF:FeoF\clFOFO6&FEF^elFGF_f
l7#-Far6#;Fao-Fhs6#F_flFdcl@$FhqC%-Fgp6$Q%testFO-Ffn6#,(Fi_lFao*&&FdflF]pFaoF`^
lFaoFio*&&FdflF`uFaoF\_lFaoFio-Fgp6#Fjel-Fgp6#QFtwo~previous~lines~should~be~th
e~sameFO>&FedlFh_l,$-Ffn6#FchlFio>&Fedl6$FcpFgr,$-Ffn6#FehlFio@$Fhq-Fgp6#Q+test
~T1.T2FO>F_]l-Ffn6#-Fc]l6%Fe]lF][lFedl@$Fj]l-Fb^l6#%0Problem~with~T2G@$Ff^lF`jl
?(FgrFfsFaoFgsF_q@$0-Ffn6#,&Fg_lFaoFjelFioFcrF`jl>8B7%Fi\lFeal,$*&&FgwF^\lFaoF[
pFaoFio>86F^[l>&Fa[mF_^l,(FaoFao*&-FR6%FfqF[p-%#opG6#F[[mFao-F[o6$Fh\lFadlFaoFa
o*&-FR6%FcdlF[pFh[mFaoF\_lFaoFao>&Fa[m6$FcpFao,&*&Ff[mFao-F[o6$Fh\lFcdlFaoFao*&
F^\mFaoF`^lFaoFio>&Fa[mF[_l,&*&-FR6%Ff`lF[pFh[mFaoF[\mFaoFao*&-FR6%FadlF[pFh[mF
aoF\_lFaoFio>&Fa[m6$FcpFcp,(FaoFao*&F\]mFaoFe\mFaoFao*&F_]mFaoF`^lFaoFao@$Fhq-F
gp6#Q.test~T1.T2.T3FO>F_]l-Ffn6#-Fc]l6&Fe]lF][lFedlFa[m@$0-Ffn6#,&F^^lFao&F[flF
]pFioFcr-Fb^l6#%0Problem~with~T3G@$0-Ffn6#,&Fj^lFao&&FbzF\flF^\lFioFcrFf^m?(Fgr
FfsFaoFgsF_q@$FfjlFf^m>87F^[l@%Fht>&Fc_mFj[l,$F]\lFio?(FgrFfsFaoFgsF_q>&Fc_mFb\
l,$*&F]\lFao-F[o6$/F[p&F_xF\flF`tFaoFio@$Fhq-Fgp6#Q1test~T1.T2.T3.T4FO>F_]l-Ffn
6#-Fc]l6'Fe]lF][lFedlFa[mFc_m?(FgrFaoFaoFgsF_q@$Ffjl-Fb^l6$%0Problem~with~T4GFg
r>&FhzF^\l-Ffn6#-Fc]l6&F][lFedlFa[mFc_m@$FhqC&-Fgp6'Q/T1,~T2~,T3,~T4FOF][lFedlF
a[mFc_m-Fgp6(Q.the~step~fromFOFjzQ#toFOF]flQ":FOF`am-Fgp6$Q'i->i+1FOFjz-Fgp6$Q5
va[i].UU[i]-~va[i+1]FO-Ffn6#,&&-F\bl6$-Ffn6#-Fc]l6$Fe]lF`am%)listlistGF]pFaoF[f
lFio@$Fhq-Fgp6$Q*steps:~UUFOFhz>8D&FhzF]p?(FgrFcpFaoFaqF_q>Fecm-Ffn6#-Fc]l6$Fec
m&FhzFjrO-Ffn6#FecmFOFOFOFO
M7R0
I8QuillenSuslin/ParkStep3f*6%%"LG'%$varG%%listG'%%varnGF(6*%#LLG%"lG%#suG%"iG%#
nvG%$isuG%$invG%#deG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reser
ved.G6"C,>8&7#-%"$G6$"""-%%nopsG6#9%>8)F:?(8'F>F>F?%%trueGC$>&F96#FF/&FBFK&9&FK
>&FDFK/FNFM>8$-%)simplifyG6#-%%subsG6$F99$@%55-%%typeG6$FT%'matrixG-Fjn6$FTF(-F
jn6$FT%'MatrixG>8+-%6QuillenSuslin/DenomOfG6#FT>Fco-%&denomGFfo>8%F>@$/-%'degre
eG6$FcoFO""!C)>F[pF>>8(&FO6#F>>8*&FBFgp?(FF""#F>F?FGC$>Fep*&FepF>)FNF[pF>>Fip*&
FipF>)FM,$F[p!""F>>&F9Fgp/FjpFep>&FDFgp/FfpFip>FTFU?(F6F>F>F62FapF^pC*>F[p,&F[p
F>F>F>>FepFfp>FipFjp?(FFF\qF>F?FGC$>FepF_q>FipFbq>FgqFhq>FjqF[r>FTFU@%Fgn>FcoFd
o>FcoFho>FT-%$mapG6$f*6#%"aGF66$%)operatorG%&arrowGF6-%(collectG6$Fen&T$FgpF6F6
6$F*FOFTO6%FTF9FDF6F6F6F6
M7R0
I8QuillenSuslin/testeasygf*6''%"fG%%listG'%"gGF''%$varGF'%$parG%$strG6-%"rG%"nG
%$IBgG%"iG%"jG%"kG%#riG%#M1G%#M2G%"PG%&paramG6#%enCopyright~(C)~2006~by~Anna~Fa
bianska.~All~rights~reserved.G6"C,@%2""$9#>8.9'>FC%%trueG>8$-%=Involutive/Invol
utiveOptionsG6$Q)rationalF<FC>8%-%%nopsG6#9$>8+-&%.LinearAlgebraG6#%/DiagonalMa
trixG6#7#-%"$G6$"""FN>8,FU@%32""#FA/FC%&falseGC$-%)userinfoG6%F@%*HeuristicG%.e
asyg~over~ZZG?(8'FinFinFNFF@$/-%$absG6#&9%6#FioFinC'?(8)FinFinFNFFC$>&FT6$FdpFi
o&F`p6#Fdp>&F[o6$FioFdp,$&FRFjp!"">&F[o6$FioFioFin@$F^o-FJ6$FLFH@%0FioFinC%-Fdo
6%F@Ffo%NThe~right~inverse~has~an~invertible~componentG>8--%@QuillenSuslin/Perm
utationMatrixG6%FinFioFNO-%)simplifyG6#-%".G6%FTF[oF^rO-Fdr6#-Fgr6$FTF[o>FioFNC
$-Fdo6%F@%&easygG%(over~QQG?(FioFinFinFNFF@$/-%'degreeG6$F_p9&""!C'?(FdpFinFinF
NFFC$>FgpFip>F\qF^q>FbqFin@$F^oFeq@%FhqC%Fjq>F^rF_rOFcrOFjr>FioFN-Fdo6%F@Fbs%2t
est~2~componentsG?(FioFinFinFNFF?(8(,&FioFinFinFinFinFNFFC)>FTFU>F[oFU-Fdo6%F@F
bs%+compute~IBG>8&-%;Involutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#7$F_p&
F`p6#F^uFjs-Fdo6&F@FbsFguFgu@$3/Fio,&FNFinF`qFin0-%$lhsG6#&Fgu6#FinFinC$-Fdo6%F
@Fbs%,NOT~SO~EASYGOFao@$/FhvFinC/-Fdo6%F@Ffo%^oTwo~components~of~the~right~inve
rse~generate~already~the~whole~ringG>8*-%$rhsGFjv>FTFU?(FdpFinFinFNFF>FgpFip>&F
T6$FioF^u,$&Fiw6#F_oF`q>&FT6$F^uF^u&FiwF\w>F[oFU?(FdpFinFinFNFF>F\qF^q>FbqFin>&
F[oFax,&*&&FRFapFinFcxFinFin*&&FRF`vFinFhxFinF`q@%FhqC%>F^rF_r@$F^oFeqOFcrC$@$F
^oFeqOFjr>FioFN>F^uFN@$F^oFeqOFjrF<F<F<F<
M7R0
I4QuillenSuslinT/initf*6"F$6#%jnCopyright~(C)~2003-2007~by~Anna~Fabianska.~All~
rights~reserved.GF$-%3QuillenSuslin/initG6#9"F$F$F$F$
M7R0
I7QuillenSuslin/iseasyg1f*6%'%"fG%%listG'%$VARGF'%&paramG61%$parG%"rG%$varG%"nG
%#IBG%"SG%#SiG%"gG%"jG%"iG%#SIG%"eG%$IBeG%&alphaG%%answG6#%enCopyright~(C)~2005
~by~Anna~Fabianska.~All~rights~reserved.G6"C.>82%&falseG@%2""#9#>8$9&>FG%%trueG
>8%-%=Involutive/InvolutiveOptionsG6$Q)rationalF=FG@%/9%7">8&7#%$_T_G>FVFS>8(-%
?Involutive/InvolutiveBasisFastG6$-%2Involutive/AddRhsG6#9$FV@%0-%$lhsG6#&Fen6#
"""FdoC$@$FC-FN6$FPFL-%&ERRORG6#%:The~row~is~not~unimodularGC&>8+-%$rhsGFao>8'-
%%nopsG6#F_p?(8-FdoFdoFcpFJ@$/&F_p6#Fhp""!C%-%&printG6#Q<One~component~0,~try~e
asysrF=>F@FJ>FhpFcp@%/FGFJ?(FhpFdoFdoFcpFJ@$/-%'degreeG6$F[qFVF]qC%-F`q6#QEOne~
invertible~component~,~try~easygF=>F@FJ>FhpFcp?(FhpFdoFdoFcpFJ@$/-%$absG6#F[qFd
oC%F^r>F@FJ>FhpFcp@$/F@FJC$FgoO6$F@F_p-%(WARNINGG6#%KIt~can~take~long:~compute~
Syzygy~Module~S:G>8)-%8Involutive/SyzygyModuleG6$F\oFV?(FhpFdoFdoFcpFJC(>8*-%$m
apG6$f*6#%"aGF=6$%)operatorG%&arrowGF=&F\o6#T#F=F=6$F5FhpFfs>8.-%;Involutive/In
volutiveBasisG6$-Fjn6#F]tFV>8/-%8Involutive/PolInvReduceG6%7#F[qF\uFV-F`q6$Fcu%
F~test~if~the~element~is~invertible...G>80-F^u6$7#FcuFV@$5/F\v7#Fdo/F\v7#F]qC'-
F`q6#Q(TRUE!!!F=>81-Fap6#Fcu-F`q6%Q)alpha,~SF=F[wFfsFgoOFJFgoOF@F=F=F=F=
M7R0
I8QuillenSuslin/JIsUnimodf*6%'%"MG<$%'MatrixG%%listG%%ivarG%%dvarG6#%"fG6#%enCo
pyright~(C)~2004~by~Anna~Fabianska.~All~rights~reserved.G6"C$@%/-%)whattypeG6#9
$F(>8$-%8QuillenSuslin/MaxMinorsGF6>F9F7@%/&-&%&JanetG6#%+JanetBasisG6%F99%9&6#
"""7#--%#opG6#FG6#-FM6#FFO%%trueGO%&falseGF0F0F0F0
M7R0
I6QuillenSuslin/Seasyf1f*6''%"fG%%listG'%$varGF'%"SG%$parG%$strG6.%&paramG%"nG%
#IBG%"iG%"jG%"kG%#riG%#M1G%#M2G%"PG%"lG%"sG6#%enCopyright~(C)~2006~by~Anna~Fabi
anska.~All~rights~reserved.G6"C)@%2""$9#>8$9'>FC%%trueG>8%-%%nopsG6#9$>8+-&%.Li
nearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$"""FH>8,FO@%/FC%&falseG-%)usefinfoG6%
F@%&SEASYG%0Seasyf1~over~ZZG-Fjn6%F@F\o%0Seasyf1~over~QQG?(8'FYFYFHFF@$-%4Quill
enSuslin/IsInSG6%&FL6#Fbo9&FCC(-%&printG6$Q"iF<Fbo>&FN6$FboFbo*$Fgo!""?(8)FYFYF
HFF>&Fen6$FboFep,$&FL6#FepFcp>&FenFapFY@%0FboFYC$>8--%@QuillenSuslin/Permutatio
nMatrixG6%FYFboFHO-%)simplifyG6#-%".G6%FNFenFbqO-Fhq6#-F[r6$FNFen>FboFHOFhnF<F<
F<F<
M7R0
I6QuillenSuslin/Seasysrf*6''%"fG%%listG'%$varGF''%"SGF'%&paramG%$strG6/%"nG%"iG
%"jG%"FG%#fsG%"EG%"bG%$E23G%#E4G%"UG%#E2G%#E3G%"sG6#%enCopyright~(C)~2006~by~An
na~Fabianska.~All~rights~reserved.G6"C%>8$-%%nopsG6#9$?(8%"""FHFA%%trueGC&>8'FE
>&FL6#FG""!>80-%;QuillenSuslin/InvertibleInG6&FL9&9%9'@&0-FC6#FRFPC,@%0FGFHC&>8
)-%@QuillenSuslin/PermutationMatrixG6%FGFHFA>8(FE>&Fao6#FH&FEFO>&FaoFO&FEFdo>Fa
oFE>8*&FR6#""#>&F[pFO&F[pFdo>FapFP>8+-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-
%"$G6$FHFA?(8&F^pFHFAFI>&Fdp6$F`qFH*(,&FHFHFco!""FH&F[p6#F`qFH&FRFdoFfq>8,Fep?(
F`qF^pFHFAFI>&F[r6$FHF`q,$&FaoFhqFfq@%Fin>8--%)simplifyG6#-%".G6%F\oFdpF[r>Fdr-
Ffr6#-Fir6$FdpF[r>FGFA/FGFAC$@$2""%9#-%&printG6#QXThis~case~is~not~so~easy.~All
~generators~are~necessary.F>O%&falseGOFdrF>F>F>F>
M7R0
ICQuillenSuslin/LaurentNormalizationf*6%%"LG'%$varG%%listG'%%varnGF(60%#LLG%+no
rmalizedG%"lG%"pG%#coG%#deG%"cG%#dpG%"dG%"sG%"iG%"jG%"mG%#isG6#%enCopyright~(C)
~2006~by~Anna~Fabianska.~All~rights~reserved.G6"C,@$5-%%typeG6$9$F(-FA6$FC%'Mat
rixG-%&ERRORG6#%TThe~first~component~should~be~a~Laurent~polynomial!G@$0-%%nops
G6#9%-FN6#9&-FH6#%cpThe~list~of~new~variables~and~the~list~of~the~old~variables
~should~have~the~same~length!G>8%%&falseG>8&""!>8-7#-%"$G6$"""FM>81Fin?(8/F]oF]
oFM%%trueGC$>&Fhn6#Fao/&FPFfo&FSFfo>&F_oFfo/FioFho@$2-%'degreeG6$FCFPF]oC$-%)us
erinfoG6%""$%5LaurentNormalizationG%+a~constantGO6%FCFhnF_o?(F<F]oF]oF<4FXC->&F
hn6#F]o/&FPF`q&FSF`q>&F_oF`q/FcqFbq?(Fao""#F]oFMFboC$>Feo/Fho*&FioF]o)Fcq)Fen,&
FaoF]o!""F]oF]o>F[p/Fio*&FhoF]o)Fbq,$F^rF`rF]o>8$-%)simplifyG6#-%%subsG6$FhnFC>
8,-F`p6$FgrFcq>8)7">8(Fds>8'-Fir6#Fgr?(F<F]oF]oF<0FhsFfnC'>8+-F`p6$FhsFcq>8*-%&
coeffG6%FhsFcqF_t>Ffs7$-%#opG6#Ffs-Fir6#Fct>Fcs7$-Fjt6#FcsF_t>Fhs-Fir6#,&FhsF]o
*&FctF]o)FcqF_tF]oF`r?(FaoF]oF]o-FNF[uFbo?(8.F]oF]oFQFbo@%/-F`p6$&FfsFfo&FS6#F[
v-%;QuillenSuslin/LowestDegreeGF_v@$3/F[vFQ/FaoFiu>FXFboC$>F[v,&FQF]oF]oF]o>Fao
,&FiuF]oF]oF]o@$F\q>Fen,&FenF]oF]oF]oO6%-%(collectGFasFhnF_oF<F<F<F<
M7R0
IAQuillenSuslin/BasisOfImageModulef*6%'%"SG%'MatrixG'%$varG%%listG%&paramG6&%#S
2G%#B2G%"BG%(reducedG6#%enCopyright~(C)~2007~by~Anna~Fabianska.~All~rights~rese
rved.G6"C'@$/9&%&falseG-%(WARNINGG6#%HNot~implemented~yet,~computation~over~QG@
$-%;QuillenSuslin/IsZeroMatrixG6#9$C$-F:6#%boThe~module~is~defined~as~a~image~o
f~a~zero~matrix,~thus~the~zero~moduleGO7">8$-F'6#-%8Involutive/SyzygyModuleG6$F
A9%@%-F?6#FIC$-F:6#%`oThe~module~is~defined~as~an~image~of~a~full~row~rank~matr
ix,~thus....G>8%-&%.LinearAlgebraG6#%/IdentityMatrixG6#-&Fen6#%0ColumnDimension
GFR>FX-%DQuillenSuslin/BasisOfCokernelModuleG6&FIFOF7%'reduceG@%0FXFGC$>8&-%$ma
pG6$f*6#%"rGF36$%)operatorG%&arrowGF3FAF3F3F3-%".G6$FXFAOFfoOFGF3F3F3F3
M7R0
I/QuillenSuslinT=6"%&falseGE\[lL%.FindMonic1VarGf*F$F$6#%enCopyright~(C)~2005~b
y~Anna~Fabianska.~All~rights~reserved.GF$C$30%:QuillenSuslin/initializedG.%%tru
eG0-%3QuillenSuslin/initGF$""!-%<QuillenSuslin/FindMonic1VarG6#9"F$F$F$%+testSe
asygGf*F$F$6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.GF$C$
F,-%9QuillenSuslin/testSeasygGF7F$F$F$%4NormalizationStepFFGf*F$F$6#%enCopyrigh
t~(C)~2007~by~Anna~Fabianska.~All~rights~reserved.GF$C$F,-%BQuillenSuslin/Norma
lizationStepFFGF7F$F$F$%&easyfGf*F$F$F;F$C$F,-%4QuillenSuslin/easyfGF7F$F$F$%2L
ocalSolReductionGf*F$F$F;F$C$F,-%@QuillenSuslin/LocalSolReductionGF7F$F$F$%)tes
tEASYGf*F$F$F;F$C$F,-%7QuillenSuslin/testEASYGF7F$F$F$%*testeasygGf*F$F$F;F$C$F
,-%8QuillenSuslin/testeasygGF7F$F$F$%&easy2Gf*F$F$F)F$C$F,-%4QuillenSuslin/easy
2GF7F$F$F$%2PermutationMatrixGf*F$F$F)F$C$F,-%@QuillenSuslin/PermutationMatrixG
F7F$F$F$%5FindIrreducibleNotInGf*F$F$F)F$C$F,-%CQuillenSuslin/FindIrreducibleNo
tInGF7F$F$F$%,OneStepMoreGf*F$F$F;F$C$F,-%:QuillenSuslin/OneStepMoreGF7F$F$F$%,
VarChangeZZGf*F$F$F)F$C$F,-%:QuillenSuslin/VarChangeZZGF7F$F$F$%;RepresentBasis
InGeneratorsGf*F$F$FBF$C$F,-%IQuillenSuslin/RepresentBasisInGeneratorsGF7F$F$F$
%(ReduceFGf*F$F$F)F$C$F,-%6QuillenSuslin/ReduceFGF7F$F$F$%*ParkStep3Gf*F$F$F;F$
C$F,-%8QuillenSuslin/ParkStep3GF7F$F$F$%(Seasyf1Gf*F$F$F;F$C$F,-%6QuillenSuslin
/Seasyf1GF7F$F$F$%*JIsUnimodGf*F$F$6#%enCopyright~(C)~2004~by~Anna~Fabianska.~A
ll~rights~reserved.GF$C$F,-%8QuillenSuslin/JIsUnimodGF7F$F$F$%*testSEASYGf*F$F$
F;F$C$F,-%8QuillenSuslin/testSEASYGF7F$F$F$%&RowQSGf*F$F$F)F$C$F,-%4QuillenSusl
in/RowQSGF7F$F$F$%&RowQQGf*F$F$F;F$C$F,-%4QuillenSuslin/RowQQGF7F$F$F$%*ReduceM
odGf*F$F$6#%jnCopyright~(C)~2005-2007~by~Anna~Fabianska.~All~rights~reserved.GF
$C$F,-%8QuillenSuslin/ReduceModGF7F$F$F$%;Transformation2ReducedFormGf*F$F$FBF$
C$F,-%IQuillenSuslin/Transformation2ReducedFormGF7F$F$F$%4NormalizationStepQQGf
*F$F$F)F$C$F,-%BQuillenSuslin/NormalizationStepQQGF7F$F$F$%'iseasyGf*F$F$F)F$C$
F,-%5QuillenSuslin/iseasyGF7F$F$F$%0RedRightInverseGf*F$F$F)F$C$F,-%>QuillenSus
lin/RedRightInverseGF7F$F$F$%+AddLastRowGf*F$F$F)F$C$F,-%9QuillenSuslin/AddLast
RowGF7F$F$F$%)iseasyg1Gf*F$F$F)F$C$F,-%7QuillenSuslin/iseasyg1GF7F$F$F$%+testde
glocGf*F$F$F;F$C$F,-%9QuillenSuslin/testdeglocGF7F$F$F$%5QuillenSuslinVersionGf
*F$F$FBF$C$F,-%CQuillenSuslin/QuillenSuslinVersionGF7F$F$F$%'SubDetGf*F$F$6#%en
Copyright~(C)~2003~by~Anna~Fabianska.~All~rights~reserved.GF$C$F,-%5QuillenSusl
in/SubDetGF7F$F$F$%(Seasyf2Gf*F$F$F;F$C$F,-%6QuillenSuslin/Seasyf2GF7F$F$F$%8co
pyright_QuillenSuslinGf*F$F$6#%jnCopyright~(C)~2003-2007~by~Anna~Fabianska.~All
~rights~reserved.GF$C$F,-%FQuillenSuslin/copyright_QuillenSuslinGF7F$F$F$%-IsZe
roMatrixGf*F$F$FBF$C$F,-%;QuillenSuslin/IsZeroMatrixGF7F$F$F$%,FindEasyRowGf*F$
F$F;F$C$F,-%:QuillenSuslin/FindEasyRowGF7F$F$F$%)MatrixQSGf*F$F$F)F$C$F,-%7Quil
lenSuslin/MatrixQSGF7F$F$F$%(SeasysrGf*F$F$F;F$C$F,-%6QuillenSuslin/SeasysrGF7F
$F$F$%,FindMonicInGf*F$F$F)F$C$F,-%:QuillenSuslin/FindMonicInGF7F$F$F$%'APatchG
f*F$F$F;F$C$F,-%5QuillenSuslin/APatchGF7F$F$F$%4RedRightInverseFastGf*F$F$F)F$C
$F,-%BQuillenSuslin/RedRightInverseFastGF7F$F$F$%&RowZZGf*F$F$F;F$C$F,-%4Quille
nSuslin/RowZZGF7F$F$F$%+PermOfListGf*F$F$F)F$C$F,-%9QuillenSuslin/PermOfListGF7
F$F$F$%&easygGf*F$F$F;F$C$F,-%4QuillenSuslin/easygGF7F$F$F$%'easysrGf*F$F$F;F$C
$F,-%5QuillenSuslin/easysrGF7F$F$F$F$
M7R0
ICQuillenSuslin/LaurentNormalisationf*6%%"LG'%$varG%%listG'%%varnGF(60%#LLG%+no
rmalisedG%"lG%"pG%#coG%#deG%"cG%#dpG%"dG%"sG%"iG%"jG%"mG%#isG6#%enCopyright~(C)
~2006~by~Anna~Fabianska.~All~rights~reserved.G6"C,@$5-%%typeG6$9$F(-FA6$FC%'Mat
rixG-%&ERRORG6#%TThe~first~component~should~be~a~Laurent~polynomial!G@$0-%%nops
G6#9%-FN6#9&-FH6#%cpThe~list~of~new~variables~and~the~list~of~the~old~variables
~should~have~the~same~length!G>8%%&falseG>8&""!>8-7#-%"$G6$"""FM>81Fin?(8/F]oF]
oFM%%trueGC$>&Fhn6#Fao/&FPFfo&FSFfo>&F_oFfo/FioFho@$2-%'degreeG6$FCFPF]oC$-%)us
erinfoG6%""$%5LaurentNormalisationG%+a~constantGO6%FCFhnF_o?(F<F]oF]oF<4FXC->&F
hn6#F]o/&FPF`q&FSF`q>&F_oF`q/FcqFbq?(Fao""#F]oFMFboC$>Feo/Fho*&FioF]o)Fcq)Fen,&
FaoF]o!""F]oF]o>F[p/Fio*&FhoF]o)Fbq,$F^rF`rF]o>8$-%)simplifyG6#-%%subsG6$FhnFC>
8,-F`p6$FgrFcq>8)7">8(Fds>8'-Fir6#Fgr?(F<F]oF]oF<0FhsFfnC'>8+-F`p6$FhsFcq>8*-%&
coeffG6%FhsFcqF_t>Ffs7$-%#opG6#Ffs-Fir6#Fct>Fcs7$-Fjt6#FcsF_t>Fhs-Fir6#,&FhsF]o
*&FctF]o)FcqF_tF]oF`r?(FaoF]oF]o-FNF[uFbo?(8.F]oF]oFQFbo@%/-F`p6$&FfsFfo&FS6#F[
v-%;QuillenSuslin/LowestDegreeGF_v@$3/F[vFQ/FaoFiu>FXFboC$>F[v,&FQF]oF]oF]o>Fao
,&FiuF]oF]oF]o@$F\q>Fen,&FenF]oF]oF]oO6%-%(collectGFasFhnF_oF<F<F<F<
M7R0
I:QuillenSuslin/OneStepMoref*6%'%"FG%%listG'%$varGF'%&paramG6.%"fG%$VARG%%varnG
%$MAXG%"HG%#UUG%"rG%#irG%"NG%#SUG%$ISUG%"QG6#%enCopyright~(C)~2006~by~Anna~Fabi
anska.~All~rights~reserved.G6"C%-%)userinfoG6(""$%,OneStepMoreGF@9$9%9&@$/FB7"C
$-%&printG6#QIno~step~possible~-~no~variables~to~set~0F:O-&%.LinearAlgebraG6#%/
DiagonalMatrixG6#-%"$G6$"""-%%nopsG6#8$@%-%6QuillenSuslin/IsMonicG6$FA&FB6#!""C
+>FZFA>8&&FB6#;FV!"#@%/FC%&falseG@%/F_oFF>8'7#""#>Fjo7$F\p-%#opG6#F_o@%Fho>Fjo7
#""!>Fjo7#F_p>8(-%7QuillenSuslin/HorrocksG6&FZFjoFBFC>8)7#Fip>8*7#-%6QuillenSus
lin/DenomOfG6#Fip-F=6(F?F@%,MAX,~r,~detGFjoFaq-&FO6#%,DeterminantGFeq?(F:FVFVF:
4-%7QuillenSuslin/IsUnimodG6%FaqF_oFCC(@%Feo>Fjo-%8QuillenSuslin/MaximalZZG6$Fa
qF_o>Fjo-%8QuillenSuslin/MaximalQQGFgr>FipFjp>F^q7$-F`p6#F^q-%$mapG6$f*6#%"aGF:
6$%)operatorG%&arrowGF:-%)simplifyG6#FAF:F:F:Fip>Faq7$-F`p6#FaqFcq-F=6(F?F@%-MA
X,~~r,~detGFjoFaq-Fjs6#Fiq-F=6(F?%,QSAlgorithmGFbtFjoFaqFctO-%4QuillenSuslin/Pa
tchG6&Fin&FB6#;FVF[oF^qFC-%&ERRORG6#Q*not~monicF:F:F:F:F:
M7R0
IFQuillenSuslin/RepresentIPInGeneratorsf*6%%"eG'%"LG%%listG'%"vGF(6%%#IBG%#NFG%
&IBInLG6#%enCopyright~(C)~2007~by~Anna~Fabianska.~All~rights~reserved.G6"C&>8$-
%;Involutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#9%%$varG>8%-%8Involutive/
PolInvReduceG6&9$F4F<Q"CF1>8&-%'MatrixG6#-%$mapG6$f*6#%"iGF16$%)operatorG%&arro
wGF1-%$rhsG6#&T#6#FBF1F16$F,F47#-%"$G6#;"""-%%nopsG6#F4O-%)simplifyG6#-%".G6$-F
G6#&F>6#""#FEF1F1F1F1
M7R0
I/QuillenSuslinA=6"%&falseGE\[lep%.FindMonic1VarGf*F$F$6#%enCopyright~(C)~2005~
by~Anna~Fabianska.~All~rights~reserved.GF$C$30%:QuillenSuslin/initializedG.%%tr
ueG0-%3QuillenSuslin/initGF$""!-%<QuillenSuslin/FindMonic1VarG6#9"F$F$F$%&Patch
Gf*F$F$6#%enCopyright~(C)~2004~by~Anna~Fabianska.~All~rights~reserved.GF$C$F,-%
4QuillenSuslin/PatchGF7F$F$F$%,OneLocalSolGf*F$F$6#%enCopyright~(C)~2006~by~Ann
a~Fabianska.~All~rights~reserved.GF$C$F,-%:QuillenSuslin/OneLocalSolGF7F$F$F$%,
Laurent2PolGf*F$F$FBF$C$F,-%:QuillenSuslin/Laurent2PolGF7F$F$F$%+testSeasygGf*F
$F$FBF$C$F,-%9QuillenSuslin/testSeasygGF7F$F$F$%2NormalizationStepGf*F$F$F)F$C$
F,-%@QuillenSuslin/NormalizationStepGF7F$F$F$%6BasisOfCokernelModuleGf*F$F$FBF$
C$F,-%DQuillenSuslin/BasisOfCokernelModuleGF7F$F$F$%4NormalizationStepFFGf*F$F$
6#%enCopyright~(C)~2007~by~Anna~Fabianska.~All~rights~reserved.GF$C$F,-%BQuille
nSuslin/NormalizationStepFFGF7F$F$F$%1SetLastVariableAGf*F$F$F)F$C$F,-%?Quillen
Suslin/SetLastVariableAGF7F$F$F$%(DenomOfGf*F$F$6#%enCopyright~(C)~2008~by~Anna
~Fabianska.~All~rights~reserved.GF$C$F,-%6QuillenSuslin/DenomOfGF7F$F$F$%1IsPar
kNormalizedGf*F$F$FBF$C$F,-%?QuillenSuslin/IsParkNormalizedGF7F$F$F$%&easyfGf*F
$F$FBF$C$F,-%4QuillenSuslin/easyfGF7F$F$F$%2LocalSolReductionGf*F$F$FBF$C$F,-%@
QuillenSuslin/LocalSolReductionGF7F$F$F$%)DenomOfAGf*F$F$F)F$C$F,-%7QuillenSusl
in/DenomOfAGF7F$F$F$%)testEASYGf*F$F$FBF$C$F,-%7QuillenSuslin/testEASYGF7F$F$F$
%9InjectiveParametrizationGf*F$F$FBF$C$F,-%GQuillenSuslin/InjectiveParametrizat
ionGF7F$F$F$%3BasisOfImageModuleGf*F$F$FgnF$C$F,-%AQuillenSuslin/BasisOfImageMo
duleGF7F$F$F$%*testeasygGf*F$F$FBF$C$F,-%8QuillenSuslin/testeasygGF7F$F$F$%,Sus
linLemmaGf*F$F$F)F$C$F,-%:QuillenSuslin/SuslinLemmaGF7F$F$F$%5LaurentNormalizat
ionGf*F$F$FBF$C$F,-%CQuillenSuslin/LaurentNormalizationGF7F$F$F$%&easy2Gf*F$F$F
)F$C$F,-%4QuillenSuslin/easy2GF7F$F$F$%,QSAlgorithmGf*F$F$FBF$C$F,-%:QuillenSus
lin/QSAlgorithmGF7F$F$F$%2PermutationMatrixGf*F$F$F)F$C$F,-%@QuillenSuslin/Perm
utationMatrixGF7F$F$F$%5FindIrreducibleNotInGf*F$F$F)F$C$F,-%CQuillenSuslin/Fin
dIrreducibleNotInGF7F$F$F$%*MaximalZZGf*F$F$F)F$C$F,-%8QuillenSuslin/MaximalZZG
F7F$F$F$%,OneStepMoreGf*F$F$FBF$C$F,-%:QuillenSuslin/OneStepMoreGF7F$F$F$%,VarC
hangeZZGf*F$F$F)F$C$F,-%:QuillenSuslin/VarChangeZZGF7F$F$F$%;RepresentBasisInGe
neratorsGf*F$F$FgnF$C$F,-%IQuillenSuslin/RepresentBasisInGeneratorsGF7F$F$F$%1W
LCFactorizationGf*F$F$6#%]oCopyright~(C)~2006~by~Alban~Quadrat~and~A.~F.~All~ri
ghts~reserved.GF$C$F,-%?QuillenSuslin/WLCFactorizationGF7F$F$F$%(ReduceFGf*F$F$
F)F$C$F,-%6QuillenSuslin/ReduceFGF7F$F$F$%*ParkStep3Gf*F$F$FBF$C$F,-%8QuillenSu
slin/ParkStep3GF7F$F$F$%(Seasyf1Gf*F$F$FBF$C$F,-%6QuillenSuslin/Seasyf1GF7F$F$F
$%*JIsUnimodGf*F$F$F;F$C$F,-%8QuillenSuslin/JIsUnimodGF7F$F$F$%*CofactorsGf*F$F
$F)F$C$F,-%8QuillenSuslin/CofactorsGF7F$F$F$%*MaximalFFGf*F$F$F)F$C$F,-%8Quille
nSuslin/MaximalFFGF7F$F$F$%8ParkMatrixNormalizationGf*F$F$FBF$C$F,-%FQuillenSus
lin/ParkMatrixNormalizationGF7F$F$F$%)LinBose2Gf*F$F$FduF$C$F,-%7QuillenSuslin/
LinBose2GF7F$F$F$%#LCGf*F$F$F;F$C$F,-%1QuillenSuslin/LCGF7F$F$F$%*testSEASYGf*F
$F$FBF$C$F,-%8QuillenSuslin/testSEASYGF7F$F$F$%&RowQSGf*F$F$F)F$C$F,-%4QuillenS
uslin/RowQSGF7F$F$F$%&RowQQGf*F$F$FBF$C$F,-%4QuillenSuslin/RowQQGF7F$F$F$%+SHeu
risticGf*F$F$FBF$C$F,-%9QuillenSuslin/SHeuristicGF7F$F$F$%(IsMonicGf*F$F$F)F$C$
F,-%6QuillenSuslin/IsMonicGF7F$F$F$%2ReduceBasisDegreeGf*F$F$FBF$C$F,-%@Quillen
Suslin/ReduceBasisDegreeGF7F$F$F$%*ReduceModGf*F$F$6#%jnCopyright~(C)~2005-2007
~by~Anna~Fabianska.~All~rights~reserved.GF$C$F,-%8QuillenSuslin/ReduceModGF7F$F
$F$%#LMGf*F$F$F;F$C$F,-%1QuillenSuslin/LMGF7F$F$F$%)HorrocksGf*F$F$FfzF$C$F,-%7
QuillenSuslin/HorrocksGF7F$F$F$%;Transformation2ReducedFormGf*F$F$FgnF$C$F,-%IQ
uillenSuslin/Transformation2ReducedFormGF7F$F$F$%4NormalizationStepQQGf*F$F$F)F
$C$F,-%BQuillenSuslin/NormalizationStepQQGF7F$F$F$%*OneStepQSGf*F$F$FBF$C$F,-%8
QuillenSuslin/OneStepQSGF7F$F$F$%'iseasyGf*F$F$F)F$C$F,-%5QuillenSuslin/iseasyG
F7F$F$F$%-RightInverseGf*F$F$F;F$C$F,-%;QuillenSuslin/RightInverseGF7F$F$F$%0Re
dRightInverseGf*F$F$F)F$C$F,-%>QuillenSuslin/RedRightInverseGF7F$F$F$%)LinBose1
Gf*F$F$FduF$C$F,-%7QuillenSuslin/LinBose1GF7F$F$F$%+AddLastRowGf*F$F$F)F$C$F,-%
9QuillenSuslin/AddLastRowGF7F$F$F$%)iseasyg1Gf*F$F$F)F$C$F,-%7QuillenSuslin/ise
asyg1GF7F$F$F$%+testdeglocGf*F$F$FBF$C$F,-%9QuillenSuslin/testdeglocGF7F$F$F$%5
QuillenSuslinVersionGf*F$F$FgnF$C$F,-%CQuillenSuslin/QuillenSuslinVersionGF7F$F
$F$%*ReduceDegGf*F$F$F)F$C$F,-%8QuillenSuslin/ReduceDegGF7F$F$F$%4BasisOfKernel
ModuleGf*F$F$FgnF$C$F,-%BQuillenSuslin/BasisOfKernelModuleGF7F$F$F$%'SubDetGf*F
$F$6#%enCopyright~(C)~2003~by~Anna~Fabianska.~All~rights~reserved.GF$C$F,-%5Qui
llenSuslin/SubDetGF7F$F$F$%(Seasyf2Gf*F$F$FBF$C$F,-%6QuillenSuslin/Seasyf2GF7F$
F$F$%8copyright_QuillenSuslinGf*F$F$6#%jnCopyright~(C)~2003-2007~by~Anna~Fabian
ska.~All~rights~reserved.GF$C$F,-%FQuillenSuslin/copyright_QuillenSuslinGF7F$F$
F$%-IsZeroMatrixGf*F$F$FgnF$C$F,-%;QuillenSuslin/IsZeroMatrixGF7F$F$F$%/Complet
eMatrixGf*F$F$FBF$C$F,-%=QuillenSuslin/CompleteMatrixGF7F$F$F$%*MaximalQQGf*F$F
$F)F$C$F,-%8QuillenSuslin/MaximalQQGF7F$F$F$%,FindEasyRowGf*F$F$FBF$C$F,-%:Quil
lenSuslin/FindEasyRowGF7F$F$F$%)MatrixQSGf*F$F$F)F$C$F,-%7QuillenSuslin/MatrixQ
SGF7F$F$F$%*MaxMinorsGf*F$F$Fh_lF$C$F,-%8QuillenSuslin/MaxMinorsGF7F$F$F$%(Seas
ysrGf*F$F$FBF$C$F,-%6QuillenSuslin/SeasysrGF7F$F$F$%-LowestDegreeGf*F$F$FBF$C$F
,-%;QuillenSuslin/LowestDegreeGF7F$F$F$%1RightInverseFastGf*F$F$F)F$C$F,-%?Quil
lenSuslin/RightInverseFastGF7F$F$F$%*IsRegularGf*F$F$F)F$C$F,-%8QuillenSuslin/I
sRegularGF7F$F$F$%5BasisOfCoimageModuleGf*F$F$FgnF$C$F,-%CQuillenSuslin/BasisOf
CoimageModuleGF7F$F$F$%,FindMonicInGf*F$F$F)F$C$F,-%:QuillenSuslin/FindMonicInG
F7F$F$F$%'APatchGf*F$F$FBF$C$F,-%5QuillenSuslin/APatchGF7F$F$F$%-InvertibleInGf
*F$F$FBF$C$F,-%;QuillenSuslin/InvertibleInGF7F$F$F$%&IsInSGf*F$F$FBF$C$F,-%4Qui
llenSuslin/IsInSGF7F$F$F$%1WRCFactorizationGf*F$F$FduF$C$F,-%?QuillenSuslin/WRC
FactorizationGF7F$F$F$%*OneStepEYGf*F$F$FBF$C$F,-%8QuillenSuslin/OneStepEYGF7F$
F$F$%4RedRightInverseFastGf*F$F$F)F$C$F,-%BQuillenSuslin/RedRightInverseFastGF7
F$F$F$%&RowZZGf*F$F$FBF$C$F,-%4QuillenSuslin/RowZZGF7F$F$F$%+PermOfListGf*F$F$F
)F$C$F,-%9QuillenSuslin/PermOfListGF7F$F$F$%0RCFactorizationGf*F$F$FgnF$C$F,-%>
QuillenSuslin/RCFactorizationGF7F$F$F$%&easygGf*F$F$FBF$C$F,-%4QuillenSuslin/ea
sygGF7F$F$F$%'easysrGf*F$F$FBF$C$F,-%5QuillenSuslin/easysrGF7F$F$F$%)IsUnimodGf
*F$F$Fh_lF$C$F,-%7QuillenSuslin/IsUnimodGF7F$F$F$%.ParkAlgorithmGf*F$F$FBF$C$F,
-%<QuillenSuslin/ParkAlgorithmGF7F$F$F$%0LCFactorizationGf*F$F$FgnF$C$F,-%>Quil
lenSuslin/LCFactorizationGF7F$F$F$%*HeuristicGf*F$F$FBF$C$F,-%8QuillenSuslin/He
uristicGF7F$F$F$F$
M7R0
I8QuillenSuslin/APatchingf*6(%"AG%"mG'%"rG%%listG'%#irGF)'%"XG%'symbolG'%"UGF)6
&%"iG%"VG%"YG%"ZG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved
.G6"C(@$0-%%nopsG6#9&-F=6#9'O.-%&ERRORG6#%*dimensionG>8&9(>8',&FK"""*()&F?6#FO9
%FO&FBFSFO,&FKFO9$!""FOFX>8%-%)simplifyG6#-%".G6$&9)FS-%%subsG6$/FKFM-&%.Linear
AlgebraG6#%.MatrixInverseG6#F[o?(8$""#FOF<%%trueGC%>FJ,&FJFO*()&F?6#,&FhoFOFXFO
FTFO&FBFapFOFVFOFX>FM,&FMFO*()&F?6#FhoFTFO&FBFipFOFVFOFX>FZ-Ffn6#-Fin6%FZ-F^o6$
/FKFJ&F\oFip-F^o6$F`o-Fbo6#FcqOFZF8F8F8F8
M7R0
I=QuillenSuslin/CompleteMatrixf*6&'%"RG<$%'MatrixG%%listG'%$varGF)%$parG%*lastp
aramG6(%"FG%"UG%"pG%"qG%"rG%"TG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~r
ights~reserved.G6"C$>8%-%:QuillenSuslin/QSAlgorithmG6#9"@%0F:7"C*@%/-%)whattype
G6#9$F)>8$-F(FG>FJFH>8&-&%.LinearAlgebraG6#%0ColumnDimensionG6#FJ>8'-&FQ6#%-Row
DimensionGFT>8(-%=Involutive/InvolutiveOptionsG6$Q)rationalF79&>8)-%:Involutive
/PolLeftInverseG6$-&FQ6#%*SubMatrixG6%F:;"""FN;,&FVFgoFgoFgoFN9%-Fhn6$FjnFfn>F]
o-%)simplifyG6#-%".G6$F]o,&-&FQ6#%/IdentityMatrixG6#FNFgo-Fbp6$-Fbo6%F:Ffo;FgoF
VFJ!""O-F(6#-%$<,>G6$FJF]oOFAF7F7F7F7
M7R0
I6QuillenSuslin/DenomOff*6$%"MG%$strG6&%"iG%"jG%&DENOMG%#MMG6#%enCopyright~(C)~
2008~by~Anna~Fabianska.~All~rights~reserved.G6"C'>8&7"@%/-%)whattypeG6#9$%%list
G>8'F8>F;-%$mapG6$f*6#%"rGF.6$%)operatorG%&arrowGF.-%#opGF7F.F.F.-%(convertG6$F
8%)listlistG>F1-F>6$f*FAF.FCF.-%&denomGF7F.F.F.F;-%&printG6$Q&DENOMF.F1@%2"""9#
O7#-FG6#F1O-%$lcmG6#FfnF.F.F.F.
M7R0
I5QuillenSuslin/easysrf*6&'%"fG%%listG'%$varGF'%&paramG%$strG60%"rG%"nG%"iG%"jG
%"FG%#IFG%#fsG%"EG%"bG%$E23G%#E4G%"UG%#E2G%#E3G6#%enCopyright~(C)~2006~by~Anna~
Fabianska.~All~rights~reserved.G6"C'@$2""#9#>8$-%=Involutive/InvolutiveOptionsG
6$Q)rationalF=9&>8%-%%nopsG6#9$?(8&"""FRFK%%trueGC&>8(FO>&FV6#FQ""!>8)-%;Involu
tive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#FV9%@&/-%$lhsG6#&Ffn6#FRFRC,@%0FQ
FRC&>8+-%@QuillenSuslin/PermutationMatrixG6%FQFRFK>8*FO>&F_pFdo&FOFY>&F_pFY&FOF
do>F_pFO>8,-%$rhsGFbo>&FhpFY&FhpFdo>F]qFZ>8--&%.LinearAlgebraG6#%/DiagonalMatri
xG6#7#-%"$G6$FRFK?(8'FAFRFKFS>&F`q6$F\rFR*&,&FRFRFap!""FR&Fhp6#F\rFR>8.Faq?(F\r
FAFRFKFS>&Ffr6$FRF\r,$&F_pFdrFbr@%Fgo>8/-%)simplifyG6#-%".G6%FjoF`qFfr>F_s-Fas6
#-Fds6$F`qFfr>FQFK/FQFKC%@$2""$FB-%&printG6#QXThis~case~is~not~so~easy.~All~gen
erators~are~necessary.F=@$F@-FF6$FHFDO%&falseG@$F@FftOF_sF=F=F=F=
M7R0
I?QuillenSuslin/SetLastVariableAf*6&'%"MG<$%'MatrixG%%listG'%$varGF)%"AG%&param
G6)%"nG%"mG%"gG%"FG%"UG%"CG%"rG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~r
ights~reserved.G6"C)@$/9%7"-%&ERRORG6#%/No~variables!?G>8(%&falseG@%/-%)whattyp
eG6#9$F)C&>8'FJ>8$""">8&-%;QuillenSuslin/RightInverseG6%FMF<9'>FC-%7QuillenSusl
in/testEASYG6&FMFRF<FVC%>FO-&%.LinearAlgebraG6#%-RowDimensionGFI>8%-&Fin6#%0Col
umnDimensionGFI@$/FOFPC%>FM&-%(convertG6$FJ%)listlistG6#FP>FRFS>FCFX@$0-FH6#FCF
(@%3Fco-%6QuillenSuslin/IsMonicG6$FM&F<6#!""C%-%)userinfoG6%""$%1SetLastVariabl
eAG%Fnot~"easy"~row-~do~one~inductive~stepG>8)-%8QuillenSuslin/OneStepQSG6&FM%$
VARGFV9&OFbqC$-F\q6%F^qF_q%Othe~most~general~case~-~compute~MatrixQS~firstG@%FF
>FC-%4QuillenSuslin/RowQSG6%FJF<FV>FC-%7QuillenSuslin/MatrixQSGFar>8*-%6Quillen
Suslin/DenomOfGFap>Fbq-%5QuillenSuslin/APatchG6&FgqFgp&F<6#;FP!"#7#FCOFbqF8F8F8
F8
M7R0
I>QuillenSuslin/LCFactorizationf*6$'%"PG%'MatrixG'%$varG%%listG6.%"qG%"rG%#DtG%
#NtG%#RtG%$RtTG%#LtG%$LtTG%"UG%$R2pG%#NpG%#DpG6#%enCopyright~(C)~2007~by~Anna~F
abianska.~All~rights~reserved.G6"C0>8$-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8
%-&F@6#%0ColumnDimensionGFC>8&-&F@6#%/DiagonalMatrixG6#7#-%"$G6$-%6QuillenSusli
n/DenomOfGFCFF>8'-%)simplifyG6#-%".G6$FDFL>8(-F'6#-%$<,>G6$FYFL>8)-&F@6#%*Trans
poseG6#F[o@%2""#9#>8+&-%7QuillenSuslin/LinBose1G6%Fbo9%%$optG6#Fjo>F]p&-F`p6$Fb
oFbpFdp>8*-Fdo6#F]p@$4-%7QuillenSuslin/IsUnimodG6%F]pFbp%%trueGC$-%(WARNINGG6#%
[othe~transfer~matrix~does~not~admit~a~left~coprime~factorization.G-%'RETURNG6#
7">8,-%:QuillenSuslin/QSAlgorithmGFaq>8--Fdo6#-&F@6#%*SubMatrixG6%F]r;""",&F=Fj
rFFFjr;,&FFFjrFjrFjrF[s>8/-Fer6%Far;FjrF=Fbs>8.,$-Fer6%FarFbs;,&F=FjrFjrFjrF[s!
""-Fiq6#7$F_sFdsF:F:F:F:
M7R0
I?QuillenSuslin/IsParkNormalisedf*6$%"aG'%$varG%%listG6,%+normalisedG%"lG%"pG%#
coG%#deG%"cG%#dpG%"dG%"iG%"jG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rig
hts~reserved.G6"C$@%/-%)simplifyG6#9$""!>8$%%trueGC)>F@%&falseG>8+-%'degreeG6$F
=&9%6#""">8(7">8'FP>8&F:?(F6FMFMF60FTF>C'>8*-FH6$FTFJ>8)-%&coeffG6%FTFJFY>FR7$-
%#opG6#FR-F;6#Fgn>FO7$-F^o6#FOFY>FT-F;6#,&FTFM*&FgnFM)FJFYFM!""?(8,FMFM-%%nopsG
F_oFA?(8-FMFM-F`p6#FKFA@%0-FH6$&FR6#F^p&FK6#Fbp-%;QuillenSuslin/LowestDegreeGFh
pC%-%)userinfoG6'""$%1IsParkNormalisedG%0the~coefficientGFip%:is~not~a~Laurent~
monomialG>F^pF_p>FbpFcp@$3/FbpFcp/F^pF_p>F@FAOF@F6F6F6F6
M7R0
I?QuillenSuslin/QuillenSuslinAlgf*6&'%"FG<$%'MatrixG%%listG'%$varGF)%"pG%*lastp
aramG6"6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.GF.@%/-%)
whattypeG6#9$F)-%'RETURNG6#-%4QuillenSuslin/RowQSG6#9"-F86#-%7QuillenSuslin/Mat
rixQSGF<F.F.F.F.
M7R0
IBQuillenSuslin/NormalizationStepQQf*6&'%"FG%%listG'%$varGF''%%NVARGF'%$optG6-%
%nvarG%"iG%"jG%"sG%"kG%"nG%"dG%"NG%#SUG%$ISUG%"mG6#%enCopyright~(C)~2005~by~Ann
a~Fabianska.~All~rights~reserved.G6"C/@%0&9"6#!""Q%lastF;>8$9&>FE7$&FFFA-%#opG6
#&FF6#;"""!"#@$0-%%nopsG6#9%-FU6#FE-%&ERRORG6#%bpthe~number~of~the~new~variable
s~and~the~number~of~the~old~variables~are~|+|+not~the~same!G>8)-FU6#9$>8,7#-%"$
G6$FPFT>8-F_o?(8%FPFPFT%%trueGC$>&F^o6#Ffo/&FWF[p&FEF[p>&FdoF[p/F^pF]p>8+-&%.Li
nearAlgebraG6#%/DiagonalMatrixG6#7#-Fao6$FPFin>8'""!>8(F_q>8*%)infinityG?(FfoFP
FPFTFgo?(8&FPFPFinFgo@$/-%'degreeG6#-%)simplifyG6#-%1QuillenSuslin/LCG6$&F\o6#F
gqF]pF_q@$2-F[r6#FcrFcqC%>FcqFgr>F^qFgq>FaqFfo@%2F_qF^qC'>&Fcp6$F^qF^q*$-Far6$&
F\o6#F^q&FW6#FaqFB>&F^o6#FP/&FWF\t&FEFis>&F^oFis/Fhs&FEF\t>&FdoF\t/FctFhs>&FdoF
is/F_tF^tC&?(FfoFPFPFinFgo@$2-F[r6#&F\oF[pFcqC$>FcqF^u>F^qFfo>8.,&FcqFPFPFP?(Ff
o""#FPFTFgoC$>Fjo/F]p,&F^pFP)Fct)Feu,&FTFPFfoFBFP>F`p/F^p,&F]pFP)F^tF^vFB>Fas*$
-Far6$-%%subsG6$F^oFfsFctFBO6%FcpF^oFdoF;F;F;F;
M7R0
I?QuillenSuslin/WRCFactorizationf*6$'%"PG%'MatrixG'%$varG%%listG6,%"qG%"rG%#DtG
%#NtG%#RtG%$RtTG%#LtG%$LtTG%#NpG%#DpG6#%]oCopyright~(C)~2006~by~Alban~Quadrat~a
nd~A.~F.~All~rights~reserved.G6"C.>8$-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8%
-&F>6#%0ColumnDimensionGFA>8&-&F>6#%/DiagonalMatrixG6#7#-%"$G6$-%6QuillenSuslin
/DenomOfGFAFD>8'-%)simplifyG6#-%".G6$FBFJ>8(-F'6#-%$<,>G6$FWFJ>8)-&F>6#%*Transp
oseG6#Fin@%2""#9#>8+&-%7QuillenSuslin/LinBose1G6%F`o9%%$optG6#Fho>F[p&-F^p6$F`o
F`pFbp@$/F[p7"C$-%(WARNINGG6#%Xthe~transfer~matrix~does~not~admit~a~WRC~factori
zation.G-%'RETURNG6#Fip>8*-Fbo6#F[p>8,-&F>6#%*SubMatrixG6%Fcq;"""F;;F^rFD>8--Fi
q6%Fcq;,&F;F^rF^rF^r,&F;F^rFDF^rF_r-F`q6#7$FgqFarF8F8F8F8
M7R0
IFQuillenSuslin/RepresentNFInGeneratorsf*6%%"eG'%"LG%%listG'%"vGF(6%%#IBG%#NFG%
&IBInLG6#%enCopyright~(C)~2007~by~Anna~Fabianska.~All~rights~reserved.G6"C&>8$-
%;Involutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#9%%$varG>8%-%8Involutive/
PolInvReduceG6&9$F4F<Q"CF1>8&-%'MatrixG6#-%$mapG6$f*6#%"iGF16$%)operatorG%&arro
wGF1-%$rhsG6#&T#6#FBF1F16$F,F47#-%"$G6#;"""-%%nopsG6#F4O-%)simplifyG6#-%".G6$-F
G6#&F>6#""#FEF1F1F1F1
M7R0
ICQuillenSuslin/BasisOfCoimageModulef*6%'%"RG%'MatrixG'%$varG%%listG%&paramG6$%
#R2G%"BG6#%enCopyright~(C)~2007~by~Anna~Fabianska.~All~rights~reserved.G6"C'@$/
9&%&falseG-%(WARNINGG6#%HNot~implemented~yet,~computation~over~QG@$-%;QuillenSu
slin/IsZeroMatrixG6#9$C$-F86#%doThe~module~is~defined~as~a~coimage~of~a~zero~ma
trix,~thus~the~zero~moduleGO7">8$-F'6#-%8Involutive/SyzygyModuleG6$F?9%>8%-%DQu
illenSuslin/BasisOfCokernelModuleG6%FGFMF5OFOF1F1F1F1
M7R0
I8QuillenSuslin/IsRegularf*6&'%"fG%%listG%$varG%&paramG%$strG6)%"jG%"LG%"mG%$PS
FG%"NG%#anG%"rG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G
6"C'@$2""#9#>8*-%=Involutive/InvolutiveOptionsG6$Q)rationalF59&>8)%%trueG@%/&9$
6#"""""!>FC%&falseGC$>8%7"?(8$FJFJ,&-%%nopsG6#FHFJ!""FJFDC)>FP7$-%#opG6#FP&FH6#
FS>8&&FH6#,&FSFJFJFJ>8'-%8Involutive/PolSubFactorG6%7#F\oFP9%>8(-%8Involutive/P
olInvReduceG6%&Fao6#F9-%;Involutive/InvolutiveBasisG6$FPFfoFfo@$2""$F:-%&printG
F^o@$0<#-Fgn6#Fho<#FKC&-Fep6'F\oQ=is~a~zero~divisor~in~R[var]/F5FPQ%withF5Fho>F
CFM@$F8-F>6$F@F<OFC@$Fbp-Fep6%Q$a,NF5F]oFho@$F8FcqOFCF5F5F5F5
M7R0
I8QuillenSuslin/MaximalQQf*6%'%"LG%%listG'%$varGF'%$strG63%#IBG%"FG%$nenG%"aG%$
denG%#L1G%$IB1G%#pmG%$fpmG%"MG%"iG%#FiG%)FaktorenG%*NFaktorenG%%varnG%$PZSG%"PG
6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C,>8$-%;Invol
utive/InvolutiveBasisG6$9$9%@$2""#9#F?@$/FB7#"""C$-%&printG6#QDThe~ideal~is~alr
eady~the~whole~ringF?O7">8%-%=Involutive/FactorModuleBasisG6#FG@$FIF?@$/FXFNOFB
@%-%%typeG6$FX%"+GC$>8&<"?&8.FX%%trueGC$>8'-%'indetsG6#-%&denomG6#Fdo@$2-%%nops
G6#Fao-Fbp6#Fho>FaoFho>Fao-Fjo6#-F]p6#FX@%/FaoFboC$@$FIF??(FdoFJFO-FbpF[qFeoC%>
8+-%6Involutive/PolMinPolyG6'&FXF^pFBFG/Q$varF?%'lambdaG/Q'degreeF?Faq>8,-%(fac
torsG6#Fdq@%-%(irreducGFbrC%@$FIF?@%/-%'degreeGFbrFaqC%@$FIF?>FdoFaqOFB@$FIF?@$
/FdoFaq-FR6#%`qall~MinimalPolynoms~are~irreducible,~but~all~of~degree~smaller~t
hen~the~dimension~of~the~FactorModuleGC'@$FIF?>8)7$-%#opG6#FF-%%subsG6$/F[rFhq&
&&F_r6#FJ6#FOFft>FdoFaq@$FIF?>8*-FD6$FisFGC,@$FIF?>827#-F\t6#-%&minusG6$<#-F\tF
enFao-FD6$FFF`u>83<#-F\t6#-%7Involutive/PolZeroSetsGF?@$FIF?>FisFF@$FIF??(FdoFO
FOFapFeoC)>80f*6#%"xGF?6$%)operatorG%&arrowGF?-%$mapG6$f*6#F6F?F\wF?&FFFftF?F?F
?&-FarF]tFetF?F?F?>81-F`w6$f*6#F/F?F\wF?-F\t6#-T#F]tF?F?6$F8FhvF\v@$FIF?>84&Fao
F^p?(F?FOFOF?-%#inG6$FdxFhw>Fdx,&FdxFO!""FO@$FIF?>Fis7$-F\t6#FisFdx@$FIF?>FjtF[
u@%FI>8--F"6%FjtFG&9"6#""$>Ffy-F"6$FjtFGOFfyF?F?F?F?
M7R0
I7QuillenSuslin/Patchingf*6'%"mG'%"rG%%listG'%#irGF('%"XG%'symbolG'%"UGF(6'%"iG
%"VG%"YG%"ZG%#UIG6#%enCopyright~(C)~2004~by~Anna~Fabianska.~All~rights~reserved
.G6"C*@$0-%%nopsG6#9%-F=6#9&O.-%&ERRORG6#%*dimensionG>8&9'>8',&FK"""*()&F?6#FO9
$FO&FBFSFOFKFO!"">8(-&%.LinearAlgebraG6#%.MatrixInverseG6#&9(FS>8%-%)simplifyG6
#-%".G6$Fin-%%subsG6$/FKFMFX-%&printG6$Q)denom~ofF8-%(DenomOfG6#-F^o6#F\o?(8$""
#FOF<%%trueGC'>FJ,&FJFO*()&F?6#,&FapFOFVFOFTFO&FBFjpFOFKFOFV>FM,&FMFO*()&F?6#Fa
pFTFO&FBFbqFOFKFOFV>FX-FZ6#&FjnFbq>F\o-F^o6#-Fao6%F\o-Fdo6$/FKFJFgqFco-Fho6$Fjo
-F\pF_pOF\oF8F8F8F8
M7R0
I5QuillenSuslin/SubDetf*6%'%"MG%'MatrixG%'RrangeG%'CrangeG6"6#%enCopyright~(C)~
2003~by~Anna~Fabianska.~All~rights~reserved.GF*-&%.LinearAlgebraG6#%,Determinan
tG6#-&F/6#%*SubMatrixG6%9$9%9&F*F*F*F*
M7R0
I7QuillenSuslin/compiled"-Z:423?6"
M7R0
IFQuillenSuslin/copyright_QuillenSuslinf*6"F$6#%jnCopyright~(C)~2003-2007~by~An
na~Fabianska.~All~rights~reserved.GF$C)-%&printG6#%>QuillenSuslin~(2003-2007)~(
C)G-F)6#%MCopyright~(C)~(2003-2007)~by~Anna~Fabianska.G-F)6#%5All~rights~reserv
ed.G-F)6#%YThis~software~should~be~referenced~if~it~is~used~in~workG-F)6#%>even
tuating~in~a~publication.G-F)6#%GUsers~are~free~to~modify~this~program,G-F)6#%T
but~it~is~not~to~be~redistributed~in~modified~form.GF$F$F$F$
M7R0
I4QuillenSuslin/easyff*6&'%#ffG%%listG'%%varsGF'%$parG%$strG6/%&paramG%"fG%"rG%
"nG%#IBG%"iG%"jG%"kG%#riG%#M1G%#M2G%"PG%$varG6#%enCopyright~(C)~2006~by~Anna~Fa
bianska.~All~rights~reserved.G6"C0@%2""#9#>8$9&>FC%%trueG@%/-%)whattypeG6#FC%(i
ntegerG@%-%(isprimeGFK>8%9$-%&ERRORG6#QjnExpecting~a~prime~number~as~a~characte
ristic~of~a~finite~field!F<>FQFR>809%@$/FY7"@%/FCFFO-%4QuillenSuslin/RowQQG6#FQ
>FY7#%$_T_G>8'-%%nopsGF]o>8--&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$"""
Fbo>8.Fgo@$/FC%&falseGC$-%)usefinfoG6%""$%*HeuristicG%.easyf~over~ZZG?(8)FapFap
FboFF@$/-%$absG6#&FQ6#F_qFapC'>&Ffo6$F_qF_qFeq?(8+FapFapFboFF>&Fcp6$F_qF\r,$&FQ
6#F\r!"">&FcpFjqFap@%0F_qFapC$>8/-%@QuillenSuslin/PermutationMatrixG6%FapF_qFbo
O-%)simplifyG6#-%".G6%FfoFcpFjrO-F`s6#-Fcs6$FfoFcp>F_qFbo@$FinC$-%)userinfoG6%F
[qF\q%.easyf~over~QQG?(F_qFapFapFboFF@$/-%'degreeG6$FeqFY""!C'>Fiq*$FeqFcr?(F\r
FapFapFboFF>F^rF`r>FerFap@%FgrC$>FjrF[sOF_sOFfs>F_qFbo@$3FHFNC$-F^t6&F[qF\q%.ea
syf~over~FFGFC?(F_qFapFapFboFF@$FctC'>Fiq-%$modG6$FjtFC?(F\rFapFapFboFF>F^rF`r>
FerFap@%FgrC$>FjrF[sOF_sOFfs>F_qFbo-F^t6%""%F\q%9test~two~components~of~fG@$F?@
%FH@%FN>8&-%=Involutive/InvolutiveOptionsG6$Q%charF<FCFS>Fbw-Fdw6$Q)rationalF<F
C?(F_qFapFap,&FboFapFcrFapFF?(8*,&F_qFapFapFapFapFboFFC%>8(-%;Involutive/Involu
tiveBasisG6$-%2Involutive/AddRhsG6#7$Feq&FQ6#F^xFY@$2F[qFA-%&printG6#7$F_qF^x@&
/-%$lhsG6#&Fbx6#FapFapC0>8,-%$rhsGFfy@$F?@%FH-Fdw6$FfwFbw-Fdw6$FjwFbw>FfoFgo>Fi
q&F[zFhy>&Ffo6$F^xF_q&F[z6#F@>&Ffo6$F_qF^x,$FjxFcr>&Ffo6$F^xF^xFeq>FcpFgo?(F\rF
apFapFboFF>F^rF`r>FerFap>&FcpF^[lFgt@%FgrC$>FjrF[sOF_sOFfs>F_qFbo>F^xFbo/F_qF\x
C%@$F?@%FHF`zFbz-F^t6%F\wF\q%LThe~row~is~not~so~easy~over~the~given~ring.GOFfpO
FfsF<F<F<F<
M7R0
I@QuillenSuslin/LocalSolReductionf*6%'%#ffG%%listG'%$varGF''%"PGF'60%"nG%%lastG
%"MG%"iG%"jG%#lcG%#MfG%"dG%"mG%#cpG%#cqG%"hG%"kG%"fG6#%enCopyright~(C)~2006~by~
Anna~Fabianska.~All~rights~reserved.G6"C,>8$-%%nopsG6#9$>8%&9%6#!"">81-%(collec
tG6$FDFF>8)-%$mapG6$f*6#%"aGF=6$%)operatorG%&arrowGF=-%1QuillenSuslin/LCG6$FDT#
F=F=6$F.FFFL@$/-%;Involutive/InvolutiveBasisG6$9&FH7#"""-%&ERRORG6#%UThe~ideal~
of~non~invertible~elements~is~a~whole~ringG>8&-&%.LinearAlgebraG6#%/DiagonalMat
rixG6#7#-%"$G6$FaoF@?(8'FaoFaoF@%%trueGC$>8+-%&numerG6#&FQ6#Fcp@$30F[qFao0-F]o6
$7$-%#opG6#F_o,&FaoFao*&FgpFao%$_T_GFaoFJ7$-Feq6#FHFiqF`oC(-%)userinfoG6&""%%2L
ocalSolReductionG%#IBGFaq-F_r6&""$Fbr%1invertible~coeffGF[q>&Fgo6$FcpFcp*$F[qFJ
>FL&-%(convertG6$-%)simplifyG6#-%".G6$-%'MatrixGFCFgo%)listlistG6#Fao-F_r6&FfrF
br%4after~trasformationG-FN6$FLFFO6$FgoFgp-F_r6%FfrFbr%,SuslinLemmaG>8,&&-%6Qui
llenSuslin/IsMonicG6%FDFF%$strG6#""#F]u?(FcpFaoFaoF@Fdp@&F_q?(8(FaoFao-%'degree
G6$&FDF\qFFFdpC$>Fgp-Fip6#-%&coeffG6%FfuFF,&FcuFaoFbuFJ@$F`qC->6%8-8.8/-%:Quill
enSuslin/SuslinLemmaG6&&FD6#FftFfuFFF^v>80&-%&minusG6$<#-F`p6#;FaoF@<$FcpFftFjs
>&Fgo6$FftF\wFcv>&Fgo6$FcpF\wFdv>FLF]s-F_r6&FfrFbr%6ff~after~Suslin~LemmaG-FS6$
f*FVF=FXF=-FNFgnF=F=FinFL-F_r6&FfrFbr%;LC[k]~should~be~invertibleG-Ffn6$&FL6#F\
wFF>Fgp-Fip6#Fgx>8*Fho>&F_y6$F\wF\w*$FgxFJO6$-Fbs6#-Fes6$FgoF_yFgp/FcpF@-%(WARN
INGG6#%XFail~to~find~an~invertible~coefficient~in~the~given~rowGF=F=F=F=
M7R0
I8QuillenSuslin/MaximalZZf*6$'%"LG%%listG'%$varGF'6,%#IBG%"rG%"PG%"MG%#lcG%"iG%
"jG%)FaktorenG%#PFG%$_T_G6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~
reserved.G6"C$>8%-%=Involutive/InvolutiveOptionsG6$Q)rationalF7%&falseG@%/9%7"C
'>8$-%;Involutive/InvolutiveBasisG6$9$7#8-@$/FF7#"""C%-%&printG6#QDThe~ideal~is
~already~the~whole~ringF7-F<6$F>F:OFC@%-%(isprimeG6#&FF6#FP>8&Fgn>Fjn&&&-%)ifac
torsGFfn6#""#FhnFhnFVO7#FjnC)>FF-FH6$FJFB@$FNC%-FS6#QDthe~ideal~is~already~the~
whole~ringF7FVOFC@%/-%'degreeG6$FgnFB""!@%FZ>FjnFgn>FjnF\oC(>8(FJ?(8*FPFP-%%nop
sG6#FJ%%trueG?(8)FPFP-F^q6#FBF`q>&Fjp6#F\q-%1QuillenSuslin/LCG6$Ffq&FB6#Fbq>8+f
*6#%"xGF76$%)operatorG%&arrowGF7-%$mapG6$f*6#F0F7FbrF7&FJFhnF7F7F7&-F`oF_qFaoF7
F7F7>8,<#-%#opG6#-Ffr6$f*FirF7FbrF7-Fas6#-T#F_qF7F76$F2F^rFjp>FjnFbo?(F7FPFPF7-
%#inG6$FjnF^s>Fjn-%*nextprimeG6#Fjn@$2Fbo9#-FS6$QVComputation~over~the~finite~f
ield~of~charactetistic~:F7Fjn>8'-%8QuillenSuslin/MaximalFFG6%FJFBFjnFVO7$-Fas6#
F[uFjnF7F7F7F7
M7R0
I:QuillenSuslin/OneLocalSolf*6&'%#ffG%%listG'%$varGF''%"PGF'%&paramG64%"fG%"nG%
"iG%"jG%"UG%%lastG%"MG%#IBG%"HG%"mG%#lcG%"dG%#LSG%#PPG%#IMG%(reducedG%"rG%"SG6#
%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G6"C8-%)userinfoG6
'"""%,OneLocalSolG%6START~OneLocalSol~forG9$9&>8%-%%nopsG6#FJ@$2FM""$-%&ERRORG6
#%\oThe~row~has~less~then~3~components,~please~use~heuristic~methods.G>857">8)&
9%6#!"">8(-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-%"$G6$FGFM>84-%=Involutive/
InvolutiveOptionsG6$Q)rationalFB9'@$/-%;Involutive/InvolutiveBasisG6$FKFhn7#FG-
FU6#%UThe~set~of~non~invertible~elements~is~the~whole~ringG>827#-%6QuillenSusli
n/IsMonicG6%FJFfn%$strG@%0-FO6#FhpFG>8-&&Fhp6#""#Ffq-FU6#%IThe~row~does~not~hav
e~a~monic~component!G-FE6&""%FH%4ff~before~reductionGFJ-FE6&F]rFH%9degrees~befo
re~reductionG-%$mapG6$f*6#%"aGFB6$%)operatorG%&arrowGFB-%'degreeG6$FJT#FBFB6$F3
FfnFJ>6$8*8/-%9QuillenSuslin/testdeglocG6&FJFhnFKF]p@$0Fcs""!>FY7$-%#opG6#FYFcs
@$0FbsFZC$-Fjo6$F\pFhoO6$FbsFY-FE6'FSFH%2reduce~degree~forGFJFfn-FE6%FSFH-%8Qui
llenSuslin/ReduceDegG6%FJFfn.83>6$8$8,F[u-FE6&FSFH%2f~after~reductionGFbu@%F_uC
%>80-F"6&FbuFhnFKF]p>F\o-%)simplifyG6#-%".G6$Fcu&Fju6#FG>FY7$F\t-F]t6#&FjuFfqC,
>Fas-%@QuillenSuslin/LocalSolReductionG6%FbuFhnFK-FE6&F]rFH%:not~invertible~ele
ments~PGFK>FYF[t-FE6%F]r%5LocalStepAvoidingMaxG%K"B",~compute~solutions~for~the
~reduced~rowG>Fbu&-%(convertG6$-Fbv6$-%'MatrixG6#FbuFbs%)listlistGFev>Fbu-%(col
lectG6$-F_vFaxFfn-FE6&F]rFHFgwFbu>FjuF[v>F\o-F_v6#-Fbv6$FbsFdv>FYFgvFbtO6$F\oFY
FBFBFBFB
M7R0
I<QuillenSuslin/ParkAlgorithmf*6$'%"RG%'MatrixG'%$varG%%listG61%"rG%"cG%"UG%"SG
%#UiG%%nvarG%#ffG%"MG%#suG%$isuG%"iG%"pG%#TfG%"LG%"jG6#%enCopyright~(C)~2006~by
~Anna~Fabianska.~All~rights~reserved.G6"C*>8$-&%.LinearAlgebraG6#%-RowDimension
G6#9$>8%-&FC6#%0ColumnDimensionGFF>8&-&FC6#%/DiagonalMatrixG6#7#-%"$G6$"""FI>8'
FG>8)-%$mapG6$f*6#%"aGF=6$%)operatorG%&arrowGF=-%$catG6$FG%"_GF=F=F=9%?(8.FYFYF
@%%trueGC+>8*&-%(convertG6$-&FC6#%*SubMatrixG6%FenFgo;FgoFI%)listlistG6#FY-%)us
erinfoG6%""$%.ParkAlgorithmG%Icomputation~over~Laurent~polynomial~ringG>6&8/8+8
,8--%:QuillenSuslin/Laurent2PolG6%F[pFeoFgn>80-%4QuillenSuslin/RowQSG6%F`qFgnFh
o@$/Fhq7"-%'RETURNG6#F^r>8(-%)simplifyG6#-%".G6$Faq-%%subsG6$FcqFhq@%/FgoFY>FO-
Fhr6$FOFcr>FO-Fhr6$FO-FQ6#7$-%#opG6#7#-FW6$FY,&FgoFY!""FYFcr>Fen-Fer6#-Fhr6$FGF
O-Fip6&F[qF\q%%StepGFgo?(82FYFY,&F@FYF_tFYFhoC%>81FP?(Fgo,(F@FYFitF_tFYFYFYF@Fh
o>&F]u6$Fgo,&F@FYFitF_t,$&FenFbuF_t>FO-Fer6#-Fhr6$FOF]uO-Fer6#FOF=F=F=F=
M7R0
I9QuillenSuslin/PermOfListf*6#'%"LG%%listG6&%"nG%$PerG%"iG%#LiG6#%enCopyright~(
C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C&>8$-%%nopsG6#9$>8%7#F6@'/F2
"""OF8/F2""#>F87$-%#opG6#F87$&F66#!""&F66#F<?(8&F<F<F2%%trueGC$>8'7#-FC6#-%&min
usG6$<#-FCF5<#&F66#FL>F87#-FC6#-%&unionG6$<#FB<#-FC6#-%$mapG6$f*6#%"lGF/6$%)ope
ratorG%&arrowGF/7$FX&T$6#T%F/F/6&F&F6F+FL-F"6#FPOF8F/F/F/F/
M7R0
I7QuillenSuslin/testEASYf*6&'%"fG%%listG'%"gGF''%$varGF'%&paramG6#%"EG6#%enCopy
right~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G6"C&-%)userinfoG6%""$%*H
euristicG%+test~easyfG>8$-%4QuillenSuslin/easyfG6%9$9&9'@%/-%)whattypeG6#F:%'Ma
trixGC$-F46%F6F7%9easyf~-~no~induction~!!!GOF:C%-F46%F6F7%,test~easysrG>F:-%5Qu
illenSuslin/easysrGF=@%FBC$-F46%F6F7%:easysr~-~no~induction~!!!GOF:C%-F46&F6F7%
,~test~easygG9%>F:-%8QuillenSuslin/testeasygG6&F>FgnF?F@@$FBC$-F46%F6F7%9easyg~
-~no~induction~!!!GOF:OF:F1F1F1F1
M7R0
IGQuillenSuslin/InjectiveParametrisationf*6%'%"RG%'MatrixG'%$varG%%listG%&param
G6%%"nG%"mG%"UG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G
6"C&>8$-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8%-&F86#%0ColumnDimensionGF;>8&-
%1QuillenSuslinAlgG6%F<9%9&@%/-%)whattypeG6#FDF'O-&F86#%*SubMatrixG6%FD;"""F>;,
&F5FVFVFVF>-%&ERRORG6#%8Not~a~unimodular~matrixGF2F2F2F2
M7R0
IGQuillenSuslin/InjectiveParametrizationf*6%'%"RG%'MatrixG'%$varG%%listG%&param
G6%%"nG%"mG%"UG6#%enCopyright~(C)~2006~by~Anna~Fabianska.~All~rights~reserved.G
6"C&>8$-&%.LinearAlgebraG6#%-RowDimensionG6#9$>8%-&F86#%0ColumnDimensionGF;>8&-
%:QuillenSuslin/QSAlgorithmG6%F<9%9&@%/-%)whattypeG6#FDF'O-&F86#%*SubMatrixG6%F
D;"""F>;,&F5FVFVFVF>-%&ERRORG6#%8Not~a~unimodular~matrixGF2F2F2F2
M7R0
I7QuillenSuslin/LinBose1f*6$'%"RG%'MatrixG'%$varG%%listG6-%$extG%"LG%"aG%$MinG%
"UG%"PG%"pG%"qG%#RpG%$RppG%"VG6#%]oCopyright~(C)~2006~by~Alban~Quadrat~and~A.~F
.~All~rights~reserved.G6"C%>8$-%?Involutive/PolTorsionfreeParamG6$-&%.LinearAlg
ebraG6#%*TransposeG6#9$9%>8%-%8Involutive/SyzygyModuleG6$&F<6#"""FG@%-&%'linalg
G6#%'iszeroG6#-%(convertG6$FI%&arrayG-%'RETURNG6#7$-FX6$-%8Involutive/PolFactor
izeG6%FFFMFGF'FM@%2""#9#@%0-%:Involutive/PolLeftInverseG6$&F<6#F`oFG%%FAILGC)>8
(-%7QuillenSuslin/MatrixQSG6%-FA6#FgoFG%%trueG>8+-&FB6#%-RowDimensionGFap>8*-&F
B6#%0ColumnDimensionGFap>8.-&FB6#%*SubMatrixG6%F\p;FOFdp;,&FjpFOFOFOFdp>8,-FA6#
F`q>8--F\o6%FFFjqFG-Ffn6#7$-FX6$-%%copyG6#F^rF'-FX6$-Fgr6#FjqF'C$-%&printG6#%OT
his~heuristic~does~not~work~for~this~example.G-Ffn6#7"C'>8&-%%nopsG6#&FIFN>8'-%
AInvolutive/PolShortestResolutionG6$-F'6#FIFG>Fdp-Ffp6#&F]tFN>Fjp-F\qFet@%2FO-F
is6#F]tC$-%(WARNINGG6#%`oThe~conditions~for~LinBose1~are~not~fulfilled:~the~mod
ule~is~not~freeGFbs@%-%7QuillenSuslin/IsUnimodG6%FftFGFbpC'>F\p-F^pFeu>8)-Fbq6%
F\p;FOFjp;,&FdpFOFOFOFjp>Fjq-%".G6$-Fbq6%-Feo6$FjuFG;FO,&FjpFOFdp!"";FOFgsFM>F^
r-%$mapG6$%)simplifyGF_rFarC$-F_u6#%NThe~conditions~for~LinBose1~are~not~fulfil
ledGFbsF9F9F9F9
M7R0
I8QuillenSuslin/Heuristicf*6&'%"fG%%listG'%$varGF'%&paramG%*lastparamG6,%"gG%"h
G%"EG%"FG%"GG%"HG%"MG%"nG%"iG%*infolevelG6#%enCopyright~(C)~2006~by~Anna~Fabian
ska.~All~rights~reserved.G6"C(>8+-%%nopsG6#9$@%2""#9#>8$-%;QuillenSuslin/RightI
nverseG6%F@9%9&>FF-FH6$F@FJ@$2""$FD>&8-6#%*HeuristicGFQ>8&-%7QuillenSuslin/test
EASYG6&F@FFFJFK@$/FX%&falseGC&@%FB>8%-FH6%FFFJFK>F\o-FH6$FFFJ@$FP>FSFQ>8(-FZ6&F
FF\oFJFK@%/FeoFhn>FXFeoC'>8)-&%.LinearAlgebraG6#%*TransposeG6#-&F`p6#%.MatrixIn
verseG6#Feo>8'-%)simplifyG6#-%".G6$-%'MatrixGF?F]p>8*-&F`p6#%/DiagonalMatrixG6#
7#-%"$G6$"""F<?(8,FCF^rF<%%trueG>&Fdq6$F^rF`r,$&FjpFdr!"">FX-F\q6#-F_q6$F]pFdqO
FXF9F9F9F9
M7R0
I;QuillenSuslin/ReduceModoldf*6&%"TG'%"MG%%listG'%$varGF(%&paramG6(%"tG%"rG%$VA
RG%#IBG%"aG%"cG6#%enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G
6"C'@%-%%typeG6$9$F(>8$F;>F=7#F;@$2""$9#>8%-%=Involutive/InvolutiveOptionsG6$Q)
rationalF59'@%2"""-%%nopsG6#9&C%>8&7$&FQ6#;FM!"#7#&FQ6#!"">8'-%;Involutive/Invo
lutiveBasisG6%9%FT7$""%F_o>8)-%$mapG6$f*6#F1F56$%)operatorG%&arrowGF5-%8Involut
ive/PolInvReduceG6&F;T#T%F^oF5F56&F0FinF/FT-%)simplifyG6#F=C$>Fin-F[o6$F]oFQ>Fa
o-Fco6$f*FfoF5FgoF5-F[p6%F;F]pT&F5F56&F0FinF*FQF`p@$FA-FG6$FIFE@%F8OFaoO&Fao6#F
MF5F5F5F5
M7R0
ICQuillenSuslin/QuillenSuslinVersionf*6"F$6#%enCopyright~(C)~2007~by~Anna~Fabia
nska.~All~rights~reserved.GF$-%&printG6#Q:Last~update:~09~July~2008F$F$F$F$F$
M7R0
IKQuillenSuslin/RepresentElementInGeneratorsf*6%%"eG'%"LG%%listG'%"vGF(6$%#IBG%
#NFG6#%enCopyright~(C)~2007~by~Anna~Fabianska.~All~rights~reserved.G6"C%>8$-%;I
nvolutive/InvolutiveBasisG6$-%2Involutive/AddRhsG6#9%%$varG>8%-%8Involutive/Pol
InvReduceG6&9$F3F;Q"CF0O-%'MatrixG6#&F=6#""#F0F0F0F0
M7R0
I7QuillenSuslin/DenomOfAf*6$'%#_MG<$%'MatrixG%%listG%$strG6%%"iG%"jG%&DENOMG6#%
enCopyright~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C%>8&7"@%-%%type
G6$9$F)?(8$"""F=-%%nopsG6#F:%%trueG@$0-%&denomG6#&F:6#F<F=>F4-%&unionG6$<#-%#op
G6#F4<#FD?(F<F=F=-&%.LinearAlgebraG6#%-RowDimensionGF@FA?(8%F=F=-&FU6#%0ColumnD
imensionGF@FA@$0-FE6#&F:6$F<FYF=>F4-FK6$FM<#Fjn@%2F=9#O7#FNO-%$lcmG6#FNF1F1F1F1
M7R0
I8QuillenSuslin/Cofactorsf*6#'%"FG%'MatrixG6&%"mG%"nG%*cofactorsG%"iG6#%enCopyr
ight~(C)~2005~by~Anna~Fabianska.~All~rights~reserved.G6"C%>8%-&%.LinearAlgebraG
6#%-RowDimensionG6#9$>8$-&F56#%0ColumnDimensionGF8@%/F;,&F2"""FCFCC'>8&7#-%"$G6
$""!F;>&FF6#FC*&)!"",&F;FCFCFCFC-%5QuillenSuslin/SubDetG6%F97#;FCF27#;""#F;FC?(
8'FZFC,&F;FCFQFC%%trueG>&FF6#Ffn*&)FQ,&F;FCFfnFCFC-FT6%F9FV7$;FC,&FfnFCFQFC;,&F
fnFCFCFCF;FC>&FF6#F;-FT6%F9FV7#;FCFgnOFF-%&ERRORG6#%MThe~matrix~is~not~of~the~d
imension~n~x~(n+1)GF/F/F/F/
M7R0
I3QuillenSuslin/initf*6"6#%*ini_printG6#%jnCopyright~(C)~2003-2007~by~Anna~Fabi
anska.~All~rights~reserved.GF$@$50%:QuillenSuslin/initializedG.%%trueG32""!9#-%
%typeG6$&9"6#""".%%listGC'>8$f*F$F$F$F$@$0%9_Env_QuillenSuslin_printG%&falseG-%
&printG6#F7F$F$F$@$4-%)assignedG6#%3Involutive/versionGC$-%'printfG6#QGPlease~i
nstall~the~Involutive~package.F$-%&ERRORG6#%!G>F,F--%%withG6#%+InvolutiveG-FX6#
%/QuillenSuslinTGF$6#F,F$F$
M7R0
I@QuillenSuslin/NormalisationStepf*6''%"FG%%listG'%$varGF''%%NVARGF'%$parG%$opt
G69%%nvarG%)IMOutputG%"iG%"jG%"nG%#npG%&alphaG%#SUG%$ISUG%#suG%$isuG%"fG%#nsG%#
FsG%"mG%"uG%"qG%"aG%#qsG%&paramG%$dnsG%%dFslG%"MG6#%enCopyright~(C)~2005~by~Ann
a~Fabianska.~All~rights~reserved.G6"C&@%0&9"6#!""Q%lastFH>8$9&>FR7$&FSFN-%#opG6
#&FS6#;"""!"#@$0-%%nopsG6#9%-F\o6#FR-%&ERRORG6#%`pThe~number~of~the~new~variabl
es~and~the~number~of~the~old~variables~are~not~the~same!G@%29#""%>87%%trueG>Fjo
9'@%/FjoF[pC$-%&printG6#%6normalisation~over~QQG-%BQuillenSuslin/NormalisationS
tepQQG6%9$F^oFRC.-Fbp6#%6normalisation~over~ZZG>8(-F\o6#Fhp>8+7#-%"$G6$FgnF[o>8
,Fcq?(8&FgnFgnF[oF[pC$>&Fbq6#Fjq/&F^oF^r&FRF^r>&FhqF^r/FarF`r>8%7#-%6QuillenSus
lin/IsMonicG6%FhpF^oQ$strFH@%/&Ffr6#FgnF[pC(>8'&&Ffr6#""#Fes>Fjq&Fds6#""$>8)&Fh
p6#Fbs>8*-%@QuillenSuslin/PermutationMatrixG6%FbsF^qF^q@$0FjqFgnC&>&FbqF_s/&F^o
F_sFar>F]r/F`r&FRF_s>&FhqF_s/FarFjt>Fcr/F]uF`rO6%F`tFbqFhqC-?(FjqFgnFgnF^qF[p@&
/&FhpF^r""!C'>8/Fhp>&F]vF^r&Fhp6#F^q>F]v&F]vFen>FjqF^q>8:-Fbt6%FjqF^qF^q/FjqF^q
C$>F]v&FhpFen>Ffv-&%.LinearAlgebraG6#%/DiagonalMatrixG6#7#-Feq6$FgnF^q>6&F\t848
-8.-%:QuillenSuslin/FindMonicInG6&F]vF^oFRFjo>81-%%subsG6$FjwFhp>F`x-%$mapG6$f*
6#F2FH6$%)operatorG%&arrowGFH-%)simplifyGF`qFHFHFHF`x>86-Fbx6$FjwFiw>80-Fbx6$Fj
wF\t>88-%'degreeG6$FdyF]u>89-Fjy6$&F`xFNF]u@%2F]zFhy>82Fju>Fdz,(F]zFgnFhyFOFgnF
gn>FbqFjw>FhqF[x>83-Ffx6$f*6#%"bGFHFjxFH*&FhpFgn)&T#F_sT%FgnFHFH6&F/FRF=FdzF`y>
F`t-F_w6#7#-Feq6$FgnF_q@%/F_qFfs>&F`t6$FgnFfsFjz?(FjqFgnFgn,&F_qFgnFOFgnF[p>&F`
t6$FjqF_q&FjzF^r>F`t-F^y6#-%".G6$Ffv-Fbx6$FhqF`tOFduFHFHFHFH