Function Repository Resource:

ZassenhausTerms

Source Notebook

Generate terms in the Zassenhaus formula

Contributed by: Mohammad Bahrami

ResourceFunction["ZassenhausTerms"][{op1,op2,,opm},n]

generates the degree-n term of the Zassenhaus expansion of operators {op1,op2,,opm}, where NonCommutativeMultiply if used as the operation between operators.

ResourceFunction["ZassenhausTerms"][{op1,op2,,opm},n,alg]

generates the degree-n term of the Zassenhaus expansion of operators {op1,op2,,opm}, where alg can be a NonCommutativeAlgebra object, {Dot,n},Dot,Composition,TensorProduct or NonCommutativeMultiply.

Details and Options

The degree-n term of Zassenhaus formula involves all possible Lie monomials of degree n in terms of nested commutators of operators.
The Zassenhaus formula is defined as .
If the algebra argument is omitted, NonCommutativeAlgebra with the default property values is used.
The Zassenhaus formula is in many ways the "dual" of the Baker–Campbell–Hausdorff (BCH) formula.
ZassenhausTerms accepts one option, which is set as False by default
"CommutatorForm"Falsewhether to give the result in commutator form
ZassenhausTerms needs version 14.3 of the Wolfram Language.

Examples

Basic Examples (4) 

Degree-2 of Zassenhaus term for two operators:

In[1]:=
ResourceFunction["ZassenhausTerms"][{x, y}, 2]
Out[1]=

Degree-2 of Zassenhaus term for two operators, in the commutator form:

In[2]:=
ResourceFunction["ZassenhausTerms"][{x, y}, 3, "CommutatorForm" -> True] // TraditionalForm
Out[2]=

Degree-4 of Zassenhaus term for two operators:

In[3]:=
ResourceFunction["ZassenhausTerms"][{x, y}, 4] // NonCommutativeExpand
Out[3]=

Degree-2 of Zassenhaus term for three symbolic matrices:

In[4]:=
op = Table[MatrixSymbol["x" <> ToString[j], \[FormalN]], {j, 3}];
ResourceFunction["ZassenhausTerms"][op, 2, Dot] // NonCommutativeExpand[#, Dot] &
Out[5]=

Degree-3 of Zassenhaus term for three operators with Composition as the action:

In[6]:=
ResourceFunction["ZassenhausTerms"][{x, y, w}, 3, Composition] // NonCommutativeExpand[#, Composition] &
Out[6]=

Scope (4) 

Degree-3 of Zassenhaus terms with NonCommutativeMultiply as the action between operators:

In[7]:=
ResourceFunction["ZassenhausTerms"][{x, y}, 3] // NonCommutativeExpand
Out[7]=

Show :

In[8]:=
Z3 = 1/3 Commutator[y, Commutator[x, y]] + 1/6 Commutator[x, Commutator[x, y]];
ResourceFunction["ZassenhausTerms"][{x, y}, 3] - Z3 // NonCommutativeExpand
Out[9]=

Show :

In[10]:=
Z4 = -1/8 Commutator[y, Commutator[y, Commutator[x, y]]] - 1/8 Commutator[y, Commutator[x, Commutator[x, y]]] - 1/24 Commutator[x, Commutator[x, Commutator[x, y]]];
ResourceFunction["ZassenhausTerms"][{x, y}, 4] - Z4 // NonCommutativeExpand
Out[11]=

Show degree-3 of Zassenhaus formula, for four operators:

In[12]:=
ResourceFunction["ZassenhausTerms"][{x, y, z, w}, 3] // NonCommutativeExpand
Out[12]=

Options (2) 

Show degree-3 of Zassenhaus formula, for two operators by holding the commutator form:

In[13]:=
ResourceFunction["ZassenhausTerms"][{x, y}, 3, "CommutatorForm" -> True] // TraditionalForm
Out[13]=

Show degree-2 of Zassenhaus formula, for four symbolic matrices by holding the commutator form:

In[14]:=
ResourceFunction["ZassenhausTerms"][
  Table[MatrixSymbol["x" <> ToString[j], \[FormalN]], {j, 4}], 2, "CommutatorForm" -> True] // TraditionalForm
Out[14]=

Applications (1) 

Show a few terms of Zassenhaus formula for x1+x2+x3+x4=x1x2x3x4∏n=2∞ⅇWn

In[15]:=
With[{ops = Table[
    ToString[Subscript[x, j], StandardForm], {j, 3}]},
 Grid[Table[{\!\(\*
TagBox[
RowBox[{"ToString", "[", 
RowBox[{
RowBox[{"Subscript", "[", 
RowBox[{"\[ScriptCapitalW]", ",", "j"}], "]"}], ",", "StandardForm"}],
         "]"}],
FullForm]\), ResourceFunction["ZassenhausTerms"][ops, j, Dot] // NonCommutativeExpand[#, Dot] &}, {j, 2, 4}], Frame -> All, Alignment -> Left]]
Out[15]=

Publisher

Mads Bahrami

Version History

  • 1.1.0 – 29 October 2025
  • 1.0.0 – 23 July 2025

Source Metadata

Related Resources

Author Notes

I made changes according to the reviewers' comments. I’m open to suggestions if they believe there is a better way to represent the option table in the Details & Options section.

License Information