next | previous | forward | backward | up | top | index | toc | Macaulay2 website
HomotopyLieAlgebra :: bracket

bracket -- Computes the Lie product

Synopsis

Description

Given a factor ring R = S/I, we take A to be the acyclic closure, up to some degree n, of the Koszul complex on the generators of I. The underlying algebra An := A.natural is thus a free algebra over S on generators T_i of various homological and internal degrees.

The Homotopy Lie algebra of the map S ->> R is the graded dual of the space of linear forms Lin(A) of A. Since we obtain A together with a set of generators T_i, we identify the Lie algebra with space of linear forms, using the T_i as a self-dual basis. Thus we express the bracket product of two linear forms as another linear form. This inner product on the linear forms of degree d extends naturally to an inner product between Lin(A)**Lin(A) and the quadratic forms of A. This inner product has signs coming from the homological grading, and is the only delicate part of the implementation.

The bracket function is the workhorse of this collection of routines. Suppose that f,g are three linear forms in the generators of A homogeneous in the homological grading, of homological degrees d-1, e-1 respectively, which we regard as dual basis elements of Pi^d and Pi^e, graded components of the homotopy Lie algebra Pi. We can compute the bracket product [f,g] as an element of Pi^{d+e}, or its action on a linear form F that is homogeneous of homological degree d+e-1 via the inner product<f**g, d(F)_2>, where d is the differential of A. The calls bracket(A,{f,g}) and bracket(A, {f,g}, F) compute these products

In the following example, we use the function allgens(A,d) to list the generators of A of homological degree d:

i1 : kk = ZZ/101

o1 = kk

o1 : QuotientRing
i2 : S = kk[x,y,z]

o2 = S

o2 : PolynomialRing
i3 : R = S/ideal(x^2,y^2,z^2-x*y,x*z, y*z)

o3 = R

o3 : QuotientRing
i4 : lastCyclesDegree = 4

o4 = 4
i5 : KR = koszulComplexDGA(ideal R)

o5 = {Ring => S                                     }
      Underlying algebra => S[T ..T ]
                               1   5
                        2   2           2
      Differential => {x , y , - x*y + z , x*z, y*z}

o5 : DGAlgebra
i6 : A = acyclicClosure(KR, EndDegree => lastCyclesDegree);
i7 : p2 = allgens(A,1) -- dual generators of Pi^2

o7 = {T , T , T , T , T }
       1   2   3   4   5

o7 : List
i8 : p3 = allgens(A,2) -- dual generators of Pi^3

o8 = {T , T , T , T , T  }
       6   7   8   9   10

o8 : List
i9 : a5 = allgens(A,4) -- generators of A of homological degree 5

o9 = {T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  ,
       21   22   23   24   25   26   27   28   29   30   31   32   33   34 
     ------------------------------------------------------------------------
     T  , T  , T  , T  , T  , T  , T  , T  , T  , T  }
      35   36   37   38   39   40   41   42   43   44

o9 : List
i10 : bracket(A, {sum p2, sum p3})

o10 = - 2T   + T   + T   - T   + 2T   - T   - 2T   - 3T   - 2T   - T   - T  
          21    22    23    24     25    26     27     28     29    30    31
      -----------------------------------------------------------------------
      + 2T   + 3T   + T   + T   - 2T   - T   - T   - 2T   - 2T   + 2T
          32     33    34    35     36    37    38     40     42     43

o10 : S[T ..T  ]
         1   99
i11 : bracket(A,{sum p2, sum p3}, sum a5)

o11 = -8

o11 : S[T ..T  ]
         1   99

The other invocation of bracket produces a HashTable displaying all the bracket products of elements of Pi^d and Pi^e as functions on the generators of homological degree d+e-1 of A:

i12 : H = bracket(A,2,3);
(5, 5, 24)
{T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  , T  }
  21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44
i13 : #keys H

o13 = 600
i14 : H' = select(keys H, k->H#k != 0);
i15 : H'

o15 = {({T , T }, - T T  - T T  + y*T   + z*T  ), ({T , T }, T T  - z*T   +
          4   8      2 7    4 8      12      14      3   9    3 9      15  
      -----------------------------------------------------------------------
      y*T  ), ({T , T }, - T T  - T T  - T T  + z*T   + x*T  ), ({T , T }, -
         17      3   6      3 6    5 7    1 8      12      14      1   7    
      -----------------------------------------------------------------------
      T T  + x*T  ), ({T , T }, - T T  - T T  + y*T  ), ({T , T  }, - T T  +
       1 7      13      5   9      2 8    5 9      15      3   10      4 8  
      -----------------------------------------------------------------------
      T T   - z*T   + x*T  ), ({T , T }, - T T  - T T  + y*T   + z*T  ),
       3 10      18      19      2   7      2 7    4 8      12      14  
      -----------------------------------------------------------------------
      ({T , T }, - T T  + T T   - z*T   + x*T  ), ({T , T  }, - T T  - T T  
         4   8      4 8    3 10      18      19      2   10      5 8    2 10
      -----------------------------------------------------------------------
      + y*T  ), ({T , T  }, - T T   + x*T  ), ({T , T }, - T T  - T T   +
           19      4   10      4 10      18      5   8      5 8    2 10  
      -----------------------------------------------------------------------
      y*T  ), ({T , T }, T T  + x*T   - z*T  ), ({T , T }, - T T  - T T  -
         19      3   8    3 8      15      17      1   8      3 6    5 7  
      -----------------------------------------------------------------------
      T T  + z*T   + x*T  ), ({T , T }, T T  - T T   - z*T   + z*T  ), ({T ,
       1 8      12      14      4   9    4 9    5 10      17      19      2 
      -----------------------------------------------------------------------
      T }, - T T  - T T  + y*T  ), ({T , T }, - T T  - T T  - T T  + z*T   +
       8      2 8    5 9      15      5   7      3 6    5 7    1 8      12  
      -----------------------------------------------------------------------
      x*T  ), ({T , T }, T T  + T T  + T T  + y*T   - z*T  ), ({T , T  },
         14      4   9    2 6    3 8    4 9      14      17      3   10  
      -----------------------------------------------------------------------
      T T  + T T   - z*T   + y*T  ), ({T , T }, T T  + T T   - z*T   +
       5 6    3 10      18      20      5   6    5 6    3 10      18  
      -----------------------------------------------------------------------
      y*T  ), ({T , T  }, - T T  - T T   + z*T   + z*T  ), ({T , T }, - T T 
         20      4   10      5 7    4 10      12      20      1   6      1 6
      -----------------------------------------------------------------------
      - T T  + x*T  ), ({T , T }, T T  + T T  - z*T   + x*T  ), ({T , T },
         4 7      11      3   9    5 8    3 9      15      16      4   6  
      -----------------------------------------------------------------------
      T T  + T T  - z*T   + y*T  ), ({T , T  }, - T T   + y*T  ), ({T , T },
       4 6    3 7      11      13      5   10      5 10      18      4   6  
      -----------------------------------------------------------------------
      T T  - T T   + x*T  ), ({T , T }, - T T  - T T  + x*T  ), ({T , T },
       4 6    1 10      20      4   7      1 6    4 7      11      2   6  
      -----------------------------------------------------------------------
      T T  + T T  + T T  + y*T   - z*T  ), ({T , T  }, T T  - T T   - z*T   +
       2 6    3 8    4 9      14      17      5   10    4 9    5 10      17  
      -----------------------------------------------------------------------
      z*T  ), ({T , T }, T T  + T T  + T T  + y*T   - z*T  ), ({T , T }, T T 
         19      3   8    2 6    3 8    4 9      14      17      3   6    3 6
      -----------------------------------------------------------------------
      + y*T   - z*T  ), ({T , T }, - T T  - T T   + z*T   + z*T  ), ({T ,
           11      12      5   7      5 7    4 10      12      20      3 
      -----------------------------------------------------------------------
      T }, T T  + T T  - z*T   + y*T  ), ({T , T }, - T T  + y*T  ), ({T ,
       7    4 6    3 7      11      13      2   9      2 9      16      1 
      -----------------------------------------------------------------------
      T }, - T T  - T T  - z*T   + x*T  ), ({T , T }, - T T  + z*T  ), ({T ,
       9      5 6    1 9      14      17      4   7      4 7      13      1 
      -----------------------------------------------------------------------
      T  }, T T  - T T   + x*T  ), ({T , T }, - T T  + z*T  ), ({T , T },
       10    4 6    1 10      20      5   9      5 9      16      3   7  
      -----------------------------------------------------------------------
      T T  - z*T   + x*T  ), ({T , T }, - T T  - T T  - z*T   + x*T  ), ({T ,
       3 7      11      12      5   6      5 6    1 9      14      17      5 
      -----------------------------------------------------------------------
      T }, T T  + T T  - z*T   + x*T  )}
       8    5 8    3 9      15      16

o15 : List
i16 : H#(H'_0)

o16 = -1

o16 : S[T ..T  ]
         1   99

From this we see that [T_5, T_6] sends T_37 to -1 in kk.

Another, often simpler view of the pairing is given by bracketMatrix, where the rows and columns correspond to the generators of Pi^d and Pi^e, and the entries are the bracket products, interpreted as elements of Pi^{d+e}. Note the anti-symmetry, which holds when d or e are even and the symmetry in the case both are odd.

i17 : bracketMatrix(A,1,2)

o17 = | 0    -T_8 -T_6 -T_7 -T_10 |
      | -T_6 0    -T_8 T_10 -T_9  |
      | T_7  T_9  0    T_6  T_8   |

                         3                  5
o17 : Matrix (S[T ..T  ])  <--- (S[T ..T  ])
                 1   99             1   99
i18 : bracketMatrix(A,2,1)

o18 = | 0    T_6   -T_7 |
      | T_8  0     -T_9 |
      | T_6  T_8   0    |
      | T_7  -T_10 -T_6 |
      | T_10 T_9   -T_8 |

                         5                  3
o18 : Matrix (S[T ..T  ])  <--- (S[T ..T  ])
                 1   99             1   99
i19 : bracketMatrix(A,1,1)

o19 = | 2T_1 -T_3 T_4  |
      | -T_3 2T_2 T_5  |
      | T_4  T_5  2T_3 |

                         3                  3
o19 : Matrix (S[T ..T  ])  <--- (S[T ..T  ])
                 1   99             1   99

See also

Ways to use bracket :

For the programmer

The object bracket is a method function.