<span class="mw-page-title-namespace">Blog</span><span class="mw-page-title-separator">:</span><span class="mw-page-title-main">Notes/NormalOrder examples</span>
Elena & Fabrice's Web

NormalOrder examples

From laussy.org's Blog about Notes.
Published: 00:52, 17 July 2025.

In this note I give some particular cases of the module NormalOrder (see here for this module itself).

If C commutes with A and B then:

[A,BC]=[A,B]C

So it is easy to compute expressions like, e.g.,

[aa,ab]

factoring out b and computing:

NormalOrder[{{{1, 1, 1, 0}, 1}, {{2, 1}, -1}}]
{{{1, 0}, 1}}

we find:

[aa,ab]=ab.

If you followed my trend yesterday you see we're getting closer and closer to a universal engine to solve symbolically (or reduce) quantum systems.

Here is a module that does the commutation directly, computing :[elem1,elem2]::

NormalOrderCommutator[elem1_, elem2_] := Module[{},
  NormalOrder[{prod[elem1, elem2], prod[{1, -1}*elem2, elem1]}]
  ]

in term of another module, prod, which is a component of the NormalOrder module:

prod[sequence__] := Module[{terms},
  terms = Transpose[List[sequence]];
  {Associate[Flatten[EvenSize /@ (terms[[1]])]], Times @@ terms[[2]]}
  ]

EvenSize[list_] := Module[{},
  If[OddQ[Length[list]], Prepend[list, 0], list] 
  ]

Some examples:

NormalOrderCommutator[{{1, 1}, 1}, {{1, 0}, 1}]
{{{1, 0}, 1}}

which is the case already given above, or

NormalOrderCommutator[{{1}, 1}, {{1, 0}, 1}]
{{{0, 0}, 1}}

which is the fundamental relation [a,a]=1.