For K[G]-modules M and N, the K-vector Ext(M, N) of equivalence classes of K[G]-module extensions 0 -> N -> L -> M -> 0 of N by M can be computed, and corresponding extensions L constructed.
Given K[G]-modules M and N, construct the K-vector space Ext(M, N) of equivalence classes of K[G]-module extensions of N by M.
Construct a K[G]-module extension L of N by M corresponding to the element e of E, where E must be the vector space returned by a previous call of Ext(M,N). The insertion N -> L and projection L -> M are also returned.
Again E must be the vector space returned by a previous call of Ext(M,N). Construct the largest possible K[G]-module extension L of a direct sum of copies of N by M, such that none of the submodules of L that are isomorphic to N has a complement in L.
> G := Alt(5); > I := IrreducibleModules(G, GF(2)); > I; [ GModule of dimension 1 over GF(2), GModule of dimension 4 over GF(2), GModule of dimension 4 over GF(2) ] > M1 := rep{M: M in I | Dimension(M) eq 1}; > M4 := rep{M: M in I | Dimension(M) eq 4 and not IsAbsolutelyIrreducible(M)}; > M4; assert not IsAbsolutelyIrreducible(M4); GModule M of dimension 4 over GF(2) > E, rho := Ext(M4, M1); > E; Full Vector space of degree 2 over GF(2) > Extension(M4, M1, E.1, rho); GModule of dimension 5 over GF(2) [0 0 0 0 1] [1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1] [0 0 0 0] > E := MaximalExtension(M4, M1, E, rho); > E; GModule E of dimension 6 over GF(2) > CompositionFactors(E); [ GModule of dimension 1 over GF(2), GModule of dimension 1 over GF(2), GModule of dimension 4 over GF(2) ]