M7R0
I2BarkatouReductiony6#%:ExpPartsBarkatouReductionG6+%-MoserPolynomG%.KatzInvari
antG%1TheLeadingMatrixG%4TheSecondTermMatrixG%.Get_ValuationG%+Get_DegreeG%/Ram
ified_CaseBG%+get_seriesG%(get_valG#t+6)%"AG%"xG%"tG%8LEadingTermNulauDepart1G%
$jj1G%#r1G%#C1G6E%"nG%"RG%"VG%"SG%"iG%#A0G%"sG%%tempG%#AAG%$nbrG%"JG%"TG%&ListA
G%'ListAAG%"vG%%NewAG%#t0G%"PG%%LeadG%"aG%$AAAG%&List1G%%TempG%&TTempG%%LISTG%-
LeadModifiedG%#s1G%$A0xG%%TEMPG%#vvG%"pG%7LEadingTermNulauDepartG%#jjG%"rG%"CG6
"6"C)-%)userinfoG6%""".F"%9a~call~of~the~algorithmeG>8$-_%.LinearAlgebraG%-RowD
imensionG6#9$@%/9#""$C&>8C-%'MatrixG6#Fao>8D""!>8EF]o>8FF]oC&>F^p9'>Fcp9(>Ffp9)
>Fhp9*>8,Fgo>%"jGFcp@%/FaoF]oC&>Feq,&FeqF]oF]oF]o>&%"eG6#Feq-%(convertG6$-%'ser
iesG6%,&&Fcq6$F]oF]oF]o&F^pFgrF]o9%Fdp%(polynomG>F\r7$/Fir*&FhpF]o)9&FfpF]o-%%s
ortG6%-%'expandG6#-%)simplifyG6#-%&evalaG6#**F\rF]oFhp!""FfpF^t)Fir,&FfpF]oF^tF
]oF^t7#Fir%*ascendingG-F[o6(F]oF^o%;we~get~an~exponential~partGF\r%2with~ramifi
cationGF]sC&-F[o6%F]oF^o%,Apply~MoserG>Fcq&-_%(DEtoolsG%-moser_reduceG6(-F`r6$F
go%&arrayGFirFir%"uG.8/.%%invTG6#F]o>8B,$-T%6$FcqFirF^t@'/F\vF]oC%>8)-T'F`v>85-
%(factorsG6#-_Fdo%9CharacteristicPolynomialG6$Fev%'lambdaG?(8(F]oF]o-%%nopsG6#&
Fiv6#""#%%trueGC'>87-%'RootOfG6#&&Fgw6#FcwFju>FeqFjq>F\r,&FhrF]o*&F]xF]oFirF^tF
]o>F\rF\s-F[o6(F]oF^oFetF\rFft/Fir*&FhpF]o)FirFfpF]o1F\vFdpC&>FeqFjq>F\rFhr>F\r
F\sFixC'-F[o6%F]oF^o%3The~leading~MatrixG>FevFfv>8+F]w>FivFjv@'/Fiy)FawFaoC'-F[
o6%F]oF^o%Wcase~1:~Nilpotente~and~moser~irreducible:~compute~KatzG>84-%%timeGFh
n>8&-T)F`v-F[o6&F]oF^o%8Time~for~computing~KatzG,&FdzF]oFczF^t-T+6(FcqF^pFeqFfp
FhpFgz33/FdwF]o/-%'degreeG6$&&FgwFjuFjuFawF]o0FiyF]zC'>F]x-F_x6#-%'factorG6#Fiy
>82F]v>Fcq-Fhs6#,&FcqF]o*(F]xF]o-_Fdo%/IdentityMatrixGFapF]o)FirFc\lF^tF^t>8=,&
&F^p6$;F]oFaoFb]lF]oFh\lF]o-T-6)-%$mapG6$Fes-Fhs6#FcqFirF`sF^]lFeqFfpFhpC$-F[o6
%F]oF^o%Ocase~2:~not~nilpotente,~for~all~roots~we~splitG?(FcwF]oF]oFdwFjwC+>Fc
\lF]v>F]xF^x>&88FcxFe\l>&86FcxF_]l>FczFdz>8;-Fg]l6%_%*AlgebraicG%'ReduceG&-_%/S
plittingLemmaG%:SplittingTheSystemOnePartG6$-Fhs6#Fd^lFir6#F[p.%)expandedG-F[o6
&F]oF^o%B~with~splitting~the~system~time:~G-%&evalfG6#F][l>Fc\l,$-F_v6$-Fg]l6$F
es-Fhs6#F[_lFirF^t-Fd]l6)Ff`lFirF`sFg^lFeqFfpFhpO-%$seqG6$&F]rFcx/Fcw;F]oFeqFhn
6$FeqF]r6.%6_thismoduledefinitionGFhnF+%.Get_ValuationGF)%1TheLeadingMatrixGF(%
.KatzInvariantGF-%/Ramified_CaseBGF%%:ExpPartsBarkatouReductionG6#""(%*protecte
dG+t+6%F2F3Faw6'F?%#A1GF:FenFA6"FhnC)>FgzFbo>Fao-F_v6$FgoFir>8'-_Fdo%%RankGFap>
8%-FgvFgbl>Fcw-_Fdo%,DeterminantG6#,(*&F`sF]o-Fj\l6#FgzF]oF]o*&FaoF]oFirF^tF^tF
^clF^t>Fcw-%%subsG6$/FirFdp-Fg]l6$Fes*&)FirFiblF]oFcwF]oOFcwFhnFhn6(FealFhnF)Fg
alF*%4TheSecondTermMatrixG6#F[pFhnt+6$F2F36*F:F?%"qGFen%"BG%"dGFXFB6"FhnC*>FaoF
bo>F^clFfbl>Fgz,&F_clF^tF^tF]o>Fibl-F[cl6#F^cl>Fcw-Fiz6%FgoFirFaw>Fev-Ff[l6$Fcw
Faw>FevFdp@'/,*FaoF]oFevF^tFiblF^tF^tF]oFdpO,&FgzF]o*$,&FiblF]oF]oF]oF^tF^t52,&
FaoF]oFiblF^t,&FgzF]oF^tF]o2Fibl,&FgzF]o!"#F]oC$>8*-F^w6$*&FirF]o-F_[l6%FgoFirF
aoF]oFawO-%$maxG6#-F^al6$,$*&-%(ldegreeG6$-%&coeffG6%F]glFawF>FirF]o,&FaoF]oF>F
^tF^tF^t/F>;Fdp,&FaoF]oF^tF]oC(>Fiy-Fg]l6$Fes*(FaoF]o)FirFdhlF]o-F\dl6$/Fir)Fir
FaoFgoF]o>Fiy&-F^u6(-F`r6$FiyFduFirFirFeu.FEFhuFju>Fgz,&-Fgv6$FiyFirF^tF^tF]o>F
^cl-F_vFiil>F]gl-F^w6$F^clFaw@%0F]glF]zO*&FgzF]oFaoF^tC$>F]gl-F^w6$-F_[l6%*&Fir
F]oFiyF]oFirFaoFawO*&FdglF]oFaoF^tFhnFhn6,FealFhnF)FgalF+FfalF'%-MoserPolynomGF
.%+get_seriesG6#FiwFhnt+Fhdl6%FHFAF?6"FhnC&>FaoFfbl>F^cl-Fg]l6$Fes*&FgoF]o)Fir,
$FaoF^tF]o>Fgz-F\dl6$F^dlF^clOFgzFhnFhn6&FealFhnF+Ffal6#FiwFhnt+Fhdl6%FHFAFabl6
"FhnC&>FaoFfbl>F^clFf[m>Fgz-Fg]l6&F_hlF^clFirF]oOFgzFhnFhn6&FealFhnF+Ffal6#FiwF
hnt+6$FEF36%%"MG%"LG%#TTG6"FhnC&>Fgz-Fg]l6%F`rFgoFjr>Fao-Fg]l6%F\hlFgzFir>F^cl7
#-F^al6$-F^al6$&Fao6$F>Feq/F>;F]oFbo/FeqFd^mO-%$minGFeelFhnFhn6$FealFhn6#FiwFhn
t+F^]mF_]m6"FhnC&>FgzFf]m>Fao-Fg]l6%Ff[lFgzFir>F^clF\^mO-FeglFeelFhnFhn6$FealFh
n6#FiwFhnt+6(F2FY%#hhGFenFfn%#VVG6PF:F;F=F<F>F?F@FAFBFCFDFEFFFGFHFIFJFKFLFMFNFO
FPFQFRFSFTFU%"zGFV%&temp0G%&ptempG%(PreduceG%"fG%"bG%&kappaG%"lG%"mG%#ccG%#rrG%
#c1G%"cGF\elFW%&AAnewG%%ListG6"FhnC?>FiblF_q>8L8M>8KF[q>FcqFgo>FaoFbo-F[o6&F]oF
^o%<~ramification~needed:~Katz:GFibl>Fiy-F\dl6$/F3*&F`amF]o)F3-%&denomG6#FiblF]
o-Fg]l6$FesFcq-F[o6(F]oF^o%;Introduce~the~ramificationGF\bm%3for~system~of~size
GFao>Fiy-Fhs6#**F`amF]oF^bmF]o)F3,&F^bmF]oF^tF]oF]oFiyF]o>Fcq-Fg]l6&Fhs-Fg]l6$F
esFiy%&powerG%)symbolicG>Fcq-F\dl6$/-%%csgnG6#F3F]oFcq>Fcq&-F^u6(-F`r6$FcqFduF3
F3FeuFfuFhuFju-F[o6%F]oF^o%K~apply~Moser~reduction~for~ramified~systemG>Fev-F_v
6$FcqF3>Fbam*&F[qF]oF^bmF]o>F^p-F\dl6$/F`amF]oF]w@%/-%'divideG6$F^pFawFjwC%>Fcz
Fdz>8Q&-_Fd_l%8SplittingTheSystemwithcGFfdmFi_l-F[o6&F]oF^o%;splitting~with~ind
.~c~timeGF][l>Feem7#Fcq>Fcq&FeemFju>Fc\l-FgvFfdm>8H-%&numerGF`bm>8IF^bm>Fao-Fco
Fj]l>FevFedm>F^p-F\dl6$<$/Faw*&F^bmF]oFawF]oF\emF]w>Fcp-F\dl6$/Faw)Faw*$F^bmF^t
F^p>Ffp-F[w6#Fcp-%'igcdexG6&FdfmFhfm.%"UG.%#V1G?(FcwF]oF]o-Few6#&FfpFhwFjwC/>Fh
p-F_x6#&&FehmFcxFju>8J)FhpF_hm>F_am*&F]qF]o)F]imF[qF]o-F[o6&F]oF^o%3Smart~ramif
icationG*&F_amF]oF]bmF]o>8P-Fg]l6%F`r-Fg]l6&Fcr-Fg]l6%F^_l-F\dl6$/F`amF]imFcqFj
_lF3,$*&Fc\lF]oFaoF]oF^tFjr>F^]l**F]imF]oF^bmF]oF[cmF]o-F\dl6$/F3*&F]imF]oF]bmF
]oFirF]o>Fd^l-F[t6#-Fg]l6$Fes,&FgimF]o**FhfmF]o)FhpFahmF]oFi\lF]o)F3,$Fc\lF^tF^
tF^t>Fg^l,&&F^]lFa]lF]oF_[nF]o>FczFdz>F[_l&-Fc_l6$Fg_lF3Fi_l>F[_l-Fg]l6%F`r-Fg]
l6&FcrF[_lF3,$*&-Fgv6$F[_lF3F]o-FcoFi`lF]oF^tFjr-F[o6&F]oF^o%U~with~splitting~t
he~system~after~ramification~time:~GF_`l-Fiz6)-Fg]l6$FesF[_lF3F4Fg^lFeqFbamF_am
@$/-Few6#FeemFiwC%>8:-Fg]l6$Fes-F\dl6$/F3)F3Fggm-Fg]l6$Fes*(F^bmF^tF[cmF^t&Feem
FhwF]o>F_amF]q-Fiz6)-Fg]l6$Fes-F\dl6$F\emF\^nF3F4FirFeqFbamF_amFhn6%FeqF]r%"hG6
*FealFhnF)FgalF+FfalF%Fjal6#""'Fhnt+6%F`]mF3Feq6#%"NG6"FhnC$@%-&%'linalgG6#.%'i
szeroGFfoOFgoC$>Fao-Fg]l6&t+6%FMF3FZ6#FH6"FhnC$>Fao-T#Fgbl@%1,&F`sF]oFaoF^tF^tF
dp-Fes6#*&F^ilF]o-F`r6$-Fcr6%-%'normalG6#Fh[mFir,(F`sF]oFaoF^tF]oF]o.FjrF]oFhnF
hn6$F/F_v6#F[pFgoFirF`sFaoOFaoFhnFhn6&FealFhnF/%(get_valG6#F[pFhnt+6$F``mF36$FH
%#ffG6"FhnC$>F^cl-Fhs6#-F`r6$FgoFjr@%/-%'indetsGFeel<"FdpO,&-F\hl6$-FffmFeelFir
F]o-F\hl6$-F_bmFeelFirF^tFhnFhn6$FealFhn6#FiwFhnb6#%+thismoduleGF&6#%(packageGF
$FhnFhnFhnFhnFhnFhn
