qml.liealg¶
Overview¶
This module contains functionality to express and manipulate Lie algebras within the context of quantum computing.
In quantum computing, we are typically dealing with vectors in the Hilbert space \(\mathcal{H} = \mathbb{C}^{2^n}\) that are manipulated by unitary gates from the special unitary group \(SU(2^n).\) For full universality, we require the available gates to span all of \(SU(2^n)\) in order to reach any state in Hilbert space from any other state.
\(SU(2^n)\) is a Lie group and has an associated Lie algebra to it, called \(\mathfrak{su}(2^n)\). In some cases, it is more convenient to work with the associated Lie algebra rather than the Lie group.
Lie algebra functionality¶
|
Compute the (dynamical) Lie algebra from a set of generators. |
|
Compute the structure constants that make up the adjoint representation of a Lie algebra. |
|
Compute the center of a Lie algebra. |
|
Compute the Cartan Decomposition \(\mathfrak{g} = \mathfrak{k} \oplus \mathfrak{m}\) of a Lie algebra \(\mathfrak{g}\). |
|
Compute a Cartan subalgebra (CSA) \(\mathfrak{a} \subseteq \mathfrak{m}\). |
Functions¶
|
Helper function to check the validity of a Cartan decomposition \(\mathfrak{g} = \mathfrak{k} \oplus \mathfrak{m}.\) |
|
Helper function to check \([\text{ops1}, \text{ops2}] \subseteq \text{vspace}\). |
|
Helper function to check if all operators in |
|
Transform adjoint vector representations back into operator format. |
|
Decompose a batch of operators into a given operator basis. |
|
Apply a |
Involutions¶
A map \(\theta: \mathfrak{g} \rightarrow \mathfrak{g}\) from the Lie algebra \(\mathfrak{g}\) to itself is called an involution
if it fulfills \(\theta(\theta(g)) = g \ \forall g \in \mathfrak{g}\) and is compatible with commutators,
\([\theta(g), \theta(g')]=\theta([g, g']).\) Involutions are used to construct a cartan_decomp()
. There are seven canonical
Cartan involutions of classical real simple Lie algebras (AI, AII, AIII, BDI, DIII, CI, CII
)
and one canonical involution for each real semisimple Lie algebra made up of two isomorphic
classical simple components (A, BD, C
).
See, for example, Tab. 4 in Edelman and Jeong.
Note that the functions implemented here do not represent the mathematical involutions directly,
but return a boolean value that indicates whether or not the input is in the \(+1\) eigenspace
of \(\theta\). When using them, it is usually assumed that we apply them to operators in the
eigenbasis of the underlying involution \(\theta\).
The Even-Odd involution. |
|
The Concurrence Canonical Decomposition \(\Theta(g) = -g^T\) as a Cartan involution function. |
|
|
Canonical Cartan decomposition of type A on \(\mathfrak{su}(n)\oplus \mathfrak{su}(n)\), given by \(\theta: x\oplus y \mapsto y\oplus x\). |
|
Canonical Cartan decomposition of type AI, given by \(\theta: x \mapsto x^\ast\). |
|
Canonical Cartan decomposition of type AII, given by \(\theta: x \mapsto Y_0 x^\ast Y_0\). |
|
Canonical Cartan decomposition of type AIII, given by \(\theta: x \mapsto I_{p,q} x I_{p,q}\). |
|
Canonical Cartan decomposition of type BD on \(\mathfrak{so}(n)\oplus \mathfrak{so}(n)\), given by \(\theta: x\oplus y \mapsto y\oplus x\). |
|
Canonical Cartan decomposition of type BDI, given by \(\theta: x \mapsto I_{p,q} x I_{p,q}\). |
|
Canonical Cartan decomposition of type DIII, given by \(\theta: x \mapsto Y_0 x Y_0\). |
|
Canonical Cartan decomposition of type C on \(\mathfrak{sp}(n)\oplus \mathfrak{sp}(n)\), given by \(\theta: x\oplus y \mapsto y\oplus x\). |
|
Canonical Cartan decomposition of type CI, given by \(\theta: x \mapsto x^\ast\). |
|
Canonical Cartan decomposition of type CII, given by \(\theta: x \mapsto K_{p,q} x K_{p,q}\). |
Relevant demos¶
Check out the following demos to learn more about Lie algebras in the context of quantum computation: