antikomutator

◼ antikomutator[a, b] computes the anti-commutator a·b+b·a.

◼ See also: komutator.

Further examples

Load sneg and let c be a fermionic operator

<< sneg`sneg`;
snegfermionoperators[c]

Canonical fermionic anticommutation relations

antikomutator[c[CR], c[AN]] == 1
antikomutator[c[CR], c[CR]] == 0
antikomutator[c[AN], c[AN]] == 0

\(Anticommuting\ Grassman\ variable\ z\ and\ its\ conjugate\ \(\(z\&_\)\(.\)\)\)

sneggrassmanconstants[z]
nc[z, conj[z]]
nc[conj[z], z]
antikomutator[z, conj[z]] == 0

Another example of anticommuting Grassman variables

sneggrassmanconstants[z1, z2]
nc[z1, z2]
nc[z2, z1]
antikomutator[z1, z2] == 0

S=1/2 spin operator also anticommute

{(Subscript[S, x]), (Subscript[S, y]), (Subscript[S, z])} = spinxyz[c[]]
(antikomutator[(Subscript[S, x]), (Subscript[S, y])] // Simplify) == 
      0
(antikomutator[(Subscript[S, y]), (Subscript[S, z])] // Simplify) == 
      0
(antikomutator[(Subscript[S, z]), (Subscript[S, x])] // Simplify) == 0

Further properties of S=1/2 spin operators for a single electron level.

Sp = (Subscript[S, x]) + I (Subscript[S, y]) // Expand
Sm = (Subscript[S, x]) - I (Subscript[S, y]) // Expand
antikomutator[Sp, Sm] // Simplify
% == (1 - pow[number[c[]] - 1, 2]) // 
      Simplify
(antikomutator[(Subscript[S, z]), Sp] // Simplify) == 
      0
(antikomutator[(Subscript[S, z]), Sm] // Simplify) == 0

Total spin operators for several levels do not anticommute

{(Subscript[S, x]), (Subscript[S, y]), (Subscript[S, z])} = 
      spinxyz[c[i]] + spinxyz[c[j]]
x1 = antikomutator[(Subscript[S, x]), (Subscript[S, y])] // Simplify
antikomutator[(Subscript[S, y]), (Subscript[S, z])] // Simplify
antikomutator[(Subscript[S, z]), (Subscript[S, x])] // Simplify