"Source: Text/Commut/RngDiff.text";
"Line: 4198";
"Date: Thu Sep 25 14:47:46 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Commut/RngDiff.text, line: 4198
// Example: H121E76 ()
print "Example: H121E76";
ei := GetEchoInput();
SetEchoInput(true);
S<t>:=DifferentialLaurentSeriesRing(Rationals());
RS<DS> := DifferentialOperatorRing(S);
L := DS^4-1/t^4;
faces:=Faces(NewtonPolygon(L));
faces;
_<T> := PolynomialRing(Rationals());
NewtonPolynomial(faces[1]);
rhf, bl := RightHandFactors(L);
bl;
assert &and $1;
[Degree(v) : v in rhf]; 
 L - EuclideanRightDivision(L, rhf[1])*rhf[1];
 L - EuclideanRightDivision(L, rhf[2])*rhf[2];
 L - EuclideanRightDivision(L, rhf[3])*rhf[3];
M := DS^4-1;
faces:=Faces(NewtonPolygon(M));
faces;
NewtonPolynomial(faces[1]);
rhf, bl := RightHandFactors(M);
rhf;
bl;
assert &and $1;
SetEchoInput(ei);
