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