"Source: Text/Basics/Mat.text";
"Line: 2265";
"Date: Thu Sep 25 14:47:46 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Basics/Mat.text, line: 2265
// Example: H27E9 ()
print "Example: H27E9";
ei := GetEchoInput();
SetEchoInput(true);
K := GF(5);
A := Matrix(K, 5, 
    [ 0, 2, 4, 2, 0,
      2, 2, 2, 3, 3,
      3, 4, 4, 1, 3,
      0, 0, 0, 0, 1,
      0, 0, 0, 1, 0 ]);
A;
PrimaryInvariantFactors(A);
JordanForm(A);
R, T, F := RationalForm(A);
R;
T;
T*A*T^-1 eq R;
F;
P<x> := PolynomialRing(K);
PM := MatrixAlgebra(P, 5);
Ax := PM ! x - PM ! A;
Ax;
SmithForm(Ax);
ElementaryDivisors(Ax);
SetEchoInput(ei);
