Yurie/Algebra
A Mathematica paclet for implementing and managing finitely presented associative algebras.
Dependency:
"Yurie/Cluster"->">=1.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[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.
Name | Meaning |
---|---|
algebraDefine[] |
return the defined algebras. |
algebraDefault[] |
return the default algebras. |
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 | \(\dagger: A\to A\) | conjugate |
SuperDagger |
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 |
"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
id
is 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 |
algFS[_] |
algebraSimplify + FullSimplify |
algP[_] |
algebraPrint |
algSP[_] |
algebraSimplify + algebraPrint |
algFSP[_] |
algebraSimplify + FullSimplify + algebraPrint |
algEqualQ[_,_] |
x==y for operators. |
algSameQ[_,_] |
x===y for operators. |
Inner product
This functionality needs the algebra "Conjugate"
.
-
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\).
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|anticomm[__]
- (anti-)commutator. -
commSim|anticommSim[__]
- simplify the (anti-)commutator. -
commDefine[_,_]:>_/;_
- 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\), \(\adjoint^{0}_x(y)=y\) and
\[\begin{equation} \adjoint^n_x(y) =[x,\adjoint^{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} \Adjoint_{t x}(y)|_{n} = e^{t x}y e^{-t x}|_{n} = \sum_{i=0}^{n}\frac{t^{i}}{i!}\adjoint^{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.
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 retain the previously defined algebras, whileGet["Yurie`Algebra`"]
will clear them. -
The accepted pattern of algebra names is
_String
.