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)
has been added to workspace.
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)