# 9.43 LiePolynomial¶

Declaration of domains

RN := Fraction Integer


 FractionInteger

Type: Domain

Lpoly := LiePolynomial(Symbol,RN)


 LiePolynomial(Symbol,FractionInteger)

Type: Domain

Dpoly := XDPOLY(Symbol,RN)


 XDistributedPolynomial(Symbol,FractionInteger)

Type: Domain

Lword := LyndonWord Symbol


 LyndonWordSymbol

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]


 [ab]

Type: LiePolynomial(Symbol,Fraction Integer)

q : Lpoly := [p,bb]


 [ab2]

Type: LiePolynomial(Symbol,Fraction Integer)

All the Lyndon words of order 4

liste : List Lword := LyndonWordsList([a,b], 4)


 [[a],[b],[ab],[a2b],[ab2],[a3b],[a2b2],[ab3]]

Type: List LyndonWord Symbol

r: Lpoly := p + q + 3*LiePoly(liste.4)$Lpoly    [ab]+3[a2b]+[ab2] Type: LiePolynomial(Symbol,Fraction Integer) s:Lpoly := [p,r]    -3[a2bab]+[abab2] Type: LiePolynomial(Symbol,Fraction Integer) t:Lpoly := s + 2*LiePoly(liste.3) - 5*LiePoly(liste.5)    2[ab]-5[ab2]-3[a2bab]+[abab2] Type: LiePolynomial(Symbol,Fraction Integer) degree t    5 Type: PositiveInteger mirror t    -2[ab]-5[ab2]-3[a2bab]+[abab2] 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]

Function declaration Jacobi : (
LiePolynomial(Symbol,  Fraction Integer),
LiePolynomial(Symbol,Fraction Integer),
LiePolynomial(Symbol,Fraction Integer)) ->
LiePolynomial(Symbol,Fraction Integer)


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    [ab2] Type: LiePolynomial(Symbol,Fraction Integer) eval(p, [a,b], [2*bb, 3*aa])$Lpoly


 -6[ab]

Type: LiePolynomial(Symbol,Fraction Integer)

r: Lpoly := [p,c]


 [abc]+[acb]

Type: LiePolynomial(Symbol,Fraction Integer)

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


 -[acb]

Type: LiePolynomial(Symbol,Fraction Integer)

r + r1 + r2


 0

Type: LiePolynomial(Symbol,Fraction Integer)