Non-degeneracy of the pairing Ref:
We use the Axiom LinearOperator library fricas (1) -> )library CARTEN MONAL PROP LOP and convenient notation fricas macro Σ(x, Type: Void
fricas macro Ξ(f, Type: Void
fricas macro sb == subscript Type: Void
fricas macro sp == superscript Type: Void
Let 𝐋 be the domain of 2-dimensional linear operators fricas dim:=2
Type: PositiveInteger?
fricas macro ℒ == List Type: Void
fricas macro ℚ == Expression Integer Type: Void
fricas 𝐋 := LinearOperator(OVAR ['1,
Type: Type
fricas 𝐞:ℒ 𝐋 := basisOut()
fricas 𝐝:ℒ 𝐋 := basisIn()
fricas I:𝐋:=[1] -- identity for composition
fricas X:𝐋:=[2,
PairingA scalar product (pairing) is represented by fricas U:=Σ(Σ(sp('u,
In general we do not require that it be symmetric. Co-pairingSolve the "snake relation" as a system of linear equations. fricas Ω:𝐋:=Σ(Σ(sb('u,
fricas Í:=(I*Ω)/(U*I); fricas Ì:=(Ω*I)/(I*U); fricas equate(f, Type: Void
fricas eq1:=equate(Í, fricas Compiling function equate with type (LinearOperator( OrderedVariableList([1,
Type: List(Equation(Expression(Integer)))
fricas eq2:=equate(Ì,
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 matrix Ξ(Ξ(Ω/(𝐝.i*𝐝.j),
This is equivalent to a matrix inverse (transposed!) fricas Um:=matrix Ξ(Ξ((𝐞.i*𝐞.j)/U,
fricas mU:=transpose inverse map(retract,
Type: Matrix(Expression(Integer))
fricas Ωm:=Σ(Σ(mU(i,
fricas -- compare test(Ω=Ωm)
Type: Boolean
Check that the snake relation holds fricas test ( I Ω ) / ( U I ) = I
Type: Boolean
fricas test ( Ω I ) / ( I U ) = I
Type: Boolean
Dimensionfricas d:= Ω / U
This "twisted" quantity does not. fricas d':= Ω / X / U
Symmetric PairingRepeat the calculation, assuming that U is symmetric. fricas sym:=groebner ravel(U-X/U) fricas Um:=matrix Ξ(Ξ((𝐞.i*𝐞.j)/U,
fricas mU:=transpose inverse map(retract,
Type: Matrix(Expression(Integer))
fricas Ω:=Σ(Σ(mU(i,
Check that the snake relation holds fricas test ( I Ω ) / ( U I ) = I
Type: Boolean
fricas test ( Ω I ) / ( I U ) = I
Type: Boolean
These quantities no longer depends on ! fricas d:= Ω / U
fricas d':= Ω / X / U
Twist dimension or twist snake? --Bill Page, Sun, 08 May 2011 14:16:39 -0700 reply TwistedSnakeRelation
|