acmt

◼ acmt[op1[i1], op2[i2]] defines the value of the anti-commutator between fermionic operators op1[i1] and op2[i2]. The default behavior is to return the canonical anti-commutator for fermionic operators.

◼ By default, acmt returns the value of the anticommutator as a product of KroneckerDelta expressions for the pairs of indexes of the the operators.

◼  If needed, the user may override the default behavior. This might be required, for example, if anticommutation relations in terms of DiracDelta are preferred.

◼ NOTE: in versions of sneg prior to 1.96, the default acmt performed literal comparisons between pairs of indexes. It returned 1 if one operator was creation operator and the other was annihilation operator, while all operator indexes were equal. In all other cases 0 was returned. The new default behavior is more general and safer.

◼ It is assumed that operators with different symbols (op) anti-commute.

◼ See also: snegOrderedQ, nc, antikomutator.

Further examples

Load sneg

<< sneg`sneg`;

Let c be a fermionic operator with canonical anti-commutation rules (the default).

snegfermionoperators[c];
acmt[c[CR], c[CR]] == 0
acmt[c[AN], c[AN]] == 0
acmt[c[CR], c[AN]] == 1
acmt[c[AN], c[CR]] == 1

The same values are obtained when the operator anticommutator are explicitly calculated.

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

The value of the anti-commutator is taken  into account when reordering is performed.

nc[c[AN], c[CR]]

acmt uses KroneckerDelta to return the value of the anticommutator for generic indexes.

acmt[c[CR, k1], c[AN, k1]]
acmt[c[CR, k1], c[AN, k2]]
acmt[c[CR, k1, σ1], c[AN, k1, σ2]]
acmt[c[CR, k1, σ1], c[AN, k2, σ2]]

Anticommutators with KroneckerDelta are used in operator reordering.

nc[c[AN, k1], c[CR, k2]]
nc[c[AN, k1, σ1], 
      c[CR, k2, σ2]]
nc[c[AN, k1, s1], c[CR, k2, s2]]
nc[c[AN, k1, UP], c[CR, k2, DO]]
nc[c[AN, k1, UP], c[CR, k1, UP]]

Two different operators always anticommute.

snegfermionoperators[d];
antikomutator[c[CR], d[CR]] == 0
antikomutator[c[AN], d[AN]] == 0
antikomutator[c[CR], d[AN]] == 0
antikomutator[c[AN], d[CR]] == 0