"Source: Text/Algebra/AlgBas.text";
"Line: 3149";
"Date: Fri Sep 26 12:10:11 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Algebra/AlgBas.text, line: 3149
// Example: H94E21 ()
print "Example: H94E21";
ei := GetEchoInput();
SetEchoInput(true);
ff := GF(2);
VV8 := VectorSpace(ff,8);
BB8 := Basis(VV8);
MM8 := MatrixAlgebra(ff,8);
e11 := MM8!0;
e12 := MM8!0;
e13 := MM8!0;
e11[1]  := BB8[1];
e11[4]  := BB8[4];
e11[5]  := BB8[5];
e11[8]  := BB8[8];
e12[2]  := BB8[2];
e12[7]  := BB8[7];
e13[3]  := BB8[3];
e13[6]  := BB8[6];
a1 := MM8!0;
b1 := MM8!0;
c1 := MM8!0;
d1 := MM8!0;
e1 := MM8!0;
f1 := MM8!0;
a1[1] :=  BB8[2];
a1[5] :=  BB8[7];
b1[1] :=  BB8[3];
b1[4] :=  BB8[6];
c1[2] :=  BB8[4];
c1[7] :=  BB8[8];
e1[3] :=  BB8[5];
e1[6] :=  BB8[8];
f1[3] :=  BB8[6];
A1 := sub< MM8 | [e11, e12, e13, a1, b1, c1, d1, e1, f1] >;
T1 := [ <1,1>,<1,4>,<1,5>,<2,6>,<3,8>,<4,5>,<5,4>,<6,8>];
VV6 := VectorSpace(ff,6);
BB6 := Basis(VV6);
MM6 := MatrixAlgebra(ff,6);
e21 := MM6!0;
e22 := MM6!0;
e23 := MM6!0;
e22[1]  := BB6[1];
e22[5]  := BB6[5];
e22[6]  := BB6[6];
e21[2]  := BB6[2];
e21[4]  := BB6[4];
e23[3]  := BB6[3];
a2 := MM6!0;
b2 := MM6!0;
c2 := MM6!0;
d2 := MM6!0;
e2 := MM6!0;
f2 := MM6!0;
a2[4] := BB6[6];
b2[2] := BB6[3];
c2[1] := BB6[2];
d2[1] := BB6[5];
d2[5] := BB6[6];
e2[3] := BB6[4];
A2 := sub< MM6 | [e21, e22, e23, a2, b2, c2, d2, e2, f2]>;
T2 := [ <1,2>, <1,6>, <2,5>, <3,8>, <1,7>, <5,7> ];
VV8 := VectorSpace(ff,8);
BB8 := Basis(VV8);
MM8 := MatrixAlgebra(ff,8);
e31 := MM8!0;
e32 := MM8!0;
e33 := MM8!0;
e31[2]  := BB8[2];
e31[6]  := BB8[6];
e32[4]  := BB8[4];
e33[1]  := BB8[1];
e33[3]  := BB8[3];
e33[5]  := BB8[5];
e33[7]  := BB8[7];
e33[8]  := BB8[8];
a3 := MM8!0;
b3 := MM8!0;
c3 := MM8!0;
d3 := MM8!0;
e3 := MM8!0;
f3 := MM8!0;a3[2] :=  BB8[4];
b3[6] :=  BB8[8];
b3[2] :=  BB8[7];
c3[4] :=  BB8[6];
e3[1] :=  BB8[2];
e3[3] :=  BB8[6];
f3[1] :=  BB8[3];
f3[3] :=  BB8[5];
f3[5] :=  BB8[7];
f3[7] :=  BB8[8];
A3 := sub< MM8 | [e31, e32, e33, a3, b3, c3, d3, e3, f3] >;
T3 := [ <1,3>,<1,8>,<1,9>,<2,4>,<3,9>,<4,6>,<5,9>,<6,5>];

m11 := BasicAlgebra( [<A1, T1>, <A2, T2>, <A3, T3>] );
m11;
s1 := SimpleModule(m11,1);
s2 := SimpleModule(m11,2);
prj1 := CompactProjectiveResolution(s1,20);
prj2 := CompactProjectiveResolution(s2,20);
CR1 := CohomologyRingGenerators(prj1);
CR2 := CohomologyRingGenerators(prj2);
DegreesOfCohomologyGenerators(CR1);
DegreesOfCohomologyGenerators(CR2);
CR12 := CohomologyLeftModuleGenerators(prj1,CR1,prj2);
DegreesOfCohomologyGenerators(CR12);
CR12 := CohomologyRightModuleGenerators(prj1,prj2,CR2);
DegreesOfCohomologyGenerators(CR12);
pj1 := ProjectiveResolution(s1,20);
pj1;
gen113 := CohomologyGeneratorToChainMap(pj1,CR1,3);
gen113;
gen113*gen113;
Ker, phi := Kernel(gen113);
Ker, phi;
DimensionsOfHomology(Ker);
Cok, mu := Cokernel(gen113);
Cok, mu;
DimensionsOfHomology(Cok);
Imm, theta, gamma := Image(gen113);
Imm;
DimensionsOfHomology(Imm);
IsChainMap(theta);
assert $1;
IsChainMap(gamma);
assert $1;
SetEchoInput(ei);
