Yurie/Algebra
A Mathematica paclet for implementing and managing finitely presented associative algebras.
Dependency:
"Yurie/Cluster"->">=2.0.0"
Attributes
-
"Generator"- list of generators. -
"Relation"- list of defining relations. -
"Printing"- list of formatting rules. -
"TensorRank"- list of tensor ranks of generators. -
"Parity"- list of parities of generators.
Methods
-
$algebraDefine- list of the defined algebras. -
$algebraDefault- list of the default algebras. -
algebraDefine[algList_|algs___]- define the algebras. -
algebraDefault[algList_|algs___]- set the default algebras. -
algebraReset|algebraUnset[algList_|algs___]- reset/unset the algebras. -
algebraAdd|algebraMinus[algList_|algs___][assoc_]- add/drop elements to/from the algebras.The argument
assoc_accepts_Rule|{___Rule}|_Association. -
algebraShow[alg_]- show the algebra.
Default argument
-
algebraReset[]- reset all the defined except internal algebras. -
algebraUnset[]- unset all the defined except internal algebras. -
algebraShow[]- show the default algebras.
Functionalities
For an algebra \(A\) over a base field \(k\), the following operations are implemented.
| Name | Symbol | Formatting | |
|---|---|---|---|
| multiplication | \(m: A\ox A\to A\) | NonCommutativeMultiply |
NonCommutativeMultiply |
| unit | \(\eta: k\to A\) | id |
1 |
| conjugate | \(\bullet^\dagger: A\to A\) | conjugate |
SuperDagger |
| inverse | \(\bullet^{-1}: A\to A\) | inverse |
Inverse |
| tensor product | tensor |
CircleTimes |
|
| comultiplication | \(\Delta:A\to A\ox A\) | comultiply |
"\[CapitalDelta]" |
| counit | \(\epsilon:A\to k\) | counit |
"\[Epsilon]" |
| antipode | \(S:A\to A\) | antipode |
"S" |
The predefined algebras with their implemented structures are listed below.
| Algebra | Operation | Structure |
|---|---|---|
"Algebra" |
multiplication | linearity, zero, identity |
"Conjugate" |
conjugate | anti-linearity, anti-morphism, identity |
"Inverse" |
inverse | inverse, anti-morphism, identity |
"Tensor" |
tensor product | linearity, composition |
"Coalgebra" |
comultiplication, counit | linearity |
"Bialgebra" |
comultiplication, counit | morphism, identity |
"Antipode" |
antipode | linearity, anti-morphism, identity |
There are several remarks.
-
The algebra
"Algebra"will be enabled by default. -
The associativity of multiplication and tensor product is implemented by the attributes
{Flat,OneIdentity}. -
The base field \(k\) and its embedding in the algebra \(A\) is distinguished, and the identity operator
idis the image \(\eta(1)\in A\).
Core functionalities
-
id- identity operator. -
generator[alg_]- return the generators of the default/specified algebra. -
relation[alg_]- return the defining relations of the default/specified algebra. -
printing[alg_]- return the formatting rules of the default/specified algebra. -
generatorQ[_]- check whether the expression is a generator by the default algebra. -
scalarQ|operatorQ[_]- check whether the expression is a scalar/operator by the default algebra. -
algebraSimplify[_]- simplify the expression by the default algebra. -
algebraPrint[_]- format the expression by the default algebra. -
tensorank[_]- return the tensor rank of the expression by the default algebra. -
tensorankUnsafe[_]- return the tensor rank of the expression by the default algebra without validating the expression. -
parity[_]- return the parity of the expression by the default algebra. -
parityUnsafe[_]- return the parity of the expression by the default algebra without validating the expression.
Table of shortcuts:
| Name | Meaning |
|---|---|
algS[_] |
algebraSimplify |
algP[_] |
algebraPrint |
algSP[_] |
algebraSimplify + algebraPrint |
algEqualQ[_,_] |
x==y for operators. |
algSameQ[_,_] |
x===y for operators. |
Involution
This functionality needs the algebras "Conjugate" and/or "Inverse".
-
conjugate[_]- conjugate of the operator. -
innerProduct[_,_]- inner product of the two operators.For operators \(x\) and \(y\) this returns \(x^{\dagger}\cdot y\), and for a single operator \(x\) this returns \(x^{\dagger}\cdot x\).
-
inverse[_]- inverse of the operator.
Tensor product
This functionality needs the algebras "Tensor", "Coalgebra", "Bialgebra" and/or "Antipode".
-
tensor[__]- tensor product. -
comultiply[_]- comultiplication of coalgebra. -
counit[_]- counit of coalgebra. -
antipode[_]- antipode of Hopf algebra. -
tensorCompose[_]- composite the tensors over multiplication according to tensor rank. -
tensorPermute[cycle_][_]- permute the arguments of the tensor.
Utilities
Commutator
-
comm[__]- (anti-)commutator. -
commSim[__]- simplify the (anti-)commutator. -
commIn[_,_]:>_/;_- define the (anti-)commutator with the given order and condition.
Adjoint
-
adjoint[op_,order_:1][expr_]- the adjoint action of Lie algebra.For \(x,y\in \glie\), \(\ad^{0}_x(y)=y\) and
\[\begin{equation} \ad^n_x(y) =[x,\ad^{n-1}_x(y)] \, . \end{equation}\] -
adjointExp[op_,max_,t_:1][expr_]- the adjoint action of formal Lie group truncated at the given order.For \(x,y\in \glie\) and \(t\in \CC\),
\[\begin{equation} \Ad_{t x}(y)|_{n} = e^{t x}y e^{-t x}|_{n} = \sum_{i=0}^{n}\frac{t^{i}}{i!}\ad^{i}_{x}(y) \, . \end{equation}\]
Power
-
operatorPower[op_,order_:1]- power of the operator. -
operatorExp[op_,max_,t_:1]- exponential of the operator truncated at the given order.For \(x\in A\) and \(t\in\CC\),
\[\begin{equation} e^{t x}|_n=\sum_{i=0}^{n}\frac{t^i}{i!} x^i \, . \end{equation}\]
Operator separation
-
operatorSeparate[_]- separate scalars and operators in the given linear expression. -
scalarSimplify[_]- simplify the scalar part of the expression.
Consistency check
User-defined relations are not guaranteed to be consistent with the internal ones. The following functions are designed for consistency checks.
-
checkLieBracket[_,_,_]- check the Jacobi identity of Lie algebra.For \(x,y,z\in\glie\),
\[\begin{equation} [[x,y],z]=[x,[y,z]]-[y,[x,z]] \, . \end{equation}\] -
checkLieModule[_,_,_]- check the action on Lie module.For $x,y\in \glie $ and \(v\in V\),
\[\begin{equation} [x,y] (v)=x(y(v))-y(x(v)) \, . \end{equation}\] -
checkCoassociativity[_]- check the coassociativity of comultiplication.For \(x\in A\),
\[\begin{equation} \sum x_{(1)(1)}\ox x_{(1)(2)}\ox x_{(2)} = \sum x_{(1)}\ox x_{(2)(1)}\ox x_{(2)(2)} \, . \end{equation}\] -
checkCounitality[_]- check the counitality of counit.For \(x\in A\),
\[\begin{equation} \sum \epsilon(x_{(1)})x_{(2)} = \sum x_{(1)}\epsilon(x_{(2)}) = x \, . \end{equation}\] -
checkAntipode[_]- check the antipode of Hopf algebra.For \(x\in A\),
\[\begin{equation} \sum S(x_{(1)})x_{(2)} = \sum x_{(1)}S(x_{(2)}) = \epsilon(x)\id \, . \end{equation}\]
Other issues
-
Needs["Yurie`Algebra`"]will preserve the previously defined algebras, whileGet["Yurie`Algebra`"]will clear them. -
From version 14.2 to 14.3, the behavior of
Simplifyis changed to convert e.g.x**xtoGeneralizedPower[x,2].The function
scalarSimplifymimicsSimplifybefore version 14.3.