Onsager Algebra¶
AUTHORS:
- Travis Scrimshaw (2017-07): Initial version
-
sage.algebras.lie_algebras.onsager.
OnsagerAlgebra
¶ The Onsager (Lie) algebra.
The Onsager (Lie) algebra \(\mathcal{O}\) is a Lie algebra with generators \(A_0, A_1\) that satisfy
\[[A_0, [A_0, [A_0, A_1]]] = -4 [A_0, A_1], \qquad [A_1, [A_1, [A_1, A_0]]] = -4 [A_1, A_0].\]Note
We are using a rescaled version of the usual defining generators.
There exist a basis \(\{A_m, G_n \mid m \in \ZZ, n \in \ZZ_{>0}\}\) for \(\mathcal{O}\) with structure coefficients
\[[A_m, A_{m'}] = G_{m-m'}, \qquad [G_n, G_{n'}] = 0, \qquad [G_n, A_m] = 2A_{m-n} - 2A_{m+n},\]where \(m > m'\).
The Onsager algebra is isomorphic to the subalgebra of the affine Lie algebra \(\widehat{\mathfrak{sl}}_2 = \mathfrak{sl}_2 \otimes \CC[t,t^{-1}] \oplus \CC K \oplus \CC d\) that is invariant under the Chevalley involution. In particular, we have
\[A_i \mapsto f \otimes t^i - e \otimes t^{-i}, \qquad G_i \mapsto h \otimes t^{-i} - h \otimes t^i.\]where \(e,f,h\) are the Chevalley generators of \(\mathfrak{sl}_2\).
EXAMPLES:
We construct the Onsager algebra and do some basic computations:
sage: O = lie_algebras.OnsagerAlgebra(QQ) sage: O.inject_variables() Defining A0, A1
We verify the defining relations:
sage: O([A0, [A0, [A0, A1]]]) == -4 * O([A0, A1]) True sage: O([A1, [A1, [A1, A0]]]) == -4 * O([A1, A0]) True
We check the embedding into \(\widehat{\mathfrak{sl}}_2\):
sage: L = LieAlgebra(QQ, cartan_type=['A',1,1]) sage: B = L.basis() sage: al = RootSystem(['A',1]).root_lattice().simple_root(1) sage: ac = al.associated_coroot() sage: def emb_A(i): return B[-al,i] - B[al,-i] sage: def emb_G(i): return B[ac,i] - B[ac,-i] sage: a0 = emb_A(0) sage: a1 = emb_A(1) sage: L([a0, [a0, [a0, a1]]]) == -4 * L([a0, a1]) True sage: L([a1, [a1, [a1, a0]]]) == -4 * L([a1, a0]) True sage: all(emb_G(n).bracket(emb_A(m)) == 2*emb_A(m-n) - 2*emb_A(m+n) ....: for m in range(-10, 10) for n in range(1,10)) True sage: all(emb_A(m).bracket(emb_A(mp)) == emb_G(m-mp) ....: for m in range(-10,10) for mp in range(m-10, m)) True
REFERENCES:
-
sage.algebras.lie_algebras.onsager.
QuantumOnsagerAlgebra
¶ The quantum Onsager algebra.
The quantum Onsager algebra, or \(q\)-Onsager algebra, is a quantum group analog of the Onsager algebra. It is the left (or right) coideal subalgebra of the quantum group \(U_q(\widehat{\mathfrak{sl}}_2)\) and is the simplest example of a quantum symmetric pair coideal subalgebra of affine type.
The \(q\)-Onsager algebra depends on a parameter \(c\) such that \(c(1) = 1\). The \(q\)-Onsager algebra with parameter \(c\) is denoted \(U_q(\mathcal{O}_R)_c\), where \(R\) is the base ring of the defining Onsager algebra.
EXAMPLES:
We create the \(q\)-Onsager algebra and its generators:
sage: O = lie_algebras.OnsagerAlgebra(QQ) sage: Q = O.quantum_group() sage: G = Q.algebra_generators()
The generators are given as pairs, where \(G[0,n]\) is the generator \(B_{n\delta+\alpha_1}\) and \(G[1,n]\) is the generator \(B_{n\delta}\). We use the convention that \(n\delta + \alpha_1 \equiv (-n-1)\delta + \alpha_0\).
sage: G[0,5] B[5d+a1] sage: G[0,-5] B[4d+a0] sage: G[1,5] B[5d] sage: (G[0,5] + G[0,-3]) * (G[1,2] - G[0,3]) B[2d+a0]*B[2d] - B[2d+a0]*B[3d+a1] + ((-q^4+1)/q^2)*B[1d]*B[6d+a1] + ((q^4-1)/q^2)*B[1d]*B[4d+a1] + B[2d]*B[5d+a1] - B[5d+a1]*B[3d+a1] + ((q^2+1)/q^2)*B[7d+a1] + ((q^6+q^4-q^2-1)/q^2)*B[5d+a1] + (-q^4-q^2)*B[3d+a1] sage: (G[0,5] + G[0,-3] + G[1,4]) * (G[0,2] - G[1,3]) -B[2d+a0]*B[3d] + B[2d+a0]*B[2d+a1] + ((q^4-1)/q^4)*B[1d]*B[7d+a1] + ((q^8-2*q^4+1)/q^4)*B[1d]*B[5d+a1] + (-q^4+1)*B[1d]*B[3d+a1] + ((q^4-1)/q^2)*B[2d]*B[6d+a1] + ((-q^4+1)/q^2)*B[2d]*B[4d+a1] - B[3d]*B[4d] - B[3d]*B[5d+a1] + B[4d]*B[2d+a1] + B[5d+a1]*B[2d+a1] + ((-q^2-1)/q^4)*B[8d+a1] + ((-q^6-q^4+q^2+1)/q^4)*B[6d+a1] + (-q^6-q^4+q^2+1)*B[4d+a1] + (q^6+q^4)*B[2d+a1]
We check the \(q\)-Dolan-Grady relations:
sage: def q_dolan_grady(a, b, q): ....: x = q*a*b - ~q*b*a ....: y = ~q*a*x - q*x*a ....: return a*y - y*a sage: A0, A1 = G[0,-1], G[0,0] sage: q = Q.q() sage: q_dolan_grady(A1, A0, q) == (q^4 + 2*q^2 + 1) * (A0*A1 - A1*A0) True sage: q_dolan_grady(A0, A1, q) == (q^4 + 2*q^2 + 1) * (A1*A0 - A0*A1) True
REFERENCES: