M is a minimal model of the currently used Lie algebra L up to degree d, that is, f: M -> L is a differential homomorphism such that H(f) is an isomorphism and M is free as a Lie algebra and the differential on M has no linear part. The homomophism f is available as M.modelmap, and M is available as L.minmodel and L is obtained as M.targetLie.
The generators of M yield a basis for the cohomology of L, i.e., ExtUL(k,k), where k is L.field. The dimensions of this cohomology algebra is obtained by extAlgLie and the multiplication by extAlgMultLie. Also, the polynomial ring with generators equal to the basis elements of the cohomology algebra is obtained by extAlgRing as L.cache.extAlgRing. The linear polynomials in this ring gives a representation of ExtUL(k,k) (similar to the representation of L by linear polynomials in L.cache.mbRing, see mbRing).
Observe that the homological weight in the cohomology algebra is one higher than the homological weight in the minimal model.
i1 : R=ZZ/101[x,y,z, SkewCommutative=>{}] o1 = R o1 : PolynomialRing |
i2 : I={x^2,y^2,z^2} 2 2 2 o2 = {x , y , z } o2 : List |
i3 : S=R/ideal I o3 = S o3 : QuotientRing |
i4 : L=koszulDualLie(S) o4 = L o4 : LieAlgebra |
Since S is a Koszul algebra, the cohomology algebra of L is equal to S.
i5 : extAlgLie 3 o5 = | 3 0 0 | | 0 3 0 | | 0 0 1 | 3 3 o5 : Matrix ZZ <--- ZZ |
i6 : hilbertSeries(S,Order=>4) 2 3 o6 = 1 + 3T + 3T + T o6 : ZZ[T] |
i7 : extAlgMultLie(ext_0,extAlgMultLie(ext_1,ext_2)) o7 = ext 6 ZZ o7 : ---[ext , ext , ext , ext , ext , ext , ext ] 101 0 1 2 3 4 5 6 |
Below is a differential Lie algebra which is non-free and where the differential has a linear part.
i8 : L2=lieAlgebra({a,b,c,r3,r4,r42}, {{{1,-1},{[b,c],[a,c]}},[a,b],{{1,-1},{[b,r4],[a,r4]}}}, genWeights => {{1,0},{1,0},{2,0},{3,1},{4,1},{4,2}}, genDiffs=>{[],[],[],[a,c], [a,a,c],{{1,-1},{[r4],[a,r3]}}},genSigns=>{0,0,0,1,1,0}) o8 = L2 o8 : LieAlgebra |
i9 : homologyLie 5 o9 = | 2 1 0 0 0 | | 0 0 0 1 1 | | 0 0 0 0 0 | | 0 0 0 0 0 | | 0 0 0 0 0 | 5 5 o9 : Matrix ZZ <--- ZZ |
We now compute the minimal model of L2 and check that its homology is the same as for L2.
i10 : M=minmodelLie 5 o10 = M o10 : LieAlgebra |
i11 : useLie M o11 = M o11 : LieAlgebra |
i12 : homologyLie 5 o12 = | 2 1 0 0 0 | | 0 0 0 1 1 | | 0 0 0 0 0 | | 0 0 0 0 0 | | 0 0 0 0 0 | 5 5 o12 : Matrix ZZ <--- ZZ |
i13 : peek M o13 = LieAlgebra{cache => CacheTable{...10...} } compdeg => 5 deglength => 2 field => QQ genDiffs => {[], [], [], [fr , fr ], [fr , fr ], [fr , fr ], {{1, 1, -1}, {[fr , fr , fr ], [fr , fr , fr ], [fr , fr , fr ]}}} 1 0 1 2 0 2 0 3 2 0 0 4 0 1 5 genSigns => {0, 0, 0, 1, 1, 1, 0} gensLie => {fr , fr , fr , fr , fr , fr , fr } 0 1 2 3 4 5 6 genWeights => {{1, 0}, {1, 0}, {2, 0}, {2, 1}, {3, 1}, {3, 1}, {5, 2}} modelmap => MapLie{...9...} numGen => 7 relsLie => {} targetLie => L2 |