cmt

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

◼ By default, cmt returns the value of the commutator 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 commutation relations in terms of DiracDelta are preferred.

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

◼ See also: snegOrderedQ, nc, komutator.

Further examples

Load sneg

<< sneg`sneg`;

Let a be a bosonic operator with canonical commutation rules (the default).

snegbosonoperators[a];
cmt[a[CR], a[CR]] == 0
cmt[a[AN], a[AN]] == 0
cmt[a[CR], a[AN]] == -1
cmt[a[AN], a[CR]] == 1

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

komutator[a[CR], a[CR]] == 0
komutator[a[AN], a[AN]] == 0
komutator[a[CR], a[AN]] == -1
komutator[a[AN], a[CR]] == 1

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

nc[a[AN], a[CR]]

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

cmt[a[CR, k1], a[AN, k1]]
cmt[a[CR, k1], a[AN, k2]]

Commutators with KroneckerDelta are used in operator reordering.

nc[a[AN, k1], a[CR, k2]]

Two different bosonic operators always commute.

snegbosonoperators[d];
komutator[a[CR], d[CR]] == 0
komutator[a[AN], d[AN]] == 0
komutator[a[CR], d[AN]] == 0
komutator[a[AN], d[CR]] == 0