grassmanQ

◼ grassmanQ[z] returns True if z is a Grassman constant or variable.

◼ Quantities are usually declared to be Grassman numbers using sneggrassmanconstants.

◼ Grassman numbers anticommute with each other. By convention, they also anticommute with Fermionic operators.

◼ Hermitian conjugation of Grassman numbers is interpreted as interchanging z and conj[z].

◼ Grassman numbers are automatically moved (anticommuted) to the begining of a nc sequence.

◼ See also operatorQ, sneggrassmanconstants, nc, conj.

Further examples

Load sneg and declare z, z1 and z2 to be Grassman quantities

<< sneg`sneg`;
sneggrassmanconstants[z, z1, z2]

Basic operations

conj[z]
conj[conj[z]]

nc[z, z] == 0
nc[conj[z], conj[z]] == 0
nc[z, conj[z]]
nc[conj[z], z]
conj[%]

antikomutator[z1, z2] == 0
komutator[z1, z2]
conj[nc[z1, z2]]

Anticommutation with Fermionic operators

snegfermionoperators[c];
nc[c[CR], z]
nc[c[CR], z, z1]
nc[c[CR], z, z1, z2]
nc[z1, c[CR], z2]
conj[%]

Fermionic coherent state |z⟩

a = Exp[-nc[conj[z], z]/2]
snegSeries[a]
b = Exp[nc[c[CR], z]]
snegSeries[b]
nc[a, b, VACUUM]
% == coh[z, c[]]

Conjugated coherent state ⟨z|

ca = Exp[-nc[conj[z], z]/2]
cb = Exp[nc[conj[z], c[AN]]]
nc[conj @ VACUUM, cb, ca] 
% == conj[coh[z, c[]]]

coh[0] is vacuum (i.e. coh[0] is annihilated by the annihilation operator c). Furthermore, coh[z] is eigenstate of the annihilation operator with eigenvalue z.

nc[c[AN], coh[0, c[]]] == 0
nc[c[AN], coh[z, c[]]] == nc[z, VACUUM]

Coherent states are normalized to 1

nc[conj@coh[z, c[]], coh[z, c[]]] == 1

Overlap of two coherent states: overcomplete basis

nc[conj @ coh[z1, c[]], coh[z2, c[]]] // 
      Expand

Proof of an identity

nul = nc[VACUUM]
one = nc[c[CR], VACUUM]
phi[z_] = coh[z, c[]]
(nc[nc[conj[#], phi[z]], 
              nc[conj[phi[z]], #]] == 
nc[
              nc[conj[phi[-z]], #], 
              nc[conj[#], phi[z]]]) &  /@ {nul, one}

Projection operator

nc[coh[z, c[]], conj @ coh[z, c[]]]
proj = nc[int[conj[z], z], %]

Trace(op)

nc[conj@coh[z, c[]], op, coh[z, c[]]]
trop = nc[int[conj[z], z], %]
trop /. op -> nc[c[CR], c[AN]]