Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
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
Project: cocalc-sagemath-dev-slelievre
Views: 418346/home/barakat/maple/lib/10/homalg.lib .......................................................................................................................................................................................................................... :֝G���� omalg homalgT homalgF homalgS homalgZ homalgA homalg/homalg homalg/forallrings homalg/compiled homalg/version homalg/AddMat homalgA/init homalg/AModuleForATwoExtensionFromCocycle homalg/AModuleForATwoExtension.old homalg/AModuleForATwoExtension homalg/Annihilator homalg/AreEquivalentExtensions homalg/BasisCoeff homalg/BasisOfModule homalg/BetterBasis homalg/BetterGenerators homalg/BetterPresentation homalg/CheckCocomplex homalg/CheckComplex homalg/CheckComposition homalg/CheckHom homalg/CheckHomsOfCoseq homalg/CheckHomsOfSeq homalg/CheckImSq homalg/CheckKerSq homalg/ChineseRemainderMap homalg/CocycleOfExtension1 homalg/CocycleOfExtension homalg/CodimOfModule homalg/CofunctorOnSeqF homalg/CofunctorOnSeq homalg/CofunctorOnSeqsF M7R0 I(homalgS=6"%&falseGE\[l2%-RingNotationGf*F$F$6#%fnCopyright~(C)~2004~by~Mohame d~Barakat.~All~rights~reserved.GF$C$30%3homalg/initializedG.%%trueG0-%,homalg/i nitGF$""!-%4homalg/RingNotationG6#9"F$F$F$%'AddMatGf*F$F$6#%[oCopyright~(C)~200 4-2005~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F,-%.homalg/AddMatGF7F$F$F$ %(ComposeGf*F$F$F;F$C$F,-%/homalg/ComposeGF7F$F$F$%*GlobalDimGf*F$F$6%F*%'syste mG%)rememberGF$C$F,-%1homalg/GlobalDimGF7F$F$F$%'SubMatGf*F$F$F)F$C$F,-%.homalg /SubMatGF7F$F$F$%-KroneckerMatGf*F$F$6#%fnCopyright~(C)~2003~by~Mohamed~Barakat .~All~rights~reserved.GF$C$F,-%4homalg/KroneckerMatGF7F$F$F$%1PresentationInfoG f*F$F$F)F$C$F,-%8homalg/PresentationInfoGF7F$F$F$%'ReduceGf*F$F$6%F<FHFIF$C$F,- %.homalg/ReduceGF7F$F$F$%+InvolutionGf*F$F$6#%jnCopyright~(C)~2004-2005~by~Dani el~Robertz.~All~rights~reserved.GF$C$F,-%2homalg/InvolutionGF7F$F$F$%1ResidueCl assRingGf*F$F$6%%[oCopyright~(C)~2004-2006~by~Mohamed~Barakat.~All~rights~reser ved.GFHFIF$C$F,-%8homalg/ResidueClassRingGF7F$F$F$%.BasisOfModuleGf*F$F$FjnF$C$ F,-%5homalg/BasisOfModuleGF7F$F$F$%3ReduceRingElementsGf*F$F$FgoF$C$F,-%:homalg /ReduceRingElementsGF7F$F$F$%(DiagMatGf*F$F$6%%[oCopyright~(C)~2003-2005~by~Moh amed~Barakat.~All~rights~reserved.GFHFIF$C$F,-%/homalg/DiagMatGF7F$F$F$%/Normal izeInputGf*F$F$FGF$C$F,-%6homalg/NormalizeInputGF7F$F$F$%.NormalizeRingGf*F$F$6 %%enCopyright~(C)~2004~by~Daniel~Robertz.~All~rights~reserved.GFHFIF$C$F,-%5hom alg/NormalizeRingGF7F$F$F$%'MulMatGf*F$F$F;F$C$F,-%.homalg/MulMatGF7F$F$F$%3Syz ygiesGeneratorsGf*F$F$FGF$C$F,-%:homalg/SyzygiesGeneratorsGF7F$F$F$F$, Q*homalgS.mF$ M7R0 I2homalg/CheckKerSqf*6+%"AG%'alpha2G%#_AG%%_phiG%"BG%'_beta2G%#_BG'%$varG%%list G%,RingPackageG6)%#RPG%$narG%$phiG%*apply_phiG%&beta2G%(kphiCb2G%$ka2G6#%[oCopy right~(C)~2003-2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C*>8$-%1homalg/t ablenameG6%9!&9"6#!""8%@$-%%typeG6$F=%*procedureG-%'RETURNG6#-F=6#&FC6#;""",&FE FTFFFE@%-FI6$9'FK>8'FYC$>8&-%6homalg/NormalizeInputG6$FYF=>Fenf*6#%"aGF:6$%)ope ratorG%&arrowGF:-%/homalg/ComposeG6&T#9$T&T'F:F:6(F3FhnF-9+F1F=>8(-Fjn6$9)F=>8) -%4homalg/SumRelationsG6&-%1homalg/KernelEmbG6'Fgo-Fen6#F]p9*F[pF=FgoF[pF=>8*-F gp6'Fgo9%9&F[pF=>F]q-%(convertG6$F]q%)listlistG-%.homalg/ReduceG6&F]qFbpF[pF=F: F:F:F:, Q4homalg/CheckKerSq.mF: M7R0 I9homalg/CohomologyModulesf*6%'%*cocomplexG<$%&tableG%%listG'%$varGF)%,RingPack ageG6*%#RPG%$narG%&firstG%#aiG%"lG%%stepG%$haiG%"jG6#%fnCopyright~(C)~2004~by~M ohamed~Barakat.~All~rights~reserved.G6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@ $-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC@$/9$7"-FK6#FW@%-F G6$FVF)>8'7#-%"$G6#;FR-%%nopsG6#FV>Fhn-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalG F`o>8(-F_o6#Fhn>8&&FV6#&Fhn6#FR@%-FG6$Fcp%4homalg_presentationG>8)""#-FK6#-%:ho malg/CohomologyModulesFG6#FA>8*7#-F[o6#;FR,&-%%iquoG6$F_pF]qFRFCFR-Ffo6$f*6#%"i GF86$%)operatorG%&arrowGF8-%4homalg/DefectOfHomsG6%-%$seqG6$&T$6#&T%6#,&*&T'FRF VFRFRT)FR/Fes;""!,&FdsF^qFCFRT,T-F8F86.F&FVF1FhnF3F]qF58+F+9%F.F;FeqF8F8F8F8, Q;homalg/CohomologyModules.mF8 M7R0 I5homalg/ConnectingHomf*6*'%%_HqnG%4homalg_presentationG%#jnG%#bnG%$bsnG%%in_1G '%'_Hsn_1GF''%$varG%%listG%,RingPackageG6.%#RPG%$narG%%optsG%$HqnG%&Hsn_1G%*Hsn _1_epiG%%ZN_1G%&ZSN_1G%(Cqn_BqnG%&Cn_BnG%%Zn_1G%&Zsn_1G6#%[oCopyright~(C)~2004- 2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C/>8$-%1homalg/tablenameG6%9!&9 "6#!""8%@$-%%typeG6$FD%*procedureG-%'RETURNG6#-FD6#&FJ6#;""",&FLFenFMFL@$2,&""( FenFMFen9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FJ6#;"")FfnFD@%-%)assignedG6#&F] o6#Q3Hqn_embedding_infoFA>8'F\p>F`p-%;homalg/EmbedInFactorModuleG6$9$FD@%-Fjo6# &F]o6#Q5Hsn_1_embedding_infoFA>8(Fip>F]q-Fcp6$9)FD@$-Fjo6#&F]o6#Q*Hsn_1_epiFA>8 )Feq@%-Fjo6#&F]o6#Q%Zn_1FA>8*F]r>Far%%NULLG@%-Fjo6#&F]o6#Q&Zsn_1FA>8+-%4homalg/ SumRelationsG6&Fgr9'9*FD>F[sF_s@%-Fjo6#&F]o6#Q(Cqn_BqnFA>8,Fes>FisFcr>8--%0homa lg/PreimageG6'F`p9%FisF`sFD>8.-%9homalg/ImageOfSubmoduleFG6&F\t9&F`sFD>8/-F^t6' Fbt9(FarF`sFD@%Fcq-%3homalg/ComposeMapsG6'FhtFiqFaqF`sFD-%:homalg/ReduceHomomor phismG6&-F^t6'FhtF]qF[sF`sFDFaqF`sFDFAFAFAFA, Q7homalg/ConnectingHom.mFA M7R0 I5homalg/Functor_Ext_Rf*6#%"qG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All ~rights~reserved.G%'systemG%)rememberGF&7$f*6#%"MGF&F&F&-%-homalg/Ext_RG6%T$9$& 9"6#;""#!""F&F&6$F%F3f*6%F.%$phiG%"NGF&F&F&-%0homalg/ExtMap_RG6'F2F39%9&&F56#;" "%F9F&F&F:F&F&F&F&, Q7homalg/Functor_Ext_R.mF& M7R0 I6homalg/FunctorOnSeqsFf*6&%)_functorG'%&alphaG<$%&tableG%%listG%%_varG%,RingPa ckageG6-%#RPG%$narG%(functorG%$varG%#aiG%"mG%"jG%$seqG%$tblG%"rG%"iG6%%fnCopyri ght~(C)~2005~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C-> 8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F@%*procedureG-%'RETURNG6#-F@6# &FF6#;""",&FHFWFIFH@%-FL6$9$F*@%2""!-%%nopsG6#Ffn>8&&Ffn6#FW-%&ERRORG6#%enThe~f irst~argument~providing~the~functor~is~an~empty~list!G>F^oFfn>8'&FF6#FX>8(-F)F= @%-FL6$9%F*>&F[pF`o7#-%"$G6#;FW-F[o6#F`p>Fbp-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-% %evalGFip>8)-F[o6#Fbp?&8*7#-Fep6#;""#,(9#FW!"#FWFIFH%%trueGC$@%-FL6$&FF6#,&FWFW F\rFWF*>&F[p6#F\r7#-Fep6#;FW-F[o6#Fjr>F^s-F\q6#-F_q6$Faq-Fcq6#-FfqFes@%/-%%irem G6$F\rFarFW@$0Fhq-F[o6#F^s-Fbo6%%BThe~first~and~the~argument~numberGF\r%Chave~d ifferent~numbers~of~entries!G@$0,&FhqFWFWFWFet-Fbo6%%4The~argument~numberGF\r%R must~have~one~entry~more~than~the~first~argument!G>8+F\p?&F\r7#-Fep6#;FWFbrFerC &>8,F\p>8-F`t?&8.7#-Fep6#;FW,(FhqFWFWFWF]vFHFer>&F[v6#,&&F^s6#F_vFWF]vFH-F^o6%- %%copyG6#&Fjr6#FivFgoF@>&FcuF_s-F^w6#F[v-Fcq6#-F_q6$F^w-F_q6$f*6#%"aGF=6$%)oper atorG%&arrowGF=&T#F\oF=F=6$F5FcuFeuF=F=F=F=, Q8homalg/FunctorOnSeqsF.mF= M7R0 I5homalg/FunctorOnSeqsf*6&%(functorG'%&alphaG<$%&tableG%%listG%%_varG%,RingPack ageG6.%#RPG%$narG%$varG%#aiG%"mG%"jG%"kG%%seqsG%$resG%0functor_on_mapsG%$tblG%" iG6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)r ememberG6"C0>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FA%*procedureG-%'R ETURNG6#-FA6#&FG6#;""",&FIFXFJFI@$29#,&""%FXFJFX-FQ6#-%5homalg/FunctorOnSeqFG6$ &9$6#;""$FI&FG6#;""#FI>8&&FG6#FY>8'-F)F>@%-FM6$9%F*>&F\p6#FX7#-%"$G6#;FX-%%nops G6#Fap>Fcp-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGF\q>8(-F[q6#Fcp?&8)7#-Fgp6#; Ffo,(FfnFX!"#FXFJFI%%trueGC%@%-FM6$&FG6#,&F_rFXFXFXF*>&F\p6#F_r7#-Fgp6#;FX-F[q6 #F[s>F_s-F_q6#-Fbq6$Fdq-Ffq6#-FiqFfs@$3/F_rFfo4-FM6$-%%copyG6#&&FG6#Fbo6#&&F\p6 #FfoFdp%4homalg_presentationG-FQ6#-%6homalg/FunctorOnSeqsFGF]o@%/-%%iremG6$F_rF boFX@$0F[r-F[q6#F_s-%&ERRORG6%%BThe~first~and~the~argument~numberGF_r%Chave~dif ferent~numbers~of~entries!G@$0,&F[rFXFXFXF[v-F^v6%%4The~argument~numberGF_r%Rmu st~have~one~entry~more~than~the~first~argument!G@$0-Fgu6$FdrFboFfo-F^v6#%jnThe~ number~of~input~tables/lists~should~be~congruent~to~2~mod~3G>8+F]p?&8*7#-Fgp6#; ""!-%%iquoGF\wFfrC%>8,-%4homalg/FunctorOnSeqG6'F_o-Fft6#&FG6#,&FfoFXFcwFbo-Fft6 #&FG6#,&FboFXFcwFboFhoFA>&Faw6#,&FcwFboFXFX-Fft6#&F]xFdp>&FawFdx-Fft6#&F]xF^u>8 -&F_oF^u?&Fcw7#-Fgp6#;FXFiwFfrC%>8.F]p?&8/7#-Fgp6#;FXFdvFfr>&Faz6#&&F\p6#,$FcwF bo6#Fcz-Fhy6'-Fft6#&&FGF][l6#&&F\p6#,&FcwFboFIFXF_[l-Fft6#&&FGF]yFjz-Fft6#&Fhx6 #&&F\pFdxF_[lFhoFA>&FawF][l-Fft6#Faz-Ffq6#-Fbq6$Fft-Fbq6$f*6#%"aGF>6$%)operator G%&arrowGF>&T#6#F_oF>F>6$F5Faw7#-Fgp6#;FXFdrF>F>F>F>, Q7homalg/FunctorOnSeqs.mF> M7R0 I-homalg/Hom_Rf*6%%#_MG'%$varG%%listG%,RingPackageG6+%#RPG%$narG%%optsG%4readju st_generatorsG%)optionalG%"MG%"TG%$kerG%$embG6%%[oCopyright~(C)~2003-2007~by~Mo hamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C->8$-%1homalg/tablen ameG6%9!&9"6#!""8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDF C@$-FG6$&FA6#FR%'stringGC$@(/FWQ;RETURN_morphism_on_objectsF8-FK6#f*6#%$phiGF86 $%)operatorG%&arrowGF8-%2homalg/InvolutionG6%9$T$T%F8F86&F'9%F+F;/FWQCRETURN_pr oc_to_readjust_generatorsF8-FK6#f*6#%"aGF8F]oF8-Fao6%7#FcoFdoFeoF8F8Ffo/FWQ1RET URN_co_contraF8-FK6#Q.contravariantF8-FK6#%%NULLG@$2,&""#FRFDFR9#>8&-%%copyG6#- %2homalg/GetOptionsG6$&FA6#;""$FSF;@$4-%)assignedG6#&F`q6#Q<pos_of_NORMALIZE_GE NERATORSF8>8'f*F]pF8F]oF8F_pF8F8Ffo>8(Fgq>8)-%6homalg/NormalizeInputG6$FcoF;>8* -Fao6%FirFgoF;>8+-%/homalg/KernelFG6%F^sFgoF;@$-F^r6#&F`q6#QCvar_to_assign_embe dding_generatorsF8C$>8,-%@homalg/GeneratorsOfPresentationG6$FbsF;-%'assignG6$Fi sF^t@%-F^r6#Fdr-%9homalg/ConvertGeneratorsG6&FbsFdrFgrF;FbsF8F8F8F8, Q/homalg/Hom_R.mF8 M7R0 I3homalg/IdentityMapf*6%%"MG'%$varG%%listG%,RingPackageG6$%#RPG%$narG6#%fnCopyr ight~(C)~2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-%1homalg/tablena meG6%9!&9"6#!""8%@$-%%typeG6$F2%*procedureG-%'RETURNG6#-F26#&F86#;""",&F:FIF;F: -&F26#%'matrixG6#-%7homalg/StdBasisVectorsG6$9$F2F/F/F/F/, Q5homalg/IdentityMap.mF/ M7R0 I0homalg/ImageEpif*6&%"AG%"NG%$varG%,RingPackageG6)%#RPG%$narG%%optsG%)optional G%#imG%5image_embedding_infoG%$epiG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~ All~rights~reserved.G%'systemG%)rememberG6"C,>8$-%1homalg/tablenameG6%9!&9"6#!" "8%@$-%%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@@%2,&""#FOFAFO 9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F>6#;""$FPF8>&FW6#Q2number_of_optionsF5" "!@$2,&FUFOF]oF@,&F[oFOFAFO-FH6#-%1homalg/ImageFEpiG6#F>>8'&F>6#;""%FP>8(-%-hom alg/ImageG6(9$9%9&/Q=var_to_assign_embedding_infoF5.8)F[pF8/Q5image_embedding_i nfoF5-FY6#F[q@$-%)assignedG6#&FW6#Q@var_to_assign_functor_on_objectF5-%'assignG 6$FdqFap>8*-%3homalg/RightDivideG6'FepF[qFfpFgpF8-%:homalg/ReduceHomomorphismG6 &F[rFapFgpF8F5F5F5F5, Q2homalg/ImageEpi.mF5 M7R0 I1homalg/ImageFEmbf*6%%#_AG'%$varG%%listG%,RingPackageG6)%#RPG%$narG%%optsG%)op tionalG%"AG%#imG%5image_embedding_infoG6%%fnCopyright~(C)~2007~by~Mohamed~Barak at.~All~rights~reserved.G%'systemG%)rememberG6"C*>8$-%1homalg/tablenameG6%9!&9" 6#!""8%@$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@$2,&""#FP FBFP9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F?6#;""$FQF9>8'Fin>8(-%6homalg/Norma lizeInputG6$9$F9>8)-%.homalg/ImageFG6'F`o9%/Q=var_to_assign_embedding_infoF6.8* F^oF9@$-%)assignedG6#&FX6#Q@var_to_assign_functor_on_objectF6-%'assignG6$FcpFfo -FZ6#F^pF6F6F6F6, Q3homalg/ImageFEmb.mF6 M7R0 I1homalg/IsZeroMapf*6&%#_AG%#_NG%$varG%,RingPackageG6(%#RPG%$narG%%optsG%"AG%"N G%$redG6%%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~rights~reserved.G%' systemG%)rememberG6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*proc edureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?@%2,&""#FNF@FN9#>8&-%%copyG6#-%2homal g/GetOptionsG6$&F=6#;""$FOF7>&FV6#Q2number_of_optionsF4""!@$2,&FTFNF\oF?,&FjnFN F@FN-FG6#-%2homalg/IsZeroMapFG6#F=>8'-%6homalg/NormalizeInputG6$9$F7>8(-F\p6%9% 9&F7>F`p-%5homalg/BasisOfModuleG6%F`pFdpF7>8)-%.homalg/ReduceG6&FjoF`pFdpF7@'/- %3homalg/BetterBasisG6&FjpFdpQ3ALLOW_EMPTY_OUTPUTF4F77"%%trueG-%)assignedG6#&FV 6#Q/pos_of_VERBOSEF4Fjp%&falseGF4F4F4F4, Q3homalg/IsZeroMap.mF4 M7R0 I3homalg/LastNonZerof*6#'%"LG%%listG6'%#RPG%$narG%"lG%"zG%"iG6#%fnCopyright~(C) ~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8$-%1homalg/tablenameG6%9!& 9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F96#;""",&F;FJF<F;@%32,&FJ FJF<FJ9#-F?6$&F96#""#%'posintG>8&FS>FX-%%nopsG6#9$>8'-&F36#%%ZeroGF0?&8(7#-%"$G 6#;FJFX%%trueG@$0&Fgn6#,$F_oF;Fin-FC6#,(FXFJFJFJF_oF;""!F0F0F0F0, Q5homalg/LastNonZero.mF0 M7R0 I=homalg/NatIsoKerOfSqToImOfSqf*6-%'alpha1G%"AG%'alpha2G%#_AG%$phiG%&beta1G%"BG %&beta2G%#_BG'%$varG%%listG%,RingPackageG6'%#RPG%$narG%&KerSqG%%ImSqG%(ia1CphiG 6#%[oCopyright~(C)~2003-2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-% 1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F=%*procedureG-%'RETURNG6#-F=6#&FC6 #;""",&FEFTFFFE-%.homalg/LambekG6#FCF:F:F:F:, Q?homalg/NatIsoKerOfSqToImOfSq.mF: M7R0 IAhomalg/NatTrTorsionSubmoduleToIdf*6%%"MG%$varG%,RingPackageG6$%#RPG%$narG6%%[ oCopyright~(C)~2003-2004~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)re memberG6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F2%*procedureG-%'RE TURNG6#-F26#&F86#;""",&F:FIF;F:-%;homalg/TorsionSubmoduleEmbG6#F8F/F/F/F/, QChomalg/NatTrTorsionSubmoduleToId.mF/ M7R0 I7homalg/OriginalElementf*6&%#_BG'%"LG<$%%listG%4homalg_presentationG%$varG%,Ri ngPackageG6*%#RPG%$narG%"AG%"mG%/SINGLE_ELEMENTG%"BG%.convert_procsG%$elmG6#%fn Copyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C/>8$-%1homalg/ta blenameG6%9!&9"6#!""8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCF RFDFC@%-FG6$9%F*>8&-%@homalg/GeneratorsOfPresentationG6$FWF;>FYFW>8'-%%nopsG6#F Y>8(%&falseG@'4-FG6$9$<$F)&F;6#%+matrixtypeG@%/FinFR>8)7#7#Fdo-%&ERRORG6#%apThe ~second~argument~has~more~the~one~'row'~while~the~first~argument~is~a~ring~elem ent!G34-FG6$Fdo<$%)listlistGFfo-FG6$FdoF)@%Fjo>F\p-%$mapG6$f*6#%"aGF86$%)operat orG%&arrowGF8F^pF8F8F8FdoC$>F^o%%trueG>F\pF^p>F\p-%6homalg/NormalizeInputG6$Fdo F;@$FUC$>F\p-%.homalg/ReduceG6&F\p-F\rFfn9&F;>F\p-F\r6$F\pF;>8*-%6homalg/GetCon vertInfoG6%FYFerF;>8+-%9homalg/ConvertGeneratorsG6%FY&Fjr6#Q5normalize_generato rsF8F;>F_s-F\r6$-%/homalg/ComposeG6&F\pF_sFerF;F;>F_s-Fas6%F_s&Fjr6#Q4readjust_ generatorsF8F;@$-FG6$F_sFfo>F_s-%(convertG6$F_sFhp@%F^o&F_s6#FRF_sF8F8F8F8, Q9homalg/OriginalElement.mF8 M7R0 I3homalg/RankOfGaussf*6#%#_MG6(%#RPG%$narG%"MG%#nrG%"zG%"rG6#%fnCopyright~(C)~2 004~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$-%1homalg/tablenameG6%9!&9" 6#!""8%@$-%%typeG6$F2%*procedureG-%'RETURNG6#-F26#&F86#;""",&F:FIF;F:>8&-%6homa lg/NormalizeInputG6$9$F2>8'-&F26#%-NumberOfRowsG6#FL>8(-&F26#%%ZeroG6#-&F26#%3N umberOfGeneratorsGFW?&8)7#-%"$G6#;FIFR%%trueG@$/&FL6#F^oFY-FB6#,&F^oFIF:FIFRF/F /F/F/, Q5homalg/RankOfGauss.mF/ M7R0 I<homalg/ReducedBasisOfModulef*6%%#_MG'%$varG%%listG%,RingPackageG64%#RPG%$narG %%optsG%.COMPUTE_BASISG%0RETURN_SYZYGIESG%2ALLOW_EMPTY_BASISG%1NO_RING_NOTATION G%)ring_relG%"MG%"mG%"nG%(col_posG%(row_posG%(entriesG%(red_entG%%zeroG%"SG%)un it_posG6%%[oCopyright~(C)~2006-2007~by~Mohamed~Barakat.~All~rights~reserved.G%' systemG%)rememberG6"C3>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FD%*proc edureG-%'RETURNG6#-FD6#&FJ6#;""",&FLFenFMFL@$2,&""#FenFMFen9#>8&-%%copyG6#-%2ho malg/GetOptionsG6$&FJ6#;""$FfnFD@%-%)assignedG6#&F]o6#Q5pos_of_COMPUTE_BASISFA> 8'%%trueG>F`p%&falseG@%-Fjo6#&F]o6#Q7pos_of_RETURN_SYZYGIESFA>8(Fap>F[qFcp@%-Fj o6#&F]o6#Q9pos_of_ALLOW_EMPTY_BASISFA>8)Fap>FdqFcp@%-Fjo6#&F]o6#Q8pos_of_NO_RIN G_NOTATIONFA>8*Fap>F]rFcp>8+&-%5homalg/NormalizeRingG6$9%FD6#Fjn@%F`pC$>8,-%5ho malg/BasisOfModuleG6%9$FerFD>Fjr-%6homalg/NormalizeInputG6%FjrFerFD>Fjr-Fas6$F^ sFD>8--&FD6#%3NumberOfGeneratorsG6#Fjr>8.-&FD6#%-NumberOfRowsGF\t@$0F`r7"C%>8/- %$mapG6%%5homalg/SingleNonZeroGFjrFD>80-Fjt6$f*6#%"aGFA6$%)operatorG%&arrowGFA@ $0&T#6#F^s""!F^sFAFA6$F6Fht7#-%"$G6#;FenF^t@$0F^uFetC'>81-Fjt6$f*FbuFAFduFA&Fiu 6#&T%F[vFAFA6&F3FjrF6FhtF^u>82&-%:homalg/ReduceRingElementsG6%7#FgvFerFD6#Fen>8 3-&FD6#%%ZeroGFA>F^u-Fjt6$f*FbuFAFduFA@$/F]wFju&T'F[vFAFA6(F:FiwF9FawF7F^u7#-F` v6#;Fen-%%nopsG6#F^u@&/F^uF^v@%Fdq@%F[q-FT6$FetFet-FT6#FetC$@%F]r>Fjr7#-F[x6#Fg s>Fjr-%4homalg/RingNotationG6$FiyFD@%F[q-FT6$-%:homalg/SyzygiesGeneratorsG6&Fjr FetFerFDFjr-FTF\tFdv>Fjr-%'subsopG6$-%#opG6#-Fjt6$f*FbuFAFduFA/F^s%%NULLGFAFAFA F^uFjr@$3/FgsFen-Fjo6#&FD6#%4MinimalBasisOfIdealGC$>Fjr-Fh[l6$FjrFer>Fjr-Fas6$F jrFD>84Fcz@$0Fc\lFetC&>85-%Chomalg/GetIndependentUnitPositionsG6&Fc\lFetFerFD>F h\l-Fjt6$f*FbuFAFduFA&F^sFfrFAFAFAFh\l>F^tF_t@$/-%(convertG6$Fh\l%$setG<#F_v@%F dq@%F[qFbyFdyC$@%F]r>FjrFiy>FjrF]z@%F[qFazFfz?(FAFenFenFA3Fe\l0Fh\lFetC%>Fjr-Fi z6$-F\[l6#-Fjt6$f*FbuFAFduFAFa[lFAFAFAFh\lFjr>Fc\lFcz@$Fe\lC&>Fh\lFi\l>Fh\l-Fjt 6$f*FbuFAFduFAF`]lFAFAFAFh\l>F^tF_t@$/Fh\lF^v@%Fdq@%F[qFbyFdyC$@%F]r>FjrFiy>Fjr F]z@%F[qFazFfz@%F]r@%F[q6$Fc\lFjrFjr@%F[q6$Fc\l-F^zFa\lFc`lFAFAFAFA, Q>homalg/ReducedBasisOfModule.mFA M7R0 I.homalg/ResDimf*6$'%$resG%%listG%,RingPackageG6$%#RPG%$narG6#%[oCopyright~(C)~ 2003-2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-%1homalg/tablenameG6 %9!&9"6#!""8%@$-%%typeG6$F1%*procedureG-%'RETURNG6#-F16#&F76#;""",&F9FHF:F97$-% #opG6#-%$mapG6$&F16#%-NumberOfRowsG9$-&F16#%3NumberOfGeneratorsG6#&FTF8F.F.F.F., Q0homalg/ResDim.mF. M7R0 I1homalg/TorOnSeqsf*6'%"qG%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6% %#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~res erved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6 $F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%3homalg/Functor_TorG6$9 $9%-%5homalg/FunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q3homalg/TorOnSeqs.mF6 M7R0 I/homalg/ZeroMapf*6&%#_MG%#_NG'%$varG%%listG%,RingPackageG6)%#RPG%$narG%"MG%"NG %"mG%"nG%%zeroG6#%[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~rese rved.G6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F8%*procedureG-%'RET URNG6#-F86#&F>6#;""",&F@FOFAF@@%-FD6$9$%(integerGC$>8(FT>8)9%C&>8&-%6homalg/Nor malizeInputG6$FTF8>8'-Fjn6$FenF8>FX-&F86#%3NumberOfGeneratorsG6#Fhn>FZ-Fbo6#F]o @%2,&""$FOFAFO9#>8*&F>6#""%>F_p-&F86#%%ZeroGF5-&F86#%'matrixG6#7#-%"$G6$7#-F_q6 $F_pFZFXF5F5F5F5, Q1homalg/ZeroMap.mF5 M7R0 I8homalg/AreEqualMatricesf*6&%"AG%"BG'%$varG%%listG%,RingPackageG6$%#RPG%$narG6 %%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)reme mberG6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETU RNG6#-F56#&F;6#;""",&F=FLF>F=-%2homalg/IsZeroMapFG6%-%.homalg/SubMatG6&9$9%9&F5 FVF5F2F2F2F2, Q:homalg/AreEqualMatrices.mF2 M7R0 IChomalg/AModuleForATwoExtension.oldf*6&%*_ext_homsG%-_ext_modulesG%%_varG%,Rin gPackageG64%#RPG%$narG%%optsG%$varG%$extG%)ext_homsG%,ext_modulesG%"FG%&etaMNG% &etaNLG%"MG%"NG%"LG%"DG%"AG%"BG%"CG%&etaMLG6#%enCopyright~(C)~2007~by~Barbara~B remer.~All~rights~reserved.G6"C2>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG 6$FA%*procedureG-%'RETURNG6#-FA6#&FG6#;""",&FIFXFJFI@%-FM6$&FG6#FY%%listG>8'Fgn -%&ERRORG6#%-Wrong~input!G@%2,&""$FXFJFX9#C%>8(-%:homalg/NormalizeExtensionG6$& FG6#;FX,&!"#FXFJFIF[o>8)-%%copyG6#&Fgo6#FX>8*-Fcp6#&Fgo6#""#C$>Fap-Fcp6#9$>Fhp- Fcp6#9%>8+-%:homalg/FactorizeExtensionG6&FapFhpF[oFA>8,-%6homalg/NormalizeInput G6$-%:homalg/CocycleOfExtensionG6%-%#opG6#&FhqF\qF[oFAFA>8--F_r6$-Fbr6%-Fer6#&F hqFfpF[oFAFA>80-F_r6$&-%:homalg/ResolutionOfModuleG6&&F`sFfpF[o/Q)TRUNCATEF>""! FAFfpFA>8/-F_r6$&-Fgs6&&FgrFfpF[oFjsFAFfpFA>8.-F_r6$&-Fgs6&&Fgr6#""&F[oFjsFAFfp FA>81-Fcp6#&-%4homalg/SyzygiesDataG6&F]qFftF[oFAF\q>82-&FA6#%,UnionOfRowsG6$F^t -%/homalg/ZeroMapG6&-%2homalg/FreeModuleG6%,(-&FA6#%-NumberOfRowsG6#FirFX-Ffv6# FbsFX-Ffv6#F^tFIF[oFA-Fbv6%-&FA6#%3NumberOfGeneratorsGF]wF[oFAF[oFA>83-%/homalg /ComposeG6&F`uF]rF[oFA>84-Fju6$FirFbs>85-%Chomalg/SolveSystemWithConstraintsCG6 (FhuFewFjwF`uF[oFA@%/F^x%%FAILGFdx-%:homalg/ReduceHomomorphismG6&F^xFbsF[oFAF>F >F>F>, QEhomalg/AModuleForATwoExtension.old.mF> M7R0 I3homalg/BetterBasisf*6%%#_MG%$varG%,RingPackageG60%#RPG%$narG%%optsG%2ALLOW_EM PTY_BASISG%)ring_relG%"MG%"mG%"nG%"zG%(col_posG%(row_posG%(entriesG%(red_entG%% zeroG6#%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C1 >8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6 #&FB6#;""",&FDFSFEFD@$2,&""#FSFEFS9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FB6#;" "$FTF<@%5-%)assignedG6#&Fen6#Q9pos_of_ALLOW_EMPTY_BASISF9-Fco6#&Fen6#Q:pos_of_A LLOW_EMPTY_OUTPUTF9>8'%%trueG>F^p%&falseG>8(&-%5homalg/NormalizeRingG6$9%F<6#FX >8)-%6homalg/NormalizeInputG6$9$F<>8*-&F<6#%3NumberOfGeneratorsG6#F[q>8+-&F<6#% -NumberOfRowsGFfq@$/F[q7"-FL6#F_r@$-Fco6#&F<6#%.SimplifyBasisG>F[q-Fer6$F[qFhp> 8,-&F<6#%%ZeroG6#Faq>F[q-%$mapG6$f*6#%"aGF96$%)operatorG%&arrowGF9@$0-Fds6%&T#6 #%)simplifyGF_qT&T'F_qF9F96(F)F<F&FhpF1F\sF[q@$F^r@%F^pF`r-FL6#7#F\s@$0FcpF_rC& >FhqFiq>8--Fds6%%5homalg/SingleNonZeroGF[qF<>8.-Fds6$f*FgsF9FisF9@$0&Fat6#F_q"" !F_qF9F96$F2Fau7#-%"$G6#;FSFhq@$0FfuF_rC'>8/-Fds6$f*FgsF9FisF9&F\v6#&T%F]vF9F96 &F.F[qF2FauFfu>80&-%:homalg/ReduceRingElementsG6%7#FivFhpF<6#FS>81-F^sF9>Ffu-Fd s6$f*FgsF9FisF9@$/F_wFat&FetF]vF9F96(F6F[xF5FcwF3Ffu7#-Fbv6#;FS-%%nopsG6#Ffu@&/ FfuF`v@%F^pF`r-FL6#7#F]sFfv>F[q-%'subsopG6$-%#opG6#-Fds6$f*FgsF9FisF9/F_q%%NULL GF9F9F9FfuF[qF[qF9F9F9F9, Q5homalg/BetterBasis.mF9 M7R0 I8homalg/CheckCompositionf*6'%"AG%"BG%"NG%$varG%,RingPackageG6$%#RPG%$narG6#%fn Copyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-%1homalg/ta blenameG6%9!&9"6#!""8%@$-%%typeG6$F2%*procedureG-%'RETURNG6#-F26#&F86#;""",&F:F IF;F:-%0homalg/CheckHomG6#F8F/F/F/F/, Q:homalg/CheckComposition.mF/ M7R0 I;homalg/EulerCharacteristicf*6%%"MG%$varG%,RingPackageG6'%#RPG%$narG%$resG%$di mG%"kG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$- %1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F9 6#;""",&F;FJF<F;>8&-%:homalg/ResolutionOfModuleG6%9$9%F3>8'-%.homalg/ResDimG6$F MF3-%$sumG6$*&)F;8(FJ&FT6#,&FgnF;F;FJFJ/Fgn;""!,&-%%nopsG6#FTFJF;FJF0F0F0F0, Q=homalg/EulerCharacteristic.mF0 M7R0 I:homalg/FactorizeExtensionf*6&%&_homsG%)_modulesG%%_varG%,RingPackageG60%#RPG% $narG%$varG%$extG%%homsG%(modulesG%"nG%(factorsG%$kerG%$_piG%"iG%#imG%#piG%%iot aG6#%enCopyright~(C)~2007~by~Barbara~Bremer.~All~rights~reserved.G6"C->8$-%1hom alg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F=%*procedureG-%'RETURNG6#-F=6#&FC6#;"" ",&FEFTFFFE@%-FI6$&FC6#FU%%listG>8&FY-%&ERRORG6#%-Wrong~input!G@'2,&""$FTFFFT9# C%>8'-%:homalg/NormalizeExtensionG6$&FC6#;FT,&!"#FTFFFEFgn>8(-%%copyG6#&Fco6#FT >8)-F_p6#&Fco6#""#3-FI6$9$%&tableG-FI6$9%F^qC$>F]p-F_p6#F]q>Fdp-F_p6#FaqFhn>8*- %%nopsG6#7#-%(indicesG6#F]p>8+7#-%"$G6$""!,&FjqFTFEFT>8,&FdpFD>8-&F]p6#Fhr?(8.F hrFT,&FjqFT!"$FT%%trueGC'>8/-F_p6#F[s>80-F_p6#F^s>F[s-%-homalg/ImageG6'-F_p6#&F ]p6#,&FbsFTFTFT&Fdp6#FbsFgn/Q=var_to_assign_embedding_infoF:.81F=>F^s-%0homalg/ ImageEpiG6&FctFhtFgnF=>&Fcr6#,(FjqFTFEFTFbsFE7'Fis-F_p6#F]u-F_p6#Fht-F_p6#F\t-F _p6#Fhs>&FcrFbp7'-F_p6#&Fdp6#Fir-F_p6#&F]pFev-F_p6#&Fdp6#,&FjqFTF[pFTF]tFis-FM6 #-%#opG6#FcrF:F:F:F:, Q<homalg/FactorizeExtension.mF: M7R0 I1homalg/Hom_R.oldf*6%%#_MG'%$varG%%listG%,RingPackageG6*%#RPG%$narG%%optsG%4re adjust_generatorsG%)optionalG%"MG%"TG%$kerG6%%[oCopyright~(C)~2003-2007~by~Moha med~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C,>8$-%1homalg/tablenam eG6%9!&9"6#!""8%@$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB@ $-FF6$&F@6#FQ%'stringGC$@,/FVQCRETURN_ignore_embedding_generatorsF7-FJ6#%%trueG /FVQ;RETURN_morphism_on_objectsF7-FJ6#f*6#%$phiGF76$%)operatorG%&arrowGF7f*6#%" aGF7FaoF7-%$mapG6$f*6#%"bGF7FaoF7-%/homalg/ComposeG6&T$9$T&T'F7F76(F`oF`pF'FbpF +FcpFapF7F76(F`oFapF'F`pF+T%F7F76&F'9%F+F:/FVQDRETURN_proc_to_normalize_generat orsF7-FJ6#f*FeoF7FaoF7-%#opG6#-%6homalg/NormalizeInputG6$-%2homalg/InvolutionG6 %FapF`pFfpFfpF7F7Fgp/FVQCRETURN_proc_to_readjust_generatorsF7-FJ6#f*FeoF7FaoF7- Feq6%7#FapF`pFfpF7F7Fgp/FVQ1RETURN_co_contraF7-FJ6#Q.contravariantF7-FJ6#%%NULL G@$2,&""#FQFCFQ9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F@6#;""$FRF:@$4-%)assigne dG6#&F]s6#Q<pos_of_NORMALIZE_GENERATORSF7>8'f*FeoF7FaoF7F\rF7F7Fgp>8(Fds>8)-Fbq 6$FapF:>8*-Feq6%FftFhpF:>8+-%/homalg/KernelFG6%FjtFhpF:@%-F[t6#Fat-%9homalg/Con vertGeneratorsG6&F^uFatFdtF:F^uF7F7F7F7, Q3homalg/Hom_R.old.mF7 M7R0 IChomalg/InjectivePresentationIsoFFRf*6%%#_PG%$varG%,RingPackageG6(%#RPG%$narG% "PG%"nG%"pG%$epiG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserve d.G6"C)>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURN G6#-F46#&F:6#;""",&F<FKF=F<>8&-%6homalg/NormalizeInputG6$9$F4>8'-&F46#%3NumberO fGeneratorsG6$FNF4>8(-%@homalg/InjectivePresentationFFRG6%FN9%F4@$/Fen%%FAILG-F D6#F\o-&F46#%'matrixG6#-&F46#%,CertainRowsG6$-%7homalg/StdBasisVectorsG6$FenF47 #-%"$G6#;FKFTF1F1F1F1, QEhomalg/InjectivePresentationIsoFFR.mF1 M7R0 I@homalg/IntersectionMultiplicityf*6&%#R1G%#R2G'%$varG%%listG%,RingPackageG6*%# RPG%$narG%"nG%"TG%'lambdaG%"iG%"kG%"hG6%%fnCopyright~(C)~2007~by~Mohamed~Baraka t.~All~rights~reserved.G%'systemG%)rememberG6"C*>8$-%1homalg/tablenameG6%9!&9"6 #!""8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC>8&-%1homal g/GlobalDimG6$9&F;>8'-%5homalg/TensorProductG6&9$9%FYF;@'-FG6$&Fen6#""%%*nonneg intG%%trueG/-%%nopsG6#-%'indetsG6#F^oFR>8(-%#opGFfo-%&ERRORG6$%gqThe~fourth~lis t~entry~of~the~homalg~presentation~of~the~tensor~product~does~not~seem~to~be~a~ Hilbert~series:GF^o>8)-%%evalG6$F^o/F[pFR?&8*7#-%"$G6#;FRFUFboC&-%+homalg/TorG6 'FipFinFjnFYF;>8+&%"%GF_o@$4-%)assignedG6#F[p@%/-Feo6#-Fho6#FdqFR>F[p-F]pF_rF^p >Fcp,&FcpFR*&)FCFipFR-Fep6$FdqFgpFRFRFcpF8F8F8F8, QBhomalg/IntersectionMultiplicity.mF8 M7R0 I/homalg/KernelFf*6%%"AG'%$varG%%listG%,RingPackageG6%%#RPG%$narG%%iotaG6%%[oCo pyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)remem berG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETUR NG6#-F56#&F;6#;""",&F=FLF>F=@$-FA6$&F;6#FL%'stringGC$@$/FQQ1RETURN_co_contraF2- FE6#Q*covariantF2-FE6#%%NULLG>8&-%3homalg/SyzygiesOpFG6%9$9%F5-%7homalg/Subfact orModuleG6&Fin7"F^oF5F2F2F2F2, Q1homalg/KernelF.mF2 M7R0 I:homalg/LeftDerivedFunctorf*6''%"qG%*nonnegintG'%(functorG%%listG%"AG'%$varGF* %,RingPackageG69%#RPG%$narG%"pG%%optsG%4readjust_generatorsG%)optionalG%3functo r_on_objectsG%0functor_on_mapsG%$resG%%rdimG%$posG%(alpha_qG%)alpha_q1G%$Pq1G%% Pq_1G%#PqG%%F_stG%:FPq_normalized_generatorsG%)Falpha_qG%$FPqG%&FPq_1G%*Falpha_ q1G%#LFG6#%[oCopyright~(C)~2005-2006~by~Mohamed~Barakat.~All~rights~reserved.G6 "C8>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FL%*procedureG-%'RETURNG6#- FL6#&FR6#;""",&FTF]oFUFT@$-FX6$&FR6#""$%'stringGC$@*/FboQ?RETURN_proc_to_induce _morphismFI-Ffn6#f*6%%"MG%$phiG%"NG6#F8FIFIC$>FL-%%evalG6#-%7homalg/ResolutionO fSeqG6)T$9$9%9&T&Q)TRUNCATEFIT'6%&&FL6#""#6#Fjp-%%copyG6#&&FLFcoFfq&&FL6#""&Ffq FIFI6(F&F[qF-9'F0FL/FboQKRETURN_FunctorMap_of_the_functor_to_deriveFI-Ffn6#&F\q Fdq/FboQIRETURN_FunctorMaps_of_a_composed_functorFI-Ffn6#%%NULLG/FboQ;RETURN_mo rphism_on_objectsFIFir-Ffn6#-&F\q6#F]o6%FboFarFL?&8&7#-%"$G6#;F]o,&-%%nopsG6#F\ q#F]oFeqFTF]o%%trueG@$-FX6$&F\q6#,&F]oF]oFesFeqFeoC$@*/FdtFio-Ffn6#7#f*FIFapFIF IC$>FL-Fep6#-%5homalg/ResolveModuleG6'FjpF^qT(F_qT)FbqFIFI6*F&F[qF+F]qF-FarF0FL /FdtFcr-Ffn6#&F\q6#,&FeqF]oFesFeq/FdtFhrFir/FdtF]sFirF^s@$2,&""%F]oFUF]o9#>8'-F hq6#-%2homalg/GetOptionsG6$&FR6#;F_rF^oFL@$4-%)assignedG6#&Ffv6#Q<pos_of_NORMAL IZE_GENERATORSFI>8(-Fas6%QCRETURN_proc_to_readjust_generatorsFIFarFL>8)F\w>8*Fa s>8+Ffr>8,-%:homalg/ResolutionOfModuleG6&F]qFar/F_qF[qFL>8--%.homalg/ResDimG6$F cxFL@)2,&-F]t6#FixF]oFTF]oF[qC'>8.F[s@$-Fbw6#&Ffv6#QCvar_to_assign_embedding_ge neratorsFIC$>Fdy/&Ffv6#QJpos_of_var_to_assign_embedding_generatorsFIF[s-%'assig nG6$Fhy7#-&FL6#%%ZeroGFbs@$-Fbw6#&Ffv6#QBvar_to_assign_F_target_hullmoduleFIC$> Fdy6$Fdy/&Ffv6#QIpos_of_var_to_assign_F_target_hullmoduleFIF[s-Fbz6$F\[lFdz@$07 #Fdy7">F]x-%#opG6#-%'subsopG6$Fdy7#F]x-Ffn6#-F_x6&-%2homalg/ZeroModuleG6$FarFLF arF]xFL/F`y,&F[qF]oF]oF]oC%>8/&FcxFbs>807#-Ffz6#&FixFbs>81Fh\l/F[q""!C%>F_]l-&F L6#%'matrixG6#7#-Fhs6$Fez&FixFS>Fb]lF`]l>Fh]l-%2homalg/FreeModuleG6%&Fix6#!"#Fa rFLC%>F_]l&FcxFdq>Fb]lF`]l>Fh]l-Fi^l6%&Fix6#,&F[qFTF]_lF]oFarFL@%Fi]l>82Fh\l>Fj _l-Fi^l6%&Fix6#,$F[qFTFarFL>83-Fi^l6%&Fix6#,&F[qFTFTF]oFarFL>86-Fax6)Fb`lF_]lFj _lFar/Q3var_to_assign_F_stFI.84/QNvar_to_assign_F_source_unconverted_generators FI.85FL>87&F_alFbs>88&F_alFdq/Q:FPq_normalized_generatorsFIFcal>89-Fax6'Fh]lFb] lFb`lFarFL@$-Fbw6#Fcal>Feal-%9homalg/ReplaceGeneratorsG6%FealFcalFL>8:-%4homalg /DefectOfHomsG6)F]blFealFi`lFhalFarF]xFL@%3-Fbw6#Fhw4/FhwF[s-%9homalg/ConvertGe neratorsG6&FhblFhwF]xFLFhblFIFIFIFI, Q<homalg/LeftDerivedFunctor.mFI M7R0 I3homalg/LeftDivideCf*6'%#A_G%#B_G%"LG'%$varG%%listG%,RingPackageG60%#RPG%$narG %"AG%"BG%#b1G%#b2G%"aG%%I_b1G%%I_b2G%#ATG%#AaG%#BaG%#LaG%"XG6#%enCopyright~(C)~ 2008~by~Barbara~Bremer.~All~rights~reserved.G6"C3>8$-%1homalg/tablenameG6%9!&9" 6#!""8%@$-%%typeG6$F@%*procedureG-%'RETURNG6#-F@6#&FF6#;""",&FHFWFIFH>8&-%6homa lg/NormalizeInputG6$9$F@>8'-Ffn6$9%F@>8(-&F@6#%3NumberOfGeneratorsG6#Fjn>8)-&F@ 6#%-NumberOfRowsGFdo>8*-Fao6#FZ>8+-%3homalg/IdentityMapG6%F_o9'F@>8,-Fbp6%FfoFd pF@>8--%2homalg/InvolutionG6%FZFdpF@>8/7#7#-%#opG6#-%$mapG6$Fcq-Ffn6$FjnF@>8.-% 4homalg/KroneckerMatG6&FjpF`pFdpF@>80-F]r6&Ffp9&FdpF@>81-%3homalg/RightDivideG6 (F_qF[rF`rFdpQ)USE_FAILF=F@@$/Fer%%FAILG-FP6#F\s>Fer-Ffn6$FerF@-Ffq6$f*6#%"iGF= 6$%)operatorG%&arrowGF=&&T#6#FW6#;,&*&,&FhnFWFHFWFWT%FWFWFWFW*&FhnFWFctFWF=F=6& F:FerF1F_o7#-%"$G6#;FWF\pF=F=F=F=, Q5homalg/LeftDivideC.mF= M7R0 I2homalg/LeftDividef*6'%"AG%"BG%"LG%$varG%,RingPackageG6$%#RPG%$narG6#%[oCopyri ght~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$-%1homalg/tab lenameG6%9!&9"6#!""8%@$-%%typeG6$F2%*procedureG-%'RETURNG6#-F26#&F86#;""",&F:FI F;F:@$529#,&""%FIF;FI-F>6$&F86#FP%'symbolG-FB6#-%3homalg/LeftDivideFG6#F8@&-%4h omalg/IsZeroModuleG6%9&9'F2-FB6#-%/homalg/ZeroMapG6&9$9%FjnF20-%3homalg/BetterB asisG6&FinFjnQ3ALLOW_EMPTY_OUTPUTF/F27"-%&ERRORG6$%csUntil~now~LeftDivide~only~ expects~the~third~argument~to~indicate~a~free~module~given~by~a~basis,~i.e.~by~ trivial~relations,~but~recievedGFin-FYF_oF/F/F/F/, Q4homalg/LeftDivide.mF/ M7R0 I4homalg/LeftinverseCf*6'%#_MG%"pG%#_PG%$varG%,RingPackageG62%#RPG%$narG%%optsG %"MG%"PG%"bG%"cG%"dG%#PTG%#IbG%#IcG%#IdG%"BG%"AG%"LG%%iotaG6%%[oCopyright~(C)~2 006-2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C8>8$-% 1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FB%*procedureG-%'RETURNG6#-FB6#&FH6 #;""",&FJFYFKFJ@%2,&""#FYFKFY9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FH6#;""$FZF B>&F[o6#Q2number_of_optionsF?""!@$2,&FinFYFgoFJ,&FeoFYFKFY-FR6#-%4homalg/Leftin verseFG6#FH@$2F]p,&""%FYFKFY-FR6#-%3homalg/LeftinverseGFcp>8'-%6homalg/Normaliz eInputG6$9$FB>8(-F_q6$9&FB>8)-&FB6#%3NumberOfGeneratorsG6#F]q>8*-Fjq6#Fcq>8+-&F B6#%-NumberOfRowsGFar>8,-%2homalg/InvolutionG6%Fcq9'FB>8--%3homalg/IdentityMapG 6%FhqF]sFB>8.-Fas6%F_rF]sFB>8/-Fas6%FcrF]sFB>807#7$-%#opG6#-&FB6#%%ZeroG6#*&Fhq FYFcrFY-F`t6#-%$mapG6$F`t-%7homalg/StdBasisVectorsGFfs>81-&FB6#%/UnionOfColumns G6$-%4homalg/KroneckerMatG6&FirF_sF]sFB-Fgu6&Fds9%F]sFB>82-%/homalg/DiagMatG6%- Fgu6&FhsF]qF]sFB-Fgu6&FdsFcqF]sFBFB>83-%3homalg/RightDivideG6(F\tF`uF]vF]sQ)USE _FAILF?FB@$/Ffv%%FAILG-FR6#F]w>Ffv-F_q6$FfvFB>Ffv-F[u6$f*6#%"iGF?6$%)operatorG% &arrowGF?&&T#6#FY6#;,&*&,&FaqFYFJFYFYT%FYFYFYFY*&FaqFYFexFYF?F?6&F:FfvF0Fhq7#-% "$G6#;FYF_r-%:homalg/ReduceHomomorphismG6&FfvF]qF]sFBF?F?F?F?, Q6homalg/LeftinverseC.mF? M7R0 I2homalg/LHomOnSeqsf*6'%"qG%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6 %%#RPG%$narG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~ reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typ eG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%4homalg/Functor_LHom G6$9$9%-%7homalg/CofunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q4homalg/LHomOnSeqs.mF6 M7R0 I,homalg/LHomf*6''%"qG%*nonnegintG%"AG%"BG'%$varG%%listG%,RingPackageG6&%#RPG%$ narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights ~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%ty peG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""&FR>8'-%4homa lg/Functor_Hom2G6#9%-%:homalg/LeftDerivedFunctorG6(9$FZ9&9'FTF:F7F7F7F7, Q.homalg/LHom.mF7 M7R0 I7homalg/NatTrSourceToImf*6&%"AG%"NG%$varG%,RingPackageG6(%#RPG%$narG%%optsG%#i mG%5image_embedding_infoG%$epiG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~ rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@ $-%%typeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?@%2,&""#FNF@FN9#>8 &-%%copyG6#-%2homalg/GetOptionsG6$&F=6#;""$FOF7>&FV6#Q2number_of_optionsF4""!@$ 2,&FTFNF\oF?,&FjnFNF@FN-FG6#-%1homalg/ImageFEpiG6#F=-%0homalg/ImageEpiGFhoF4F4F 4F4, Q9homalg/NatTrSourceToIm.mF4 M7R0 I6homalg/NormalizeInputf*6$%"MG%,RingPackageG6,%#RPG%$narG%"rG%"nG%"zG%#M0G%#Ml G%#MrG%'RING_LG%'RING_RG6%%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~ reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typ eG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@$/9$7"-FI6#FU@$-FE6$FT%4 homalg_presentationG@%332,&FPFPFBFP9#-FE6$&F?6#""#%'stringG2""!-%+searchtextG6$ Q-presentationF6F^o-FI6#-F"6$-%$mapG6$%$rhsG&FT6#FP&F?6#;F`oFA-FI6#-F"6$&FTF_oF bp@1-FE6$FT&F96#%+matrixtypeGC$@$3Fin-FE6$F^o%'symbolG-%'assignG6$F^o%&falseG-% (convertG6$FT%)listlistG33-%)assignedG6#&F96#%.IsRingElementG-FE6$FT-%%listG6#< $FcoFir-Fcr6#F`pC$@$FbqFfq-F]p6$f*6#%"aGF66$%)operatorG%&arrowGF6@%-&T#Fdr6#FT7 #FTFTF6F66$F(F9FT-FEF\rC$@$FbqFfqFT-FE6$FT-Fir6#%"=GC&>8*-F"6%-F]p6$%$lhsGFT8,F 9>8+-F"6%-F]p6$F_pFT8-F9@$Fbq-Fgq6$F^o7$F_uFfu-%$zipG6%f*6$Fds%"bGF6FesF6/FT9%F 6F6F6FitFau3-%(hastypeG6$FTFft-FE6$FTFirC(?&8&FT%%trueG@$-FE6$F[wFftC$-F"6$7#-F _p6#F[wF9>8(-&F96#%%ZeroG6#-&F96#%3NumberOfGeneratorsG6#%"%G>8)-F]p6$f*FcsF6Fes F6@%-FEFfvFT/FTF[tF6F66$F,FgwFT>Fit-F"6%-F]p6$F^uFdxF_uF9>Fau-F"6%-F]p6$F_pFdxF fuF9@$FbqFhu-F\v6%f*F_vF6FesF6FavF6F6F6FitFau-FE6$FT-Fir6#F]qFTFgvC$@$Fbq-Fgq6$ F^oF\w-F]p6$f*FcsF6FesF6@%FgvFTF]tF6F6F6FT-%&ERRORG6%%CInput~expected~to~be~of~ type~|frlistGF]q%*listlist|hrGF6F6F6F6, Q8homalg/NormalizeInput.mF6 M7R0 I:homalg/PullbackPairOfMapsf*6)%#AAG%$phiG%#B_G%&beta1G%"BG%$varG%,RingPackageG 6+%#RPG%$narG%%optsG%"AG%"aG%$posG%)optionalG%#pbG%$embG6%%[oCopyright~(C)~2004 -2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C0>8$-%1ho malg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F=%*procedureG-%'RETURNG6#-F=6#&FC6#;" "",&FEFTFFFE@%2,&""$FTFFFT9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FC6#;""%FUF=>& Ffn6#Q2number_of_optionsF:""!@$2,&FZFTFboFE,&""'FTFFFT-FM6#-%;homalg/PullbackPa irOfMapsFG6#FC>8'-%6homalg/NormalizeInputG6$9$F=>8(-&F=6#%3NumberOfGeneratorsG6 #Fap>Ffn-Fhn6#-F[o6$&FC6#;""(FUF=>8)%%NULLG@$-%)assignedG6#&Ffn6#QGpos_of_var_t o_assign_functor_on_objectF:>Fgq6$Fgq/F]rFhq>8*-%#opG6#-%'subsopG6$Fgq7#Fbq>8+- %0homalg/PullbackG6*Fep9%9&9'9(9)FdrF=@$-F[r6#&Ffn6#Q@var_to_assign_functor_on_ objectF:-%'assignG6$FisF]s>8,-%;homalg/EmbedInFactorModuleG6$F]sF=6$-&F=6#%'mat rixG6#-&F=6#%/CertainColumnsG6$F`t7#;FTFgp-Fft6#-F[u6$F`t7#;,&FgpFTFTFTFEF:F:F: F:, Q<homalg/PullbackPairOfMaps.mF: M7R0 I0homalg/PushoutFf*6&%(_alpha1G%%_psiG%$varG%,RingPackageG6,%#RPG%$narG%%optsG% 'alpha1G%$psiG%*minus_oneG%$posG%)optionalG%+alpha1_psiG%$epiG6%%fnCopyright~(C )~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C->8$-%1h omalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#; """,&FCFRFDFC@$2,&""$FRFDFR9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FA6#;""%FSF;> 8'-%6homalg/NormalizeInputG6$9$F;>8(-Fbo6$9%F;>8*%%NULLG@$-%)assignedG6#&FZ6#QA pos_of_var_to_assign_CokernelEpiF8>F[p6$F[p/FapF\p@$-F_p6#&FZ6#QGpos_of_var_to_ assign_functor_on_objectF8>F[p6$F[p/FjpF\p>8+-%#opG6#-%'subsopG6$F[p7#F[o>8,-&F ;6#%/UnionOfColumnsG6$F`oFfo@%-F_p6#&FZ6#Q:var_to_assign_CokernelEpiF8C%>8--%4h omalg/CokernelFEpiG6'Fjq9&/Q@var_to_assign_functor_on_objectF8%#poGFaqF;-%'assi gnG6$Fcr-Ffn6#FhrF_s-%1homalg/CokernelFG6&FjqF\sFaqF;F8F8F8F8, Q2homalg/PushoutF.mF8 M7R0 I3homalg/RHomHom2Mapf*6*%"qG%"AG%"MG%$phiG%"NG%"BG'%$varG%%listG%,RingPackageG6 &%#RPG%$narG%)optionalG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~ All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!" "8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC>8&&FA6#;"")FS >8'f*6#F'F8F8F8-%/homalg/RHomHomG6'T$T&9$T(&FA6#;""#FCF8F86(F%F]oF&9%F*9)-%2hom alg/FunctorMapG6)Fen7#9&9'7#9(9*FUF;F8F8F8F8, Q5homalg/RHomHom2Map.mF8 M7R0 I/homalg/Tor2Mapf*6)'%"qG%*nonnegintG%"LG%"MG%$phiG%"NG'%$varG%%listG%,RingPack ageG6&%#RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Baraka t.~All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6 #!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSFEFD>8&&FB6#;"" (FT>8'f*6#F)F9F9F9-%+homalg/TorG6&T$T&9$&FB6#;""#FDF9F96&F&F^oF(9%-%2homalg/Fun ctorMapG6)Ffn7#9&9'7#9(9)FVF<F9F9F9F9, Q1homalg/Tor2Map.mF9 M7R0 I3homalg/compute_psif*6)%#_MG%&etaMNG%#_NG%&etaNLG%#_LG%$varG%,RingPackageG6)%# RPG%$narG%"LG%"MG%$syzG%"BG%"AG6#%ioCopyright~(C)~2008~by~Mohamed~Barakat~and~B arbara~Bremer.~All~rights~reserved.G6"C*>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$ -%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%6homalg/Normal izeInputG6$&-%:homalg/ResolutionOfModuleG6&9(9)/Q)TRUNCATEF6""!F96#FPF9>8'-FU6$ &-FY6&9$FfnFgnF9FjnF9>8(-%%copyG6#&&-%5homalg/ResolveModuleG6%""#F\oFfnFjn6#F]p >8)-%/homalg/ComposeG6&Fdo-%Qhomalg/AModuleForATwoExtensionFromTwoOneCocyclesG6 #F?FfnF9>8*-Fbp6&Fdo9%FfnF9-%3homalg/LeftDivideCG6'FhpF`pFSFfnF9F6F6F6F6, Q5homalg/compute_psi.mF6 M7R0 IDhomalg/SolveSystemWithConstraintsC2f*6(%#_AG%#_BG%#_CG%#_EG%$varG%,RingPackag eG6:%#RPG%$narG%%optsG%"AG%"BG%"CG%"EG%"MG%"NG%"LG%"aG%"bG%"cG%#c2G%"eG%"dG%#d_ G%#ETG%#ATG%#IbG%#IcG%#IdG%#IeG%"YG6%%enCopyright~(C)~2007~by~Barbara~Bremer.~A ll~rights~reserved.G%'systemG%)rememberG6"C:>8$-%1homalg/tablenameG6%9!&9"6#!"" 8%@$-%%typeG6$FK%*procedureG-%'RETURNG6#-FK6#&FQ6#;""",&FSF\oFTFS>8'-%6homalg/N ormalizeInputG6$9$FK>8(-Fao6$9%FK>8)-Fao6$9&FK>8*-Fao6$9'FK>8.-&FK6#%3NumberOfG eneratorsG6#F_o>8/-&FK6#%-NumberOfRowsG6#Feo>80-Ffp6#Fjo>81-F]qFdq>83-Ffp6#F_p> 82-F]qF[r>85-%2homalg/InvolutionG6%F_p9(FK>86-Fbr6%F_oFdrFK>87-%3homalg/Identit yMapG6%F[qFdrFK>88-F\s6%FbqFdrFK>8:-F\s6%F]rFdrFK>8+7#7$-%#opG6#-%$mapG6$F[tFeo -F[t6#-&FK6#%%ZeroG6#*&F]rF\oFbqF\o>8,-&FK6#%/UnionOfColumnsG6$-%4homalg/Kronec kerMatG6&FfrF_sFdrFK-F`u6&F`rF_sFdrFK>8--F[u6$-%/homalg/ZeroMapG6$*&FfqF\oF]rF\ o*&F[qF\oFbqF\o-%.homalg/SubMatG6%-Fiu6&F[vFgtFdrFK-F`u6&FcsFjoFdrFKFdr>8;-%3ho malg/RightDivideG6(FgsFitFeuFdrQ)USE_FAILFHFK@$/Fev%%FAILG-Fen6#F\w>Fev-Fao6$Fe vFK-F^t6$f*6#%"iGFH6$%)operatorG%&arrowGFH&&T#6#F\o6#;,&*&,&FcoF\oFSF\oF\oT%F\o F\oF\oF\o*&FcoF\oFcxF\oFHFH6&FCFevF8Fbq7#-%"$G6#;F\oFiqFHFHFHFH, QFhomalg/SolveSystemWithConstraintsC2.mFH M7R0 IAhomalg/IsEquivalenceOfExtensionsf*6/%#N1G%'alpha1G%#E1G%&beta1G%#M1G%$phiG%#N 2G%'alpha2G%#E2G%&beta2G%#M2G%$varG%,RingPackageG6'%#RPG%$narG%%optsG%(VERBOSEG %"bG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG% )rememberG6"C*>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F?%*procedureG-% 'RETURNG6#-F?6#&FE6#;""",&FGFVFHFG@$2,&"#7FVFHFV9#>8&-%%copyG6#-%2homalg/GetOpt ionsG6$&FE6#;"#8FWF?@%-%)assignedG6#&Fhn6#Q/pos_of_VERBOSEF<>8'%%trueG>F[p%&fal seG@$4-%:homalg/EqualPresentationsG6&9$9*Q2IGNORE_GENERATORSF<F?-%&ERRORG6#%YTh e~two~submodules~must~have~identical~sets~of~relationsG@$F`p-Fhp6#%gnThe~two~fa ctor~modules~must~have~identical~sets~of~relationsG>8(7&-%-homalg/IsHomG6(9&9)9 ,9/Q(VERBOSEF<F?-%3homalg/IsBijectiveGFdq-%1homalg/IsZeroMapG6'-%.homalg/SubMat G6&-%/homalg/ComposeG6&9%FfqFhqF?9+FhqF?FgqFhqFiqF?-F]r6'-F`r6&-Fcr6&Ffq9-FhqF? 9'FhqF?9.FhqFiqF?@%/-%(convertG6$F`q%$setG<#F\pF\p@%F[p-%$zipG6%f*6$%"xG%"yGF<6 $%)operatorG%&arrowGF</FdpFerF<F<F<7&Q$homF<Q$isoF<Q)commute1F<Q)commute2F<F`qF ^pF<F<F<F<, QChomalg/IsEquivalenceOfExtensions.mF< M7R0 I4homalg/IsZeroMatrixf*6%%#_MG'%$varG%%listG%,RingPackageG6%%#RPG%$narG%"MG6#%f nCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$-%1homalg/t ablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F96#;""",&F; FJF<F;@$/8&7"-FC6#%%trueG>FN-%:homalg/ReduceRingElementsG6%9$9%F3-%2homalg/IsZe roMapFG6%FNFXF3F0F0F0F0, Q6homalg/IsZeroMatrix.mF0 M7R0 I.homalg/homalg=6"%&falseGE\[lH%+matrixtypeGQeqmatrixtype~[optional:~tablename~ provides~a~default]:~should~provide:~type(RP[matrix](...),matrixtype)=trueF$%6R ingElementNormalFormGQ_rRingElementNormalForm(var)~[optional:~no~default~value] :~return~a~procedure~to~compute~the~normal~form~ring~elementsF$%'AddRhsGQ\pAddR hs(M,var,tvar)~[optional:~tablename~provides~a~default]:~add~right~hand~sidesF$ %0TriangularBasisGQ\rTriangularBasis(M,var)~[or~provide~BasisOfModule]:~compute ~a~triangular~basis~for~M~without~normalizing~the~inputF$%'AddMatGQipAddMat(A,B ,var)~[optional:~defaults~to~a~service~function]:~add~two~matrices~of~rings~ele mentsF$%*BestBasisGQdvBestBasis(M,var,U,V)~[optional:~no~default~value]:~get~th e~best~basis~even~if~it~changes~the~abstract~generators~and~store~the~change~of ~relations~in~U~and~the~change~of~generators~in~VF$%$REMGQhoREM(a,b,var)~[optio nal:~no~default~value]:~compute~(the~remainder~of)~a~mod~bF$%(ComposeGQipCompos e(A,B,var)~[optional:~defaults~to~a~service~function]:~compose~matrices~of~ring ~elementsF$%3NumberOfGeneratorsGQ[qNumberOfGenerators(M)~[optional:~tablename~p rovides~a~default]:~rank~of~free~module~containing~MF$%'IsUnitGQepIsUnit(r,var) ~[optional:~defaults~to~a~service~function]:~check~if~r~is~a~unit~in~the~ringF$ %/UnionOfColumnsGQ[qUnionOfColumns(M,N,...)~[optional:~tablename~provides~a~def ault]:~unify~the~columns~in~M,~N,~...F$%4MinimalBasisOfIdealGQgoMinimalBasisOfI deal(M,var)~[optional:~no~default~value]:~get~a~minimal~basisF$%-NumberOfRowsGQ coNumberOfRows(a)~[optional:~tablename~provides~a~default]:~number~of~rowsF$%.I sRingElementGQ^pIsRingElement(r)~[optional:~no~default~value]:~decide~if~r~is~a ~ring~element~or~notF$%$GCDGQ_pGCD(a1,...,an,var)~[optional:~no~default~value]: ~compute~the~greatest~common~divisorF$%'matrixGQ`pmatrix(A)~[optional:~tablenam e~provides~a~default]:~make~a~matrix~(out~of~a~listlist)F$%)simplifyGQ\psimplif y(a,var)~[optional:~tablename~provides~a~default]:~simplify~and~expressionF$%.S implifyBasisGQhoSimplifyBasis(M,var)~[optional:~no~default~value]:~try~to~get~a ~simpler~basisF$%*GlobalDimGQ]sGlobalDim(var)~[optional:~defaults~to~a~service~ function]:~compute~the~global~dimension~of~the~(residue~class)~ring~defined~by~ varF$%'SubMatGQ_qSubMat(A,B,var)~[optional:~defaults~to~a~service~function]:~su bstract~two~matrices~of~rings~elementsF$%-KroneckerMatGQeqKroneckerMat(A,B,var) ~[optional:~defaults~to~a~service~function]:~compute~the~Kronecker~product~of~A ~and~BF$%%ZeroGQ^pZero(n)~[optional:~tablename~provides~a~default]:~zero~of~the ~free~module~of~rank~nF$%1PresentationInfoGQ[tPresentationInfo(M,var,v)~[option al:~defaults~to~a~service~function]:~compute~combinatorial~informations~using~t he~relations~of~the~presentationF$%'ReduceGQcqReduce(L,B,var)~[optional:~defaul ts~to~a~service~function]:~normal~forms~of~rows~of~L~modulo~the~basis~BF$%6Quot ientWithRemainderGQ^qQuotientWithRemainder(x,y,var)~[or~provide~Reduce]:~comput e~the~quotient~'with~remainder'~of~x~by~yF$%,UnionOfRowsGQepUnionOfRows(M,N,... )~[optional:~tablename~provides~a~default]:~unify~the~rows~in~M,~N,~...F$%/Cert ainColumnsGQirCertainColumns(M,plist::list)~[optional:~tablename~provides~a~def ault]:~extract~the~i-th~columnss~out~of~M,~for~all~i~in~plistF$%+InvolutionGQ\r Involution(M,var)~[optional:~defaults~to~a~service~function]:~appropriate~invol ution~(transpose/adjoint~operator)F$%$OneGQhn[optional:~tablename~provides~a~de fault]:~the~one~in~the~ringF$%.BasisOfModuleGQjoBasisOfModule(M,var,opt)~[optio nal:~defaults~to~a~service~function]:~basis~of~MF$%3ReduceRingElementsGQgrReduc eRingElements(M,var)~[optional:~defaults~to~a~service~function]:~normal~forms~o f~entries~of~M~modulo~the~ring~relationsF$%(DiagMatGQ_rDiagMat(L)~[optional:~de faults~to~a~service~function]:~apply~the~i-th~element~of~L~to~the~i-th~standard ~basis~vectorF$%&MinusGQfoMinus(a,b,var)~[optional:~tablename~provides~a~defaul t]:~substract~b~from~aF$%,CertainRowsGQbrCertainRows(M,plist::list)~[optional:~ tablename~provides~a~default]:~extract~the~i-th~rows~out~of~M,~for~all~i~in~pli stF$%/NormalizeInputGQ^sNormalizeInput(M)~[optional:~defaults~to~a~service~func tion]:~put~the~presentation~M~of~a~module~into~a~RingPackage~normalized~formF$% -DivideByUnitGQapDivideByUnit(a,b,var)~[optional:~tablename~provides~a~default] :~divide~a~by~the~unit~bF$%'MulMatGQiqMulMat(scal,A,var)~[optional:~defaults~to ~a~service~function]:~multiply~a~matrix~of~rings~elements~by~a~scalarF$%(GetSid eGQdqGetSide(side,L,var,tvar)~[optional:~tablename~provides~a~default]:~get~the ~lhs/rhs~of~the~affine~system~LF$%3SyzygiesGeneratorsGQ]sSyzygiesGenerators(M1, M2,var)~[optional:~defaults~to~a~service~function]:~compute~a~generating~set~of ~the~syzygies~of~M1~modulo~M2F$F$, Q0homalg/homalg.mF$ M7R0 I6homalg/CheckCocomplexf*6%'%*cocomplexG%%listG'%$varGF'%,RingPackageG6&%#RPG%$ narG%"lG%"jG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6" C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6#-F 56#&F;6#;""",&F=FLF>F=@$/9$7"-FE6#FQ>8&-%%nopsG6#FP7#-%"$G6#;""!,&-%%iquoG6$,&F UFL!"#FL""#FLF=FL-%$mapG6$f*6#%"iGF26$%)operatorG%&arrowGF2-%8homalg/CheckCompo sitionG6%-%$seqG6$&T$6#,&FPF_oT%FL/Fcp7%F_o""%""&T(T)F2F26*F&FPF/8'F)9%F,F5%"%G F2F2F2F2, Q8homalg/CheckCocomplex.mF2 M7R0 I7homalg/CofunctorOnSeqsf*6&%*cofunctorG'%&alphaG<$%&tableG%%listG%%_varG%,Ring PackageG6.%#RPG%$narG%$varG%#aiG%"mG%"jG%"kG%'coseqsG%$resG%2cofunctor_on_mapsG %$tblG%"iG6%%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G%'sy stemG%)rememberG6"C0>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FA%*proced ureG-%'RETURNG6#-FA6#&FG6#;""",&FIFXFJFI@$29#,&""%FXFJFX-FQ6#-%7homalg/Cofuncto rOnSeqFG6$&9$6#;""$FI&FG6#;""#FI>8&&FG6#FY>8'-F)F>@%-FM6$9%F*>&F\p6#FX7#-%"$G6# ;FX-%%nopsG6#Fap>Fcp-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGF\q>8(-F[q6#Fcp?&8 )7#-Fgp6#;Ffo,(FfnFX!"#FXFJFI%%trueGC%@%-FM6$&FG6#,&F_rFXFXFXF*>&F\p6#F_r7#-Fgp 6#;FX-F[q6#F[s>F_s-F_q6#-Fbq6$Fdq-Ffq6#-FiqFfs@$3/F_rFfo4-FM6$-%%copyG6#&&FG6#F bo6#&&F\p6#FfoFdp%4homalg_presentationG-FQ6#-%8homalg/CofunctorOnSeqsFGF]o@%/-% %iremG6$F_rFboFX@$0F[r-F[q6#F_s-%&ERRORG6%%BThe~first~and~the~argument~numberGF _r%Chave~different~numbers~of~entries!G@$0,&F[rFXFXFXF[v-F^v6%%4The~argument~nu mberGF_r%Rmust~have~one~entry~more~than~the~first~argument!G@$0-Fgu6$FdrFboFfo- F^v6#%jnThe~number~of~input~tables/lists~should~be~congruent~to~2~mod~3G>8+F]p? &8*7#-Fgp6#;""!-%%iquoGF\wFfrC%>8,-%6homalg/CofunctorOnSeqG6'F_o-Fft6#&FG6#,&Ff oFXFcwFbo-Fft6#&FG6#,&FboFXFcwFboFhoFA>&Faw6#,&FcwFboFXFX-Fft6#&F]xFdp>&FawFdx- Fft6#&F]xF^u>8-&F_oF^u?&Fcw7#-Fgp6#;FXFiwFfrC%>8.F]p?&8/7#-Fgp6#;FXFdvFfr>&Faz6 #&&F\p6#,$FcwFbo6#Fcz-Fhy6'-Fft6#&&FGF][l6#&&F\p6#,&FcwFboFIFXF_[l-Fft6#&&FGF]y Fjz-Fft6#&Fhx6#&&F\pFdxF_[lFhoFA>&FawF][l-Fft6#Faz-Ffq6#-Fbq6$Fft-Fbq6$f*6#%"aG F>6$%)operatorG%&arrowGF>&T#6#F_oF>F>6$F5Faw7#-Fgp6#;FXFdrF>F>F>F>, Q9homalg/CofunctorOnSeqs.mF> M7R0 I:homalg/CohomologyModulesFf*6%'%*cocomplexG<$%&tableG%%listG'%$varGF)%,RingPac kageG6+%#RPG%$narG%#aiG%"lG%%stepG%$haiG%"jG%(cohomolG%"iG6#%fnCopyright~(C)~20 04~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$-%1homalg/tablenameG6%9!&9"6 #!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSFEFD@$/9$7"-FL6 #FX@%-FH6$FWF)>8&7#-%"$G6#;FS-%%nopsG6#FW>Fin-%%sortG6#-%$mapG6$%$lhsG-%#opG6#- %%evalGFao>8'-F`o6#Fin>8)&Fin6#;""#FD@%-FH6$FWF(C%>8+-F(F9?&8,7#-F\o6#;FS,&F`pF SFDFS%%trueG>&F^q6#&.%$EtaG6#&Fdp6#Faq-%5homalg/DefectOfHomsFG6&&FW6#&FinF`r&FW 6#&Fin6#,&FaqFSFSFS9%F<-%%copyG6#F^q-Fgo6$f*6#F6F96$%)operatorG%&arrowGF9-Fbr6& &T$6#&T%6#,&FWFSFDFS&Fjs6#&F]tFaoT(T)F9F96*F&FWF0FinF+F\sF.F<FdpF9F9F9F9, Q<homalg/CohomologyModulesF.mF9 M7R0 I3homalg/CokernelEpif*6&%"AG%"NG%$varG%,RingPackageG6)%#RPG%$narG%%optsG%$posG% )optionalG%&cokerG%<cokernel_rewrite_generatorsG6%%[oCopyright~(C)~2004-2007~by ~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C.>8$-%1homalg/tab lenameG6%9!&9"6#!""8%@$-%%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FO FAF@@%2,&""#FOFAFO9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F>6#;""$FPF8>&FW6#Q2nu mber_of_optionsF5""!@$2,&FUFOF]oF@,&F[oFOFAFO-FH6#-%4homalg/CokernelFEpiG6#F>>F W-FY6#-Ffn6$&F>6#;""%FPF8>8'%%NULLG@$-%)assignedG6#&FW6#QGpos_of_var_to_assign_ functor_on_objectF5>Fdp6$Fdp/FjpFep@$-Fhp6#&FW6#QHpos_of_var_to_assign_rewrite_ generatorsF5>Fdp6$Fdp/FcqFep>8(-%#opG6#-%'subsopG6$Fdp7#F_p>8)-%0homalg/Cokerne lG6(9$9%9&/QAvar_to_assign_rewrite_generatorsF5.8*FjqF8@$-Fhp6#&FW6#Q@var_to_as sign_functor_on_objectF5-%'assignG6$FasFcr-%:homalg/ReduceHomomorphismG6&F]sFcr FirF8F5F5F5F5, Q5homalg/CokernelEpi.mF5 M7R0 I0homalg/ExtMap_Rf*6(%"qG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%#RPG%$nar G%)optionalG%*cofunctorG6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~rights~ reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typ eG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&&F?6#;""'FQ>8'f*6#F&F6 F6F6-%-homalg/Ext_RG6%T$9$&F?6#;""#FAF6F66$F%Fjn-%2homalg/FunctorMapG6)FY7#9%9& 7#9'9(FSF9F6F6F6F6, Q2homalg/ExtMap_R.mF6 M7R0 I,homalg/Extqf*6''%"qG%*nonnegintG%"AG%"BG'%$varG%%listG%,RingPackageG6&%#RPG%$ narG%)optionalG%*cofunctorG6%%[oCopyright~(C)~2005-2006~by~Mohamed~Barakat.~All ~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""&FR>8' -%3homalg/Functor_HomG6#9&-%=homalg/RightDerivedCofunctorG6(9$FZ9%9'FTF:F7F7F7F 7, Q.homalg/Extq.mF7 M7R0 I3homalg/Functor_Torf*6$%"qG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~A ll~rights~reserved.G%'systemG%)rememberGF'7&f*6#%"MGF'F'F'-%+homalg/TorG6&T$9$T &&9"6#;""#!""F'F'6&F%F4F&9%f*6%F/%$phiG%"NGF'F'F'-%.homalg/TorMapG6(F3F4F=9&F5& F76#;""%F;F'F'F<F=f*6#%"PGF'F'F'f*F?F'F'F'-%/homalg/Tor2MapG6(F3F5F4F=FEFFF'F'6 &F%F3FLF4F'F'6$F%F4F'F'F'F', Q5homalg/Functor_Tor.mF' M7R0 I7homalg/ImageOfElementsf*6'%#_BG%#_AG%"LG%$varG%,RingPackageG6)%#RPG%$narG%"AG %"mG%/SINGLE_ELEMENTG%"BG%$imgG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~ rights~reserved.G6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*proce dureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8&-%6homalg/NormalizeInputG6$9%F7>8'- &F76#%-NumberOfRowsG6#FQ>8(%&falseG@'4-FC6$9$<$%%listG&F76#%+matrixtypeG@%/FWFN >8)7#7#F^o-%&ERRORG6#%apThe~second~argument~has~more~the~one~'row'~while~the~fi rst~argument~is~a~ring~element!G34-FC6$F^o<$%)listlistGFao-FC6$F^oF`o@%Feo>Fgo- %$mapG6$f*6#%"aGF46$%)operatorG%&arrowGF4FioF4F4F4F^oC$>Fhn%%trueG>FgoFio>Fgo-F S6$F^oF7>8*-%3homalg/ComposeMapsG6%FgoFQ&F=6#;""$F?@$-FC6$FiqFao>Fiq-%(convertG 6$FiqFcp@%Fhn&Fiq6#FNFiqF4F4F4F4, Q9homalg/ImageOfElements.mF4 M7R0 I5homalg/IsProjectiveCf*6%%#_PG%$varG%,RingPackageG6)%#RPG%$narG%"PG%"nG%#IdG%" FG%"sG6#%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C*>8$- %1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6#-F56#&F; 6#;""",&F=FLF>F=>8&-%6homalg/NormalizeInputG6$9$F5>8'-&F56#%3NumberOfGenerators G6#FO>8(-%3homalg/IdentityMapG6%FU9%F5>8)-%2homalg/FreeModuleGFin>8*-%4homalg/L eftinverseCG6'F\oFfnFOFjnF5@%/F`o%%FAILG%&falseG%%trueGF2F2F2F2, Q7homalg/IsProjectiveC.mF2 M7R0 I/homalg/LHomHomf*6('%"qG%*nonnegintG%"MG%"AG%"BG'%$varG%%listG%,RingPackageG6& %#RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All ~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC>8&&FA6#;""'FS>8' -%6homalg/Functor_HomHomG6$9&9'-%:homalg/LeftDerivedFunctorG6(9$Fen9%9(FUF;F8F8 F8F8, Q1homalg/LHomHom.mF8 M7R0 I>homalg/ProjectiveDimensionFFRf*6%%"PG%$varG%,RingPackageG6'%#RPG%$narG%$resG% "pG%"sG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$ -%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F 96#;""",&F;FJF<F;>8&-%:homalg/ResolutionOfModuleG6#F9>FM-%9homalg/ShortenResolu tionG6&%)infinityGFM9%F3>8'-%%nopsG6#FM@$/FXFJC$>8(-%4homalg/RightinverseG6%&FM 6#FJFVF3@$0Fjn%%FAILG>FX""!FXF0F0F0F0, Q@homalg/ProjectiveDimensionFFR.mF0 M7R0 I8homalg/ResidueClassRingf*6$%%_varG%,RingPackageG6&%#RPG%$narG%#NFG%$varG6%%[o Copyright~(C)~2004-2006~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rem emberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RET URNG6#-F36#&F96#;""",&F;FJF<F;>8'-%5homalg/NormalizeRingG6$9$F3@$-%)assignedG6# &F36#%6RingElementNormalFormGC$>8&-FV6#FM@$30Fen%%NULLG-F?6$FenFA-FC6#Ffn@'/&FM 6#""#7"-&F36#%%ZeroG6#FJ-FT6#&F36#%$GCDG7#-F]p6#-%#opG6#-%$mapG6$FdpFbo-%5homal g/BasisOfModuleG6%Ffp&FMFjoF3F0F0F0F0, Q:homalg/ResidueClassRing.mF0 M7R0 I/homalg/RHomHomf*6('%"qG%*nonnegintG%"AG%"MG%"BG'%$varG%%listG%,RingPackageG6& %#RPG%$narG%)optionalG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~A ll~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!"" 8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC>8&&FA6#;""'FS> 8'-%7homalg/Functor_HomHom2G6$9%9'-%=homalg/RightDerivedCofunctorG6(9$Fen9&9(FU F;F8F8F8F8, Q1homalg/RHomHom.mF8 M7R0 I4homalg/Rightinversef*6%%"LG'%$varG%%listG%,RingPackageG6%%#RPG%$narG%#LIG6#%e nCopyright~(C)~2004~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8$-%1homalg/ta blenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F96#;""",&F;F JF<F;>8&-%4homalg/LeftinverseFG6%-%2homalg/InvolutionG6%9$9%F3FUF3@%0FM%%FAILG- FR6%FMFUF3FXF0F0F0F0, Q6homalg/Rightinverse.mF0 M7R0 I7homalg/StdBasisVectorsf*6$%#_nG%,RingPackageG6'%#RPG%$narG%"nG%"zG%"uG6#%[oCo pyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8$-%1homalg /tablenameG6%9!&9"6#!""8%@$-%%typeG6$F2%*procedureG-%'RETURNG6#-F26#&F86#;""",& F:FIF;F:@%-F>6$9$%(numericG@%-F>6$FN%'posintG>8&FN-%&ERRORG6#%^oIf~the~first~ar gument~is~numeric~then~it~must~be~a~positive~integerG>FU-&F26#%3NumberOfGenerat orsG6#-%6homalg/NormalizeInputG6$FNF2>8'-&F26#%%ZeroG6#FU>8(&F26#%$OneG-%$mapG6 $f*6#%"iGF/6$%)operatorG%&arrowGF/-%'subsopG6$/FNT#T%F/F/6&F,FeoF+F^o7#-%"$G6#; FIFUF/F/F/F/, Q9homalg/StdBasisVectors.mF/ M7R0 I.homalg/TorMapf*6)'%"qG%*nonnegintG%"MG%$phiG%"NG%"LG'%$varG%%listG%,RingPacka geG6&%#RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2005~by~Mohamed~Barakat .~All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6# !""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSFEFD>8&&FB6#;""( FT>8'f*6#F(F9F9F9-%+homalg/TorG6&T$9$T&&FB6#;""#FDF9F96&F&F]oF+9(-%2homalg/Func torMapG6)Ffn7#9%9&7#9'9)FVF<F9F9F9F9, Q0homalg/TorMap.mF9 M7R0 I<homalg/TorsionFreeFactorEpif*6%%"MG%$varG%,RingPackageG6'%#RPG%$narG%%optsG%# tfG%8torsion_free_factor_epiG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~ri ghts~reserved.G%'systemG%)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$- %%typeG6$F5%*procedureG-%'RETURNG6#-F56#&F;6#;""",&F=FLF>F=@$2,&""#FLF>FL9#>8&- %%copyG6#-%2homalg/GetOptionsG6$&F;6#;""$FMF5>8'-%9homalg/TorsionFreeFactorG6&9 $9%/QAvar_to_assign_rewrite_generatorsF2.8(F5@$-%)assignedG6#&FT6#Q@var_to_assi gn_functor_on_objectF2-%'assignG6$FhoFjn-FV6#FcoF2F2F2F2, Q>homalg/TorsionFreeFactorEpi.mF2 M7R0 I?homalg/YonedaProductOfCocyclesf*6+%"MG%%eta1G'%"mG%(integerG%"LG%%eta2G'%"nGF )%"NG%$varG%,RingPackageG66%#RPG%$narG%%optsG%&res_XG%'X_homsG%*X_modulesG%&res _YG%'Y_homsG%*Y_modulesG%%betaG%"iG%%liftG%&lift_G%&alphaG%#YiG%%Yi_1G%$etaG%$r esG%$extG%'resultG6%%enCopyright~(C)~2007~by~Barbara~Bremer.~All~rights~reserve d.G%'systemG%)rememberG6"C5>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FM% *procedureG-%'RETURNG6#-FM6#&FS6#;""",&FUF^oFVFU@$2,&"")F^oFVF^o9#>8&-%%copyG6# -%2homalg/GetOptionsG6$&FS6#;""*F_oFM@$529)""!29&Fep-%&ERRORG6#%>n~and~m~must~b e~non-negative!G>8'-%5homalg/ResolveModuleG6&,&FgpF^oFdpF^o9$9+FM>8(-Fho6#&F]q6 #F^o>8)-Fho6#&F]q6#""#>8*-F_q6&Fdp9'FcqFM>8+-Fho6#&FbrFiq>8,-Fho6#&FbrF_r>8--Fh o6#&Fgr6#Fep>8/-%3homalg/RightDivideG6'9%FasFerFcqFM?(8.F^oF^oFdp%%trueGC(>80-F ho6#Fgs>81-Fho6#&Feq6#,&F]tF^oFgpF^o>Fas-Fho6#&Fgr6#F]t>82-Fho6#&F\sF_u>83-Fho6 #&F\s6#,&F]tF^oFUF^o>Fgs-%4homalg/CompleteImSqG6)-Fho6#Fet-Fho6#FatFau-Fho6#Fas FfuFcqFM>84-%/homalg/ComposeG6&Fgs9(FcqFM>87%%NULLG@$5-%)assignedG6#&Ffo6#QApos _of_return_abstract_generatorFJ-Fbw6#&Ffo6#Q2pos_of_return_ExtFJ>86-%+homalg/Ex tG6(FaqFbq9*Fcq/QTvar_to_assign_proc_to_express_generators_abstractlyFJ.%1abstr act_cocycleGFM@%Faw>F]w6$F]w/-Fex6#-Fho6#FgvF\y>F]w6$F]wF\y@$Fgw>F]w6$F]w/Q$Ext FJF]x-%#opG6#-%$mapG6$f*6#F<FJ6$%)operatorG%&arrowGFJ-Fho6#&7#T#6#FbqFJFJ6$FEF] w7#-%"$G6#;F^o-%%nopsG6#7#F]wFJFJFJFJ, QAhomalg/YonedaProductOfCocycles.mFJ M7R0 I2homalg/ZeroModulef*6%'%$varG%%listG%&_zeroG%,RingPackageG6%%#RPG%$narG%%zeroG 6%%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rem emberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RET URNG6#-F56#&F;6#;""",&F=FLF>F=@%2,&FLFLF>FL9#>8&9%>FS-&F56#%%ZeroGF2-%4homalg/P resentationG6&7#/&F56#%$OneGFS7#Fin9$F5F2F2F2F2, Q4homalg/ZeroModule.mF2 M7R0 ILhomalg/A2ExtensionModuleFromA2Extension.oldf*6&%*_ext_homsG%-_ext_modulesG%%_ varG%,RingPackageG65%#RPG%$narG%%optsG%$varG%$extG%)ext_homsG%,ext_modulesG%"FG %&etaMLG%&etaLNG%&etaNLG%"MG%"NG%"LG%#d2G%"AG%"BG%"CG%&etaMNG6#%enCopyright~(C) ~2007~by~Barbara~Bremer.~All~rights~reserved.G6"C2>8$-%1homalg/tablenameG6%9!&9 "6#!""8%@$-%%typeG6$FB%*procedureG-%'RETURNG6#-FB6#&FH6#;""",&FJFYFKFJ@%-FN6$&F H6#FZ%%listG>8'Fhn-%&ERRORG6#%-Wrong~input!G@%2,&""$FYFKFY9#C%>8(-%:homalg/Norm alizeExtensionG6$&FH6#;FY,&!"#FYFKFJF\o>8)-%%copyG6#&Fho6#FY>8*-Fdp6#&Fho6#""#C $>Fbp-Fdp6#9$>Fip-Fdp6#9%>8+-%:homalg/FactorizeExtensionG6&FbpFipF\oFB>8,-%6hom alg/NormalizeInputG6$-%:homalg/CocycleOfExtensionG6%-%#opG6#&FiqF]qF\oFBFB>8--F `r6$-Fcr6%-Ffr6#&FiqFgpF\oFBFB>8/-F`r6$&-%:homalg/ResolutionOfModuleG6&&Fhr6#"" &F\o/Q)TRUNCATEF?""!FBFgpFB>80-F`r6$&-Fhs6&&FasFgpF\oF]tFBFgpFB>81-F`r6$&-Fhs6& &FhrFgpF\oF]tFBFgpFB>82-Fdp6#&&-%5homalg/ResolveModuleG6%F^qFcsF\oFgpF]q>83-&FB 6#%,UnionOfRowsG6$Fit-%/homalg/ZeroMapG6&-%2homalg/FreeModuleG6%,(-&FB6#%-Numbe rOfRowsG6#FjrFY-Fhv6#FatFY-Fhv6#FitFJF\oFB-Fdv6%-&FB6#%3NumberOfGeneratorsGF_wF \oFBF\oFB>84-%/homalg/ComposeG6&FauF^rF\oFB>85-F\v6$FjrFat>86-%Chomalg/SolveSys temWithConstraintsCG6(FjuFgwF\xFauF\oFB@%/F`x%%FAILGFfx-%:homalg/ReduceHomomorp hismG6&F`xFatF\oFBF?F?F?F?, QNhomalg/A2ExtensionModuleFromA2Extension.old.mF? M7R0 I4homalg/CokernelFMapf*6'%'alpha1G%$phiG%&beta1G'%$varG%%listG%,RingPackageG6&% #RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~ rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@ $-%%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&&F>6#;""&FP>8'% 1homalg/CokernelFG-%2homalg/FunctorMapG6)FX7#9$9%7#9&9'FRF8F5F5F5F5, Q6homalg/CokernelFMap.mF5 M7R0 I0homalg/Cokernelf*6&%"AG%"NG%$varG%,RingPackageG6+%#RPG%$narG%%optsG%$posG%)op tionalG%#ANG%"GG%%NgenG%5cokernel_target_hullG6%%[oCopyright~(C)~2004-2008~by~M ohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C/>8$-%1homalg/table nameG6%9!&9"6#!""8%@$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFC FB@$-FF6$&F@6#FQ%'stringGC$@$/FVQ1RETURN_co_contraF7-FJ6#Q*covariantF7-FJ6#%%NU LLG@%2,&""#FQFCFQ9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F@6#;""$FRF:>&Fco6#Q2nu mber_of_optionsF7""!@$2,&FaoFQF_pFB,&F]pFQFCFQ-FJ6#-%1homalg/CokernelFG6#F@>Fco -Feo6#-Fho6$&F@6#;""%FRF:>8'F\o@$-%)assignedG6#&Fco6#QIpos_of_var_to_assign_F_t arget_hullmoduleF7>Ffq6$Ffq/F[rF\o>8(-%#opG6#-%'subsopG6$Ffq7#Faq>8)-%4homalg/S umRelationsG6&9$9%9&F:@%-FF6$F`s%4homalg_presentationGC$>8*-%@homalg/Generators OfPresentationG6%F`sQ9BOTH_TYPES_OF_GENERATORSF7F:>8+-%6homalg/NormalizeInputG6 $-%$mapG6$%$rhsGFhsF:C$>Fhs7">F^tF\o@$-Fiq6#&Fco6#QBvar_to_assign_F_target_hull moduleF7C$>8,-&F:6#%'matrixG6#-F`t6$F[sF:-%'assignG6$F]uFbu-%4homalg/Presentati onG6'FhsF[sFasFbrF:F7F7F7F7, Q2homalg/Cokernel.mF7 M7R0 I5homalg/CompleteImSqFf*6'%(_alpha1G%%_phiG%'_beta1G'%$varG%%listG%,RingPackage G6+%#RPG%$narG%$phiG%*apply_phiG%*normalizeG%*NORMALIZEG%'alpha1G%&beta1G%(ia1C phiG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$-%1 homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6# ;""",&FCFRFDFC@%-FG6$9%FI>8'FWC$>8&-%6homalg/NormalizeInputG6$FWF;>FYf*6#%"aGF8 6$%)operatorG%&arrowGF8-%/homalg/ComposeG6&9$T#T&T'F8F86(F/FfnF)9'F-F;@%32,&""% FRFDFR9#-FG6$&FA6#""&FIC&>8(Fbp>8*Fdo>8+-%$mapG6$Fgp9&>8)%%trueGC%>Fip-Fhn6$Fdo F;>F[qF_q>Faq%&falseG>8,-FY6#Fip@$Faq>F[r-F]q6$Fgp-%%copyG6#F[r-%4homalg/RightD ivideFG6&F[rF[qFioF;F8F8F8F8, Q7homalg/CompleteImSqF.mF8 M7R0 I5homalg/CompleteKerSqf*6(%'alpha2G%%_phiG%'_beta2G%#_BG%$varG%,RingPackageG6(% #RPG%$narG%$phiG%*apply_phiG%&beta2G%(kphiCb2G6#%fnCopyright~(C)~2004~by~Mohame d~Barakat.~All~rights~reserved.G6"C)>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%t ypeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?@$29#,&""&FNF@FN-FG6#-% 6homalg/CompleteKerSqFG6#F=@%-FC6$9%FE>8'FgnC$>8&-%6homalg/NormalizeInputG6$Fgn F7>Finf*6#%"aGF46$%)operatorG%&arrowGF4-%/homalg/ComposeG6&T#9$T&T'F4F46(F.F\oF )9(F,F7>8(-F^o6$9&F7>8)-Fin6#Fap-%2homalg/LeftDivideG6'F[pFfp9'F_pF7F4F4F4F4, Q7homalg/CompleteKerSq.mF4 M7R0 I/homalg/Composef*6&%"AG%"BG'%$varG%%listG%,RingPackageG6%%#RPG%$narG%"vG6#%[oC opyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C&>8$-%1homal g/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F:6#;""", &F<FKF=F<>8&-%8homalg/ResidueClassRingG6$9&F4@%/FN-&F46#%%ZeroG6#FKC$-&F46#%)si mplifyG6$-%&evalmG6#-%#&*G6$9$9%FR-&F46#%'matrixG6#%"%GC&FenFbo-%:homalg/Reduce RingElementsG6%FgoFRF4FboF1F1F1F1, Q1homalg/Compose.mF1 M7R0 I4homalg/Functor_Hom2f*6#%"AG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~ rights~reserved.G%'systemG%)rememberGF&7&f*6#%"MGF&F&F&-%+homalg/HomG6%T$9$&9"6 #;""#!""F&F&6$F%F3f*6%F.%$phiG%"NGF&F&F&-%/homalg/Hom2MapG6'F2F39%9&&F56#;""%F9 F&F&F:F3f*6#%"PGF&F&F&f*F<F&F&F&-%.homalg/HomMapG6'F3FBFCF2FDF&F&6$FJF3F&F&F&F& F&F&F&, Q6homalg/Functor_Hom2.mF& M7R0 I4homalg/Functor_LHomf*6$%"qG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~ All~rights~reserved.G%'systemG%)rememberGF'7&f*6#%"MGF'F'F'-%,homalg/LHomG6&T$9 $T&&9"6#;""#!""F'F'6&F%F4F&9%f*6%F/%$phiG%"NGF'F'F'-%/homalg/LHomMapG6(F3F4F=9& F5&F76#;""%F;F'F'F<F=f*6#%"PGF'F'F'f*F?F'F'F'-%0homalg/LHom2MapG6(F3F5F4F=FEFFF 'F'6&F%F3FLF4F'F'6$F%F4F'F'F'F', Q6homalg/Functor_LHom.mF' M7R0 I8homalg/Functor_RHomHom3f*6%%"qG%"AG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~B arakat.~All~rights~reserved.G%'systemG%)rememberGF(7(f*6#%"MGF(F(F(-%/homalg/RH omHomG6'T$T&T(9$&9"6#;""#!""F(F(6(F%F7F&9%F'9&f*6%F0%$phiG%"NGF(F(F(-%3homalg/R HomHom3MapG6)F4F5F6F7F?F@&F96#;""%F=F(F(F>F?f*6#%"PGF(F(F(f*FBF(F(F(-%2homalg/R HomHomMapG6)F4F7F?F@F5F6FHF(F(6(F%F4F'F5FNF7F(F(6&F%F7F'F@F@f*FMF(F(F(f*FBF(F(F (-%3homalg/RHomHom2MapG6)F4F5F7F?F@F6FHF(F(6(F%F4F&F5FNF7F(F(6&F%F7F&F?F(F(F(F(, Q:homalg/Functor_RHomHom3.mF( M7R0 I4homalg/Functor_Tor2f*6$%"qG%"AG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~ All~rights~reserved.G%'systemG%)rememberGF'7&f*6#%"MGF'F'F'-%+homalg/TorG6&T$T& 9$&9"6#;""#!""F'F'6&F%F5F&9%f*6%F/%$phiG%"NGF'F'F'-%/homalg/Tor2MapG6(F3F4F5F=9 &&F76#;""%F;F'F'F<F=f*6#%"PGF'F'F'f*F?F'F'F'-%.homalg/TorMapG6(F3F5F=FEF4FFF'F' 6&F%F3FLF5F'F'6$F%F5F'F'F'F', Q6homalg/Functor_Tor2.mF' M7R0 I6homalg/HomHom_ROnSeqsf*6%'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6%%#R PG%$narG%(functorG6%%ioCopyright~(C)~2005~by~Mohamed~Barakat~and~Daniel~Robertz .~All~rights~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6# !""8%@$-%%typeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8&-%8homalg /Functor_HomHom_RGF4-%5homalg/FunctorOnSeqsG6$FQ&F=6#;FNF?F4F4F4F4, Q8homalg/HomHom_ROnSeqs.mF4 M7R0 I0homalg/HomHom_Rf*6%%"MG'%$varG%%listG%,RingPackageG6&%#RPG%$narG%)optionalG%* cofunctorG6%%^pCopyright~(C)~2005-2006~by~Mohamed~Barakat~and~Daniel~Robertz.~A ll~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!"" 8%@$-%%typeG6$F6%*procedureG-%'RETURNG6#-F66#&F<6#;""",&F>FMF?F>>8&&F<6#;""$FN> 8'-%5homalg/Functor_Hom_RGF3-%%evalG6#--%7homalg/ComposeFunctorsG6'FVFV9%FPF66% 9$FjnF6F3F3F3F3, Q2homalg/HomHom_R.mF3 M7R0 I,homalg/initf*6"6#%*ini_printG6#%ioCopyright~(C)~2004~by~Mohamed~Barakat~and~D aniel~Robertz.~All~rights~reserved.GF$@$50%3homalg/initializedG.%%trueG32""!9#- %%typeG6$&9"6#""".%%listGC'>8$f*F$F$F$F$@$0%2_Env_homalg_printG%&falseG-%&print G6#F7F$F$F$>F,F--%%withG6#%(homalgFG-FI6#%(homalgSG-FI6#%(homalgZGF$6#F,F$F$, Q.homalg/init.mF$ M7R0 I3homalg/LHomHom3Mapf*6*%"qG%"AG%"BG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6 &%#RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~Al l~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8 %@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC>8&&FA6#;"")FS>8 'f*6#F(F8F8F8-%/homalg/LHomHomG6'T$T&T(9$&FA6#;""#FCF8F86(F%F^oF&9%F'9&-%2homal g/FunctorMapG6)Fen7#9'9(7#9)9*FUF;F8F8F8F8, Q5homalg/LHomHom3Map.mF8 M7R0 I;homalg/NatTrKernelToSourcef*6'%"MG%"AG%"NG%$varG%,RingPackageG6%%#RPG%$narG%% optsG6%%[oCopyright~(C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.G%'sy stemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*proced ureG-%'RETURNG6#-F56#&F;6#;""",&F=FLF>F=@%2,&""#FLF>FL9#>8&-%%copyG6#-%2homalg/ GetOptionsG6$&F;6#;""$FMF5>&FT6#Q2number_of_optionsF2""!@$2,&FRFLFjnF=,&""%FLF> FL-FE6#-%2homalg/KernelFEmbG6#F;-%1homalg/KernelEmbGFgoF2F2F2F2, Q=homalg/NatTrKernelToSource.mF2 M7R0 IAhomalg/RightSatelliteOfCofunctorf*6''%"qG%*nonnegintG'%*cofunctorG%%listG%"AG '%$varGF*%,RingPackageG68%#RPG%$narG%"pG%%optsG%4readjust_generatorsG%)optional G%5cofunctor_on_objectsG%2cofunctor_on_mapsG%%dataG%$posG%#muG%"KG%%Pq_1G%%F_st G%9FK_normalized_generatorsG%$FmuG%#FKG%#RFG%*coker_epiG%#chG%-F_abstractlyG%+a bstractlyG6#%[oCopyright~(C)~2005-2007~by~Mohamed~Barakat.~All~rights~reserved. G6"C5>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FK%*procedureG-%'RETURNG6 #-FK6#&FQ6#;""",&FSF\oFTFS@$-FW6$&FQ6#""$%'stringGC$@*/FaoQ?RETURN_proc_to_indu ce_morphismFH-Fen6#f*6%%"MG%$phiG%"NG6%%$resG%$dq1G%%_dq1GFHFHC&>FK-%%evalG6#-% 7homalg/ResolutionOfSeqG6),&T$F\oF\oF\o9$9%9&T&Q)TRUNCATEFHT'@%-%4homalg/IsZero ModuleG6%&&FK6#""#6#F]qFaqFcq>FT-%2homalg/ZeroModuleG6$FaqFcq>FT&&FK6#F\o6#F\q@ %-Ffq6%&&FK6#""&F\rFaqFcq>8&F^r>F^s&&FK6#""%Fer6%-%%copyG6#FT-Ffs6#&&FKFboF\r-F fs6#F^sFHFH6(F&F^qF-9'F0FK/FaoQKRETURN_FunctorMap_of_the_functor_to_deriveFH-Fe n6#&F_qFjq/FaoQIRETURN_FunctorMaps_of_a_composed_functorFH-Fen6#%%NULLG/FaoQ;RE TURN_morphism_on_objectsFHFgt-Fen6#-&F_qFdr6%FaoF_tFK?&F^s7#-%"$G6#;F\o,&-%%nop sG6#F_q#F\oF[rFSF\o%%trueG@$-FW6$&F_q6#,&F\oF\oF^sF[rFdoC$@*/F`vFho-Fen6#7#f*FH 6#FapFHFHC$>FK-Fgp6#-%5homalg/ResolveModuleG6'F\qFaqT(FbqT)@%-Ffq6%FhqFbwFcw-F_ r6$FbwFcw-Ffs6#FbrFHFH6*F&F^qF+F`qF-F_tF0FK/F`vFat-Fen6#&F_q6#,&F[rF\oF^sF[r/F` vFftFgt/F`vF[uFgtF\u@$2,&FcsF\oFTF\o9#>8'-Ffs6#-%2homalg/GetOptionsG6$&FQ6#;F\s F]oFK@$4-%)assignedG6#&Fix6#Q<pos_of_NORMALIZE_GENERATORSFH>8(-F_u6%QCRETURN_pr oc_to_readjust_generatorsFHF_tFK>8)F_y>8*F_u>8+Fdt>8,-%4homalg/SyzygiesDataG6'F ^qF`qF_tQ)USE_FAILFHFK@%/Ffz%%FAILGC(>8-Fit@$-Fey6#&Fix6#QCvar_to_assign_embedd ing_generatorsFHC$>F`[l/&Fix6#QJpos_of_var_to_assign_embedding_generatorsFHFit- %'assignG6$Fd[l7#-&FK6#%%ZeroGFdr@$-Fey6#&Fix6#QBvar_to_assign_F_target_hullmod uleFHC$>F`[l6$F`[l/&Fix6#QIpos_of_var_to_assign_F_target_hullmoduleFHFit-F^\l6$ Fh\lF`\l@$-Fey6#&Fix6#QTvar_to_assign_proc_to_express_generators_abstractlyFHC$ >F`[l6$F`[l/&Fix6#Qenpos_of_var_to_assign_proc_to_express_generators_abstractly FHFit-F^\l6$Fg]lf*6#%$etaGFHFHFH""!FHFHFH@$07#F`[l7">F`z-%#opG6#-%'subsopG6$F`[ l7#F`z-Fen6#-Fbz6&-F_r6$F_tFKF_tF`zFKC%>8/&FfzFdr>8.&FfzFjq>80&FfzFbo>83-Fdz6*F [`lF^`lFa`lF_t/Q3var_to_assign_F_stFH.81/QNvar_to_assign_F_target_unconverted_g eneratorsFH.82/Qgnvar_to_assign_F_target_proc_to_express_generators_abstractlyF H.88FK>84&Fj`lFjq/Q9FK_normalized_generatorsFHF^al@$-Fey6#F^al>Fdal-%9homalg/Re placeGeneratorsG6%FdalF^alFK>85-%0homalg/CokernelG6'Fd`lFdalF_tF`zFK@$-Fey6#&Fi x6#QBvar_to_assign_connecting_hom_procFHC%>86-%3homalg/CokernelEpiG6&Fd`lFdalF_ tFK>87f*6$Fe^l%#M_GFHFHFH-%3homalg/ComposeMapsG6'-Fcw6'T#F^qF_qFaqFcqT+T-FaqFcq FHFH6.F;F[`lF-F_tF0FKF7FdzFBF\clFAF`bl-F^\l6$FgblFacl@$Fe]l@$3-Fey6#Fbal-FW6$Fb alFYC%@$4-Fey6#F\cl>F\clF]cl>89f*Fd^lFHFHFH-F]_l6#-%4homalg/RingNotationG6$-%6h omalg/NormalizeInputG6$-Ffcl6'7#-Fjcl6#F^qT%FcqT*F[dlF[dlF[dlFHFH6,FDFbalFBF\cl FAF`blF-F_tF0FK-F^\l6$Fg]lF^el@%3-Fey6#F[z4/F[zFit-%9homalg/ConvertGeneratorsG6 &F`blF[zF`zFKF`blFHFHFHFH, QChomalg/RightSatelliteOfCofunctor.mFH M7R0 I.homalg/SubMatf*6&%"AG%"BG'%$varG%%listG%,RingPackageG6%%#RPG%$narG%*minus_one G6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-%1hom alg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F:6#;"" ",&F<FKF=F<-%.homalg/AddMatG6&9$-%.homalg/MulMatG6&F<9%9&F4FUF4F1F1F1F1, Q0homalg/SubMat.mF1 M7R0 I4homalg/SyzygiesDataf*6&'%"qG%*nonnegintG%"AG%$varG%,RingPackageG6*%#RPG%$narG %%optsG%$resG%%rdimG%#muG%"KG%%Pq_1G6%%fnCopyright~(C)~2007~by~Mohamed~Barakat. ~All~rights~reserved.G%'systemG%)rememberG6"C*>8$-%1homalg/tablenameG6%9!&9"6#! ""8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC@$2,&""$FRFDF R9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FA6#;""%FSF;>8'-%:homalg/ResolutionOfMo duleG6&9%9&/Q)TRUNCATEF89$F;>8(-%.homalg/ResDimG6$F`oF;@)2,&-%%nopsG6#FjoFRFCFR Fho@%-%)assignedG6#&FZ6#Q0pos_of_USE_FAILF8-FK6#%%FAILG-FK6#7%7#&F;6#%$OneG-&F; 6#%'matrixG6#7#-&F;6#%%ZeroG6#FRFaq/Fap,&FhoFRFRFR@%-%4homalg/IsZeroModuleG6%&F `oF_rFeoF;C$>8)7#-F\r6#&FjoF_r>8*FfrC$>FirFfr>F_sFjr/Fho""!C$>Fir-Ffq6#7#-%"$G6 $F[r&FjoFB>F_sFfrC$>Fir&F`o6#""#>F_sFfr@%Fcs>8+-%2homalg/ZeroModuleG6$FeoF;>Fgt -%2homalg/FreeModuleG6%&Fjo6#,$FhoFCFeoF;7%-Ffn6#F_s-Ffn6#FirFgtF8F8F8F8, Q6homalg/SyzygiesData.mF8 M7R0 I8homalg/TensorProductMapf*6(%"MG%$phiG%"NG%"LG'%$varG%%listG%,RingPackageG6&%# RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~r ights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$ -%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&&F?6#;""'FQ>8'f* 6#F%F6F6F6-%5homalg/TensorProductG6%9$T$&F?6#;""#FAF6F66$F(9'-%2homalg/FunctorM apG6)FY7#Fin9%7#9&9(FSF9F6F6F6F6, Q:homalg/TensorProductMap.mF6 M7R0 I5homalg/TensorProductf*6&%#_MG%#_NG'%$varG%%listG%,RingPackageG60%#RPG%$narG%$ idNG%$idMG%%optsG%"MG%"NG%#l0G%$_l0G%#M1G%#N1G%"GG%#MNG%3tensor_target_hullG6#% [oCopyright~(C)~2005-2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C1>8$-%1ho malg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F?%*procedureG-%'RETURNG6#-F?6#&FE6#;" "",&FGFVFHFG@$-FK6$&FE6#FV%'stringGC$@(/FenQCRETURN_ignore_embedding_generators F<-FO6#%%trueG/FenQ;RETURN_morphism_on_objectsF<C$>8&-%3homalg/IdentityMapG6%9% 9&F?-FO6#f*6#%$phiGF<6$%)operatorG%&arrowGF<-%4homalg/KroneckerMatG6&9$T#T&T'F< F<6(F.FcoF(FhoF,F?/FenQ1RETURN_co_contraF<-FO6#Q*covariantF<-FO6#%%NULLG@$-FK6$ &FE6#""#FgnC$@(/FdqF[oF\o/FdqF`oC$>8'-Feo6%FdpFhoF?-FO6#f*F\pF<F^pF<-Fbp6&FepFd pFfpFgpF<F<6(F/F]rF(FhoF,F?/FdqFjpF[qF^q@$2,&""$FVFHFV9#>8(-%%copyG6#-%2homalg/ GetOptionsG6$&FE6#;""%FWF?>8)-%6homalg/NormalizeInputG6$FdpF?>8*-F[t6$FgoF?>8+- &F?6#%3NumberOfGeneratorsG6#Fis>8,-Fdt6#F^t>8--Fbp6&Fis-Feo6%FitFhoF?FhoF?>8.-F bp6&-Feo6%FbtFhoF?F^tFhoF?>8/-%$mapG6$f*6#%"aGF<F^pF</FdpFdpF<F<F<-%7homalg/Std BasisVectorsG6$*&FbtFVFitFVF?>80-%4homalg/SumRelationsG6&F]uFcuFhoF?@$-%)assign edG6#&F]s6#QBvar_to_assign_F_target_hullmoduleF<C$>81-&F?6#%'matrixG6#-F[t6$Ffv F?-%'assignG6$F^wFcw-%4homalg/PresentationG6&FiuFfvFhoF?F<F<F<F<, Q7homalg/TensorProduct.mF< M7R0 I;homalg/BasisOfColumnsCoefff*6&%"MG'%$varG%%listG%"VG%,RingPackageG6&%#RPG%$na rG%"UG%"BG6%%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G%'sy stemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*proced ureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8'-%6homalg/NormalizeInputG6$-%2homalg /BasisCoeffG6&-%2homalg/InvolutionG6%9$9%F7Ffn8&F7F7-%'assignG6$9&-FY6%FgnFfnF7 -FY6%FQFfnF7F4F4F4F4, Q=homalg/BasisOfColumnsCoeff.mF4 M7R0 IAhomalg/DecideZeroRowsEffectivelyf*6'%"AG%"BG'%$varG%%listG%"UG%,RingPackageG6 $%#RPG%$narG6%%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G%' systemG%)rememberG6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*proc edureG-%'RETURNG6#-F66#&F<6#;""",&F>FMF?F>-&F66#%'matrixG6#-%6homalg/NormalizeI nputG6$-%3homalg/ReduceCoeffG6#F<F6F3F3F3F3, QChomalg/DecideZeroRowsEffectively.mF3 M7R0 I-homalgA/initf*6"F$6#%ioCopyright~(C)~2004~by~Mohamed~Barakat~and~Daniel~Rober tz.~All~rights~reserved.GF$-%,homalg/initG6#9"F$F$F$F$, Q/homalgA/init.mF$ M7R0 I;homalg/CocycleOfExtension1f*6)%"NG%&alphaG%"EG%%betaG%"MG%$varG%,RingPackageG 6,%#RPG%$narG%%dataG%#d1G%#P0G%&sigmaG%$etaG%$resG%1abstract_cocycleG%$extG6%%i oCopyright~(C)~2007~by~Mohamed~Barakat~and~Barbara~Bremer.~All~rights~reserved. G%'systemG%)rememberG6"C.>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F>%*p rocedureG-%'RETURNG6#-F>6#&FD6#;""",&FFFUFGFF>8&-%4homalg/SyzygiesDataG6&FU9(9) F>>8'&FX6#""#>8(&FX6#""$>8)-%3homalg/LeftinverseG6'9&9'FfnFgnQ)NO_CHECKF;>8*-%4 homalg/CompleteImSqG6)FinFco9$9%FgoFgnF>>8+%%NULLG@$5-%)assignedG6#&%%optsG6#QA pos_of_return_abstract_generatorF;-Fgp6#&Fjp6#Q2pos_of_return_ExtF;>8--%+homalg /ExtG6(FUFfnF_pFgn/QTvar_to_assign_proc_to_express_generators_abstractlyF;.8,F> @%Ffp>Fbp6$Fbp/-Fjq6#-%%copyG6#F[pFar>Fbp6$FbpFar@$F]q>Fbp6$-Fbr6#Fbp/Q$ExtF;Fc q-%#opG6#-%$mapG6$f*6#%"iGF;6$%)operatorG%&arrowGF;-Fbr6#&7#T#6#F_pF;F;6$F4Fbp7 #-%"$G6#;FU-%%nopsG6#7#FbpF;F;F;F;, Q=homalg/CocycleOfExtension1.mF; M7R0 I/homalg/Coimagef*6'%#_MG%#_AG%#_NG%%_varG%,RingPackageG6)%#RPG%$narG%%optsG%"M G%"AG%"NG%$varG6%%[oCopyright~(C)~2006-2007~by~Mohamed~Barakat.~All~rights~rese rved.G%'systemG%)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$ F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@%2,&""#FPFBFP9#>8&-%%copyG6# -%2homalg/GetOptionsG6$&F?6#;""$FQF9>&FX6#Q2number_of_optionsF6""!@$2,&FVFPF^oF A,&F\oFPFBFP-FI6#-%0homalg/CoimageFG6#F?@%/FdoFeoC%>8(9$>8)9%>8*9&C&>8'F`p>F_pF cp>FbpFfp>Fep9'@%-%)assignedG6#Fip-%0homalg/CokernelG6&-%2homalg/SyzygiesOpG6&F _pFbpFepF9FipFepF9-%1homalg/CokernelFG6%FeqFepF9F6F6F6F6, Q1homalg/Coimage.mF6 M7R0 I1homalg/EqualMapsf*6'%#_AG%#_BG%"MG%$varG%,RingPackageG6(%#RPG%$narG%%optsG%"A G%"BG%)optionalG6%%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~rights~res erved.G%'systemG%)rememberG6"C*>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6 $F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@@%2,&""$FOFAFO9#>8&-%%copyG6 #-%2homalg/GetOptionsG6$&F>6#;""%FPF8>&FW6#Q2number_of_optionsF5""!@$2,&FUFOF]o F@,&F[oFOFAFO-FH6#-%2homalg/EqualMapsFG6#F>>8'-%6homalg/NormalizeInputG6$9$F8>8 (-F]p6$9%F8>8)&F>6#;""&FP-%1homalg/IsZeroMapG6'-%.homalg/SubMatG6&F[pFap9'F89&F aqFfpF8F5F5F5F5, Q3homalg/EqualMaps.mF5 M7R0 I4homalg/Functor_Extqf*6$%"qG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~ All~rights~reserved.G%'systemG%)rememberGF'7&f*6#%"MGF'F'F'-%,homalg/ExtqG6&T$9 $T&&9"6#;""#!""F'F'6&F%F4F&9%f*6%F/%$phiG%"NGF'F'F'-%/homalg/ExtqMapG6(F3F4F=9& F5&F76#;""%F;F'F'F<F=f*6#%"PGF'F'F'f*F?F'F'F'-%0homalg/Extq2MapG6(F3F5F4F=FEFFF 'F'6&F%F3FLF4F'F'6$F%F4F'F'F'F', Q6homalg/Functor_Extq.mF' M7R0 I8homalg/Functor_LHomHom2f*6%%"qG%"AG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~B arakat.~All~rights~reserved.G%'systemG%)rememberGF(7(f*6#%"MGF(F(F(-%/homalg/LH omHomG6'T$T&9$T(&9"6#;""#!""F(F(6(F%F6F&9%F'9&f*6%F0%$phiG%"NGF(F(F(-%3homalg/L HomHom2MapG6)F4F5F6F?F@F7&F96#;""%F=F(F(F>F?f*6#%"PGF(F(F(f*FBF(F(F(-%2homalg/L HomHomMapG6)F4F6F?F@F5F7FHF(F(6(F%F4FNF6F'F5F(F(6&F%F6F'F@F@f*FMF(F(F(f*FBF(F(F (-%3homalg/LHomHom3MapG6)F4F5F7F6F?F@FHF(F(6(F%F4F&F5FNF6F(F(6&F%F6F&F?F(F(F(F(, Q:homalg/Functor_LHomHom2.mF( M7R0 I2homalg/FunctorMapf*6(%(FunctorG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG68%# RPG%$narG%%optsG%"oG%)optionalG%,functormapsG%&F2_stG%&F2MapG%*co_contraG%*COVA RIANTG%'sourceG%'targetG%)F_sourceG%)F_targetG%>F_source_embedding_generatorsG% >F_target_embedding_generatorsG%.F_target_hullG%5normalize_generatorsG%%F_stG%( phi_indG%+functormapG%/phi_on_objectsG6%%[oCopyright~(C)~2004-2006~by~Mohamed~B arakat.~All~rights~reserved.G%'systemG%)rememberG6"CG>8$-%1homalg/tablenameG6%9 !&9"6#!""8%@$-%%typeG6$FK%*procedureG-%'RETURNG6#-FK6#&FQ6#;""",&FSF\oFTFS@$2,& ""&F\oFTF\o9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FQ6#;""'F]oFK>8'%%NULLG@$-%)a ssignedG6#&Fdo6#Q0pos_of_F_sourceFH>F`p6$F`pFfp@$-Fdp6#&Fdo6#QEpos_of_F_source_ embedding_generatorsFH>F`p6$F`pF^q@$-Fdp6#&Fdo6#Q0pos_of_F_targetFH>F`p6$F`pFfq @$-Fdp6#&Fdo6#QEpos_of_F_target_embedding_generatorsFH>F`p6$F`pF^r@$-Fdp6#&Fdo6 #Q;pos_of_F_target_hullmoduleFH>F`p6$F`pFfr>8(-%#opG6#-%'subsopG6$-F^s6#-%$mapG 6$f*6#%"aGFH6$%)operatorG%&arrowGFH/9$FapFHFHFH7#F`p7#F[p/Q(FunctorFHF_t/Fct-%% evalG6#F_t>8)-F_t6%QIRETURN_FunctorMaps_of_a_composed_functorFH9(FK@$0FitFap@%3 -FW6$Fit-F+6#FY/-%%nopsG6#Fit""#C&/Q,functormapsFHFit/F]v-Ffs6$FftFit>8+-&Fit6# Fju6(-F^s6#9%9&-F^s6#9'F]u/Q3var_to_assign_F_stFH8*FK-Fen6#-&Fit6#F\o6(&F`wFewF bv&F`wFevF]uF\sFK-%&ERRORG6$%epI~expect~a~list~of~two~procedures~implementing~f unctors~on~morphisms~or~NULL,~but~receivedGFit@$-Fdp6#&Fdo6#Q:pos_of_var_to_ass ign_F_stFH>F`p6$F`pF`x@$-Fdp6#&Fdo6#QUpos_of_var_to_assign_F_source_unconverted _generatorsFH>F`p6$F`pFhx@$-Fdp6#&Fdo6#QUpos_of_var_to_assign_F_target_unconver ted_generatorsFH>F`p6$F`pF`y@$-Fdp6#&Fdo6#Q^opos_of_var_to_assign_F_target_proc _to_express_generators_abstractlyFH>F`p6$F`pFhy>F\s-F^s6#-Fas6$-F^s6#-Ffs6$f*Fi sFHF[tFHF^tFHFHFHF`tFat>8,-F_t6%Q1RETURN_co_contraFHF]uFK@'/FhzFap-Fjw6%%,The~f unctorGF_t%at~cannot~tell~me~if~it~is~co-~or~contravariant.~This~is~an~indicati on,~that~it~is~not~a~fully~featured~functor~yet:~i.e.~cannot~be~derived~or~comp osed!G2""!-%+searchtextG6$Q'contraFHFhz>8-%&falseG>Fi[l%%trueG@%Fi[lC$>8.Fgv>8/ F[wC$>F`\lF[w>Fb\lFgv@$4-Fdp6#&Fdo6#QNvar_to_assign_F_source_unconverted_genera torsFH>Fj\lFap@$4-Fdp6#&Fdo6#QNvar_to_assign_F_target_unconverted_generatorsFH> Fb]lFap@$4-Fdp6#&Fdo6#Qgnvar_to_assign_F_target_proc_to_express_generators_abst ractlyFH>Fj]lFap@$34-Fdp6#&Fdo6#Q>F_source_embedding_generatorsFH/-F_t6%QCRETUR N_ignore_embedding_generatorsFHF]uFKF\\l>Fc^lFap@$34-Fdp6#&Fdo6#Q>F_target_embe dding_generatorsFHFf^l>F`_lFap@%3-Fdp6#&Fdo6#Q)F_sourceFHFa^l>80Fh_l>F\`l-F_t6' F`\lF]u/QEvar_to_assign_unconverted_generatorsFHFj\l/QCvar_to_assign_embedding_ generatorsFH.82FK@'-Fdp6#Fe`l/Fe^lFe`lFa^l>Fe`lFc^l>Fe`lFap@%33-Fdp6#&Fdo6#Q)F_ targetFH-Fdp6#&Fdo6#Q4F_target_hullmoduleFHF^_l>81Faal>Fjal-F_t6)Fb\lF]u/Fa`lFb ]l/QTvar_to_assign_proc_to_express_generators_abstractlyFHFj]l/Fc`l.83/QBvar_to _assign_F_target_hullmoduleFH.84FK@'-Fdp6#Fcbl/Fb_l-FfoFjblF^_l>FcblF`_l>FcblFa p@'-Fdp6#FgblC$/Q.F_target_hullFHFgbl/Fdcl-FfoFaclFdalC$>FgblFfalFecl>Fgbl7">85 -F_t6%QDRETURN_proc_to_normalize_generatorsFHF]uFK@$-Fdp6#&Fdo6#F_wC%>867$F\`lF jal@$3-Fdp6#&Fdo6#Q<pos_of_NORMALIZE_GENERATORSFH0F\dlFap>Fgdl-Ffs6&%9homalg/Co nvertGeneratorsGFgdlF\dlFK-%'assignG6$FcdlFgdl>87-F_t6%Q?RETURN_proc_to_induce_ morphismFHF]uFK@%0FielFapC&>88-F_t6%QKRETURN_FunctorMap_of_the_functor_to_deriv eFHF]uFK@$5/FaflFap4-FW6$FaflFY-Fjw6$%apI~expect~a~procedure~implementing~the~f unctor~to~be~derived~on~morphisms,~but~receivedGFafl>F\dlFap@'-FW6$FielFYC$>Fie l-Fiel6%FgvFjvF[w>89-Fafl6&FielF]uF\sFK3-FW6$FielFdu/-Fhu6#FielF\oC$>Fiel-&Fiel FewFH>Fggl--FaflF_hl6(FgvFjvF[wF]uF\sFK-Fjw6$%_pI~expect~a~procedure~(or~a~list ~of~one~procedure)~to~induce~a~morphism,~but~receivedGFielC$>Fggl-F_t6%Q;RETURN _morphism_on_objectsFHF]uFK@%/FgglFap>FgglFjv>Fggl-Fft6#-Fggl6#Fjv-%3homalg/OnM orphismsG6+F\`lFgglFjalFgblF]uFi`l/Fb_lFcbl/Q5normalize_generatorsFHF\dlFKFHFHF HFH, Q4homalg/FunctorMap.mFH M7R0 I7homalg/GetUnitPositionf*6&%#_MG%)pos_listG'%$varG%%listG%,RingPackageG6)%#RPG %$narG%"MG%"mG%"nG%"iG%"jG6#%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~ rights~reserved.G6"C)>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F8%*proce dureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%6homalg/NormalizeInputG6$9$F8>8'- &F86#%3NumberOfGeneratorsG6#FR>8(-&F86#%-NumberOfRowsGFgn?(8)FOFOFin%%trueG?(8* FOFOFXF`o@$345-%'memberG6$7$F_oFbo9%-Fho6$FboF[p0-%6homalg/InverseElementG6%&FR 6$F_oFbo9&F8%%FAILG-FH6#Fjo%%NULLGF5F5F5F5, Q9homalg/GetUnitPosition.mF5 M7R0 I3homalg/HomHomMap_Rf*6'%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%#RPG%$narG %)optionalG%(functorG6%%ioCopyright~(C)~2005~by~Mohamed~Barakat~and~Daniel~Robe rtz.~All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9 "6#!""8%@$-%%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&&F>6#; ""&FP>8'%0homalg/HomHom_RG-%2homalg/FunctorMapG6)FX7#9$9%7#9&9'FRF8F5F5F5F5, Q5homalg/HomHomMap_R.mF5 M7R0 I4homalg/HomHomOnSeqsf*6'%"AG%"BG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackage G6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~ reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typ eG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%6homalg/Functor_HomH omG6$9$9%-%5homalg/FunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q6homalg/HomHomOnSeqs.mF6 M7R0 I1homalg/HomOnSeqsf*6&%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6%%#RP G%$narG%*cofunctorG6%%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reser ved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F 8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%3homalg/Functor_HomG6#9$- %7homalg/CofunctorOnSeqsG6$FR&F>6#;""#F@F5F5F5F5, Q3homalg/HomOnSeqs.mF5 M7R0 I1homalg/ImageFEpif*6%%#_AG'%$varG%%listG%,RingPackageG6*%#RPG%$narG%%optsG%"AG %)optionalG%#imG%5image_embedding_infoG%$epiG6%%fnCopyright~(C)~2007~by~Mohamed ~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C,>8$-%1homalg/tablenameG6 %9!&9"6#!""8%@$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB@$2, &""#FQFCFQ9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F@6#;""$FRF:>8(Fjn>8'-%6homalg /NormalizeInputG6$9$F:>8)-%.homalg/ImageFG6'Fao9%/Q=var_to_assign_embedding_inf oF7.8*F_oF:@$-%)assignedG6#&FY6#Q@var_to_assign_functor_on_objectF7-%'assignG6$ FdpFgo/Q5image_embedding_infoF7-Fen6#F_p>8+-%4homalg/RightDivideFG6&FaoF\qF[pF: -%:homalg/ReduceHomomorphismG6&F_qFgoF[pF:F7F7F7F7, Q3homalg/ImageFEpi.mF7 M7R0 I3homalg/IsFreeBasisf*6%%#_MG'%$varG%%listG%,RingPackageG6&%#RPG%$narG%%optsG%" MG6%%[oCopyright~(C)~2005-2007~by~Mohamed~Barakat.~All~rights~reserved.G%'syste mG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*procedure G-%'RETURNG6#-F66#&F<6#;""",&F>FMF?F>@$2,&""#FMF?FM9#>8&-%%copyG6#-%2homalg/Get OptionsG6$&F<6#;""$FNF6>8'-%6homalg/NormalizeInputG6$9$F6@'/F[o7#-&F66#%%ZeroG6 #-&F66#%3NumberOfGeneratorsG6#F[o%%trueG-%)assignedG6#&FU6#Q/pos_of_VERBOSEF3F[ o%&falseGF3F3F3F3, Q5homalg/IsFreeBasis.mF3 M7R0 I.homalg/Kernelf*6'%"MG%"AG%"NG%$varG%,RingPackageG6+%#RPG%$narG%%optsG%$posG%) optionalG%%MrelG%%MgenG%3kernel_target_hullG%%iotaG6%%[oCopyright~(C)~2003-2008 ~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C0>8$-%1homalg/ tablenameG6%9!&9"6#!""8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&F CFRFDFC@$-FG6$&FA6#FR%'stringGC$@$/FWQ1RETURN_co_contraF8-FK6#Q*covariantF8-FK6 #%%NULLG@%2,&""#FRFDFR9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FA6#;""$FSF;>&Fdo6 #Q2number_of_optionsF8""!@$2,&FboFRF`pFC,&""%FRFDFR-FK6#-%/homalg/KernelFG6#FA> Fdo-Ffo6#-Fio6$&FA6#;""&FSF;>8'F]o@$-%)assignedG6#&Fdo6#QIpos_of_var_to_assign_ F_target_hullmoduleF8>Fhq6$Fhq/F]rF]o>8(-%#opG6#-%'subsopG6$Fhq7#Fcq>8)-%6homal g/NormalizeInputG6$9$F;@%-FG6$Fas%4homalg_presentationG>8*-%@homalg/GeneratorsO fPresentationGF`s>FgsF]o@$-F[r6#&Fdo6#QBvar_to_assign_F_target_hullmoduleF8C$>8 +-&F;6#%'matrixG6#F]s-%'assignG6$F^tFct>8,-%2homalg/SyzygiesOpG6&9%9&9'F;-%7hom alg/SubfactorModuleG6(F]uF]sFcu/Q4original_generatorsF8FgsFdrF;F8F8F8F8, Q0homalg/Kernel.mF8 M7R0 I3homalg/Leftinversef*6'%#_MG%#_AG%#_LG%%_varG%,RingPackageG6/%#RPG%$narG%%opts G%"AG%"LG%"nG%"MG%$varG%"mG%#IdG%)NO_CHECKG%"sG%#AIG6#%fnCopyright~(C)~2007~by~ Mohamed~Barakat.~All~rights~reserved.G6"C0>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F=%*procedureG-%'RETURNG6#-F=6#&FC6#;""",&FEFTFFFE@%2,&""#FTFFFT9#> 8&-%%copyG6#-%2homalg/GetOptionsG6$&FC6#;""$FUF=>&Ffn6#Q2number_of_optionsF:""! @$2,&FZFTFboFE,&F`oFTFFFT-FM6#-%4homalg/LeftinverseFG6#FC@%2Fho,&""%FTFFFTC'>8' -%6homalg/NormalizeInputG6$&FC6#FTF=>8(-Fgp6$&FC6#FYF=>8)-&F=6#%-NumberOfRowsG6 #Fep>8*7#-&F=6#%%ZeroG6#Fbq>8+&FC6#F`oC&>Fep-Fgp6$9%F=>F\q-Fgp6$9&F=>Fiq-Fgp6$9 $F=>Far9'>8,-&F=6#%3NumberOfGeneratorsGFgq>8--%7homalg/StdBasisVectorsG6$FdsF=@ $30F\q7"0-Ffs6#F\qFds-%&ERRORG6#%]oThe~second~and~third~argument~have~different ~numbers~of~'columns'!G@%-%)assignedG6#&Ffn6#Q0pos_of_NO_CHECKF:>8.%%trueG>Fau% &falseG>8/-%3homalg/RightDivideG6(FjsFepF\qFarQ)USE_FAILF:F=@$/Ffu%%FAILG-FM6#F ]v>Ffu-%:homalg/ReduceHomomorphismG6&FfuFiqFarF=@$45Fau-%-homalg/IsHomG6'F\qFfu FiqFarF=@%F`p-Fft6#%cjlhomalg~succeeded~to~compute~a~"left~inverse"~neglecting~ the~relations~of~the~target~of~the~given~map,~and~it~turned~out~that~this~"left ~inverse"~is~not~a~module~homomorphism~if~one~takes~into~account~these~relation s~and~assumes~the~omitted~source~to~be~free.~So~homalg~cannot~decide~if~there~e xists~a~left~inverse~(i.e.~a~split)~or~not!~If~the~source~of~the~given~map~is~n ot~free~it~might~help~to~specify~it~as~a~first~argument.~In~case~your~ring~is~c ommutative~you~can~use~the~slow~LeftinverseC~instead.G-Fft6#%\clhomalg~succeede d~to~compute~a~"left~inverse"~neglecting~the~relations~of~the~source~and~the~ta rget~of~the~given~map,~and~it~turned~out~that~this~"left~inverse"~is~not~a~modu le~homomorphism~if~one~takes~into~account~these~relations.~So~homalg~cannot~dec ide~if~there~exists~a~left~inverse~(i.e.~a~split)~or~not!~In~case~your~ring~is~ commutative~you~can~use~the~slow~LeftinverseC~instead.G-Fhn6#FfuF:F:F:F:, Q5homalg/Leftinverse.mF: M7R0 I=homalg/NatTrTargetToCokernelf*6&%"AG%"NG%$varG%,RingPackageG6%%#RPG%$narG%%op tsG6%%[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G%'syst emG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedur eG-%'RETURNG6#-F46#&F:6#;""",&F<FKF=F<@%2,&""#FKF=FK9#>8&-%%copyG6#-%2homalg/Ge tOptionsG6$&F:6#;""$FLF4>&FS6#Q2number_of_optionsF1""!@$2,&FQFKFinF<,&FgnFKF=FK -FD6#-%4homalg/CokernelFEpiG6#F:-%3homalg/CokernelEpiGFeoF1F1F1F1, Q?homalg/NatTrTargetToCokernel.mF1 M7R0 I5homalg/SingleNonZerof*6#'%"LG%%listG6(%#RPG%$narG%"lG%"zG%"iG%"jG6#%fnCopyrig ht~(C)~2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8$-%1homalg/tablename G6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F:6#;""",&F<FKF=F<@% 32,&FKFKF=FK9#-F@6$&F:6#""#%'posintG>8&FT>FY-%%nopsG6#9$>8'-&F46#%%ZeroGF1?&8(7 #-%"$G6#;FKFY%%trueG@$0&Fhn6#F`oFjnC$?&8)7#-Fco6#;,&F`oFKFKFKFYFfo@$0&Fhn6#F]pF jn-FD6#""!-FDFjoFipF1F1F1F1, Q7homalg/SingleNonZero.mF1 M7R0 I7homalg/Template_homalgf*6&%&alphaG%#_MG'%$varG%%listG%,RingPackageG6&%#RPG%$n arG%%optsG%"MG6#%ioCopyright~(C)~2007~by~Mohamed~Barakat~and~Daniel~Robertz.~Al l~rights~reserved.G6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*pro cedureG-%'RETURNG6#-F56#&F;6#;""",&F=FLF>F=@%2,&""#FLF>FL9#>8&-%%copyG6#-%2homa lg/GetOptionsG6$&F;6#;""$FMF5>&FT6#Q2number_of_optionsF2""!@$2,&FRFLFjnF=,&FhnF LF>FL-FE6#-%8homalg/Template_homalgFG6#F;>8'-%6homalg/NormalizeInputG6$9%F5@%-% )assignedG6#&FT6#Q5pos_of_USE_function1F2-%1homalg/function1G6%Fho9&F5-%1homalg /function2GFfpF2F2F2F2, Q9homalg/Template_homalg.mF2 M7R0 I+homalg/Torf*6''%"qG%*nonnegintG%"AG%"BG'%$varG%%listG%,RingPackageG6&%#RPG%$n arG%)optionalG%(functorG6%%[oCopyright~(C)~2005-2006~by~Mohamed~Barakat.~All~ri ghts~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$- %%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""&FR>8'-%= homalg/Functor_TensorProductG6#9&-%>homalg/LeftSatelliteOfFunctorG6(9$FZ9%9'FTF :F7F7F7F7, Q-homalg/Tor.mF7 M7R0 I;homalg/TorsionSubmoduleMapf*6'%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%#R PG%$narG%)optionalG%(functorG6%%[oCopyright~(C)~2003-2004~by~Mohamed~Barakat.~A ll~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!"" 8%@$-%%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&&F>6#;""&FP> 8'%8homalg/TorsionSubmoduleG-%2homalg/FunctorMapG6)FX7#9$9%7#9&9'FRF8F5F5F5F5, Q=homalg/TorsionSubmoduleMap.mF5 M7R0 I>homalg/TorsionSubmoduleOnSeqsf*6%'%&alphaG<$%&tableG%%listG%%_varG%,RingPacka geG6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~right s~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%t ypeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8&-%@homalg/Functor_To rsionSubmoduleGF4-%5homalg/FunctorOnSeqsG6$FQ&F=6#;FNF?F4F4F4F4, Q@homalg/TorsionSubmoduleOnSeqs.mF4 M7R0 I5homalg/compute_kappaf*6)%#_MG%&etaMNG%#_NG%&etaNLG%#_LG%$varG%,RingPackageG6) %#RPG%$narG%"LG%"MG%$syzG%"BG%"AG6#%ioCopyright~(C)~2008~by~Mohamed~Barakat~and ~Barbara~Bremer.~All~rights~reserved.G6"C*>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%6homalg/Norm alizeInputG6$&-%:homalg/ResolutionOfModuleG6&9(9)/Q)TRUNCATEF6""!F96#FPF9>8'-FU 6$&-FY6&9$FfnFgnF9FjnF9>8(-%%copyG6#&&-%5homalg/ResolveModuleG6%""#F\oFfnFjn6#F ]p>8)-%/homalg/ComposeG6&Fdo-%Qhomalg/AModuleForATwoExtensionFromTwoOneCocycles G6#F?FfnF9>8*-Fbp6&9'FdoFfnF9-%3homalg/RightDivideG6'F`p-%2homalg/InvolutionG6% FhpFfnF9FSFfnF9F6F6F6F6, Q7homalg/compute_kappa.mF6 M7R0 I8homalg/BasisOfRowsCoefff*6&%"MG'%$varG%%listG%"UG%,RingPackageG6$%#RPG%$narG6 %%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)reme mberG6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETU RNG6#-F56#&F;6#;""",&F=FLF>F=-&F56#%'matrixG6#-%6homalg/NormalizeInputG6$-%2hom alg/BasisCoeffG6#F;F5F2F2F2F2, Q:homalg/BasisOfRowsCoeff.mF2 M7R0 I(homalgZ=6"%&falseGE\[l!F$, Q*homalgZ.mF$ M7R0 I6homalg/CompleteKerSqFf*6'%'alpha2G%%_phiG%'_beta2G'%$varG%%listG%,RingPackage G6(%#RPG%$narG%$phiG%*apply_phiG%&beta2G%(kphiCb2G6#%fnCopyright~(C)~2004~by~Mo hamed~Barakat.~All~rights~reserved.G6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$ -%%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@@%-FD6$9%FF>8'FTC$> 8&-%6homalg/NormalizeInputG6$FTF8>FVf*6#%"aGF56$%)operatorG%&arrowGF5-%/homalg/ ComposeG6&T#9$T&T'F5F56(F/FYF)9'F-F8>8(-Fen6$9&F8>8)-F_o6&FYFhoFfoF8-%3homalg/L eftDivideFG6&FboF]pFfoF8F5F5F5F5, Q8homalg/CompleteKerSqF.mF5 M7R0 I4homalg/CompleteSeqFf*6'%%rhoAG%&alphaG%%rhoBG%$varG%,RingPackageG6)%#RPG%$nar G%#aiG%"mG%#biG%$seqG%"iG6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~rights ~reserved.G%'systemG%)rememberG6"C,>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%ty peG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@%-FE6$9$%%listG>8&7#-%" $G6#;FP-%%nopsG6#FU>FX-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGFjn>8'-Fin6#FX@% -FE6$9&FV>8(7#-Fen6#;FP-Fin6#F_p>Fap-F]o6#-F`o6$Fbo-Fdo6#-FgoFgp@$0Fio-Fin6#Fap -%&ERRORG6#%_oThe~number~of~entries~of~the~first~and~third~argument~must~coinci de!G>8)-%&tableGF6>&FiqF@-%%copyG6#9%?&8*7#-Fen6#;""!,&FioFPFAFP%%trueG>&Fiq6#F cr-%5homalg/CompleteImSqFG6'-F_r6#&FU6#&FX6#,&FPFPFcrFP-F_r6#&Fiq6#,&FcrFPFAFP- F_r6#&F_p6#&FapFfs9'F9-F_r6#FiqF6F6F6F6, Q6homalg/CompleteSeqF.mF6 M7R0 I3homalg/ComposeMapsf*6'%#_AG%#_BG%#_MG%$varG%,RingPackageG6)%#RPG%$narG%%optsG %"AG%"BG%"CG%"MG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved .G6"C,>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*procedureG-%'RETURNG 6#-F76#&F=6#;""",&F?FNF@F?@%2,&""$FNF@FN9#>8&-%%copyG6#-%2homalg/GetOptionsG6$& F=6#;""%FOF7>&FV6#Q2number_of_optionsF4""!@$2,&FTFNF\oF?,&FjnFNF@FN-FG6#-%/homa lg/ComposeG6%-%6homalg/NormalizeInputG6$&F=6#FNF7-Fjo6$&F=6#""#F7&F=6#;FSF?>8'- Fjo6$9$F7>8(-Fjo6$9%F7>8*-Fjo6$9&F7>8)-Fgo6&FgpF\q9'F7>Faq-%5homalg/BasisOfModu leG6%FaqFiqF7-%:homalg/ReduceHomomorphismG6&FfqFaqFiqF7F4F4F4F4, Q5homalg/ComposeMaps.mF4 M7R0 I7homalg/Functor_HomHom3f*6$%"AG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Baraka t.~All~rights~reserved.G%'systemG%)rememberGF'7(f*6#%"MGF'F'F'-%.homalg/HomHomG 6&T$T&9$&9"6#;""#!""F'F'6&F%F5F&9%f*6%F/%$phiG%"NGF'F'F'-%2homalg/HomHom3MapG6( F3F4F5F=9&&F76#;""%F;F'F'F<F5f*6#%"PGF'F'F'f*F?F'F'F'-%1homalg/HomHomMapG6(F5F= FEF3F4FFF'F'6&F&F3FLF5F'F'6$F&F=F=f*FKF'F'F'f*F?F'F'F'-%2homalg/HomHom2MapG6(F3 F5F=FEF4FFF'F'6&F%F3FLF5F'F'6$F%F5F'F'F'F', Q9homalg/Functor_HomHom3.mF' M7R0 I8homalg/ImageOfSubmodulef*6'%#_AG%#_BG%#_MG%$varG%,RingPackageG6)%#RPG%$narG%% optsG%"AG%"BG%"CG%"MG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~res erved.G6"C->8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*procedureG-%'RE TURNG6#-F76#&F=6#;""",&F?FNF@F?@%2,&""$FNF@FN9#>8&-%%copyG6#-%2homalg/GetOption sG6$&F=6#;""%FOF7>&FV6#Q2number_of_optionsF4""!@$2,&FTFNF\oF?,&FjnFNF@FN-FG6#-% 9homalg/ImageOfSubmoduleFG6#F=>8'-%6homalg/NormalizeInputG6$9$F7>8(-F\p6$9%F7>8 *-F\p6$9&F7>8)-%/homalg/ComposeG6&FjoF`p9'F7>Fep-%5homalg/BasisOfModuleG6%FepF^ qF7-%.homalg/ReduceG6&FjpFepF^qF7-%4homalg/RingNotationG6$%"%GF7F4F4F4F4, Q:homalg/ImageOfSubmodule.mF4 M7R0 I7homalg/IsStablyFreeFFRf*6%%"PG%$varG%,RingPackageG6%%#RPG%$narG%"pG6#%fnCopyr ight~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C&>8$-%1homalg/tablena meG6%9!&9"6#!""8%@$-%%typeG6$F1%*procedureG-%'RETURNG6#-F16#&F76#;""",&F9FHF:F9 >8&-%>homalg/ProjectiveDimensionFFRG6#F7@%/FK""!%%trueG%&falseGF.F.F.F., Q9homalg/IsStablyFreeFFR.mF. M7R0 I4homalg/KroneckerMatf*6&%#_AG%#_BG%$varG%,RingPackageG6)%#RPG%$narG%"AG%"BG%"r G%"cG%"ZG6#%fnCopyright~(C)~2003~by~Mohamed~Barakat.~All~rights~reserved.G6"C*> 8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*procedureG-%'RETURNG6#-F66# &F<6#;""",&F>FMF?F>>8&-%6homalg/NormalizeInputG6$9$F6>8'-FR6$9%F6>8(-&F66#%-Num berOfRowsG6#FP>8)-&F66#%3NumberOfGeneratorsGFjn>8*-&F66#%'matrixG6#7#-%"$G6$-&F 66#%%ZeroG6#-F^o6#FV-FgnFbp-Fdo6#-&%'linalgG6#%,blockmatrixG6%FenF\o-%$mapG6$f* 6#%"aGF3F3F3C$-%.homalg/MulMatG6&FTT#T&T'@%/%"%G-&FhqF^pF3T)F[rF3F36*F-FVF'9&F* F6F0Fbo-F]q6$%#opG-%(convertG6$FP%)listlistGF3F3F3F3, Q6homalg/KroneckerMat.mF3 M7R0 I/homalg/LHomMapf*6)%"qG%"MG%$phiG%"NG%"LG'%$varG%%listG%,RingPackageG6&%#RPG%$ narG%)optionalG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~righ ts~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%% typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""(FR>8'f*6#F &F7F7F7-%,homalg/LHomG6&T$9$T&&F@6#;""#FBF7F76&F%F[oF)9(-%2homalg/FunctorMapG6) FZ7#9%9&7#9'9)FTF:F7F7F7F7, Q1homalg/LHomMap.mF7 M7R0 I3homalg/OnMorphismsf*6('%#FMG%4homalg_presentationG%$phiG'%#FNGF'%4F_target_hu llmoduleG'%$varG%%listG%,RingPackageG6'%#RPG%$narG%%optsG%8FM_generators_to_act _onG%8FN_generators_to_act_onG6%%[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~ All~rights~reserved.G%'systemG%)rememberG6"C)>8$-%1homalg/tablenameG6%9!&9"6#!" "8%@$-%%typeG6$F=%*procedureG-%'RETURNG6#-F=6#&FC6#;""",&FEFTFFFE@$2,&""&FTFFFT 9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FC6#;""'FUF=@$4-%)assignedG6#&Ffn6#Q5nor malize_generatorsF:>Ffo%%NULLG@%-Fdo6#&Ffn6#Q>F_source_embedding_generatorsF:>8 'F^p>Fbp-%@homalg/GeneratorsOfPresentationG6$9$F=@%-Fdo6#&Ffn6#Q>F_target_embed ding_generatorsF:>8(F[q>F_q-Fep6$9&F=@%-Fdo6#&Ffn6#Q/pos_of_inverseF:-%7homalg/ CompleteImSqInvG6*FgpFbp9%F_q9'9(FfoF=-%4homalg/CompleteImSqG6*FbpF]rFcqF_qF^rF _rFfoF=F:F:F:F:, Q5homalg/OnMorphisms.mF: M7R0 I:homalg/ReduceRingElementsf*6%%#_MG'%%_varG%%listG%,RingPackageG6(%#RPG%$narG% "MG%$varG%"vG%(remprocG6%%[oCopyright~(C)~2004-2006~by~Mohamed~Barakat.~All~rig hts~reserved.G%'systemG%)rememberG6"C)>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-% %typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%6homalg/Normaliz eInputG6$9$F8>8'-%5homalg/NormalizeRingG6$9%F8>8(-%8homalg/ResidueClassRingG6$F XF8@)/Fhn-&F86#%%ZeroG6#FO-FH6#FR-FD6$FhnFF>8)Fhn-%)assignedG6#&F86#%$REMG>Fhof *6#%"aGF5F5F5-&T'F]p6%FV&T#Fbo&T%FboF5F56(F/FhnF.FXF+F8>Fhof*FapF5F5F5-%.homalg /ReduceG6&FVFhpFipFepF5F5F[q-%$mapG6$FhoFRF5F5F5F5, Q<homalg/ReduceRingElements.mF5 M7R0 I5homalg/RHomHomOnSeqsf*6(%"qG%"AG%"BG'%&alphaG<$%&tableG%%listG%%_varG%,RingPa ckageG6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~ri ghts~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$- %%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&-%7homalg/Functor _RHomHomG6%9$9%9&-%5homalg/FunctorOnSeqsG6$FT&F@6#;""%FBF7F7F7F7, Q7homalg/RHomHomOnSeqs.mF7 M7R0 I2homalg/SyzygiesOpf*6&%"AG%"NG%$varG%,RingPackageG6$%#RPG%$narG6%%[oCopyright~ (C)~2003-2006~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C& >8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36 #&F96#;""",&F;FJF<F;@$29#,&""$FJF<FJ-FC6#-%3homalg/SyzygiesOpFG6#F9&-%:homalg/R esolutionOfModuleG6)9$9&/Q)TRUNCATEF0FJ/Q+LOWERBOUNDF0FJ/Q*GEOMETRICF0%%trueG/Q 0TARGETRELATIONSF09%F36#FJF0F0F0F0, Q4homalg/SyzygiesOp.mF0 M7R0 I2homalg/Tor2OnSeqsf*6'%"qG%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6 %%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~re served.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG 6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%4homalg/Functor_Tor2G6 $9$9%-%5homalg/FunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q4homalg/Tor2OnSeqs.mF6 M7R0 I3homalg/Torq2OnSeqsf*6'%"qG%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG 6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~r eserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%type G6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%5homalg/Functor_Torq2 G6$9$9%-%5homalg/FunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q5homalg/Torq2OnSeqs.mF6 M7R0 I;homalg/TorsionSubmoduleEmbf*6%%"MG%$varG%,RingPackageG6'%#RPG%$narG%%optsG%$t orG%7torsion_embedding_infoG6%%[oCopyright~(C)~2003-2005~by~Mohamed~Barakat.~Al l~rights~reserved.G%'systemG%)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8 %@$-%%typeG6$F5%*procedureG-%'RETURNG6#-F56#&F;6#;""",&F=FLF>F=@$2,&""#FLF>FL9# >8&-%%copyG6#-%2homalg/GetOptionsG6$&F;6#;""$FMF5>8'-%8homalg/TorsionSubmoduleG 6&9$9%/Q=var_to_assign_embedding_infoF2.8(F5@$-%)assignedG6#&FT6#Q@var_to_assig n_functor_on_objectF2-%'assignG6$FhoFjn-FV6#FcoF2F2F2F2, Q=homalg/TorsionSubmoduleEmb.mF2 M7R0 I=homalg/ConvertColumnToMatrixf*6'%"MG%"rG%"cG'%$varG%%listG%,RingPackageG6%%#R PG%$narG%(entriesG6#%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserv ed.G6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETUR NG6#-F56#&F;6#;""",&F=FLF>F=>8&-%$mapG6$%#opG-%6homalg/NormalizeInputG6$9$F5-&F 56#%+matrixtypeG6%9%9&FOF2F2F2F2, Q?homalg/ConvertColumnToMatrix.mF2 M7R0 I4homalg/CheckComplexf*6%'%(complexG%%listG'%$varGF'%,RingPackageG6&%#RPG%$narG %"lG%"jG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8 $-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6#-F56#& F;6#;""",&F=FLF>F=@$/9$7"-FE6#FQ>8&-%%nopsG6#FP7#-%"$G6#;FL-%%iquoG6$,&FUFL!"#F L""#-%$mapG6$f*6#%"iGF26$%)operatorG%&arrowGF2-%8homalg/CheckCompositionG6%-%$s eqG6$&T$6#,(FPF]oFLFLT%F=/Fap7%F=FLF]oT(T)F2F26*F&FPF/8'F)9%F,F5%"%GF2F2F2F2, Q6homalg/CheckComplex.mF2 M7R0 I;homalg/CokernelOfExtensionf*6"6'%#RPG%$narG%%optsG%$extG%"iG6#%enCopyright~(C )~2007~by~Barbara~Bremer.~All~rights~reserved.GF$C%>8$-%1homalg/tablenameG6%9!& 9"6#!""8%@$-%%typeG6$F/%*procedureG-%'RETURNG6#-F/6#&F56#;""",&F7FFF8F7@&/9#FFC %>8'-%%copyG6#&F56#FF?(8(FFFF,&-%%nopsG6#FM#FF""#FYFF%%trueG>&FM6#,&FTFZF7FF-%) CokernelG6$Fgn%$varG-FOFX/FJFZC%>FM-FO6#&F56#FZ?&FT-%(indicesGFXFen>&FM6#-%#opG 6#FT-F[o6$FjoF]o6$FNF^oF$F$F$F$, Q=homalg/CokernelOfExtension.mF$ M7R0 I8homalg/CompleteImSqInvFf*6'%(_alpha1G%%_phiG%'_beta1G'%$varG%%listG%,RingPack ageG6+%#RPG%$narG%$phiG%*apply_phiG%*normalizeG%*NORMALIZEG%'alpha1G%&beta1G%(i a1CphiG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$ -%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&F A6#;""",&FCFRFDFC@%-FG6$9%FI>8'FWC$>8&-%6homalg/NormalizeInputG6$FWF;>FYf*6#%"a GF86$%)operatorG%&arrowGF8-%/homalg/ComposeG6&9$T#T&T'F8F86(F/FfnF)9'F-F;@%32,& ""%FRFDFR9#-FG6$&FA6#""&FIC&>8(Fbp>8*Fdo>8+-%$mapG6$Fgp9&>8)%%trueGC%>Fip-Fhn6$ FdoF;>F[qF_q>Faq%&falseG>8,-FY6#Fip@$Faq>F[r-F]q6$Fgp-%%copyG6#F[r-%4homalg/Rig htDivideFG6&F[qF[rFioF;F8F8F8F8, Q:homalg/CompleteImSqInvF.mF8 M7R0 I3homalg/Ext_ROnSeqsf*6&%"qG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6%%# RPG%$narG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~res erved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6 $F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%5homalg/Functor_Ext_RG6 #9$-%7homalg/CofunctorOnSeqsG6$FR&F>6#;""#F@F5F5F5F5, Q5homalg/Ext_ROnSeqs.mF5 M7R0 I6homalg/Functor_HomHomf*6$%"AG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat .~All~rights~reserved.G%'systemG%)rememberGF'7(f*6#%"MGF'F'F'-%.homalg/HomHomG6 &9$T$T&&9"6#;""#!""F'F'6&F%F3F&9%f*6%F/%$phiG%"NGF'F'F'-%1homalg/HomHomMapG6(F3 F=9&F4F5&F76#;""%F;F'F'F<F3f*6#%"PGF'F'F'f*F?F'F'F'-%2homalg/HomHom2MapG6(F4F3F =FEF5FFF'F'6&FLF3F&F4F'F'6$F&F=F=f*FKF'F'F'f*F?F'F'F'-%2homalg/HomHom3MapG6(F4F 5F3F=FEFFF'F'6&FLF3F%F4F'F'6$F%F3F'F'F'F', Q8homalg/Functor_HomHom.mF' M7R0 I5homalg/Functor_LHom2f*6$%"qG%"AG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat. ~All~rights~reserved.G%'systemG%)rememberGF'7&f*6#%"MGF'F'F'-%,homalg/LHomG6&T$ T&9$&9"6#;""#!""F'F'6&F%F5F&9%f*6%F/%$phiG%"NGF'F'F'-%0homalg/LHom2MapG6(F3F4F5 F=9&&F76#;""%F;F'F'F<F=f*6#%"PGF'F'F'f*F?F'F'F'-%/homalg/LHomMapG6(F3F5F=FEF4FF F'F'6&F%F3FLF5F'F'6$F%F5F'F'F'F', Q7homalg/Functor_LHom2.mF' M7R0 I9homalg/Functor_LHomHom_Rf*6#%"qG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat. ~All~rights~reserved.G%'systemG%)rememberGF&7$f*6#%"MGF&F&F&-%1homalg/LHomHom_R G6%T$9$&9"6#;""#!""F&F&6$F%F3f*6%F.%$phiG%"NGF&F&F&-%4homalg/LHomHomMap_RG6'F2F 39%9&&F56#;""%F9F&F&F:F&F&F&F&, Q;homalg/Functor_LHomHom_R.mF& M7R0 I2homalg/GetOptionsf*6#%,RingPackageG6(%#RPG%$narG%"oG%$optG%"iG%$strG6%%fnCopy right~(C)~2005~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C '>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F4 6#&F:6#;""",&F<FKF=F<>&8'6#Q2number_of_optionsF1""!?(8(FKFK,&9#FKF=F<%%trueG@,3 3-F@6$&F:6#FT%"=G-F@6$-%$lhsG6#Fgn%'stringG2FR-%+searchtextG6$Q'var_toF1F\oC&>8 )F\o@$0-%$rhsGF^o%%NULLG@%3-F@6$Fjo<$%(indexedG%'symbolG4-F@6$Fjo<$FB%&tableG>& FO6#FgoFjo-%&ERRORG6&%SExpecting~the~right~hand~side~of~the~option~numberGFT%Bt o~be~of~type~symbol~but~receivedG-%%copyG6#Fjo>&FO6#-%$catG6$Q(pos_of_F1FgoFT>F N,&FNFKFKFK-F@6$FgnF_oC%>FgoFgn>FeqFT>FNF\r3Fen/F\oQ4readjust_generatorsF1C%@$F io@%-F@6$FjoFB>&FO6#FerFjo-F]q6&F_qFT%Eto~be~of~type~procedure~but~receivedGFaq >&FO6#Q;pos_of_readjust_generatorsF1FT>FNF\r3Fen/F\oQ5normalize_generatorsF1C%@ $Fio@%Fir>&FO6#FhsFjoF^s>&FO6#Q<pos_of_normalize_generatorsF1FT>FNF\rFZC&>FgoF\ o@$Fio>FjpFjo>FeqFT>FNF\r-FD6#-Fbq6#FOF1F1F1F1, Q4homalg/GetOptions.mF1 M7R0 I2homalg/HomHom3Mapf*6)%"AG%"BG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%#RP G%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rig hts~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-% %typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""(FR>8'f*6# F'F7F7F7-%.homalg/HomHomG6&T$T&9$&F@6#;""#FBF7F76&F%F\oF&9%-%2homalg/FunctorMap G6)FZ7#9&9'7#9(9)FTF:F7F7F7F7, Q4homalg/HomHom3Map.mF7 M7R0 I/homalg/Hom.oldf*6&%#_MG%#_NG'%$varG%%listG%,RingPackageG63%#RPG%$narG%"MG%"NG %"lG%%optsG%4readjust_generatorsG%"oG%)optionalG%"pG%#l0G%#l1G%$_l0G%%HP0NG%%HP 1NG%&alphaG%$kerG6#%[oCopyright~(C)~2003-2006~by~Mohamed~Barakat.~All~rights~re served.G6"C3>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FB%*procedureG-%'R ETURNG6#-FB6#&FH6#;""",&FJFYFKFJ@$-FN6$&FH6#FY%'stringGC$@,/FhnQCRETURN_ignore_ embedding_generatorsF?-FR6#%%trueG/FhnQ;RETURN_morphism_on_objectsF?-FR6#f*6#%$ phiGF?6$%)operatorG%&arrowGF?f*6#%"aGF?FioF?-%$mapG6$f*6#%"bGF?FioF?-%/homalg/C omposeG6&T$9$T&T'F?F?6(FhoFhpF(FjpF,F[qFipF?F?6(FhoFipF(FhpF,T%F?F?6&F(9&F,FB/F hnQDRETURN_proc_to_normalize_generatorsF?-FR6#f*F]pF?FioF?-F`p6$%#opG-%(convert G6$Fip%)listlistGF?F?F?/FhnQCRETURN_proc_to_readjust_generatorsF?C%>8'-%6homalg /NormalizeInputG6$9%FB>8(-&FB6#%3NumberOfGeneratorsG6#Far-FR6#f*FcpF?FioF?-&F^q 6#%'matrixG6#-F`p6$f*F]pF?FioF?&Fhp6#;,&*&FipFYF^qFYFYFYFY*&F^qFY,&FipFYFYFYFYF ?F?6&FdpFipF0T#7#-%"$G6#;""!,&*&-%%nopsG6#FipFYF`tFJFYFJFYF?F?6&F0FgrF,FB/FhnQ1 RETURN_co_contraF?-FR6#Q.contravariantF?-FR6#%%NULLG@$-FN6$&FH6#""#FjnC$@,/FhuF ^oF_o/FhuFco-FR6#f*FgoF?FioF?f*F]pF?FioF?-F`p6$f*FcpF?FioF?-Ffp6&FipFhpFjpF[qF? F?F\qFipF?F?F]qF?F?F_q/FhuFbq-FR6#f*F]pF?FioF?FfqF?F?F?/FhuF^rC%>8&-Fcr6$FipFB> Fgr-Fir6#F_w-FR6#f*FcpF?FioF?-Fas6#-F`p6$f*F]pF?FioF?&Fhp6#;,&*(-Fjt6#FhpFYF^qF JFipFYFYFYFY*(FbxFYF^qFJF^tFYF?F?F_t7#-Fct6#;Fft,&F`tFYFJFYF?F?F\u/FhuF^u-FR6#Q *covariantF?Fbu@$2,&""$FYFKFY9#>8)-%%copyG6#-%2homalg/GetOptionsG6$&FH6#;""%FZF B@%4-%)assignedG6#&Fdy6#Q<pos_of_NORMALIZE_GENERATORSF?C%>8*f*FcpF?FioF?-Fas6#- F`p6$f*F]pF?FioF?FhsF?F?6&FdpFipF8F`tFatF?F?6&F880F,FB>8+Fby>8,F[zC$>Fd[lFdz>Ff [l-Fhq6#-%'subsopG6$/Fd[lFdu7#F[z@$-Fbz6#&Fdy6#QJpos_of_var_to_assign_embedding _generatorsF?C$>8-Fd\l@%2Fi\lFd[l>Ff[l-Fhq6#-F]\l6$/Fi\lFdu7#Ff[l>Ff[l-Fhq6#-F] \l6$/,&Fi\lFYFJFYFduFb]l>F_wF`w>FarFbr>8.Fcw>8/-&FB6#%-NumberOfRowsGFdw>Fb[lFhr >81-%/homalg/DiagMatG6$-Fct6$FarF]^lFB>82-Fh^l6$-Fct6$FarF_^lFB>83-%2homalg/Inv olutionG6%-%4homalg/KroneckerMatG6&F_w-%3homalg/IdentityMapG6%Fb[lF`qFBF`qFBF`q FB>84-%.homalg/KernelG6(Ff^lFc_lF]_lF`qFf[lFB@%-Fbz6#Fiz-%9homalg/ConvertGenera torsG6&F^`lFizFf[lFBF^`lF?F?F?F?, Q1homalg/Hom.old.mF? M7R0 I4homalg/IsSurjectivef*6&%"AG%"NG%$varG%,RingPackageG6&%#RPG%$narG%%optsG%&coke rG6#%[oCopyright~(C)~2003-2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8$ -%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F 96#;""",&F;FJF<F;@%2,&""#FJF<FJ9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F96#;""$F KF3>&FR6#Q2number_of_optionsF0""!@$2,&FPFJFhnF;,&FfnFJF<FJ-FC6#-%5homalg/IsSurj ectiveFG6#F9>8'-%0homalg/CokernelGFdo-%4homalg/IsZeroModuleG6%Ffo9&F3F0F0F0F0, Q6homalg/IsSurjective.mF0 M7R0 I5homalg/LECS2conAiBjCf*6$%%LECSG%,RingPackageG6(%#RPG%$narG%$LHSG%$EtaG%"iG%'c onhomG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C+>8$- %1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F9 6#;""",&F;FJF<F;>8&-%$mapG6$%$lhsG-%#opG6#-%%evalG6#9$>8'-%&tableGF0?&8(7'.%"AG .%%iotaG.%"BG.%#nuG.%"CG%%trueGC%-%'selectG6%%$hasGFMFhn-%%sortG6#-FO6$f*6#%"aG F06$%)operatorG%&arrowGF0-FS6$7$""!FJFXF0F0F0%"%G>&FZ6#Fhn-FO6$f*F`pF0FbpF0-%%c opyG6#&T$6#&-Fgo6%Fio-Fgo6%FioT%T'FX6#FJF0F06(F%FXF*FMF,FhnFip-Fgo6%FioFM.%&del taG-F[p6#-FO6$f*F`pF0FbpF0-FS6$FJFXF0F0F0Fip>8)-FO6$f*F`pF0FbpF0-Faq6#&Fdq6#&-F go6%Fio-Fgo6%FioF[rFarFXF]rF0F06&F%FXF*FMFip-FO6$Faq7(F[s&FZ6#Fjn&FZ6#F\o&FZ6#F ^o&FZ6#F`o&FZ6#FboF0F0F0F0, Q7homalg/LECS2conAiBjC.mF0 M7R0 I1homalg/LECS2lecsf*6$%%LECSG%,RingPackageG6)%#RPG%$narG%)conAiBjCG%"nG%"iG%"jG %%lecsG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8$ -%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F :6#;""",&F<FKF=F<>8&-%5homalg/LECS2conAiBjCG6#F:>8'-%%nopsG6#&FNF;>8*-%$seqG6$- Fen6$-%%copyG6#&FN6$,$8(F<8)/F_o;FK""'/F`o;FK,&FSFKF<FK7$FY-Fen6$-Fjn6#&FN6$F^o FS/F_o;FK""&F1F1F1F1, Q3homalg/LECS2lecs.mF1 M7R0 I@homalg/NatTrTwoTargetsToPushoutf*6(%'alpha1G%#AAG%$psiG%#B_G%$varG%,RingPacka geG6%%#RPG%$narG%%optsG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~r eserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%type G6$F6%*procedureG-%'RETURNG6#-F66#&F<6#;""",&F>FMF?F>@%2,&""$FMF?FM9#>8&-%%copy G6#-%2homalg/GetOptionsG6$&F<6#;""%FNF6>&FU6#Q2number_of_optionsF3""!@$2,&FSFMF [oF>,&""&FMF?FM-FF6#-%:homalg/PushoutPairOfMapsFG6#F<-%9homalg/PushoutPairOfMap sGFhoF3F3F3F3, QBhomalg/NatTrTwoTargetsToPushout.mF3 M7R0 I;homalg/PullbackPairOfMapsFf*6&%%_phiG%&beta1G%$varG%,RingPackageG6)%#RPG%$nar G%%optsG%$phiG%"aG%#pbG%$embG6%%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~A ll~rights~reserved.G%'systemG%)rememberG6"C+>8$-%1homalg/tablenameG6%9!&9"6#!"" 8%@$-%%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@@$2,&""$FOFAFO9 #>8&-%%copyG6#-%2homalg/GetOptionsG6$&F>6#;""%FPF8>8'-%6homalg/NormalizeInputG6 $9$F8>8(-&F86#%-NumberOfRowsG6#F]o>8)-%1homalg/PullbackFG6&Fao9%9&F8@$-%)assign edG6#&FW6#Q@var_to_assign_functor_on_objectF5-%'assignG6$Fdp%#poG>8*-%;homalg/E mbedInFactorModuleG6$FjoF86$-&F86#%'matrixG6#-&F86#%/CertainColumnsG6$F\q7#;FOF co-Fbq6#-Fgq6$F\q7#;,&FcoFOFOFOF@F5F5F5F5, Q=homalg/PullbackPairOfMapsF.mF5 M7R0 I<homalg/ResolveShortExactSeqf*6*'%"qG%*nonnegintG%#A_G%'alpha1G%"AG%'alpha2G%# _AG%$varG%,RingPackageG6=%#RPG%$narG%#K_G%&K_embG%'K_projG%#P_G%%rho_G%&KiotaG% %iotaG%"KG%%KembG%&KprojG%"PG%$rhoG%$KnuG%#nuG%#_KG%&_KembG%'_KprojG%#_PG%%_rho G%)pullbackG%%PembG%"rG%"iG%._Ktarget_hullG%-Ktarget_hullG6#%[oCopyright~(C)~20 04-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"CG>8$-%1homalg/tablenameG6%9 !&9"6#!""8%@$-%%typeG6$FP%*procedureG-%'RETURNG6#-FP6#&FV6#;""",&FXFaoFYFX@$29# ,&""(FaoFYFao-Fjn6#-%=homalg/ResolveShortExactSeqFG6#FV>8&-%&tableGFM>8'F_p>8(F _p>8)F_p>8*F_p>8+F_p>8,F_p>8-F_p>8.F_p>8/F_p>80F_p>81F_p>82F_p>83F_p>84F_p>85F_ p>86F_p>87F_p>88F_p>89F_p>8:F_p>&F\r6#""!-%6homalg/NormalizeInputG6$9)FP>&F^rF[ s-%3homalg/IdentityMapG6%Fjr9*FP>&FhqF[s-&FP6#%'matrixG6#-F^s6$9(FP>&F^qF[s-F^s 6$9'FP>8;-&FP6#%3NumberOfGeneratorsG6$FbtFP>&F`qF[s-Fds6%FgtFfsFP>&FjpF[s-Fjs6# -F^s6$9&FP>&F^pF[s-F^s6$9%FP>&FbpF[s-Fds6%FiuFfsFP@%32FfoFeo-Ffn6$&FV6#Fbo%'str ingGC'>&FbrFW-%2homalg/ZeroModuleG6$FfsFP>&FdqFWF\w>&FfpFWF\w>&FjqFW-%/homalg/Z eroMapG6&F`wF[wFfsFP>&F\qFW-Ffw6&FbwF`wFfsFPC'@%-Ffn6$F`s%4homalg_presentationG >F[wF`s>F[w-%0homalg/CokernelGFes@%-Ffn6$FetF`x>F`wFet>F`w-Fdx6%FbtFfsFP@%F^x>F bwF\v>Fbw-FdxF`v>Fdw-%%copyG6#Fhs>Fiw-Fby6#Fbu?&8<7#-%"$G6#;F\s9$%%trueGC>>&Fbr 6#Fhy-%6homalg/FreeHullModuleG6%&F\rFczFfsFP>&F`rFcz-Fjs6#-%;homalg/EmbedInFact orModuleG6$FbzFP>&FfrFcz-%0homalg/PullbackG6)&F^qFcz&FhqFczFbzFizFgzFfsFP>&FdqF cz-Fez6%F`[lFfsFP>&FhrFcz-F][l6$F`[lFP>&FbqFcz-Fjs6#-&FP6#%/CertainColumnsG6$F[ \l7#;FaoFgt>&FjqFcz-Fjs6#-Fc\l6$F[\l7#;,&FgtFaoFaoFaoFX>&FfpFcz-%.homalg/Kernel G6(Fg[lFj\lFbzFfs/Q=var_to_assign_embedding_infoFM&F\qFczFP>&FdpFcz-%4homalg/Co mpleteImSqG6)Fi]lF_\l&F^pFcz&FjpFczFd[lFfsFP@%3/FhyF\sFbvC%>&FdrF[s-Ffw6&&FbrF[ sF[wFfsFP>&FfqF[s-Ffw6&&FdqF[sF`wFfsFP>&FhpF[s-Ffw6&&FfpF[sFbwFfsFPC%>&FdrFcz-% /homalg/ComposeG6&Fiz&F^rFczFfsFP>&FfqFcz-Fh_l6&F_\l&F`qFczFfsFP>&FhpFcz-Fh_l6& F[^l&FbpFczFfsFP@$/FhyF^z[>&F\r6#,&FhyFaoFaoFao-Fe]l6)FbzFizFgzFfs/QBvar_to_ass ign_F_target_hullmoduleFM.8=/Fh]l&F^rFj`lFP/Q._Ktarget_hullFMFaal/Feal-Fby6#Faa l/Q+_Kemb[i+1]FMFcal/Fjal-Fby6#Fcal>&F^qFj`l-Fe]l6)Fg[lF_\lFd[lFfs/F_al.8>/Fh]l &F`qFj`lFP/Q-Ktarget_hullFMFdbl/Fhbl-Fby6#Fdbl/Q*Kemb[i+1]FMFfbl/F]cl-Fby6#Ffbl >&F^pFj`l-Fe]l6(Fc]lF[^lF_^lFfs/Fh]l&FbpFj`lFP/Q+K_emb[i+1]FMFfcl/Fhcl-Fby6#Ffc l>&FjpFj`l-%1homalg/KernelMapG60Fc]lF[^lF_^lFi]lFg[lF_\lFd[lFfs/Q)F_sourceFMFbc l/Q>F_source_embedding_generatorsFMFfcl/Q)F_targetFMF_bl/Q>F_target_embedding_g eneratorsFMFfbl/Q4F_target_hullmoduleFMFdblFP>&FhqFj`l-F_dl60Fg[lF_\lFd[lFj\lFb zFizFgzFfs/FbdlF_bl/FddlFfbl/FfdlFi`l/FhdlFcal/FjdlFaalFP>F_bl-F^s6$F_blFP>Fgt- FitFfel@$FbvC*>&Fbr6#,&F^zFaoFaoFaoF\w>&FdqF]flF\w>&FfpF]flF\w>&FjqF]fl-Ffw6&F` flF\flFfsFP>&F\qF]fl-Ffw6&FbflF`flFfsFP>&FdrF]fl-Ffw6&F\fl&Fbr6#F^zFfsFP>&FfqF] fl-Ffw6&F`fl&FdqF`glFfsFP>&FhpF]fl-Ffw6&Fbfl&FfpF`glFfsFP-%#opG6#-%$mapG6$Fby7* FhpFfpF\qFfqFdqFjqFdrFbrFMFMFMFM, Q>homalg/ResolveShortExactSeq.mFM M7R0 I4homalg/RightDivideFf*6&%#_BG%#_AG'%$varG%%listG%,RingPackageG6,%#RPG%$narG%%o ptsG%"BG%"AG%#IAG%"iG%#CAG%#CBG%#NFG6#%[oCopyright~(C)~2004-2007~by~Mohamed~Bar akat.~All~rights~reserved.G6"C.>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6 $F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC@$2,&""$FRFDFR9#>8&-%%copyG6 #-%2homalg/GetOptionsG6$&FA6#;""%FSF;>8'-%6homalg/NormalizeInputG6$9$F;>8(-Fbo6 $9%F;@$0-&F;6#%3NumberOfGeneratorsG6#F`o-F]p6#Ffo-%&ERRORG6#%gnThe~first~two~ar guments~have~different~numbers~of~'columns'!G>8)-%2homalg/BasisCoeffG6&Ffo9&8+F ;/Q#CAF8-Ffn6#F]q>8--%3homalg/ReduceCoeffG6'F`oFhpF\q8,F;/Q#CBF8-Ffn6#Fgq@$0-%3 homalg/BetterBasisG6&FcqF\qQ3ALLOW_EMPTY_OUTPUTF8F;7"@%-%)assignedG6#&FZ6#Q0pos _of_USE_FAILF8-FK6#%%FAILG-Fdp6#%`sThe~second~argument~is~not~a~right~factor~of ~the~first~(modulo~the~third),~i.e.~the~second~(+third)~argument~is~not~a~gener ating~set!G-%/homalg/ComposeG6&-%.homalg/MulMatG6&FCFgqF\qF;F]qF\qF;F8F8F8F8, Q6homalg/RightDivideF.mF8 M7R0 I9homalg/TorsionFreeFactorf*6%%"MG'%$varG%%listG%,RingPackageG6&%#RPG%$narG%)op tionalG%%iotaG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G %'systemG%)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*pr ocedureG-%'RETURNG6#-F66#&F<6#;""",&F>FMF?F>@$-FB6$&F<6#FM%'stringGC$@$/FRQ1RET URN_co_contraF3-FF6#Q*covariantF3-FF6#%%NULLG>8&&F<6#;""$FN>8'-%;homalg/Torsion SubmoduleEmbG6%9$9%F6-%0homalg/CokernelG6'F`oFdoFeoFjnF6F3F3F3F3, Q;homalg/TorsionFreeFactor.mF3 M7R0 I9homalg/A3ExtensionModulef*6+%#_MG%&etaMLG%#_LG%&etaLKG%#_KG%&etaKNG%#_NG%$var G%,RingPackageG6Z%#RPG%$narG%"MG%"LG%"KG%"NG%%d2_MG%%d2_LG%"BG%#X1G%%r_dLG%%c_d LG%$r_KG%$c_KG%$c_NG%$r_NG%%r_dMG%%c_dMG%#BbG%$L11G%$L12G%$L13G%$L14G%$L21G%$L2 2G%$L23G%$L24G%$L31G%$L32G%$L33G%$L34G%$L41G%$L42G%$L43G%$L44G%#LlG%'d2_L_TG%%X 1_TG%'d2_M_TG%$A11G%$A12G%$A13G%$A14G%$A21G%$A22G%$A23G%$A24G%$A31G%$A32G%$A33G %$A34G%#AaG%$resG%&etaLNG%&etaMKG%&etaMNG6#%enCopyright~(C)~2008~by~Barbara~Bre mer.~All~rights~reserved.G6"Cgn>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6 $Ffo%*procedureG-%'RETURNG6#-Ffo6#&F\p6#;""",&F^pF]qF_pF^p>8&-%6homalg/Normaliz eInputG6$&-%:homalg/ResolutionOfModuleG6&9$9+/Q)TRUNCATEFco""!Ffo6#F]qFfo>8'-Fb q6$&-Ffq6&9&FiqFjqFfoF]rFfo>8(-Fbq6$&-Ffq6&9(FiqFjqFfoF]rFfo>8)-Fbq6$&-Ffq6&9*F iqFjqFfoF]rFfo>8*-Fbq6$-%%copyG6#&&-%5homalg/ResolveModuleG6%""#F`qFiqF]r6#FbtF fo>8+-Fbq6$-F[t6#&&-F`t6%FbtF_rFiqF]rFctFfo>8,-%/homalg/ComposeG6&Fgs9%FiqFfo>8 --%3homalg/RightDivideG6&F_uF_rFiqFfo>8.-&Ffo6#%-NumberOfRowsG6#Fet>8/-&Ffo6#%3 NumberOfGeneratorsGF_v>80-F\v6#Fgr>81-FcvFiv>82-Fcv6#F_s>83-F\vF`w>84-F\v6#Fgs> 85-FcvFgw>867#7&-%#opG6#-%$mapG6$F`x-Fbq6$-Fau6&Fet9'FiqFfoFfo-F`x6#-&Ffo6#%%Ze roG6#*&FjuF]qF^wF]q-F`x6#-F]y6#*&FewF]qF[wF]q-F`x6#-F]y6#*&FewF]qF^wF]q>87-%4ho malg/KroneckerMatG6&-%3homalg/IdentityMapG6%FjuFiqFfoFgrFiqFfo>88-F_z6&Faz9)Fiq Ffo>89-%/homalg/ZeroMapG6&*&FjuF]qFgvF]qFfyFiqFfo>8:-F\[l6&F^[lF[zFiqFfo>8;-F\[ l6&*&FjuF]qFbwF]q*&FjuF]qF[wF]qFiqFfo>8<-F_z6&FazF_sFiqFfo>8=-F\[l6&Fg[lFfyFiqF fo>8>-F\[l6&Fg[lF[zFiqFfo>8?-F\[l6&*&FewF]qFgvF]qFh[lFiqFfo>8@-F\[l6&Fi\lFayFiq Ffo>8A-F_z6&-Fbz6%FewFiqFfoFgrFiqFfo>8B-F_z6&Fb]lFhzFiqFfo>8C-F\[l6&*&FewF]qFbw F]qFh[lFiqFfo>8D-F\[l6&F\^lFayFiqFfo>8E-F\[l6&F\^lFfyFiqFfo>8F-F_z6&Fb]lF_sFiqF fo>8G-&%'linalgG6#%,blockmatrixG6%""%Fa_l72F]zFezFjzF`[lFd[lFj[lF^\lFb\lFf\lF[] lF_]lFe]lFi]lF^^lFb^lFf^l>8H-%2homalg/InvolutionG6%FetFiqFfo>8I-Ff_l6%FeuFiqFfo >8J-Ff_l6%FgsFiqFfo>8K-F\[l6&*&FavF]qF^wF]qFh[lFiqFfo>8L-%.homalg/SubMatG6%-F\[ l6&Fd`lFayFiqFfo-F_z6&Fd_l-Fbz6%F^wFiqFfoFiqFfoFiq>8M-F\[l6&Fd`lFfyFiqFfo>8N-F_ z6&Fi_lF^alFiqFfo>8O-F\[l6&*&FiwF]qF[wF]qFh[lFiqFfo>8P-F\[l6&F\blFayFiqFfo>8Q-F h`l6%-F\[l6&F\blFfyFiqFfo-F_z6&F]`l-Fbz6%F[wFiqFfoFiqFfoFiq>8R-F\[l6&F\blF[zFiq Ffo>8S-F\[l6&*&FiwF]qF^wF]qFh[lFiqFfo>8T-F\[l6&FcclFayFiqFfo>8U-F\[l6&FcclFfyFi qFfo>8V-Fh`l6%-F\[l6&FcclF[zFiqFfo-F_z6&F]`lF^alFiqFfoFiq>8W-F\_l6%""$Fa_l7.Fa` lFf`lFaalFealFialF^blFbblF\clF`clFeclFiclF]dl>8X-Fgu6(F\xFedlFj^lFiqQ)USE_FAILF coFfo@$/F[el%%FAILG-Ffp6#Fael>F[el-Fbq6$F[elFfo>8Y-Fcx6$f*6#%"iGFco6$%)operator G%&arrowGFco&&T#F]r6#;,&*&,&FhqF]qF^pF]qF]qT%F]qF]qF]qF]q*&FhqF]qFiflF]qFcoFco6 &F]oF[elF=F^w7#-%"$G6#;F]qFav>8Z-Fcx6$f*F\flFcoF^flFco&Fbfl6#;,(*&FiflF]qT'F]qF ]q*&FhflF]qT)F]qF]qF]qF]q,&FjglF]q*&FhqF]qF]hlF]qF]qFcoFco6*F]oF[elF=F^wF:FavF< F[w7#-F^gl6#;F]qFiw>8en-Fcx6$f*F\flFcoF^flFco&Fbfl6#;,*FjglF]q*&F]hlF]qT+F]qF]q FgflF]qF]qF]q,(FjglF]qF^ilF]qFjflF]qFcoFco6,F]oF[elF=F^wF:FavF<F[wF@FiwFahl-Ffp 6%/Q&etaLNFco-%:homalg/ReduceHomomorphismG6&FhelF_sFiqFfo/Q&etaMKFco-Fgil6&Fbgl FgrFiqFfo/Q&etaMNFco-Fgil6&FfhlF_sFiqFfoFcoFcoFcoFco, Q;homalg/A3ExtensionModule.mFco M7R0 I?homalg/AModuleForATwoExtensionf*6&%*_ext_homsG%-_ext_modulesG%%_varG%,RingPac kageG64%#RPG%$narG%%optsG%$varG%$extG%)ext_homsG%,ext_modulesG%"FG%&etaMNG%&eta NLG%"MG%"NG%"LG%"DG%"BG%"XG%#BbG%&etaMLG6#%jnCopyright~(C)~2007-2008~by~Barbara ~Bremer.~All~rights~reserved.G6"C2>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typ eG6$FA%*procedureG-%'RETURNG6#-FA6#&FG6#;""",&FIFXFJFI@%-FM6$&FG6#FY%%listG>8'F gn-%&ERRORG6#%-Wrong~input!G@%2,&""$FXFJFX9#C%>8(-%:homalg/NormalizeExtensionG6 $&FG6#;FX,&!"#FXFJFIF[o>8)-%%copyG6#&Fgo6#FX>8*-Fcp6#&Fgo6#""#C$>Fap-Fcp6#9$>Fh p-Fcp6#9%>8+-%:homalg/FactorizeExtensionG6&FapFhpF[oFA>8,-%6homalg/NormalizeInp utG6$-%:homalg/CocycleOfExtensionG6%-%#opG6#&FhqF\qF[oFAFA>8--F_r6$-Fbr6%-Fer6# &FhqFfpF[oFAFA>80-F_r6$&-%:homalg/ResolutionOfModuleG6&&F`sFfpF[o/Q)TRUNCATEF>" "!FAFfpFA>8/-F_r6$&-Fgs6&&FgrFfpF[oFjsFAFfpFA>8.-F_r6$&-Fgs6&&Fgr6#""&F[oFjsFAF fpFA>81-Fcp6#&-%4homalg/SyzygiesDataG6&F]qFftF[oFAF\q>82-%/homalg/ComposeG6&F`u F]rF[oFA>83-%3homalg/RightDivideG6&FhuF^tF[oFA>84-Fju6&F]vFirF[oFA>85-%3homalg/ LeftDivideCG6'F`uFbvFbsF[oFA@%/Ffv%%FAILGF\w-%:homalg/ReduceHomomorphismG6&FfvF bsF[oFAF>F>F>F>, QAhomalg/AModuleForATwoExtension.mF> M7R0 I:homalg/BetterPresentationf*6&'%#_GG-%%listG6#%"=G%#_MG%$varG%,RingPackageG6+% #RPG%$narG%%optsG%)ring_relG%"MG%"GG%$stdG%#blG%"bG6#%[oCopyright~(C)~2004-2007 ~by~Mohamed~Barakat.~All~rights~reserved.G6"C5>8$-%1homalg/tablenameG6%9!&9"6#! ""8%@$-%%typeG6$F=%*procedureG-%'RETURNG6#-F=6#&FC6#;""",&FEFTFFFE@$2,&""$FTFFF T9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FC6#;""%FUF=>8'&-%5homalg/NormalizeRing G6$9&F=6#""#>8(-%6homalg/NormalizeInputG6$9%F=>8)-F]p6$-%$mapG6$%$rhsG9$F=>Fap- %4homalg/RingNotationG6$FapF=>8+-%9homalg/NonZeroGeneratorsG6%F[pFgoF=@$-%)assi gnedG6#&Ffn6#QBvar_to_assign_non_zero_generatorsF:-%'assignG6$FfqF^q@$/F^q7"@%0 FapF^r-FM6$7#/&F=6#%$OneG&Fap6#FT7#Fer-FM6$7#/Fer-&F=6#%%ZeroGF:Fjr>F[p-&F=6#%/ CertainColumnsG6$F[pF^q>F[p-%5homalg/BasisOfModuleGFaq@$0FboF^rC$>F[p-%3homalg/ BetterBasisGFaq>F[p-F[q6$F[pF=>Fap-&F=6#%,CertainRowsG6$FapF^q>8,-%%nopsG6#F^q> 8*-%7homalg/StdBasisVectorsG6$F\uF=>Fau-F[q6$FauF=>Fap-%$zipG6%f*6$%"xG%"yGF:6$ %)operatorG%&arrowGF:/FhpF_pF:F:F:FauFap6$FapF[pF:F:F:F:, Q<homalg/BetterPresentation.mF: M7R0 I1homalg/CheckImSqf*6(%(_alpha1G%%_phiG%&beta1G%"BG'%$varG%%listG%,RingPackageG 6)%#RPG%$narG%'alpha1G%$phiG%*apply_phiG%$ib1G%(ia1CphiG6#%[oCopyright~(C)~2003 -2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C*>8$-%1homalg/tablenameG6%9!& 9"6#!""8%@$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&-%6ho malg/NormalizeInputG6$9$F:@%-FF6$9%FH>8(FfnC$>8'-FV6$FfnF:>Fhnf*6#%"aGF76$%)ope ratorG%&arrowGF7-%/homalg/ComposeG6&FXT#T&T'F7F76(F1F[oF*9(F.F:>8)-%4homalg/Sum RelationsG6&9&9'F\pF:>8*-Fhn6#FT>Fep-%(convertG6$Fep%)listlistG-%.homalg/Reduce G6&FepF^pF\pF:F7F7F7F7, Q3homalg/CheckImSq.mF7 M7R0 I:homalg/CocycleOfExtensionf*6&%*_ext_homsG%-_ext_modulesG%%_varG%,RingPackageG 68%#RPG%$narG%$argG%$varG%#naG%$extG%)ext_homsG%,ext_modulesG%%optsG%"nG%$resG% )res_homsG%,res_modulesG%"iG%%eta_G%"dG%$G_iG%&alphaG%&G_i_1G%$etaG%1abstract_c ocycleG%'resultG6%%enCopyright~(C)~2007~by~Barbara~Bremer.~All~rights~reserved. G%'systemG%)rememberG6"C5>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FG%*p rocedureG-%'RETURNG6#-FG6#&FM6#;""",&FOFhnFPFO>8(,(9#FhnFOFhnFPFO?&8&FM%%trueG@ $-FS6$F_o%'stringG>F[o,&F[oFhnFOFhn@%-FS6$&FM6#,&F[oFhnFhnFhn%%listG>8'Fjo-%&ER RORG6#%-Wrong~input!G@+2""&F[oC%>8)-%:homalg/NormalizeExtensionG6$&FM6#;FhnF[oF _p>8*-%%copyG6#&Fip6#Fhn>8+-Fcq6#&Fip6#""#/F[oFfp-FW6#-%;homalg/CocycleOfExtens ion1G6#FM2F]rF[oC%>FipFjp>FaqFbq>FhqFiq3-FS6$9$%&tableG-FS6$9%F]sC$>Faq-Fcq6#F\ s>Fhq-Fcq6#F`sF`p@$2,(F[oFhnFhnFhnFPFhnF]o>8,-Fcq6#-%2homalg/GetOptionsG6$&FM6# ;,&F[oFhnF]rFhnFinFG>8-,&-%%nopsG6#7#-%(indicesG6#FaqFhnFOFhn@$/Fgt""!-FW6#-Fcq 6#&Faq6#Fbu>8.-%5homalg/ResolveModuleG6&Fgt&FhqFNF_pFG>8/-Fcq6#&FjuFfq>80-Fcq6# &FjuF\r>87-%3homalg/LeftinverseG6(-Fcq6#&FhqFhuFeu-Fcq6#F^vF_pQ)NO_CHECKFDFG?(8 1FhnFhnFgtF`oC(>82-Fcq6#Fjv>83-Fcq6#&F`v6#Few>84-Fcq6#&FhqF`x>85-Fcq6#&FaqF`x>8 6-Fcq6#&Fhq6#,&FewFhnFOFhn>Fjv-%4homalg/CompleteImSqG6)-Fcq6#F\x-Fcq6#Fhw-Fcq6# Fbx-Fcq6#Fgx-Fcq6#F\yF_pFG>89%%NULLG@$5-%)assignedG6#&F\t6#QApos_of_return_abst ract_generatorFD-Ffz6#&F\t6#Q2pos_of_return_ExtFD>Fip-%+homalg/ExtG6(FgtF^v&Fhq 6#FgtF_p/QTvar_to_assign_proc_to_express_generators_abstractlyFD.88FG@%Fez>Faz6 $Faz/-Fi[l6#FiwFiw>Faz6$FazFiw@$F[[l>Faz6$-Fcq6#Faz/Q$ExtFDFip-%#opG6#-%$mapG6$ f*6#F7FD6$%)operatorG%&arrowGFD-Fcq6#&7#T#FdsFDFD6$F?Faz7#-%"$G6#;Fhn-Fjt6#7#Fa zFDFDFDFD, Q<homalg/CocycleOfExtension.mFD M7R0 I0homalg/CoimageFf*6%%"AG'%$varG%%listG%,RingPackageG6$%#RPG%$narG6%%fnCopyrigh t~(C)~2006~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C%>8$ -%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F :6#;""",&F<FKF=F<-%1homalg/CokernelFG6%-%3homalg/SyzygiesOpFG6%9$9%F4FTF4F1F1F1 F1, Q2homalg/CoimageF.mF1 M7R0 I8homalg/copyright_homalgf*6"F$6#%^pCopyright~(C)~2002-2012~by~Mohamed~Barakat~ and~Daniel~Robertz.~All~rights~reserved.GF$C)-%&printG6#%7homalg~(2002-2012)~(C )G-F)6#%[oCopyright~(C)~(2002-2012)~by~Mohamed~Barakat~and~Daniel~Robertz.G-F)6 #%5All~rights~reserved.G-F)6#%YThis~software~should~be~referenced~if~it~is~used ~in~workG-F)6#%>eventuating~in~a~publication.G-F)6#%GUsers~are~free~to~modify~t his~program,G-F)6#%Tbut~it~is~not~to~be~redistributed~in~modified~form.GF$F$F$F $, Q:homalg/copyright_homalg.mF$ M7R0 I4homalg/DirectSumMapf*6*%#A1G%#A2G%%phi1G%%phi2G%#B1G%#B2G%$varG%,RingPackageG 6'%#RPG%$narG%)optionalG%$phiG%(functorG6#%[oCopyright~(C)~2003-2005~by~Mohamed ~Barakat.~All~rights~reserved.G6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%ty peG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&&F>6#;"")FP>8'-%/homa lg/DiagMatG6%9&9'F8>8(%1homalg/DirectSumG-%2homalg/FunctorMapG6)Fin7$9$9%FX7$9( 9)9*FRF8F5F5F5F5, Q6homalg/DirectSumMap.mF5 M7R0 I2homalg/EqualMapsFf*6&%#_AG%#_BG'%$varG%%listG%,RingPackageG6'%#RPG%$narG%"AG% "BG%)optionalG6%%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G %'systemG%)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F8%*pr ocedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%6homalg/NormalizeInputG6$9$F8> 8'-FT6$9%F8>8(&F>6#;""%FP-%1homalg/IsZeroMapG6&-%.homalg/SubMatG6&FRFX9&F8FboFg nF8F5F5F5F5, Q4homalg/EqualMapsF.mF5 M7R0 I:homalg/EqualPresentationsf*6%'%#P1G%4homalg_presentationG'%#P2GF'%,RingPackag eG6&%#RPG%$narG%%optsG%#eqG6#%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All ~rights~reserved.G6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*proc edureG-%'RETURNG6#-F56#&F;6#;""",&F=FLF>F=@$2,&""#FLF>FL9#>8&-%%copyG6#-%2homal g/GetOptionsG6$&F;6#;""$FMF5@%-%)assignedG6#&FT6#Q9pos_of_IGNORE_GENERATORSF2>8 '-%$zipG6%f*6$%"aG%"bGF26$%)operatorG%&arrowGF2@%-%&evalbG6#/9$9%%%trueG0FapFbp F2F2F2&Fap6#;FQF=&FbpFfp>Fao-Fco6%f*FfoF2FioF2@%F]pFcpFdpF2F2F2FapFbp@'/-%(conv ertG6$Fao%$setG<#FcpFcp-F[o6#&FT6#Q/pos_of_VERBOSEF2Fao%&falseGF2F2F2F2, Q<homalg/EqualPresentations.mF2 M7R0 I2homalg/Extension1f*6'%#_MG%%_etaG%#_NG%$varG%,RingPackageG61%#RPG%$narG%%opts G%#d1G%$etaG%"NG%%d1_rG%&eta_rG%&eta_cG%$N_cG%#P0G%'alpha1G%"EG%'alpha2G%"MG6%% fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememb erG6"C0>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FA%*procedureG-%'RETURN G6#-FA6#&FG6#;""",&FIFXFJFI@$2,&""%FXFJFX9#>8&-%%copyG6#-%2homalg/GetOptionsG6$ &FG6#;""&FYFA>8'&-%:homalg/ResolutionOfModuleG6&9$9'/Q)TRUNCATEF>""!FA6#FX>8(-% 6homalg/NormalizeInputG6$9%FA>8)-Fdp6$9&FA>8*-&FA6#%-NumberOfRowsG6#Ffo>8+-F_q6 #Fbp@$0F]qFdq-%&ERRORG6#%gnThe~numbers~of~rows~of~the~first~and~second~argument ~differ!G>8,-&FA6#%3NumberOfGeneratorsGFfq>8--F`r6#Fhp@$0F^rFdr-Fjq6#%jnThe~num bers~of~columns~of~the~second~and~third~argument~differ!G>8.-%6homalg/FreeHullM oduleG6%FfoF\pFA@%-%)assignedG6#&Fjn6#Q+pos_of_ALLF>C%>8/&-%9homalg/PushoutPair OfMapsG6)FfoF]sFbpFhpF\p/Q@var_to_assign_functor_on_objectF>.80FA6#""#>81-%3hom alg/CokernelEpiG6'FjsFbtF\p/F`t.82FA6'F[q-F\o6#FjsFbt-F\o6#FftF\u-%/homalg/Push outG6(FfoF]sFbpFhpF\pFAF>F>F>F>, Q4homalg/Extension1.mF> M7R0 I6homalg/InverseElementf*6%%"rG'%$varG%%listG%,RingPackageG6)%#RPG%$narG%%zeroG %$oneG%*minus_oneG%)ring_relG%$invG6#%[oCopyright~(C)~2004-2007~by~Mohamed~Bara kat.~All~rights~reserved.G6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$ F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8&-&F76#%%ZeroGF4>8'&F76#%$O neG>8(-&F76#%&MinusG6%FQFW9%@&/9$FQ-FG6#%%FAILG-%'memberG6$F_o<$FWFfn-FG6#F_o>8 )&-%5homalg/NormalizeRingG6$F\oF76#""#@%/Fjo7"@%-%)assignedG6#&F76#%'IsUnitG@$- Fhp6$F_oF\o-FG6#-&F76#%)simplifyG6$-&F76#%-DivideByUnitG6%FWF_oF\oF\oC$>8*-%4ho malg/RightinverseG6%7#7#F_oF\oF7@$0F\rFbo-FG6#&F\r6$FNFNC$>F\rF]r@$FcrFdrFboF4F 4F4F4, Q8homalg/InverseElement.mF4 M7R0 I2homalg/Involutionf*6%%#_MG'%$varG%%listG%,RingPackageG6%%#RPG%$narG%"MG6#%jnC opyright~(C)~2004-2005~by~Daniel~Robertz.~All~rights~reserved.G6"C&>8$-%1homalg /tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F96#;""",& F;FJF<F;>8&-%6homalg/NormalizeInputG6$9$F3-&F36#%'matrixG6#-&%'linalgG6#%*trans poseG6#FMF0F0F0F0, Q4homalg/Involution.mF0 M7R0 I3homalg/IsCocomplexf*6%'%*cocomplexG%%listG'%$varGF'%,RingPackageG6)%#RPG%$nar G%%homsG%%cmpsG%+check_homsG%+check_cmpsG%$resG6#%fnCopyright~(C)~2004~by~Moham ed~Barakat.~All~rights~reserved.G6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%% typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%8homalg/CheckHoms OfCoseqG6%9$9%F8>FR-%$mapG6'%1homalg/IsZeroMapGFRFWQ(VERBOSEF5F8>8'-%6homalg/Ch eckCocomplexGFU>Fin-FZ6'FfnFinFWFgnF8>8(-%&evalbG6#/-%(convertG6$FR%$setG<#%%tr ueG>8)-Fbo6#/-Ffo6$FinFhoFio@'3F`oF\pFjo32,&""#FOFAFO9#-FD6$&F>6#FP%'stringGC&> 8*%%NULLG@%F`o>F`q6$F`q/Q%homsF5Fjo>F`q6$F`q/FfqFR@%F\p>F`q6$F`q/Q%cmpsF5Fjo>F` q6$F`q/F^rFinF`q%&falseGF5F5F5F5, Q5homalg/IsCocomplex.mF5 M7R0 I4homalg/IsExactCoseqf*6%'%*cocomplexG%%listG'%$varGF'%,RingPackageG6'%#RPG%$na rG%%ccpxG%%defsG%+check_defsG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~ri ghts~reserved.G6"C*>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*procedu reG-%'RETURNG6#-F66#&F<6#;""",&F>FMF?F>>8&-%3homalg/IsCocomplexG6&9$9%Q(VERBOSE F3F6@%/7#FP7#%%trueG>FP/Q*cocomplexF3Fen@%32,&""#FMF?FM9#-FB6$&F<6#FN%'stringGF P%&falseG>8'-%9homalg/CohomologyModulesG6%FTFUF6>Ffo-%$mapG6'%4homalg/IsZeroMod uleGFfoFUFVF6>8(-%&evalbG6#/-%(convertG6$Ffo%$setG<#Fen@'F`pFenFjn@%F`p6$FP/Q+c ohomologyF3Fen6$FP/F^qFfoFdoF3F3F3F3, Q6homalg/IsExactCoseq.mF3 M7R0 I-homalg/IsHomf*6'%#_MG%#_AG%#_NG'%$varG%%listG%,RingPackageG6%%#RPG%$narG%$hom G6#%[oCopyright~(C)~2003-2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C&>8$- %1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6#-F56#&F; 6#;""",&F=FLF>F=>8&-%0homalg/CheckHomG6#F;-%1homalg/IsZeroMapG6%FO9'F5F2F2F2F2, Q/homalg/IsHom.mF2 M7R0 I1homalg/PullbackFf*6&%%_phiG%'_beta1G%$varG%,RingPackageG6)%#RPG%$narG%$phiG%& beta1G%*minus_oneG%,minus_beta1G%*phi_beta1G6%%fnCopyright~(C)~2004~by~Mohamed~ Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C)>8$-%1homalg/tablenameG6% 9!&9"6#!""8%@$-%%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-% 6homalg/NormalizeInputG6$9$F8>8'-FT6$9%F8>8)-%.homalg/MulMatG6&F@FX9&F8>8*-&F86 #%,UnionOfRowsG6$FRFgn-%/homalg/KernelFG6%F]oF[oF8F5F5F5F5, Q3homalg/PullbackF.mF5 M7R0 I=homalg/RightDerivedCofunctorf*6''%"qG%*nonnegintG'%*cofunctorG%%listG%"AG'%$v arGF*%,RingPackageG69%#RPG%$narG%"pG%%optsG%4readjust_generatorsG%)optionalG%5c ofunctor_on_objectsG%2cofunctor_on_mapsG%$resG%%rdimG%$posG%(alpha_qG%)alpha_q1 G%$Pq1G%%Pq_1G%#PqG%)Falpha_qG%%F_stG%:FPq_normalized_generatorsG%*Falpha_q1G%$ FPqG%%FPq1G%#RFG6#%[oCopyright~(C)~2005-2006~by~Mohamed~Barakat.~All~rights~res erved.G6"C8>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FL%*procedureG-%'RE TURNG6#-FL6#&FR6#;""",&FTF]oFUFT@$-FX6$&FR6#""$%'stringGC$@*/FboQ?RETURN_proc_t o_induce_morphismFI-Ffn6#f*6%%"MG%$phiG%"NG6#F8FIFIC$>FL-%%evalG6#-%7homalg/Res olutionOfSeqG6)T$9$9%9&T&Q)TRUNCATEFIT'6%&&FL6#""#6#Fjp-%%copyG6#&&FLFcoFfq&&FL 6#""&FfqFIFI6(F&F[qF-9'F0FL/FboQKRETURN_FunctorMap_of_the_functor_to_deriveFI-F fn6#&F\qFdq/FboQIRETURN_FunctorMaps_of_a_composed_functorFI-Ffn6#%%NULLG/FboQ;R ETURN_morphism_on_objectsFIFir-Ffn6#-&F\q6#F]o6%FboFarFL?&8&7#-%"$G6#;F]o,&-%%n opsG6#F\q#F]oFeqFTF]o%%trueG@$-FX6$&F\q6#,&F]oF]oFesFeqFeoC$@*/FdtFio-Ffn6#7#f* FIFapFIFIC$>FL-Fep6#-%5homalg/ResolveModuleG6'FjpF^qT(F_qT)FbqFIFI6*F&F[qF+F]qF -FarF0FL/FdtFcr-Ffn6#&F\q6#,&FeqF]oFesFeq/FdtFhrFir/FdtF]sFirF^s@$2,&""%F]oFUF] o9#>8'-Fhq6#-%2homalg/GetOptionsG6$&FR6#;F_rF^oFL@$4-%)assignedG6#&Ffv6#Q<pos_o f_NORMALIZE_GENERATORSFI>8(-Fas6%QCRETURN_proc_to_readjust_generatorsFIFarFL>8) F\w>8*Fas>8+Ffr>8,-%:homalg/ResolutionOfModuleG6&F]qFar/F_qF[qFL>8--%.homalg/Re sDimG6$FcxFL@)2,&-F]t6#FixF]oFTF]oF[qC'>8.F[s@$-Fbw6#&Ffv6#QCvar_to_assign_embe dding_generatorsFIC$>Fdy/&Ffv6#QJpos_of_var_to_assign_embedding_generatorsFIF[s -%'assignG6$Fhy7#-&FL6#%%ZeroGFbs@$-Fbw6#&Ffv6#QBvar_to_assign_F_target_hullmod uleFIC$>Fdy6$Fdy/&Ffv6#QIpos_of_var_to_assign_F_target_hullmoduleFIF[s-Fbz6$F\[ lFdz@$07#Fdy7">F]x-%#opG6#-%'subsopG6$Fdy7#F]x-Ffn6#-F_x6&-%2homalg/ZeroModuleG 6$FarFLFarF]xFL/F`y,&F[qF]oF]oF]oC%>8/&FcxFbs>807#-Ffz6#&FixFbs>81Fh\l/F[q""!C% >F_]l-&FL6#%'matrixG6#7#-Fhs6$Fez&FixFS>Fb]lF`]l>Fh]l-%2homalg/FreeModuleG6%&Fi x6#!"#FarFLC%>F_]l&FcxFdq>Fb]lF`]l>Fh]l-Fi^l6%&Fix6#,&F[qFTF]_lF]oFarFL@%Fi]l>8 2Fh\l>Fj_l-Fi^l6%&Fix6#,$F[qFTFarFL>83-Fi^l6%&Fix6#,&F[qFTFTF]oFarFL>84-Fax6'Fb `lF_]lFj_lFarFL>87-Fax6)Fh]lFb]lFb`lFar/Q3var_to_assign_F_stFI.85/QNvar_to_assi gn_F_source_unconverted_generatorsFI.86FL>88&FcalFbs>89&FcalFdq/Q:FPq_normalize d_generatorsFIFgal@$-Fbw6#Fgal>Fial-%9homalg/ReplaceGeneratorsG6%FialFgalFL>8:- %4homalg/DefectOfHomsG6)Fi`lFialF]alF\blFarF]xFL@%3-Fbw6#Fhw4/FhwF[s-%9homalg/C onvertGeneratorsG6&FhblFhwF]xFLFhblFIFIFIFI, Q?homalg/RightDerivedCofunctor.mFI M7R0 I4homalg/SumRelationsf*6&%$_M1G%$_M2G'%$varG%%listG%,RingPackageG6&%#RPG%$narG% #M1G%#M2G6#%[oCopyright~(C)~2003-2004~by~Mohamed~Barakat.~All~rights~reserved.G 6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6# -F56#&F;6#;""",&F=FLF>F=>8&-%6homalg/NormalizeInputG6$9$F5>8'-FQ6$9%F5-%5homalg /BasisOfModuleG6%-&F56#%,UnionOfRowsG6$FOFU9&F5F2F2F2F2, Q6homalg/SumRelations.mF2 M7R0 I6homalg/SyzygiesModulef*6&%#M1G%#M2G%%_varG%,RingPackageG6&%#RPG%$narG%%optsG% $varG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG %)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG- %'RETURNG6#-F56#&F;6#;""",&F=FLF>F=@%2,&""#FLF>FL9#>8&-%%copyG6#-%2homalg/GetOp tionsG6$&F;6#;""$FMF5>&FT6#Q2number_of_optionsF2""!@%2,&FRFLFjnF=,&FhnFLF>FL>8' &F;6#FQ>Fco9&-%1homalg/CokernelFG6%-%5homalg/SyzygiesBasisG6#F;FcoF5F2F2F2F2, Q8homalg/SyzygiesModule.mF2 M7R0 I;homalg/TensorProductOnSeqsf*6&%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPack ageG6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~righ ts~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%% typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%=homalg/Functor_T ensorProductG6#9$-%5homalg/FunctorOnSeqsG6$FR&F>6#;""#F@F5F5F5F5, Q=homalg/TensorProductOnSeqs.mF5 M7R0 I@homalg/YonedaProductOfCocycles2f*6+%#M_G%%eta1G'%"mG%(integerG%#L_G%%eta2G'%" nGF)%#N_G%$varG%,RingPackageG6/%#RPG%$narG%%optsG%"MG%"LG%"NG%%ext1G%%ext2G%$ex tG%"iG%$etaG%'resultG%$EXTG6%%enCopyright~(C)~2007~by~Barbara~Bremer.~All~right s~reserved.G%'systemG%)rememberG6"C2>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%t ypeG6$FF%*procedureG-%'RETURNG6#-FF6#&FL6#;""",&FNFgnFOFN@$2,&"")FgnFOFgn9#>8&- %%copyG6#-%2homalg/GetOptionsG6$&FL6#;""*FhnFF@$529)""!29&F^p-%&ERRORG6#%>n~and ~m~must~be~non-negative!G>8'-%6homalg/NormalizeInputG6$9$FF>8(-Fhp6$9'FF>8)-Fhp 6$9*FF>8*-%1homalg/ExtensionG6(F`pFfp9%F\q9+FF>8+-Fhq6(F]pF\q9(FaqF[rFF>8,-%Aho malg/YonedaProductOfExtensionsG6&7#Ffq7#F]rF[rFF>8.-%:homalg/CocycleOfExtension G6%FbrF[rFF>8/%%NULLG@$5-%)assignedG6#&F_o6#QApos_of_return_abstract_generatorF C-Fcs6#&F_o6#Q2pos_of_return_ExtFC>80-%+homalg/ExtG6(,&F`pFgnF]pFgnFfpFaqF[r/QT var_to_assign_proc_to_express_generators_abstractlyFC.%1abstract_cocycleGFF@%Fb s>F^s6$F^s/-Fft6#-Fao6#FirF]u>F^s6$F^sF]u@$Fhs>F^s6$F^s/Q$ExtFCF^t-%#opG6#-%$ma pG6$f*6#F;FC6$%)operatorG%&arrowGFC-Fao6#&7#T#6#FjpFCFC6$F=F^s7#-%"$G6#;Fgn-%%n opsG6#7#F^sFCFCFCFC, QBhomalg/YonedaProductOfCocycles2.mFC M7R0 I9type/homalg_presentationf*6#%"PG6#%"aG6#%fnCopyright~(C)~2004~by~Mohamed~Bara kat.~All~rights~reserved.G6"@%333-%%typeG6$9$%%listG2""#-%%nopsG6#F2-F06$&F26#" "$%'stringG2""!-%+searchtextG6$Q-presentationF*F;%%trueG%&falseGF*F*F*F*, Q;type/homalg_presentation.mF* M7R0 I9homalg/DecideZeroColumnsf*6&%"LG%"BG'%$varG%%listG%,RingPackageG6&%#RPG%$narG %#ILG%#IBG6%%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G%'sy stemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*proced ureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8&-%2homalg/InvolutionG6%9$9&F7>8'-FS6 %9%FVF7-FS6%-%6homalg/NormalizeInputG6$-%.homalg/ReduceG6&-Fin6$FQF7-Fin6$FXF7F VF7F7FVF7F4F4F4F4, Q;homalg/DecideZeroColumns.mF4 M7R0 I:homalg/ConvertRowToMatrixf*6'%"MG%"rG%"cG'%$varG%%listG%,RingPackageG6%%#RPG% $narG%(entriesG6#%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved. G6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6 #-F56#&F;6#;""",&F=FLF>F=>8&-%#opG6#-%6homalg/NormalizeInputG6$9$F5-&F56#%'matr ixG6#-&%'linalgG6#%*transposeG6#-FZ6%9&9%FOF2F2F2F2, Q<homalg/ConvertRowToMatrix.mF2 M7R0 I'homalg=6"%&falseGE\[li[l%3ReduceHomomorphismGf*F$F$6%%fnCopyright~(C)~2005~by ~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberGF$C$30%3homalg/initi alizedG.%%trueG0-%,homalg/initGF$""!-%:homalg/ReduceHomomorphismG6#9"F$F$F$%-Ri ngNotationGf*F$F$6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserve d.GF$C$F.-%4homalg/RingNotationGF9F$F$F$%,LHomHom3MapGf*F$F$6%%fnCopyright~(C)~ 2006~by~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%3homalg/LHomHom3MapGF 9F$F$F$%2TorsionFreeFactorGf*F$F$6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~Al l~rights~reserved.GF+F,F$C$F.-%9homalg/TorsionFreeFactorGF9F$F$F$%,LHom2OnSeqsG f*F$F$FDF$C$F.-%3homalg/LHom2OnSeqsGF9F$F$F$%,IsCocomplexGf*F$F$F=F$C$F.-%3homa lg/IsCocomplexGF9F$F$F$%-Functor_TorqGf*F$F$FDF$C$F.-%4homalg/Functor_TorqGF9F$ F$F$%*KernelEmbGf*F$F$6%%[oCopyright~(C)~2003-2007~by~Mohamed~Barakat.~All~righ ts~reserved.GF+F,F$C$F.-%1homalg/KernelEmbGF9F$F$F$%/RHomHom3OnSeqsGf*F$F$FDF$C $F.-%6homalg/RHomHom3OnSeqsGF9F$F$F$%/CheckHomsOfSeqGf*F$F$F=F$C$F.-%6homalg/Ch eckHomsOfSeqGF9F$F$F$%%TorqGf*F$F$6%%[oCopyright~(C)~2005-2006~by~Mohamed~Barak at.~All~rights~reserved.GF+F,F$C$F.-%,homalg/TorqGF9F$F$F$%2NatTrIdToHomHom_RGf *F$F$6%%[oCopyright~(C)~2003-2004~by~Mohamed~Barakat.~All~rights~reserved.GF+F, F$C$F.-%9homalg/NatTrIdToHomHom_RGF9F$F$F$%)ExtMap_RGf*F$F$F)F$C$F.-%0homalg/Ex tMap_RGF9F$F$F$%4EulerCharacteristicGf*F$F$6#FLF$C$F.-%;homalg/EulerCharacteris ticGF9F$F$F$%-LHomHomMap_RGf*F$F$6%%ioCopyright~(C)~2005~by~Mohamed~Barakat~and ~Daniel~Robertz.~All~rights~reserved.GF+F,F$C$F.-%4homalg/LHomHomMap_RGF9F$F$F$ %)Extq2MapGf*F$F$FDF$C$F.-%0homalg/Extq2MapGF9F$F$F$%/FreeHullModuleGf*F$F$F=F$ C$F.-%6homalg/FreeHullModuleGF9F$F$F$%/HomHom_ROnSeqsGf*F$F$FeqF$C$F.-%6homalg/ HomHom_ROnSeqsGF9F$F$F$%-Functor_Ext2Gf*F$F$FDF$C$F.-%4homalg/Functor_Ext2GF9F$ F$F$%.HomHom3OnSeqsGf*F$F$FDF$C$F.-%5homalg/HomHom3OnSeqsGF9F$F$F$%'AddMatGf*F$ F$6#%[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F.- %.homalg/AddMatGF9F$F$F$%,Functor_TorGf*F$F$FDF$C$F.-%3homalg/Functor_TorGF9F$F $F$%5TorsionFreeFactorMapGf*F$F$FKF$C$F.-%<homalg/TorsionFreeFactorMapGF9F$F$F$ %'HomHomGf*F$F$FDF$C$F.-%.homalg/HomHomGF9F$F$F$%'LambekGf*F$F$6#%[oCopyright~( C)~2003-2006~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F.-%.homalg/LambekGF9 F$F$F$%,OnMorphismsGf*F$F$6%FfsF+F,F$C$F.-%3homalg/OnMorphismsGF9F$F$F$%0Compos eFunctorsGf*F$F$6#%^pCopyright~(C)~2005-2006~by~Mohamed~Barakat~and~Daniel~Robe rtz.~All~rights~reserved.GF$C$F.-%7homalg/ComposeFunctorsGF9F$F$F$%1Functor_LHo mHom2Gf*F$F$FDF$C$F.-%8homalg/Functor_LHomHom2GF9F$F$F$%2PushoutPairOfMapsGf*F$ F$FKF$C$F.-%9homalg/PushoutPairOfMapsGF9F$F$F$%,Torq2OnSeqsGf*F$F$FDF$C$F.-%3ho malg/Torq2OnSeqsGF9F$F$F$%+Tor2OnSeqsGf*F$F$FDF$C$F.-%2homalg/Tor2OnSeqsGF9F$F$ F$%)PreimageGf*F$F$F=F$C$F.-%0homalg/PreimageGF9F$F$F$%0ResolutionOfSeqGf*F$F$F buF$C$F.-%7homalg/ResolutionOfSeqGF9F$F$F$%(LHomMapGf*F$F$FDF$C$F.-%/homalg/LHo mMapGF9F$F$F$%+Ext2OnSeqsGf*F$F$FDF$C$F.-%2homalg/Ext2OnSeqsGF9F$F$F$%*ExtOnSeq sGf*F$F$FDF$C$F.-%1homalg/ExtOnSeqsGF9F$F$F$%.FunctorOnSeqsGf*F$F$F)F$C$F.-%5ho malg/FunctorOnSeqsGF9F$F$F$%%LHomGf*F$F$FDF$C$F.-%,homalg/LHomGF9F$F$F$%*IsComp lexGf*F$F$F=F$C$F.-%1homalg/IsComplexGF9F$F$F$%(ExtqMapGf*F$F$F)F$C$F.-%/homalg /ExtqMapGF9F$F$F$%.CodimOfModuleGf*F$F$F_qF$C$F.-%5homalg/CodimOfModuleGF9F$F$F $%.Functor_Hom_RGf*F$F$FDF$C$F.-%5homalg/Functor_Hom_RGF9F$F$F$%1TorsionSubmodu leGf*F$F$6%%^pCopyright~(C)~2003-2005~by~Mohamed~Barakat~and~Daniel~Robertz.~Al l~rights~reserved.GF+F,F$C$F.-%8homalg/TorsionSubmoduleGF9F$F$F$%.Functor_Ext_R Gf*F$F$FDF$C$F.-%5homalg/Functor_Ext_RGF9F$F$F$%7Functor_TensorProduct2Gf*F$F$F DF$C$F.-%>homalg/Functor_TensorProduct2GF9F$F$F$%3LeftDerivedFunctorGf*F$F$6#F] pF$C$F.-%:homalg/LeftDerivedFunctorGF9F$F$F$%0DefectOfHomsMapGf*F$F$FbuF$C$F.-% 7homalg/DefectOfHomsMapGF9F$F$F$%2ReplaceGeneratorsGf*F$F$6#F*F$C$F.-%9homalg/R eplaceGeneratorsGF9F$F$F$%2TensorProduct2MapGf*F$F$F\pF$C$F.-%9homalg/TensorPro duct2MapGF9F$F$F$%6Functor_TensorProductGf*F$F$FDF$C$F.-%=homalg/Functor_Tensor ProductGF9F$F$F$%(ComposeGf*F$F$FesF$C$F.-%/homalg/ComposeGF9F$F$F$%2Cohomology ModulesGf*F$F$F=F$C$F.-%9homalg/CohomologyModulesGF9F$F$F$%-Functor_LHomGf*F$F$ FDF$C$F.-%4homalg/Functor_LHomGF9F$F$F$%$HomGf*F$F$6#F\oF$C$F.-%+homalg/HomGF9F $F$F$%3Ext1Of2OneCocyclesGf*F$F$6#%enCopyright~(C)~2008~by~Barbara~Bremer.~All~ rights~reserved.GF$C$F.-%:homalg/Ext1Of2OneCocyclesGF9F$F$F$%<InjectivePresenta tionIsoFFRGf*F$F$F_qF$C$F.-%Chomalg/InjectivePresentationIsoFFRGF9F$F$F$%0IsSho rtExactSeqGf*F$F$F=F$C$F.-%7homalg/IsShortExactSeqGF9F$F$F$%-CheckComplexGf*F$F $F=F$C$F.-%4homalg/CheckComplexGF9F$F$F$%'TorMapGf*F$F$F)F$C$F.-%.homalg/TorMap GF9F$F$F$%,Functor_ExtGf*F$F$FDF$C$F.-%3homalg/Functor_ExtGF9F$F$F$%/CofunctorO nSeqGf*F$F$6%%[oCopyright~(C)~2004-2006~by~Mohamed~Barakat.~All~rights~reserved .GF+F,F$C$F.-%6homalg/CofunctorOnSeqGF9F$F$F$%/SyzygiesModuleGf*F$F$FKF$C$F.-%6 homalg/SyzygiesModuleGF9F$F$F$%0SubfactorModuleGf*F$F$FjzF$C$F.-%7homalg/Subfac torModuleGF9F$F$F$%-LeftinverseCGf*F$F$6%%[oCopyright~(C)~2006-2007~by~Mohamed~ Barakat.~All~rights~reserved.GF+F,F$C$F.-%4homalg/LeftinverseCGF9F$F$F$%.Connec tingHomGf*F$F$FesF$C$F.-%5homalg/ConnectingHomGF9F$F$F$%+IsExactSeqGf*F$F$F=F$C $F.-%2homalg/IsExactSeqGF9F$F$F$%(Tor2MapGf*F$F$FDF$C$F.-%/homalg/Tor2MapGF9F$F $F$%1Functor_LHomHom3Gf*F$F$FDF$C$F.-%8homalg/Functor_LHomHom3GF9F$F$F$%:NatTrP ullbackToTwoSourcesGf*F$F$6%%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~ rights~reserved.GF+F,F$C$F.-%Ahomalg/NatTrPullbackToTwoSourcesGF9F$F$F$%.IsProj ectiveCGf*F$F$6#FEF$C$F.-%5homalg/IsProjectiveCGF9F$F$F$%,AnnihilatorGf*F$F$FKF $C$F.-%3homalg/AnnihilatorGF9F$F$F$%3BetterPresentationGf*F$F$6#FhclF$C$F.-%:ho malg/BetterPresentationGF9F$F$F$%0IsCommutativeSqGf*F$F$F=F$C$F.-%7homalg/IsCom mutativeSqGF9F$F$F$%,RHomHom3MapGf*F$F$FDF$C$F.-%3homalg/RHomHom3MapGF9F$F$F$%- DefectOfHomsGf*F$F$6%%^pCopyright~(C)~2003-2008~by~Mohamed~Barakat~and~Daniel~R obertz.~All~rights~reserved.GF+F,F$C$F.-%4homalg/DefectOfHomsGF9F$F$F$%'DerModG f*F$F$Fe^lF$C$F.-%.homalg/DerModGF9F$F$F$%*EqualMapsGf*F$F$FgclF$C$F.-%1homalg/ EqualMapsGF9F$F$F$%*DirectSumGf*F$F$F[uF$C$F.-%1homalg/DirectSumGF9F$F$F$%-Func tor_ExtqGf*F$F$FDF$C$F.-%4homalg/Functor_ExtqGF9F$F$F$%-Functor_Hom2Gf*F$F$FDF$ C$F.-%4homalg/Functor_Hom2GF9F$F$F$%0LHomHom_ROnSeqsGf*F$F$FDF$C$F.-%7homalg/LH omHom_ROnSeqsGF9F$F$F$%,IdentityMapGf*F$F$Ff\lF$C$F.-%3homalg/IdentityMapGF9F$F $F$%.LHomHomOnSeqsGf*F$F$FDF$C$F.-%5homalg/LHomHomOnSeqsGF9F$F$F$%*ExtensionGf* F$F$6%%LCopyright~(C)~2007~by~~All~rights~reserved.GF+F,F$C$F.-%1homalg/Extensi onGF9F$F$F$%9GeneratorsOfPresentationGf*F$F$FesF$C$F.-%@homalg/GeneratorsOfPres entationGF9F$F$F$%+Hom2OnSeqsGf*F$F$FDF$C$F.-%2homalg/Hom2OnSeqsGF9F$F$F$%-Func torOnSeqGf*F$F$F\pF$C$F.-%4homalg/FunctorOnSeqGF9F$F$F$%2ParametrizeModuleGf*F$ F$6%%^pCopyright~(C)~2003-2007~by~Mohamed~Barakat~and~Daniel~Robertz.~All~right s~reserved.GF+F,F$C$F.-%9homalg/ParametrizeModuleGF9F$F$F$%:RightSatelliteOfCof unctorGf*F$F$6#%[oCopyright~(C)~2005-2007~by~Mohamed~Barakat.~All~rights~reserv ed.GF$C$F.-%Ahomalg/RightSatelliteOfCofunctorGF9F$F$F$%'ExtMapGf*F$F$F)F$C$F.-% .homalg/ExtMapGF9F$F$F$%5TorsionFreeFactorEpiGf*F$F$FKF$C$F.-%<homalg/TorsionFr eeFactorEpiGF9F$F$F$%3CocycleOfExtensionGf*F$F$6%%enCopyright~(C)~2007~by~Barba ra~Bremer.~All~rights~reserved.GF+F,F$C$F.-%:homalg/CocycleOfExtensionGF9F$F$F$ %*TorOnSeqsGf*F$F$FDF$C$F.-%1homalg/TorOnSeqsGF9F$F$F$%,CokernelEpiGf*F$F$FgclF $C$F.-%3homalg/CokernelEpiGF9F$F$F$%7LongExactCohomologySeqGf*F$F$FidlF$C$F.-%> homalg/LongExactCohomologySeqGF9F$F$F$%&IsHomGf*F$F$6#FdpF$C$F.-%-homalg/IsHomG F9F$F$F$%4ChineseRemainderMapGf*F$F$Ff\lF$C$F.-%;homalg/ChineseRemainderMapGF9F $F$F$%(CoimageGf*F$F$F\blF$C$F.-%/homalg/CoimageGF9F$F$F$%/LHomHom3OnSeqsGf*F$F $FDF$C$F.-%6homalg/LHomHom3OnSeqsGF9F$F$F$%6RightDerivedCofunctorGf*F$F$F[\lF$C $F.-%=homalg/RightDerivedCofunctorGF9F$F$F$%+TorqOnSeqsGf*F$F$FDF$C$F.-%2homalg /TorqOnSeqsGF9F$F$F$%1Functor_RHomHom2Gf*F$F$FDF$C$F.-%8homalg/Functor_RHomHom2 GF9F$F$F$%2A3ExtensionModuleGf*F$F$F[_lF$C$F.-%9homalg/A3ExtensionModuleGF9F$F$ F$%1BetterGeneratorsGf*F$F$FidlF$C$F.-%8homalg/BetterGeneratorsGF9F$F$F$%(Ext2M apGf*F$F$FDF$C$F.-%/homalg/Ext2MapGF9F$F$F$%9Functor_TorsionSubmoduleGf*F$F$FDF $C$F.-%@homalg/Functor_TorsionSubmoduleGF9F$F$F$%'HomMapGf*F$F$6%%[oCopyright~( C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%.homalg/HomMa pGF9F$F$F$%/homalg_optionsGf*F$F$6#F]blF$C$F.-%6homalg/homalg_optionsGF9F$F$F$% 6NatTrTargetToCokernelGf*F$F$FbuF$C$F.-%=homalg/NatTrTargetToCokernelGF9F$F$F$% 8TorsionFreeFactorOnSeqsGf*F$F$FKF$C$F.-%?homalg/TorsionFreeFactorOnSeqsGF9F$F$ F$%,IsInjectiveGf*F$F$F[uF$C$F.-%3homalg/IsInjectiveGF9F$F$F$%2A2ExtensionModul eGf*F$F$F[_lF$C$F.-%9homalg/A2ExtensionModuleGF9F$F$F$%(PushoutGf*F$F$FKF$C$F.- %/homalg/PushoutGF9F$F$F$%0HomologyModulesGf*F$F$F=F$C$F.-%7homalg/HomologyModu lesGF9F$F$F$%$TorGf*F$F$F\pF$C$F.-%+homalg/TorGF9F$F$F$%,Ext_ROnSeqsGf*F$F$FDF$ C$F.-%3homalg/Ext_ROnSeqsGF9F$F$F$%0CompleteImSqInvGf*F$F$F=F$C$F.-%7homalg/Com pleteImSqInvGF9F$F$F$%+RHomHomMapGf*F$F$FDF$C$F.-%2homalg/RHomHomMapGF9F$F$F$%, RHomHom2MapGf*F$F$FDF$C$F.-%3homalg/RHomHom2MapGF9F$F$F$%.LEHS2AiBjCconGf*F$F$F =F$C$F.-%5homalg/LEHS2AiBjCconGF9F$F$F$%-Functor_Tor2Gf*F$F$FDF$C$F.-%4homalg/F unctor_Tor2GF9F$F$F$%(MakeSeqGf*F$F$6#F\alF$C$F.-%/homalg/MakeSeqGF9F$F$F$%0Nat TrImToTargetGf*F$F$FKF$C$F.-%7homalg/NatTrImToTargetGF9F$F$F$%.LECS2conAiBjCGf* F$F$F=F$C$F.-%5homalg/LECS2conAiBjCGF9F$F$F$%0IsStablyFreeFFRGf*F$F$F_qF$C$F.-% 7homalg/IsStablyFreeFFRGF9F$F$F$%0OriginalElementGf*F$F$F_qF$C$F.-%7homalg/Orig inalElementGF9F$F$F$%-DirectSumMapGf*F$F$6#Fe`mF$C$F.-%4homalg/DirectSumMapGF9F $F$F$%+BasisCoeffGf*F$F$6%%ioCopyright~(C)~2004~by~Mohamed~Barakat~and~Daniel~R obertz.~All~rights~reserved.GF+F,F$C$F.-%2homalg/BasisCoeffGF9F$F$F$%0NatTrSour ceToImGf*F$F$FKF$C$F.-%7homalg/NatTrSourceToImGF9F$F$F$%)CokernelGf*F$F$6%%[oCo pyright~(C)~2004-2008~by~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%0hom alg/CokernelGF9F$F$F$%$ExtGf*F$F$6%F\uF+F,F$C$F.-%+homalg/ExtGF9F$F$F$%-Present ationGf*F$F$FidlF$C$F.-%4homalg/PresentationGF9F$F$F$%'KernelGf*F$F$6%%[oCopyri ght~(C)~2003-2008~by~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%.homalg/ KernelGF9F$F$F$%&ImageGf*F$F$FKF$C$F.-%-homalg/ImageGF9F$F$F$%0ImageOfElementsG f*F$F$F_qF$C$F.-%7homalg/ImageOfElementsGF9F$F$F$%*LHomHom_RGf*F$F$FDF$C$F.-%1h omalg/LHomHom_RGF9F$F$F$%(LHomHomGf*F$F$FDF$C$F.-%/homalg/LHomHomGF9F$F$F$%8Yon edaProductOfCocyclesGf*F$F$Ff[mF$C$F.-%?homalg/YonedaProductOfCocyclesGF9F$F$F$ %,LeftinverseGf*F$F$F_qF$C$F.-%3homalg/LeftinverseGF9F$F$F$%:StablyFreePresenta tionFFRGf*F$F$F_qF$C$F.-%Ahomalg/StablyFreePresentationFFRGF9F$F$F$%4NatTrKerne lToSourceGf*F$F$Fd`mF$C$F.-%;homalg/NatTrKernelToSourceGF9F$F$F$%0StdBasisVecto rsGf*F$F$FesF$C$F.-%7homalg/StdBasisVectorsGF9F$F$F$%*GlobalDimGf*F$F$6%F>F+F,F $C$F.-%1homalg/GlobalDimGF9F$F$F$%/DerMinusLogInvGf*F$F$F_qF$C$F.-%6homalg/DerM inusLogInvGF9F$F$F$%3EqualPresentationsGf*F$F$FidlF$C$F.-%:homalg/EqualPresenta tionsGF9F$F$F$%-IsExactCoseqGf*F$F$F=F$C$F.-%4homalg/IsExactCoseqGF9F$F$F$%/Fun ctor_HomHomGf*F$F$FDF$C$F.-%6homalg/Functor_HomHomGF9F$F$F$%,CokernelMapGf*F$F$ FbuF$C$F.-%3homalg/CokernelMapGF9F$F$F$%'SubMatGf*F$F$F=F$C$F.-%.homalg/SubMatG F9F$F$F$%.CompleteKerSqGf*F$F$F=F$C$F.-%5homalg/CompleteKerSqGF9F$F$F$%*MakeCos eqGf*F$F$FbemF$C$F.-%1homalg/MakeCoseqGF9F$F$F$%,Functor_HomGf*F$F$FDF$C$F.-%3h omalg/Functor_HomGF9F$F$F$%)PullbackGf*F$F$FbuF$C$F.-%0homalg/PullbackGF9F$F$F$ %1Functor_HomHom_RGf*F$F$FDF$C$F.-%8homalg/Functor_HomHom_RGF9F$F$F$%+LHomHomMa pGf*F$F$FDF$C$F.-%2homalg/LHomHomMapGF9F$F$F$%,Hom_ROnSeqsGf*F$F$Fd\nF$C$F.-%3h omalg/Hom_ROnSeqsGF9F$F$F$%.IsTorsionFreeGf*F$F$FKF$C$F.-%5homalg/IsTorsionFree GF9F$F$F$%1Functor_RHomHom3Gf*F$F$FDF$C$F.-%8homalg/Functor_RHomHom3GF9F$F$F$%4 TensorProductOnSeqsGf*F$F$F)F$C$F.-%;homalg/TensorProductOnSeqsGF9F$F$F$%)LHom2 MapGf*F$F$FDF$C$F.-%0homalg/LHom2MapGF9F$F$F$%+ExtqOnSeqsGf*F$F$FDF$C$F.-%2homa lg/ExtqOnSeqsGF9F$F$F$%-KroneckerMatGf*F$F$6#%fnCopyright~(C)~2003~by~Mohamed~B arakat.~All~rights~reserved.GF$C$F.-%4homalg/KroneckerMatGF9F$F$F$%:YonedaProdu ctOfExtensionsGf*F$F$Ff[mF$C$F.-%Ahomalg/YonedaProductOfExtensionsGF9F$F$F$%:Fu nctor_TorsionFreeFactorGf*F$F$FKF$C$F.-%Ahomalg/Functor_TorsionFreeFactorGF9F$F $F$%.HomHom2OnSeqsGf*F$F$FDF$C$F.-%5homalg/HomHom2OnSeqsGF9F$F$F$%(Hom2MapGf*F$ F$F)F$C$F.-%/homalg/Hom2MapGF9F$F$F$%,LHomHom2MapGf*F$F$FDF$C$F.-%3homalg/LHomH om2MapGF9F$F$F$%,ReduceCoeffGf*F$F$FbgmF$C$F.-%3homalg/ReduceCoeffGF9F$F$F$%5Te nsorProduct2OnSeqsGf*F$F$FDF$C$F.-%<homalg/TensorProduct2OnSeqsGF9F$F$F$%1Prese ntationInfoGf*F$F$F=F$C$F.-%8homalg/PresentationInfoGF9F$F$F$%-IsSurjectiveGf*F $F$F[uF$C$F.-%4homalg/IsSurjectiveGF9F$F$F$%4TorsionSubmoduleMapGf*F$F$FcpF$C$F .-%;homalg/TorsionSubmoduleMapGF9F$F$F$%(ZeroMapGf*F$F$FesF$C$F.-%/homalg/ZeroM apGF9F$F$F$%'ReduceGf*F$F$FbuF$C$F.-%.homalg/ReduceGF9F$F$F$%.Functor_Extq2Gf*F $F$FDF$C$F.-%5homalg/Functor_Extq2GF9F$F$F$%+LHomOnSeqsGf*F$F$FDF$C$F.-%2homalg /LHomOnSeqsGF9F$F$F$%&Ext_RGf*F$F$6%%^pCopyright~(C)~2003-2006~by~Mohamed~Barak at~and~Daniel~Robertz.~All~rights~reserved.GF+F,F$C$F.-%-homalg/Ext_RGF9F$F$F$% 9InjectivePresentationFFRGf*F$F$F_qF$C$F.-%@homalg/InjectivePresentationFFRGF9F $F$F$%+InvolutionGf*F$F$6#%jnCopyright~(C)~2004-2005~by~Daniel~Robertz.~All~rig hts~reserved.GF$C$F.-%2homalg/InvolutionGF9F$F$F$%+ZeroModuleGf*F$F$Fd\nF$C$F.- %2homalg/ZeroModuleGF9F$F$F$%1ResidueClassRingGf*F$F$F[alF$C$F.-%8homalg/Residu eClassRingGF9F$F$F$%.Functor_LHom2Gf*F$F$FDF$C$F.-%5homalg/Functor_LHom2GF9F$F$ F$%*IsZeroMapGf*F$F$FgclF$C$F.-%1homalg/IsZeroMapGF9F$F$F$%1TensorProductMapGf* F$F$F)F$C$F.-%8homalg/TensorProductMapGF9F$F$F$%)HomMap_RGf*F$F$Fd`mF$C$F.-%0ho malg/HomMap_RGF9F$F$F$%6NatIsoKerOfSqToImOfSqGf*F$F$F\]mF$C$F.-%=homalg/NatIsoK erOfSqToImOfSqGF9F$F$F$%/RHomHom2OnSeqsGf*F$F$FDF$C$F.-%6homalg/RHomHom2OnSeqsG F9F$F$F$%AA2ExtensionModuleFromA2ExtensionGf*F$F$6#%jnCopyright~(C)~2007-2008~b y~Barbara~Bremer.~All~rights~reserved.GF$C$F.-%Hhomalg/A2ExtensionModuleFromA2E xtensionGF9F$F$F$%0Functor_LHomHomGf*F$F$FDF$C$F.-%7homalg/Functor_LHomHomGF9F$ F$F$%)ImageEpiGf*F$F$FKF$C$F.-%0homalg/ImageEpiGF9F$F$F$%7ProjectiveDimensionFF RGf*F$F$F_qF$C$F.-%>homalg/ProjectiveDimensionFFRGF9F$F$F$%/InverseElementGf*F$ F$FidlF$C$F.-%6homalg/InverseElementGF9F$F$F$%/CheckCocomplexGf*F$F$F=F$C$F.-%6 homalg/CheckCocomplexGF9F$F$F$%+HomHom2MapGf*F$F$FDF$C$F.-%2homalg/HomHom2MapGF 9F$F$F$%.TensorProductGf*F$F$F[\lF$C$F.-%5homalg/TensorProductGF9F$F$F$%-HomHom OnSeqsGf*F$F$FDF$C$F.-%4homalg/HomHomOnSeqsGF9F$F$F$%,DerMinusLogGf*F$F$F_qF$C$ F.-%3homalg/DerMinusLogGF9F$F$F$%+HomHom3MapGf*F$F$FDF$C$F.-%2homalg/HomHom3Map GF9F$F$F$%,ComposeMapsGf*F$F$F_qF$C$F.-%3homalg/ComposeMapsGF9F$F$F$%+CheckKerS qGf*F$F$F\]mF$C$F.-%2homalg/CheckKerSqGF9F$F$F$%*KernelMapGf*F$F$Fd`mF$C$F.-%1h omalg/KernelMapGF9F$F$F$%0CofunctorOnSeqsGf*F$F$Fd\nF$C$F.-%7homalg/CofunctorOn SeqsGF9F$F$F$%+FreeModuleGf*F$F$FbuF$C$F.-%2homalg/FreeModuleGF9F$F$F$%2Functor _LHomHom_RGf*F$F$FDF$C$F.-%9homalg/Functor_LHomHom_RGF9F$F$F$%+FunctorMapGf*F$F $F[alF$C$F.-%2homalg/FunctorMapGF9F$F$F$%.BasisOfModuleGf*F$F$FbuF$C$F.-%5homal g/BasisOfModuleGF9F$F$F$%%ExtqGf*F$F$F\pF$C$F.-%,homalg/ExtqGF9F$F$F$%*LEHS2leh sGf*F$F$F=F$C$F.-%1homalg/LEHS2lehsGF9F$F$F$%.ResolveModuleGf*F$F$F\pF$C$F.-%5h omalg/ResolveModuleGF9F$F$F$%3PullbackPairOfMapsGf*F$F$FgclF$C$F.-%:homalg/Pull backPairOfMapsGF9F$F$F$%+LeftDivideGf*F$F$FesF$C$F.-%2homalg/LeftDivideGF9F$F$F $%,CompleteSeqGf*F$F$F)F$C$F.-%3homalg/CompleteSeqGF9F$F$F$%:IsEquivalenceOfExt ensionsGf*F$F$FKF$C$F.-%Ahomalg/IsEquivalenceOfExtensionsGF9F$F$F$%3ReduceRingE lementsGf*F$F$F[alF$C$F.-%:homalg/ReduceRingElementsGF9F$F$F$%.RHomHomOnSeqsGf* F$F$FDF$C$F.-%5homalg/RHomHomOnSeqsGF9F$F$F$%+table2listGf*F$F$F=F$C$F.-%2homal g/table2listGF9F$F$F$%(DiagMatGf*F$F$Fd`mF$C$F.-%/homalg/DiagMatGF9F$F$F$%1Chec kCompositionGf*F$F$F=F$C$F.-%8homalg/CheckCompositionGF9F$F$F$%.SyzygiesBasisGf *F$F$FgclF$C$F.-%5homalg/SyzygiesBasisGF9F$F$F$%,IsReflexiveGf*F$F$FKF$C$F.-%3h omalg/IsReflexiveGF9F$F$F$%1CheckHomsOfCoseqGf*F$F$F=F$C$F.-%8homalg/CheckHomsO fCoseqGF9F$F$F$%5ResolveShortExactSeqGf*F$F$FesF$C$F.-%<homalg/ResolveShortExac tSeqGF9F$F$F$%-RightinverseGf*F$F$6#%enCopyright~(C)~2004~by~Daniel~Robertz.~Al l~rights~reserved.GF$C$F.-%4homalg/RightinverseGF9F$F$F$%-CompleteImSqGf*F$F$F= F$C$F.-%4homalg/CompleteImSqGF9F$F$F$%5ReducedBasisOfModuleGf*F$F$F\blF$C$F.-%< homalg/ReducedBasisOfModuleGF9F$F$F$%9NatTrTwoTargetsToPushoutGf*F$F$FKF$C$F.-% @homalg/NatTrTwoTargetsToPushoutGF9F$F$F$%(TorqMapGf*F$F$F)F$C$F.-%/homalg/Torq MapGF9F$F$F$%7TorsionSubmoduleOnSeqsGf*F$F$FDF$C$F.-%>homalg/TorsionSubmoduleOn SeqsGF9F$F$F$%+SyzygiesOpGf*F$F$FehmF$C$F.-%2homalg/SyzygiesOpGF9F$F$F$%,RightD ivideGf*F$F$FidlF$C$F.-%3homalg/RightDivideGF9F$F$F$%/NormalizeInputGf*F$F$Fd\n F$C$F.-%6homalg/NormalizeInputGF9F$F$F$%)HomHom_RGf*F$F$6%FiuF+F,F$C$F.-%0homal g/HomHom_RGF9F$F$F$%(KerOfSqGf*F$F$F\]mF$C$F.-%/homalg/KerOfSqGF9F$F$F$%0Functo r_HomHom3Gf*F$F$FDF$C$F.-%7homalg/Functor_HomHom3GF9F$F$F$%'ImOfSqGf*F$F$F\]mF$ C$F.-%.homalg/ImOfSqGF9F$F$F$%,HomHomMap_RGf*F$F$FeqF$C$F.-%3homalg/HomHomMap_R GF9F$F$F$%;NatTrIdToTorsionFreeFactorGf*F$F$FKF$C$F.-%Bhomalg/NatTrIdToTorsionF reeFactorGF9F$F$F$%)Torq2MapGf*F$F$FDF$C$F.-%0homalg/Torq2MapGF9F$F$F$%8DegreeO fTorsionFreenessGf*F$F$F_qF$C$F.-%?homalg/DegreeOfTorsionFreenessGF9F$F$F$%.Nor malizeRingGf*F$F$6%F^foF+F,F$C$F.-%5homalg/NormalizeRingGF9F$F$F$%-Intersection Gf*F$F$F^jlF$C$F.-%4homalg/IntersectionGF9F$F$F$%-SumRelationsGf*F$F$F\]mF$C$F. -%4homalg/SumRelationsGF9F$F$F$%0Functor_RHomHomGf*F$F$FDF$C$F.-%7homalg/Functo r_RHomHomGF9F$F$F$%2ShortenResolutionGf*F$F$FKF$C$F.-%9homalg/ShortenResolution GF9F$F$F$%*HomOnSeqsGf*F$F$Fd\nF$C$F.-%1homalg/HomOnSeqsGF9F$F$F$%*IsTorsionGf* F$F$FKF$C$F.-%1homalg/IsTorsionGF9F$F$F$%1ImageOfSubmoduleGf*F$F$F_qF$C$F.-%8ho malg/ImageOfSubmoduleGF9F$F$F$%*CheckImSqGf*F$F$F\]mF$C$F.-%1homalg/CheckImSqGF 9F$F$F$%0Functor_HomHom2Gf*F$F$FDF$C$F.-%7homalg/Functor_HomHom2GF9F$F$F$%(Kaeh lerGf*F$F$Fe^lF$C$F.-%/homalg/KaehlerGF9F$F$F$%)CheckHomGf*F$F$F\]mF$C$F.-%0hom alg/CheckHomGF9F$F$F$%/LHomHom2OnSeqsGf*F$F$FDF$C$F.-%6homalg/LHomHom2OnSeqsGF9 F$F$F$%'MulMatGf*F$F$FesF$C$F.-%.homalg/MulMatGF9F$F$F$%,IsFreeBasisGf*F$F$6%Ff jlF+F,F$C$F.-%3homalg/IsFreeBasisGF9F$F$F$%*HomHomMapGf*F$F$FDF$C$F.-%1homalg/H omHomMapGF9F$F$F$%:NatTrTorsionSubmoduleToIdGf*F$F$FcpF$C$F.-%Ahomalg/NatTrTors ionSubmoduleToIdGF9F$F$F$%.Functor_Torq2Gf*F$F$FDF$C$F.-%5homalg/Functor_Torq2G F9F$F$F$%(RHomHomGf*F$F$FDF$C$F.-%/homalg/RHomHomGF9F$F$F$%&Hom_RGf*F$F$F[oF$C$ F.-%-homalg/Hom_RGF9F$F$F$%*LECS2lecsGf*F$F$F=F$C$F.-%1homalg/LECS2lecsGF9F$F$F $%-IsZeroModuleGf*F$F$FgclF$C$F.-%4homalg/IsZeroModuleGF9F$F$F$%=StablyFreePres entationIsoFFRGf*F$F$F_qF$C$F.-%Dhomalg/StablyFreePresentationIsoFFRGF9F$F$F$%, IsBijectiveGf*F$F$F_qF$C$F.-%3homalg/IsBijectiveGF9F$F$F$%,Extq2OnSeqsGf*F$F$FD F$C$F.-%3homalg/Extq2OnSeqsGF9F$F$F$%3SyzygiesGeneratorsGf*F$F$Fd\nF$C$F.-%:hom alg/SyzygiesGeneratorsGF9F$F$F$%)ImageEmbGf*F$F$FKF$C$F.-%0homalg/ImageEmbGF9F$ F$F$%3ResolutionOfModuleGf*F$F$FDF$C$F.-%:homalg/ResolutionOfModuleGF9F$F$F$%7L eftSatelliteOfFunctorGf*F$F$F[\lF$C$F.-%>homalg/LeftSatelliteOfFunctorGF9F$F$F$ %5LongExactHomologySeqGf*F$F$FidlF$C$F.-%<homalg/LongExactHomologySeqGF9F$F$F$% 4TorsionSubmoduleEmbGf*F$F$Fd`mF$C$F.-%;homalg/TorsionSubmoduleEmbGF9F$F$F$F$, Q)homalg.mF$ M7R0 I(homalgT=6"%&falseGE\[lT%/GetConvertInfoGf*F$F$6#%[oCopyright~(C)~2005-2007~by ~Mohamed~Barakat.~All~rights~reserved.GF$C$30%3homalg/initializedG.%%trueG0-%,h omalg/initGF$""!-%6homalg/GetConvertInfoG6#9"F$F$F$%2NonZeroGeneratorsGf*F$F$6# %[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F,-%9ho malg/NonZeroGeneratorsGF7F$F$F$%6ConvertColumnToMatrixGf*F$F$6#%fnCopyright~(C) ~2008~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F,-%=homalg/ConvertColumnToM atrixGF7F$F$F$%?GetRowIndependentUnitPositionsGf*F$F$FBF$C$F,-%Fhomalg/GetRowIn dependentUnitPositionsGF7F$F$F$%*tablenameGf*F$F$6#%^pCopyright~(C)~2004-2006~b y~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%1homalg/tabl enameGF7F$F$F$%-IsZeroMatrixGf*F$F$FBF$C$F,-%4homalg/IsZeroMatrixGF7F$F$F$%<Syz ygiesGeneratorsOfColumnsGf*F$F$6%FC%'systemG%)rememberGF$C$F,-%Chomalg/Syzygies GeneratorsOfColumnsGF7F$F$F$%4EmbedInFactorModuleGf*F$F$6#%fnCopyright~(C)~2004 ~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F,-%;homalg/EmbedInFactorModuleGF 7F$F$F$%1BasisOfRowModuleGf*F$F$FZF$C$F,-%8homalg/BasisOfRowModuleGF7F$F$F$%+Ex tension1Gf*F$F$6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved. GFenFfnF$C$F,-%2homalg/Extension1GF7F$F$F$%,BetterBasisGf*F$F$6#%[oCopyright~(C )~2004-2007~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F,-%3homalg/BetterBasi sGF7F$F$F$%9YonedaProductOfCocycles2Gf*F$F$6%%enCopyright~(C)~2007~by~Barbara~B remer.~All~rights~reserved.GFenFfnF$C$F,-%@homalg/YonedaProductOfCocycles2GF7F$ F$F$%4BasisOfColumnsCoeffGf*F$F$FZF$C$F,-%;homalg/BasisOfColumnsCoeffGF7F$F$F$% 0PrettyExtensionGf*F$F$6#FgpF$C$F,-%7homalg/PrettyExtensionGF7F$F$F$%=SolveSyst emWithConstraintsC2Gf*F$F$FfpF$C$F,-%Dhomalg/SolveSystemWithConstraintsC2GF7F$F $F$%,ZeroColumnsGf*F$F$FBF$C$F,-%3homalg/ZeroColumnsGF7F$F$F$%4BasisOfColumnMod uleGf*F$F$FZF$C$F,-%;homalg/BasisOfColumnModuleGF7F$F$F$%BGetColumnIndependentU nitPositionsGf*F$F$FBF$C$F,-%Ihomalg/GetColumnIndependentUnitPositionsGF7F$F$F$ %2DecideZeroColumnsGf*F$F$FZF$C$F,-%9homalg/DecideZeroColumnsGF7F$F$F$%,compute _psiGf*F$F$6#%ioCopyright~(C)~2008~by~Mohamed~Barakat~and~Barbara~Bremer.~All~r ights~reserved.GF$C$F,-%3homalg/compute_psiGF7F$F$F$%-FirstNonZeroGf*F$F$F\oF$C $F,-%4homalg/FirstNonZeroGF7F$F$F$%/MonomialMatrixGf*F$F$6#%[oCopyright~(C)~200 9-2012~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F,-%6homalg/MonomialMatrixG F7F$F$F$%1BasisOfRowsCoeffGf*F$F$FZF$C$F,-%8homalg/BasisOfRowsCoeffGF7F$F$F$%'R esDimGf*F$F$6#%[oCopyright~(C)~2003-2004~by~Mohamed~Barakat.~All~rights~reserve d.GF$C$F,-%.homalg/ResDimGF7F$F$F$%1AreEqualMatricesGf*F$F$FZF$C$F,-%8homalg/Ar eEqualMatricesGF7F$F$F$%)ZeroRowsGf*F$F$FBF$C$F,-%0homalg/ZeroRowsGF7F$F$F$%/De cideZeroRowsGf*F$F$FZF$C$F,-%6homalg/DecideZeroRowsGF7F$F$F$%8DiagonalElementsA ndRankGf*F$F$F\oF$C$F,-%?homalg/DiagonalElementsAndRankGF7F$F$F$%,LastNonZeroGf *F$F$F\oF$C$F,-%3homalg/LastNonZeroGF7F$F$F$%<SolveSystemWithConstraintsCGf*F$F $FfpF$C$F,-%Chomalg/SolveSystemWithConstraintsCGF7F$F$F$%,RankOfGaussGf*F$F$F\o F$C$F,-%3homalg/RankOfGaussGF7F$F$F$%2ConvertGeneratorsGf*F$F$F;F$C$F,-%9homalg /ConvertGeneratorsGF7F$F$F$%3ConvertRowToMatrixGf*F$F$FBF$C$F,-%:homalg/Convert RowToMatrixGF7F$F$F$%-SyzygiesDataGf*F$F$FhoF$C$F,-%4homalg/SyzygiesDataGF7F$F$ F$%.SingleNonZeroGf*F$F$6#%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~ reserved.GF$C$F,-%5homalg/SingleNonZeroGF7F$F$F$%?A2ExtensionModuleFromA2Cocycl eGf*F$F$FbqF$C$F,-%Fhomalg/A2ExtensionModuleFromA2CocycleGF7F$F$F$%2ConvertToLi stListGf*F$F$FBF$C$F,-%9homalg/ConvertToListListGF7F$F$F$%<GetIndependentUnitPo sitionsGf*F$F$FbxF$C$F,-%Chomalg/GetIndependentUnitPositionsGF7F$F$F$%0GetUnitP ositionGf*F$F$F_pF$C$F,-%7homalg/GetUnitPositionGF7F$F$F$%:DecideZeroRowsEffect ivelyGf*F$F$FZF$C$F,-%Ahomalg/DecideZeroRowsEffectivelyGF7F$F$F$%4CokernelOfExt ensionGf*F$F$FbqF$C$F,-%;homalg/CokernelOfExtensionGF7F$F$F$%1copyright_homalgG f*F$F$6#%^pCopyright~(C)~2002-2012~by~Mohamed~Barakat~and~Daniel~Robertz.~All~r ights~reserved.GF$C$F,-%8homalg/copyright_homalgGF7F$F$F$%4CocycleOfExtension1G f*F$F$6%%ioCopyright~(C)~2007~by~Mohamed~Barakat~and~Barbara~Bremer.~All~rights ~reserved.GFenFfnF$C$F,-%;homalg/CocycleOfExtension1GF7F$F$F$%+GetOptionsGf*F$F $6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~rights~reserved.GFenFfnF$C$F,- %2homalg/GetOptionsGF7F$F$F$%3NormalizeExtensionGf*F$F$FbqF$C$F,-%:homalg/Norma lizeExtensionGF7F$F$F$%9SyzygiesGeneratorsOfRowsGf*F$F$FZF$C$F,-%@homalg/Syzygi esGeneratorsOfRowsGF7F$F$F$%.compute_kappaGf*F$F$FasF$C$F,-%5homalg/compute_kap paGF7F$F$F$%=DecideZeroColumnsEffectivelyGf*F$F$FZF$C$F,-%Dhomalg/DecideZeroCol umnsEffectivelyGF7F$F$F$%0Template_homalgGf*F$F$6#%ioCopyright~(C)~2007~by~Moha med~Barakat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F,-%7homalg/Template_h omalgGF7F$F$F$%3FactorizeExtensionGf*F$F$FbqF$C$F,-%:homalg/FactorizeExtensionG F7F$F$F$%6GetCleanRowsPositionsGf*F$F$FBF$C$F,-%=homalg/GetCleanRowsPositionsGF 7F$F$F$F$, Q*homalgT.mF$ M7R0 IJhomalg/AModuleForATwoExtensionFromCocyclef*6'%"MG%$etaG%"NG'%$varG%%listG%,Ri ngPackageG6%%#RPG%$narG%$extG6#%enCopyright~(C)~2007~by~Barbara~Bremer.~All~rig hts~reserved.G6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedur eG-%'RETURNG6#-F56#&F;6#;""",&F=FLF>F=>8&-%1homalg/ExtensionG6(""#9$9%9&9'F5-%? homalg/AModuleForATwoExtensionG6%FOFWF5F2F2F2F2, QLhomalg/AModuleForATwoExtensionFromCocycle.mF2 M7R0 I8homalg/BetterGeneratorsf*6%%#_MG'%$varG%%listG%,RingPackageG6S%#RPG%$narG%*co mpute_UG%*compute_VG%+compute_UIG%+compute_VIG%&nar_UG%&nar_VG%'nar_UIG%'nar_VI G%"MG%"mG%#UVG%#MMG%DCOMPUTED_A_STABLY_FREE_PRESENTATIONG%)finishedG%Tcheck_if_ stably_free_rank_1_commutative_FFR_is_freeG%Hcheck_if_stably_free_rank_1_FFR_is _freeG%Echeck_if_parametrization_FFR_is_freeG%#nnG%"nG%%Id_UG%%Id_VG%"UG%"VG%#U IG%#VIG%%zeroG%$oneG%.clean_columnsG%0unclean_columnsG%"bG%2get_unit_positionG% 9get_clean_rows_positionsG%Cget_pair_of_gcd_1_position_per_rowG%Fget_pair_of_gc d_1_position_per_columnG%Fget_all_but_one_gcd_1_column_positionG%Cget_all_but_o ne_gcd_1_row_positionG%Jget_column_with_a_unit_in_its_leftinverseG%Hget_row_wit h_a_unit_in_its_rightinverseG%0eliminate_unitsG%+clean_rowsG%-unclean_rowsG%Del iminate_all_but_one_gcd_1_columnsG%Aeliminate_all_but_one_gcd_1_rowsG%Qeliminat e_columns_with_a_unit_in_its_leftinverseG%Oeliminate_rows_with_a_unit_in_its_ri ghtinverseG%#CMG%"AG6#%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~rights ~reserved.G6"C1>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F[o%*procedureG -%'RETURNG6#-F[o6#&Fao6#;""",&FcoFbpFdoFco@0/9#,&""#FbpFdoFbpC&>8&%&falseG>8'F\ q>8(F\q>8)F\q3/Ffp,&""$FbpFdoFbp-Fgo6$&Fao6#Ffq%'symbolGC'>F[qF\q>F^q%%trueG>F` qF\q>FbqF\q>8+Ffq332FeqFfpFgq-Fgo6$&Fao6#""%%'stringGC'>F[qF\q>F^qF\q>F`qF\q>Fb qF_r>8-Ffq33332,&""&FbpFdoFbpFfpFgq-Fgo6$FirF[r-Fgo6$&Fao6#FjsF\s-Fgo6$&Fao6#"" 'F\sC(>F[qF\q>F^qF_r>F`qF\q>FbqF_r>FcrFfq>FcsF[s3332,&F[sFbpFdoFbpFfpFgqF[tF]tC (>F[qF\q>F^qF\q>F`qF_r>FbqF_r>8,Ffq>FcsF[s33Ffs-Fgo6$F_tF[r-Fgo6$FctF[rC*>F[qF_ r>F^qF_r>F`qF_r>FbqF_r>8*Ffq>FcrF[s>FhuFjs>FcsFet3FgqF[tC(>F[qF_r>F^qF_r>F`qF\q >FbqF\q>FfvFfq>FcrF[s>8.-%6homalg/NormalizeInputG6$9$F[o>8/-&F[o6#%3NumberOfGen eratorsG6#Fcw>83F\q@$33-%)assignedG6#&F[o6#QTcheck_if_stably_free_rank_1_commut ative_FFR_is_freeFhn/7#Fgx7#F_r4-%3homalg/IsFreeBasisG6%-%<homalg/ReducedBasisO fModuleG6%Fcw9%F[oFdyF[oC(>84f*Fhn6%%"SG%"pG%$epiGFhnFhnC'>F[o-%Ahomalg/StablyF reePresentationFFRG6&T#T&Q/ONLY_IF_RANK_1FhnT'@$/F[o%%FAILG-F[p6#F\q>Fdo-&FezF\ x6#F[o>F[q-&Fez6#%'matrixG6#-%:homalg/ReduceRingElementsG6%-%$mapG6$f*6#%"iGFhn 6$%)operatorG%&arrowGFhn7#*&)Fco,&FbzFbpFgwFbpFbp-&%'linalgG6#%$detG6#-Few6$-&F ez6#%/CertainColumnsG6$T%7$-%"$G6#;Fbp,&FgwFbpFcoFbp-Fe]l6#;,&FgwFbpFbpFbpFbzFe zFbpFhnFhn6(F[zFdoFjyF[oF+Fez7#-Fe]l6#;FbpFdoFczFez-F[p6#7$-%%copyG6#F[q-%4homa lg/LeftinverseFG6%F[qFczFezFhnFhn6(F5FcwF'FdyF+F[o@$3-Fex6#&F[o6#Q1heuristics_d ebugFhn/7#F`_lF\y-%&debugG6#Fgy-%6homalg/homalg_optionsG6$/FixF\qF[o>8<-FgyFhn- Fi_l6$/FixF_rF[o@$-Fgo6$F]`lF(C(>Fcw7#7#-&F[o6#%%ZeroGFhn@$Fbq>8>-Ff^l6#&F]`l6# Fhp@$F^q>F]`l-Ff^l6#&F]`l6#Fbp@$F[q>8;Q.not~availableFhn@$F`q>8=F]bl>F`xF_r@$33 4F`x-Fex6#&F[o6#QHcheck_if_stably_free_rank_1_FFR_is_freeFhn/7#FhblF\yC(>85f*Fh n6&%"PG%"FG%#imGF\zFhnFhnC)>F[o-%9homalg/ParametrizeModuleGFaz@$FgzFiz>Fdo-%2ho malg/FreeModuleG6%FbpFczFez@$4-%3homalg/IsInjectiveG6'FbzF[oFdoFczFezFiz>F^q-%1 homalg/ImageFEpiG6&F[oFcz/Q@var_to_assign_functor_on_objectFhn.F[qFez@$4-F_yFj^ lFiz-F[p6#7$-Ff^l6#F^q-%3homalg/LeftinverseG6(FbzF^qF[qFczQ)NO_CHECKFhnFezFhnFh nF[_l@$F]_l-Ff_l6#F_cl-Fi_l6$/FjblF\qF[o>F]`l-F_clFhn-Fi_l6$/FjblF_rF[o@$Fc`lC( >FcwFg`l@$Fbq>F_alF`al@$F^q>F]`lFfal@$F[q>F\blF]bl@$F`q>F`blF]bl>F`xF_r@$33Febl -Fex6#&F[o6#QEcheck_if_parametrization_FFR_is_freeFhn/7#FbglF\yC(>86f*Fhn6'Fbcl %"rGFcclFdclF\zFhnFhnC)>F[o-Fhcl6%FbzFczFez>FdoF\[l>F[q-F\dl6%FdoFczFez@$4-Fadl 6'FbzF[oF[qFczFezFiz>F`q-Fedl6&F[oFcz/Fhdl.F^qFez@$4-F_y6%F^qFczFezFiz-F[p6#7$- Ff^l6#F`q-Fcel6(FbzF`qF^qFczFeelFezFhnFhnF[_l@$F]_l-Ff_l6#Figl-Fi_l6$/FdglF\qF[ o>F]`l-FiglFhn-Fi_l6$/FdglF_rF[o@$Fc`lC(>Fcw7#-Fj`l6#-F[xFgal@$Fbq>F_alF`al@$F^ q>F]`lFfal@$F[q>F\blF]bl@$F`q>F`blF]bl>F`xF_r@&33Febl-Fex6#&F[o6#%*BestBasisG4- F_yFcyC0@'4555F[qF`qF^qFbq>80%%NULLG3Fc\m45F^qFbq>Fe\mF\bl>Fe\m6$F\blF]`l>82F\q @$3-Fex6#&F[o6#%<NeedsStablyFreePresentationG/Fc]mF_rC$>81-F`zFcy@$30Fi]mFhz0-F [x6#Fi]mFiwC$>F^]mF_r>Fcw-Ff^lF`^m>Fcw-Fi[m6%FcwFdyFe\m@$4-Fgo6$Fcw&F[o6#%+matr ixtypeG>Fcw-&F[oFb[lF^x@'F`\mFhnFg\m@$45-Fgo6$F\blF\_m-Fgo6$F\blF\s>F\bl-Fa_m6# F\blC%/Q"VFhn-Ff^l6#F]`l@$Fd_m>F\blF[`m@&33Fc`l0F]`l7"-Fgo6$FhalF\s@%2""!-%+sea rchtextG6$Q$invFhnFhalC$>F_alF`al@$F^q>F]`l-Fcel6'F_alFgwFdyFeelF[o-%&ERRORG6$% GCannot~interpret~the~first~string~in~VGFhal4-Fgo6$F]`lF\_m>F]`l-Fa_mFa`m@$F`q@ %Fh_m>F`blF\bl>F`bl-Fi^l6%F\blFdyF[o@$3Fbq4-Fex6#F_al>F_al-Fi^l6%F]`lFdyF[o@$3F bqF^]m>F_al-&F[oF_]l6$F_al7#-Fe]l6#;FbpFiw@$3F^qF^]m>F]`l-&F[o6#%,CertainRowsG6 $F]`lFecm>8T-%2homalg/BasisCoeffG6&FcwFdy.8SF[o@$3F[q4Fh_m>F\bl-%/homalg/Compos eG6&FgdmF\blFdyF[o@$3F`q4-Fgo6$F`blF\sC$-%4homalg/RightDivideFG6&FcwFbdmFdyF[o> F`bl-F]em6&F`bl%"%GFdyF[o>FcwFbdmFeblC6>8:-%3homalg/IdentityMapG6%FiwFdyF[o@$F^ q>F]`l-Ff^l6#F_fm@$Fbq>F_alFefm>87-&F[o6#%-NumberOfRowsGF^x>88Fjfm>89-Fafm6%F`g mFdyF[o@$F[q>F\bl-Ff^l6#Fbgm@$F`q>F`blFggm>8?Fi`l>8@-&F[o6#%$OneGFhn>8AFh`m>8BF ecm>8MFh`m>8N7#-Fe]l6#;FbpF`gm>8Df*Fhn6$F]\l%"jGFhnFhnC$?&F[o7#-Fe]l6#;FbpFbzF_ r?&FdoFb]lF_r@$0-%6homalg/InverseElementG6%&Fez6$F[oFdoT*T+Fhz-F[p6#7$F[oFdoFf\ mFhnFhn6,F?F`gmFIFfhmF5FcwF'FdyF+F[o>8Ef*Fhn6%FTFcimF]\lFhnFhnC%>F[oFf\m?&FdoFb zF_r?(F[qFbpFbpFb]lF_r@$/&T)6$F[qFdoFezC$>F[o6$F[oF[q[7#F[oFhnFhn6*FHFdhmF?F`gm FGF^hmF5Fcw>8Lf*6#F[z6.%$posGF]\lFcimF\hl%"qG%"aG%"vG%#viG%"uG%#uiG%"lG%"kGFhnF hnC)@$3-Fex6#&FbzFa_l/7#F^]nF\y/Q#M~Fhn-Ff^l6#Fb]l@%2F]amFfp>F[oFgw>F[o-FezFhn@ %/F[oFf\mC%>Fc[n-FcjmFhn>T--Fi[l6$f*6#Fb\nFhnF^\lFhn@$4-%'memberG6$FgwFbzFgwFhn Fhn6$FTFc[n7#-Fe]l6#;FbpT/-F[p6$QMeliminate_units:~NO~new~obsolete~generators:F hnT1>T3F\q?(FhnFbpFbpFhnF_rC5>Fdo&F[oFial>F[q&F[oFcal>Fc_n7$-%#opG6#Fc_nF[q>T5- Fi[l6$f*Fd^nFhnF^\lFhn@$0FgwFbzFgwFhnFhn6$FcimF[qFb`n@$0&Fb]l6$FdoF[qT7C(>F^qF[ an>F`q-&Fbz6#%)simplifyG6$-&Fbz6#%-DivideByUnitG6%F]anF^qT:F[bn>F[anF]an?(FbqFb pFbpT;F_r@$0FbqF[q>&Fb]l6$FdoFbq-Fban6$-Fgan6%FbbnF^qF[bnF[bn@$T=?(FbqFbpFbpT?F _r>&TAFcbn-Fban6$-Fgan6%F]cnF^qF[bnF[bn@$TC?(FbqFbpFbpF[cnF_r>&TE6$FbqFdo-Fban6 $-Fgan6%FgcnF`qF[bnF[bn>Ffv-Ff^l6#TG@$TI>FcrF_dn?(FcwFbpFbpF^bnF_r@$30FcwF[q0&F b]l6$FdoFcwTKC%>F^qFjdn>&Ffv6$F[qFcw-&Fbz6#%&MinusG6%F\enF^qF[bn@$Fcdn>&FcrFaen F^q@$TM>TO-F]em6&F]fnFfvF[bnFbz@$Fcdn>TQ-F]em6&FcrFbfnF[bnFbz>Fb]l-F]em6&Fb]lFf vF[bnFbz@$Fibn>Fhu-Ff^l6#TS@$Fdcn>FcsFjfn@$5FibnFdcn?(FiwFbpFbpF__nF_r@$30FiwFd o0&Fb]l6$FiwF[qF\enC%>F^qFfgn@$Fibn>&Fhu6$FiwFdoFben@$Fdcn>&FcsF]hnF^q@$Fibn>F^ cn-F]em6&FhuF^cnF[bnFbz@$Fdcn>Fhcn-F]em6&FhcnFcsF[bnFbz?&Fiw7$-Fe]l6#;Fbp,&FdoF bpFcoFbp-Fe]l6#;,&FbpFbpFdoFbpF__nF_r>FfgnF\en>F[oFi]n@$F[^nFh[n>Fc[nF^^n>F`^n- Fi[l6$f*Fd^nFhnF^\lFhn@$Ff^nFgwFhnFhnFj^nF[_n-F[p6$QVeliminate_units:~the~NEW~l ist~of~obsolete~generators:FhnFc_nFhnFhn6TF+F[oF5FcwFKF`imFTFhhmFLFijmFUFjhmF?F `gmFHFdhmFJ8CFIFfhmFGF^hmF'FdyF6FiwF-F[qF>FjfmFBF\blF/F`qFDF`blFAF_fmF0FbqFFF\h mF.F^qFCF]`lFEF_alF@Fbgm@$3-Fex6#&F[o6#Q+heuristicsFhn/7#FejnF\yC,>8Gf*Fhn6&Fci mF]\lFh\n%"hGFhnFhnC$?&F[oFbzF_r?&FdoFb]lF_r?(F[qFbinFbpFezF_r@$-Fh^n6$F[qFb]lC $>F^q-Fi^l6%7$7#&Fc[n6$FdoF[o7#&Fc[n6$F[qF[oT,F`^n@$0F^qFhz-F[p6#7&FdoF[oF[qF^q Ff\mFhnFhn6.FIFfhmFUFjhmF?F`gmF5FcwF'FdyF+F[o>8Ff*Fhn6&F]\lFcimFg\nF_[oFhnFhnC$ ?&F[oFbzF_r?&FdoFb]lF_r?&F[q7#-Fe]l6#;FbinFezF_r@$Fe[oC$>F^q-%4homalg/Rightinve rseG6%7#7$&Fc[nFajm&Fc[nFg[nFb\oF`^n@$Fd\o-F[p6#7&F[oFdoF[qF^qFf\mFhnFhn6.FUFjh mFIFfhmF6FiwF5FcwF'FdyF+F[o>8Hf*Fhn6'FcimF]\lF\hl%"fGF_[oFhnFhnC$?&F[oFbzF_r?&F doFb]lF_rC&>F[q-Fi[l6$f*6#Fh\nFhnF^\lFhn@$Fg^nFgwFhnFhn6$FUFb]l7$F[inFb]o>F^q-F i[l6$f*Fa_oFhnF^\lFhn7#&Fbz6$FgwFb]lFhnFhn6&F5F`^nFcimF[oF[q>F`q-Fi^l6%F^qFbjmF cjm@$0F`qFhz-F[p6#7&FdoF[oF[qF`qFf\mFhnFhn6.FIFfhmFUFjhmF?F`gmF'FdyF+F[oF5Fcw>8 If*Fhn6'F]\lFcim%"cGFh^oF_[oFhnFhnC$?&F[oFbzF_r?&FdoFb]lF_rC&>F[q-Fi[l6$f*6#Fg\ nFhnF^\lFhn@$Fg^nFgwFhnFhn6$FIFb]lFd_o>F^q7#-Fi[l6$f*FcaoFhnF^\lFhn&Fbz6$Fb]lFg wFhnFhn6&F5F`^nF]\lF[oF[q>F`q-Fi]oF_`o@$Fa`o-F[p6#7&F[oFdoF[qF`qFf\mFhnFhn6.FUF jhmFIFfhmF6FiwF'FdyF+F[oF5Fcw>8Jf*Fhn6&FcimFh^oF_[oF[zFhnFhnC$?&F[oFbzF_rC%>Fdo -Fi[l6$f*Fa_oFhnF^\lFhnFi_oFhnFhn6&F5FcjmFcimF[oFb]l>F[q-Fi^l6%FdoT(Fc[n@$0F[qF hzC$>F^q-%7homalg/GetUnitPositionG6&F[qFh`mFdcoFc[n@$0F^qFf\m-F[p6#7&&Fb]l6#&F^ qFcalF[oFcdoF[qFf\mFhnFhn6,FIFfhmFUFjhmF'FdyF+F[oF5Fcw>8Kf*Fhn6&F]\lFh^oF_[oF[z FhnFhnC$?&F[oFbzF_rC%>Fdo7#-Fi[l6$f*FcaoFhnF^\lFhnF[boFhnFhn6&F5FcjmF]\lF[oFb]l >F[q-Fi]oFcco@$FfcoC$>F^qFico@$F]do-F[p6#7&F[o&Fb]l6#&F^qFialF]foF[qFf\mFhnFhn6 ,FUFjhmFIFfhmF'FdyF+F[oF5Fcw>8Of*Fhn6.F`\nF]\lFcimF\hlF_[oFe\nFf\nFh\nFj`oF8%$M i_GFg\nFhnFhnC'@$2-%%nopsG6#FbzFfq-F[p6%QWeliminate_all_but_one_gcd_1_columns:~ nothing~to~do~forFhnFgfoQCunclean~rows,~which~is~less~than~3Fhn>F[o-Fb]lFhn@%F[ ^n-F[p6$Q[oeliminate_all_but_one_gcd_1_columns:~NO~new~obsolete~generators:FhnF ez>Fc[nF\q?(FhnFbpFbpFhnF_rC2>FdoFi_n>F[qF[`n>F^q&F[oFjq>F`q&F[oFjr>F`q-F]em6&7 #7#-&Fc_nFden6%Fcjm&F`^nF\anT0F`qFfhoFc_n@$Fe_n>Fbq-Ff^l6#Fb`n@$F]an>FfvFiho@$5 Fe_nF]an?&Fcr7#-Fe]l6#;Fbp-FhfoFaelF_r@$0&F`^n6$&F^q6#FcrF[qT9C$@$Fe_n>&Fbq6$Fd oFiio&F`q6$FbpFcr@$F]an>&FfvF`jo-Fcho6%F[joFajoFfho@$Fe_n>F^bn-F]em6&FbqF^bnFfh oFc_n@$F]an>Fibn-F]em6&FibnFfvFfhoFc_n>Fhu-Fi[l6$f*FcaoFhnF^\lFhn@$Fg^nFgwFhnFh n6$FIFdcn7$-Fe]l6#;Fbp,&F[qFbpFcoFbp-Fe]l6#;,&F[qFbpFbpFbpF[cn@$0FhuFh`mC)>Fcs- &Fc_nF^dm6$F`^nF^q>Fcs-&Fc_nF_]l6$FcsFhu>Fcs-F]em6&F`qFcsFfhoFc_n>Fcw-Fd\p6$F`^ n7#Fdo>Fcw-Fh\p6$FcwFhu>Fcs-%.homalg/AddMatG6&FcwFcsFfhoFc_n?&Fiw7#-Fe]l6#;Fbp- Fhfo6#FhuF_r>&F`^n6$Fdo&Fhu6#Fiw&Fcs6$FbpFiw>FehoFcjm-F^cn6#7$FdoF[q>F[oF_go@$F [^nFh[n-F[p6$Qdoeliminate_all_but_one_gcd_1_columns:~the~NEW~list~of~obsolete~g enerators:FhnFezFhnFhn6DFUFjhmFOFe^oFHFdhmFJF`jnFGF^hmF5FcwF'FdyF+F[oF-F[qF@Fbg mF/F`qFFF\hmFBF\blFDF`blF6FiwFSF\\nFIFfhm>8Pf*Fhn6.F`\nF]\lFcimFj`oF_[oFc\nFd\n Fg\nF\hlF8%$M_jGFh\nFhnFhnC'@$Fffo-F[p6%QUeliminate_all_but_one_gcd_1_rowss:~no thing~to~do~forFhnFgfoQFunclean~columns,~which~is~less~than~3Fhn>F[oF_go@%F[^n- F[p6$Qhneliminate_all_but_one_gcd_1_rows:~NO~new~obsolete~generators:FhnFez>Fc[ nF\q?(FhnFbpFbpFhnF_rC2>FdoFi_n>F[qF[`n>F^qFjgo>F`qF\ho>F`q-F]em6&F`qF`hoFfhoFc _n@$Fe_n>FbqFiho@$F]an>FfvFiho@$F^io?&FcrF`ioF_r@$0&F`^nF`joF[joC$@$Fe_n>&FbqFh io&F`q6$FcrFbp@$F]an>&FfvFhio-Fcho6%F[joFgapFfho@$Fe_n>F^bn-F]em6&F^bnFbqFfhoFc _n@$F]an>Fibn-F]em6&FfvFibnFfhoFc_n>Fhu-Fi[l6$f*Fa_oFhnF^\lFhn@$Fg^nFgwFhnFhn6$ FUFdcn7$F[in-Fe]l6#;FbinF[cn@$F`\pC)>Fcs-Fh\pFe\p>Fcs-Fd\pFi\p>Fcs-F]em6&FcsF`q FfhoFc_n>Fcw-Fh\p6$F`^n7#F[q>Fcw-Fd\pFc]p>FcsFe]p?&FiwFi]pF_r>&F`^n6$Fb^pF[q&Fc s6$FiwFbp>FehoFcjmFg^p>F[oF_go@$F[^nFh[n-F[p6$Qaoeliminate_all_but_one_gcd_1_ro ws:~the~NEW~list~of~obsolete~generators:FhnFezFhnFhn6DFIFfhmFPFg`oFHFdhmFJF`jnF GF^hmF5FcwF'FdyF+F[oF.F^qFAF_fmF0FbqFFF\hmFCF]`lFEF_alF?F`gmFSF\\nFUFjhm>8Qf*Fh n6/F`\nF]\lFcimF[zF\hlF_[o%"eGFe\nFf\nFh\nFj`oF8Fg\nFhnFhnC&>F[o-FbzFhn@%F[^n-F [p6$Qhoeliminate_columns_with_a_unit_in_its_leftinverse:~NO~new~obsolete~genera tors:FhnFb]l>FezF\q?(FhnFbpFbpFhnF_rC3>FdoFi_n>F[qF[`n>F^qFjgo>F`qFc[n>FbqF\ho> Ffv-&F`^nFden6$Fcjm&Fbq6$FbpF^q@$F__n>Fcr-Ff^lF``n@$Fe_n>FhuFifp@$5F__nFe_n?&Fc s7#-Fe]l6#;Fbp-FhfoFfilF_r@$0&Fb`n6$&F`q6#FcsF[qFcjmC$@$F__n>&Fcr6$FdoFhgp&Fbq6 $FbpFcs@$Fe_n@%0FhgpFdo>&FhuF^hp-&F`^nFhan6%F_hpFfvT8>&Fhu6$FdoFdo-Fghp6%-&F`^n FahmFhnF_hpFihp@$F__n>F[jo-F]em6&FcrF[joFihpF`^n@$Fe_n>F^bn-F]em6&F^bnFhuFihpF` ^n>Fcw-Fi[l6$f*FcaoFhnF^\lFhn@$Fg^nFgwFhnFhnFe[p7$Fg[p-Fe]l6#;F^\pFibn@$0FcwFh` mC&>Fiw-&F`^nF^dm6$Fb`nF`q>Fiw-&F`^nF_]l6$FiwFcw>Fiw-F]em6&FbqFiwFihpF`^n?&Fe\m 7#-Fe]l6#;Fbp-FhfoF^xF_r>&Fb`n6$Fdo&Fcw6#Fe\m&Fiw6$FbpFe\m>&Fb`nF\anF[cnFg^p>F[ oFdep@$F[^nFh[n-F[p6$Qapeliminate_columns_with_a_unit_in_its_leftinverse:~the~N EW~list~of~obsolete~generators:FhnFb]lFhnFhn6DFQFfboFHFdhmFJF`jnFUFjhmFFF\hmF+F [oF-F[qF@FbgmF/F`qF5FcwF'FdyFBF\blFDF`blF6FiwFGF^hmFSF\\nFIFfhm>8Rf*Fhn6/F`\nF] \lFcimF[zFj`oF_[oFaepFc\nFd\nFg\nF\hlF8Fh\nFhnFhnC&>F[oFdep@%F[^n-F[p6$Qfoelimi nate_rows_with_a_unit_in_its_rightinverse:~NO~new~obsolete~generators:FhnFb]l>F ezF\q?(FhnFbpFbpFhnF_rC3>FdoFi_n>F[qF[`n>F^qFjgo>F`qFc[n>FbqF\ho>Ffv-Fcfp6$Fcjm &Fbq6$F^qFbp@$F__n>FcrFifp@$Fe_n>FhuFifp@$F]gp?&FcsF_gpF_r@$0&Fb`nF^hpFcjmC$@$F __n>&FcrFggp&Fbq6$FcsFbp@$Fe_n@%0FhgpF[q>&FhuFggp-Fghp6%Fi^qFfvFihp>&Fhu6$F[qF[ q-Fghp6%F_ipFi^qFihp@$F__n>F[jo-F]em6&F[joFcrFihpF`^n@$Fe_n>F^bn-F]em6&FhuF^bnF ihpF`^n>Fcw-Fi[l6$f*Fa_oFhnF^\lFhn@$Fg^nFgwFhnFhnF[cp7$F[in-Fe]l6#;FbinFibn@$Fc jpC&>Fiw-F[[qFhjp>Fiw-FgjpF\[q>Fiw-F]em6&FiwFbqFihpF`^n?&Fe\mFa[qF_r>&Fb`n6$Fi[ qF[q&Fiw6$Fe\mFbp>F^\qF[cnFg^p>F[oFdep@$F[^nFh[n-F[p6$Q_peliminate_rows_with_a_ unit_in_its_rightinverse:~the~NEW~list~of~obsolete~generators:FhnFb]lFhnFhn6DFR FfdoFHFdhmFJF`jnFIFfhmFFF\hmF+F[oF.F^qFAF_fmF0FbqF5FcwF'FdyFCF]`lFEF_alF?F`gmFG F^hmFSF\\nFUFjhm@$F]_lC+-Ff_l6#F\\n-Ff_l6#Fe^o-Ff_l6#Fg`o-Ff_l6#Ffbo-Ff_l6#Ffdo -Ff_l6#F`fo-Ff_l6#Fa_p-Ff_l6#F^ep-Ff_l6#Ff\q?(FhnFbpFbpFhnF_rC/>Fbdm-Fddm6&-Ff^ lF^xFdyFfdmF[o>Fbdm-Few6$FbdmF[o@$F[q>F\blF\em@$F`qC$-Ffem6&FgcqFbdmFdyF[o>F`bl Fiem>Fcw-Fa_m6#Fbdm>F`gmF[gm>FbgmFcgm>F`jnF_r-F\\nFhn@$FbjnC$-F`foFhn-Fa_pFhn@$ 3-Fex6#&F[o6#Q8heuristics_experimentalFhn/7#FaeqF\yC$-F^epFhn-Ff\qFhn@$3-Fex6#& F[o6#Q7heuristics_commutativeFhn/7#F]fqF\yFhn@$F`jnFh[n@$F[q-%'assignG6$&Fao6#F fvF\bl@$F^q-Fefq6$&FaoFjioF``m@$F`q-Fefq6$&FaoF^^pF`bl@$Fbq-Fefq6$&FaoFigpF_al- Fa_m6#-Few6$FcwF[oFhnFhnFhnFhn, Q:homalg/BetterGenerators.mFhn M7R0 I6homalg/CheckHomsOfSeqf*6%'%(complexG%%listG'%$varGF'%,RingPackageG6&%#RPG%$na rG%"lG%"jG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C( >8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6#-F56 #&F;6#;""",&F=FLF>F=@$/9$7"-FE6#FQ>8&-%%nopsG6#FP7#-%"$G6#;FL-%%iquoG6$,&FUFLF= FL""#-%$mapG6$f*6#%"iGF26$%)operatorG%&arrowGF2-%)CheckHomG6%-%$seqG6$&T$6#,(FP F\oFLFLT%F=/F`p;""!F\oT(T)F2F26*F&FPF/8'F)9%F,F5%"%GF2F2F2F2, Q8homalg/CheckHomsOfSeq.mF2 M7R0 I;homalg/ChineseRemainderMapf*6%%"MG%$varG%,RingPackageG6(%#RPG%$narG%"nG%"LG%" AG%#IdG6#%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$ -%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F :6#;""",&F<FKF=F<>8&-%%nopsG6#9$>8'-%/homalg/DiagMatG6$-%#opGFQF4>8(7#7#-%"$G6$ -&F46#%$OneGF1FN>8)-%7homalg/StdBasisVectorsG6$FNF4-%3homalg/RightDivideG6'F`oF enFT9%F4F1F1F1F1, Q=homalg/ChineseRemainderMap.mF1 M7R0 I4homalg/CokernelFEpif*6%%"AG'%$varG%%listG%,RingPackageG6)%#RPG%$narG%%optsG%$ posG%)optionalG%&cokerG%<cokernel_rewrite_generatorsG6%%[oCopyright~(C)~2004-20 07~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C,>8$-%1homal g/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""", &FAFPFBFA@$2,&""#FPFBFP9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F?6#;""$FQF9>8'%% NULLG@$-%)assignedG6#&FX6#QGpos_of_var_to_assign_functor_on_objectF6>F^o6$F^o/F doF_o@$-Fbo6#&FX6#QHpos_of_var_to_assign_rewrite_generatorsF6>F^o6$F^o/F]pF_o>8 (-%#opG6#-%'subsopG6$F^o7#Fin>8)-%1homalg/CokernelFG6'9$9%/QAvar_to_assign_rewr ite_generatorsF6.8*FdpF9@$-Fbo6#&FX6#Q@var_to_assign_functor_on_objectF6-%'assi gnG6$FjqF]q-FZ6#FfqF6F6F6F6, Q6homalg/CokernelFEpi.mF6 M7R0 I5homalg/DefectOfHomsFf*6&%%betaG%&alphaG%$varG%,RingPackageG6(%#RPG%$narG%%opt sG%$posG%)optionalG%*ker_alphaG6%%^pCopyright~(C)~2003-2008~by~Mohamed~Barakat~ and~Daniel~Robertz.~All~rights~reserved.G%'systemG%)rememberG6"C,>8$-%1homalg/t ablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F? FNF@F?@$-FC6$&F=6#FN%'stringGC$@$/FSQ1RETURN_co_contraF4-FG6#Q*covariantF4-FG6# %%NULLG@$2,&""$FNF@FN9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F=6#;""%FOF7>8'Fin@ $-%)assignedG6#&F`o6#QIpos_of_var_to_assign_F_target_hullmoduleF4>F\p6$F\p/FapF in>8(-%#opG6#-%'subsopG6$F\p7#Fgo@$-F_p6#&F`o6#QBvar_to_assign_F_target_hullmod uleF4-%'assignG6$Fcq9$>8)-%3homalg/SyzygiesOpFG6%9%9&F7-%7homalg/SubfactorModul eG6'F[rFiqF`rFhpF7F4F4F4F4, Q7homalg/DefectOfHomsF.mF4 M7R0 I7homalg/DefectOfHomsMapf*6-%'alpha1G%"AG%'alpha2G%#_AG%$phiG%&beta1G%"BG%&beta 2G%#_BG%$varG%,RingPackageG6'%#RPG%$narG%%optsG%)optionalG%(functorG6%%[oCopyri ght~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG 6"C)>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F=%*procedureG-%'RETURNG6# -F=6#&FC6#;""",&FEFTFFFE@%2,&""'FTFFFT9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FC 6#;""(FUF=>&Ffn6#Q2number_of_optionsF:""!@$2,&FZFTFboFE,&"#5FTFFFT-FM6#-%8homal g/DefectOfHomsFMapG6#FC>8'&FC6#;"#6FU>8(%4homalg/DefectOfHomsG-%2homalg/Functor MapG6)Fgp7&9$9%9&9'9(7&9)9*9+9,9-FapF=F:F:F:F:, Q9homalg/DefectOfHomsMap.mF: M7R0 I?homalg/DegreeOfTorsionFreenessf*6%%#_PG%$varG%,RingPackageG6*%#RPG%$narG%%opt sG%&boundG%"kG%"PG%#APG%"EG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~righ ts~reserved.G6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*procedure G-%'RETURNG6#-F66#&F<6#;""",&F>FMF?F>@$2,&""#FMF?FM9#>8&-%%copyG6#-%2homalg/Get OptionsG6$&F<6#;""$FNF6@%-%)assignedG6#&FU6#Q-pos_of_BOUNDF3>8'&FU6#Q&BOUNDF3>F bo-%1homalg/GlobalDimG6$9%F6@%-F\o6#&FU6#Q0pos_of_START_ATF3>8(&FU6#Q)START_ATF 3>FbpFM>8)-%6homalg/NormalizeInputG6$9$F6>8*-%2homalg/InvolutionG6%FhpFjoF6?(F3 FMFMF31FbpFboC%>8+-%-homalg/Ext_RG6&FbpF^qFjoF6@$4-%4homalg/IsZeroModuleG6%FfqF joF6-FF6#,&FbpFMF>FM>Fbp,&FbpFMFMFMFboF3F3F3F3, QAhomalg/DegreeOfTorsionFreeness.mF3 M7R0 I1homalg/DirectSumf*6&%"AG%"BG%$varG%,RingPackageG6%%#RPG%$narG%)optionalG6#%[o Copyright~(C)~2003-2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$-%1homa lg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F2%*procedureG-%'RETURNG6#-F26#&F86#;""" ,&F:FIF;F:@$-F>6$&F86#FI%'stringGC$@$/FNQ1RETURN_co_contraF/-FB6#Q*covariantF/- FB6#%%NULLG>8&&F86#;""%FJ-%1homalg/CokernelFG6&-%/homalg/DiagMatG6%9$9%F29&FfnF 2F/F/F/F/, Q3homalg/DirectSum.mF/ M7R0 I/homalg/ExtqMapf*6)%"qG%"MG%$phiG%"NG%"LG'%$varG%%listG%,RingPackageG6&%#RPG%$ narG%)optionalG%*cofunctorG6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~righ ts~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%% typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""(FR>8'f*6#F &F7F7F7-%,homalg/ExtqG6&T$9$T&&F@6#;""#FBF7F76&F%F[oF)9(-%2homalg/FunctorMapG6) FZ7#9%9&7#9'9)FTF:F7F7F7F7, Q1homalg/ExtqMap.mF7 M7R0 I2homalg/ExtqOnSeqsf*6'%"qG%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6 %%#RPG%$narG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~ reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typ eG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%4homalg/Functor_Extq G6$9$9%-%7homalg/CofunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q4homalg/ExtqOnSeqs.mF6 M7R0 I-homalg/Ext_Rf*6&'%"qG%*nonnegintG%"MG'%$varG%%listG%,RingPackageG6&%#RPG%$nar G%)optionalG%*cofunctorG6%%^pCopyright~(C)~2003-2006~by~Mohamed~Barakat~and~Dan iel~Robertz.~All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenam eG6%9!&9"6#!""8%@$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA> 8&&F?6#;""%FQ>8'7$%-homalg/Hom_RG%2homalg/InvolutionG-%>homalg/RightDerivedCofu nctorFG6(9$FY9%9&FSF9F6F6F6F6, Q/homalg/Ext_R.mF6 M7R0 I3homalg/Functor_Extf*6$%"qG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~A ll~rights~reserved.G%'systemG%)rememberGF'7&f*6#%"MGF'F'F'-%+homalg/ExtG6&T$9$T &&9"6#;""#!""F'F'6&F%F4F&9%f*6%F/%$phiG%"NGF'F'F'-%.homalg/ExtMapG6(F3F4F=9&F5& F76#;""%F;F'F'F<F=f*6#%"PGF'F'F'f*F?F'F'F'-%/homalg/Ext2MapG6(F3F5F4F=FEFFF'F'6 &F%F3FLF4F'F'6$F%F4F'F'F'F', Q5homalg/Functor_Ext.mF' M7R0 IAhomalg/Functor_TorsionFreeFactorf*6"F$6%%fnCopyright~(C)~2007~by~Mohamed~Bara kat.~All~rights~reserved.G%'systemG%)rememberGF$7$%9homalg/TorsionFreeFactorG%< homalg/TorsionFreeFactorMapGF$F$F$F$, QChomalg/Functor_TorsionFreeFactor.mF$ M7R0 I6homalg/homalg_optionsf*6$%"tG%,RingPackageG6'%#RPG%$narG%&dummyG%%optsG%$resG 6#%[oCopyright~(C)~2006-2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C>@%2"" !9#>8$-%1homalg/tablenameG6%9!&9"6#!""8%>F6-F86%F:8&F?@$-%%typeG6$F6%*procedure G-%'RETURNG6#-F66#&F<6#;""",&F>FQF?F>@$2F?F4>8'-%%copyG6#-%2homalg/GetOptionsG6 $FNF6>8(%%NULLG@$4-%)assignedG6#&F66#QTcheck_if_stably_free_rank_1_commutative_ FFR_is_freeF/>F_o%&falseG@$4-F]o6#&F66#QHcheck_if_stably_free_rank_1_FFR_is_fre eF/>FhoFco@$4-F]o6#&F66#QEcheck_if_parametrization_FFR_is_freeF/>F`pFco@$4-F]o6 #&F66#Q+heuristicsF/>FhpFco@$4-F]o6#&F66#Q7heuristics_commutativeF/>F`qFco@$4-F ]o6#&F66#Q8heuristics_experimentalF/>FhqFco@$4-F]o6#&F66#Q1heuristics_debugF/>F `rFco@$32F3,&F4FQF?F>-%'memberG6$9$<$%'MatrixG%'matrixGC%>&F66#F^sf*6#%"aGF/F/F /-%(convertG6$F[sT$F/F/6$F%F[s>&F66#%+matrixtypeGF[s>Fhn6$Fhn/Q+matrixtypeF/F[s @$-F]o6#&FV6#Qenpos_of_check_if_stably_free_rank_1_commutative_FFR_is_freeF/C$@ $-F]o6#&FVF`o@%-FF6$F]u%(booleanG@%F]u>F_o%%trueG>F_oFco-%&ERRORG6#%gpexpecting ~boolean~value~for~the~"check_if_stably_free_rank_1_commutative_FFR_is_free"~op tionG>Fhn6$Fhn/FaoF_o@$-F]o6#&FV6#Q@pos_of_check_rank_1_commutativeF/C$@$-F]o6# &FV6#Q9check_rank_1_commutativeF/@%-FF6$FgvFau@%Fgv>F_oFdu>F_oFcoFfu>FhnF[v@$-F ]o6#&FV6#QOpos_of_check_if_stably_free_rank_1_FFR_is_freeF/C$@$-F]o6#&FVFio@%-F F6$F[xFau@%F[x>FhoFdu>FhoFco-Fgu6#%[pexpecting~boolean~value~for~the~"check_if_ stably_free_rank_1_FFR_is_free"~optionG>Fhn6$Fhn/FjoFho@$-F]o6#&FV6#Q4pos_of_ch eck_rank_1F/C$@$-F]o6#&FV6#Q-check_rank_1F/@%-FF6$FbyFau@%Fby>FhoFdu>FhoFcoFbx> FhnFfx@$-F]o6#&FV6#QLpos_of_check_if_parametrization_FFR_is_freeF/C$@$-F]o6#&FV Fap@%-FF6$FfzFau@%Ffz>F`pFdu>F`pFco-Fgu6#%hoexpecting~boolean~value~for~the~"ch eck_if_parametrization_FFR_is_free"~optionG>Fhn6$Fhn/FbpF`p@$-F]o6#&FV6#Q=pos_o f_check_parametrizationF/C$@$-F]o6#&FV6#Q6check_parametrizationF/@%-FF6$F]\lFau @%F]\l>F`pFdu>F`pFcoF][l>FhnFa[l@$-F]o6#&FV6#Q2pos_of_heuristicsF/C$@$-F]o6#&FV Fip@%-FF6$Fa]lFau@%Fa]l>FhpFdu>FhpFco-Fgu6#%Texpecting~boolean~value~for~the~"h euristics"~optionG>Fhn6$Fhn/FjpFhp@$-F]o6#&FV6#Q2pos_of_HeuristicsF/C$@$-F]o6#& FV6#Q+HeuristicsF/@%-FF6$Fh^lFau@%Fh^l>FhpFdu>FhpFcoFh]l>FhnF\^l@$-F]o6#&FV6#Q> pos_of_heuristics_commutativeF/C$@$-F]o6#&FVFaq@%-FF6$F\`lFau@%F\`l>F`qFdu>F`qF co-Fgu6#%jnexpecting~boolean~value~for~the~"heuristics_commutative"~optionG>Fhn 6$Fhn/FbqF`q@$-F]o6#&FV6#Q>pos_of_Heuristics_commutativeF/C$@$-F]o6#&FV6#Q7Heur istics_commutativeF/@%-FF6$FcalFau@%Fcal>F`qFdu>F`qFcoFc`l>FhnFg`l@$-F]o6#&FV6# Q?pos_of_heuristics_experimentalF/C$@$-F]o6#&FVFiq@%-FF6$FgblFau@%Fgbl>FhqFdu>F hqFco-Fgu6#%[oexpecting~boolean~value~for~the~"heuristics_experimental"~optionG >Fhn6$Fhn/FjqFhq@$-F]o6#&FV6#Q?pos_of_Heuristics_experimentalF/C$@$-F]o6#&FV6#Q 8Heuristics_experimentalF/@%-FF6$F^dlFau@%F^dl>FhqFdu>FhqFcoF^cl>FhnFbcl@$-F]o6 #&FV6#Q8pos_of_heuristics_debugF/C$@$-F]o6#&FVFar@%-FF6$FbelFau@%Fbel>F`rFdu>F` rFco-Fgu6#%Zexpecting~boolean~value~for~the~"heuristics_debug"~optionG>Fhn6$Fhn /FbrF`r@$-F]o6#&FV6#Q8pos_of_Heuristics_debugF/C$@$-F]o6#&FV6#Q1Heuristics_debu gF/@%-FF6$FiflFau@%Fifl>F`rFdu>F`rFcoFiel>FhnF]fl@$-F]o6#&FV6#Q2pos_of_matrixty peF/C$@$-F]o6#&FV6#Fbt@%-Fir6$F]hlF\sC$>Fasf*FdsF/F/F/-Fgs6$F[s&T#F^hlF/F/6$F+F V>F\tF]hl-Fgu6#%Wexpecting~matrix~or~Matrix~for~the~"matrixtype"~optionG>Fhn6$F hn/FbtF\t@%/FgrF36+-Fgs6$F6%'stringGF`ilF\vFgxFb[lF]^lFh`lFcclF^fl6$FdilFhnF/F/ F/F/, Q8homalg/homalg_options.mF/ M7R0 I.homalg/HomHomf*6'%"MG%"AG%"BG'%$varG%%listG%,RingPackageG6'%#RPG%$narG%)optio nalG%+cofunctor1G%+cofunctor2G6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~r ights~reserved.G%'systemG%)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$ -%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&&F?6#;""&FQ>8'-% 3homalg/Functor_HomG6#9&>8(-Fen6#9%-%%evalG6#--%7homalg/ComposeFunctorsG6'FYFin 9'FSF96%9$FdoF9F6F6F6F6, Q0homalg/HomHom.mF6 M7R0 I3homalg/IsReflexivef*6%%#_MG'%$varG%%listG%,RingPackageG6)%#RPG%$narG%%optsG%" MG%#MIG%(VERBOSEG%"bG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~res erved.G%'systemG%)rememberG6"C*>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6 $F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@$2,&""#FPFBFP9#>8&-%%copyG6 #-%2homalg/GetOptionsG6$&F?6#;""$FQF9>8'-%6homalg/NormalizeInputG6$9$F9>8(-%2ho malg/InvolutionG6%F^o9%F9>8*7$-%-homalg/Ext_RG6&FPFdoFhoF9-F]p6&FUFdoFhoF9>Fjo- %$mapG6&%4homalg/IsZeroModuleGFjoFhoF9@%-%)assignedG6#&FX6#Q/pos_of_VERBOSEF6@% /Fjo7$%%trueGF`qF`qFjo3&Fjo6#FP&Fjo6#FUF6F6F6F6, Q5homalg/IsReflexive.mF6 M7R0 I3homalg/LeftDivideFf*6&%"AG%"BG'%$varG%%listG%,RingPackageG6'%#RPG%$narG%#AaG% #BaG%#CaG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C(> 8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*procedureG-%'RETURNG6#-F66# &F<6#;""",&F>FMF?F>>8&-%2homalg/InvolutionG6%9$9&F6>8'-FR6%9%FUF6>8(-%4homalg/R ightDivideFG6&FWFPFUF6-FR6%FfnFUF6F3F3F3F3, Q5homalg/LeftDivideF.mF3 M7R0 I4homalg/LeftinverseFf*6%%"LG'%$varG%%listG%,RingPackageG6*%#RPG%$narG%#ILG%"lG %"EG%"ZG%#T1G%#T2G6#%ioCopyright~(C)~2004~by~Daniel~Robertz~and~Mohamed~Barakat .~All~rights~reserved.G6"C)>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F8% *procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%2homalg/BasisCoeffG6&9$9%8* F8>8'-&F86#%3NumberOfGeneratorsG6#FR>8(-%7homalg/StdBasisVectorsG6$FZF8>8)-%3ho malg/ReduceCoeffG6'F[oFRFW8+F8@%/-%3homalg/BetterBasisG6&F`oFWQ3ALLOW_EMPTY_OUT PUTF5F87"-%/homalg/ComposeG6&-%.homalg/MulMatG6&F@FdoFWF8FXFWF8%%FAILGF5F5F5F5, Q6homalg/LeftinverseF.mF5 M7R0 I>homalg/LeftSatelliteOfFunctorf*6''%"qG%*nonnegintG'%(functorG%%listG%"AG'%$va rGF*%,RingPackageG65%#RPG%$narG%"pG%%optsG%4readjust_generatorsG%)optionalG%3fu nctor_on_objectsG%0functor_on_mapsG%%dataG%$posG%#muG%"KG%%Pq_1G%%F_stG%9FK_nor malized_generatorsG%$FmuG%#FKG%&FPq_1G%#LFG6#%[oCopyright~(C)~2005-2006~by~Moha med~Barakat.~All~rights~reserved.G6"C4>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-% %typeG6$FH%*procedureG-%'RETURNG6#-FH6#&FN6#;""",&FPFinFQFP@$-FT6$&FN6#""$%'str ingGC$@*/F^oQ?RETURN_proc_to_induce_morphismFE-FX6#f*6%%"MG%$phiG%"NG6%%$resG%$ dq1G%%_dq1GFEFEC&>FH-%%evalG6#-%7homalg/ResolutionOfSeqG6),&T$FinFinFin9$9%9&T& Q)TRUNCATEFET'@%-%4homalg/IsZeroModuleG6%&&FH6#""#6#FjpF^qF`q>FQ-%2homalg/ZeroM oduleG6$F^qF`q>FQ&&FH6#Fin6#Fip@%-Fcq6%&&FH6#""&FiqF^qF`q>8&F[r>F[s&&FH6#""%Fbr 6%-%%copyG6#FQ-Fcs6#&&FHF_oFiq-Fcs6#F[sFEFE6(F&F[qF-9'F0FH/F^oQKRETURN_FunctorM ap_of_the_functor_to_deriveFE-FX6#&F\qFgq/F^oQIRETURN_FunctorMaps_of_a_composed _functorFE-FX6#%%NULLG/F^oQ;RETURN_morphism_on_objectsFEFdt-FX6#-&F\qFar6%F^oF\ tFH?&F[s7#-%"$G6#;Fin,&-%%nopsG6#F\q#FinFhqFPFin%%trueG@$-FT6$&F\q6#,&FinFinF[s FhqFaoC$@*/F]vFeo-FX6#7#f*FE6#F^pFEFEC$>FH-Fdp6#-%5homalg/ResolveModuleG6'FipF^ qT(F_qT)@%-Fcq6%FeqF_wF`w-F\r6$F_wF`w-Fcs6#F_rFEFE6*F&F[qF+F]qF-F\tF0FH/F]vF^t- FX6#&F\q6#,&FhqFinF[sFhq/F]vFctFdt/F]vFhtFdtFit@$2,&F`sFinFQFin9#>8'-Fcs6#-%2ho malg/GetOptionsG6$&FN6#;FirFjnFH@$4-%)assignedG6#&Ffx6#Q<pos_of_NORMALIZE_GENER ATORSFE>8(-F\u6%QCRETURN_proc_to_readjust_generatorsFEF\tFH>8)F\y>8*F\u>8+Fat>8 ,-%4homalg/SyzygiesDataG6'F[qF]qF\tQ)USE_FAILFEFH@%/Fcz%%FAILGC'>8-Fft@$-Fby6#& Ffx6#QCvar_to_assign_embedding_generatorsFEC$>F][l/&Ffx6#QJpos_of_var_to_assign _embedding_generatorsFEFft-%'assignG6$Fa[l7#-&FH6#%%ZeroGFar@$-Fby6#&Ffx6#QBvar _to_assign_F_target_hullmoduleFEC$>F][l6$F][l/&Ffx6#QIpos_of_var_to_assign_F_ta rget_hullmoduleFEFft-F[\l6$Fe\lF]\l@$07#F][l7">F]z-%#opG6#-%'subsopG6$F][l7#F]z -FX6#-F_z6&-F\r6$F\tFHF\tF]zFHC%>8/&FczFar>8.&FczFgq>80&FczF_o>83-Faz6)Fe^lFh^l F[_lF\t/Q3var_to_assign_F_stFE.81/QNvar_to_assign_F_source_unconverted_generato rsFE.82FH>84&Fd_lFar>85&Fd_lFgq/Q9FK_normalized_generatorsFEFh_l@$-Fby6#Fh_l>Fj _l-%9homalg/ReplaceGeneratorsG6%Fj_lFh_lFH>86-%.homalg/KernelG6(Fj_lF^_lF]`lF\t F]zFH@%3-Fby6#Fhy4/FhyFft-%9homalg/ConvertGeneratorsG6&Fi`lFhyF]zFHFi`lFEFEFEFE, Q@homalg/LeftSatelliteOfFunctor.mFE M7R0 I?homalg/LongExactCohomologySeqFf*6('%&alphaG<$%&tableG%%listG'%%IotaGF''%%beta GF''%#NuGF''%$varGF)%,RingPackageG68%#RPG%$narG%#aiG%$_aiG%"mG%#iiG%$_iiG%#biG% $_biG%#niG%$_niG%"iG%&gammaG%#giG%$_giG%%LECSG%$haiG%$hbiG%$hgiG%$hiiG%$hniG%#d iG6#%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C?>8$ -%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FO%*procedureG-%'RETURNG6#-FO6#&F U6#;""",&FWF`oFXFW@%-Fen6$9$F)C$>8&7#-%"$G6#;F`o-%%nopsG6#Feo>8'7#-F[p6#;FW&Fho 6#!"$C$>Fho-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGF`p>FbpFho>8(-F_p6#Fho@%-Fe n6$9%F)C$>8)7#-F[p6#;F`o-F_p6#F`r>8*7#-F[p6#;FW&FcrFhpC$>Fcr-F]q6#-F`q6$Fbq-Fdq 6#-FgqFir>F[sFcr@$0,&FjqF`oF`oF`o-F_p6#Fcr-%&ERRORG6#%foThe~second~argument~mus t~have~one~entry~more~than~the~first/third~argument!G@%-Fen6$9&F)C$>8+7#-F[p6#; F`o-F_p6#Fgt>8,7#-F[p6#;FW&FjtFhpC$>Fjt-F]q6#-F`q6$Fbq-Fdq6#-FgqF`u>FbuFjt@$0Fj q-F_p6#Fjt-Fat6#%jnThe~first~and~third~argument~have~different~numbers~of~entri es!G@%-Fen6$9'F)C$>8-7#-F[p6#;F`o-F_p6#F\w>8.7#-F[p6#;FW&F_wFhpC$>F_w-F]q6#-F`q 6$Fbq-Fdq6#-FgqFew>FgwF_w@$0F^t-F_p6#F_w-Fat6#%\oThe~second~and~fourth~argument ~have~different~numbers~of~entries!G>80-F(FL>81Fho>82Fbp?&8/7#-F[p6#;F`oFjq%%tr ueG>&F_y6#&Fby6#Ffy-%5homalg/CompleteImSqFG6'&F\w6#&F_wF`z&Fgt6#&FjtF`z&F\w6#,& FfzF`oF`oF`o9(FO@$32,&""&F`oFXF`o9#-Fen6$&FU6#""'%'symbolG-%'assignG6$Ff[l-%%co pyG6#F_y>83F`y>84&Fbp6#;""#FW?&Ffy7#-F[p6#;F`o,&FjqF`oFWF`oF[z>&Fa\l6#-&.%$EtaG 6#&Fc\lF`z6#.%"AG-%5homalg/DefectOfHomsFG6&&Feo6#,&&Fho6#,&FfyF`oF`oF`oF`oFWF`o &Feo6#F`^lF][lFO>85&FbuFe\l?&FfyFi\lF[z>&Fa\l6#-&Fc]l6#&Ff^lF`z6#.%"BG-F[^l6&&F gt6#,&&FjtFa^lF`oFWF`o&Fgt6#Fh_lF][lFO>86&FdyFe\l?&FfyFi\lF[z>&Fa\l6#-&Fc]l6#&F \`lF`z6#.%"CG-F[^l6&&F_y6#,&&FbyFa^lF`oFWF`o&F_y6#F^alF][lFO>87&F[s6#;Fg\l!"#?& FfyFi\lF[z>&Fa\l6#-&Fc]l6#&FbalF`z6#.%%iotaG-%8homalg/DefectOfHomsFMapG6)Fe_lFi _l&F`r6#&FcrFa^lF]^lFc^lF][lFO>88&FgwFdal?&FfyFi\lF[z>&Fa\l6#-&Fc]l6#&FiblF`z6# .%#nuG-Fcbl6)F[alF_al&F\w6#&F_wFa^lFe_lFi_lF][lFO>89&F\`l6#;F`oFfal?&Ffy7#-F[p6 #;F`o,&FjqF`oFfalF`oF[z>&Fa\l6#&%&deltaG6#&F\dlF`z-%6homalg/ConnectingHomFG6*F_ ]lFeblFi_lF_al&F\w6#,&FjclF`oF`oF`o&Fa\l6#-&Fc]l6#,&Fe`lF`oF`oF`oFf`lF][lFO-F^\ l6#Fa\lFLFLFLFL, QAhomalg/LongExactCohomologySeqF.mFL M7R0 I>homalg/LongExactCohomologySeqf*6,'%&alphaG<$%&tableG%%listG'%#AAGF''%%IotaGF' '%%betaGF''%#BBGF''%#NuGF''%&gammaGF''%#CCGF''%$varGF)%,RingPackageG6=%#RPG%$na rG%#aiG%$_aiG%"mG%#AiG%#iiG%$_iiG%#biG%$_biG%#BiG%#niG%$_niG%"iG%#giG%$_giG%#Ci G%%LECSG%/embedding_infoG%.F_target_hullG%$ETAG%$haiG%$hbiG%$hgiG%$hiiG%$hniG%# diG6#%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~rights~reserved.G6"CE>8 $-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$Ffn%*procedureG-%'RETURNG6#-Ffn6 #&F\o6#;""",&F^oF]pF_oF^o@$29#,&"")F]pF_oF]p-Ffo6#-%?homalg/LongExactCohomology SeqFG6#F\o@%-Fbo6$9$F)C$>8&7#-%"$G6#;F]p-%%nopsG6#F\q>8'7#-Fbq6#;F^o&F_q6#!"$C$ >F_q-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGFgq>FiqF_q>8(-Ffq6#F_q@%-Fbo6$9%F) >8)7#-Fbq6#;F]p-Ffq6#Fgs>Fis-Fdr6#-Fgr6$Fir-F[s6#-F^sF_t@$0,&FasF]pF]pF]p-Ffq6# Fis-%&ERRORG6#%`oThe~second~argument~must~have~one~entry~more~than~the~first~ar gument!G@%-Fbo6$9&F)C$>8*7#-Fbq6#;F]p-Ffq6#Fdu>8+7#-Fbq6#;F^o&FguF_rC$>Fgu-Fdr6 #-Fgr6$Fir-F[s6#-F^sF]v>F_vFgu@$0Fjt-Ffq6#Fgu-F^u6#%_oThe~third~argument~must~h ave~one~entry~more~than~the~first~argument!G@%-Fbo6$9'F)C$>8,7#-Fbq6#;F]p-Ffq6# Fiw>8-7#-Fbq6#;F^o&F\xF_rC$>F\x-Fdr6#-Fgr6$Fir-F[s6#-F^sFbx>FdxF\x@$0Fas-Ffq6#F \x-F^u6#%[oThe~first~and~fourth~argument~have~different~numbers~of~entries!G@%- Fbo6$9(F)>8.7#-Fbq6#;F]p-Ffq6#F^z>F`z-Fdr6#-Fgr6$Fir-F[s6#-F^sFfz@$0Fjt-Ffq6#F` z-F^u6#%_oThe~fifth~argument~must~have~one~entry~more~than~the~first~argument!G @%-Fbo6$9)F)C$>8/7#-Fbq6#;F]p-Ffq6#Fi[l>807#-Fbq6#;F^o&F\\lF_rC$>F\\l-Fdr6#-Fgr 6$Fir-F[s6#-F^sFb\l>Fd\lF\\l@$0Faw-Ffq6#F\\l-F^u6#%jnThe~third~and~sixth~argume nt~have~different~numbers~of~entries!G@%-Fbo6$9*F)C$>827#-Fbq6#;F]p-Ffq6#F^^l>8 37#-Fbq6#;F^o&Fa^lF_rC$>Fa^l-Fdr6#-Fgr6$Fir-F[s6#-F^sFg^l>Fi^lFa^l@$0Fas-Ffq6#F a^l-F^u6#%\oThe~first~and~seventh~argument~have~different~numbers~of~entries!G@ %-Fbo6$9+F)>847#-Fbq6#;F]p-Ffq6#Fc`l>Fe`l-Fdr6#-Fgr6$Fir-F[s6#-F^sF[al@$0Fjt-Ff q6#Fe`l-F^u6#%_oThe~eigth~argument~must~have~one~entry~more~than~the~first~argu ment!G>85-F(FY>86F]bl>87F]bl>89&Fiq6#;""#F^o?&817#-Fbq6#;F]p,&FasF]pF^oF]p%%tru eG>&F\bl6#-&.%$EtaG6#&Fcbl6#Fibl6#.%"AG-%4homalg/DefectOfHomsG6*&F\q6#,&&F_q6#, &FiblF]pF]pF]pF]pF^oF]p&Fgs6#&FisFddl&F\q6#Fcdl&Fgs6#,&FhdlF]pF]pF]p9,/Q=var_to _assign_embedding_infoFY&F_bl6#-&88FgclFjcl/QBvar_to_assign_F_target_hullmodule FY&FablFbelFfn>8:&FdxFebl?&FiblFjblF_cl>&F\bl6#-&Fecl6#&FjelFicl6#.%"BG-F^dl6)& Fiw6#,&&F\xFddlF]pF^oF]p&F^z6#&F`zFddl&Fiw6#F\gl&F^z6#,&F_glF]pF]pF]pF^el/Fgel& Fabl6#-&FeelFbflFdflFfn>8;&Fi^lFebl?&FiblFjblF_cl>&F\bl6#-&Fecl6#&F[hlFicl6#.%" CG-F^dl6*&F^^l6#,&&Fa^lFddlF]pF^oF]p&Fc`l6#&Fe`lFddl&F^^l6#F]il&Fc`l6#,&F`ilF]p F]pF]pF^el/F`el&F_bl6#-&FeelFchlFehl/Fgel&FablFhilFfn>8<&F_v6#;Fgbl!"#?&FiblFjb lF_cl>&F\bl6#-&Fecl6#&F^jlFicl6#.%%iotaG-%7homalg/DefectOfHomsMapG60FiflF]glF`g lFbgl&Fdu6#&FguFddlF`dlFfdlFidlF[elF^el/Q)F_sourceFYF^fl/Q)F_targetFYFacl/Q4F_t arget_hullmoduleFYFhelFfn>8=&Fd\lF`jl?&FiblFjblF_cl>&F\bl6#-&Fecl6#&F[\mFicl6#. %#nuG-F_[m60FjhlF^ilFailFcil&Fi[l6#&F\\lFddlFiflF]glF`glFbglF^el/Fe[mF_hl/Fg[mF ^fl/Fi[mFfglFfn>8>&F[hl6#;F]pFbjl?&Fibl7#-Fbq6#;F]p,&FasF]pFbjlF]pF_cl>&F\bl6#& %&deltaG6#&Fa]mFicl-%5homalg/ConnectingHomG6.FaclFa[mF`glFail&Fi[l6#,&F\]mF]pF] pF]p&F\bl6#-&Fecl6#,&FdhlF]pF]pF]pFehlF^el/Q3Hqn_embedding_infoFYFael/Q5Hsn_1_e mbedding_infoFY&F_bl6#-&FeelF\_mFehl/Q(Cqn_BqnFYFhel/Q%Zn_1FYFbglFfn-%%copyG6#F \blFYFYFYFY, Q@homalg/LongExactCohomologySeq.mFY M7R0 I/homalg/MakeSeqf*6%'%%homsG<$%&tableG%%listG'%.chain_modulesGF'%,RingPackageG6 (%#RPG%$narG%#hiG%"hG%"cG%#ciG6#%[oCopyright~(C)~2004-2006~by~Mohamed~Barakat.~ All~rights~reserved.G6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F9%*p rocedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@%-FE6$9$F)>8&7#-%"$G6#;FP-%%nopsG 6#FU>FW-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGFin>8'-Fhn6#FW@%-FE6$9%F)C$>8(- Fhn6#F^p@%/Fap,&FhoFPFPFP>8)7#-FZ6#;FPFap-%&ERRORG6#%^rThe~number~of~homomorphi sms~(second~argument)~should~be~one~less~than~the~number~of~chain~modules~(firs t~argument)!G>Fhp-F\o6#-F_o6$Fao-Fco6#-FfoFcp7$&F^p6#&Fhp6#FP-Fco6#-F_o6$f*6#%" aGF66$%)operatorG%&arrowGF66$-%%copyG6#&T$6#&T%Fin&T(6#&T)6#,&FUFPFPFPF6F66*F&F UF0FWF+F^pF3Fhp7#-FZ6#;FPFhoF6F6F6F6, Q1homalg/MakeSeq.mF6 M7R0 I4homalg/Presentationf*6&'%#_GG<$%'stringG-%%listG6#%"=G%#_MG'%$varGF*%,RingPac kageG66%#RPG%$narG%%optsG%1ASSIGN_EMBEDDINGG%3REWRITE_GENERATORSG%.convert_proc sG%$genG%%GpreG%(CONVERTG%"MG%"GG%"VG%#VIG%4non_zero_generatorsG%"PG%$epiG%%Pge nG%$embG%%PembG%%PnewG6#%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~righ ts~reserved.G6"C8>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FK%*procedure G-%'RETURNG6#-FK6#&FQ6#;""",&FSF\oFTFS@$2,&""$F\oFTF\o9#>8&-%%copyG6#-%2homalg/ GetOptionsG6$&FQ6#;""%F]oFK@%5-%)assignedG6#&Fdo6#Q=var_to_assign_embedding_inf oFH-Fbp6#&Fdo6#QCvar_to_assign_embedding_generatorsFH>8'%%trueG>F]q%&falseG@%-F bp6#&Fdo6#QAvar_to_assign_rewrite_generatorsFH>8(F^q>FhqF`q@'5/9$7"-FW6$F]rF(C% >8)%%NULLG>8*-%7homalg/StdBasisVectorsG6$9%FK>8+-%$mapG6$f*6#%"aGFH6$%)operator G%&arrowGFH/F]rF]rFHFHFHFfrF]qC%>Fcr-%6homalg/GetConvertInfoG6%F]r9&FK>Ffr-%6ho malg/NormalizeInputG6$-F^s6$%$rhsGF]rFK>F\s-F^s6$f*FasFHFcsFHFfsFHFHFHFgrC$>Fcr Fis>F\sF]r@%0FcrFdr>8,F^q>F^uF`q@%FhqC$>8--%8homalg/BetterGeneratorsG6)FjrF\t8/ 80Q!FHFiuFK>Fgu-F_t6$FguFK>Fcu-Feu6'FjrF\tFhuFiuFK>Fcu-F_t6$FcuFK/Q"VFH-Ffo6#Fg u/Q#VIFH-Ffo6#Fhu>8.-F_t6$-F^s6$FctF\sFK@$3F^u4F]q>F\w-%9homalg/ConvertGenerato rsG6%F\w&Fcr6#Q5normalize_generatorsFHFK>F\w-%/homalg/ComposeG6&FhuF\wF\tFK>F\w -F_t6$F\wFK@$Fbw>F\w-F^s6$&Fcr6#Q4readjust_generatorsFHF\w>F\w-%$zipG6%f*6$Fbs% "bGFHFcsFH/F]rFjrFHFHFH-Fhr6%-%%nopsG6#F\wF\tFKF\w>82-%:homalg/BetterPresentati onG6'F\wFcuF\t/QBvar_to_assign_non_zero_generatorsFH.81FK6$Q4non_zero_generator sFHF^z@$FhqC$@'4-Fbp6#F^z-%&ERRORG6#%Enon_zero_generators~is~not~assigned!G/F^z F^r>83-&FK6#%'matrixG6#7#-%"$G6$7#-&FK6#%%ZeroGFH-&FK6#%-NumberOfRowsGFfv>F][l- F_[l6#-&FK6#%/CertainColumnsG6$FguF^z-%'assignG6$Fdq-Ffo6#F][l@$F]qC,>84-F_t6$- F^s6$Fct&Fgy6#F\oFK@$F^u>Ffr-Ffw6%FfrFhwFK>87-F]x6&F`]lFfrF\tFK@'-Fbp6#&Fdo6#Q5 embedding_generatorsFHC$>85-F_t6$Fb^lFK>86-F]x6&F`]lFg^lF\tFK-Fbp6#&Fdo6#Q?pos_ of_use_generators_to_embedFH>F[_l-Ffo6#F\^l>F[_l-F_[l6#F`]l@$Fap-Fi\l6$Fdp-Ffo6 #F[_l@$Fgp-Fi\l6$Fip-F_t6$F[_lFK>F\^l-F_t6$F\^lFK@$F^u>F\^l-Ffw6%F\^lFfxFK>F\^l -%4homalg/RingNotationGFe`l>Fgy6$-F[y6%f*F^yFHFcsFH/-%$lhsG6#F]rFjrFHFHFHFe]lF\ ^l&Fgy6#""#7%FgyQ-PresentationFH-%8homalg/PresentationInfoG6%FfalF\tFKFHFHFHFH, Q6homalg/Presentation.mFH M7R0 I0homalg/Pullbackf*6)%"AG%%_phiG%#B_G%'_beta1G%"BG%$varG%,RingPackageG6,%#RPG%$ narG%%optsG%$phiG%&beta1G%*minus_oneG%)optionalG%%ApB_G%,minus_beta1G%*phi_beta 1G6%%[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G%'syste mG%)rememberG6"C->8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F>%*procedure G-%'RETURNG6#-F>6#&FD6#;""",&FFFUFGFF@%2,&""$FUFGFU9#>8&-%%copyG6#-%2homalg/Get OptionsG6$&FD6#;""%FVF>>&Fgn6#Q2number_of_optionsF;""!@$2,&FenFUFcoFF,&""'FUFGF U-FN6#-%1homalg/PullbackFG6#FD>8'-%6homalg/NormalizeInputG6$9%F>>8(-Fdp6$9'F>>8 *&FD6#;""(FV>8+-%/homalg/DiagMatG6%9$9&F>>8,-%.homalg/MulMatG6&FFFhp9)F>>8--&F> 6#%,UnionOfRowsG6$FbpFjq-%.homalg/KernelG6(FcqF`r9(F^rF]qF>F;F;F;F;, Q2homalg/Pullback.mF; M7R0 I6homalg/RHomHom2OnSeqsf*6(%"qG%"AG%"BG'%&alphaG<$%&tableG%%listG%%_varG%,RingP ackageG6%%#RPG%$narG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All ~rights~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&-%8homalg/Func tor_RHomHom2G6%9$9%9&-%7homalg/CofunctorOnSeqsG6$FT&F@6#;""%FBF7F7F7F7, Q8homalg/RHomHom2OnSeqs.mF7 M7R0 I6homalg/RHomHom3OnSeqsf*6(%"qG%"AG%"BG'%&alphaG<$%&tableG%%listG%%_varG%,RingP ackageG6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~r ights~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$ -%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&-%8homalg/Functo r_RHomHom3G6%9$9%9&-%5homalg/FunctorOnSeqsG6$FT&F@6#;""%FBF7F7F7F7, Q8homalg/RHomHom3OnSeqs.mF7 M7R0 I2homalg/table2listf*6$%$tabG%,RingPackageG6&%#RPG%$narG%$LHSG%%nameG6#%fnCopyr ight~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$-%1homalg/tablena meG6%9!&9"6#!""8%@$-%%typeG6$F1%*procedureG-%'RETURNG6#-F16#&F76#;""",&F9FHF:F9 >8&-%$mapG6$%$lhsG-%#opG6#-%%evalG6#9$@%2,&FHFHF:FH9#C$>8'&F76#""#@%-F=6$Fgn%)f unctionGC$-%%sortG6#-FM6%FQFK7$""!FH-FM6$f*6#%"aGF.6$%)operatorG%&arrowGF.-&-FQ 6$7$FfoFfoT#FU6#-FQ6$;FHF9FdpF.F.6$F+Fgn%"%GC$-Fao6#-FM6$FQFK-FM6$f*FjoF.F\pF.& FdpFUF.F.FipFjp-Fao6#FK-FM6$f*FjoF.F\pF.-%%copyG6#&T$FUF.F.6$F%FVFjpF.F.F.F., Q4homalg/table2list.mF. M7R0 I-homalgT/initf*6"F$6#%ioCopyright~(C)~2004~by~Mohamed~Barakat~and~Daniel~Rober tz.~All~rights~reserved.GF$-%,homalg/initG6#9"F$F$F$F$, Q/homalgT/init.mF$ M7R0 IFhomalg/GetRowIndependentUnitPositionsf*6&%#_MG%)pos_listG'%$varG%%listG%,Ring PackageG6$%#RPG%$narG6#%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~res erved.G6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RE TURNG6#-F36#&F96#;""",&F;FJF<F;-%Chomalg/GetIndependentUnitPositionsG6$-%6homal g/NormalizeInputG6$-&F36#%'matrixG6#-&%'linalgG6#%*transposeG6#-FU6#-FP6$9$F3F3 &F96#;""#F;F0F0F0F0, QHhomalg/GetRowIndependentUnitPositions.mF0 M7R0 I(homalgA=6"%&falseGE\[l]bl%3ReduceHomomorphismGf*F$F$6%%fnCopyright~(C)~2005~b y~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberGF$C$30%3homalg/init ializedG.%%trueG0-%,homalg/initGF$""!-%:homalg/ReduceHomomorphismG6#9"F$F$F$%-R ingNotationGf*F$F$6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserv ed.GF$C$F.-%4homalg/RingNotationGF9F$F$F$%+KernelFMapGf*F$F$6%F>F+F,F$C$F.-%2ho malg/KernelFMapGF9F$F$F$%,LHomHom3MapGf*F$F$6%%fnCopyright~(C)~2006~by~Mohamed~ Barakat.~All~rights~reserved.GF+F,F$C$F.-%3homalg/LHomHom3MapGF9F$F$F$%)Coimage FGf*F$F$FJF$C$F.-%0homalg/CoimageFGF9F$F$F$%2TorsionFreeFactorGf*F$F$6%%fnCopyr ight~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%9homalg/Tors ionFreeFactorGF9F$F$F$%6LongExactHomologySeqFGf*F$F$6#%[oCopyright~(C)~2004-200 6~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F.-%=homalg/LongExactHomologySeq FGF9F$F$F$%,LHom2OnSeqsGf*F$F$FJF$C$F.-%3homalg/LHom2OnSeqsGF9F$F$F$%,IsCocompl exGf*F$F$F=F$C$F.-%3homalg/IsCocomplexGF9F$F$F$%-Functor_TorqGf*F$F$FJF$C$F.-%4 homalg/Functor_TorqGF9F$F$F$%*KernelEmbGf*F$F$6%%[oCopyright~(C)~2003-2007~by~M ohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%1homalg/KernelEmbGF9F$F$F$%/Ge tConvertInfoGf*F$F$6#%[oCopyright~(C)~2005-2007~by~Mohamed~Barakat.~All~rights~ reserved.GF$C$F.-%6homalg/GetConvertInfoGF9F$F$F$%)PushoutFGf*F$F$FVF$C$F.-%0ho malg/PushoutFGF9F$F$F$%/RHomHom3OnSeqsGf*F$F$FJF$C$F.-%6homalg/RHomHom3OnSeqsGF 9F$F$F$%/CheckHomsOfSeqGf*F$F$F=F$C$F.-%6homalg/CheckHomsOfSeqGF9F$F$F$%%TorqGf *F$F$6%%[oCopyright~(C)~2005-2006~by~Mohamed~Barakat.~All~rights~reserved.GF+F, F$C$F.-%,homalg/TorqGF9F$F$F$%2NatTrIdToHomHom_RGf*F$F$6%%[oCopyright~(C)~2003- 2004~by~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%9homalg/NatTrIdToHomH om_RGF9F$F$F$%)ExtMap_RGf*F$F$F)F$C$F.-%0homalg/ExtMap_RGF9F$F$F$%4EulerCharact eristicGf*F$F$6#FWF$C$F.-%;homalg/EulerCharacteristicGF9F$F$F$%-LHomHomMap_RGf* F$F$6%%ioCopyright~(C)~2005~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~r eserved.GF+F,F$C$F.-%4homalg/LHomHomMap_RGF9F$F$F$%)Extq2MapGf*F$F$FJF$C$F.-%0h omalg/Extq2MapGF9F$F$F$%/FreeHullModuleGf*F$F$F=F$C$F.-%6homalg/FreeHullModuleG F9F$F$F$%2NonZeroGeneratorsGf*F$F$6#%[oCopyright~(C)~2004-2005~by~Mohamed~Barak at.~All~rights~reserved.GF$C$F.-%9homalg/NonZeroGeneratorsGF9F$F$F$%/HomHom_ROn SeqsGf*F$F$FcsF$C$F.-%6homalg/HomHom_ROnSeqsGF9F$F$F$%'AddMatGf*F$F$FdtF$C$F.-% .homalg/AddMatGF9F$F$F$%6ConvertColumnToMatrixGf*F$F$6#%fnCopyright~(C)~2008~by ~Mohamed~Barakat.~All~rights~reserved.GF$C$F.-%=homalg/ConvertColumnToMatrixGF9 F$F$F$%-Functor_Ext2Gf*F$F$FJF$C$F.-%4homalg/Functor_Ext2GF9F$F$F$%.HomHom3OnSe qsGf*F$F$FJF$C$F.-%5homalg/HomHom3OnSeqsGF9F$F$F$%,Functor_TorGf*F$F$FJF$C$F.-% 3homalg/Functor_TorGF9F$F$F$%5TorsionFreeFactorMapGf*F$F$FVF$C$F.-%<homalg/Tors ionFreeFactorMapGF9F$F$F$%'HomHomGf*F$F$FJF$C$F.-%.homalg/HomHomGF9F$F$F$%/Comp leteKerSqFGf*F$F$F=F$C$F.-%6homalg/CompleteKerSqFGF9F$F$F$%'LambekGf*F$F$6#%[oC opyright~(C)~2003-2006~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F.-%.homalg /LambekGF9F$F$F$%,OnMorphismsGf*F$F$6%FetF+F,F$C$F.-%3homalg/OnMorphismsGF9F$F$ F$%,SyzygiesOpFGf*F$F$6%%^pCopyright~(C)~2003-2004~by~Daniel~Robertz~and~Mohame d~Barakat.~All~rights~reserved.GF+F,F$C$F.-%3homalg/SyzygiesOpFGF9F$F$F$%0Compo seFunctorsGf*F$F$6#%^pCopyright~(C)~2005-2006~by~Mohamed~Barakat~and~Daniel~Rob ertz.~All~rights~reserved.GF$C$F.-%7homalg/ComposeFunctorsGF9F$F$F$%1Functor_LH omHom2Gf*F$F$FJF$C$F.-%8homalg/Functor_LHomHom2GF9F$F$F$%?GetRowIndependentUnit PositionsGf*F$F$FeuF$C$F.-%Fhomalg/GetRowIndependentUnitPositionsGF9F$F$F$%2Pus houtPairOfMapsGf*F$F$FVF$C$F.-%9homalg/PushoutPairOfMapsGF9F$F$F$%,Torq2OnSeqsG f*F$F$FJF$C$F.-%3homalg/Torq2OnSeqsGF9F$F$F$%*tablenameGf*F$F$6#%^pCopyright~(C )~2004-2006~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F.- %1homalg/tablenameGF9F$F$F$%+Tor2OnSeqsGf*F$F$FJF$C$F.-%2homalg/Tor2OnSeqsGF9F$ F$F$%9IntersectionMultiplicityGf*F$F$FVF$C$F.-%@homalg/IntersectionMultiplicity GF9F$F$F$%-IsZeroMatrixGf*F$F$FeuF$C$F.-%4homalg/IsZeroMatrixGF9F$F$F$%)Preimag eGf*F$F$F=F$C$F.-%0homalg/PreimageGF9F$F$F$%<SyzygiesGeneratorsOfColumnsGf*F$F$ 6%FfuF+F,F$C$F.-%Chomalg/SyzygiesGeneratorsOfColumnsGF9F$F$F$%,LeftDivideFGf*F$ F$F=F$C$F.-%3homalg/LeftDivideFGF9F$F$F$%0ResolutionOfSeqGf*F$F$FaxF$C$F.-%7hom alg/ResolutionOfSeqGF9F$F$F$%(LHomMapGf*F$F$FJF$C$F.-%/homalg/LHomMapGF9F$F$F$% 4EmbedInFactorModuleGf*F$F$F=F$C$F.-%;homalg/EmbedInFactorModuleGF9F$F$F$%+Ext2 OnSeqsGf*F$F$FJF$C$F.-%2homalg/Ext2OnSeqsGF9F$F$F$%*ExtOnSeqsGf*F$F$FJF$C$F.-%1 homalg/ExtOnSeqsGF9F$F$F$%1BasisOfRowModuleGf*F$F$Fd\lF$C$F.-%8homalg/BasisOfRo wModuleGF9F$F$F$%.FunctorOnSeqsGf*F$F$F)F$C$F.-%5homalg/FunctorOnSeqsGF9F$F$F$% 1IsCommutativeSqFGf*F$F$F=F$C$F.-%8homalg/IsCommutativeSqFGF9F$F$F$%%LHomGf*F$F $FJF$C$F.-%,homalg/LHomGF9F$F$F$%*IsComplexGf*F$F$F=F$C$F.-%1homalg/IsComplexGF 9F$F$F$%(ExtqMapGf*F$F$F)F$C$F.-%/homalg/ExtqMapGF9F$F$F$%.CodimOfModuleGf*F$F$ F]sF$C$F.-%5homalg/CodimOfModuleGF9F$F$F$%.Functor_Hom_RGf*F$F$FJF$C$F.-%5homal g/Functor_Hom_RGF9F$F$F$%1TorsionSubmoduleGf*F$F$6%%^pCopyright~(C)~2003-2005~b y~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.GF+F,F$C$F.-%8homalg/ TorsionSubmoduleGF9F$F$F$%.Functor_Ext_RGf*F$F$FJF$C$F.-%5homalg/Functor_Ext_RG F9F$F$F$%7Functor_TensorProduct2Gf*F$F$FJF$C$F.-%>homalg/Functor_TensorProduct2 GF9F$F$F$%-CokernelFMapGf*F$F$FDF$C$F.-%4homalg/CokernelFMapGF9F$F$F$%3LeftDeri vedFunctorGf*F$F$6#F[rF$C$F.-%:homalg/LeftDerivedFunctorGF9F$F$F$%0DefectOfHoms MapGf*F$F$FaxF$C$F.-%7homalg/DefectOfHomsMapGF9F$F$F$%-IsBijectiveFGf*F$F$F]sF$ C$F.-%4homalg/IsBijectiveFGF9F$F$F$%2ReplaceGeneratorsGf*F$F$6#F*F$C$F.-%9homal g/ReplaceGeneratorsGF9F$F$F$%+Extension1Gf*F$F$FVF$C$F.-%2homalg/Extension1GF9F $F$F$%2TensorProduct2MapGf*F$F$FjqF$C$F.-%9homalg/TensorProduct2MapGF9F$F$F$%,B etterBasisGf*F$F$6#%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~rights~re served.GF$C$F.-%3homalg/BetterBasisGF9F$F$F$%6Functor_TensorProductGf*F$F$FJF$C $F.-%=homalg/Functor_TensorProductGF9F$F$F$%3CohomologyModulesFGf*F$F$F=F$C$F.- %:homalg/CohomologyModulesFGF9F$F$F$%(ComposeGf*F$F$FdtF$C$F.-%/homalg/ComposeG F9F$F$F$%1IsShortExactSeqFGf*F$F$F=F$C$F.-%8homalg/IsShortExactSeqFGF9F$F$F$%4P ullbackPairOfMapsFGf*F$F$6%FgdlF+F,F$C$F.-%;homalg/PullbackPairOfMapsFGF9F$F$F$ %2CohomologyModulesGf*F$F$F=F$C$F.-%9homalg/CohomologyModulesGF9F$F$F$%-Functor _LHomGf*F$F$FJF$C$F.-%4homalg/Functor_LHomGF9F$F$F$%$HomGf*F$F$6#F^pF$C$F.-%+ho malg/HomGF9F$F$F$%9YonedaProductOfCocycles2Gf*F$F$6%%enCopyright~(C)~2007~by~Ba rbara~Bremer.~All~rights~reserved.GF+F,F$C$F.-%@homalg/YonedaProductOfCocycles2 GF9F$F$F$%3Ext1Of2OneCocyclesGf*F$F$6#%enCopyright~(C)~2008~by~Barbara~Bremer.~ All~rights~reserved.GF$C$F.-%:homalg/Ext1Of2OneCocyclesGF9F$F$F$%<InjectivePres entationIsoFFRGf*F$F$F]sF$C$F.-%Chomalg/InjectivePresentationIsoFFRGF9F$F$F$%0I sShortExactSeqGf*F$F$F=F$C$F.-%7homalg/IsShortExactSeqGF9F$F$F$%-CheckComplexGf *F$F$F=F$C$F.-%4homalg/CheckComplexGF9F$F$F$%'ImageFGf*F$F$FVF$C$F.-%.homalg/Im ageFGF9F$F$F$%'TorMapGf*F$F$F)F$C$F.-%.homalg/TorMapGF9F$F$F$%,Functor_ExtGf*F$ F$FJF$C$F.-%3homalg/Functor_ExtGF9F$F$F$%+KernelFEmbGf*F$F$F]pF$C$F.-%2homalg/K ernelFEmbGF9F$F$F$%/CofunctorOnSeqGf*F$F$6%FhnF+F,F$C$F.-%6homalg/CofunctorOnSe qGF9F$F$F$%(Hom.oldGf*F$F$FjwF$C$F.-%/homalg/Hom.oldGF9F$F$F$%/SyzygiesModuleGf *F$F$FVF$C$F.-%6homalg/SyzygiesModuleGF9F$F$F$%0SubfactorModuleGf*F$F$F`alF$C$F .-%7homalg/SubfactorModuleGF9F$F$F$%-LeftinverseCGf*F$F$6%%[oCopyright~(C)~2006 -2007~by~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%4homalg/LeftinverseC GF9F$F$F$%.ConnectingHomGf*F$F$FdtF$C$F.-%5homalg/ConnectingHomGF9F$F$F$%+IsExa ctSeqGf*F$F$F=F$C$F.-%2homalg/IsExactSeqGF9F$F$F$%4BasisOfColumnsCoeffGf*F$F$Fd \lF$C$F.-%;homalg/BasisOfColumnsCoeffGF9F$F$F$%4LeftDerivedFunctorFGf*F$F$FfblF $C$F.-%;homalg/LeftDerivedFunctorFGF9F$F$F$%/FunctorOnSeqsFGf*F$F$F)F$C$F.-%6ho malg/FunctorOnSeqsFGF9F$F$F$%0PrettyExtensionGf*F$F$6#FhglF$C$F.-%7homalg/Prett yExtensionGF9F$F$F$%(Tor2MapGf*F$F$FJF$C$F.-%/homalg/Tor2MapGF9F$F$F$%1Functor_ LHomHom3Gf*F$F$FJF$C$F.-%8homalg/Functor_LHomHom3GF9F$F$F$%:NatTrPullbackToTwoS ourcesGf*F$F$FaflF$C$F.-%Ahomalg/NatTrPullbackToTwoSourcesGF9F$F$F$%-CokernelFE piGf*F$F$FaflF$C$F.-%4homalg/CokernelFEpiGF9F$F$F$%.IsProjectiveCGf*F$F$6#FKF$C $F.-%5homalg/IsProjectiveCGF9F$F$F$%,AnnihilatorGf*F$F$FVF$C$F.-%3homalg/Annihi latorGF9F$F$F$%3BetterPresentationGf*F$F$FfdlF$C$F.-%:homalg/BetterPresentation GF9F$F$F$%0IsCommutativeSqGf*F$F$F=F$C$F.-%7homalg/IsCommutativeSqGF9F$F$F$%=So lveSystemWithConstraintsC2Gf*F$F$FgglF$C$F.-%Dhomalg/SolveSystemWithConstraints C2GF9F$F$F$%,RHomHom3MapGf*F$F$FJF$C$F.-%3homalg/RHomHom3MapGF9F$F$F$%,ZeroColu mnsGf*F$F$FeuF$C$F.-%3homalg/ZeroColumnsGF9F$F$F$%-DefectOfHomsGf*F$F$6%%^pCopy right~(C)~2003-2008~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved. GF+F,F$C$F.-%4homalg/DefectOfHomsGF9F$F$F$%'DerModGf*F$F$FaglF$C$F.-%.homalg/De rModGF9F$F$F$%*EqualMapsGf*F$F$FaflF$C$F.-%1homalg/EqualMapsGF9F$F$F$%8LongExac tCohomologySeqFGf*F$F$FfdlF$C$F.-%?homalg/LongExactCohomologySeqFGF9F$F$F$%4Bas isOfColumnModuleGf*F$F$Fd\lF$C$F.-%;homalg/BasisOfColumnModuleGF9F$F$F$%*Direct SumGf*F$F$FjwF$C$F.-%1homalg/DirectSumGF9F$F$F$%BGetColumnIndependentUnitPositi onsGf*F$F$FeuF$C$F.-%Ihomalg/GetColumnIndependentUnitPositionsGF9F$F$F$%-Functo r_ExtqGf*F$F$FJF$C$F.-%4homalg/Functor_ExtqGF9F$F$F$%-Functor_Hom2Gf*F$F$FJF$C$ F.-%4homalg/Functor_Hom2GF9F$F$F$%0LHomHom_ROnSeqsGf*F$F$FJF$C$F.-%7homalg/LHom Hom_ROnSeqsGF9F$F$F$%2DecideZeroColumnsGf*F$F$Fd\lF$C$F.-%9homalg/DecideZeroCol umnsGF9F$F$F$%,IdentityMapGf*F$F$FfclF$C$F.-%3homalg/IdentityMapGF9F$F$F$%.LHom HomOnSeqsGf*F$F$FJF$C$F.-%5homalg/LHomHomOnSeqsGF9F$F$F$%*ExtensionGf*F$F$6%%LC opyright~(C)~2007~by~~All~rights~reserved.GF+F,F$C$F.-%1homalg/ExtensionGF9F$F$ F$%9GeneratorsOfPresentationGf*F$F$FdtF$C$F.-%@homalg/GeneratorsOfPresentationG F9F$F$F$%+Hom2OnSeqsGf*F$F$FJF$C$F.-%2homalg/Hom2OnSeqsGF9F$F$F$%-FunctorOnSeqG f*F$F$FjqF$C$F.-%4homalg/FunctorOnSeqGF9F$F$F$%2ParametrizeModuleGf*F$F$6%%^pCo pyright~(C)~2003-2007~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserve d.GF+F,F$C$F.-%9homalg/ParametrizeModuleGF9F$F$F$%:RightSatelliteOfCofunctorGf* F$F$FdpF$C$F.-%Ahomalg/RightSatelliteOfCofunctorGF9F$F$F$%'ExtMapGf*F$F$F)F$C$F .-%.homalg/ExtMapGF9F$F$F$%+IsZeroMapFGf*F$F$FDF$C$F.-%2homalg/IsZeroMapFGF9F$F $F$%5TorsionFreeFactorEpiGf*F$F$FVF$C$F.-%<homalg/TorsionFreeFactorEpiGF9F$F$F$ %3CocycleOfExtensionGf*F$F$FgglF$C$F.-%:homalg/CocycleOfExtensionGF9F$F$F$%,com pute_psiGf*F$F$6#%ioCopyright~(C)~2008~by~Mohamed~Barakat~and~Barbara~Bremer.~A ll~rights~reserved.GF$C$F.-%3homalg/compute_psiGF9F$F$F$%*TorOnSeqsGf*F$F$FJF$C $F.-%1homalg/TorOnSeqsGF9F$F$F$%,CokernelEpiGf*F$F$FaflF$C$F.-%3homalg/Cokernel EpiGF9F$F$F$%7LongExactCohomologySeqGf*F$F$FfdlF$C$F.-%>homalg/LongExactCohomol ogySeqGF9F$F$F$%-FirstNonZeroGf*F$F$F=F$C$F.-%4homalg/FirstNonZeroGF9F$F$F$%&Is HomGf*F$F$6#FbrF$C$F.-%-homalg/IsHomGF9F$F$F$%,LeftDivideCGf*F$F$F^hlF$C$F.-%3h omalg/LeftDivideCGF9F$F$F$%-IsInjectiveFGf*F$F$Fg_mF$C$F.-%4homalg/IsInjectiveF GF9F$F$F$%/MonomialMatrixGf*F$F$6#%[oCopyright~(C)~2009-2012~by~Mohamed~Barakat .~All~rights~reserved.GF$C$F.-%6homalg/MonomialMatrixGF9F$F$F$%4ChineseRemainde rMapGf*F$F$FfclF$C$F.-%;homalg/ChineseRemainderMapGF9F$F$F$%(CoimageGf*F$F$F]\m F$C$F.-%/homalg/CoimageGF9F$F$F$%/LHomHom3OnSeqsGf*F$F$FJF$C$F.-%6homalg/LHomHo m3OnSeqsGF9F$F$F$%6RightDerivedCofunctorGf*F$F$FfblF$C$F.-%=homalg/RightDerived CofunctorGF9F$F$F$%+TorqOnSeqsGf*F$F$FJF$C$F.-%2homalg/TorqOnSeqsGF9F$F$F$%1Bas isOfRowsCoeffGf*F$F$Fd\lF$C$F.-%8homalg/BasisOfRowsCoeffGF9F$F$F$%'ResDimGf*F$F $F_[nF$C$F.-%.homalg/ResDimGF9F$F$F$%1Functor_RHomHom2Gf*F$F$FJF$C$F.-%8homalg/ Functor_RHomHom2GF9F$F$F$%2ImageOfSubmoduleFGf*F$F$F]sF$C$F.-%9homalg/ImageOfSu bmoduleFGF9F$F$F$%2A3ExtensionModuleGf*F$F$F^hlF$C$F.-%9homalg/A3ExtensionModul eGF9F$F$F$%1AreEqualMatricesGf*F$F$Fd\lF$C$F.-%8homalg/AreEqualMatricesGF9F$F$F $%1BetterGeneratorsGf*F$F$FfdlF$C$F.-%8homalg/BetterGeneratorsGF9F$F$F$%(Ext2Ma pGf*F$F$FJF$C$F.-%/homalg/Ext2MapGF9F$F$F$%9Functor_TorsionSubmoduleGf*F$F$FJF$ C$F.-%@homalg/Functor_TorsionSubmoduleGF9F$F$F$%'HomMapGf*F$F$6%%[oCopyright~(C )~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%.homalg/HomMap GF9F$F$F$%)ZeroRowsGf*F$F$FeuF$C$F.-%0homalg/ZeroRowsGF9F$F$F$%/homalg_optionsG f*F$F$6#F^\mF$C$F.-%6homalg/homalg_optionsGF9F$F$F$%6NatTrTargetToCokernelGf*F$ F$FaxF$C$F.-%=homalg/NatTrTargetToCokernelGF9F$F$F$%/DecideZeroRowsGf*F$F$Fd\lF $C$F.-%6homalg/DecideZeroRowsGF9F$F$F$%8TorsionFreeFactorOnSeqsGf*F$F$FVF$C$F.- %?homalg/TorsionFreeFactorOnSeqsGF9F$F$F$%,IsInjectiveGf*F$F$FjwF$C$F.-%3homalg /IsInjectiveGF9F$F$F$%2A2ExtensionModuleGf*F$F$F^hlF$C$F.-%9homalg/A2ExtensionM oduleGF9F$F$F$%*PullbackFGf*F$F$FDF$C$F.-%1homalg/PullbackFGF9F$F$F$%(PushoutGf *F$F$FVF$C$F.-%/homalg/PushoutGF9F$F$F$%0HomologyModulesGf*F$F$F=F$C$F.-%7homal g/HomologyModulesGF9F$F$F$%$TorGf*F$F$FjqF$C$F.-%+homalg/TorGF9F$F$F$%,Ext_ROnS eqsGf*F$F$FJF$C$F.-%3homalg/Ext_ROnSeqsGF9F$F$F$%0CompleteImSqInvGf*F$F$F=F$C$F .-%7homalg/CompleteImSqInvGF9F$F$F$%+RHomHomMapGf*F$F$FJF$C$F.-%2homalg/RHomHom MapGF9F$F$F$%,RHomHom2MapGf*F$F$FJF$C$F.-%3homalg/RHomHom2MapGF9F$F$F$%.LEHS2Ai BjCconGf*F$F$F=F$C$F.-%5homalg/LEHS2AiBjCconGF9F$F$F$%-Functor_Tor2Gf*F$F$FJF$C $F.-%4homalg/Functor_Tor2GF9F$F$F$%8DiagonalElementsAndRankGf*F$F$F=F$C$F.-%?ho malg/DiagonalElementsAndRankGF9F$F$F$%(MakeSeqGf*F$F$FgnF$C$F.-%/homalg/MakeSeq GF9F$F$F$%0NatTrImToTargetGf*F$F$FVF$C$F.-%7homalg/NatTrImToTargetGF9F$F$F$%*Co kernelFGf*F$F$FaxF$C$F.-%1homalg/CokernelFGF9F$F$F$%.LECS2conAiBjCGf*F$F$F=F$C$ F.-%5homalg/LECS2conAiBjCGF9F$F$F$%-CompleteSeqFGf*F$F$F)F$C$F.-%4homalg/Comple teSeqFGF9F$F$F$%0IsStablyFreeFFRGf*F$F$F]sF$C$F.-%7homalg/IsStablyFreeFFRGF9F$F $F$%0OriginalElementGf*F$F$F]sF$C$F.-%7homalg/OriginalElementGF9F$F$F$%-DirectS umMapGf*F$F$6#F]anF$C$F.-%4homalg/DirectSumMapGF9F$F$F$%+BasisCoeffGf*F$F$6%%io Copyright~(C)~2004~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.G F+F,F$C$F.-%2homalg/BasisCoeffGF9F$F$F$%0NatTrSourceToImGf*F$F$FVF$C$F.-%7homal g/NatTrSourceToImGF9F$F$F$%)CokernelGf*F$F$6%%[oCopyright~(C)~2004-2008~by~Moha med~Barakat.~All~rights~reserved.GF+F,F$C$F.-%0homalg/CokernelGF9F$F$F$%$ExtGf* F$F$6%F[xF+F,F$C$F.-%+homalg/ExtGF9F$F$F$%-PresentationGf*F$F$FfdlF$C$F.-%4homa lg/PresentationGF9F$F$F$%.IsSurjectiveFGf*F$F$Fg_mF$C$F.-%5homalg/IsSurjectiveF GF9F$F$F$%'KernelGf*F$F$6%%[oCopyright~(C)~2003-2008~by~Mohamed~Barakat.~All~ri ghts~reserved.GF+F,F$C$F.-%.homalg/KernelGF9F$F$F$%&ImageGf*F$F$FVF$C$F.-%-homa lg/ImageGF9F$F$F$%0ImageOfElementsGf*F$F$F]sF$C$F.-%7homalg/ImageOfElementsGF9F $F$F$%,LastNonZeroGf*F$F$F=F$C$F.-%3homalg/LastNonZeroGF9F$F$F$%*LHomHom_RGf*F$ F$FJF$C$F.-%1homalg/LHomHom_RGF9F$F$F$%(LHomHomGf*F$F$FJF$C$F.-%/homalg/LHomHom GF9F$F$F$%<SolveSystemWithConstraintsCGf*F$F$FgglF$C$F.-%Chomalg/SolveSystemWit hConstraintsCGF9F$F$F$%8YonedaProductOfCocyclesGf*F$F$FgglF$C$F.-%?homalg/Yoned aProductOfCocyclesGF9F$F$F$%,LeftinverseGf*F$F$F]sF$C$F.-%3homalg/LeftinverseGF 9F$F$F$%:StablyFreePresentationFFRGf*F$F$F]sF$C$F.-%Ahomalg/StablyFreePresentat ionFFRGF9F$F$F$%4NatTrKernelToSourceGf*F$F$F\anF$C$F.-%;homalg/NatTrKernelToSou rceGF9F$F$F$%0CofunctorOnSeqFGf*F$F$FDF$C$F.-%7homalg/CofunctorOnSeqFGF9F$F$F$% *GlobalDimGf*F$F$FDF$C$F.-%1homalg/GlobalDimGF9F$F$F$%,RankOfGaussGf*F$F$F=F$C$ F.-%3homalg/RankOfGaussGF9F$F$F$%0StdBasisVectorsGf*F$F$FdtF$C$F.-%7homalg/StdB asisVectorsGF9F$F$F$%/DerMinusLogInvGf*F$F$F]sF$C$F.-%6homalg/DerMinusLogInvGF9 F$F$F$%3EqualPresentationsGf*F$F$FfdlF$C$F.-%:homalg/EqualPresentationsGF9F$F$F $%2ConvertGeneratorsGf*F$F$FdtF$C$F.-%9homalg/ConvertGeneratorsGF9F$F$F$%-IsExa ctCoseqGf*F$F$F=F$C$F.-%4homalg/IsExactCoseqGF9F$F$F$%/Functor_HomHomGf*F$F$FJF $C$F.-%6homalg/Functor_HomHomGF9F$F$F$%3ConvertRowToMatrixGf*F$F$FeuF$C$F.-%:ho malg/ConvertRowToMatrixGF9F$F$F$%,CokernelMapGf*F$F$FaxF$C$F.-%3homalg/Cokernel MapGF9F$F$F$%'SubMatGf*F$F$F=F$C$F.-%.homalg/SubMatGF9F$F$F$%.CompleteKerSqGf*F $F$F=F$C$F.-%5homalg/CompleteKerSqGF9F$F$F$%(KernelFGf*F$F$FaxF$C$F.-%/homalg/K ernelFGF9F$F$F$%*MakeCoseqGf*F$F$FgnF$C$F.-%1homalg/MakeCoseqGF9F$F$F$%,Functor _HomGf*F$F$FJF$C$F.-%3homalg/Functor_HomGF9F$F$F$%)PullbackGf*F$F$FaxF$C$F.-%0h omalg/PullbackGF9F$F$F$%1Functor_HomHom_RGf*F$F$FJF$C$F.-%8homalg/Functor_HomHo m_RGF9F$F$F$%*Hom_R.oldGf*F$F$F]pF$C$F.-%1homalg/Hom_R.oldGF9F$F$F$%+LHomHomMap Gf*F$F$FJF$C$F.-%2homalg/LHomHomMapGF9F$F$F$%,Hom_ROnSeqsGf*F$F$FDF$C$F.-%3homa lg/Hom_ROnSeqsGF9F$F$F$%.IsTorsionFreeGf*F$F$FVF$C$F.-%5homalg/IsTorsionFreeGF9 F$F$F$%1Functor_RHomHom3Gf*F$F$FJF$C$F.-%8homalg/Functor_RHomHom3GF9F$F$F$%4Ten sorProductOnSeqsGf*F$F$F)F$C$F.-%;homalg/TensorProductOnSeqsGF9F$F$F$%*ImageFEp iGf*F$F$FVF$C$F.-%1homalg/ImageFEpiGF9F$F$F$%1DefectOfHomsFMapGf*F$F$FDF$C$F.-% 8homalg/DefectOfHomsFMapGF9F$F$F$%)LHom2MapGf*F$F$FJF$C$F.-%0homalg/LHom2MapGF9 F$F$F$%+ExtqOnSeqsGf*F$F$FJF$C$F.-%2homalg/ExtqOnSeqsGF9F$F$F$%3PushoutPairOfMa psFGf*F$F$FVF$C$F.-%:homalg/PushoutPairOfMapsFGF9F$F$F$%-KroneckerMatGf*F$F$6#% fnCopyright~(C)~2003~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F.-%4homalg/K roneckerMatGF9F$F$F$%-SyzygiesDataGf*F$F$FVF$C$F.-%4homalg/SyzygiesDataGF9F$F$F $%:YonedaProductOfExtensionsGf*F$F$FgglF$C$F.-%Ahomalg/YonedaProductOfExtension sGF9F$F$F$%/ConnectingHomFGf*F$F$F=F$C$F.-%6homalg/ConnectingHomFGF9F$F$F$%.Sin gleNonZeroGf*F$F$Fg_mF$C$F.-%5homalg/SingleNonZeroGF9F$F$F$%?A2ExtensionModuleF romA2CocycleGf*F$F$F]^mF$C$F.-%Fhomalg/A2ExtensionModuleFromA2CocycleGF9F$F$F$% :Functor_TorsionFreeFactorGf*F$F$FVF$C$F.-%Ahomalg/Functor_TorsionFreeFactorGF9 F$F$F$%.HomHom2OnSeqsGf*F$F$FJF$C$F.-%5homalg/HomHom2OnSeqsGF9F$F$F$%(Hom2MapGf *F$F$F)F$C$F.-%/homalg/Hom2MapGF9F$F$F$%,LHomHom2MapGf*F$F$FJF$C$F.-%3homalg/LH omHom2MapGF9F$F$F$%1PresentationInfoGf*F$F$F=F$C$F.-%8homalg/PresentationInfoGF 9F$F$F$%,ReduceCoeffGf*F$F$FginF$C$F.-%3homalg/ReduceCoeffGF9F$F$F$%5TensorProd uct2OnSeqsGf*F$F$FJF$C$F.-%<homalg/TensorProduct2OnSeqsGF9F$F$F$%-IsSurjectiveG f*F$F$FjwF$C$F.-%4homalg/IsSurjectiveGF9F$F$F$%4TorsionSubmoduleMapGf*F$F$FarF$ C$F.-%;homalg/TorsionSubmoduleMapGF9F$F$F$%(ZeroMapGf*F$F$FdtF$C$F.-%/homalg/Ze roMapGF9F$F$F$%'ReduceGf*F$F$FaxF$C$F.-%.homalg/ReduceGF9F$F$F$%.Functor_Extq2G f*F$F$FJF$C$F.-%5homalg/Functor_Extq2GF9F$F$F$%2ConvertToListListGf*F$F$FeuF$C$ F.-%9homalg/ConvertToListListGF9F$F$F$%1CompleteImSqInvFGf*F$F$F=F$C$F.-%8homal g/CompleteImSqInvFGF9F$F$F$%+LHomOnSeqsGf*F$F$FJF$C$F.-%2homalg/LHomOnSeqsGF9F$ F$F$%&Ext_RGf*F$F$6%%^pCopyright~(C)~2003-2006~by~Mohamed~Barakat~and~Daniel~Ro bertz.~All~rights~reserved.GF+F,F$C$F.-%-homalg/Ext_RGF9F$F$F$%<GetIndependentU nitPositionsGf*F$F$Fg_mF$C$F.-%Chomalg/GetIndependentUnitPositionsGF9F$F$F$%9In jectivePresentationFFRGf*F$F$F]sF$C$F.-%@homalg/InjectivePresentationFFRGF9F$F$ F$%-LeftinverseFGf*F$F$6#%ioCopyright~(C)~2004~by~Daniel~Robertz~and~Mohamed~Ba rakat.~All~rights~reserved.GF$C$F.-%4homalg/LeftinverseFGF9F$F$F$%+EqualMapsFGf *F$F$FDF$C$F.-%2homalg/EqualMapsFGF9F$F$F$%+InvolutionGf*F$F$6#%jnCopyright~(C) ~2004-2005~by~Daniel~Robertz.~All~rights~reserved.GF$C$F.-%2homalg/InvolutionGF 9F$F$F$%0GetUnitPositionGf*F$F$FfdlF$C$F.-%7homalg/GetUnitPositionGF9F$F$F$%1Re sidueClassRingGf*F$F$FhjlF$C$F.-%8homalg/ResidueClassRingGF9F$F$F$%+ZeroModuleG f*F$F$FDF$C$F.-%2homalg/ZeroModuleGF9F$F$F$%.Functor_LHom2Gf*F$F$FJF$C$F.-%5hom alg/Functor_LHom2GF9F$F$F$%*IsZeroMapGf*F$F$FaflF$C$F.-%1homalg/IsZeroMapGF9F$F $F$%1TensorProductMapGf*F$F$F)F$C$F.-%8homalg/TensorProductMapGF9F$F$F$%)HomMap _RGf*F$F$F\anF$C$F.-%0homalg/HomMap_RGF9F$F$F$%6NatIsoKerOfSqToImOfSqGf*F$F$F_[ nF$C$F.-%=homalg/NatIsoKerOfSqToImOfSqGF9F$F$F$%/RHomHom2OnSeqsGf*F$F$FJF$C$F.- %6homalg/RHomHom2OnSeqsGF9F$F$F$%AA2ExtensionModuleFromA2ExtensionGf*F$F$6#%jnC opyright~(C)~2007-2008~by~Barbara~Bremer.~All~rights~reserved.GF$C$F.-%Hhomalg/ A2ExtensionModuleFromA2ExtensionGF9F$F$F$%:DecideZeroRowsEffectivelyGf*F$F$Fd\l F$C$F.-%Ahomalg/DecideZeroRowsEffectivelyGF9F$F$F$%0Functor_LHomHomGf*F$F$FJF$C $F.-%7homalg/Functor_LHomHomGF9F$F$F$%)ImageEpiGf*F$F$FVF$C$F.-%0homalg/ImageEp iGF9F$F$F$%7ProjectiveDimensionFFRGf*F$F$F]sF$C$F.-%>homalg/ProjectiveDimension FFRGF9F$F$F$%4CokernelOfExtensionGf*F$F$F]^mF$C$F.-%;homalg/CokernelOfExtension GF9F$F$F$%/InverseElementGf*F$F$FfdlF$C$F.-%6homalg/InverseElementGF9F$F$F$%/Ch eckCocomplexGf*F$F$F=F$C$F.-%6homalg/CheckCocomplexGF9F$F$F$%+HomHom2MapGf*F$F$ FJF$C$F.-%2homalg/HomHom2MapGF9F$F$F$%.TensorProductGf*F$F$FfblF$C$F.-%5homalg/ TensorProductGF9F$F$F$%-HomHomOnSeqsGf*F$F$FJF$C$F.-%4homalg/HomHomOnSeqsGF9F$F $F$%,DerMinusLogGf*F$F$F]sF$C$F.-%3homalg/DerMinusLogGF9F$F$F$%+HomHom3MapGf*F$ F$FJF$C$F.-%2homalg/HomHom3MapGF9F$F$F$%,ComposeMapsGf*F$F$F]sF$C$F.-%3homalg/C omposeMapsGF9F$F$F$%+CheckKerSqGf*F$F$F_[nF$C$F.-%2homalg/CheckKerSqGF9F$F$F$%* KernelMapGf*F$F$F\anF$C$F.-%1homalg/KernelMapGF9F$F$F$%0CofunctorOnSeqsGf*F$F$F DF$C$F.-%7homalg/CofunctorOnSeqsGF9F$F$F$%1copyright_homalgGf*F$F$6#%^pCopyrigh t~(C)~2002-2012~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.GF$C $F.-%8homalg/copyright_homalgGF9F$F$F$%+FreeModuleGf*F$F$FaxF$C$F.-%2homalg/Fre eModuleGF9F$F$F$%2Functor_LHomHom_RGf*F$F$FJF$C$F.-%9homalg/Functor_LHomHom_RGF 9F$F$F$%.BasisOfModuleGf*F$F$FaxF$C$F.-%5homalg/BasisOfModuleGF9F$F$F$%+Functor MapGf*F$F$FhjlF$C$F.-%2homalg/FunctorMapGF9F$F$F$%%ExtqGf*F$F$FjqF$C$F.-%,homal g/ExtqGF9F$F$F$%*LEHS2lehsGf*F$F$F=F$C$F.-%1homalg/LEHS2lehsGF9F$F$F$%.ResolveM oduleGf*F$F$FjqF$C$F.-%5homalg/ResolveModuleGF9F$F$F$%3PullbackPairOfMapsGf*F$F $FaflF$C$F.-%:homalg/PullbackPairOfMapsGF9F$F$F$%+LeftDivideGf*F$F$FdtF$C$F.-%2 homalg/LeftDivideGF9F$F$F$%4CocycleOfExtension1Gf*F$F$6%%ioCopyright~(C)~2007~b y~Mohamed~Barakat~and~Barbara~Bremer.~All~rights~reserved.GF+F,F$C$F.-%;homalg/ CocycleOfExtension1GF9F$F$F$%,CompleteSeqGf*F$F$F)F$C$F.-%3homalg/CompleteSeqGF 9F$F$F$%:IsEquivalenceOfExtensionsGf*F$F$FVF$C$F.-%Ahomalg/IsEquivalenceOfExten sionsGF9F$F$F$%3ReduceRingElementsGf*F$F$FhjlF$C$F.-%:homalg/ReduceRingElements GF9F$F$F$%1CofunctorOnSeqsFGf*F$F$FDF$C$F.-%8homalg/CofunctorOnSeqsFGF9F$F$F$%. RHomHomOnSeqsGf*F$F$FJF$C$F.-%5homalg/RHomHomOnSeqsGF9F$F$F$%(DiagMatGf*F$F$F\a nF$C$F.-%/homalg/DiagMatGF9F$F$F$%+table2listGf*F$F$F=F$C$F.-%2homalg/table2lis tGF9F$F$F$%1CheckCompositionGf*F$F$F=F$C$F.-%8homalg/CheckCompositionGF9F$F$F$% .SyzygiesBasisGf*F$F$FaflF$C$F.-%5homalg/SyzygiesBasisGF9F$F$F$%1Intersection.n ewGf*F$F$FVF$C$F.-%8homalg/Intersection.newGF9F$F$F$%,IsReflexiveGf*F$F$FVF$C$F .-%3homalg/IsReflexiveGF9F$F$F$%1CheckHomsOfCoseqGf*F$F$F=F$C$F.-%8homalg/Check HomsOfCoseqGF9F$F$F$%5ResolveShortExactSeqGf*F$F$FdtF$C$F.-%<homalg/ResolveShor tExactSeqGF9F$F$F$%-RightinverseGf*F$F$6#%enCopyright~(C)~2004~by~Daniel~Robert z.~All~rights~reserved.GF$C$F.-%4homalg/RightinverseGF9F$F$F$%-CompleteImSqGf*F $F$F=F$C$F.-%4homalg/CompleteImSqGF9F$F$F$%5ReducedBasisOfModuleGf*F$F$F]\mF$C$ F.-%<homalg/ReducedBasisOfModuleGF9F$F$F$%9NatTrTwoTargetsToPushoutGf*F$F$FVF$C $F.-%@homalg/NatTrTwoTargetsToPushoutGF9F$F$F$%(TorqMapGf*F$F$F)F$C$F.-%/homalg /TorqMapGF9F$F$F$%7TorsionSubmoduleOnSeqsGf*F$F$FJF$C$F.-%>homalg/TorsionSubmod uleOnSeqsGF9F$F$F$%+SyzygiesOpGf*F$F$FjjnF$C$F.-%2homalg/SyzygiesOpGF9F$F$F$%,R ightDivideGf*F$F$FfdlF$C$F.-%3homalg/RightDivideGF9F$F$F$%.DefectOfHomsFGf*F$F$ F[bmF$C$F.-%5homalg/DefectOfHomsFGF9F$F$F$%+GetOptionsGf*F$F$F)F$C$F.-%2homalg/ GetOptionsGF9F$F$F$%*ImageFEmbGf*F$F$FVF$C$F.-%1homalg/ImageFEmbGF9F$F$F$%/Norm alizeInputGf*F$F$FDF$C$F.-%6homalg/NormalizeInputGF9F$F$F$%)HomHom_RGf*F$F$6%F_ yF+F,F$C$F.-%0homalg/HomHom_RGF9F$F$F$%(KerOfSqGf*F$F$F_[nF$C$F.-%/homalg/KerOf SqGF9F$F$F$%3NormalizeExtensionGf*F$F$F]^mF$C$F.-%:homalg/NormalizeExtensionGF9 F$F$F$%0Functor_HomHom3Gf*F$F$FJF$C$F.-%7homalg/Functor_HomHom3GF9F$F$F$%'ImOfS qGf*F$F$F_[nF$C$F.-%.homalg/ImOfSqGF9F$F$F$%,HomHomMap_RGf*F$F$FcsF$C$F.-%3homa lg/HomHomMap_RGF9F$F$F$%;NatTrIdToTorsionFreeFactorGf*F$F$FVF$C$F.-%Bhomalg/Nat TrIdToTorsionFreeFactorGF9F$F$F$%)Torq2MapGf*F$F$FJF$C$F.-%0homalg/Torq2MapGF9F $F$F$%8DegreeOfTorsionFreenessGf*F$F$F]sF$C$F.-%?homalg/DegreeOfTorsionFreeness GF9F$F$F$%.NormalizeRingGf*F$F$6%FdaqF+F,F$C$F.-%5homalg/NormalizeRingGF9F$F$F$ %-IntersectionGf*F$F$FdgmF$C$F.-%4homalg/IntersectionGF9F$F$F$%-SumRelationsGf* F$F$F_[nF$C$F.-%4homalg/SumRelationsGF9F$F$F$%0Functor_RHomHomGf*F$F$FJF$C$F.-% 7homalg/Functor_RHomHomGF9F$F$F$%2ShortenResolutionGf*F$F$FVF$C$F.-%9homalg/Sho rtenResolutionGF9F$F$F$%*HomOnSeqsGf*F$F$FDF$C$F.-%1homalg/HomOnSeqsGF9F$F$F$%* IsTorsionGf*F$F$FVF$C$F.-%1homalg/IsTorsionGF9F$F$F$%1ImageOfSubmoduleGf*F$F$F] sF$C$F.-%8homalg/ImageOfSubmoduleGF9F$F$F$%9SyzygiesGeneratorsOfRowsGf*F$F$Fd\l F$C$F.-%@homalg/SyzygiesGeneratorsOfRowsGF9F$F$F$%*CheckImSqGf*F$F$F_[nF$C$F.-% 1homalg/CheckImSqGF9F$F$F$%0Functor_HomHom2Gf*F$F$FJF$C$F.-%7homalg/Functor_Hom Hom2GF9F$F$F$%(KaehlerGf*F$F$FaglF$C$F.-%/homalg/KaehlerGF9F$F$F$%)CheckHomGf*F $F$F_[nF$C$F.-%0homalg/CheckHomGF9F$F$F$%-RightDivideFGf*F$F$FfdlF$C$F.-%4homal g/RightDivideFGF9F$F$F$%1HomologyModulesFGf*F$F$F=F$C$F.-%8homalg/HomologyModul esFGF9F$F$F$%/LHomHom2OnSeqsGf*F$F$FJF$C$F.-%6homalg/LHomHom2OnSeqsGF9F$F$F$%'M ulMatGf*F$F$FdtF$C$F.-%.homalg/MulMatGF9F$F$F$%.compute_kappaGf*F$F$FdimF$C$F.- %5homalg/compute_kappaGF9F$F$F$%7RightDerivedCofunctorFGf*F$F$FfblF$C$F.-%>homa lg/RightDerivedCofunctorFGF9F$F$F$%,IsFreeBasisGf*F$F$6%FepF+F,F$C$F.-%3homalg/ IsFreeBasisGF9F$F$F$%EA2ExtensionModuleFromA2Extension.oldGf*F$F$F]^mF$C$F.-%Lh omalg/A2ExtensionModuleFromA2Extension.oldGF9F$F$F$%*HomHomMapGf*F$F$FJF$C$F.-% 1homalg/HomHomMapGF9F$F$F$%:NatTrTorsionSubmoduleToIdGf*F$F$FarF$C$F.-%Ahomalg/ NatTrTorsionSubmoduleToIdGF9F$F$F$%.Functor_Torq2Gf*F$F$FJF$C$F.-%5homalg/Funct or_Torq2GF9F$F$F$%=DecideZeroColumnsEffectivelyGf*F$F$Fd\lF$C$F.-%Dhomalg/Decid eZeroColumnsEffectivelyGF9F$F$F$%(RHomHomGf*F$F$FJF$C$F.-%/homalg/RHomHomGF9F$F $F$%.FunctorOnSeqFGf*F$F$F)F$C$F.-%5homalg/FunctorOnSeqFGF9F$F$F$%.CompleteImSq FGf*F$F$F=F$C$F.-%5homalg/CompleteImSqFGF9F$F$F$%&Hom_RGf*F$F$F]pF$C$F.-%-homal g/Hom_RGF9F$F$F$%0Template_homalgGf*F$F$6#%ioCopyright~(C)~2007~by~Mohamed~Bara kat~and~Daniel~Robertz.~All~rights~reserved.GF$C$F.-%7homalg/Template_homalgGF9 F$F$F$%*LECS2lecsGf*F$F$F=F$C$F.-%1homalg/LECS2lecsGF9F$F$F$%-IsZeroModuleGf*F$ F$FaflF$C$F.-%4homalg/IsZeroModuleGF9F$F$F$%=StablyFreePresentationIsoFFRGf*F$F $F]sF$C$F.-%Dhomalg/StablyFreePresentationIsoFFRGF9F$F$F$%3FactorizeExtensionGf *F$F$F]^mF$C$F.-%:homalg/FactorizeExtensionGF9F$F$F$%,IsBijectiveGf*F$F$F]sF$C$ F.-%3homalg/IsBijectiveGF9F$F$F$%,Extq2OnSeqsGf*F$F$FJF$C$F.-%3homalg/Extq2OnSe qsGF9F$F$F$%6GetCleanRowsPositionsGf*F$F$FeuF$C$F.-%=homalg/GetCleanRowsPositio nsGF9F$F$F$%3SyzygiesGeneratorsGf*F$F$FDF$C$F.-%:homalg/SyzygiesGeneratorsGF9F$ F$F$%)ImageEmbGf*F$F$FVF$C$F.-%0homalg/ImageEmbGF9F$F$F$%3ResolutionOfModuleGf* F$F$FJF$C$F.-%:homalg/ResolutionOfModuleGF9F$F$F$%7LeftSatelliteOfFunctorGf*F$F $FfblF$C$F.-%>homalg/LeftSatelliteOfFunctorGF9F$F$F$%5LongExactHomologySeqGf*F$ F$FfdlF$C$F.-%<homalg/LongExactHomologySeqGF9F$F$F$%4TorsionSubmoduleEmbGf*F$F$ F\anF$C$F.-%;homalg/TorsionSubmoduleEmbGF9F$F$F$F$, Q*homalgA.mF$ M7R0 I0homalg/compiled"-f@J07?6", Q2homalg/compiled.mF$ M7R0 I6homalg/ConnectingHomFf*6*'%%_HqnG%4homalg_presentationG%#jnG%#bnG%$bsnG%%in_1 G'%'_Hsn_1GF''%$varG%%listG%,RingPackageG6)%#RPG%$narG%$HqnG%&Hsn_1G%&Cn_BnG%%Z n_1G%&Zsn_1G6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6" C*>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F?%*procedureG-%'RETURNG6#-F ?6#&FE6#;""",&FGFVFHFG>8&-%;homalg/EmbedInFactorModuleG6$9$F?>8'-Fen6$9)F?>8(-% 0homalg/PreimageG6&FY9%9*F?>8)-%9homalg/ImageOfSubmoduleFG6&F^o9&FcoF?>8*-F`o6& Feo9(FcoF?-%:homalg/ReduceHomomorphismG6&-F`o6'F[pFin9'FcoF?F\oFcoF?F<F<F<F<, Q8homalg/ConnectingHomF.mF< M7R0 I4homalg/DefectOfHomsf*6(%%betaG%"MG%&alphaG%"NG%$varG%,RingPackageG6+%#RPG%$na rG%%optsG%$posG%)optionalG%(im_betaG%%MgenG%3defect_target_hullG%*ker_alphaG6%% ^pCopyright~(C)~2003-2008~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~res erved.G%'systemG%)rememberG6"C0>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6 $F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSFEFD@$-FH6$&FB6#FS%'stringGC$@$/ FXQ1RETURN_co_contraF9-FL6#Q*covariantF9-FL6#%%NULLG@%2,&""$FSFEFS9#>8&-%%copyG 6#-%2homalg/GetOptionsG6$&FB6#;""%FTF<>&Feo6#Q2number_of_optionsF9""!@$2,&FcoFS FapFD,&""&FSFEFS-FL6#-%5homalg/DefectOfHomsFG6#FB>Feo-Fgo6#-Fjo6$&FB6#;""'FTF<> 8'F^o@$-%)assignedG6#&Feo6#QIpos_of_var_to_assign_F_target_hullmoduleF9>Fiq6$Fi q/F^rF^o>8(-%#opG6#-%'subsopG6$Fiq7#Fdq>8)-%4homalg/SumRelationsG6&9$9%9(F<@%-F H6$Fcs%4homalg_presentationG>8*-%@homalg/GeneratorsOfPresentationG6$FcsF<>FjsF^ o@$-F\r6#&Feo6#QBvar_to_assign_F_target_hullmoduleF9C$>8+-%6homalg/NormalizeInp utG6$F^sF<-%'assignG6$FbtFgt>8,-%1homalg/KernelEmbG6'Fcs9&9'FdsF<-%7homalg/Subf actorModuleG6(F_uF^sFds/Q4original_generatorsF9FjsFerF<F9F9F9F9, Q6homalg/DefectOfHoms.mF9 M7R0 I?homalg/DiagonalElementsAndRankf*6%%#_MG%%_varG%,RingPackageG6-%#RPG%$narG%"MG %$varG%"vG%"nG%"zG%"mG%#edG%%rankG%"dG6#%fnCopyright~(C)~2004~by~Mohamed~Baraka t.~All~rights~reserved.G6"C2>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F9 %*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%6homalg/NormalizeInputG6$9 $F9>8'-%5homalg/NormalizeRingG6$9%F9>8(-%8homalg/ResidueClassRingG6$FYF9>8)-&F9 6#%3NumberOfGeneratorsG6#FS>8*-&F96#%%ZeroG6#F^o@$0Fin-Fgo6#FP>FS-%:homalg/Redu ceRingElementsG6%FSFYF9>FS-%3homalg/BetterBasisGFbp@$/FS7"-FI6$FeoF^o>8+-%$minG 6$F^o-&F96#%-NumberOfRowsGFco-%$mapG6$f*6#%"iGF66$%)operatorG%&arrowGF6&&T#6#FW F`rF6F66$F+FS7#-%"$G6#;FPF\q>8,7$-%#opG6#%"%G-F[s6#-Fgo6#,&F^oFPF\qFA>8-""!?&8. Fhr%%trueG@$/FgsFes>Fds,&FdsFPFPFP6$FhrFdsF6F6F6F6, QAhomalg/DiagonalElementsAndRank.mF6 M7R0 I6homalg/FreeHullModulef*6%%#_MG'%$varG%%listG%,RingPackageG6&%#RPG%$narG%"MG%" nG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$-%1ho malg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F:6#;" "",&F<FKF=F<>8&-%6homalg/NormalizeInputG6$9$F4>8'-&F46#%3NumberOfGeneratorsG6#F N@%/-%4homalg/IsZeroModuleG6%FN9%F4%%trueG-%2homalg/ZeroModuleG6%Fin-&F46#%%Zer oG6#FTF4-%2homalg/FreeModuleG6%FTFinF4F1F1F1F1, Q8homalg/FreeHullModule.mF1 M7R0 I2homalg/FreeModulef*6%'%"nG%*nonnegintG'%$varG%%listG%,RingPackageG6$%#RPG%$na rG6%%[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G%'syste mG%)rememberG6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*procedure G-%'RETURNG6#-F66#&F<6#;""",&F>FMF?F>@%/9$""!-%2homalg/ZeroModuleG6$9%F6-%0homa lg/CokernelG6%7#-&F66#%%ZeroG6#FQFVF6F3F3F3F3, Q4homalg/FreeModule.mF3 M7R0 I5homalg/Functor_Hom_Rf*6"F$6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rig hts~reserved.G%'systemG%)rememberGF$7$%-homalg/Hom_RG%0homalg/HomMap_RGF$F$F$F$, Q7homalg/Functor_Hom_R.mF$ M7R0 I=homalg/Functor_TensorProductf*6#%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Bara kat.~All~rights~reserved.G%'systemG%)rememberGF&7&f*6#%"MGF&F&F&-%5homalg/Tenso rProductG6%9$T$&9"6#;""#!""F&F&6$F%F2f*6%F.%$phiG%"NGF&F&F&-%8homalg/TensorProd uctMapG6'F29%9&F3&F56#;""%F9F&F&F:F2f*6#%"PGF&F&F&f*F<F&F&F&-%9homalg/TensorPro duct2MapG6'F3F2FBFCFDF&F&6$FJF2F&F&F&F&F&F&F&, Q?homalg/Functor_TensorProduct.mF& M7R0 IChomalg/GetIndependentUnitPositionsf*6&%#_MG%)pos_listG'%$varG%%listG%,RingPac kageG60%#RPG%$narG%"MG%"mG%"nG%#nnG%)dep_listG%%restG%"rG%$posG%%zeroG%"iG%"jG% "kG6#%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C/>8$-%1h omalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F?%*procedureG-%'RETURNG6#-F?6#&FE6#; """,&FGFVFHFG>8&-%6homalg/NormalizeInputG6$9$F?>8'-&F?6#%-NumberOfRowsG6#FY>8(- &F?6#%3NumberOfGeneratorsGF^o>8)7#-%"$G6#;FVF`o>8*7">8+-%'subsopG6$-%#opG6#-%$m apG6$f*6#%"aGF<6$%)operatorG%&arrowGF</Fgn%%NULLGF<F<F<F]pFfo>8,-%%nopsG6#F`p>8 -Faq>8.-&F?6#%%ZeroGF<?&8/7#-Fio6#;FVFin%%trueG?&807#-Fio6#;FVFcqFerC$>81&F`p6# ,$FgrFG@$34-%'memberG6$7$F`rF^s9%0-%6homalg/InverseElementG6%&FY6$F`rF^s9&F?%%F AILGC'>Fhq6$FhqFhs>F]p7$-Fep6#F]p-Fep6#-Fhp6$f*F[qF<F]qF<@$0&T#6$T%FgnT'FgnF<F< 6(F.FYF7F`rF6FjqFfo>F`p-Fbp6$-Fep6#-Fhp6$f*F[qF<F]qF<F`qF<F<F<F]pFfo>FcqFdq[7#F hqF<F<F<F<, QEhomalg/GetIndependentUnitPositions.mF< M7R0 I.homalg/ImageFf*6%%#_AG'%$varG%%listG%,RingPackageG6*%#RPG%$narG%%optsG%8USE_I MAGE_OF_GENERATORSG%)optionalG%"AG%#AAG%"mG6%%fnCopyright~(C)~2007~by~Mohamed~B arakat.~All~rights~reserved.G%'systemG%)rememberG6"C+>8$-%1homalg/tablenameG6%9 !&9"6#!""8%@$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB@$2,&" "#FQFCFQ9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F@6#;""$FRF:@%-%)assignedG6#&FY6 #Q?pos_of_USE_IMAGE_OF_GENERATORSF7>8'%%trueG>Ffo%&falseG>8(Fjn>8)-%6homalg/Nor malizeInputG6$9$F:@$4FfoC$>8*-%<homalg/ReducedBasisOfModuleG6&Fap9%Q.COMPUTE_BA SISF7F:@$2-&F:6#%-NumberOfRowsG6#Ffp-F_q6#F]p>F]pFfp>8+-&F:6#%3NumberOfGenerato rsG6$F]pF:-%7homalg/SubfactorModuleG6'F]p7#-&F:6#%%ZeroG6#FgqFjpF[pF:F7F7F7F7, Q0homalg/ImageF.mF7 M7R0 I7homalg/IsShortExactSeqf*6)%#M_G%&alphaG%"MG%%betaG%#_MG%$varG%,RingPackageG61 %#RPG%$narG%&hom_aG%&hom_bG%%homsG%$cmpG%%cmpsG%$kerG%$defG%&cokerG%%defsG%+che ck_homsG%+check_cmpsG%+check_defsG%$resG6#%fnCopyright~(C)~2004~by~Mohamed~Bara kat.~All~rights~reserved.G6"C2>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$ FA%*procedureG-%'RETURNG6#-FA6#&FG6#;""",&FIFXFJFI@$29#,&""'FXFJFX-FQ6#-%8homal g/IsShortExactSeqFG6#FG>8&-%0homalg/CheckHomG6'9$9%9&9)FA>8'-Fao6'Feo9'9(FfoFA> 8(-%$mapG6'%1homalg/IsZeroMapG7$F_oFhoFfoQ(VERBOSEF>FA>8)-%8homalg/CheckComposi tionG6'FdoF[pF\pFfoFA>8*7#-Fbp6&FfpFfoFdpFA>8+-%.homalg/KernelGFbo>8,-%4homalg/ DefectOfHomsG6(FdoFeoF[pF\pFfoFA>8--%0homalg/CokernelG6&F[pF\pFfoFA>8.-F`p6'%4h omalg/IsZeroModuleG7%F`qFdqFiqFfoFdpFA>8/-%&evalbG6#/-%(convertG6$F^p%$setG<#%% trueG>80-Ffr6#/-Fjr6$F[qF\sF]s>81-Ffr6#/-Fjr6$F^rF\sF]s@'33FdrF`sFgsF^s32FgnFfn -FM6$&FG6#FY%'stringGC'>82%%NULLG@%Fdr>Fit6$Fit/Q%homsF>F^s>Fit6$Fit/F_uF^p@%F` s>Fit6$Fit/Q%cmpsF>F^s>Fit6$Fit/FguF[q@%Fgs>Fit6$Fit/Q%defsF>F^s>Fit6$Fit/F_vF^ rFit%&falseGF>F>F>F>, Q9homalg/IsShortExactSeq.mF> M7R0 I5homalg/IsTorsionFreef*6%%"MG'%$varG%%listG%,RingPackageG6'%#RPG%$narG%%optsG% #MtG%"bG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'syst emG%)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*procedur eG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?@$2,&""#FNF@FN9#>8&-%%copyG6#-%2homalg/Ge tOptionsG6$&F=6#;""$FOF7>8'-%8homalg/TorsionSubmoduleG6%9$9%F7>8(-%4homalg/IsZe roModuleG6%F\oFaoF7@%-%)assignedG6#&FV6#Q/pos_of_VERBOSEF4@%Fco%%trueGF\oFcoF4F 4F4F4, Q7homalg/IsTorsionFree.mF4 M7R0 I2homalg/IsZeroMapFf*6%%#_AG'%$varG%%listG%,RingPackageG6&%#RPG%$narG%%optsG%"A G6%%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)re memberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*procedureG-%'RE TURNG6#-F66#&F<6#;""",&F>FMF?F>@$2,&""#FMF?FM9#>8&-%%copyG6#-%2homalg/GetOption sG6$&F<6#;""$FNF6>8'-%6homalg/NormalizeInputG6$9$F6@'/-%3homalg/BetterBasisG6&F [o9%Q3ALLOW_EMPTY_OUTPUTF3F67"%%trueG-%)assignedG6#&FU6#Q/pos_of_VERBOSEF3F[o%& falseGF3F3F3F3, Q4homalg/IsZeroMapF.mF3 M7R0 I/homalg/Kaehlerf*6$%%_varG%,RingPackageG6)%#RPG%$narG%%optsG%$varG%"RG%"vG%"JG 6#%[oCopyright~(C)~2003-2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$-% 1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F:6 #;""",&F<FKF=F<@%2,&FKFKF=FK9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F:6#;""#FLF4 >&FR6#Q2number_of_optionsF1""!@%2,&FPFKFhnF<,&FfnFKF=FK>8'9$C%>8(-%6homalg/Norm alizeInputG6$&F:6#FKF4@$0-&F46#%3NumberOfGeneratorsG6#FeoFK-%&ERRORG6#%GExpecti ng~an~ideal~as~a~first~argumentG>Fao&F:6#Ffn>8)-%5homalg/NormalizeRingG6$FaoF4@ %-%)assignedGFapC%>Feo-%4homalg/RingNotationG6$FeoF4>8*-%$mapG6$f*6#%"aGF16$%)o peratorG%&arrowGF1-Fiq6$f*6#%"bGF1F^rF1-%%diffG6$T$FboF1F16$F]rFbo&T#FjoF1F16$F -FjpFeo>Fgq-%4homalg/SumRelationsG6&Fgq-%/homalg/DiagMatG6$-%"$G6$Feo-%%nopsG6# &FjpFjoF4FaoF4@%0&FjpFhp7"C$>Feo-Fdq6$F^tF4>Fgq-Fiq6$f*F\rF1F^rF1-Fiq6$f*FdrF1F ^rF1FfrF1F1FjrF[sF1F1F]sFeo>Fgq7#-&F46#%%ZeroG6#Fhs-%1homalg/CokernelFG6%FgqFao F4F1F1F1F1, Q1homalg/Kaehler.mF1 M7R0 I1homalg/LEHS2lehsf*6$%%LEHSG%,RingPackageG6)%#RPG%$narG%)AiBjCconG%"nG%"iG%"jG %%lehsG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8$ -%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F :6#;""",&F<FKF=F<>8&-%5homalg/LEHS2AiBjCconG6#F:>8'-%%nopsG6#&FN6#FK>8*-%$seqG6 $-Ffn6$-%%copyG6#&FN6$,$8(F<,&FSF<8)FK/F`o;FK""'/Fbo;FK,&FSFKF<FK7$-Ffn6$-F[o6# &FN6$F_oFK/F`o;""#FeoFZF1F1F1F1, Q3homalg/LEHS2lehs.mF1 M7R0 I3homalg/LHomHom2Mapf*6*%"qG%"AG%"MG%$phiG%"NG%"BG'%$varG%%listG%,RingPackageG6 &%#RPG%$narG%)optionalG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~ All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!" "8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC>8&&FA6#;"")FS >8'f*6#F'F8F8F8-%/homalg/LHomHomG6'T$T&9$T(&FA6#;""#FCF8F86(F%F]oF&9%F*9)-%2hom alg/FunctorMapG6)Fen7#9&9'7#9(9*FUF;F8F8F8F8, Q5homalg/LHomHom2Map.mF8 M7R0 I5homalg/LHomHomOnSeqsf*6(%"qG%"AG%"BG'%&alphaG<$%&tableG%%listG%%_varG%,RingPa ckageG6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~ri ghts~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$- %%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&-%7homalg/Functor _LHomHomG6%9$9%9&-%5homalg/FunctorOnSeqsG6$FT&F@6#;""%FBF7F7F7F7, Q7homalg/LHomHomOnSeqs.mF7 M7R0 I<homalg/LongExactHomologySeqf*6,'%&alphaG<$%&tableG%%listG'%#AAGF''%%IotaGF''% %betaGF''%#BBGF''%#NuGF''%&gammaGF''%#CCGF''%$varGF)%,RingPackageG6=%#RPG%$narG %#aiG%$_aiG%"mG%#AiG%#iiG%$_iiG%#biG%$_biG%#BiG%#niG%$_niG%"iG%#giG%$_giG%#CiG% %LEHSG%/embedding_infoG%.F_target_hullG%#HHG%$haiG%$hbiG%$hgiG%$hiiG%$hniG%#diG 6#%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~rights~reserved.G6"CE>8$-% 1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$Ffn%*procedureG-%'RETURNG6#-Ffn6#&F \o6#;""",&F^oF]pF_oF^o@$29#,&"")F]pF_oF]p-Ffo6#-%=homalg/LongExactHomologySeqFG 6#F\o@%-Fbo6$9$F)C$>8&7#-%"$G6#;F]p-%%nopsG6#F\q>8'7#-Fbq6#;""!&F_q6#!"#C$>F_q- %%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGFgq>FiqF_q>8(-Ffq6#F_q@%-Fbo6$9%F)>8)7# -Fbq6#;F]p-Ffq6#Fhs>Fjs-Fer6#-Fhr6$Fjr-F\s6#-F_sF`t@$0,&FbsF]pF]pF]p-Ffq6#Fjs-% &ERRORG6#%`oThe~second~argument~must~have~one~entry~more~than~the~first~argumen t!G@%-Fbo6$9&F)C$>8*7#-Fbq6#;F]p-Ffq6#Feu>8+7#-Fbq6#;F^o&Fhu6#!"$C$>Fhu-Fer6#-F hr6$Fjr-F\s6#-F_sF^v>F`vFhu@$0F[u-Ffq6#Fhu-F_u6#%_oThe~third~argument~must~have ~one~entry~more~than~the~first~argument!G@%-Fbo6$9'F)C$>8,7#-Fbq6#;F]p-Ffq6#F\x >8-7#-Fbq6#;F^r&F_xF`rC$>F_x-Fer6#-Fhr6$Fjr-F\s6#-F_sFex>FgxF_x@$0Fbs-Ffq6#F_x- F_u6#%[oThe~first~and~fourth~argument~have~different~numbers~of~entries!G@%-Fbo 6$9(F)>8.7#-Fbq6#;F]p-Ffq6#Faz>Fcz-Fer6#-Fhr6$Fjr-F\s6#-F_sFiz@$0F[u-Ffq6#Fcz-F _u6#%_oThe~fifth~argument~must~have~one~entry~more~than~the~first~argument!G@%- Fbo6$9)F)C$>8/7#-Fbq6#;F]p-Ffq6#F\\l>807#-Fbq6#;F^o&F_\lFfvC$>F_\l-Fer6#-Fhr6$F jr-F\s6#-F_sFe\l>Fg\lF_\l@$0Fdw-Ffq6#F_\l-F_u6#%jnThe~third~and~sixth~argument~ have~different~numbers~of~entries!G@%-Fbo6$9*F)C$>827#-Fbq6#;F]p-Ffq6#Fa^l>837# -Fbq6#;F^r&Fd^lF`rC$>Fd^l-Fer6#-Fhr6$Fjr-F\s6#-F_sFj^l>F\_lFd^l@$0Fbs-Ffq6#Fd^l -F_u6#%\oThe~first~and~seventh~argument~have~different~numbers~of~entries!G@%-F bo6$9+F)>847#-Fbq6#;F]p-Ffq6#Ff`l>Fh`l-Fer6#-Fhr6$Fjr-F\s6#-F_sF^al@$0F[u-Ffq6# Fh`l-F_u6#%_oThe~eigth~argument~must~have~one~entry~more~than~the~first~argumen t!G>85-F(FY>86F`bl>87F`bl>89&Fiq6#;F]pFar?&817#-Fbq6#;F]p,&FbsF]pF^oF]p%%trueG> &F_bl6#-&.%"HG6#&Ffbl6#F[cl6#.%"AG-%4homalg/DefectOfHomsG6*&F\q6#,&&F_qF[dlF]pF ]pF]p&Fhs6#&Fjs6#,&F[clF]pF]pF]p&F\q6#Fedl&Fhs6#,&FhdlF]pF^oF]p9,/Q=var_to_assi gn_embedding_infoFY&Fbbl6#-&88FiclF\dl/QBvar_to_assign_F_target_hullmoduleFY&Fd blFdelFfn>8:&FgxFhbl?&F[clF\clFacl>&F_bl6#-&Fgcl6#&F\flF[dl6#.%"BG-F`dl6)&F\x6# ,&&F_xF[dlF]pF]pF]p&Faz6#&FczFidl&F\x6#F^gl&Faz6#,&FaglF]pF^oF]pF`el/Fiel&Fdbl6 #-&FgelFdflFfflFfn>8;&F\_lFhbl?&F[clF\clFacl>&F_bl6#-&Fgcl6#&F]hlF[dl6#.%"CG-F` dl6*&Fa^l6#,&&Fd^lF[dlF]pF]pF]p&Ff`l6#&Fh`lFidl&Fa^l6#F_il&Ff`l6#,&FbilF]pF^oF] pF`el/Fbel&Fbbl6#-&FgelFehlFghl/Fiel&FdblFjilFfn>8<&F`v6#;""#Far?&F[clF\clFacl> &F_bl6#-&Fgcl6#&F`jlF[dl6#.%%iotaG-%7homalg/DefectOfHomsMapG60FbdlFfdlF[elF]el& Feu6#&FhuFidlF[glF_glFbglFdglF`el/Q)F_sourceFYFccl/Q)F_targetFYF`fl/Q4F_target_ hullmoduleFYFhglFfn>8=&Fg\lFbjl?&F[clF\clFacl>&F_bl6#-&Fgcl6#&F]\mF[dl6#.%#nuG- Fa[m60F[glF_glFbglFdgl&F\\l6#&F_\lFidlF\ilF`ilFcilFeilF`el/Fg[mF`fl/Fi[mFahl/F[ \mF^jlFfn>8>&F]hl6#;FdjlF^o?&F[cl7#-Fbq6#;F]p,&FbsF]pFarF]pFacl>&F_bl6#&%&delta G6#&Fc]mF[dl-%5homalg/ConnectingHomG6.&F_bl6#-&Fgcl6#&F]hlFidlFghl&F\\l6#&F_\l6 #,&F[clF]pFdjlF]p&F\x6#&F_xFidl&F\q6#&F_qFidl&Feu6#,&&FhuF`_mF]pF^oF]p&F_bl6#-& Fgcl6#,&&FfblFidlF]pF^oF]pF\dlF`el/Q3Hqn_embedding_infoFY&Fbbl6#-&FgelF[_mFghl/ Q5Hsn_1_embedding_infoFY&Fbbl6#-&FgelF``mF\dl/Q(Cqn_BqnFYF^jl/Q%Zn_1FY&Faz6#,&& FczF`_mF]pF^oF]pFfn-%%copyG6#F_blFYFYFYFY, Q>homalg/LongExactHomologySeq.mFY M7R0 I.homalg/MulMatf*6&%"aG%#_AG'%$varG%%listG%,RingPackageG6&%#RPG%$narG%"AG%"vG6# %[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8$-%1h omalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6#-F56#&F;6#; """,&F=FLF>F=>8&-%6homalg/NormalizeInputG6$9%F5@$/9$-&F56#%%ZeroGF2-FE6#-&F56#% 'matrixG6#7#-%"$G6$-FX6#-&F56#%3NumberOfGeneratorsG6#FO-&F56#%-NumberOfRowsGFfo >8'-%8homalg/ResidueClassRingG6$9&F5@%/F\p-FX6#FLC$-&F56#%)simplifyG6$-%&evalmG 6#*&FVFLFOFLF`p-Fhn6#%"%GC'@$/-%:homalg/ReduceRingElementsG6%7#7#FVF`pF57#FcpFe nFfpF_q-Ffq6%FaqF`pF5F_qF2F2F2F2, Q0homalg/MulMat.mF2 M7R0 I9homalg/NonZeroGeneratorsf*6%%#_MG'%$varG%%listG%,RingPackageG6(%#RPG%$narG%"M G%"nG%$stdG%"zG6#%[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~rese rved.G6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*procedureG-%'RET URNG6#-F66#&F<6#;""",&F>FMF?F>@$/8&7"-FF6#FR>FQ-%6homalg/NormalizeInputG6$9$F6> 8'-&F66#%3NumberOfGeneratorsG6#FQ>8(-%7homalg/StdBasisVectorsG6$FenF6>8)-&F66#% %ZeroG6#Fen>F\o-%.homalg/ReduceG6&F\oFQ9%F6-%$mapG6$f*6#%"aGF36$%)operatorG%&ar rowGF3@$0&T#6#FYT%FYF3F36&F/F\oF0Fao7#-%"$G6#;FMFenF3F3F3F3, Q;homalg/NonZeroGenerators.mF3 M7R0 I:homalg/PushoutPairOfMapsFf*6&%(_alpha1G%$psiG%$varG%,RingPackageG6+%#RPG%$nar G%%optsG%'alpha1G%"aG%$posG%)optionalG%#poG%$epiG6%%fnCopyright~(C)~2007~by~Moh amed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C/>8$-%1homalg/tablena meG6%9!&9"6#!""8%@$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB @$2,&""$FQFCFQ9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F@6#;""%FRF:>8'-%6homalg/N ormalizeInputG6$%'_alphaGF:>8(-&F:6#%-NumberOfRowsG6#F_o>8)%%NULLG@$-%)assigned G6#&FY6#QGpos_of_var_to_assign_functor_on_objectF7>F\p6$F\p/FbpF]p@$-F`p6#&FY6# QApos_of_var_to_assign_CokernelEpiF7>F\p6$F\p/F[qF]p>8*-%#opG6#-%'subsopG6$F\p7 #Fjn>8+-%0homalg/PushoutFG6'F_o9%9&/Q:var_to_assign_CokernelEpiF7.8,F:@$-F`p6#& FY6#Q@var_to_assign_functor_on_objectF7-%'assignG6$FhrF[r>Fdr-Fao6$FdrF:6$-&F:6 #%'matrixG6#-&F:6#%,CertainRowsG6$Fdr7#;FQFeo-Fcs6#-Fhs6$Fdr7#;,&FeoFQFQFQFBF7F 7F7F7, Q<homalg/PushoutPairOfMapsF.mF7 M7R0 I9homalg/PushoutPairOfMapsf*6(%'alpha1G%#AAG%$psiG%#B_G%$varG%,RingPackageG6+%# RPG%$narG%%optsG%"AG%"aG%$posG%)optionalG%#poG%$epiG6%%fnCopyright~(C)~2007~by~ Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C1>8$-%1homalg/tabl enameG6%9!&9"6#!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSF EFD@%2,&""$FSFEFS9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FB6#;""%FTF<>&Fen6#Q2nu mber_of_optionsF9""!@$2,&FYFSFaoFD,&""&FSFEFS-FL6#-%:homalg/PushoutPairOfMapsFG 6#FB>8'-%6homalg/NormalizeInputG6$9%F<>8(-&F<6#%3NumberOfGeneratorsG6#F`p>Fen-F gn6#-Fjn6$&FB6#;""'FTF<>8)%%NULLG@$-%)assignedG6#&Fen6#QGpos_of_var_to_assign_f unctor_on_objectF9>Ffq6$Ffq/F\rFgq@$-Fjq6#&Fen6#QApos_of_var_to_assign_Cokernel EpiF9>Ffq6$Ffq/FerFgq>8*-%#opG6#-%'subsopG6$Ffq7#Faq>8+-%/homalg/PushoutG6)9$Fd p9&9'9(/Q:var_to_assign_CokernelEpiF9.8,F<@$-Fjq6#&Fen6#Q@var_to_assign_functor _on_objectF9-%'assignG6$FdtFes>F`t-Fbp6$F`tF<6$-&F<6#%'matrixG6#-&F<6#%,Certain RowsG6$F`t7#;FSFfp-F_u6#-%.homalg/MulMatG6&FD-Fdu6$F`t7#;,&FfpFSFSFSFDF\tF<F9F9 F9F9, Q;homalg/PushoutPairOfMaps.mF9 M7R0 I7homalg/ResolutionOfSeqf*6*'%"qG%*nonnegintG%#A_G%'alpha1G%"AG%'alpha2G%#_AG%% _varG%,RingPackageG6+%#RPG%$narG%$varG%)optionalG%"lG%%seqsG%$resG%"iG%"jG6%%[o Copyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rem emberG6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F@%*procedureG-%'RET URNG6#-F@6#&FF6#;""",&FHFWFIFH@'-FL6$&FF6#FX%%listGC%>8&Ffn>8'%&falseG>8(,(9#FW !"#FWFIFH3-FL6$Ffn%'stringG-FL6$&FF6#,&FcoFWFIFHFhnC%>F[oFjo>F]o%%trueG>F`o,(Fb oFW!"$FWFIFH-%&ERRORG6#%-Wrong~input!G@$0-%%modpG6$F`o""#FW-Fep6#%VThe~number~o f~module-morphism-module-...~must~be~odd!G>8)-%&tableGF=?&8+7#-%"$G6#;FW,&F`o#F WF]qF]rFWF`pC%>8*-%5homalg/ResolveModuleG6&9$&FF6#,$FfqF]qF[oF@>&Fbq6#,&Ffq""$F coFW-%%copyG6#&F`r6#FW>&Fbq6#,&FfqF\sFHFW-F^s6#&F`r6#F]q?&Ffq7#-Fiq6#;FW,&F`oF] r#FHF]qFWF`p>&Fbq6#,$FfqF\s-%4homalg/CompleteSeqFG6'-F^s6#Fir-F^s6#&FF6#,&FfqF] qFWFW-F^s6#&Fbq6#,&FfqF\sFWFWF[oF@@$F]oC$?&FfqFgqF`pC&>&FcsFG-%2homalg/ZeroModu leG6$F[oF@>&Fcs6#,&FdrFWFWFWFju>&Fir6#""!-%/homalg/ZeroMapG6&-F^s6#&FcsFcv-F^s6 #FiuF[oF@>&FirF_v-Ffv6&-F^s6#F^v-F^s6#&Fcs6#FdrF[oF@?&FfqF[tF`pC$>&FbtFG-Ffv6&F [w-F^s6#&&Fbq6#,&FfqF\sF]qFWFGF[oF@>&FbtF_v-Ffv6&Faw-F^s6#&F`xF_vF[oF@-%#opG6#- %$mapG6$F^s-F^y6$f*6#%"aGF=6$%)operatorG%&arrowGF=&T#FfwF=F=6$F5Fbq7#-Fiq6#;FW, &F`o#F\sF]qF]rFWF=F=F=F=, Q9homalg/ResolutionOfSeq.mF= M7R0 I4homalg/RingNotationf*6$'%"LG%%listG%,RingPackageG6$%#RPG%$narG6#%fnCopyright~ (C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-%1homalg/tablenameG6% 9!&9"6#!""8%@$-%%typeG6$F1%*procedureG-%'RETURNG6#-F16#&F76#;""",&F9FHF:F9@%3-F =6$9$%)listlistG/-&F16#%3NumberOfGeneratorsG6#FNFH-%$mapG6$%#opGFNFNF.F.F.F., Q6homalg/RingNotation.mF. M7R0 IChomalg/SolveSystemWithConstraintsCf*6(%#_AG%#_BG%#_CG%#_EG%$varG%,RingPackage G66%#RPG%$narG%%optsG%"AG%"BG%"CG%"EG%"MG%"NG%"LG%"aG%"bG%"cG%"dG%#d_G%#ETG%#Ib G%#IcG%#IdG%"YG6%%enCopyright~(C)~2007~by~Barbara~Bremer.~All~rights~reserved.G %'systemG%)rememberG6"C6>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FG%*pr ocedureG-%'RETURNG6#-FG6#&FM6#;""",&FOFhnFPFO>8'-%6homalg/NormalizeInputG6$9$FG >8(-F]o6$9%FG>8)-F]o6$9&FG>8*-F]o6$9'FG>8.-&FG6#%3NumberOfGeneratorsG6#F[o>8/-& FG6#%-NumberOfRowsG6#Fao>80-Fbp6#Ffo>81-Fbp6#F[p>83-%2homalg/InvolutionG6%F[p9( FG>84-%3homalg/IdentityMapG6%FgpFjqFG>85-F^r6%F^qFjqFG>8+7#7$-%#opG6#-%$mapG6$F irFao-Fir6#-&FG6#%%ZeroG6#*&FgpFhnF^qFhn>8,-&FG6#%/UnionOfColumnsG6$-%/homalg/Z eroMapG6&-%2homalg/FreeModuleG6%*&F^qFhnFbqFhnFjqFG-Fat6%*&F`pFhnFgpFhnFjqFGFjq FG-%.homalg/SubMatG6%-F^t6&F`t-Fat6%FesFjqFGFjqFG-%4homalg/KroneckerMatG6&FfqFa rFjqFGFjq>8--Fis6$-F_u6&F\rF[oFjqFG-F_u6&F\rFfoFjqFG>87-%3homalg/RightDivideG6( FerFgsFbuFjqQ)USE_FAILFDFG@$/Fju%%FAILG-FW6#Fav>Fju-F]o6$FjuFG-F\s6$f*6#%"iGFD6 $%)operatorG%&arrowGFD&&T#6#Fhn6#;,&*&,&F_oFhnFOFhnFhnT%FhnFhnFhnFhn*&F_oFhnFhw FhnFDFD6&F?FjuF8F^q7#-%"$G6#;FhnFbqFDFDFDFD, QEhomalg/SolveSystemWithConstraintsC.mFD M7R0 IDhomalg/StablyFreePresentationIsoFFRf*6%%#_PG%$varG%,RingPackageG6(%#RPG%$narG %"PG%"nG%"pG%$epiG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserv ed.G6"C)>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETUR NG6#-F46#&F:6#;""",&F<FKF=F<>8&-%6homalg/NormalizeInputG6$9$F4>8'-&F46#%3Number OfGeneratorsG6$FNF4>8(-%Ahomalg/StablyFreePresentationFFRG6%FN9%F4@$/Fen%%FAILG -FD6#F\o-&F46#%'matrixG6#-&F46#%,CertainRowsG6$-%7homalg/StdBasisVectorsG6$FenF 47#-%"$G6#;FKFTF1F1F1F1, QFhomalg/StablyFreePresentationIsoFFR.mF1 M7R0 I5homalg/SyzygiesBasisf*6&%$_M1G%$_M2G%%_varG%,RingPackageG6*%#RPG%$narG%%optsG %#M2G%$varG%#M1G%"nG%$genG6%%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~ rights~reserved.G%'systemG%)rememberG6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@ $-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@%2,&""#FPFBFP9#>8 &-%%copyG6#-%2homalg/GetOptionsG6$&F?6#;""$FQF9>&FX6#Q2number_of_optionsF6""!@% 2,&FVFPF^oFA,&F\oFPFBFPC$>8'7">8(&F?6#FUC$>Fho9%>F[p9&>8)-%6homalg/NormalizeInp utG6$9$F9>8*-&F96#%-NumberOfRowsG6#Fdp>8+-%:homalg/SyzygiesGeneratorsG6&FdpFhoF [pF9@$/FaqFio>Faq7#-&F96#%%ZeroG6#Fjp-%5homalg/BasisOfModuleG6%FaqF[pF9F6F6F6F6, Q7homalg/SyzygiesBasis.mF6 M7R0 I1homalg/tablenamef*6$%&pnameG%,RingPackageG6&%#RPG%$narG%"pG%#pnG6#%^pCopyrigh t~(C)~2004-2006~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.G6"C 8@+33-%%typeG6$9%%'symbolG4-%'memberG6$-%)whattypeG6#-%%evalG6#F67$%&arrayG%'Ma trixG-F46$-%$catG6$F6.%(/homalgG%&tableGC$>8$FG>8%"""33-F46$F6FLF85-%)assignedG 6#&F66#%.BasisOfModuleG-FY6#&F66#%0TriangularBasisGC$>FOF6>FQFR33-FY6#%/homalg/ defaultG-F46$FdoF7-F46$-FH6$FdoFJFLC$>FOFio>FQ""!3Fbo-F46$FdoFLC$>FOFdo>FQF^p-% &ERRORG6#%_uSince~homalg/default~is~not~defined,~the~last~argument~must~be~a~ta ble~containing~the~(minimum)~homalg~conversions~or~an~unassigned~symbol~pointin g~to~such~a~table!G@$4-FY6#&FO6#%9Maple_with_LinearAlgebraGC$-%*substringG6$-%( convertG6$-%+kerneloptsG6#%(versionG%'stringG;FR"")@%30%"%GQ)Maple~V,F.0FarQ)Ma ple~6.F.>F]q%%trueG>F]q%&falseG?&8&7"Ffr@$4-FY6#&FO6#Fjr>F`sFjr?&FjrF[sFfr@$F]s >F`sf*6#%"aGF.6$%)operatorG%&arrowGF.9$F.F.F.@$4-FY6#&FO6#%'AddRhsG>Fatf*6#'%"R G%%listG6%%"iG%"eG%#R2GF.F.@%2""#9#C$@$0-%%nopsG6#&9"6#""$-Ffu6#F\t-Ffp6#%coexp ecting~the~same~number~of~right~hand~sides~as~number~of~entries~in~R.G-%'RETURN G6#-%$zipG6%f*6$F[uF\uF.FisF./F\tF6F.F.F.F\tFhuC%>Fjr%%NULLG?(FOFRFRF\vFfrC%>FQ 7#-%"$G6$F^pF\v>FQ-%'subsopG6$/FOFRFQ>Fjr6$Fjr/&F\t6#FOFQ-Fbv6#7#FjrF.F.F.@$4-F Y6#&FO6#%/CertainColumnsG@%F]q>Fexf*6$%"MG'%&plistGFitF.F.F.@13-F46$F\tFit/F6F[ s-Fbv6#F[s3Fay-F46$F6-Fit6#%#..G-%$mapG6$f*FgsF.FisF.&F\t6#-%#opG6#T$F.F.6$F^yF 6F\tFay-F]z6$f*6#%"bGF.FisF.-F]z6$f*FgsF.FisF.@$-F:6$F\tFez&T&F]vF.F.6&F^yFezF[ [lF\t7#-Fbw6#;FRF\vF.F.FfzF\t3-F46$F\t%'matrixGFgy-&%'linalgG6#%*submatrixG6%F\ t;FR-&F_\l6#%'rowdimGF]v-FczFA3Fj[l-F46$F6-Fit6#%(integerG-F^\l6%F\tFc\lF63-F46 $F\tFDFgy-&%.LinearAlgebraG6#%*SubMatrixG6%F\t;FR-&Ff]l6#%-RowDimensionGF]vFh\l 3Fb]lFj\l-Fe]l6%F\tFj]lF6-Ffp6#%ioInput~is~not~a~matrix~and~not~a~list/listlist ,~or~wrong~second~argument~plist!GF.F.F.>Fexf*F[yF.F.F.@-F`yFdyFfy-F]z6$f*FgsF. FisF.F`zF.F.FfzF\tFay-F]z6$f*FjzF.FisF.-F]z6$f*FgsF.FisF.@$F`[lFb[lF.F.Fd[lFe[l F.F.FfzF\tFi[lF]\lFi\lF_]lFb^lF.F.F.@$4-FY6#&FO6#%,CertainRowsG@%F]q>Ff_lf*F[yF .F.F.@1F`yFdyFfy&F\t6#Fh\lFay-F]z6$f*FgsF.FisF.@$F`[lFb[lF.F.6&F^yF6F\yF\tFe[lF i[l-F^\l6%F\tFh\l;FR-&F_\l6#%'coldimGF]vFi\l-F^\l6%F\tF6Ff`lFa]l-Fe]l6%F\tFh\l; FR-&Ff]l6#%0ColumnDimensionGF]vF_^l-Fe]l6%F\tF6F_alFb^lF.F.F.>Ff_lf*F[yF.F.F.@- F`yFdyFfyF]`lFay-F]z6$f*FgsF.FisF.@$F`[lFb[lF.F.Fc`lFe[lFi[lFd`lFi\lF[alFb^lF.F .F.@$4-FY6#&FO6#%-DivideByUnitG>Fablf*6$FhsF[[lF.F.F.*&F\tFRF6!""F.F.F.@$4-FY6# &FO6#%(GetSideG>F]clf*6$%%sideGF\yF.F.F.@%5/F\t%$lhsG/F\t%$rhsG-F]z6$F\tF6-Ffp6 #%@side~must~be~either~lhs~or~rhs.GF.F.F.@$4-FY6#&FO6#F\\l>Fcdlf*FgsF.F.F.-FeqF [\lF.F.F.@$4-FY6#&FO6#%+matrixtypeG>F\elF\\l@$4-FY6#&FO6#%&MinusG>Fdelf*FfblF.F .F.,&F\tFRF6FhblF.F.F.@$4-FY6#&FO6#%-NumberOfRowsG@%F]q>F^flf*FgsF.F.F.@'Fj[lFd \lFb]lF[^lF\vF.F.F.>F^flf*FgsF.F.F.@%Fj[lFd\lF\vF.F.F.@$4-FY6#&FO6#%3NumberOfGe neratorsG@%F]q>F\glf*6#'Fhs<'FDF\\lFit%)listlistG-Fit6#%"=GF.F.F.@+-F46$F\tFegl -Ffu6#&F\t6#FRFj[lFg`lFb]lF`al-F46$F\tFfgl@%332FRFau-F46$&Fiu6#F`uF[r42F^p-%+se archtextG6$Q"lF.Fhhl-Ffu6#-FiclF]hl-Ffu6#-FgclF]hlFRF.F.F.>F\glf*6#'Fhs<&F\\lFi tFeglFfglF.F.F.@)FjglF\hlFj[lFg`lF`hl@%FchlF`ilFcilFRF.F.F.@$4-FY6#&FO6#%$OneG> FajlFR@$4-FY6#&FO6#%)simplifyG>Fijlf*FgsF.F.F.-F[[mF]vF.F.F.@$4-FY6#&FO6#%,Unio nOfRowsG>Fc[mf*F.F.F.F.-F]z6$f*FgsF.FisF.@%Fay-FczF]v-Fcz6#-FeqF[hlF.F.F.7#FiuF .F.F.@$4-FY6#&FO6#%/UnionOfColumnsG>Fe\mf*F.6#%#arGF.F.C$>FO-F]z6$f*FgsF.FisF.@ %FjglF\tF_\mF.F.F.F`\m-F]z6$f*6#F[uF.FisF.-F]z6$f*FgsF.FisF.-Fcz6#&F\tFdzF.F.6$ F[uF\tT#F.F.6$F[]mFO7#-Fbw6#;FR-Ffu6#&FOF_hlF.F.F.@$4-FY6#&FO6#%%ZeroG>Fj^mf*6# '%"nG%*nonnegintGF.F.F.@%2F^pFau7#-Fbw6$F^pF\tF^pF.F.F.>8'-Fbq6$F\t;F]rFhbl@$3F _u-F46$FhuF7-%'assignG6$FhuFQ@%3-FY6#&FO6#Fi_m-F46$Fh`m%*procedureGFh`mFOF.F.F. F., Q3homalg/tablename.mF. M7R0 I:homalg/Ext1Of2OneCocyclesf*6)%#_MG%&etaMLG%#_LG%&etaLNG%#_NG%$varG%,RingPacka geG6.%#RPG%"MG%"LG%"NG%(Ext1_MNG%/abstractly1_MNG%'Hom_MLG%'Hom_LNG%'gen_MLG%'g en_LNG%*submoduleG%$genG6#%enCopyright~(C)~2008~by~Barbara~Bremer.~All~rights~r eserved.G6"C0>8$-%1homalg/tablenameG6%9!&9"6#!""%$narG@$-%%typeG6$F>%*procedure G-%'RETURNG6#-F>6#&FD6#;""",&FFFUFGFF>8%-%6homalg/NormalizeInputG6$&-%:homalg/R esolutionOfModuleG6&9$9)/Q)TRUNCATEF;""!F>6#FUF>>8&-FZ6$&-Fhn6&9&F[oF\oF>F_oF>> 8'-FZ6$&-Fhn6&9(F[oF\oF>F_oF>>8(-%+homalg/ExtG6(FUFXFioF[o/QTvar_to_assign_proc _to_express_generators_abstractlyF;.8)F>>8*-%+homalg/HomG6&FXFaoF[oF>>8+-F\q6&F aoFioF[oF>>8,-%@homalg/GeneratorsOfPresentationG6$FjpF>>8--Feq6$F_qF>>8.%%NULLG ?&8/Fcq%%trueG>F\r6$F\r-Fhp6#-%?homalg/YonedaProductOfCocyclesG6+FX-%%copyG6#F_ rF^oFao-Fir6#9'FUFioF[oF>?&F_rFhqF`r>F\r6$F\r-Fhp6#-Ffr6+FX-Fir6#9%FUFaoFhrF^oF ioF[oF>-%0homalg/CokernelG6&7#F\rFapF[oF>F;F;F;F;, Q<homalg/Ext1Of2OneCocycles.mF; M7R0 I5homalg/CodimOfModulef*6%%"MG%$varG%,RingPackageG6(%#RPG%$narG%%optsG%&boundG% "kG%"EG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$ -%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F :6#;""",&F<FKF=F<@$2,&""#FKF=FK9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F:6#;""$F LF4@%-%)assignedG6#&FS6#Q-pos_of_BOUNDF1>8'&FS6#Q&BOUNDF1>F`o-%1homalg/GlobalDi mG6$9%F4@%-Fjn6#&FS6#Q0pos_of_START_ATF1>8(&FS6#Q)START_ATF1>F`p""!?(F1FKFKF11F `pF`oC%>8)-%-homalg/Ext_RG6&F`p9$FhoF4@$4-%4homalg/IsZeroModuleG6%FjpFhoF4-FD6# F`p>F`p,&F`pFKFKFKF`oF1F1F1F1, Q7homalg/CodimOfModule.mF1 M7R0 I9homalg/ConvertGeneratorsf*6%'%"MG<$%%listG%4homalg_presentationG'%3convert_ge neratorsG%*procedureG%,RingPackageG6(%#RPG%$narG%%optsG%$genG%-PRESENTATIONG%&E QUALG6#%[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C* >8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F:F,-%'RETURNG6#-F:6#&F@6#;""" ,&FBFPFCFB@$2,&""#FPFCFP9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F@6#;""$FQF:/Q3c onvert_generatorsF7-%%evalG6#9%@'-FF6$9$F)C$>8(%%trueG>8'-%@homalg/GeneratorsOf PresentationG6$FfoF:-FF6$Ffo-F(6#%"=GC$>8)Fjo>F\p-%$mapG6$%$rhsGFfoC%>Fio%&fals eG>FgpF_q>F\pFfo@$-%)assignedG6#&FX6#QEvar_to_assign_unconverted_generatorsF7-% 'assignG6$FfqF\p-Fjp6$FboF\p@'Fio7$-%$zipG6%f*6$%"aG%"bGF76$%)operatorG%&arrowG F7/-%$lhsG6#FfoFboF7F7F7&Ffo6#FP%"%G-%#opG6#&Ffo6#;FUFBFgp-Far6%f*FdrF7FgrF7Fjr F7F7F7FfoF`sF`sF7F7F7F7, Q;homalg/ConvertGenerators.mF7 M7R0 I+homalg/Extf*6''%"qG%*nonnegintG%"AG%"BG'%$varG%%listG%,RingPackageG6&%#RPG%$n arG%)optionalG%*cofunctorG6%%[oCopyright~(C)~2003-2006~by~Mohamed~Barakat.~All~ rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@ $-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""&FR>8'- %3homalg/Functor_HomG6#9&-%Ahomalg/RightSatelliteOfCofunctorG6(9$FZ9%9'FTF:F7F7 F7F7, Q-homalg/Ext.mF7 M7R0 I4homalg/Functor_Ext2f*6$%"qG%"AG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~ All~rights~reserved.G%'systemG%)rememberGF'7&f*6#%"MGF'F'F'-%+homalg/ExtG6&T$T& 9$&9"6#;""#!""F'F'6&F%F5F&9%f*6%F/%$phiG%"NGF'F'F'-%/homalg/Ext2MapG6(F3F4F5F=9 &&F76#;""%F;F'F'F<F=f*6#%"PGF'F'F'f*F?F'F'F'-%.homalg/ExtMapG6(F3F5F=FEF4FFF'F' 6&F%F3FLF5F'F'6$F%F5F'F'F'F', Q6homalg/Functor_Ext2.mF' M7R0 I5homalg/Functor_Extq2f*6$%"qG%"AG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat. ~All~rights~reserved.G%'systemG%)rememberGF'7&f*6#%"MGF'F'F'-%,homalg/ExtqG6&T$ T&9$&9"6#;""#!""F'F'6&F%F5F&9%f*6%F/%$phiG%"NGF'F'F'-%0homalg/Extq2MapG6(F3F4F5 F=9&&F76#;""%F;F'F'F<F=f*6#%"PGF'F'F'f*F?F'F'F'-%/homalg/ExtqMapG6(F3F5F=FEF4FF F'F'6&F%F3FLF5F'F'6$F%F5F'F'F'F', Q7homalg/Functor_Extq2.mF' M7R0 I3homalg/Functor_Homf*6#%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~r ights~reserved.G%'systemG%)rememberGF&7&f*6#%"MGF&F&F&-%+homalg/HomG6%9$T$&9"6# ;""#!""F&F&6$F%F2f*6%F.%$phiG%"NGF&F&F&-%.homalg/HomMapG6'F29%9&F3&F56#;""%F9F& F&F:F2f*6#%"PGF&F&F&f*F<F&F&F&-%/homalg/Hom2MapG6'F3F2FBFCFDF&F&6$FJF2F&F&F&F&F &F&F&, Q5homalg/Functor_Hom.mF& M7R0 I7homalg/Functor_LHomHomf*6%%"qG%"AG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Ba rakat.~All~rights~reserved.G%'systemG%)rememberGF(7(f*6#%"MGF(F(F(-%/homalg/LHo mHomG6'T$9$T&T(&9"6#;""#!""F(F(6(F%F5F&9%F'9&f*6%F0%$phiG%"NGF(F(F(-%2homalg/LH omHomMapG6)F4F5F?F@F6F7&F96#;""%F=F(F(F>F?f*6#%"PGF(F(F(f*FBF(F(F(-%3homalg/LHo mHom2MapG6)F4F6F5F?F@F7FHF(F(6(F%F4FNF5F'F6F(F(6&F%F5F'F@F@f*FMF(F(F(f*FBF(F(F( -%3homalg/LHomHom3MapG6)F4F6F7F5F?F@FHF(F(6(F%F4FNF5F&F6F(F(6&F%F5F&F?F(F(F(F(, Q9homalg/Functor_LHomHom.mF( M7R0 I4homalg/FunctorOnSeqf*6'%(functorG'%%homsG<$%&tableG%%listG%.chain_modulesG%$v arG%,RingPackageG60%#RPG%$narG%3functor_on_objectsG%0functor_on_mapsG%#hiG%"hG% "cG%#ciG%$_ciG%'H_homsG%0H_chain_modulesG%7F_embedding_generatorsG%"iG%/Fi_targ et_hullG6%%[oCopyright~(C)~2005-2006~by~Mohamed~Barakat.~All~rights~reserved.G% 'systemG%)rememberG6"C1>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FD%*pro cedureG-%'RETURNG6#-FD6#&FJ6#;""",&FLFenFMFL@$29#,&""%FenFMFen-FT6#-%5homalg/Fu nctorOnSeqFG6$&9$6#;""$FL&FJ6#;""#FL>8&&Fbo6#Fen>8'&Fbo6#Fio@%-FP6$9%F*>8(7#-%" $G6#;Fen-%%nopsG6#Fep>Fgp-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGF_q>8)-F^q6#F gp@%-FP6$9&F*C$>8*-F^q6#Fdr@%/Fgr,&F^rFenFenFenC$>8+7#-Fjp6#;FenFgr>8,7#-Fjp6#; ""!,&FgrFenFLFen-%&ERRORG6#%]rThe~number~of~homomorphisms~(first~argument)~shou ld~be~one~less~than~the~number~of~chain~modules~(first~argument)!GC$>F_s-Fbq6#- Feq6$Fgq-Fiq6#-F\rFir>FesF_s>8--F)FA>8.F\u>8/F\u>&F^u6#&FesFK-F[p6&&Fdr6#&F_sFK 9'/QCvar_to_assign_embedding_generatorsFA&F`uFcuFD@%4-%)assignedG6#F]v>F]v%%NUL LG/Q7F_embedding_generatorsFA-%%copyGFbv?&807#-Fjp6#;FenF^r%%trueGC'>81.Fbw>&F^ u6#&Fes6#,&FjvFLFLFen-F[p6'&Fdr6#&F_sFhwFju/F\v&F`uFfw/QBvar_to_assign_F_target _hullmoduleFAFcwFD@%4-Fav6#F`x>F`xFdv/Ffv-FhvFfx@%4-Fav6#Fbw>Fbw7"C$/Q/Fi_targe t_hullFAFbw/Fby-FhvF]y>&F[u6#&Fgp6#,$FjvFL-F_p6,&Fdr6#&F_sFiy&FepFgyF\xFju/Q)F_ sourceFA&F^u6#&FesFiy/Q>F_source_embedding_generatorsFA&F`uFdz/Q)F_targetFAFew/ Q>F_target_embedding_generatorsFAF`x/Q4F_target_hullmoduleFAFbwFD6$-Fhv6#F[u-Fh v6#F^uFAFAFAFA, Q6homalg/FunctorOnSeq.mFA M7R0 I7homalg/Functor_RHomHomf*6%%"qG%"AG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Ba rakat.~All~rights~reserved.G%'systemG%)rememberGF(7(f*6#%"MGF(F(F(-%/homalg/RHo mHomG6'T$9$T&T(&9"6#;""#!""F(F(6(F%F5F&9%F'9&f*6%F0%$phiG%"NGF(F(F(-%2homalg/RH omHomMapG6)F4F5F?F@F6F7&F96#;""%F=F(F(F>F?f*6#%"PGF(F(F(f*FBF(F(F(-%3homalg/RHo mHom2MapG6)F4F6F5F?F@F7FHF(F(6(F%F4FNF5F'F6F(F(6&F%F5F'F@F@f*FMF(F(F(f*FBF(F(F( -%3homalg/RHomHom3MapG6)F4F6F7F5F?F@FHF(F(6(F%F4FNF5F&F6F(F(6&F%F5F&F?F(F(F(F(, Q9homalg/Functor_RHomHom.mF( M7R0 I-homalg/Imagef*6&%#_AG%"NG%$varG%,RingPackageG6+%#RPG%$narG%%optsG%8USE_IMAGE_ OF_GENERATORSG%)optionalG%%NrelG%"AG%#AAG%%NgenG6%%fnCopyright~(C)~2007~by~Moha med~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C->8$-%1homalg/tablenam eG6%9!&9"6#!""8%@$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB@ %2,&""#FQFCFQ9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F@6#;""$FRF:>&FY6#Q2number_ of_optionsF7""!@$2,&FWFQF_oFB,&F]oFQFCFQ-FJ6#-%.homalg/ImageFG6#F@@%-%)assigned G6#&FY6#Q?pos_of_USE_IMAGE_OF_GENERATORSF7>8'%%trueG>Fdp%&falseG>8(&F@6#;""%FR> 8)-%6homalg/NormalizeInputG6$9%F:>8*-Faq6$9$F:@$4FdpC$>8+-%<homalg/ReducedBasis OfModuleG6&Fhq9&Q.COMPUTE_BASISF7F:@$2-&F:6#%-NumberOfRowsG6#F]r-Ffr6#Feq>FeqF] r@%-FF6$Fcq%4homalg_presentationG>8,-%@homalg/GeneratorsOfPresentationGFbq>Fbs% %NULLG-%7homalg/SubfactorModuleG6(FeqF_qFar/Q4original_generatorsF7FbsFipF:F7F7 F7F7, Q/homalg/Image.mF7 M7R0 I8homalg/Intersection.newf*6&%$_R1G%#R2G'%$varG%%listG%,RingPackageG6'%#RPG%$na rG%#R1G%#pbG%#imG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserve d.G%'systemG%)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F8% *procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%6homalg/NormalizeInputG6$9$ F8>8'&-%;homalg/PullbackPairOfMapsFG6&FR9%9&F86#FO>8(-%/homalg/ComposeG6&FXFRFh nF8-%<homalg/ReducedBasisOfModuleG6&F[oFhnQ.COMPUTE_BASISF5F8F5F5F5F5, Q:homalg/Intersection.new.mF5 M7R0 I3homalg/IsBijectivef*6'%"MG%"AG%"NG%$varG%,RingPackageG6'%#RPG%$narG%%optsG%(V ERBOSEG%"bG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C )>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6#-F5 6#&F;6#;""",&F=FLF>F=@%2,&""#FLF>FL9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F;6#; ""$FMF5>&FT6#Q2number_of_optionsF2""!@$2,&FRFLFjnF=,&""%FLF>FL-FE6#-%4homalg/Is BijectiveFG6#F;@%-%)assignedG6#&FT6#Q/pos_of_VERBOSEF2>8'%%trueG>F`p%&falseG>8( 7$-%3homalg/IsInjectiveG6'9$9%9&9'F5-%4homalg/IsSurjectiveG6&F[qF\qF]qF5@%F`p@% /Fep7$FapFapFapFep3&Fep6#FL&Fep6#FQF2F2F2F2, Q5homalg/IsBijective.mF2 M7R0 I1homalg/IsTorsionf*6%%"MG'%$varG%%listG%,RingPackageG6'%#RPG%$narG%%optsG%$Mtf G%"bG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG %)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*procedureG- %'RETURNG6#-F76#&F=6#;""",&F?FNF@F?@$2,&""#FNF@FN9#>8&-%%copyG6#-%2homalg/GetOp tionsG6$&F=6#;""$FOF7>8'-%9homalg/TorsionFreeFactorG6%9$9%F7>8(-%4homalg/IsZero ModuleG6%F\oFaoF7@%-%)assignedG6#&FV6#Q/pos_of_VERBOSEF4@%Fco%%trueGF\oFcoF4F4F 4F4, Q3homalg/IsTorsion.mF4 M7R0 I4homalg/IsZeroModulef*6%%"MG'%$varG%%listG%,RingPackageG6%%#RPG%$narG%%optsG6% %[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%) rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%' RETURNG6#-F56#&F;6#;""",&F=FLF>F=@$2,&""#FLF>FL9#>8&-%%copyG6#-%2homalg/GetOpti onsG6$&F;6#;""$FMF5@'/-%9homalg/NonZeroGeneratorsG6%9$9%F57"%%trueG-%)assignedG 6#&FT6#Q/pos_of_VERBOSEF2F^o%&falseGF2F2F2F2, Q6homalg/IsZeroModule.mF2 M7R0 I3homalg/LHom2OnSeqsf*6'%"qG%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG 6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~r eserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%type G6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%5homalg/Functor_LHom2 G6$9$9%-%5homalg/FunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q5homalg/LHom2OnSeqs.mF6 M7R0 I7homalg/LHomHom_ROnSeqsf*6&%"qG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG 6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~r eserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%type G6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%9homalg/Functor_LHomH om_RG6#9$-%5homalg/FunctorOnSeqsG6$FR&F>6#;""#F@F5F5F5F5, Q9homalg/LHomHom_ROnSeqs.mF5 M7R0 I=homalg/LongExactHomologySeqFf*6('%&alphaG<$%&tableG%%listG'%%IotaGF''%%betaGF ''%#NuGF''%$varGF)%,RingPackageG68%#RPG%$narG%#aiG%$_aiG%"mG%#iiG%$_iiG%#biG%$_ biG%#niG%$_niG%"iG%&gammaG%#giG%$_giG%%LEHSG%$haiG%$hbiG%$hgiG%$hiiG%$hniG%#diG 6#%[oCopyright~(C)~2004-2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C?>8$-% 1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FO%*procedureG-%'RETURNG6#-FO6#&FU6 #;""",&FWF`oFXFW@%-Fen6$9$F)C$>8&7#-%"$G6#;F`o-%%nopsG6#Feo>8'7#-F[p6#;""!&Fho6 #!"#C$>Fho-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGF`p>FbpFho>8(-F_p6#Fho@%-Fen 6$9%F)C$>8)7#-F[p6#;F`o-F_p6#Far>8*7#-F[p6#;FW&Fdr6#!"$C$>Fdr-F^q6#-Faq6$Fcq-Fe q6#-FhqFjr>F\sFdr@$0,&F[rF`oF`oF`o-F_p6#Fdr-%&ERRORG6#%foThe~second~argument~mu st~have~one~entry~more~than~the~first/third~argument!G@%-Fen6$9&F)C$>8+7#-F[p6# ;F`o-F_p6#Fjt>8,7#-F[p6#;Fgp&F]uFipC$>F]u-F^q6#-Faq6$Fcq-Feq6#-FhqFcu>FeuF]u@$0 F[r-F_p6#F]u-Fdt6#%jnThe~first~and~third~argument~have~different~numbers~of~ent ries!G@%-Fen6$9'F)C$>8-7#-F[p6#;F`o-F_p6#F_w>8.7#-F[p6#;FW&FbwFbsC$>Fbw-F^q6#-F aq6$Fcq-Feq6#-FhqFhw>FjwFbw@$0Fat-F_p6#Fbw-Fdt6#%\oThe~second~and~fourth~argume nt~have~different~numbers~of~entries!G>80-F(FL>81Fho>82Fbp?&8/7#-F[p6#;F`oF[r%% trueG>&Fby6#&Fey6#Fiy-%6homalg/CompleteKerSqFG6'&F_w6#,&&FbwFczF`oF`oF`o&Fjt6#& F]uFcz&F_w6#Fjz9(FO@$32,&""&F`oFXF`o9#-Fen6$&FU6#""'%'symbolG-%'assignG6$Fi[l-% %copyG6#Fby>83Fcy>84&Fbp6#;F`oFjp?&Fiy7#-F[p6#;F`o,&F[rF`oFWF`oF^z>&Fd\l6#-&.%" HG6#&Ff\lFcz6#.%"AG-%5homalg/DefectOfHomsFG6&&Feo6#,&&FhoFczF`oF`oF`o&Feo6#Fb^l F`[lFO>85&FeuFh\l?&FiyF[]lF^z>&Fd\l6#-&Fe]l6#&Ff^lFcz6#.%"BG-F]^l6&&Fjt6#,&F][l F`oF`oF`oF[[lF`[lFO>86&FgyFh\l?&FiyF[]lF^z>&Fd\l6#-&Fe]l6#&Fi_lFcz6#.%"CG-F]^l6 &&Fby6#,&FbzF`oF`oF`oF`zF`[lFO>87&F\s6#;""#Fjp?&FiyF[]lF^z>&Fd\l6#-&Fe]l6#&F\al Fcz6#.%%iotaG-%8homalg/DefectOfHomsFMapG6)F_^lFc^l&Far6#&Fdr6#,&FiyF`oF`oF`oFe_ lF[[lF`[lFO>88&FjwF^al?&FiyF[]lF^z>&Fd\l6#-&Fe]l6#&FeblFcz6#.%#nuG-F]bl6)Fe_lF[ [l&F_w6#&FbwFbblFh`lF`zF`[lFO>89&Fi_l6#;F`alFW?&Fiy7#-F[p6#;F`o,&F[rF`oFjpF`oF^ z>&Fd\l6#&%&deltaG6#&FhclFcz-%6homalg/ConnectingHomFG6*&Fd\l6#-&Fe]l6#&Fi_lFbbl Fc`l&F_w6#&Fbw6#,&FiyF`oF`alF`o&Fjt6#&F]uFbbl&Feo6#&FhoFbbl&Far6#,&&FdrFeelF`oF WF`o&Fd\l6#-&Fe]l6#,&&Ff\lFbblF`oFWF`oFi]lF`[lFO-Fa\l6#Fd\lFLFLFLFL, Q?homalg/LongExactHomologySeqF.mFL M7R0 I:homalg/NormalizeExtensionf*6&%&_homsG%)_modulesG%%_varG%,RingPackageG6*%#RPG% $narG%$varG%$extG%%homsG%(modulesG%"nG%"iG6#%enCopyright~(C)~2007~by~Barbara~Br emer.~All~rights~reserved.G6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6 $F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?@%-FC6$&F=6#FO%%listG>8&FS-% &ERRORG6#%-Wrong~input!G@&2,&""$FNF@FN9#C'>8(-%&tableGF4>8)F^o>8*,(Fjn#FN""#!"# FNF@#F?Ffo>&FaoF>&F=6#,&FgoFNF@F??(8+FNFN,&FNFNFcoFN%%trueGC$>&F]o6#,(FcoFNFNFN F_pF?-%6homalg/NormalizeInputG6$&F=6#,$F_pFfoF7>&FaoFep-Fhp6$&F=6#,&F_pFfoF?FNF 7/FjnFhnC%@$34-FC6$&F=6#FNF_o-FC6$&F=6#FfoF_o-FY6#%jqThe~extension~must~be~of~t he~form~table(homs),table(modules)~or~a~sequence~module_n,hom_n,...,hom_0,modul e_|fr-1|hrG>F]o-%%copyG6#F[r>Fao-Ffr6#F_r-FG6$-Ffr6#F]o-Ffr6#FaoF4F4F4F4, Q<homalg/NormalizeExtension.mF4 M7R0 I9homalg/TensorProduct2Mapf*6(%"LG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&% #RPG%$narG%)optionalG%(functorG6%%[oCopyright~(C)~2005-2006~by~Mohamed~Barakat. ~All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#! ""8%@$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&&F?6#;""'F Q>8'f*6#F&F6F6F6-%5homalg/TensorProductG6%T$9$&F?6#;""#FAF6F66$F%Fjn-%2homalg/F unctorMapG6)FY7#9%9&7#9'9(FSF9F6F6F6F6, Q;homalg/TensorProduct2Map.mF6 M7R0 IAhomalg/YonedaProductOfExtensionsf*6(%+_ext1_homsG%._ext1_modulesG%+_ext2_homs G%._ext2_modulesG%%_varG%,RingPackageG6O%#RPG%$narG%#naG%$argG%$varG%%optsG%%ex t1G%*ext1_homsG%-ext1_modulesG%%ext2G%*ext2_homsG%-ext2_modulesG%"nG%"mG%)ext_h omsG%,ext_modulesG%%Gn_1G%%Gn_2G%%dn_1G%#dnG%$etaG%#N_G%&dGn_1G%%iotaG%#piG%"PG %"GG%'alpha1G%%genGG%"gG%'alpha2G%,alpha2_iotaG%#G0G%#G1G%#d0G%#d1G%#M_G%"MG%$d G1G%3pullback_embeddingG%%betaG%(alpha1_G%$bijG%%bij2G%"iG6%%enCopyright~(C)~20 07~by~Barbara~Bremer.~All~rights~reserved.G%'systemG%)rememberG6"C->8$-%1homalg /tablenameG6%9!&9"6#!""8%@$-%%typeG6$Fjn%*procedureG-%'RETURNG6#-Fjn6#&F`o6#;"" ",&FboFapFcoFbo>8&,(9#FapFboFapFcoFbo?&8'F`o%%trueG@$-Ffo6$Fhp%'stringG>Fdp,&Fd pFapFboFap@%-Ffo6$&F`o6#,&FdpFapFapFap%%listG>8(Fcq-%&ERRORG6#%-Wrong~input!G@' 3-Ffo6$&F`o6#FapFfq-Ffo6$&F`o6#""#FfqC(>8*-%:homalg/NormalizeExtensionG6$-%#opG 6#FarFhq>8+-%%copyG6#&FjrFbr>8,-Fds6#&FjrFfr>8--F\s6$-F_s6#FerFhq>8.-Fds6#&F]tF br>8/-Fds6#&F]tFfr333-Ffo6$9$%&tableG-Ffo6$9%Fbu-Ffo6$9&Fbu-Ffo6$9'FbuC&>Fbs-Fd s6#Fau>Fhs-Fds6#Feu>Fct-Fds6#Fhu>Fht-Fds6#F[vFiq@$2,(FdpFapFapFapFcoFapFfp>8)-F ds6#-%2homalg/GetOptionsG6$&F`o6#;""%FbpFjn>80,&-%%nopsG6#7#-%(indicesG6#FbsFap FboFap>81,&-F[x6#7#-F_x6#FctFapFboFap@)3/Fhw""!/FbxF\yC'>82-FbuFgn>83Fay>&F`y6# F\y-%/homalg/ComposeG6&&FbsFfy&FctFfyFhqFjn>&FcyFao&FhtFao>&FcyFfy&FhsFfyF]yC6> F`y-FdsF`x>Fcy-Fds6#Fhs>84&Fhs6#,&FhwFapFboFap>85&Fhs6#,&FhwFap!"#Fap>86-Fds6#& FbsF[[l>87-Fds6#&Fbs6#Fhw>88-Fds6#F[z>89F^z>8:-%-homalg/ImageG6'-Fds6#Fd[lF^[lF hq/Q=var_to_assign_embedding_infoFgn.8;Fjn>8<-%0homalg/ImageEpiG6&Fi\lF^[lFhqFj n>8=-%9homalg/PushoutPairOfMapsG6)-Fds6#Fi[lFiz-Fds6#F_\lFc\lFhq/Q@var_to_assig n_functor_on_objectFgn.8>Fjn>8?&Fe]lFfr>8@-%(convertG6%-%@homalg/GeneratorsOfPr esentationG6$F`^lFhq%'matrixGFjn>8A-&Fjn6#%3NumberOfGeneratorsG6#Fiz>8B-Fhy6&-& Fjn6#%/CertainColumnsG6$Fe^l7#;FapF^_lF`]lFhqFjn>8C-%3homalg/ComposeMapsG6'Fe_l F^]lF^[lFhqFjn>&FcyF[[l-Fds6#F`^l>&F`yF[[l-Fds6#F``l>&FcyF]\l-Fds6#Fc\l>&F`yF]\ l-Fds6#Fb^lF[yC8>F`y-FdsFhx>Fcy-Fds6#Fht>8D&FhtFfy>8E&FhtFbr>8FF`\l>8G-Fds6#&Fc tFbr>F_\l-Fds6#Fjy>8HFaz>8IF^z>8J-Fg\l6'-Fds6#FcblF[blFhqF[]lFjn>F`]l-Fb]l6&Fbc lF[blFhqFjn>Fe]l-%:homalg/PullbackPairOfMapsG6+F[clF[^lF[bl-Fds6#FablF]clFhqF]^ l/QCvar_to_assign_embedding_generatorsFgn.8KFjn>Fe_l&Fe]lFbr>8LFc^l>8M-%1homalg /KernelEmbG6(F`^lFe_lF[clFhq/F^^l.%%dG1_GFjn>8N-%4homalg/CompleteImSqG6)FfdlFdd lF_clF^]lF[blFhqFjn>8O-%3homalg/LeftinverseG6'F\elF^elF_clFhqFjn>Fb^l-Fhy6&Fcel FfdlFhqFjn>&F`yFbrFbal>F`zFf`l>Fey-Fds6#Fe_l>F]z-%0homalg/CokernelG6$F[clFhqC'> F`yFdz>FcyFfz>Faal-Fhy6&F`\lFj[lFhqFjn>F]alF\bl?(8PFapFapFbxFipC$>&F`y6#,&FhwFa pF\glFap-Fds6#&Fct6#F\gl>&FcyF`gl&FhtFegl@%4-%)assignedG6#&F]w6#Q.pos_of_NORMAL Fgn-Fjo6#-%7homalg/PrettyExtensionG6%-%;homalg/CokernelOfExtensionG6$-Fds6#F`y- Fds6#FcyFhqFjn-Fjo6#FfhlFgnFgnFgnFgn, QChomalg/YonedaProductOfExtensions.mFgn M7R0 I-homalgZ/initf*6"F$6#%ioCopyright~(C)~2004~by~Mohamed~Barakat~and~Daniel~Rober tz.~All~rights~reserved.GF$-%,homalg/initG6#9"F$F$F$F$, Q/homalgZ/init.mF$ M7R0 IHhomalg/A2ExtensionModuleFromA2Extensionf*6&%*_ext_homsG%-_ext_modulesG%%_varG %,RingPackageG64%#RPG%$narG%%optsG%$varG%$extG%)ext_homsG%,ext_modulesG%"FG%&et aMLG%&etaLNG%"MG%"NG%"LG%#d2G%"BG%"XG%#BbG%&etaMNG6#%jnCopyright~(C)~2007-2008~ by~Barbara~Bremer.~All~rights~reserved.G6"C->8$-%1homalg/tablenameG6%9!&9"6#!"" 8%@$-%%typeG6$FA%*procedureG-%'RETURNG6#-FA6#&FG6#;""",&FIFXFJFI@%-FM6$&FG6#FY% %listG>8'Fgn-%&ERRORG6#%-Wrong~input!G@%2,&""$FXFJFX9#C%>8(-%:homalg/NormalizeE xtensionG6$&FG6#;FX,&!"#FXFJFIF[o>8)-%%copyG6#&Fgo6#FX>8*-Fcp6#&Fgo6#""#C$>Fap- Fcp6#9$>Fhp-Fcp6#9%>8+-%:homalg/FactorizeExtensionG6&FapFhpF[oFA>8,-%6homalg/No rmalizeInputG6$-%:homalg/CocycleOfExtensionG6%-%#opG6#&FhqF\qF[oFAFA>8--F_r6$-F br6%-Fer6#&FhqFfpF[oFAFA>8.&Fgr6#""&>80&FgrFfp>8/&F`sFfp-%9homalg/A2ExtensionMo duleG6)FbsF]rFgsFirFjsF[oFAF>F>F>F>, QJhomalg/A2ExtensionModuleFromA2Extension.mF> M7R0 IChomalg/SyzygiesGeneratorsOfColumnsf*6&%#M1G%#M2G'%$varG%%listG%,RingPackageG6 &%#RPG%$narG%$IM1G%$IM2G6%%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~ reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typ eG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8&-%6homalg/NormalizeInp utG6$-%2homalg/InvolutionG6%9$9&F7F7@%/9%7">8'Fgn>Fin-FS6$-FV6%FfnFYF7F7-FV6%-F S6$-%@homalg/SyzygiesGeneratorsOfRowsG6&FQFinFYF7F7FYF7F4F4F4F4, QEhomalg/SyzygiesGeneratorsOfColumns.mF4 M7R0 I9homalg/ConvertToListListf*6&%"rG%"cG%"LG%,RingPackageG6$%#RPG%$narG6#%fnCopyr ight~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-%1homalg/tablena meG6%9!&9"6#!""8%@$-%%typeG6$F1%*procedureG-%'RETURNG6#-F16#&F76#;""",&F9FHF:F9 -%$mapG6$f*6#%"iGF.6$%)operatorG%&arrowGF.&T$6#;,&*&,&9$FHF9FHFHT&FHFHFHFH*&FZF HFenFHF.F.6&F'9&F&9%7#-%"$G6#;FHFZF.F.F.F., Q;homalg/ConvertToListList.mF. M7R0 I8homalg/CheckHomsOfCoseqf*6%'%*cocomplexG%%listG'%$varGF'%,RingPackageG6&%#RPG %$narG%"lG%"jG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G 6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6# -F56#&F;6#;""",&F=FLF>F=@$/9$7"-FE6#FQ>8&-%%nopsG6#FP7#-%"$G6#;""!,&-%%iquoG6$, &FUFLF=FL""#FLF=FL-%$mapG6$f*6#%"iGF26$%)operatorG%&arrowGF2-%)CheckHomG6%-%$se qG6$&T$6#,&FPF^oT%FL/Fbp;FL""$T(T)F2F26*F&FPF/8'F)9%F,F5%"%GF2F2F2F2, Q:homalg/CheckHomsOfCoseq.mF2 M7R0 I6homalg/CofunctorOnSeqf*6'%*cofunctorG'%%homsG<$%&tableG%%listG%.chain_modules G%$varG%,RingPackageG60%#RPG%$narG%5cofunctor_on_objectsG%2cofunctor_on_mapsG%# hiG%"hG%"cG%#ciG%$_ciG%'H_homsG%0H_chain_modulesG%7F_embedding_generatorsG%"iG% /Fi_target_hullG6%%[oCopyright~(C)~2004-2006~by~Mohamed~Barakat.~All~rights~res erved.G%'systemG%)rememberG6"C1>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6 $FD%*procedureG-%'RETURNG6#-FD6#&FJ6#;""",&FLFenFMFL@$29#,&""%FenFMFen-FT6#-%7h omalg/CofunctorOnSeqFG6$&9$6#;""$FL&FJ6#;""#FL>8&&Fbo6#Fen>8'&Fbo6#Fio@%-FP6$9% F*>8(7#-%"$G6#;Fen-%%nopsG6#Fep>Fgp-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGF_q >8)-F^q6#Fgp@%-FP6$9&F*C$>8*-F^q6#Fdr@%/Fgr,&F^rFenFenFenC$>8+7#-Fjp6#;FenFgr>8 ,7#-Fjp6#;""!,&FgrFenFLFen-%&ERRORG6#%]rThe~number~of~homomorphisms~(first~argu ment)~should~be~one~less~than~the~number~of~chain~modules~(first~argument)!GC$> F_s-Fbq6#-Feq6$Fgq-Fiq6#-F\rFir>FesF_s>8--F)FA>8.F\u>8/F\u>&F^u6#&FesF]p-F[p6&& Fdr6#&F_sF]p9'/QCvar_to_assign_embedding_generatorsFA&F`uFcuFD@%4-%)assignedG6# F]v>F]v%%NULLG/Q7F_embedding_generatorsFA-%%copyGFbv?&807#-Fjp6#;FenF^r%%trueGC '>81.Fbw>&F^u6#&Fes6#,&FjvFenFenFen-F[p6'&Fdr6#&F_sFhwFju/F\v&F`uFfw/QBvar_to_a ssign_F_target_hullmoduleFAFcwFD@%4-Fav6#F`x>F`xFdv/Ffv-FhvFfx@%4-Fav6#Fbw>Fbw7 "C$/Q/Fi_target_hullFAFbw/Fby-FhvF]y>&F[u6#,&&Fgp6#FjvFenFLFen-F_p6,F\x&Fep6#Fi y&Fdr6#&F_sFjyFju/Q)F_sourceFA&F^u6#&FesFjy/Q>F_source_embedding_generatorsFA&F `uFez/Q)F_targetFAFew/Q>F_target_embedding_generatorsFAF`x/Q4F_target_hullmodul eFAFbwFD6$-Fhv6#F[u-Fhv6#F^uFAFAFAFA, Q8homalg/CofunctorOnSeq.mFA M7R0 I/homalg/Ext2Mapf*6)%"qG%"LG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%#RPG%$ narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights ~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%ty peG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""(FR>8'f*6#F'F 7F7F7-%+homalg/ExtG6&T$T&9$&F@6#;""#FBF7F76&F%F\oF&9%-%2homalg/FunctorMapG6)FZ7 #9&9'7#9(9)FTF:F7F7F7F7, Q1homalg/Ext2Map.mF7 M7R0 I/homalg/Hom2Mapf*6(%"LG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%#RPG%$narG %)optionalG%(functorG6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~rights~res erved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6 $F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&&F?6#;""'FQ>8'f*6#F&F6F6F 6-%+homalg/HomG6%T$9$&F?6#;""#FAF6F66$F%Fjn-%2homalg/FunctorMapG6)FY7#9%9&7#9'9 (FSF9F6F6F6F6, Q1homalg/Hom2Map.mF6 M7R0 I.homalg/HomMapf*6(%"MG%$phiG%"NG%"LG'%$varG%%listG%,RingPackageG6&%#RPG%$narG% )optionalG%*cofunctorG6%%[oCopyright~(C)~2003-2005~by~Mohamed~Barakat.~All~righ ts~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%% typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&&F?6#;""'FQ>8'f*6#F %F6F6F6-%+homalg/HomG6%9$T$&F?6#;""#FAF6F66$F(9'-%2homalg/FunctorMapG6)FY7#Fin9 %7#9&9(FSF9F6F6F6F6, Q0homalg/HomMap.mF6 M7R0 I4homalg/Intersectionf*6&%$_R1G%$_R2G'%$varG%%listG%,RingPackageG6+%#RPG%$narG% #R1G%#R2G%"nG%#R0G%$IR0G%"zG%"ZG6%%^pCopyright~(C)~2003-2007~by~Mohamed~Barakat ~and~Daniel~Robertz.~All~rights~reserved.G%'systemG%)rememberG6"C->8$-%1homalg/ tablenameG6%9!&9"6#!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&F DFSFEFD>8&-%6homalg/NormalizeInputG6$9$F<>8'-FX6$9%F<>8(-&F<6#%3NumberOfGenerat orsG6#FV>8)-%$mapG6$%#opG7$-Fdo6$f*6#%"aGF96$%)operatorG%&arrowGF9-Fdo6$Ffo7$FZ FZF9F9F9FV-Fdo6$f*F[pF9F]pF9-Fdo6$Ffo7$FZ-%"$G6$""!T#F9F96$F0F[oFfn>8*-%5homalg /BasisOfModuleG6&Fbo9&/Q3POSITION_OVER_TERMF9%%trueGF<>8+-&F<6#%%ZeroG6#F[o>8,- Fdo6$f*F[pF9F]pF9@$/&FZ6#;FST%F]q&FZ6#;,&FirFSFSFSFDF9F96&F3FiqF0F[oF`q@$/F`r7" >F`r7#Fiq-%<homalg/ReducedBasisOfModuleG6%F`rFdqF<F9F9F9F9, Q6homalg/Intersection.mF9 M7R0 I.homalg/Lambekf*6-%'alpha1G%"AG%'alpha2G%#_AG%$phiG%&beta1G%"BG%&beta2G%#_BG'% $varG%%listG%,RingPackageG6)%#RPG%$narG%%optsG%&KerSqG%%ImSqG%$lamG%(ia1CphiG6# %[oCopyright~(C)~2003-2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$-%1h omalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F?%*procedureG-%'RETURNG6#-F?6#&FE6#; """,&FGFVFHFG@$2,&"#5FVFHFV9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FE6#;"#6FWF?> 8'-%/homalg/KerOfSqG6+9%9&9'9(9*9+9,9-F?>8(-%.homalg/ImOfSqG6)9$F[p9)F\pF_p8*F? @$-%)assignedG6#&Fhn6#Q@var_to_assign_functor_on_objectF<C$>8)7$FdoFap-%'assign G6$F\qFaq6$-%3homalg/OnMorphismsG6(FdoF[pFapFgpF_pF?-Fhq6)FdoF[pFapFgpF_pQ(inve rseF<F?F<F<F<F<, Q0homalg/Lambek.mF< M7R0 I9homalg/NatTrIdToHomHom_Rf*6%%"MG'%$varG%%listG%,RingPackageG6)%#RPG%$narG%%op tsG%#HMG%%iotaG%$HHMG%$basG6%%[oCopyright~(C)~2003-2004~by~Mohamed~Barakat.~All ~rights~reserved.G%'systemG%)rememberG6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@$2,&""#FPFBFP9#> 8&-%%copyG6#-%2homalg/GetOptionsG6$&F?6#;""$FQF9>8'-%-homalg/Hom_RG6&9$9%Q5NORM ALIZE_GENERATORSF6F9>8(-%2homalg/InvolutionG6%-%@homalg/GeneratorsOfPresentatio nG6$F^oF9FcoF9>8)-F`o6&F^oFcoFdoF9>8*-F[p6$F^pF9@$-%)assignedG6#&FX6#Q@var_to_a ssign_functor_on_objectF6-%'assignG6$FipF^p@%-%4homalg/IsZeroModuleG6%F^pFcoF9- %/homalg/ZeroMapG6&FboF^pFcoF9-%4homalg/RightDivideFG6&FfoFbpFcoF9F6F6F6F6, Q;homalg/NatTrIdToHomHom_R.mF6 M7R0 IBhomalg/NatTrIdToTorsionFreeFactorf*6%%"MG%$varG%,RingPackageG6$%#RPG%$narG6%% fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememb erG6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F2%*procedureG-%'RETURN G6#-F26#&F86#;""",&F:FIF;F:-%<homalg/TorsionFreeFactorEpiG6#F8F/F/F/F/, QDhomalg/NatTrIdToTorsionFreeFactor.mF/ M7R0 I7homalg/PrettyExtensionf*6&%%homsG%(modulesG%$varG%,RingPackageG6&%#RPG%$narG% "nG%"iG6#%enCopyright~(C)~2007~by~Barbara~Bremer.~All~rights~reserved.G6"C&>8$- %1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F9 6#;""",&F;FJF<F;>8&,&-%%nopsG6#7#-%(indicesG6#9$FJF;FJ6$-%#opG6#-%$mapG6$f*6#F- F06$%)operatorG%&arrowGF06$&T$6#,&T%FJFVF;-%%copyG6#&T(F`oF0F06(F&9%F,FMF%FV7#- %"$G6#;""!FM&FioF:F0F0F0F0, Q9homalg/PrettyExtension.mF0 M7R0 I9homalg/ShortenResolutionf*6&'%"qG<$%)infinityG%(integerG%$resG'%$varG%%listG% ,RingPackageG6-%#RPG%$narG%"nG%"mG%#RmG%%Rm_1G%#SmG%#pmG%%Rm_2G%%pm_3G%%sresG6% %fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)remem berG6"C,>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FB%*procedureG-%'RETUR NG6#-FB6#&FH6#;""",&FJFYFKFJ>8'-%%nopsG6#9%@$5/9$""!2Ffn""#-FRFin>8&F^o>8(&Fjn6 #FY>8)&Fjn6#Fao?(F?FYFYF?30FdoF_o2FYFfnC&>8*-%4homalg/RightinverseG6%Ffo9&FB@%0 Fcp%%FAILGC$>Ffo-&FB6#%/UnionOfColumnsG6$FjoFcp@$2FaoFfnC&>8+-&FB6#%3NumberOfGe neratorsG6#Fcp>8,&Fjn6#,&FfnFJFaoFY>8--Fhq6#F]r>Fjo-&FB6#%,UnionOfRowsG6$F]r7#- %"$G6$7#-F]s6$-&FB6#%%ZeroGF?FbrFfq[>Ffn,&FfnFYFJFY>Fdo,&FdoFYFJFY@%F`p>8.7%Ffo Fjo-%#opG6#&Fjn6#;F`rFJ>F]t7#Ffo-%$mapG6$&FB6#%'matrixGF]tF?F?F?F?, Q;homalg/ShortenResolution.mF? M7R0 I-homalgS/initf*6"F$6#%ioCopyright~(C)~2004~by~Mohamed~Barakat~and~Daniel~Rober tz.~All~rights~reserved.GF$-%,homalg/initG6#9"F$F$F$F$, Q/homalgS/init.mF$ M7R0 IAhomalg/StablyFreePresentationFFRf*6%%"PG%$varG%,RingPackageG6&%#RPG%$narG%"pG %"sG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$-%1 homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F2%*procedureG-%'RETURNG6#-F26#&F86# ;""",&F:FIF;F:>8&-%@homalg/InjectivePresentationFFRG6#F8@$0FL%%FAILGC$>8'-%4hom alg/RightinverseG6%-%6homalg/NormalizeInputG6$FLF29%F2@$0FUFR-FB6#-%%copyG6#FLF RF/F/F/F/, QChomalg/StablyFreePresentationFFR.mF/ M7R0 I2homalg/BasisCoefff*6%%#_MG'%$varG%%listG%,RingPackageG6(%#RPG%$narG%"MG%"mG%% tvarG%#IMG6%%ioCopyright~(C)~2004~by~Mohamed~Barakat~and~Daniel~Robertz.~All~ri ghts~reserved.G%'systemG%)rememberG6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$- %%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%6homalg/Normali zeInputG6$9$F8>8'-&F86#%-NumberOfRowsG6#FR>8(-%7homalg/StdBasisVectorsG6$FXF8>F R-&F86#%'AddRhsG6%FR9%Fin>8)-%5homalg/BasisOfModuleG6%FRFcoF8@$32,&""#FOFAFO9#- FD6$&F>6#""$%'symbolGC%-&F86#%(GetSideG6&%$rhsGFeoFcoFin-FT6$%"%GF8-%'assignG6$ Fap-&F86#%'matrixG6#F^q-Fgp6&%$lhsGFeoFcoFinF5F5F5F5, Q4homalg/BasisCoeff.mF5 M7R0 I7homalg/CompleteImSqInvf*6)%#A_G%(_alpha1G%%_phiG%'_beta1G%"BG%$varG%,RingPack ageG6,%#RPG%$narG%$phiG%*apply_phiG%*NORMALIZEG%*normalizeG%'alpha1G%&beta1G%(i a1CphiG%%psi_G6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G 6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6# -F<6#&FB6#;""",&FDFSFEFD@$529#,&""&FSFEFS-FH6$&FB6#FZFJ-FL6#-%8homalg/CompleteI mSqInvFG6#FB@%-FH6$9&FJ>8'FaoC$>8&-%6homalg/NormalizeInputG6$FaoF<>Fcof*6#%"aGF 96$%)operatorG%&arrowGF9-%/homalg/ComposeG6&9$T#T&T'F9F96(F/FfoF*9)F-F<@%32,&"" 'FSFEFSFX-FH6$&FB6#""(FJC&>8)Faq>8*9%>8+-%$mapG6$Ffq9'>8(%%trueGC%>Fhq-Fho6$Fiq F<>F[rF_r>Far%&falseG>8,-Fco6#Fhq@$Far>F[s-F]r6$Ffq-%%copyG6#F[s>8--%3homalg/Ri ghtDivideG6'F[rF[s9(FipF<-%:homalg/ReduceHomomorphismG6&FfsFdpFipF<F9F9F9F9, Q9homalg/CompleteImSqInv.mF9 M7R0 I4homalg/CompleteImSqf*6)%(_alpha1G%%_phiG%#B_G%'_beta1G%"BG%$varG%,RingPackage G6,%#RPG%$narG%$phiG%*apply_phiG%*normalizeG%*NORMALIZEG%'alpha1G%&beta1G%(ia1C phiG%$psiG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C+ >8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6 #&FB6#;""",&FDFSFEFD@$529#,&""&FSFEFS-FH6$&FB6#FZFJ-FL6#-%5homalg/CompleteImSqF G6#FB@%-FH6$9%FJC$>8'Fao/Q*apply_phiF9-%%evalG6#FdoC$>8&-%6homalg/NormalizeInpu tG6$FaoF<>Fdof*6#%"aGF96$%)operatorG%&arrowGF9-%/homalg/ComposeG6&9$T#T&T'F9F96 (F/F\pF*9)F-F<@%32,&""'FSFEFSFX-FH6$&FB6#""(FJC'>8(Fgq/Q*normalizeF9-Fho6#F\r/Q '_beta1F9-%%copyG6#9'>8+-%$mapG6$F\rFfr@%F_oC$>8*Fjp>8)%%trueGC$>F_s-Fjr6$F\rFj p>Fas%&falseGC%>FhrFfr>F_s-F^p6$FjpF<>FasFhs>8,-Fdo6#F_s@$Fas>F`t-Fjr6$F\r-Fdr6 #F`t>8--%3homalg/RightDivideG6'F`tFhr9(F_qF<-%:homalg/ReduceHomomorphismG6&Fjt9 &F_qF<F9F9F9F9, Q6homalg/CompleteImSq.mF9 M7R0 I3homalg/CompleteSeqf*6(%%rhoAG%&gammaG%%rhoBG%#PBG%$varG%,RingPackageG6,%#RPG% $narG%#aiG%#AiG%"mG%#biG%#BiG%#giG%$seqG%"iG6%%fnCopyright~(C)~2005~by~Mohamed~ Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C0>8$-%1homalg/tablenameG6% 9!&9"6#!""8%@$-%%typeG6$F=%*procedureG-%'RETURNG6#-F=6#&FC6#;""",&FEFTFFFE@$29# ,&""&FTFFFT-FM6#-%4homalg/CompleteSeqFG6#FC@%-FI6$9$%%listG>8&7#-%"$G6#;FT-%%no psG6#F]o>F`o-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGFho>8(-Fgo6#F`o@%-FI6$9&F^ o>8)7#-Fco6#;FT-Fgo6#F]q>F_q-F[p6#-F^p6$F`p-Fbp6#-FepFeq@$0Fgp-Fgo6#F_q-%&ERROR G6#%_oThe~number~of~entries~of~the~first~and~third~argument~must~coincide!G@%-F I6$9'F^o>8*7#-Fco6#;FT-Fgo6#Fir>F[s-F[p6#-F^p6$F`p-Fbp6#-FepFas>8+F[s@$0,&FgpFT FTFT-Fgo6#F[s-Fcr6#%`oThe~fourth~argument~must~have~one~entry~more~than~the~thi rd~argument!G>8,-%&tableGF:>&Fet6#&F[t6#""!-%%copyG6#9%?&8-7#-Fco6#;F]u,&FgpFTF EFT%%trueG>&Fet6#Fcu-%4homalg/CompleteImSqG6)-F_u6#&F]o6#&F`o6#,&FcuFTFTFT-F_u6 #&Fet6#,&&F[tFevFTFEFT&Fir6#&F[s6#,&FcuFT""#FT-F_u6#&F]q6#&F_qFev&Fir6#,&F_wFTF EFT9(F=-F_u6#FetF:F:F:F:, Q5homalg/CompleteSeq.mF: M7R0 I3homalg/DerMinusLogf*6%%"fG%$varG%,RingPackageG6&%#RPG%$narG%#LJG%"SG6#%fnCopy right~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$-%1homalg/tablen ameG6%9!&9"6#!""8%@$-%%typeG6$F2%*procedureG-%'RETURNG6#-F26#&F86#;""",&F:FIF;F :>8&7$9$-%#opG6#-%$mapG6$f*6#%"aGF/6$%)operatorG%&arrowGF/-%%diffG6$T$FNF/F/6$F %FN9%>8'-%2homalg/SyzygiesOpG6%FLFjnF2>F\o-%6homalg/NormalizeInputG6$F\oF2>F\o- &F26#%/CertainColumnsG6$F\o7#;""#F:-%-homalg/ImageG6%F\oFjnF2F/F/F/F/, Q5homalg/DerMinusLog.mF/ M7R0 I.homalg/ExtMapf*6)%"qG%"MG%$phiG%"NG%"LG'%$varG%%listG%,RingPackageG6&%#RPG%$n arG%)optionalG%*cofunctorG6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~right s~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%t ypeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""(FR>8'f*6#F& F7F7F7-%+homalg/ExtG6&T$9$T&&F@6#;""#FBF7F76&F%F[oF)9(-%2homalg/FunctorMapG6)FZ 7#9%9&7#9'9)FTF:F7F7F7F7, Q0homalg/ExtMap.mF7 M7R0 I4homalg/FirstNonZerof*6#'%"LG%%listG6'%#RPG%$narG%"lG%"zG%"iG6#%fnCopyright~(C )~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8$-%1homalg/tablenameG6%9! &9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F96#;""",&F;FJF<F;@%32,&F JFJF<FJ9#-F?6$&F96#""#%'posintG>8&FS>FX-%%nopsG6#9$>8'-&F36#%%ZeroGF0?&8(7#-%"$ G6#;FJFX%%trueG@$0&Fgn6#F_oFin-FCFio""!F0F0F0F0, Q6homalg/FirstNonZero.mF0 M7R0 I8homalg/Functor_LHomHom3f*6%%"qG%"AG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~B arakat.~All~rights~reserved.G%'systemG%)rememberGF(7(f*6#%"MGF(F(F(-%/homalg/LH omHomG6'T$T&T(9$&9"6#;""#!""F(F(6(F%F7F&9%F'9&f*6%F0%$phiG%"NGF(F(F(-%3homalg/L HomHom3MapG6)F4F5F6F7F?F@&F96#;""%F=F(F(F>F?f*6#%"PGF(F(F(f*FBF(F(F(-%2homalg/L HomHomMapG6)F4F7F?F@F5F6FHF(F(6(F%F4F'F5FNF7F(F(6&F%F7F'F@F@f*FMF(F(F(f*FBF(F(F (-%3homalg/LHomHom2MapG6)F4F5F7F?F@F6FHF(F(6(F%F4F&F5FNF7F(F(6&F%F7F&F?F(F(F(F(, Q:homalg/Functor_LHomHom3.mF( M7R0 I8homalg/Functor_RHomHom2f*6%%"qG%"AG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~B arakat.~All~rights~reserved.G%'systemG%)rememberGF(7(f*6#%"MGF(F(F(-%/homalg/RH omHomG6'T$T&9$T(&9"6#;""#!""F(F(6(F%F6F&9%F'9&f*6%F0%$phiG%"NGF(F(F(-%3homalg/R HomHom2MapG6)F4F5F6F?F@F7&F96#;""%F=F(F(F>F?f*6#%"PGF(F(F(f*FBF(F(F(-%2homalg/R HomHomMapG6)F4F6F?F@F5F7FHF(F(6(F%F4FNF6F'F5F(F(6&F%F6F'F@F@f*FMF(F(F(f*FBF(F(F (-%3homalg/RHomHom3MapG6)F4F5F7F6F?F@FHF(F(6(F%F4F&F5FNF6F(F(6&F%F6F&F?F(F(F(F(, Q:homalg/Functor_RHomHom2.mF( M7R0 I5homalg/Functor_Torq2f*6$%"qG%"AG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat. ~All~rights~reserved.G%'systemG%)rememberGF'7&f*6#%"MGF'F'F'-%,homalg/TorqG6&T$ T&9$&9"6#;""#!""F'F'6&F%F5F&9%f*6%F/%$phiG%"NGF'F'F'-%0homalg/Torq2MapG6(F3F4F5 F=9&&F76#;""%F;F'F'F<F=f*6#%"PGF'F'F'f*F?F'F'F'-%/homalg/TorqMapG6(F3F5F=FEF4FF F'F'6&F%F3FLF5F'F'6$F%F5F'F'F'F', Q7homalg/Functor_Torq2.mF' M7R0 I@homalg/GeneratorsOfPresentationf*6$'%"MG%4homalg_presentationG%,RingPackageG6 $%#RPG%$narG6#%[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserve d.G6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F1%*procedureG-%'RETURN G6#-F16#&F76#;""",&F9FHF:F9@%32,&FHFHF:FH9#-F=6$&F76#""#%'stringG&9$6#FH-%6homa lg/NormalizeInputG6%FVQ-PresentationF.F1F.F.F.F., QBhomalg/GeneratorsOfPresentation.mF. M7R0 I2homalg/HomHom2Mapf*6)%"AG%"MG%$phiG%"NG%"BG'%$varG%%listG%,RingPackageG6&%#RP G%$narG%)optionalG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~r ights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$ -%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""(FR>8'f* 6#F&F7F7F7-%.homalg/HomHomG6&T$9$T&&F@6#;""#FBF7F76&F%F[oF)9(-%2homalg/FunctorM apG6)FZ7#9%9&7#9'9)FTF:F7F7F7F7, Q4homalg/HomHom2Map.mF7 M7R0 I5homalg/HomHom2OnSeqsf*6'%"AG%"BG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackag eG6%%#RPG%$narG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~righ ts~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%% typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%7homalg/Functor_H omHom2G6$9$9%-%7homalg/CofunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q7homalg/HomHom2OnSeqs.mF6 M7R0 I5homalg/HomHom3OnSeqsf*6'%"AG%"BG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackag eG6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights ~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%ty peG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%7homalg/Functor_Hom Hom3G6$9$9%-%5homalg/FunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q7homalg/HomHom3OnSeqs.mF6 M7R0 I8homalg/HomologyModulesFf*6%'%(complexG<$%&tableG%%listG'%$varGF)%,RingPackage G6+%#RPG%$narG%#aiG%"lG%%stepG%$haiG%"jG%&homolG%"iG6#%fnCopyright~(C)~2004~by~ Mohamed~Barakat.~All~rights~reserved.G6"C)>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSFEFD@$/9$7"-FL6#FX@%- FH6$FWF)>8&7#-%"$G6#;FS-%%nopsG6#FW>Fin-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%eval GFao>8'-F`o6#Fin>8)&Fin6#;FS!"#@%-FH6$FWF(C%>8+-F(F9?&8,7#-F\o6#;FS,&F`pFSFDFS% %trueG>&F^q6#&.%"HG6#&Fdp6#Faq-%5homalg/DefectOfHomsFG6&&FW6#&Fin6#,&FaqFSFSFS& FW6#&FinF`r9%F<-%%copyG6#F^q-Fgo6$f*6#F6F96$%)operatorG%&arrowGF9-Fbr6&&T$6#&T% 6#,&FWFSFSFS&Fjs6#&F]tFaoT(T)F9F96*F&FWF0FinF+F\sF.F<FdpF9F9F9F9, Q:homalg/HomologyModulesF.mF9 M7R0 I+homalg/Homf*6&%#_MG%#_NG'%$varG%%listG%,RingPackageG68%#RPG%$narG%$idNG%$idMG %"MG%"NG%"lG%%optsG%)optionalG%$posG%4readjust_generatorsG%"oG%"pG%#l0G%#l1G%$_ l0G%%HP0NG%%HP1NG%&alphaG%$kerG%5embedding_generatorsG%>express_generators_abst ractlyG6#%[oCopyright~(C)~2003-2007~by~Mohamed~Barakat.~All~rights~reserved.G6" C7>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FG%*procedureG-%'RETURNG6#-F G6#&FM6#;""",&FOFhnFPFO@$-FS6$&FM6#Fhn%'stringGC$@(/F]oQ;RETURN_morphism_on_obj ectsFDC$>8&-%3homalg/IdentityMapG6%9%9&FG-FW6#f*6#%$phiGFD6$%)operatorG%&arrowG FD-%2homalg/InvolutionG6%-%4homalg/KroneckerMatG6&9$T#T&T'F\qF]qFDFD6(F.FfoF(F[ pF,FG/F]oQCRETURN_proc_to_readjust_generatorsFDC%>8)-%6homalg/NormalizeInputG6$ FjoFG>8*-&FG6#%3NumberOfGeneratorsG6#Fcq-FW6#f*6#%"cG6#%"bGFDFDC$>FG-%$mapG6$%# opG-Feq6$-Fep6%7#FjpT$T%Fas-&Fas6#%'matrixG6#-Fhr6$f*6#%"aGFDFapFD&F[q6#;,&*&Fj pFhnFasFhnFhnFhnFhn*&FasFhn,&FjpFhnFhnFhnFhnFDFD6&FdrFGF2F]q7#-%"$G6#;""!,&*&-% %nopsG6#FGFhnF]qFOFhnFOFhnFDFD6(F(F[pF,FGF2Fhq/F]oQ1RETURN_co_contraFD-FW6#Q.co ntravariantFD-FW6#%%NULLG@$-FS6$&FM6#""#F_oC$@(/F[vFcoC$>8'-Fho6%FjpF[pFG-FW6#f *F_pFDFapFD-Fhp6&F[qFjpF\qF]qFDFD6(F/FcvF(F[pF,FG/F[vF`qC%>8(-Feq6$FjpFG>Fhq-Fj q6#F_w-FW6#f*FarFcrFDFDC$>FGFgr-Fcs6#-Fhr6$f*FjsFDFapFD&F[q6#;,&*(-F]u6#F[qFhnF asFOFjpFhnFhnFhnFhn*(FdxFhnFasFOFbtFhnFDFDFct7#-Fft6#;Fit,&F]qFhnFOFhnFDFDF_u/F [vFau-FW6#Q*covariantFDFeu@$2,&""$FhnFPFhn9#>8+-%%copyG6#-%2homalg/GetOptionsG6 $&FM6#;""%FinFG>8,F]z>8-Fgu@%4-%)assignedG6#&Ffy6#Q<pos_of_NORMALIZE_GENERATORS FDC$>8.f*FarFcrFDFDC$>FGFgr-Fcs6$-Fhr6$f*FjsFDFapFDF\tFDFD6&FdrFGF;F]qFdtFasFDF D6(F(F[pF,FGF;83>8/Fdy>Fdz/FjzFgu@$-Fhz6#&Ffy6#Qenpos_of_var_to_assign_proc_to_ express_generators_abstractlyFD>Fdz6$Fdz/Fb\lFgu@$07#Fdz7">Fbz-Fjr6#-%'subsopG6 $Fdz7#Fbz>F_wF`w>FcqFdq>81Fcw>82-&FG6#%-NumberOfRowsGFdw>Fj[lFiq>84-%/homalg/Di agMatG6$-Fft6$FcqFf]lFG>85-Fa^l6$-Fft6$FcqFh]lFG>86-Fep6%-Fhp6&F_w-Fho6%Fj[lF[p FGF[pFGF[pFG>87-%.homalg/KernelG6(F_^lF\_lFf^lF[pFbzFG@$F`\lC%>88-%;homalg/Embe dInFactorModuleG6$Fd_lFG>89f*FjsFDFapFD&-Feq6$-%3homalg/RightDivideG6'7#-Fhr6$F jr-Feq6$-Fep6%7#-Fhr6$Fjr-Feq6$FjpF[qF\qF[qF[qF]qT)F\qF[qF[qF^oFDFD6*F,FGF(F[pF @F[`lF<F_^l-%'assignG6$&Ffy6#QTvar_to_assign_proc_to_express_generators_abstrac tlyFDF``l@%Ffz-%9homalg/ConvertGeneratorsG6&Fd_lF_[lFbzFGFd_lFDFDFDFD, Q-homalg/Hom.mFD M7R0 I.homalg/ImOfSqf*6(%(_alpha1G%%_phiG%&beta1G%"BG'%$varG%%listG%,RingPackageG6(% #RPG%$narG%'alpha1G%$phiG%)iphiIib1G%(ia1CphiG6#%[oCopyright~(C)~2003-2004~by~M ohamed~Barakat.~All~rights~reserved.G6"C*>8$-%1homalg/tablenameG6%9!&9"6#!""8%@ $-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%6homalg/Norma lizeInputG6$9$F9>8'-FU6$9%F9>8(-%4homalg/IntersectionG6&FY9&9(F9>8)-%4homalg/Su mRelationsG6&-%/homalg/ComposeG6&FSFYF]oF99'F]oF9@$32,&""&FPFBFP9#-FE6$&F?6#""' %'symbolG-%'assignG6$F_pF_o-%7homalg/SubfactorModuleG6&FhnF_oF]oF9F6F6F6F6, Q0homalg/ImOfSq.mF6 M7R0 I8homalg/IsCommutativeSqFf*6(%(_alpha1G%%_phiG%%_psiG%'_beta1G'%$varG%%listG%,R ingPackageG6)%#RPG%$narG%'alpha1G%$phiG%$psiG%&beta1G%)optionalG6#%fnCopyright~ (C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C*>8$-%1homalg/tablenameG6% 9!&9"6#!""8%@$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&-% 6homalg/NormalizeInputG6$9$F:>8'-FV6$9%F:>8)-FV6$9'F:>8(-FV6$9&F:>8*&F@6#;""'FR -%2homalg/EqualMapsFG6'-%/homalg/ComposeG6&FTFZ9(F:-F\p6&F^oFinF^pF:F^pFcoF:F7F 7F7F7, Q:homalg/IsCommutativeSqF.mF7 M7R0 I2homalg/IsExactSeqf*6%'%(complexG%%listG'%$varGF'%,RingPackageG6'%#RPG%$narG%% cplxG%%defsG%+check_defsG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights ~reserved.G6"C*>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*procedureG- %'RETURNG6#-F66#&F<6#;""",&F>FMF?F>>8&-%1homalg/IsComplexG6&9$9%Q(VERBOSEF3F6@% /7#FP7#%%trueG>FP/Q(complexF3Fen@%32,&""#FMF?FM9#-FB6$&F<6#FN%'stringGFP%&false G>8'-%7homalg/HomologyModulesG6%FTFUF6>Ffo-%$mapG6'%4homalg/IsZeroModuleGFfoFUF VF6>8(-%&evalbG6#/-%(convertG6$Ffo%$setG<#Fen@'F`pFenFjn@%F`p6$FP/Q)homologyF3F en6$FP/F^qFfoFdoF3F3F3F3, Q4homalg/IsExactSeq.mF3 M7R0 I8homalg/IsShortExactSeqFf*6&%&alphaG%%betaG'%$varG%%listG%,RingPackageG6-%#RPG %$narG%$cmpG%%cmpsG%$kerG%$defG%&cokerG%%defsG%+check_cmpsG%+check_defsG%$resG6 #%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C->8$-%1homal g/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""", &FDFSFEFD>8&-%/homalg/ComposeG6&9$9%9&F<>8'7#-%1homalg/IsZeroMapG6&FVFfnQ(VERBO SEF9F<>8(-%/homalg/KernelFG6%FZFfnF<>8)-%5homalg/DefectOfHomsFGFY>8*-%1homalg/C okernelFG6%FenFfnF<>8+-%$mapG6'%4homalg/IsZeroModuleG7%F_oFdoFhoFfnF]oF<>8,-%&e valbG6#/-%(convertG6$Fhn%$setG<#%%trueG>8--Ffp6#/-Fjp6$F]pF\qF]q@'3FdpF`qF^q32, &""$FSFEFS9#-FH6$&FB6#FT%'stringGC&>8.%%NULLG@%Fdp>Fdr6$Fdr/Q%cmpsF9F^q>Fdr6$Fd r/FjrFhn@%F`q>Fdr6$Fdr/Q%defsF9F^q>Fdr6$Fdr/FbsF]pFdr%&falseGF9F9F9F9, Q:homalg/IsShortExactSeqF.mF9 M7R0 I5homalg/NormalizeRingf*6$'%$varG%%listG%,RingPackageG6$%#RPG%$narG6%%enCopyrig ht~(C)~2004~by~Daniel~Robertz.~All~rights~reserved.G%'systemG%)rememberG6"C%>8$ -%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F 96#;""",&F;FJF<F;@)/9$7"-FC6#7$FOFO-F?6$&FN6#FJF'@%2FJ-%%nopsG6#FN@%4-F?6$&FN6# ""#F'-FC6#7%FU7#7#Fjn-%#opG6#&FN6#;""$F;-FC6#7%FU-%6homalg/NormalizeInputG6$Fjn F3Fbo-FC6#7$FNFO3/FYF\oFhn-FC6#-F"6$7$7#FU-Fco6#&FN6#;F\oF;F3F_pF0F0F0F0, Q7homalg/NormalizeRing.mF0 M7R0 I0homalg/Preimagef*6'%#_BG%#_AG%"LG%$varG%,RingPackageG6)%#RPG%$narG%"AG%"mG%/S INGLE_ELEMENTG%"BG%$preG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~ reserved.G6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*procedureG-% 'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8&-%6homalg/NormalizeInputG6$9%F7>8'-&F76#%3 NumberOfGeneratorsG6#FQ>8(%&falseG@'4-FC6$9$<$%%listG&F76#%+matrixtypeG@%/FWFN> 8)7#7#F^o-%&ERRORG6#%dpThe~second~argument~has~more~the~one~'column'~while~the~ first~argument~is~a~ring~element!G34-FC6$F^o<$%)listlistGFao-FC6$F^oF`o@%Feo>Fg o-%$mapG6$f*6#%"aGF46$%)operatorG%&arrowGF4FioF4F4F4F^oC$>Fhn%%trueG>FgoFio>Fgo -FS6$F^oF7>8*-%3homalg/RightDivideG6%FgoFQ&F=6#;""$F?@$-FC6$FiqFao>Fiq-%(conver tG6$FiqFcp@%Fhn&Fiq6#FNFiqF4F4F4F4, Q2homalg/Preimage.mF4 M7R0 I3homalg/RHomHom3Mapf*6*%"qG%"AG%"BG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6 &%#RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~Al l~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8 %@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC>8&&FA6#;"")FS>8 'f*6#F(F8F8F8-%/homalg/RHomHomG6'T$T&T(9$&FA6#;""#FCF8F86(F%F^oF&9%F'9&-%2homal g/FunctorMapG6)Fen7#9'9(7#9)9*FUF;F8F8F8F8, Q5homalg/RHomHom3Map.mF8 M7R0 I>homalg/RightDerivedCofunctorFf*6''%"qG%*nonnegintG'%*cofunctorG-%%listG6#%*pr ocedureG%"AG'%$varGF+%,RingPackageG61%#RPG%$narG%%optsG%4readjust_generatorsG%) optionalG%5cofunctor_on_objectsG%2cofunctor_on_mapsG%$resG%%rdimG%$posG%(alpha_ qG%)alpha_q1G%)Falpha_qG%*Falpha_q1G%#RFG6#%[oCopyright~(C)~2005-2006~by~Mohame d~Barakat.~All~rights~reserved.G6"C1>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%t ypeG6$FGF--%'RETURNG6#-FG6#&FM6#;""",&FOFgnFPFO@$-FS6$&FM6#""$%'stringGC$@*/F\o Q?RETURN_proc_to_induce_morphismFD-FV6#f*6%%"MG%$phiG%"NGFD6$%)operatorG%&arrow GFD-%%copyG6#&&-%%evalG6#-%7homalg/ResolutionOfSeqG6(T$9$9%9&T&T'F]o6#FipFDFD6( F&FjpF09'F3FG/F\oQKRETURN_FunctorMap_of_the_functor_to_deriveFD-FV6#&F[q6#""#/F \oQIRETURN_FunctorMaps_of_a_composed_functorFD-FV6#%%NULLG/F\oQ;RETURN_morphism _on_objectsFDF[r-FV6#-&F[q6#Fgn6%F\oFaqFG@$2,&""%FgnFPFgn9#>8&-F_p6#-%2homalg/G etOptionsG6$&FM6#;""&FhnFG@$4-%)assignedG6#&F\s6#Q<pos_of_NORMALIZE_GENERATORSF D>8'-Fcr6%QCRETURN_proc_to_readjust_generatorsFDFaqFG>8(Fbs>8)Fcr>8*Ffq>8+-%:ho malg/ResolutionOfModuleG6&F\qFaq/Q)TRUNCATEFDFjpFG>8,-%.homalg/ResDimG6$FjtFG@) 2,&-%%nopsG6#FauFgnFOFgnFjpC'>8-F]r@$-Fis6#&F\s6#QCvar_to_assign_embedding_gene ratorsFDC$>F]v/&F\s6#QJpos_of_var_to_assign_embedding_generatorsFDF]r-%'assignG 6$Fav7#-&FG6#%%ZeroGFdr@$-Fis6#&F\s6#QBvar_to_assign_F_target_hullmoduleFDC$>F] v6$F]v/&F\s6#QIpos_of_var_to_assign_F_target_hullmoduleFDF]r-F[w6$FewF]w@$07#F] v7">Fdt-%#opG6#-%'subsopG6$F]v7#Fdt-FV6#-Fft6&-%2homalg/ZeroModuleG6$FaqFGFaqFd tFG/Fhu,&FjpFgnFgnFgnC$>8.&FjtFdr>8/7#-F_w6#&FauFdr/Fjp""!C$>Fhy-&FG6#%'matrixG 6#7#-%"$G6$F^w&FauFN>F[zFiyC$>Fhy&FjtFgq>F[zFiy>80-Fht6%FhyFaqFG>81-Fht6%F[zFaq FG>82-%5homalg/DefectOfHomsFG6'Fd[lFh[lFaqFdtFG@%3-Fis6#F_t0F_tF]r-%9homalg/Con vertGeneratorsG6&F\\lF_tFdtFGF\\lFDFDFDFD, Q@homalg/RightDerivedCofunctorF.mFD M7R0 I,homalg/Torqf*6''%"qG%*nonnegintG%"AG%"BG'%$varG%%listG%,RingPackageG6&%#RPG%$ narG%)optionalG%(functorG6%%[oCopyright~(C)~2005-2006~by~Mohamed~Barakat.~All~r ights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$ -%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""&FR>8'-% =homalg/Functor_TensorProductG6#9&-%:homalg/LeftDerivedFunctorG6(9$FZ9%9'FTF:F7 F7F7F7, Q.homalg/Torq.mF7 M7R0 I?homalg/TorsionFreeFactorOnSeqsf*6%'%&alphaG<$%&tableG%%listG%%_varG%,RingPack ageG6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~righ ts~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%% typeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8&-%Ahomalg/Functor_T orsionFreeFactorGF4-%5homalg/FunctorOnSeqsG6$FQ&F=6#;FNF?F4F4F4F4, QAhomalg/TorsionFreeFactorOnSeqs.mF4 M7R0 I8homalg/TorsionSubmodulef*6%%"MG'%$varG%%listG%,RingPackageG6'%#RPG%$narG%)opt ionalG%"PG%"FG6%%^pCopyright~(C)~2003-2005~by~Mohamed~Barakat~and~Daniel~Robert z.~All~rights~reserved.G%'systemG%)rememberG6"C)>8$-%1homalg/tablenameG6%9!&9"6 #!""8%@$-%%typeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?@$-FC6$&F=6 #FN%'stringGC$@$/FSQ1RETURN_co_contraF4-FG6#Q*covariantF4-FG6#%%NULLG>8&&F=6#;" "$FO>8'-%9homalg/ParametrizeModuleG6&9$9%Q$ANYF4F7>8(-%2homalg/FreeModuleG6%-&F 76#%3NumberOfGeneratorsG6#FaoFfoF7-%.homalg/KernelG6(FeoFaoFioFfoF[oF7F4F4F4F4, Q:homalg/TorsionSubmodule.mF4 M7R0 I@homalg/SyzygiesGeneratorsOfRowsf*6&%#M1G%#M2G'%$varG%%listG%,RingPackageG6&%# RPG%$narG%"nG%$syzG6%%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reser ved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F 7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8'-%:homalg/SyzygiesGenerator sG6&-%6homalg/NormalizeInputG6$9$F7-FV6$9%F79&F7@$55/FQ7"/FQ-%'matrixG6#7#F[o/F Q-%'MatrixGF_oC$>8&-&F76#%-NumberOfRowsG6#FUO7#-&F76#%%ZeroG6#Ffo-&F76#F^o6#-FV 6$FQF7F4F4F4F4, QBhomalg/SyzygiesGeneratorsOfRows.mF4 M7R0 I3homalg/forallrings=6"%&falseGE\[l!F$, Q5homalg/forallrings.mF$ M7R0 I0homalg/CheckHomf*6'%#_MG%#_AG%#_NG'%$varG%%listG%,RingPackageG6)%#RPG%$narG%" MG%"AG%"NG%#BNG%$imAG6#%[oCopyright~(C)~2003-2004~by~Mohamed~Barakat.~All~right s~reserved.G6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F9%*procedureG -%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%6homalg/NormalizeInputG6$9$F9>8'-FU6$9 %F9>8(-FU6$9&F9>8)-%5homalg/BasisOfModuleG6%Fhn9'F9>8*-%/homalg/ComposeG6&FSFYF aoF9>Fco-FU6$FcoF9-%.homalg/ReduceG6&FcoF]oFaoF9F6F6F6F6, Q2homalg/CheckHom.mF6 M7R0 I8homalg/CofunctorOnSeqsFf*6&%+_cofunctorG'%&alphaG<$%&tableG%%listG%%_varG%,Ri ngPackageG6-%#RPG%$narG%*cofunctorG%$varG%#aiG%"mG%"jG%&coseqG%$tblG%"rG%"iG6%% fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememb erG6"C->8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F@%*procedureG-%'RETURN G6#-F@6#&FF6#;""",&FHFWFIFH@%-FL6$9$F*@%2""!-%%nopsG6#Ffn>8&&Ffn6#FW-%&ERRORG6# %gnThe~first~argument~providing~the~cofunctor~is~an~empty~list!G>F^oFfn>8'&FF6# FX>8(-F)F=@%-FL6$9%F*>&F[pF`o7#-%"$G6#;FW-F[o6#F`p>Fbp-%%sortG6#-%$mapG6$%$lhsG -%#opG6#-%%evalGFip>8)-F[o6#Fbp?&8*7#-Fep6#;""#,(9#FW!"#FWFIFH%%trueGC$@%-FL6$& FF6#,&FWFWF\rFWF*>&F[p6#F\r7#-Fep6#;FW-F[o6#Fjr>F^s-F\q6#-F_q6$Faq-Fcq6#-FfqFes @%/-%%iremG6$F\rFarFW@$0Fhq-F[o6#F^s-Fbo6%%BThe~first~and~the~argument~numberGF \r%Chave~different~numbers~of~entries!G@$0,&FhqFWFWFWFet-Fbo6%%4The~argument~nu mberGF\r%Rmust~have~one~entry~more~than~the~first~argument!G>8+F\p?&F\r7#-Fep6# ;FWFbrFerC&>8,F\p>8-F`t?&8.7#-Fep6#;FW,(FhqFWFWFWF]vFHFer>&F[v6#,&&F^s6#F_vFWF] vFH-F^o6%-%%copyG6#&Fjr6#FivFgoF@>&FcuF_s-F^w6#F[v-Fcq6#-F_q6$F^w-F_q6$f*6#%"aG F=6$%)operatorG%&arrowGF=&T#F\oF=F=6$F5FcuFeuF=F=F=F=, Q:homalg/CofunctorOnSeqsF.mF= M7R0 I3homalg/CokernelMapf*6)%'alpha1G%"AG%$phiG%&beta1G%"BG%$varG%,RingPackageG6'%# RPG%$narG%%optsG%)optionalG%(functorG6%%[oCopyright~(C)~2004-2005~by~Mohamed~Ba rakat.~All~rights~reserved.G%'systemG%)rememberG6"C)>8$-%1homalg/tablenameG6%9! &9"6#!""8%@$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@%2,&"" %FPFBFP9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F?6#;""&FQF9>&FX6#Q2number_of_opt ionsF6""!@$2,&FVFPF^oFA,&""'FPFBFP-FI6#-%4homalg/CokernelFMapG6#F?>8'&F?6#;""(F Q>8(%0homalg/CokernelG-%2homalg/FunctorMapG6)Fcp7$9$9%9&7$9'9(9)F]pF9F6F6F6F6, Q5homalg/CokernelMap.mF6 M7R0 I;homalg/EmbedInFactorModulef*6$%"MG%,RingPackageG6$%#RPG%$narG6#%fnCopyright~( C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C%>8$-%1homalg/tablenameG6%9 !&9"6#!""8%@$-%%typeG6$F/%*procedureG-%'RETURNG6#-F/6#&F56#;""",&F7FFF8F7-%6hom alg/NormalizeInputG6%9$Q-PresentationF,F/F,F,F,F,, Q=homalg/EmbedInFactorModule.mF, M7R0 I>homalg/Functor_TensorProduct2f*6#%"AG6"6%%fnCopyright~(C)~2006~by~Mohamed~Bar akat.~All~rights~reserved.G%'systemG%)rememberGF&7&f*6#%"MGF&F&F&-%5homalg/Tens orProductG6%T$9$&9"6#;""#!""F&F&6$F%F3f*6%F.%$phiG%"NGF&F&F&-%9homalg/TensorPro duct2MapG6'F2F39%9&&F56#;""%F9F&F&F:F3f*6#%"PGF&F&F&f*F<F&F&F&-%8homalg/TensorP roductMapG6'F3FBFCF2FDF&F&6$FJF3F&F&F&F&F&F&F&, Q@homalg/Functor_TensorProduct2.mF& M7R0 I0homalg/ImageEmbf*6&%"AG%"NG%$varG%,RingPackageG6(%#RPG%$narG%%optsG%)optional G%#imG%5image_embedding_infoG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~ri ghts~reserved.G%'systemG%)rememberG6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$- %%typeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?@%2,&""#FNF@FN9#>8&- %%copyG6#-%2homalg/GetOptionsG6$&F=6#;""$FOF7>&FV6#Q2number_of_optionsF4""!@$2, &FTFNF\oF?,&FjnFNF@FN-FG6#-%1homalg/ImageFEmbG6#F=>8'&F=6#;""%FO>8(-%-homalg/Im ageG6(9$9%9&/Q=var_to_assign_embedding_infoF4.8)FjoF7/Q5image_embedding_infoF4- FX6#Fjp@$-%)assignedG6#&FV6#Q@var_to_assign_functor_on_objectF4-%'assignG6$FcqF `pF]qF4F4F4F4, Q2homalg/ImageEmb.mF4 M7R0 I7homalg/IsCommutativeSqf*6)%(_alpha1G%%_phiG%%_psiG%'_beta1G%"BG%$varG%,RingPa ckageG6)%#RPG%$narG%'alpha1G%$phiG%$psiG%&beta1G%)optionalG6#%fnCopyright~(C)~2 004~by~Mohamed~Barakat.~All~rights~reserved.G6"C+>8$-%1homalg/tablenameG6%9!&9" 6#!""8%@$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@$529#,&"" 'FPFBFP32,&""&FPFBFPFU-FE6$&F?6#FW%'stringG-FI6#-%8homalg/IsCommutativeSqFG6#F? >8&-%6homalg/NormalizeInputG6$9$F9>8'-Fco6$9%F9>8)-Fco6$9'F9>8(-Fco6$9&F9>8*&F? 6#;""(FQ-%1homalg/EqualMapsG6(-%/homalg/ComposeG6&FaoFgo9)F9-F_q6&FapF\pFaqF99( FaqFfpF9F6F6F6F6, Q9homalg/IsCommutativeSq.mF6 M7R0 I1homalg/IsComplexf*6%'%(complexG%%listG'%$varGF'%,RingPackageG6)%#RPG%$narG%%h omsG%%cmpsG%+check_homsG%+check_cmpsG%$resG6#%fnCopyright~(C)~2004~by~Mohamed~B arakat.~All~rights~reserved.G6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%type G6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%6homalg/CheckHomsOfSe qG6%9$9%F8>FR-%$mapG6'%1homalg/IsZeroMapGFRFWQ(VERBOSEF5F8>8'-%4homalg/CheckCom plexGFU>Fin-FZ6'FfnFinFWFgnF8>8(-%&evalbG6#/-%(convertG6$FR%$setG<#%%trueG>8)-F bo6#/-Ffo6$FinFhoFio@'3F`oF\pFjo32,&""#FOFAFO9#-FD6$&F>6#FP%'stringGC&>8*%%NULL G@%F`o>F`q6$F`q/Q%homsF5Fjo>F`q6$F`q/FfqFR@%F\p>F`q6$F`q/Q%cmpsF5Fjo>F`q6$F`q/F ^rFinF`q%&falseGF5F5F5F5, Q3homalg/IsComplex.mF5 M7R0 I2homalg/KernelFMapf*6'%'alpha2G%$psiG%&beta2G'%$varG%%listG%,RingPackageG6&%#R PG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~ri ghts~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$- %%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&&F>6#;""&FP>8'%/h omalg/KernelFG-%2homalg/FunctorMapG6)FX7#9$%$phiG7#9&9'FRF8F5F5F5F5, Q4homalg/KernelFMap.mF5 M7R0 I1homalg/KernelMapf*6+%"AG%'alpha2G%#_AG%$psiG%"BG%&beta2G%#_BG%$varG%,RingPack ageG6'%#RPG%$narG%%optsG%)optionalG%(functorG6%%[oCopyright~(C)~2003-2005~by~Mo hamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C)>8$-%1homalg/tablen ameG6%9!&9"6#!""8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDF C@%2,&""%FRFDFR9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FA6#;""&FSF;>&FZ6#Q2numbe r_of_optionsF8""!@$2,&FXFRF`oFC,&"")FRFDFR-FK6#-%2homalg/KernelFMapG6#FA>8'&FA6 #;""*FS>8(%.homalg/KernelG-%2homalg/FunctorMapG6)Fep7%9$9%9&9'7%9(9)9*9+F_pF;F8 F8F8F8, Q3homalg/KernelMap.mF8 M7R0 I/homalg/KerOfSqf*6+%"AG%'alpha2G%#_AG%%_phiG%"BG%'_beta2G%#_BG'%$varG%%listG%, RingPackageG6(%#RPG%$narG%$phiG%&beta2G%(kphiCb2G%)ka2PkphiG6#%[oCopyright~(C)~ 2003-2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C*>8$-%1homalg/tablenameG6 %9!&9"6#!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSFEFD>8&- %6homalg/NormalizeInputG6$9'F<>8'-FX6$9)F<>8(-%1homalg/KernelEmbG6'9$-%/homalg/ ComposeG6&FVFfn9+F<9*FcoF<>8)-%4homalg/SumRelationsG6&-Fho6&-F]o6'F_o9%9&FcoF<- F]o6'F_oFV9(FcoF<FcoF<F_oFcoF<@$32,&"")FSFEFS9#-FH6$&FB6#""*%'symbolG-%'assignG 6$F[qFfo-%7homalg/SubfactorModuleG6&F[oFfoFcoF<F9F9F9F9, Q1homalg/KerOfSq.mF9 M7R0 I;homalg/LeftDerivedFunctorFf*6''%"qG%*nonnegintG'%(functorG-%%listG6#%*procedu reG%"AG'%$varGF+%,RingPackageG61%#RPG%$narG%%optsG%4readjust_generatorsG%)optio nalG%3functor_on_objectsG%0functor_on_mapsG%$resG%%rdimG%$posG%(alpha_qG%)alpha _q1G%)Falpha_qG%*Falpha_q1G%#LFG6#%[oCopyright~(C)~2005-2006~by~Mohamed~Barakat .~All~rights~reserved.G6"C1>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FGF --%'RETURNG6#-FG6#&FM6#;""",&FOFgnFPFO@$-FS6$&FM6#""$%'stringGC$@*/F\oQ?RETURN_ proc_to_induce_morphismFD-FV6#f*6%%"MG%$phiG%"NGFD6$%)operatorG%&arrowGFD-%%cop yG6#&&-%%evalG6#-%7homalg/ResolutionOfSeqG6(T$9$9%9&T&T'F]o6#FipFDFD6(F&FjpF09' F3FG/F\oQKRETURN_FunctorMap_of_the_functor_to_deriveFD-FV6#&F[q6#""#/F\oQIRETUR N_FunctorMaps_of_a_composed_functorFD-FV6#%%NULLG/F\oQ;RETURN_morphism_on_objec tsFDF[r-FV6#-&F[q6#Fgn6%F\oFaqFG@$2,&""%FgnFPFgn9#>8&-F_p6#-%2homalg/GetOptions G6$&FM6#;""&FhnFG@$4-%)assignedG6#&F\s6#Q<pos_of_NORMALIZE_GENERATORSFD>8'-Fcr6 %QCRETURN_proc_to_readjust_generatorsFDFaqFG>8(Fbs>8)Fcr>8*Ffq>8+-%:homalg/Reso lutionOfModuleG6&F\qFaq/Q)TRUNCATEFDFjpFG>8,-%.homalg/ResDimG6$FjtFG@)2,&-%%nop sG6#FauFgnFOFgnFjpC'>8-F]r@$-Fis6#&F\s6#QCvar_to_assign_embedding_generatorsFDC $>F]v/&F\s6#QJpos_of_var_to_assign_embedding_generatorsFDF]r-%'assignG6$Fav7#-& FG6#%%ZeroGFdr@$-Fis6#&F\s6#QBvar_to_assign_F_target_hullmoduleFDC$>F]v6$F]v/&F \s6#QIpos_of_var_to_assign_F_target_hullmoduleFDF]r-F[w6$FewF]w@$07#F]v7">Fdt-% #opG6#-%'subsopG6$F]v7#Fdt-FV6#-Fft6&-%2homalg/ZeroModuleG6$FaqFGFaqFdtFG/Fhu,& FjpFgnFgnFgnC$>8.&FjtFdr>8/7#-F_w6#&FauFdr/Fjp""!C$>Fhy-&FG6#%'matrixG6#7#-%"$G 6$F^w&FauFN>F[zFiyC$>Fhy&FjtFgq>F[zFiy>80-Fht6%FhyFaqFG>81-Fht6%F[zFaqFG>82-%5h omalg/DefectOfHomsFG6'Fh[lFd[lFaqFdtFG@%3-Fis6#F_t4/F_tF]r-%9homalg/ConvertGene ratorsG6&F\\lF_tFdtFGF\\lFDFDFDFD, Q=homalg/LeftDerivedFunctorF.mFD M7R0 I1homalg/LHomHom_Rf*6&'%"qG%*nonnegintG%"MG'%$varG%%listG%,RingPackageG6&%#RPG% $narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~right s~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%t ypeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&&F?6#;""%FQ>8'-%8hom alg/Functor_HomHom_RGF6-%:homalg/LeftDerivedFunctorG6(9$FY9%9&FSF9F6F6F6F6, Q3homalg/LHomHom_R.mF6 M7R0 I1homalg/MakeCoseqf*6%'%%homsG<$%&tableG%%listG'%0cochain_modulesGF'%,RingPacka geG6(%#RPG%$narG%#hiG%"hG%"cG%#ciG6#%[oCopyright~(C)~2004-2006~by~Mohamed~Barak at.~All~rights~reserved.G6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F 9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@%-FE6$9$F)>8&7#-%"$G6#;FP-%%n opsG6#FU>FW-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGFin>8'-Fhn6#FW@%-FE6$9%F)C$ >8(-Fhn6#F^p@%/Fap,&FhoFPFPFP>8)7#-FZ6#;FPFap-%&ERRORG6#%`rThe~number~of~homomo rphisms~(second~argument)~should~be~one~less~than~the~number~of~cochain~modules ~(first~argument)!G>Fhp-F\o6#-F_o6$Fao-Fco6#-FfoFcp7$-Fco6#-F_o6$f*6#%"aGF66$%) operatorG%&arrowGF66$&T$6#&T%Fin-%%copyG6#&T(6#&T)FinF6F66*F+F^pF3FhpF&FUF0FW7# -FZ6#;FPFho&F^p6#&FhpF@F6F6F6F6, Q3homalg/MakeCoseq.mF6 M7R0 I7homalg/NatTrImToTargetf*6&%"AG%"NG%$varG%,RingPackageG6%%#RPG%$narG%%optsG6%% fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememb erG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURN G6#-F46#&F:6#;""",&F<FKF=F<@%2,&""#FKF=FK9#>8&-%%copyG6#-%2homalg/GetOptionsG6$ &F:6#;""$FLF4>&FS6#Q2number_of_optionsF1""!@$2,&FQFKFinF<,&FgnFKF=FK-FD6#-%1hom alg/ImageFEmbG6#F:-%0homalg/ImageEmbGFeoF1F1F1F1, Q9homalg/NatTrImToTarget.mF1 M7R0 IAhomalg/NatTrPullbackToTwoSourcesf*6)%#AAG%$phiG%#B_G%&beta1G%"BG%$varG%,RingP ackageG6%%#RPG%$narG%%optsG6%%[oCopyright~(C)~2004-2007~by~Mohamed~Barakat.~All ~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?@%2,&""$FNF@FN9#> 8&-%%copyG6#-%2homalg/GetOptionsG6$&F=6#;""%FOF7>&FV6#Q2number_of_optionsF4""!@ $2,&FTFNF\oF?,&""'FNF@FN-FG6#-%;homalg/PullbackPairOfMapsFG6#F=-%:homalg/Pullba ckPairOfMapsGFioF4F4F4F4, QChomalg/NatTrPullbackToTwoSources.mF4 M7R0 I9homalg/ParametrizeModulef*6%%#_MG'%$varG%%listG%,RingPackageG65%#RPG%$narG%%o ptsG%"MG%$ANYG%$ALLG%/ONLY_IF_RANK_1G%"vG%#MIG%"SG%"mG%"nG%"rG%#rMG%"aG%"PG%"lG %"sG%$syzG6%%^pCopyright~(C)~2003-2007~by~Mohamed~Barakat~and~Daniel~Robertz.~A ll~rights~reserved.G%'systemG%)rememberG6"C7>8$-%1homalg/tablenameG6%9!&9"6#!"" 8%@$-%%typeG6$FE%*procedureG-%'RETURNG6#-FE6#&FK6#;""",&FMFfnFNFM@$2,&""#FfnFNF fn9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FK6#;""$FgnFE>8'-%6homalg/NormalizeInp utG6$9$FE@%-%)assignedG6#&F^o6#Q+pos_of_ANYFB>8(%%trueG>Fgp%&falseG@%-Fap6#&F^o 6#Q+pos_of_ALLFB>8)Fhp>FbqFjp@%-Fap6#&F^o6#Q6pos_of_ONLY_IF_RANK_1FB>8*Fhp>F[rF jp>8+-%5homalg/NormalizeRingG6$9%FE@$30&F^r6#F[o7"4-Fap6#&F^o6#Q,pos_of_RANKFBC %@$F[r-%&ERRORG6#%bxThe~option~"ONLY_IF_RANK_1"~cannot~be~used~here,~since~the~ ring~is~a~residue~class~ring~and~the~module~might~not~be~FFR.~If~however~you~al ready~know~the~rank~of~the~module~you~can~specify~it~using~the~option~"RANK".G@ $Fbq-Fbs6#%gwThe~option~"ALL"~cannot~be~used~here,~since~the~ring~is~a~residue~ class~ring~and~the~module~might~not~be~FFR.~If~however~you~already~know~the~ran k~of~the~module~you~can~specify~it~using~the~option~"RANK".G>FgpFhp>8,-%2homalg /InvolutionG6%FjoFbrFE>8--%3homalg/SyzygiesOpFG6%F[tFbrFE@$Fgp-FU6#-F]t6%F`tFbr FE>8.-&FE6#%-NumberOfRowsG6#F`t>8/-&FE6#%3NumberOfGeneratorsGF_u@%FjrC$>80&F^o6 #Q%RANKFB@$4-FQ6$Fiu%*nonnegintG-Fbs6#%coThe~right~hand~side~of~the~"RANK"~opti on~must~be~a~non-negative~integer.G>Fiu-%;homalg/EulerCharacteristicGFht@$F[rC$ >81-FgvF^t@$0F[wFfn-FU6#%%FAILG@$/,&FauFfnFiuFM""!@%Fbq-FU6#7#FgtFet>82-&%)comb inatG6#%'chooseG6$7#-%"$G6#;FfnFjtFdw>83%%NULLG?&84F[xFhpC%>85-&FE6#%,CertainRo wsG6$F`tF[y>86-%6homalg/SyzygiesModuleG6&-F`o6#F^yFhrFbrFE@$-%3homalg/IsFreeBas isG6%FeyFbrFEC$>Fhx6$Fhx-F\p6$-%:homalg/ReduceRingElementsG6%-F]t6%FiyFbrFEFbrF EFE@$4Fbq-FU6#Fgz-%$mapG6$&FE6#%'matrixG7#FhxFBFBFBFB, Q;homalg/ParametrizeModule.mFB M7R0 I8homalg/PresentationInfof*6%%"MG%$varG%,RingPackageG6'%#RPG%$narG%"BG%"CG%"HG6 #%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C&>8$-%1homal g/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F96#;""", &F;FJF<F;>8&-%3homalg/BetterBasisG6&9$9%Q3ALLOW_EMPTY_OUTPUTF0F3@%0-%4homalg/Le ftinverseFG6%FQFRF3%%FAILGQ%zeroF0Q)non-zeroF0F0F0F0F0, Q:homalg/PresentationInfo.mF0 M7R0 I/homalg/Pushoutf*6(%(_alpha1G%"AG%%_psiG%#B_G%$varG%,RingPackageG6.%#RPG%$narG %%optsG%'alpha1G%$psiG%*minus_oneG%$posG%)optionalG%%ApB_G%+alpha1_psiG%#poG%$e piG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%) rememberG6"C0>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F?%*procedureG-%' RETURNG6#-F?6#&FE6#;""",&FGFVFHFG@%2,&""$FVFHFV9#>8&-%%copyG6#-%2homalg/GetOpti onsG6$&FE6#;""%FWF?>&Fhn6#Q2number_of_optionsF<""!@$2,&FfnFVFdoFG,&""&FVFHFV-FO 6#-%0homalg/PushoutFG6#FE>8'-%6homalg/NormalizeInputG6$9$F?>8(-Fep6$9&F?>Fhn-Fj n6#-F]o6$&FE6#;""'FWF?>8*%%NULLG@$-%)assignedG6#&Fhn6#QApos_of_var_to_assign_Co kernelEpiF<>Fgq6$Fgq/F]rFhq@$-F[r6#&Fhn6#QGpos_of_var_to_assign_functor_on_obje ctF<>Fgq6$Fgq/FfrFhq>8+-%#opG6#-%'subsopG6$Fgq7#Fbq>8,-%/homalg/DiagMatG6%9%9'F ?>8--&F?6#%/UnionOfColumnsG6$FcpFip@%-F[r6#&Fhn6#Q:var_to_assign_CokernelEpiF<C %>8/-%3homalg/CokernelEpiG6(F]tFfs9(/Q@var_to_assign_functor_on_objectF<8.F]sF? -%'assignG6$Fft-Fjn6#F[uFbu-%0homalg/CokernelG6'F]tFfsF_uF]sF?F<F<F<F<, Q1homalg/Pushout.mF< M7R0 I;homalg/BasisOfColumnModulef*6%%"MG'%$varG%%listG%,RingPackageG6$%#RPG%$narG6% %fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)remem berG6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETUR NG6#-F46#&F:6#;""",&F<FKF=F<-%2homalg/InvolutionG6%-%6homalg/NormalizeInputG6$- %5homalg/BasisOfModuleG6%-FN6%9$9%F4FYF4F4FYF4F1F1F1F1, Q=homalg/BasisOfColumnModule.mF1 M7R0 I6homalg/DecideZeroRowsf*6&%"LG%"BG'%$varG%%listG%,RingPackageG6$%#RPG%$narG6%% fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememb erG6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURN G6#-F56#&F;6#;""",&F=FLF>F=-&F56#%'matrixG6#-%6homalg/NormalizeInputG6$-%.homal g/ReduceG6&-FT6$9$F5-FT6$9%F59&F5F5F2F2F2F2, Q8homalg/DecideZeroRows.mF2 M7R0 IDhomalg/DecideZeroColumnsEffectivelyf*6'%"AG%"BG'%$varG%%listG%"VG%,RingPackag eG6&%#RPG%$narG%"UG%"CG6%%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~r eserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%type G6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8'-%3homalg/ReduceCoeffG6 '-%2homalg/InvolutionG6%9$9&F8-FW6%9%FZF8FZ8&F8-%'assignG6$9'-FW6%FhnFZF8-FW6%F RFZF8F5F5F5F5, QFhomalg/DecideZeroColumnsEffectively.mF5 M7R0 I6homalg/MonomialMatrixf*6&%"iG'%%varsG%%listG'%$varGF(%,RingPackageG6%%#RPG%$n arG%"MG6#%[oCopyright~(C)~2009-2012~by~Mohamed~Barakat.~All~rights~reserved.G6" C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6#-F 56#&F;6#;""",&F=FLF>F=>8&-%$mapG6%%(convertG-&%)combinatG6#%'chooseG6$-FQ6$f*6# %"aGF26$%)operatorG%&arrowGF2-%"$G6$9$T$F2F26$F%F_o9%F_o%"*G-&F56#%'matrixG6#-F go6%-%%nopsG6#FOFLFOF2F2F2F2, Q8homalg/MonomialMatrix.mF2 M7R0 I/homalg/version"-Z@J07?6", Q1homalg/version.mF$ M7R0 I.homalg/AddMatf*6&%"AG%"BG'%$varG%%listG%,RingPackageG6%%#RPG%$narG%"vG6#%[oCo pyright~(C)~2004-2005~by~Mohamed~Barakat.~All~rights~reserved.G6"C&>8$-%1homalg /tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#&F:6#;""",& F<FKF=F<>8&-%8homalg/ResidueClassRingG6$9&F4@%/FN-&F46#%%ZeroG6#FKC$-&F46#%)sim plifyG6$-%&evalmG6#,&9$FK9%FKFR-&F46#%'matrixG6#%"%GC&FenF`o-%:homalg/ReduceRin gElementsG6%FeoFRF4F`oF1F1F1F1, Q0homalg/AddMat.mF1 M7R0 I?homalg/AreEquivalentExtensionsf*6/%#N1G%'alpha1G%#E1G%&beta1G%#M1G%$phiG%#N2G %'alpha2G%#E2G%&beta2G%#M2G%$varG%,RingPackageG6'%#RPG%$narG%%optsG%(VERBOSEG%" bG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)r ememberG6"C*>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F?%*procedureG-%'R ETURNG6#-F?6#&FE6#;""",&FGFVFHFG@$2,&"#7FVFHFV9#>8&-%%copyG6#-%2homalg/GetOptio nsG6$&FE6#;"#8FWF?@%-%)assignedG6#&Fhn6#Q/pos_of_VERBOSEF<>8'%%trueG>F[p%&false G@$4-%:homalg/EqualPresentationsG6&9$9*Q2IGNORE_GENERATORSF<F?-%&ERRORG6#%YThe~ two~submodules~must~have~identical~sets~of~relationsG@$F`p-Fhp6#%gnThe~two~fact or~modules~must~have~identical~sets~of~relationsG>8(7&-%-homalg/IsHomG6(9&9)9,9 /Q(VERBOSEF<F?-%3homalg/IsBijectiveGFdq-%1homalg/IsZeroMapG6'-%.homalg/SubMatG6 &-%/homalg/ComposeG6&9%FfqFhqF?9+FhqF?FgqFhqFiqF?-F]r6'-F`r6&-Fcr6&Ffq9-FhqF?9' FhqF?9.FhqFiqF?@%/-%(convertG6$F`q%$setG<#F\pF\p@%F[p-%$zipG6%f*6$%"xG%"yGF<6$% )operatorG%&arrowGF</FdpFerF<F<F<7&Q$homF<Q$isoF<Q)commute1F<Q)commute2F<F`qF^p F<F<F<F<, QAhomalg/AreEquivalentExtensions.mF< M7R0 I2homalg/Ext2OnSeqsf*6'%"qG%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6 %%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~re served.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG 6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%4homalg/Functor_Ext2G6 $9$9%-%5homalg/FunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q4homalg/Ext2OnSeqs.mF6 M7R0 I0homalg/Extq2Mapf*6)%"qG%"LG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%#RPG% $narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~right s~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%t ypeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""(FR>8'f*6#F' F7F7F7-%,homalg/ExtqG6&T$T&9$&F@6#;""#FBF7F76&F%F\oF&9%-%2homalg/FunctorMapG6)F Z7#9&9'7#9(9)FTF:F7F7F7F7, Q2homalg/Extq2Map.mF7 M7R0 I7homalg/Functor_HomHom2f*6$%"AG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Baraka t.~All~rights~reserved.G%'systemG%)rememberGF'7(f*6#%"MGF'F'F'-%.homalg/HomHomG 6&T$9$T&&9"6#;""#!""F'F'6&F%F4F&9%f*6%F/%$phiG%"NGF'F'F'-%2homalg/HomHom2MapG6( F3F4F=9&F5&F76#;""%F;F'F'F<F4f*6#%"PGF'F'F'f*F?F'F'F'-%1homalg/HomHomMapG6(F4F= FEF3F5FFF'F'6&FLF4F&F3F'F'6$F&F=F=f*FKF'F'F'f*F?F'F'F'-%2homalg/HomHom3MapG6(F3 F5F4F=FEFFF'F'6&F%F3FLF4F'F'6$F%F4F'F'F'F', Q9homalg/Functor_HomHom2.mF' M7R0 I8homalg/Functor_HomHom_Rf*6"F$6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~ rights~reserved.G%'systemG%)rememberGF$7$%0homalg/HomHom_RG%3homalg/HomHomMap_R GF$F$F$F$, Q:homalg/Functor_HomHom_R.mF$ M7R0 I5homalg/FunctorOnSeqFf*6&%)_functorG'%%homsG<$%&tableG%%listG%$varG%,RingPacka geG6)%#RPG%$narG%(functorG%#hiG%"hG%'H_homsG%"iG6%%fnCopyright~(C)~2005~by~Moha med~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C*>8$-%1homalg/tablenam eG6%9!&9"6#!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSFEFD@ %-FH6$9$F*@%2""!-%%nopsG6#FX>8&&FX6#FS-%&ERRORG6#%enThe~first~argument~providin g~the~functor~is~an~empty~list!G>FjnFX@%-FH6$9%F*>8'7#-%"$G6#;FS-Fgn6#Feo>Fgo-% %sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGF^p>8(-Fgn6#Fgo>8)-F)F9?&8*7#-Fjo6#;FSF] q%%trueG>&Faq6#,&&Fgo6#FdqFSFDFS-Fjn6%&Feo6#F^r9&F<-%%copyG6#FaqF9F9F9F9, Q7homalg/FunctorOnSeqF.mF9 M7R0 I4homalg/Functor_Torqf*6$%"qG%"BG6"6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~ All~rights~reserved.G%'systemG%)rememberGF'7&f*6#%"MGF'F'F'-%,homalg/TorqG6&T$9 $T&&9"6#;""#!""F'F'6&F%F4F&9%f*6%F/%$phiG%"NGF'F'F'-%/homalg/TorqMapG6(F3F4F=9& F5&F76#;""%F;F'F'F<F=f*6#%"PGF'F'F'f*F?F'F'F'-%0homalg/Torq2MapG6(F3F5F4F=FEFFF 'F'6&F%F3FLF4F'F'6$F%F4F'F'F'F', Q6homalg/Functor_Torq.mF' M7R0 I@homalg/Functor_TorsionSubmodulef*6"F$6%%fnCopyright~(C)~2006~by~Mohamed~Barak at.~All~rights~reserved.G%'systemG%)rememberGF$7$%8homalg/TorsionSubmoduleG%;ho malg/TorsionSubmoduleMapGF$F$F$F$, QBhomalg/Functor_TorsionSubmodule.mF$ M7R0 I6homalg/GetConvertInfof*6%'%"MG<$%%listG%4homalg_presentationG%$varG%,RingPack ageG6+%#RPG%$narG%$genG%%gen1G%"cG%"rG%"nG%"kG%.convert_procsG6#%[oCopyright~(C )~2005-2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C&>8$-%1homalg/tablename G6%9!&9"6#!""8%@$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC@' -FG6$9$F)>8&-%@homalg/GeneratorsOfPresentationG6$FWF;-FG6$FW-F(6#%"=G>FY-%$mapG 6$%$rhsGFW>FYFW@)/FY7"-%&ERRORG6#%Athe~list~of~generators~is~empty!G-FG6$&FY6#F R&F;6#%+matrixtypeGC)>8'-%6homalg/NormalizeInputG6$F[pF;>8,-%&tableGF8>&Fgp6#Q5 normalize_generatorsF8f*6#%"aGF86$%)operatorG%&arrowGF8-F^o6$%#opG-Fdp6$-%2homa lg/InvolutionG6%FWT$T%F]rF8F86&F*9%F-F;>8(-&F;6#%3NumberOfGeneratorsG6#Fbp>8)-& F;6#%-NumberOfRowsGFfr>&Fgp6#Q4readjust_generatorsF8f*6#%"bGF8FaqF8-Fjq6%-F^o6$ f*F_qF8FaqF8&F\r6#;,&*&FWFRF]rFRFRFRFR*&F]rFR,&FWFRFRFRFRF8F86&FcsFWF2T)7#-%"$G 6#;""!,&T#FRFCFRT&T'F8F86*F1FarF*F_rF-F;F2Fhr-%%copyG6#Fgp-FG6$F[p-F(6#F]pC*>Fb p-F^o6%FdpF[pF;>FgpFhp>F[qf*F_qF8FaqF8-F^o6$Ffq-F^o6%-%"@G6$Ffq%(convertGFW%)li stlistGF8F8F8>Far-F^o6$FcrFbp>Fhr-F^o6$FjrFbp>8*-%%nopsG6#Fhr>F^sf*FbsF8FaqF8-F ^o6$f*6#%"iGF8FaqF8-&F]r6#%'matrixG6#-F^o6$f*F_qF8FaqF8&F\r6#;,(-%$sumG6$*&&F]r 6#F[uFR&FatFgxFR/F[u;FR,&T,FRFCFRFR*&&F]r6#F\yFRFWFRFRFRFR,&FbxFR*&F^yFRF_tFRFR F8F86,FcsT(F1FatF4T+F2FitFewFW7#-Fdt6#;Fgt,&&Fit6#FWFRFCFRF8F86,F2F]rF-F[uFcsFW F1FatF4Fdy7#-Fdt6#;FRFitF8F86,F3F[wF2FhrF-F;F1FarF48+F]u%%NULLGF8F8F8F8, Q8homalg/GetConvertInfo.mF8 M7R0 I2homalg/Hom2OnSeqsf*6&%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6%%#R PG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~reserv ed.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F8 %*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%4homalg/Functor_Hom2G6#9$- %5homalg/FunctorOnSeqsG6$FR&F>6#;""#F@F5F5F5F5, Q4homalg/Hom2OnSeqs.mF5 M7R0 I3homalg/Hom_ROnSeqsf*6%'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6%%#RPG% $narG%*cofunctorG6%%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserve d.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7% *procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?>8&7%%-homalg/Hom_RG%0homalg/Hom Map_RG%2homalg/InvolutionG-%7homalg/CofunctorOnSeqsG6$FQ&F=6#;FNF?F4F4F4F4, Q5homalg/Hom_ROnSeqs.mF4 M7R0 I9homalg/ImageOfSubmoduleFf*6&%"AG%"BG'%$varG%%listG%,RingPackageG6$%#RPG%$narG 6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C&>8$-%1homa lg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F96#;""" ,&F;FJF<F;-%/homalg/ComposeG6%-%6homalg/NormalizeInputG6$&F96#FJF3-FP6$&F96#""# F3&F96#;""$F;-%4homalg/RingNotationG6$-FP6$%"%GF3F3F0F0F0F0, Q;homalg/ImageOfSubmoduleF.mF0 M7R0 I4homalg/IsInjectiveFf*6%%"AG%$varG%,RingPackageG6%%#RPG%$narG%$kerG6#%fnCopyri ght~(C)~2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C&>8$-%1homalg/tablenam eG6%9!&9"6#!""8%@$-%%typeG6$F1%*procedureG-%'RETURNG6#-F16#&F76#;""",&F9FHF:F9> 8&-%/homalg/KernelFG6#F7-%4homalg/IsZeroModuleG6%FK9%F1F.F.F.F., Q6homalg/IsInjectiveF.mF. M7R0 I5homalg/IsSurjectiveFf*6%%"AG%$varG%,RingPackageG6%%#RPG%$narG%&cokerG6#%fnCop yright~(C)~2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C&>8$-%1homalg/table nameG6%9!&9"6#!""8%@$-%%typeG6$F1%*procedureG-%'RETURNG6#-F16#&F76#;""",&F9FHF: F9>8&-%1homalg/CokernelFG6#F7-%4homalg/IsZeroModuleG6%FK9%F1F.F.F.F., Q7homalg/IsSurjectiveF.mF. M7R0 I6homalg/LHomHom2OnSeqsf*6(%"qG%"AG%"BG'%&alphaG<$%&tableG%%listG%%_varG%,RingP ackageG6%%#RPG%$narG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All ~rights~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&-%8homalg/Func tor_LHomHom2G6%9$9%9&-%7homalg/CofunctorOnSeqsG6$FT&F@6#;""%FBF7F7F7F7, Q8homalg/LHomHom2OnSeqs.mF7 M7R0 I6homalg/LHomHom3OnSeqsf*6(%"qG%"AG%"BG'%&alphaG<$%&tableG%%listG%%_varG%,RingP ackageG6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~r ights~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$ -%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&-%8homalg/Functo r_LHomHom3G6%9$9%9&-%5homalg/FunctorOnSeqsG6$FT&F@6#;""%FBF7F7F7F7, Q8homalg/LHomHom3OnSeqs.mF7 M7R0 I2homalg/LHomHomMapf*6*%"qG%"MG%$phiG%"NG%"AG%"BG'%$varG%%listG%,RingPackageG6& %#RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All ~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC>8&&FA6#;"")FS>8' f*6#F&F8F8F8-%/homalg/LHomHomG6'T$9$T&T(&FA6#;""#FCF8F86(F%F\oF)9(F*9)-%2homalg /FunctorMapG6)Fen7#9%9&7#9'9*FUF;F8F8F8F8, Q4homalg/LHomHomMap.mF8 M7R0 I4homalg/LHomHomMap_Rf*6(%"qG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%#RPG% $narG%)optionalG%(functorG6%%ioCopyright~(C)~2005~by~Mohamed~Barakat~and~Daniel ~Robertz.~All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6 %9!&9"6#!""8%@$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&& F?6#;""'FQ>8'f*6#F&F6F6F6-%1homalg/LHomHom_RG6%T$9$&F?6#;""#FAF6F66$F%Fjn-%2hom alg/FunctorMapG6)FY7#9%9&7#9'9(FSF9F6F6F6F6, Q6homalg/LHomHomMap_R.mF6 M7R0 I3homalg/ReduceCoefff*6&%#_AG%#_BG'%$varG%%listG%,RingPackageG6.%#RPG%$narG%"AG %"BG%"zG%"iG%&tvarAG%#AAG%"bG%&tvarBG%#BBG%"NG6%%ioCopyright~(C)~2004~by~Mohame d~Barakat~and~Daniel~Robertz.~All~rights~reserved.G%'systemG%)rememberG6"C0>8$- %1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F?%*procedureG-%'RETURNG6#-F?6#&FE 6#;""",&FGFVFHFG>8&-%6homalg/NormalizeInputG6$9$F?>8'-Fen6$9%F?@$0-&F?6#%3Numbe rOfGeneratorsG6#FY-F`o6#Fin-%&ERRORG6#%VThe~two~matrices~have~different~numbers ~of~'columns'!G>8,-&F?6#%-NumberOfRowsGFeo>8(-&F?6#%%ZeroG6#F[p>8*7#-%"$G6$Fap- F]pFco>8+-&F?6#%'AddRhsG6%FY9&Fhp>8--%7homalg/StdBasisVectorsG6$F[pF?>8.-Faq6%F inFeqFgq>8/-%.homalg/ReduceG6&F_qF\rFeqF?@$32,&""$FVFHFV9#-FK6$&FE6#""%%'symbol GC%-&F?6#%(GetSideG6&%$rhsGF`rFeqFgq-Fen6$%"%GF?-%'assignG6$F\s-&F?6#%'matrixG6 #Fis-Fbs6&%$lhsGF`rFeqFhpF<F<F<F<, Q5homalg/ReduceCoeff.mF< M7R0 I:homalg/ResolutionOfModulef*6%%#_MG'%$varG%%listG%,RingPackageG62%#RPG%$narG%% optsG%"sG%"gG%"TG%#trG%#lbG%"MG%"ZG%"BG%"RG%"nG%"rG%#SBG%"SG6%%fnCopyright~(C)~ 2006~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C2>8$-%1hom alg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FB%*procedureG-%'RETURNG6#-FB6#&FH6#;"" ",&FJFYFKFJ@$2,&""#FYFKFY9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FH6#;""$FZFB@%- %)assignedG6#&F[o6#Q)SIMPLIFYF?C$>8'Fjo@$4-FN6$F_p%(booleanG-%&ERRORG6#%Rexpect ing~boolean~value~for~the~"SIMPLIFY"~optionG>F_p%&falseG@%-Fho6#&F[o6#Q*GEOMETR ICF?C$>8(F^q@$4-FN6$FcqFdp-Ffp6#%Sexpecting~boolean~value~for~the~"GEOMETRIC"~o ptionG>FcqFjp@%-Fho6#&F[o6#Q0TARGETRELATIONSF?>8)-%6homalg/NormalizeInputG6$F_r FB>Fcr7"@%-Fho6#&F[o6#Q)TRUNCATEF?C$>8*F\s@$4-FN6$Fas%(integerG-Ffp6#%Oexpectin g~an~integer~for~the~"TRUNCATE"~optionG>FasFJ@%-Fho6#&F[o6#Q+LOWERBOUNDF?C$>8+F ^t@$4-FN6$Fct%*nonnegintG-Ffp6#%gnexpecting~a~non-negative~integer~for~the~"LOW ERBOUND"~optionG>Fct""!>8,-Fer6$9$FB@$330FasF]u2FasFct2F]uFas-Ffp6&%."LOWERBOUN D"=GFct%<is~greater~than~"TRUNCATE"=GFas@%Fcq>8.F_u>F_v-%<homalg/ReducedBasisOf ModuleG6'F_u9%Q.COMPUTE_BASISF?Q1NO_RING_NOTATIONF?FB@$/FasF]u-FR6#7#-&FB6#%'ma trixG6#F_v>8/F_v>80FY?(F?FYFYF?30F_vFhr52FasF]u2,&FdwFYFJFYFasC%>81-&FB6#%3Numb erOfGeneratorsGF`w@%/FdwFY@%/F_v-%7homalg/StdBasisVectorsG6$F^xFB@%0FcrFhrC%>82 -Fbv6)FcrFdvFevQ0RETURN_SYZYGIESF?Q2ALLOW_EMPTY_BASISF?FfvFB>83&F^y6#FY>F_v&F^y 6#Fhn>F_vFhrC$>F_v-%:homalg/SyzygiesGeneratorsG6&F_vFcrFdvFB@$FgwC%>F^y-Fbv6)F_ vFdvFevFayFbyFfvFB>FdyFey>F_vFhy@%0FdyFhrC%>F^y-Fbv6)FdyFdvFevFayFbyFfvFB>FdyFe y>F_vFhy>F_vFhr@$FgwC$>Fbw6$F_vFbw>Fdw,&FdwFYFYFY@&/FctFdw7#-F]w6#7#-&FB6#%%Zer oG6#-&FB6#%-NumberOfRowsG6#&7#FbwFfy1FctF[x-%$mapG6$F]w7#&Fbw6#;FY,&FctFJFJFYF? F?F?F?, Q<homalg/ResolutionOfModule.mF? M7R0 I:homalg/SyzygiesGeneratorsf*6&%$_M1G%$_M2G'%$varG%%listG%,RingPackageG6(%#RPG% $narG%#M1G%#M2G%"LG%)CompCondG6%%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~r ights~reserved.G%'systemG%)rememberG6"C)>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$ -%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%6homalg/Normal izeInputG6$9$F9>8'-FU6$9%F9>8(-&F96#%,UnionOfRowsG6$-&F96#%'AddRhsG6$FS9&FY-%5h omalg/BasisOfModuleG6&FhnFco8)F9FgoF6F6F6F6, Q<homalg/SyzygiesGenerators.mF6 M7R0 I3homalg/SyzygiesOpFf*6%%"AG'%$varG%%listG%,RingPackageG6$%#RPG%$narG6%%^pCopyr ight~(C)~2003-2004~by~Daniel~Robertz~and~Mohamed~Barakat.~All~rights~reserved.G %'systemG%)rememberG6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*pr ocedureG-%'RETURNG6#-F46#&F:6#;""",&F<FKF=F<&-%:homalg/ResolutionOfModuleG6(9$9 %/Q)TRUNCATEF1FK/Q+LOWERBOUNDF1FK/Q*GEOMETRICF1%%trueGF46#FKF1F1F1F1, Q5homalg/SyzygiesOpF.mF1 M7R0 I0homalg/Torq2Mapf*6)'%"qG%*nonnegintG%"LG%"MG%$phiG%"NG'%$varG%%listG%,RingPac kageG6&%#RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barak at.~All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9" 6#!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSFEFD>8&&FB6#;" "(FT>8'f*6#F)F9F9F9-%,homalg/TorqG6&T$T&9$&FB6#;""#FDF9F96&F&F^oF(9%-%2homalg/F unctorMapG6)Ffn7#9&9'7#9(9)FVF<F9F9F9F9, Q2homalg/Torq2Map.mF9 M7R0 I<homalg/TorsionFreeFactorMapf*6'%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%# RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~r ights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$ -%%typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&&F>6#;""&FP>8'%9 homalg/TorsionFreeFactorG-%2homalg/FunctorMapG6)FX7#9$9%7#9&9'FRF8F5F5F5F5, Q>homalg/TorsionFreeFactorMap.mF5 M7R0 IQhomalg/AModuleForATwoExtensionFromTwoOneCocyclesf*6)%#_MG%&etaMNG%#_NG%&etaNL G%#_LG%$varG%,RingPackageG6,%#RPG%$narG%"MG%"NG%"LG%$syzG%"BG%"XG%#BbG%&etaMLG6 #%ioCopyright~(C)~2008~by~Mohamed~Barakat~and~Barbara~Bremer.~All~rights~reserv ed.G6"C->8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F<%*procedureG-%'RETUR NG6#-F<6#&FB6#;""",&FDFSFEFD>8(-%6homalg/NormalizeInputG6$&-%:homalg/Resolution OfModuleG6&9(9)/Q)TRUNCATEF9""!F<6#FSF<>8'-FX6$&-Ffn6&9&FinFjnF<F]oF<>8&-FX6$&- Ffn6&9$FinFjnF<F]oF<>8)-%%copyG6#&-%4homalg/SyzygiesDataG6&""#FgoFinF<6#Fgp>8*- %/homalg/ComposeG6&F_p9%FinF<>8+-%3homalg/RightDivideG6&FjpF_oFinF<>8,-F\q6&F`q 9'FinF<>8--%3homalg/LeftDivideCG6'F_pFeqFVFinF<@%/Fjq%%FAILGF`r-%:homalg/Reduce HomomorphismG6&FjqFVFinF<F9F9F9F9, QShomalg/AModuleForATwoExtensionFromTwoOneCocycles.mF9 M7R0 IFhomalg/A2ExtensionModuleFromA2Cocyclef*6'%"MG%$etaG%"NG'%$varG%%listG%,RingPa ckageG6%%#RPG%$narG%$extG6#%enCopyright~(C)~2007~by~Barbara~Bremer.~All~rights~ reserved.G6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-% 'RETURNG6#-F56#&F;6#;""",&F=FLF>F=>8&-%1homalg/ExtensionG6(""#9$9%9&9'F5-%Hhoma lg/A2ExtensionModuleFromA2ExtensionG6%FOFWF5F2F2F2F2, QHhomalg/A2ExtensionModuleFromA2Cocycle.mF2 M7R0 I3homalg/ZeroColumnsf*6%%#_MG'%$varG%%listG%,RingPackageG6%%#RPG%$narG%"MG6#%fn Copyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$-%1homalg/ta blenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F96#;""",&F;F JF<F;@$/8&7"-FC6#FO>FN-&F36#%'matrixG6#-&%'linalgG6#%*transposeG6#-FV6#-%6homal g/NormalizeInputG6$9$F3-%0homalg/ZeroRowsG6%FN9%F3F0F0F0F0, Q5homalg/ZeroColumns.mF0 M7R0 I0homalg/ZeroRowsf*6%%#_MG'%$varG%%listG%,RingPackageG6'%#RPG%$narG%"MG%"mG%"zG 6#%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$-%1homa lg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6#-F56#&F;6#;""" ,&F=FLF>F=@$/8&7"-FE6#FQ>FP-%:homalg/ReduceRingElementsG6%9$9%F5>8'-&F56#%-Numb erOfRowsG6#FP>8(-&F56#%%ZeroG6#-&F56#%3NumberOfGeneratorsGFjn-%$mapG6$f*6#%"aGF 26$%)operatorG%&arrowGF2@$/&T%6#FXT#FXF2F26&F/F\oF-FP7#-%"$G6#;FLFenF2F2F2F2, Q2homalg/ZeroRows.mF2 M7R0 I8homalg/BasisOfRowModulef*6%%"MG'%$varG%%listG%,RingPackageG6$%#RPG%$narG6%%fn Copyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)remember G6"C%>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6 #-F46#&F:6#;""",&F<FKF=F<-&F46#%'matrixG6#-%6homalg/NormalizeInputG6$-%5homalg/ BasisOfModuleG6#F:F4F1F1F1F1, Q:homalg/BasisOfRowModule.mF1 M7R0 I(homalgF=6"%&falseGE\[lM%+KernelFMapGf*F$F$6%%fnCopyright~(C)~2004~by~Mohamed~ Barakat.~All~rights~reserved.G%'systemG%)rememberGF$C$30%3homalg/initializedG.% %trueG0-%,homalg/initGF$""!-%2homalg/KernelFMapG6#9"F$F$F$%)CoimageFGf*F$F$6%%f nCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%0homal g/CoimageFGF9F$F$F$%6LongExactHomologySeqFGf*F$F$6#%[oCopyright~(C)~2004-2006~b y~Mohamed~Barakat.~All~rights~reserved.GF$C$F.-%=homalg/LongExactHomologySeqFGF 9F$F$F$%)PushoutFGf*F$F$6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~ reserved.GF+F,F$C$F.-%0homalg/PushoutFGF9F$F$F$%/CompleteKerSqFGf*F$F$6#F*F$C$F .-%6homalg/CompleteKerSqFGF9F$F$F$%,SyzygiesOpFGf*F$F$6%%^pCopyright~(C)~2003-2 004~by~Daniel~Robertz~and~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%3ho malg/SyzygiesOpFGF9F$F$F$%,LeftDivideFGf*F$F$FRF$C$F.-%3homalg/LeftDivideFGF9F$ F$F$%1IsCommutativeSqFGf*F$F$FRF$C$F.-%8homalg/IsCommutativeSqFGF9F$F$F$%-Coker nelFMapGf*F$F$F)F$C$F.-%4homalg/CokernelFMapGF9F$F$F$%-IsBijectiveFGf*F$F$6#FLF $C$F.-%4homalg/IsBijectiveFGF9F$F$F$%3CohomologyModulesFGf*F$F$FRF$C$F.-%:homal g/CohomologyModulesFGF9F$F$F$%1IsShortExactSeqFGf*F$F$FRF$C$F.-%8homalg/IsShort ExactSeqFGF9F$F$F$%4PullbackPairOfMapsFGf*F$F$6%%[oCopyright~(C)~2004-2007~by~M ohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%;homalg/PullbackPairOfMapsFGF9 F$F$F$%'ImageFGf*F$F$FKF$C$F.-%.homalg/ImageFGF9F$F$F$%+KernelFEmbGf*F$F$6%%[oC opyright~(C)~2003-2007~by~Mohamed~Barakat.~All~rights~reserved.GF+F,F$C$F.-%2ho malg/KernelFEmbGF9F$F$F$%4LeftDerivedFunctorFGf*F$F$6#%[oCopyright~(C)~2005-200 6~by~Mohamed~Barakat.~All~rights~reserved.GF$C$F.-%;homalg/LeftDerivedFunctorFG F9F$F$F$%/FunctorOnSeqsFGf*F$F$6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~ rights~reserved.GF+F,F$C$F.-%6homalg/FunctorOnSeqsFGF9F$F$F$%-CokernelFEpiGf*F$ F$FhpF$C$F.-%4homalg/CokernelFEpiGF9F$F$F$%8LongExactCohomologySeqFGf*F$F$6#Fip F$C$F.-%?homalg/LongExactCohomologySeqFGF9F$F$F$%+IsZeroMapFGf*F$F$F)F$C$F.-%2h omalg/IsZeroMapFGF9F$F$F$%,LeftDivideCGf*F$F$6#%enCopyright~(C)~2008~by~Barbara ~Bremer.~All~rights~reserved.GF$C$F.-%3homalg/LeftDivideCGF9F$F$F$%-IsInjective FGf*F$F$6#F>F$C$F.-%4homalg/IsInjectiveFGF9F$F$F$%2ImageOfSubmoduleFGf*F$F$FhoF $C$F.-%9homalg/ImageOfSubmoduleFGF9F$F$F$%*PullbackFGf*F$F$F)F$C$F.-%1homalg/Pu llbackFGF9F$F$F$%*CokernelFGf*F$F$6%%[oCopyright~(C)~2004-2005~by~Mohamed~Barak at.~All~rights~reserved.GF+F,F$C$F.-%1homalg/CokernelFGF9F$F$F$%-CompleteSeqFGf *F$F$FbrF$C$F.-%4homalg/CompleteSeqFGF9F$F$F$%.IsSurjectiveFGf*F$F$F`tF$C$F.-%5 homalg/IsSurjectiveFGF9F$F$F$%0CofunctorOnSeqFGf*F$F$F)F$C$F.-%7homalg/Cofuncto rOnSeqFGF9F$F$F$%(KernelFGf*F$F$F`uF$C$F.-%/homalg/KernelFGF9F$F$F$%*ImageFEpiG f*F$F$FKF$C$F.-%1homalg/ImageFEpiGF9F$F$F$%1DefectOfHomsFMapGf*F$F$F)F$C$F.-%8h omalg/DefectOfHomsFMapGF9F$F$F$%3PushoutPairOfMapsFGf*F$F$FKF$C$F.-%:homalg/Pus houtPairOfMapsFGF9F$F$F$%/ConnectingHomFGf*F$F$FRF$C$F.-%6homalg/ConnectingHomF GF9F$F$F$%1CompleteImSqInvFGf*F$F$FRF$C$F.-%8homalg/CompleteImSqInvFGF9F$F$F$%- LeftinverseFGf*F$F$6#%ioCopyright~(C)~2004~by~Daniel~Robertz~and~Mohamed~Baraka t.~All~rights~reserved.GF$C$F.-%4homalg/LeftinverseFGF9F$F$F$%+EqualMapsFGf*F$F $F)F$C$F.-%2homalg/EqualMapsFGF9F$F$F$%1CofunctorOnSeqsFGf*F$F$F)F$C$F.-%8homal g/CofunctorOnSeqsFGF9F$F$F$%.DefectOfHomsFGf*F$F$6%%^pCopyright~(C)~2003-2008~b y~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.GF+F,F$C$F.-%5homalg/ DefectOfHomsFGF9F$F$F$%*ImageFEmbGf*F$F$FKF$C$F.-%1homalg/ImageFEmbGF9F$F$F$%-R ightDivideFGf*F$F$F^sF$C$F.-%4homalg/RightDivideFGF9F$F$F$%1HomologyModulesFGf* F$F$FRF$C$F.-%8homalg/HomologyModulesFGF9F$F$F$%7RightDerivedCofunctorFGf*F$F$F [rF$C$F.-%>homalg/RightDerivedCofunctorFGF9F$F$F$%.FunctorOnSeqFGf*F$F$FbrF$C$F .-%5homalg/FunctorOnSeqFGF9F$F$F$%.CompleteImSqFGf*F$F$FRF$C$F.-%5homalg/Comple teImSqFGF9F$F$F$F$, Q*homalgF.mF$ M7R0 I5homalg/BasisOfModulef*6%%#_MG'%%_varG%%listG%,RingPackageG6/%#RPG%$narG%"vG%$ varG%)ring_relG%"MG%"mG%"nG%"BG%#BlG%#BrG%&ranklG%%rankG6%%[oCopyright~(C)~2004 -2005~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C*>8$-%1ho malg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F?%*procedureG-%'RETURNG6#-F?6#&FE6#;" "",&FGFVFHFG>8&-%5homalg/NormalizeRingG6$9%F?>8'&FY6#FV>8(&FY6#""#>8)-%6homalg/ NormalizeInputG6$9$F?>8*-&F?6#%3NumberOfGeneratorsG6#Fbo@%-%(hastypeG6$Fbo%"=GC 4>8+-Fjo6$FboQ$rhsF<>Fbo-%$mapG6$f*6#%"aGF<6$%)operatorG%&arrowGF<-F[q6$%#opG7$ -%$lhsG6#Ffo-%$rhsGFiqF<F<F<Fbo@$0F]o7">Fbo-&F?6#%,UnionOfRowsG6$Fbo-Fdo6$-%/ho malg/DiagMatG6$-%"$G6$F]o,&FhoFVFepFVF?F?>8,-&F?6#%0TriangularBasisG6$FboFin@$4 -FK6$F_s&F?6#%+matrixtypeG>F_s-&F?6#%'matrixG6#F_s>F_s-Fdo6$F_sF?>8--&F?6#%/Cer tainColumnsG6$F_s7#;FVFho>8.-Fht6$F_s7#;,&FVFVFhoFVFG>8/-%3homalg/RankOfGaussG6 $FftF?>80-FhuFdt>%0CompCond_homalgG-&F?6#%,CertainRowsG6$F_u7#;,&FfuFVFVFVF[v>F ft-F`v6$Fft7#;FVFfu>F_u-F`v6$F_uFjv@$32,&F`oFVFHFV9#-FK6$&FE6#""$%'symbolG-%'as signG6$FfwF^v@$/FftF^rC$>Fft7#-&F?6#%%ZeroG6#Fho>F_u7#-Fcx6#Fep@$/-Fjo6#FftFV>F ft-F[q6$FeqFft@$/-Fjo6#F_uFV>F_u-F[q6$FeqF_u-%$zipG6%f*6$F_q%"bGF<F`qF</FfoFgnF <F<F<FftF_uC*@$F]r>Fbo-Far6$Fbo-Fdo6$-Fhr6$-F[s6$F]oFhoF?F?>F_sF`s@$Ffs>F_sF]t> F_sFct>F[vF\v>F_s-F`v6$F_s7#;FVF[v@$/F_sF^r>F_sFax@%/-FjoFatFV-F[q6$FeqF_sF_sF< 6#F^vF<F<, Q7homalg/BasisOfModule.mF< M7R0 I6homalg/DerMinusLogInvf*6%%"fG%$varG%,RingPackageG6&%#RPG%$narG%#LJG%"SG6#%fnC opyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C)>8$-%1homalg/tab lenameG6%9!&9"6#!""8%@$-%%typeG6$F2%*procedureG-%'RETURNG6#-F26#&F86#;""",&F:FI F;F:>8&7$,$9$F:-%#opG6#-%$mapG6$f*6#%"aGF/6$%)operatorG%&arrowGF/-%%diffG6$T$FO F/F/6$F%FO9%>8'-%2homalg/SyzygiesOpG6%FLF[oF2>F]o-%6homalg/NormalizeInputG6$F]o F2>F]o-&F26#%/CertainColumnsG6$F]o7#;""#F:-%-homalg/ImageG6%F]oF[oF2F/F/F/F/, Q8homalg/DerMinusLogInv.mF/ M7R0 I.homalg/DerModf*6$%%_varG%,RingPackageG6&%#RPG%$narG%%optsG%$varG6#%[oCopyrigh t~(C)~2003-2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C'>8$-%1homalg/table nameG6%9!&9"6#!""8%@$-%%typeG6$F1%*procedureG-%'RETURNG6#-F16#&F76#;""",&F9FHF: F9@%2,&FHFHF:FH9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F76#;""#FIF1>&FO6#Q2numbe r_of_optionsF.""!@%2,&FMFHFenF9,&FYFHF:FH>8'9$>F^o&F76#FY-%-homalg/Hom_RG6%-%/h omalg/KaehlerG6#F7F^oF1F.F.F.F., Q0homalg/DerMod.mF. M7R0 I1homalg/Extensionf*6(%"nG%"MG%$etaG%"NG%$varG%,RingPackageG6:%#RPG%$narG%%opts G%$resG%%homsG%(modulesG%%Xn_1G%%Xn_2G%%dn_1G%$dXnG%&dXn_1G%#piG%&iota1G%&iota2 G%"GG%"PG%'alpha1G%%betaG%%genGG%"gG%'alpha2G%-alpha2_iota2G%$extG%"iG6%%LCopyr ight~(C)~2007~by~~All~rights~reserved.G%'systemG%)rememberG6"C;@$4-%%typeG6$9$% (integerG-%'RETURNG6#-%2homalg/Extension1G6#9">8$-%1homalg/tablenameG6%9!&FW6#! ""8%@$2,&""&"""F[oF`o9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FW6#;""',&FjnF`oF[o FjnFY@$2FO""!-%&ERRORG6#%/n~must~be~>=~0G@$/FOFap-FR6#-%:homalg/NormalizeExtens ionG6&9'9&9%9(>8'-%5homalg/ResolveModuleG6&FOF_qF`qFY>8(-Feo6#&Fbq6#F`o>8)-Feo6 #&Fbq6#""#>8*-%6homalg/NormalizeInputG6$&F]r6#,&FOF`oFjnF`oFY>8+&F]r6#,&FOF`o!" #F`o>8,-Feo6#&FgqFir>8--%.homalg/KernelG6(Fdr-Feo6#FbsF\sF`q/Q=var_to_assign_em bedding_infoFH.80FY>8.-%-homalg/ImageG6'F[tF\sF`q/F^t.81FY>8/-%0homalg/ImageEpi G6&F[tF\sF`qFY>83-%9homalg/PushoutPairOfMapsG6)-Feo6#F`tFdr-Feo6#F^qF]qF`q/Q@va r_to_assign_functor_on_objectFH.82FY>84&F_uFar>86-%(convertG6$-%@homalg/Generat orsOfPresentationG6%FjuF`qFY%'matrixG>87-&FY6#%3NumberOfGeneratorsG6#Fdr>88-%/h omalg/ComposeG6&-&FY6#%/CertainColumnsG6$F_v7#;F`oFhvFjtF`qFY>89-Faw6&F_wFhtF`q FY>Fhr-Feo6#Fju>Fes-Feo6#F[x>&F]r6#FO-%)CokernelG6$F]qF`q>&FgqFfx-Feo6#F\v@%4-% )assignedG6#&Fco6#Q.pos_of_NORMALFH-%7homalg/PrettyExtensionG6&FgqF]rF`qFY-FR6$ -Feo6#Fgq-Feo6#F]rFHFHFHFH, Q3homalg/Extension.mFH M7R0 I0homalg/HomMap_Rf*6'%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%#RPG%$narG%)o ptionalG%*cofunctorG6%%[oCopyright~(C)~2003-2005~by~Mohamed~Barakat.~All~rights ~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%ty peG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&&F>6#;""&FP>8'%-homal g/Hom_RG-%2homalg/FunctorMapG6)FX7#9$9%7#9&9'FRF8F5F5F5F5, Q2homalg/HomMap_R.mF5 M7R0 I3homalg/IsInjectivef*6'%"MG%"AG%"NG%$varG%,RingPackageG6&%#RPG%$narG%%optsG%$k erG6#%[oCopyright~(C)~2003-2006~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8 $-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedureG-%'RETURNG6#-F46#& F:6#;""",&F<FKF=F<@%2,&""#FKF=FK9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F:6#;""$ FLF4>&FS6#Q2number_of_optionsF1""!@$2,&FQFKFinF<,&""%FKF=FK-FD6#-%4homalg/IsInj ectiveFG6#F:>8'-%.homalg/KernelGFfo-%4homalg/IsZeroModuleG6%Fho9'F4F1F1F1F1, Q5homalg/IsInjective.mF1 M7R0 I1homalg/KernelEmbf*6'%"MG%"AG%"NG%$varG%,RingPackageG6)%#RPG%$narG%%optsG%$pos G%)optionalG%$kerG%6kernel_embedding_infoG6%%[oCopyright~(C)~2003-2007~by~Moham ed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C.>8$-%1homalg/tablename G6%9!&9"6#!""8%@$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA@% 2,&""#FPFBFP9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F?6#;""$FQF9>&FX6#Q2number_o f_optionsF6""!@$2,&FVFPF^oFA,&""%FPFBFP-FI6#-%2homalg/KernelFEmbG6#F?>FX-FZ6#-F gn6$&F?6#;""&FQF9>8'%%NULLG@$-%)assignedG6#&FX6#QGpos_of_var_to_assign_functor_ on_objectF6>Ffp6$Ffp/F\qFgp@$-Fjp6#&FX6#QDpos_of_var_to_assign_embedding_infoF6 >Ffp6$Ffp/FeqFgp>8(-%#opG6#-%'subsopG6$Ffp7#Fap>8)-%.homalg/KernelG6)9$9%9&9'/Q =var_to_assign_embedding_infoF6.8*F\rF9@$-Fjp6#&FX6#Q@var_to_assign_functor_on_ objectF6-%'assignG6$FdsFer-FZ6#F`sF6F6F6F6, Q3homalg/KernelEmb.mF6 M7R0 I2homalg/KernelFEmbf*6%%"AG'%$varG%%listG%,RingPackageG6(%#RPG%$narG%%optsG%$po sG%)optionalG%$kerG6%%[oCopyright~(C)~2003-2007~by~Mohamed~Barakat.~All~rights~ reserved.G%'systemG%)rememberG6"C,>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typ eG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@@$2,&""#FOFAFO9#>8&-%%cop yG6#-%2homalg/GetOptionsG6$&F>6#;""$FPF8>8'%%NULLG@$-%)assignedG6#&FW6#QGpos_of _var_to_assign_functor_on_objectF5>F]o6$F]o/FcoF^o@$-Fao6#&FW6#QDpos_of_var_to_ assign_embedding_infoF5>F]o6$F]o/F\pF^o>8(-%#opG6#-%'subsopG6$F]o7#Fhn>8)-%/hom alg/KernelFG6&9$9%FcpF8@$-Fao6#&FW6#Q@var_to_assign_functor_on_objectF5-%'assig nG6$FeqF\q-&F86#%'matrixG6#-%;homalg/EmbedInFactorModuleG6$F\qF8F5F5F5F5, Q4homalg/KernelFEmb.mF5 M7R0 I5homalg/LEHS2AiBjCconf*6$%%LEHSG%,RingPackageG6(%#RPG%$narG%$LHSG%"HG%"iG%'con homG6#%fnCopyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G6"C+>8$-%1 homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F96# ;""",&F;FJF<F;>8&-%$mapG6$%$lhsG-%#opG6#-%%evalG6#9$>8'-%&tableGF0?&8(7'.%"AG.% %iotaG.%"BG.%#nuG.%"CG%%trueGC%-%'selectG6%%$hasGFMFhn-%%sortG6#-FO6$f*6#%"aGF0 6$%)operatorG%&arrowGF0-FS6$7$""!FJFXF0F0F0%"%G>&FZ6#Fhn-FO6$f*F`pF0FbpF0-%%cop yG6#&T$6#&-Fgo6%Fio-Fgo6%FioT%T'FX6#FJF0F06(F%FXF*FMF,FhnFip-Fgo6%FioFM.%&delta G-F[p6#-FO6$f*F`pF0FbpF0-FS6$FJFXF0F0F0Fip>8)-FO6$f*F`pF0FbpF0-Faq6#&Fdq6#&-Fgo 6%Fio-Fgo6%FioF[rFarFXF]rF0F06&F%FXF*FMFip-FO6$Faq7(&FZ6#Fjn&FZ6#F\o&FZ6#F^o&FZ 6#F`o&FZ6#FboF[sF0F0F0F0, Q7homalg/LEHS2AiBjCcon.mF0 M7R0 I:homalg/ReduceHomomorphismf*6&%#_AG%#_MG'%$varG%%listG%,RingPackageG6'%#RPG%$n arG%"AG%"MG%$redG6%%fnCopyright~(C)~2005~by~Mohamed~Barakat.~All~rights~reserve d.G%'systemG%)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F8% *procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%6homalg/NormalizeInputG6$9$ F8>8'-FT6$9%F8>8(-%.homalg/ReduceG6&FRFX9&F8-&F86#%'matrixG6#-FT6$FgnF8F5F5F5F5, Q<homalg/ReduceHomomorphism.mF5 M7R0 I.homalg/Reducef*6&%#_LG%#_BG'%$varG%%listG%,RingPackageG62%#RPG%$narG%"RG%"BG% "mG%"nG%"zG%"LG%%RINGG%"lG%"bG%$posG%"qG%"rG%#RlG%#RrG6%%[oCopyright~(C)~2004-2 005~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homa lg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$FC%*procedureG-%'RETURNG6#-FC6#&FI6#;""" ,&FKFZFLFK>8&%%NULLG>8'-%6homalg/NormalizeInputG6$9%FC@%-%(hastypeG6$Fjn%"=GC.> 8(-&FC6#%3NumberOfGeneratorsG6#Fjn>8)-Fho6$FjnQ$rhsF@@%-Fao6$9$Fco>8+-F\o6%Fdp8 ,FCC%>8*-&FC6#%%ZeroG6#F]p>Ffp-&FC6#%'AddRhsG6%Fdp9&7#-%"$G6$F\q-&FC6#%-NumberO fRowsG6#Fdp>Ffp-F\o6%FfpFipFC>Fjn-%$mapG6$f*6#%"aGF@6$%)operatorG%&arrowGF@-Fgr 6$%#opG7$-%$lhsGFar-%$rhsGFarF@F@F@Fjn>Ffp-Fgr6$f*FjrF@F\sF@F_sF@F@F@Ffp?&8-Ffp %%trueGC%>81F\t?&8.FjnF]tC$>8/-%4homalg/FirstNonZeroG6%FbtFfoFC@$2""!FetC%>80-& FC6#%6QuotientWithRemainderG6%&F`t6#Fet&FbtFeuFhq>F`t-&FC6#%)simplifyG6$-%$zipG 6%f*6$%"xG%"yGF@F\sF@,&FdpFZ*&T#FZF^oFZFKF@F@6$F8F^uF`tFbtFhq>F`t-Fgr6&F`uF`tFZ Fhq>Fgn6$FgnF`t>Fgn7#Fgn>82-Fgr6$f*FjrF@F\sF@&Fdp6#;FZFfvF@F@6$F0FfoFgn>83-Fgr6 $f*FjrF@F\sF@&Fdp6#;,&FfvFZFZFZFKF@F@FgwFgn@$&Fip6#FZ>F`w-Fgr6$FasF`w@$&Fip6#"" #>Fiw-Fgr6$FasFiw-F^v6%f*6$F[sF6F@F\sF@/FdpF^oF@F@F@F`wFiwC&>FfpFgp?&F\tFfpF]tC %>F`tF\t?&FbtFjnF]tC$>Fet-Fgt6$FbtFC@$FjtC%>F^uF_u>F`t-Fiu6$-F^v6%f*FavF@F\sF@F dvF@F@FgvF`tFbtFhq>F`tFiv>FgnF\w>FgnF^w@%Fip-Fgr6$FasFgnFgnF@F@F@F@, Q0homalg/Reduce.mF@ M7R0 I3homalg/RightDividef*6'%#_BG%#_AG%#_LG%$varG%,RingPackageG61%#RPG%$narG%%optsG %"BG%"AG%"mG%"LG%#ALG%$IALG%"iG%#CAG%"rG%#CBG%#NFG%"aG6#%[oCopyright~(C)~2004-2 007~by~Mohamed~Barakat.~All~rights~reserved.G6"C6>8$-%1homalg/tablenameG6%9!&9" 6#!""8%@$-%%typeG6$F?%*procedureG-%'RETURNG6#-F?6#&FE6#;""",&FGFVFHFG@%2,&""$FV FHFV9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&FE6#;""%FWF?>&Fhn6#Q2number_of_optio nsF<""!@$2,&FfnFVFdoFG,&FboFVFHFV-FO6#-%4homalg/RightDivideFG6#FE>8'-%6homalg/N ormalizeInputG6$9$F?>8(-Fdp6$9%F?>8)-&F?6#%3NumberOfGeneratorsG6#Fhp@$0-F_q6#Fb pF]q-%&ERRORG6#%gnThe~first~two~arguments~have~different~numbers~of~'columns'!G >8*-Fdp6$9&F?@$30F\r7"0-F_q6#F\rF]q-Fhq6#%]oThe~second~and~third~argument~have~ different~numbers~of~'columns'!G>8+-&F?6#%,UnionOfRowsG6$FhpF\r>8,-%2homalg/Bas isCoeffG6&F[s9'8.F?/Q#CAF<-Fjn6#Fgs>8/-&F?6#%-NumberOfRowsG6#F[s>81-%3homalg/Re duceCoeffG6'FbpFbsFfs80F?/Q#CBF<-Fjn6#Fht@$0-%3homalg/BetterBasisG6&FdtFfsQ3ALL OW_EMPTY_OUTPUTF<F?Fcr@%-%)assignedG6#&Fhn6#Q0pos_of_USE_FAILF<-FO6#%%FAILG-Fhq 6#%`sThe~second~argument~is~not~a~right~factor~of~the~first~(modulo~the~third), ~i.e.~the~second~(+third)~argument~is~not~a~generating~set!G>82-F_tFbq@$-Feu6#& Fhn6#Q0var_to_assign_YF<-%'assignG6$Ffv-%/homalg/ComposeG6&-%.homalg/MulMatG6&F GFhtFfsF?-&F?6#%/CertainColumnsG6$Fgs7#;,&FavFVFVFVF]tFfsF?-F]w6&F_w-Fcw6$Fgs7# ;FVFavFfsF?F<F<F<F<, Q5homalg/RightDivide.mF< M7R0 I7homalg/SubfactorModulef*6&%$_M1G%$_M2G'%$varG%%listG%,RingPackageG60%#RPG%$na rG%%optsG%)optionalG%#M1G%#M2G%"BG%"NG%"nG%(gen_orgG%.convert_procsG%(gen_newG% "GG%"SG6%%^pCopyright~(C)~2003-2005~by~Mohamed~Barakat~and~Daniel~Robertz.~All~ rights~reserved.G%'systemG%)rememberG6"C1>8$-%1homalg/tablenameG6%9!&9"6#!""8%@ $-%%typeG6$FA%*procedureG-%'RETURNG6#-FA6#&FG6#;""",&FIFXFJFI@$2,&""$FXFJFX9#>8 &-%%copyG6#-%2homalg/GetOptionsG6$&FG6#;""%FYFA>8'Fao>8(-%6homalg/NormalizeInpu tG6$9$FA>8)-Fjo6$9%FA@&/F^p7">F^p7#-&FA6#%%ZeroG6#-&FA6#%3NumberOfGeneratorsG6# Fho0F\q-F]q6#F^p-%&ERRORG6#%ZThe~two~modules~are~submodules~of~different~free~m odules!G>8*-%5homalg/BasisOfModuleG6%F^p9&FA>8+-%.homalg/ReduceG6&FhoFiqF]rFA>F _r-%3homalg/BetterBasisG6%F_rF]rFA>8,-&FA6#%-NumberOfRowsG6#F_r@%-%)assignedG6# &Fjn6#Q4original_generatorsF>C'>8--Fjo6$FbsFA>8.-%6homalg/GetConvertInfoG6%FbsF ]rFA@$0F[t%%NULLG>Fgs-%9homalg/ConvertGeneratorsG6%Fgs&F[t6#Q5normalize_generat orsF>FA>8/-Fjo6$-%/homalg/ComposeG6&F_rFgsF]rFAFA@$F`t>Fjt-Fdt6%Fjt&F[t6#Q4read just_generatorsF>FA>FjtF_r>80-%$zipG6%f*6$%"aG%"bGF>6$%)operatorG%&arrowGF>/F\p FapF>F>F>-%7homalg/StdBasisVectorsG6$FhrFAFjt>81-%5homalg/SyzygiesBasisG6&F_rFi qF]rFA-%4homalg/PresentationG6(FiuFivF]r/Q5embedding_generatorsF>F_rFfoFAF>F>F> F>, Q9homalg/SubfactorModule.mF> M7R0 I<homalg/TensorProduct2OnSeqsf*6&%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPac kageG6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rig hts~reserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-% %typeG6$F8%*procedureG-%'RETURNG6#-F86#&F>6#;""",&F@FOFAF@>8&-%>homalg/Functor_ TensorProduct2G6#9$-%5homalg/FunctorOnSeqsG6$FR&F>6#;""#F@F5F5F5F5, Q>homalg/TensorProduct2OnSeqs.mF5 M7R0 I/homalg/TorqMapf*6)'%"qG%*nonnegintG%"MG%$phiG%"NG%"LG'%$varG%%listG%,RingPack ageG6&%#RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2005~by~Mohamed~Baraka t.~All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6 #!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSFEFD>8&&FB6#;"" (FT>8'f*6#F(F9F9F9-%,homalg/TorqG6&T$9$T&&FB6#;""#FDF9F96&F&F]oF+9(-%2homalg/Fu nctorMapG6)Ffn7#9%9&7#9'9)FVF<F9F9F9F9, Q1homalg/TorqMap.mF9 M7R0 I3homalg/Annihilatorf*6&%#_mG%#_MG%%_varG%,RingPackageG6+%#RPG%$narG%"MG%"nG%"m G%$varG%$AnnG%"lG%%AnnlG6%%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~ reserved.G%'systemG%)rememberG6"C(>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typ eG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB@%2""#,&9#FQFCFBC&>8&-%6h omalg/NormalizeInputG6$9%F:>8'-&F:6#%3NumberOfGeneratorsG6#FZ@%4-FF6$9$<$%%list G&F:6#%+matrixtypeG>8(-Ffn6$7#FdoF:C$>F[p-Ffn6$FdoF:@$4/-F\o6#F[pFjn>F[p7#-%$ma pG6$%#opGF[p>8)9&C&>FZ-Ffn6$&F@6#FQF:>FjnF[o>F[p-%7homalg/StdBasisVectorsG6$Fjn F:>F_q&F@6#FU>8*-%5homalg/SyzygiesBasisG6&7#&F[pFfqFZF_qF:?&8+7#-%"$G6#;FU-%%no psGFgp%%trueGC$>8,-Fbr6&7#&F[p6#FgrFZF_qF:>F`r-%4homalg/IntersectionG6&F`rFbsF_ qF:-%<homalg/ReducedBasisOfModuleG6%F`rF_qF:F7F7F7F7, Q5homalg/Annihilator.mF7 M7R0 I7homalg/CofunctorOnSeqFf*6&%+_cofunctorG'%%homsG<$%&tableG%%listG%$varG%,RingP ackageG6)%#RPG%$narG%*cofunctorG%#hiG%"hG%'H_homsG%"iG6%%fnCopyright~(C)~2004~b y~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C*>8$-%1homalg/ta blenameG6%9!&9"6#!""8%@$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDF SFEFD@%-FH6$9$F*@%2""!-%%nopsG6#FX>8&&FX6#FS-%&ERRORG6#%gnThe~first~argument~pr oviding~the~cofunctor~is~an~empty~list!G>FjnFX@%-FH6$9%F*>8'7#-%"$G6#;FS-Fgn6#F eo>Fgo-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGF^p>8(-Fgn6#Fgo>8)-F)F9?&8*7#-Fj o6#;FSF]q%%trueG>&Faq6#,&&Fgo6#FdqFSFDFS-Fjn6%&Feo6#F^r9&F<-%%copyG6#FaqF9F9F9F 9, Q9homalg/CofunctorOnSeqF.mF9 M7R0 I1homalg/CokernelFf*6%%"AG'%$varG%%listG%,RingPackageG6'%#RPG%$narG%%optsG%)opt ionalG%5cokernel_target_hullG6%%[oCopyright~(C)~2004-2005~by~Mohamed~Barakat.~A ll~rights~reserved.G%'systemG%)rememberG6"C)>8$-%1homalg/tablenameG6%9!&9"6#!"" 8%@$-%%typeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F?FNF@F?@$-FC6$&F=6#FN% 'stringGC$@$/FSQ1RETURN_co_contraF4-FG6#Q*covariantF4-FG6#%%NULLG@$2,&""#FNF@FN 9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F=6#;""$FOF7>8'Fgo@$-%)assignedG6#&F`o6# QBvar_to_assign_F_target_hullmoduleF4C$>8(-&F76#%'matrixG6#-%6homalg/NormalizeI nputG6$9$F7-%'assignG6$FapFfp-%4homalg/PresentationG6'7"F_q9%F\pF7F4F4F4F4, Q3homalg/CokernelF.mF4 M7R0 I7homalg/ComposeFunctorsf*6&%)Functor1G%)Functor2G'%$varG%%listG%,RingPackageG6 (%#RPG%$narG%*F1_contraG%*co_contraG%)optionalG%"pG6#%^pCopyright~(C)~2005-2006 ~by~Mohamed~Barakat~and~Daniel~Robertz.~All~rights~reserved.G6"C(>8$-%1homalg/t ablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*procedureG-%'RETURNG6#-F76#&F=6#;""",&F? FNF@F?@%2""!-%+searchtextG6$Q'contraF4-&9$6#FN6%Q1RETURN_co_contraF49&F7C$>8&%% trueG@%2FR-FT6$FV-&9%FZFen>8'Q*covariantF4>FdoQ.contravariantF4C$>Fjn%&falseG@% F]o>FdoFgo>FdoFeo?&8)7#-%"$G6#;FN,&-%%nopsG6#Fbo#FN""#F?FNF[o@$-FC6$&Fbo6#,&FNF NF_pFjp%'stringGC$@,/F^qQIRETURN_FunctorMaps_of_a_composed_functorF4-FG6#f*6#%$ objGF46$%)operatorG%&arrowGF47$&T$6#Fjp-&T&6#,&FjpFNT'Fjp6#FYF4F46(F%FYF&FboF1F _p/F^qFfn@%2FR-FT6$FV-Fao6%-%2homalg/ZeroModuleG6$FgnF7FgnF7@%Fjn-FG6#f*FiqF4F[ rF4FeoF4F4F4-FG6#f*FiqF4F[rF4FgoF4F4F4@%Fjn-FG6#f*FiqF4F[rF4FgoF4F4F4-FG6#f*Fiq F4F[rF4FeoF4F4F4/F^qQ?RETURN_proc_to_induce_morphismF4-FG6#%%NULLG/F^qQKRETURN_ FunctorMap_of_the_functor_to_deriveF4Fdt/F^qQ;RETURN_morphism_on_objectsF4Fdt-F G6#f*FiqF4F[rF4-&T,FZ6%&F`r6#,&FNFNT%FjpT(T)F4F46,F&FboF1F_pF(FgnF,F7F%FY>8(&F= 6#;""%FOf*6%FjqF'F*6(F,F-%4Functor1_on_objectsG%6Functor1_on_morphismsG%4Functo r2_on_objectsG%6Functor2_on_morphismsG6#%fnCopyright~(C)~2006~by~Mohamed~Baraka t.~All~rights~reserved.GF4C*>F7F8@$FBFF>Fjn&F`rFZ>FdoF_r>Fju&FdrFZ>F_p&FdrFar@$ -FC6$&F=FZFaqC$@,/FewFeq-FG6#7$FdoF_p/FewFfn-FG6#Fgr/FewFctFdt/FewFhtFdt/FewFjt Fdt-FG6#-Fjn6%FewFboF7-Fjn6&-Fju6%FYFboF7FboFguF7F4F46*F%FYF&FboF/FdoF0FjuF4F4F 4F4, Q9homalg/ComposeFunctors.mF4 M7R0 I8homalg/DefectOfHomsFMapf*6)%'alpha1G%'alpha2G%$phiG%&beta1G%&beta2G'%$varG%%l istG%,RingPackageG6&%#RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2004~by~ Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tabl enameG6%9!&9"6#!""8%@$-%%typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQF CFB>8&&F@6#;""(FR>8'%5homalg/DefectOfHomsFG-%2homalg/FunctorMapG6)FZ7$9$9%9&7$9 '9(9)FTF:F7F7F7F7, Q:homalg/DefectOfHomsFMap.mF7 M7R0 I/homalg/DiagMatf*6"6-%#RPG%$narG%"MG%"iG%"mG%"nG%"AG%"rG%"cG%#Z1G%#Z2G6%%[oCop yright~(C)~2003-2005~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememb erGF$C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F7%*procedureG-%'RETURN G6#-F76#&F=6#;""",&F?FNF@F?>8&-%6homalg/NormalizeInputG6$&F=6#FNF7?&8'&F=6#;""# FO%%trueGC*>8(-&F76#%-NumberOfRowsG6#FQ>8)-&F76#%3NumberOfGeneratorsGF_o>8*-FS6 $FXF7>8+-F\o6#Fgo>8,-FcoF]p>8-7#-%"$G6$7#-Fep6$-&F76#%%ZeroGF$F_pFjn>8.7#-Fep6$ 7#-Fep6$FjpFaoF[p>FQ7$-%#opG6#-%$zipG6%f*6$%"aG%"bGF$6$%)operatorG%&arrowGF$7$- Fiq6#9$-Fiq6#9%F$F$F$FQFbp-Fiq6#-F\r6%f*F_rF$FbrF$FerF$F$F$F_qFgo-&F76#%'matrix GF_oF$F$F$F$, Q1homalg/DiagMat.mF$ M7R0 I1homalg/ExtOnSeqsf*6'%"qG%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6% %#RPG%$narG%*cofunctorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~r eserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%type G6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%3homalg/Functor_ExtG6 $9$9%-%7homalg/CofunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q3homalg/ExtOnSeqs.mF6 M7R0 I3homalg/Extq2OnSeqsf*6'%"qG%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG 6%%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~r eserved.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%type G6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%5homalg/Functor_Extq2 G6$9$9%-%5homalg/FunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q5homalg/Extq2OnSeqs.mF6 M7R0 I1homalg/GlobalDimf*6$'%%_varG%%listG%,RingPackageG6&%#RPG%$narG%"vG%$varG6%%fn Copyright~(C)~2004~by~Mohamed~Barakat.~All~rights~reserved.G%'systemG%)remember G6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F5%*procedureG-%'RETURNG6 #-F56#&F;6#;""",&F=FLF>F=>8&-%5homalg/NormalizeRingG6$9$F5>8'&FO6#FL@%/&FO6#""# 7"-%%nopsG6#FU-%&ERRORG6#%j\lCannot~predict~the~global~dimension~of~the~residue ~class~ring~modulo~a~non-zero~ideal!~Please~add~a~real~procedure~that~computes~ the~global~dimension~of~residue~class~rings~to~your~ring~package~and~add~a~Glob alDim~entry~pointing~to~it~in~the~homalg-conversion-table~of~your~ring~package! GF2F2F2F2, Q3homalg/GlobalDim.mF2 M7R0 I1homalg/HomHomMapf*6)%"MG%$phiG%"NG%"AG%"BG'%$varG%%listG%,RingPackageG6&%#RPG %$narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~righ ts~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%% typeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""(FR>8'f*6#F %F7F7F7-%.homalg/HomHomG6&9$T$T&&F@6#;""#FBF7F76&F(9'F)9(-%2homalg/FunctorMapG6 )FZ7#Fjn9%7#9&9)FTF:F7F7F7F7, Q3homalg/HomHomMap.mF7 M7R0 I7homalg/HomologyModulesf*6%'%(complexG<$%&tableG%%listG'%$varGF)%,RingPackageG 6*%#RPG%$narG%&firstG%#aiG%"lG%%stepG%$haiG%"jG6#%fnCopyright~(C)~2004~by~Moham ed~Barakat.~All~rights~reserved.G6"C+>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%% typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC@$/9$7"-FK6#FW@%-FG6$F VF)>8'7#-%"$G6#;FR-%%nopsG6#FV>Fhn-%%sortG6#-%$mapG6$%$lhsG-%#opG6#-%%evalGF`o> 8(-F_o6#Fhn>8&&FV6#&Fhn6#FR@%-FG6$Fcp%4homalg_presentationG>8)""#-FK6#-%8homalg /HomologyModulesFG6#FA>8*7#-F[o6#;F^q-%%iquoG6$F_pF]q-Ffo6$f*6#%"iGF86$%)operat orG%&arrowGF8-%4homalg/DefectOfHomsG6%-%$seqG6$&T$6#&T%6#,&*&T'FRFVFRFRT)FC/Fds ;""!,&FcsF^qFCFRT,T-F8F86.F&FVF1FhnF3F]qF58+F+9%F.F;FeqF8F8F8F8, Q9homalg/HomologyModules.mF8 M7R0 I@homalg/InjectivePresentationFFRf*6%%"PG%$varG%,RingPackageG6(%#RPG%$narG%%opt sG%/ONLY_IF_RANK_1G%$resG%"pG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~ri ghts~reserved.G6"C,>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F4%*procedu reG-%'RETURNG6#-F46#&F:6#;""",&F<FKF=F<@$2,&""#FKF=FK9#>8&-%%copyG6#-%2homalg/G etOptionsG6$&F:6#;""$FLF4@%-%)assignedG6#&FS6#Q6pos_of_ONLY_IF_RANK_1F1>8'%%tru eG>F`o%&falseG>8(-%:homalg/ResolutionOfModuleG6#F:>Feo-%9homalg/ShortenResoluti onG6&%)infinityGFeo9%F4>8)-%%nopsG6#Feo@$2FKF`p-FD6#%%FAILG@$3F`o0,&-&F46#%3Num berOfGeneratorsG6#&Feo6#FKFK-&F46#%-NumberOfRowsGFaqF<FKFfp-FUFaqF1F1F1F1, QBhomalg/InjectivePresentationFFR.mF1 M7R0 I4homalg/IsBijectiveFf*6%%"AG%$varG%,RingPackageG6'%#RPG%$narG%%optsG%(VERBOSEG %"bG6#%fnCopyright~(C)~2007~by~Mohamed~Barakat.~All~rights~reserved.G6"C(>8$-%1 homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F3%*procedureG-%'RETURNG6#-F36#&F96# ;""",&F;FJF<F;@$2,&""#FJF<FJ9#>8&-%%copyG6#-%2homalg/GetOptionsG6$&F96#;""$FKF3 @%-%)assignedG6#&FR6#Q/pos_of_VERBOSEF0>8'%%trueG>F_o%&falseG>8(7$-%4homalg/IsI njectiveFG6%9$9%F3-%5homalg/IsSurjectiveFGFho@%F_o@%/Fdo7$F`oF`oF`oFdo3&Fdo6#FJ &Fdo6#FOF0F0F0F0, Q6homalg/IsBijectiveF.mF0 M7R0 I0homalg/LHom2Mapf*6)%"qG%"LG%"MG%$phiG%"NG'%$varG%%listG%,RingPackageG6&%#RPG% $narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~right s~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%t ypeG6$F:%*procedureG-%'RETURNG6#-F:6#&F@6#;""",&FBFQFCFB>8&&F@6#;""(FR>8'f*6#F' F7F7F7-%,homalg/LHomG6&T$T&9$&F@6#;""#FBF7F76&F%F\oF&9%-%2homalg/FunctorMapG6)F Z7#9&9'7#9(9)FTF:F7F7F7F7, Q2homalg/LHom2Map.mF7 M7R0 I9homalg/ReplaceGeneratorsf*6%'%"MG%4homalg_presentationG%%_genG%,RingPackageG6 (%#RPG%$narG%%MgenG%$genG%$absG%"GG6#%fnCopyright~(C)~2005~by~Mohamed~Barakat.~ All~rights~reserved.G6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG6$F6%*p rocedureG-%'RETURNG6#-F66#&F<6#;""",&F>FMF?F>>8&-%@homalg/GeneratorsOfPresentat ionG6%9$Q9BOTH_TYPES_OF_GENERATORSF3F6@%-FB6$9%-%%listG6#%"=GC$@$0-%%nopsG6#FY- F\o6#FP-%&ERRORG6#%HThe~number~of~generators~must~coincide!G>8)FYC&@%-FB6$FYFen >8'FY>F[p-%6homalg/NormalizeInputG6$FYF6>8(-%$mapG6$%$lhsGFP@$0-&F66#%-NumberOf RowsG6#F[p-F\o6#FapF`o>Feo-%$zipG6%f*6$%"aG%"bGF36$%)operatorG%&arrowGF3/FTFYF3 F3F3FapF[p7$Feo-%#opG6#&FT6#;""#F>F3F3F3F3, Q;homalg/ReplaceGenerators.mF3 M7R0 I5homalg/ResolveModulef*6&'%"qG%(integerG%"MG%$varG%,RingPackageG6-%#RPG%$narG% "PG%$rhoG%&cokerG%$resG%%rdimG%"rG%"iG%"aG%#qqG6%%[oCopyright~(C)~2005-2006~by~ Mohamed~Barakat.~All~rights~reserved.G%'systemG%)rememberG6"C*>8$-%1homalg/tabl enameG6%9!&9"6#!""8%@$-%%typeG6$F>%*procedureG-%'RETURNG6#-F>6#&FD6#;""",&FFFUF GFF>8&-%&tableGF;>8'FY>&FX6#""!-%6homalg/FreeHullModuleG6%9%9&F>@%32,&""$FUFGFU 9#-FJ6$&FD6#""%%'stringGC$>&FXFE-%2homalg/ZeroModuleG6$F_oF>>&FfnFin-%/homalg/Z eroMapG6&FhnF^pF_oF>@%-FJ6$F^o%4homalg_presentationGC$>F^pF^o@%-%4homalg/IsZero ModuleG6%FhnF_oF>>FcpFdp>Fcp-%3homalg/IdentityMapGF]oC$>Fcp-%3homalg/CokernelEp iG6&F^oF_o/Q@var_to_assign_functor_on_objectF;.8(F>>F^pF]r@$09$FjnC)>8)-%:homal g/ResolutionOfModuleG6&F^oF_o/Q)TRUNCATEF;,&FarFUFFFUF>>8*-%.homalg/ResDimG6$Fd rF>>8+-%%nopsG6#F\s@%F^qC%>8-""#>&FX6#FUF_p>&FfnF\t-Fep6&F[tFhnF_oF>>FhsFU@%2Fa rFjn>8.Fas>FetFar?&8,7#-%"$G6#;FhsFet%%trueG@%1Fht,&FasFUFFFUC$>&FX6#Fht-%2homa lg/FreeModuleG6%&F\s6#,&FhtFFFFFUF_oF>>&FfnFeu-%%copyG6#&Fdr6#,$FhtFFC$>FduF_p> F]v-Fep6&Fdu&FX6#,&FhtFUFFFUF_oF>@$FaoC$>&FX6#,&FetFUFUFUF_p>&FfnF`w-Fep6&F_w&F X6#FetF_oF>-%#opG6#-%$mapG6$F_v7$FfnFXF;F;F;F;, Q7homalg/ResolveModule.mF; M7R0 I2homalg/RHomHomMapf*6*%"qG%"MG%$phiG%"NG%"AG%"BG'%$varG%%listG%,RingPackageG6& %#RPG%$narG%)optionalG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All ~rights~reserved.G%'systemG%)rememberG6"C'>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F;%*procedureG-%'RETURNG6#-F;6#&FA6#;""",&FCFRFDFC>8&&FA6#;"")FS>8' f*6#F&F8F8F8-%/homalg/RHomHomG6'T$9$T&T(&FA6#;""#FCF8F86(F%F\oF)9(F*9)-%2homalg /FunctorMapG6)Fen7#9%9&7#9'9*FUF;F8F8F8F8, Q4homalg/RHomHomMap.mF8 M7R0 I2homalg/TorqOnSeqsf*6'%"qG%"LG'%&alphaG<$%&tableG%%listG%%_varG%,RingPackageG6 %%#RPG%$narG%(functorG6%%fnCopyright~(C)~2006~by~Mohamed~Barakat.~All~rights~re served.G%'systemG%)rememberG6"C&>8$-%1homalg/tablenameG6%9!&9"6#!""8%@$-%%typeG 6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-%4homalg/Functor_TorqG6 $9$9%-%5homalg/FunctorOnSeqsG6$FS&F?6#;""$FAF6F6F6F6, Q4homalg/TorqOnSeqs.mF6 M7R0 I9homalg/A2ExtensionModulef*6)%#_MG%&etaMLG%#_LG%&etaLNG%#_NG%$varG%,RingPackag eG6,%#RPG%$narG%"MG%"LG%"NG%#d2G%"BG%"XG%#BbG%&etaMNG6#%enCopyright~(C)~2008~by ~Barbara~Bremer.~All~rights~reserved.G6"C->8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F<%*procedureG-%'RETURNG6#-F<6#&FB6#;""",&FDFSFEFD>8&-%6homalg/Norm alizeInputG6$&-%:homalg/ResolutionOfModuleG6&9$9)/Q)TRUNCATEF9""!F<6#FSF<>8'-FX 6$&-Ffn6&9&FinFjnF<F]oF<>8(-FX6$&-Ffn6&9(FinFjnF<F]oF<>8)-%%copyG6#&&-%5homalg/ ResolveModuleG6%""#FVFinF]o6#Fhp>8*-%/homalg/ComposeG6&F_p9%FinF<>8+-%3homalg/R ightDivideG6&F[qF_oFinF<>8,-F]q6&Faq9'FinF<>8--%3homalg/LeftDivideCG6'F_pFfqFgo FinF<@%/F[r%%FAILGFar-%:homalg/ReduceHomomorphismG6&F[rFgoFinF<F9F9F9F9, Q;homalg/A2ExtensionModule.mF9 M7R0 I=homalg/GetCleanRowsPositionsf*6&%#_MG%.clean_columnsG'%$varG%%listG%,RingPack ageG6*%#RPG%$narG%$oneG%"MG%"nG%+clean_rowsG%"jG%"iG6#%fnCopyright~(C)~2008~by~ Mohamed~Barakat.~All~rights~reserved.G6"C*>8$-%1homalg/tablenameG6%9!&9"6#!""8% @$-%%typeG6$F9%*procedureG-%'RETURNG6#-F96#&F?6#;""",&FAFPFBFA>8&-&F96#%$OneGF6 >8'-%6homalg/NormalizeInputG6$9$F9>8(-&F96#%-NumberOfRowsG6#FY>8)%%NULLG?&8*9%% %trueG?(8+FPFPFinFeo@$/&FY6$FgoFcoFSC$>F`o6$F`oFgo[7#F`oF6F6F6F6, Q?homalg/GetCleanRowsPositions.mF6 M7R0 IIhomalg/GetColumnIndependentUnitPositionsf*6&%#_MG%)pos_listG'%$varG%%listG%,R ingPackageG6"6#%fnCopyright~(C)~2008~by~Mohamed~Barakat.~All~rights~reserved.GF +-%Chomalg/GetIndependentUnitPositionsG6#9"F+F+F+F+, QKhomalg/GetColumnIndependentUnitPositions.mF+