Lie Polynomial

Declaration of domains

RN := Fraction Integer
  Fraction Integer
                   Type: Domain

Lpoly := LiePolynomial(Symbol,RN)
  LiePolynomial(Symbol,Fraction Integer)
                   Type: Domain

Dpoly := XDPOLY(Symbol,RN)
  XDistributedPolynomial(Symbol,Fraction Integer)
                   Type: Domain

Lword := LyndonWord Symbol
  LyndonWord Symbol
                   Type: Domain

Initialisation

a:Symbol := 'a
  a
                   Type: Symbol

b:Symbol := 'b
  b
                   Type: Symbol

c:Symbol := 'c
  c
                   Type: Symbol

aa: Lpoly := a
  [a]
                   Type: LiePolynomial(Symbol,Fraction Integer)

bb: Lpoly := b
  [b]
                   Type: LiePolynomial(Symbol,Fraction Integer)

cc: Lpoly := c
  [c]
                   Type: LiePolynomial(Symbol,Fraction Integer)

p : Lpoly := [aa,bb]
  [a b]
                   Type: LiePolynomial(Symbol,Fraction Integer)

q : Lpoly := [p,bb]
      2
  [a b ]
                   Type: LiePolynomial(Symbol,Fraction Integer)

All the Lyndon words of order 4

liste : List Lword := LyndonWordsList([a,b], 4)
                   2       2    3     2 2      3
  [[a],[b],[a b],[a b],[a b ],[a b],[a b ],[a b ]]
                   Type: List LyndonWord Symbol

r: Lpoly := p + q + 3*LiePoly(liste.4)$Lpoly
             2         2
  [a b] + 3[a b] + [a b ]
                   Type: LiePolynomial(Symbol,Fraction Integer)

s:Lpoly := [p,r]
       2                 2
  - 3[a b a b] + [a b a b ]
                   Type: LiePolynomial(Symbol,Fraction Integer)

t:Lpoly  := s  + 2*LiePoly(liste.3) - 5*LiePoly(liste.5)
                2       2                 2
  2[a b] - 5[a b ] - 3[a b a b] + [a b a b ]
                   Type: LiePolynomial(Symbol,Fraction Integer)

degree t
  5
                   Type: PositiveInteger

mirror t
                  2       2                 2
  - 2[a b] - 5[a b ] - 3[a b a b] + [a b a b ]
                   Type: LiePolynomial(Symbol,Fraction Integer)

Jacobi Relation

Jacobi(p: Lpoly, q: Lpoly, r: Lpoly): Lpoly == _
  [ [p,q]\$Lpoly, r] + [ [q,r]\$Lpoly, p] + [ [r,p]\$Lpoly, q]
                   Type: Void

Tests

test: Lpoly := Jacobi(a,b,b)
  0
                  Type: LiePolynomial(Symbol,Fraction Integer)

test: Lpoly := Jacobi(p,q,r)
  0
                  Type: LiePolynomial(Symbol,Fraction Integer)

test: Lpoly := Jacobi(r,s,t)
  0
                  Type: LiePolynomial(Symbol,Fraction Integer)

Evaluation

eval(p, a, p)$Lpoly
      2
  [a b ]
                  Type: LiePolynomial(Symbol,Fraction Integer)

eval(p, [a,b], [2*bb, 3*aa])$Lpoly
  - 6[a b]
                  Type: LiePolynomial(Symbol,Fraction Integer)

r: Lpoly := [p,c]
  [a b c] + [a c b]
                  Type: LiePolynomial(Symbol,Fraction Integer)

r1: Lpoly := eval(r, [a,b,c], [bb, cc, aa])$Lpoly
  - [a b c]
                  Type: LiePolynomial(Symbol,Fraction Integer)

r2: Lpoly := eval(r, [a,b,c], [cc, aa, bb])$Lpoly
  - [a c b]
                  Type: LiePolynomial(Symbol,Fraction Integer)

r + r1 + r2
  0
                  Type: LiePolynomial(Symbol,Fraction Integer)

See Also:

  • )help LyndonWord
  • )help XDistributedPolynomial
  • )show LiePolynomial

Table Of Contents

This Page