Skip to content

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, while Get["Yurie`Algebra`"] will clear them.

  • The accepted pattern of algebra names is _String.