Non-degeneracy of the pairing Ref:
We use the Axiom LinearOperator library fricas )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)
Type: List(Polynomial(Integer))
fricas vars:=map(x+->kernels(x).1,
Type: List(Symbol)
fricas eqs:=solve(sym,
Type: List(Equation(Fraction(Polynomial(Integer))))
fricas U:=eval(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
|
(0.0,-0.8)(0.6,-0.8)(0.6,0.0)
\psbezier[linewidth=0.04](0.6,0.0)(0.6,0.8)(1.2,0.8)(1.2,0.0)
\psline[linewidth=0.04cm](0.0,0.0)(0.0,0.6)
\psline[linewidth=0.04cm](1.2,0.0)(1.2,-0.6)
\psline[linewidth=0.04cm](2.6,0.6)(2.6,-0.6)
\psbezier[linewidth=0.04](5.2,0.0)(5.2,-0.8)(4.6,-0.8)(4.6,0.0)
\psbezier[linewidth=0.04](4.6,0.0)(4.6,0.8)(4.0,0.8)(4.0,0.0)
\psline[linewidth=0.04cm](5.2,0.0)(5.2,0.6)
\psline[linewidth=0.04cm](4.0,0.0)(4.0,-0.6)
\usefont{T1}{ptm}{m}{n}
\rput(1.8948437,0.105){=}
\usefont{T1}{ptm}{m}{n}
\rput(3.2948437,0.105){=}
\end{pspicture}
}
\scalebox{1} % Change this value to rescale the drawing.
{
\begin{pspicture}(0,-0.82)(5.22,0.82)
\psbezier[linewidth=0.04](0.0,0.0)(0.0,-0.8)(0.6,-0.8)(0.6,0.0)
\psbezier[linewidth=0.04](0.6,0.0)(0.6,0.8)(1.2,0.8)(1.2,0.0)
\psline[linewidth=0.04cm](0.0,0.0)(0.0,0.6)
\psline[linewidth=0.04cm](1.2,0.0)(1.2,-0.6)
\psline[linewidth=0.04cm](2.6,0.6)(2.6,-0.6)
\psbezier[linewidth=0.04](5.2,0.0)(5.2,-0.8)(4.6,-0.8)(4.6,0.0)
\psbezier[linewidth=0.04](4.6,0.0)(4.6,0.8)(4.0,0.8)(4.0,0.0)
\psline[linewidth=0.04cm](5.2,0.0)(5.2,0.6)
\psline[linewidth=0.04cm](4.0,0.0)(4.0,-0.6)
\usefont{T1}{ptm}{m}{n}
\rput(1.8948437,0.105){=}
\usefont{T1}{ptm}{m}{n}
\rput(3.2948437,0.105){=}
\end{pspicture}
}](/images/7287907139763480502-16.0px.png)
![\label{eq9}\begin{array}{@{}l}
\displaystyle
\left[{{{{u^{1, \: 2}}\ {u_{2, \: 1}}}+{{u^{1, \: 1}}\ {u_{1, \: 1}}}}= 1}, \:{{{{u^{1, \: 2}}\ {u_{2, \: 2}}}+{{u^{1, \: 1}}\ {u_{1, \: 2}}}}= 0}, \: \right.
\
\
\displaystyle
\left.{{{{u^{2, \: 2}}\ {u_{2, \: 1}}}+{{u^{2, \: 1}}\ {u_{1, \: 1}}}}= 0}, \:{{{{u^{2, \: 2}}\ {u_{2, \: 2}}}+{{u^{2, \: 1}}\ {u_{1, \: 2}}}}= 1}\right]
\label{eq9}\begin{array}{@{}l}
\displaystyle
\left[{{{{u^{1, \: 2}}\ {u_{2, \: 1}}}+{{u^{1, \: 1}}\ {u_{1, \: 1}}}}= 1}, \:{{{{u^{1, \: 2}}\ {u_{2, \: 2}}}+{{u^{1, \: 1}}\ {u_{1, \: 2}}}}= 0}, \: \right.
\
\
\displaystyle
\left.{{{{u^{2, \: 2}}\ {u_{2, \: 1}}}+{{u^{2, \: 1}}\ {u_{1, \: 1}}}}= 0}, \:{{{{u^{2, \: 2}}\ {u_{2, \: 2}}}+{{u^{2, \: 1}}\ {u_{1, \: 2}}}}= 1}\right]](/images/6500282632978154399-16.0px.png)
![\label{eq10}\begin{array}{@{}l}
\displaystyle
\left[{{{{u^{2, \: 1}}\ {u_{1, \: 2}}}+{{u^{1, \: 1}}\ {u_{1, \: 1}}}}= 1}, \:{{{{u^{2, \: 1}}\ {u_{2, \: 2}}}+{{u^{1, \: 1}}\ {u_{2, \: 1}}}}= 0}, \: \right.
\
\
\displaystyle
\left.{{{{u^{2, \: 2}}\ {u_{1, \: 2}}}+{{u^{1, \: 2}}\ {u_{1, \: 1}}}}= 0}, \:{{{{u^{2, \: 2}}\ {u_{2, \: 2}}}+{{u^{1, \: 2}}\ {u_{2, \: 1}}}}= 1}\right]
\label{eq10}\begin{array}{@{}l}
\displaystyle
\left[{{{{u^{2, \: 1}}\ {u_{1, \: 2}}}+{{u^{1, \: 1}}\ {u_{1, \: 1}}}}= 1}, \:{{{{u^{2, \: 1}}\ {u_{2, \: 2}}}+{{u^{1, \: 1}}\ {u_{2, \: 1}}}}= 0}, \: \right.
\
\
\displaystyle
\left.{{{{u^{2, \: 2}}\ {u_{1, \: 2}}}+{{u^{1, \: 2}}\ {u_{1, \: 1}}}}= 0}, \:{{{{u^{2, \: 2}}\ {u_{2, \: 2}}}+{{u^{1, \: 2}}\ {u_{2, \: 1}}}}= 1}\right]](/images/7770369082322762618-16.0px.png)





