"Source: Text/Basics/RngMPol.text";
"Line: 1856";
"Date: Thu Sep 25 14:47:46 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Basics/RngMPol.text, line: 1856
// Example: H25E11 ()
print "Example: H25E11";
ei := GetEchoInput();
SetEchoInput(true);
Frob := function(G)
    n := #G;
    I := {@ g: g in G @};
    P := PolynomialRing(GF(2), n);
    AssignNames(~P, [CodeToString(96 + i): i in [1 .. n]]);
    M := MatrixRing(P, n);
    return M ! &cat[
        [P.Index(I, I[i] * I[j]): j in [1 .. n]]: i in [1 .. n]
    ];
end function;
A := Frob(Sym(3));
A;
Determinant(A);
time Factorization(Determinant(A));
SetEchoInput(ei);
