next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
GradedLieAlgebras :: Differential Lie algebras Tutorial

Differential Lie algebras Tutorial -- A tutorial for differential Lie algebras

See Second LieAlgebra Tutorial on how to use the option genDiffs.

i1 : L=lieAlgebra({a,b,c},{[a,a],[b,b]},genSigns=>1,
         genWeights=>{{1,0},{1,0},{2,1}},genDiffs=>{[],[],[a,b]})

o1 = L

o1 : LieAlgebra

The dimensions of the homology can be obtained using homologyLie. A basis for the homology and the boundaries in a certain first and homological degree is obtained by homologyBasisLie and boundariesBasisLie.

i2 : homologyLie 5

o2 = | 2 0 0 0 0 |
     | 0 0 2 1 0 |
     | 0 0 0 0 0 |
     | 0 0 0 0 0 |
     | 0 0 0 0 0 |

              5        5
o2 : Matrix ZZ  <--- ZZ
i3 : boundariesBasisLie(4,1)

o3 = {{{1, 1}, {[a, b, c], [b, a, c]}}}

o3 : List
i4 : invImageBasisLie(4,1,diffLie(),oo)

o4 = {[c, c]}

o4 : List
i5 : evalDiffLie[c,c]

o5 = {{2, 2}, {[a, b, c], [b, a, c]}}

o5 : List
i6 : homologyBasisLie(4,1)

o6 = {[b, a, c]}

o6 : List

It follows from above that a basis for the cycles of weight (4,1) is {[b,a,c],[a,b,c]}. In degree (3,1) there are two independent cycles and no boundaries:

i7 : homologyBasisLie(3,1)

o7 = {[b, c], [a, c]}

o7 : List
i8 : boundariesBasisLie(3,1)

o8 = {}

o8 : List

In degree (5,1) all elements are boundaries, so homologyLie(5,1)=0 (which was obtained above). In degree (5,2) there are no cycles.

i9 : boundariesBasisLie(5,1)

o9 = {[b, a, b, c], [a, b, a, c]}

o9 : List
i10 : basisLie(5,1)

o10 = {[a, b, a, c], [b, a, b, c]}

o10 : List
i11 : homologyLie(5,1)

o11 = 0
i12 : basisLie(5,2)

o12 = {[a, c, c], [b, c, c]}

o12 : List
i13 : evalDiffLie([c,a,c])

o13 = [a, b, a, c]

o13 : Array
i14 : evalDiffLie([c,b,c])

o14 = [b, a, b, c]

o14 : Array
i15 : homologyLie(5,2)

o15 = 0
i16 : boundariesBasisLie(5,2)

o16 = {}

o16 : List

Here is an example with zero homology and hence also its minimal model, see minmodelLie, is the zero Lie algebra.

i17 : L1=lieAlgebra({a,b},{},genSigns=>{0,1},genWeights=>{{2,0},{2,1}},
          genDiffs=>{[],[a]})

o17 = L1

o17 : LieAlgebra
i18 : homologyLie 12

o18 = 0

               12        12
o18 : Matrix ZZ   <--- ZZ
i19 : M1=minmodelLie 12

o19 = M1

o19 : LieAlgebra
i20 : peek oo

o20 = LieAlgebra{cache => CacheTable{...10...}}
                 compdeg => 12
                 deglength => 0
                 field => QQ
                 genDiffs => {}
                 genSigns => {}
                 gensLie => {}
                 genWeights => {}
                 modelmap => MapLie{...2...}
                 numGen => 0
                 relsLie => {}
                 targetLie => L1
i21 : whichLie()

o21 = L1

o21 : LieAlgebra
i22 : useLie M1

o22 = M1

o22 : LieAlgebra
i23 : homologyLie 12

o23 = 0

               12        12
o23 : Matrix ZZ   <--- ZZ
i24 : peek  M1.modelmap

o24 = MapLie{sourceLie => M1}
             targetLie => L1

The above result is true in characteristic zero and false in positive characteristic.

i25 : L3=lieAlgebra({a,b},{},genSigns=>{1,0},genWeights=>{{2,0},{2,1}},
          genDiffs=>{[],[a]},field=>ZZ/3)

o25 = L3

o25 : LieAlgebra
i26 : homologyLie 12

o26 = | 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 1 0 0 0 0 0 0 |
      | 0 0 0 0 0 1 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 |
      | 0 0 0 0 0 0 0 0 0 0 0 0 |

               12        12
o26 : Matrix ZZ   <--- ZZ
i27 : homologyBasisLie(6,1)

o27 = {[b, a, a]}

o27 : List
i28 : homologyBasisLie(6,2)

o28 = {[b, b, a]}

o28 : List

In characteristic different from two, the differential of [b,b,a] is 3/2[b,a,a] and [b,a,a] is a cycle, which explains the result above (in characteristic 2, [b,a] is a cycle which is not a boundary).

Below is a differential Lie algebra which is non-free and where the differential has a linear part.

i29 : L=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})

o29 = L

o29 : LieAlgebra
i30 : homologyLie 5

o30 = | 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
o30 : Matrix ZZ  <--- ZZ

The homology in homological degree zero is concentrated in degree 1 and 2. The function minPresLie gives a minimal presentation of the Lie algebra H0 (and L is still the current Lie algebra).

i31 : minPresLie 3

o31 = LieAlgebra{...10...}

o31 : LieAlgebra
i32 : peek oo

o32 = LieAlgebra{cache => CacheTable{...9...}          }
                 compdeg => 0
                 deglength => 2
                 field => QQ
                 genDiffs => {[], [], []}
                 genSigns => {0, 0, 0}
                 gensLie => {a, b, c}
                 genWeights => {{1, 0}, {1, 0}, {2, 0}}
                 numGen => 3
                 relsLie => {[b, a], [b, c], [a, c]}
i33 : whichLie()

o33 = L

o33 : LieAlgebra

We now compute the minimal model of L and check that its homology is the same as for L.

i34 : M=minmodelLie 5

o34 = M

o34 : LieAlgebra
i35 : useLie M

o35 = M

o35 : LieAlgebra
i36 : homologyLie 5

o36 = | 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
o36 : Matrix ZZ  <--- ZZ
i37 : peek M

o37 = 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 => L

The quasi-isomorphism is obtained as f=M.modelmap. In homological degree zero, f is surjective, but in general in higher homological degrees, it is not so as in this example, see below.

i38 : f=M.modelmap

o38 = f

o38 : MapLie
i39 : peek f

o39 = MapLie{fr  => []                             }
               3
             fr  => [a]
               0
             fr  => [b]
               1
             fr  => [c]
               2
             fr  => [r3]
               4
             fr  => [r3]
               5
             fr  => {{-1, 1}, {[a, r42], [b, r42]}}
               6
             sourceLie => M
             targetLie => L
i40 : useLie L

o40 = L

o40 : LieAlgebra
i41 : dimTableLie 5

o41 = | 2 1 1 1 2 |
      | 0 0 1 3 5 |
      | 0 0 0 1 2 |
      | 0 0 0 0 0 |
      | 0 0 0 0 0 |
      | 0 0 0 0 0 |

               6        5
o41 : Matrix ZZ  <--- ZZ
i42 : imageLie(5,f)

o42 = | 2 1 1 1 2 |
      | 0 0 1 2 4 |
      | 0 0 0 0 1 |
      | 0 0 0 0 0 |
      | 0 0 0 0 0 |

               5        5
o42 : Matrix ZZ  <--- ZZ

We check below that H(f) is iso in degree (5,1).

i43 : homologyBasisLie(5,1)

o43 = {{{1, -1}, {[b, a, r3], [b, b, r3]}}}

o43 : List
i44 : useLie M

o44 = M

o44 : LieAlgebra
i45 : homologyBasisLie(5,1)

o45 = {{{1, 1, -1}, {[fr , fr , fr ], [fr , fr , fr ], [fr , fr , fr ]}}}
                        1    3    2      1    0    4      1    1    5

o45 : List
i46 : evalMapLie(f,oo_0)

o46 = {{1, -1}, {[b, a, r3], [b, b, r3]}}

o46 : List

The generators of M yield basis elements for the cohomology ExtUL(k,k) (with a shift in the homological degree , k=L.field). Its dimensions may be obtained using extAlgLie (observe that the first row gives ExtUL(k,k) in degree 1 to 5 and homological degree 1 ).

i47 : extAlgLie 5

o47 = | 2 1 0 0 0 |
      | 0 1 2 0 0 |
      | 0 0 0 0 1 |
      | 0 0 0 0 0 |
      | 0 0 0 0 0 |

               5        5
o47 : Matrix ZZ  <--- ZZ
i48 : M.genWeights

o48 = {{1, 0}, {1, 0}, {2, 0}, {2, 1}, {3, 1}, {3, 1}, {5, 2}}

o48 : List

See also