Grassmann Algebra Is Frobenius In Many Ways A -dimensional vector space represents Grassmann algebra with generators Linear operators over a 4-dimensional vector space representing Grassmann algebra with two generators. Ref:
We need the Axiom LinearOperator library. fricas )library CARTEN ARITY CMONAL CPROP CLOP CALEY Use the following macros for convenient notation fricas -- summation macro Σ(x, Type: Void
fricas -- list macro Ξ(f, Type: Void
fricas -- subscript and superscripts macro sb == subscript Type: Void
fricas macro sp == superscript Type: Void
𝐋 is the domain of 4-dimensional linear operators over the rational functions ℚ (Expression Integer), i.e. ratio of polynomials with integer coefficients. fricas dim:=4
Type: PositiveInteger?
fricas macro ℒ == List Type: Void
fricas macro ℂ == CaleyDickson Type: Void
fricas macro ℚ == Expression Integer Type: Void
fricas 𝐋 := ClosedLinearOperator(OVAR ['1,
Type: Type
fricas 𝐞:ℒ 𝐋 := basisOut()
fricas 𝐝:ℒ 𝐋 := basisIn()
fricas I:𝐋:=[1] -- identity for composition
fricas X:𝐋:=[2,
fricas V:𝐋:=ev(1) -- evaluation
fricas Λ:𝐋:=co(1) -- co-evaluation
fricas equate(eq)==map((x, Type: Void
Generate structure constants for Grassmann Algebra The structure constants can be obtained by dividing each matrix entry by the list of basis vectors. Grassmann algebra will be specified by setting the Caley-Dickson parameters (i2, j2) to zero. fricas i2:=sp('i,
Type: Symbol
fricas j2:=sp('j,
Type: Symbol
fricas QQ:=CliffordAlgebra(2,
Type: Type
fricas B:ℒ QQ := [monomial(1,
fricas M:Matrix QQ := matrix Ξ(Ξ(B.i*B.j,
fricas S(y) == map(x +-> coefficient(recip(y)*x, Type: Void
fricas ѕ :=map(S, fricas Compiling function S with type CliffordAlgebra(2,
Type: List(List(List(Expression(Integer))))
fricas -- structure constants form a tensor operator --Y := Σ(Σ(Σ(ѕ(i)(k)(j)*𝐞.i*𝐝.j*𝐝.k,
fricas matrix Ξ(Ξ((𝐞.i*𝐞.j)/Y,
Units fricas e:=𝐞.1; i:=𝐞.2; j:=𝐞.3; k:=𝐞.4; Multiplication of arbitrary Grassmann numbers and fricas a:=Σ(sb('a,
fricas b:=Σ(sb('b,
fricas (a*b)/Y
Multiplication is Associative fricas test( ( I Y ) / _ ( Y ) = _ ( Y I ) / _ ( Y ) )
Type: Boolean
A scalar product is denoted by the (2,0)-tensor fricas U:=Σ(Σ(script('u,
Definition 1We say that the scalar product is associative if the tensor equation holds: Y = Y U U In other words, if the (3,0)-tensor:
Using the LinearOperator domain in Axiom and some carefully chosen symbols we can easily enter expressions that are both readable and interpreted by Axiom as "graphical calculus" diagrams describing complex products and compositions of linear operators. fricas ω:𝐋 := ( Y I ) / U - ( I Y ) / U
Definition 2An algebra with a non-degenerate associative scalar product is called a [Frobenius Algebra]?. The Cartan-Killing Trace fricas Ú:= ( Y Λ ) / _ ( Y I ) / _ V
fricas Ù:= ( Λ Y ) / _ ( I Y ) / _ V
fricas test(Ù=Ú)
Type: Boolean
forms is degenerate fricas Ũ := Ù
fricas test ( Y I ) / Ũ = ( I Y ) / Ũ
Type: Boolean
fricas determinant Ξ(Ξ(retract((𝐞.i * 𝐞.j)/Ũ),
Type: Expression(Integer)
General Solution We may consider the problem where multiplication Y is given, and look for all associative scalar products This problem can be solved using linear algebra. fricas )expose MCALCFN Type: Matrix(Expression(Integer))
fricas nrows(J),
Type: Tuple(PositiveInteger?)
The matrix If the null space of the fricas Ñ:=nullSpace(J)
Type: List(Vector(Expression(Integer)))
fricas ℰ:=map((x,
Type: List(Equation(Expression(Integer)))
This defines a family of pre-Frobenius algebras: fricas zero? eval(ω,
Type: Boolean
fricas Ų:𝐋 := eval(U,
Frobenius Form (co-unit) fricas d:=ε1*𝐝.1+εi*𝐝.2+εj*𝐝.3+εk*𝐝.4
fricas 𝔇:=equate(d= ( e I ) / _ Ų ) fricas Compiling function equate with type Equation(ClosedLinearOperator( OrderedVariableList([1,
Type: List(Equation(Expression(Integer)))
Express scalar product in terms of Frobenius form fricas 𝔓:=solve(𝔇,
Type: List(Equation(Expression(Integer)))
fricas Ų:=eval(Ų,
fricas test Y / d = Ų
Type: Boolean
In general the pairing is not symmetric! fricas u1:=matrix Ξ(Ξ(retract((𝐞.i 𝐞.j)/Ų),
Type: Matrix(Expression(Integer))
fricas )set output algebra on fricas )set output tex off fricas eigenvectors(u1::Matrix FRAC POLY INT) Type: List(Record(eigval: Union(Fraction(Polynomial(Integer)),
fricas )set output algebra off fricas )set output tex on The scalar product must be non-degenerate: fricas Ů:=determinant u1
Type: Expression(Integer)
fricas factor(numer Ů)/factor(denom Ů)
Type: Fraction(Factored(SparseMultivariatePolynomial?(Integer,
Frobenius scalar product of "vectors" and fricas a:=sb('a,
fricas b:=sb('b,
fricas (a,
fricas (a,
Definition 3Co-scalar product Solve the Snake Relation as a system of linear equations. fricas Ω:𝐋:=Σ(Σ(script('u,
fricas ΩX:=Ω/X; fricas UXΩ:=(I*ΩX)/(Ų*I); fricas ΩXU:=(ΩX*I)/(I*Ų); fricas eq1:=equate(UXΩ=I); Type: List(Equation(Expression(Integer)))
fricas eq2:=equate(ΩXU=I); Type: List(Equation(Expression(Integer)))
fricas snake:=solve(concat(eq1, Type: List(List(Equation(Expression(Integer))))
fricas if #snake ~= 1 then error "no solution" Type: Void
fricas Ω:=eval(Ω,
fricas ΩX:=Ω/X; fricas matrix Ξ(Ξ(retract(Ω/(𝐝.i*𝐝.j)),
Type: Matrix(Expression(Integer))
Check "dimension" and the snake relations. fricas O:𝐋:= Ω / Ų
fricas test ( I ΩX ) / ( Ų I ) = I
Type: Boolean
fricas test ( ΩX I ) / ( I Ų ) = I
Type: Boolean
Definition 4Co-algebra Compute the "three-point" function and use it to define co-multiplication. fricas W:= (Y I) / Ų
fricas λ:= ( ΩX I ΩX ) / ( I W I )
fricas test ( I ΩX ) / ( Y I ) = λ
Type: Boolean
fricas test ( ΩX I ) / ( I Y ) = λ
Type: Boolean
Co-associativity fricas test( ( λ ) / _ ( I λ ) = _ ( λ ) / _ ( λ I ) )
Type: Boolean
fricas test e / λ = ΩX
Type: Boolean
Frobenius Condition (fork) fricas H := Y / λ
fricas test ( λ I ) / ( I Y ) = H
Type: Boolean
fricas test ( I λ ) / ( Y I ) = H
Type: Boolean
Handle fricas Φ := λ / Y
Figure 12 fricas φφ:= _ ( Ω Ω ) / _ ( X I I ) / _ ( I X I ) / _ ( I I X ) / _ ( Y Y )
Bi-algebra conditions fricas ΦΦ:= _ ( λ λ ) / _ ( I I X ) / _ ( I X I ) / _ ( I I X ) / _ ( Y Y )
fricas test((e,
Type: Boolean
Bi-algebra conditions fricas ΦΦ:= _ ( λ λ ) / _ ( I X I ) / _ ( Y Y )
fricas test((e,
Type: Boolean
Y-formsThree traces of two graftings of an algebra gives six (2,0)-forms. Left snail and right snail: LS RS Y /\ /\ Y Y ) ( Y \/ \/ i j j i \/ \/ \ /\ /\ / e f \ / f e \/ \ / \/ \ / \ / f / \ f \/ \/ fricas LS:= ( Y Λ )/ _ ( Y I )/ _ V
fricas RS:= ( Λ Y )/ _ ( I Y )/ _ V
fricas test(LS=RS)
Type: Boolean
Left and right deer: RD LD \ /\/ \/\ / Y /\ /\ Y Y ) ( Y \/ \/ i j i j \ /\ / \ /\ / \ f \ / \ / f / \/ \/ \/ \/ \ /\ /\ / e / \ / \ e \/ \ / \/ \ / \ / f / \ f \/ \/ Left and right deer forms are identical but different from snails. fricas RD:= ( I Λ I ) / _ ( Y X ) / _ ( Y I ) / _ V
fricas LD:= ( I Λ I ) / _ ( X Y ) / _ ( I Y ) / _ V
fricas test(LD=RD)
Type: Boolean
fricas test(RD=RS)
Type: Boolean
fricas test(RD=LS)
Type: Boolean
Left and right turtles: RT LT /\ / / \ \ /\ ( Y / \ Y ) \ Y Y / \/ \/ i j i j /\ / / \ \ /\ / f / / \ \ f \ / \/ / \ \/ \ \ \ / \ / / \ e / \ e / \ \/ \/ / \ / \ / \ f f / \/ \/ fricas RT:= ( Λ I I ) / _ ( I Y I ) / _ ( I Y ) / _ V
fricas LT:= ( I I Λ ) / _ ( I Y I ) / _ ( Y I ) / _ V
fricas test(LT=RT)
Type: Boolean
The turles are symmetric fricas test(RT = X/RT)
Type: Boolean
fricas test(LT = X/LT)
Type: Boolean
Five of the six forms are independent. fricas test(RT=RS)
Type: Boolean
fricas test(RT=LS)
Type: Boolean
fricas test(RT=RD)
Type: Boolean
fricas test(LT=RS)
Type: Boolean
fricas test(LT=LS)
Type: Boolean
fricas test(LT=RD)
Type: Boolean
|