In second quantization, let $c_{\alpha}^\dagger$ and $c_\alpha$ be the creation/annihilation operators for a fermionic particle in a quantum state $|\alpha\rangle$. Define $c_\beta^\dagger, c_\beta$ analogously for a state $|\beta\rangle$ with $\beta\ne \alpha$. In Fock space, a state containing one $\alpha$ particle and one $\beta$ particle is $$c_\alpha^\dagger c_\beta^\dagger|\Omega\rangle\sim|1_\alpha,1_\beta,0,...\rangle$$ where $|\Omega\rangle$ is the empty state and ignoring the various constants.

I have a small doubt. Is the product of these operators the usual dot product of matrices, or is it actually a tensor product $c_\alpha^\dagger\otimes c_\beta^\dagger$? After all, these operators belong to different spaces, even if they can be written as the same matrix once a basis is fixed. However, I've never seen this made explicit. Can anyone clear this up for me?

  • 2
    $\begingroup$ They are all operators in the same Hilbert space (the Fock space), so it is just ordinary product. $\endgroup$
    – Meng Cheng
    Sep 4, 2022 at 22:29
  • $\begingroup$ Related: physics.stackexchange.com/q/54896/2451 and links therein. $\endgroup$
    – Qmechanic
    Sep 5, 2022 at 6:27

1 Answer 1


If these were bosonic operators $b_{\alpha}^{\dagger}$, you could rightly regard the product $b_{\alpha}^{\dagger} b_{\beta}^{\dagger}$ as a tensor product. This is because you can think of the bosonic many-body Hilbert space as the tensor product space of many harmonic oscillators, one for each $\alpha$. As a result, you can rightfully think of these operators as being defined by $$ b_{\alpha}^{\dagger} = \mathbb{1} \otimes \ldots \otimes \mathbb{1} \otimes b^{\dagger} \otimes \mathbb{1} \otimes \ldots \otimes \mathbb{1} $$ where the $b^{\dagger}$ appears in the $\alpha$th place; ie, it acts on the $\alpha$th harmonic oscillator mode. As a result, $b_{\alpha}^{\dagger} b_{\beta}^{\dagger}$ for $\alpha \neq \beta$ can be reasonably regarded as either an ordinary product or a tensor product, depending on how you interpret the notation.

For fermions on the other hand, you know that we cannot have the same simple tensor product structure because $c^{\dagger}_{\alpha}$ and $c^{\dagger}_{\beta}$ for $\alpha \neq \beta$ do not commute! Instead, there is a tricky phase factor which makes the operators not quite tensor products. One way to realize the fermion operators explicitly is to start with spin-half operators (ie, Pauli matrices) $\sigma^z$ and $\sigma^{\pm} = \frac{1}{2}(\sigma^x \pm i \sigma^y)$, and to write $c_{\alpha}^{\dagger}$ as $$ c_{\alpha}^{\dagger} = \sigma^z \otimes \ldots \otimes \sigma^z \otimes \sigma^+ \otimes \mathbb{1} \otimes \ldots \otimes \mathbb{1} $$ The string of $\sigma^z$'s on the left is often called the Jordan-Wigner string, and it implements the anticommuting algebra of the fermions. The moral of the story is that when you see an operator $c^{\dagger}_{\alpha} c^{\dagger}_{\beta}$ for $\alpha \neq \beta$, it is not quite correct to regard the product as a tensor product.

  • $\begingroup$ So, to get this completely straight: I've looked into JW transformations, which allow to write fermionic models such as the Ising model in terms of spin matrices: for example $$H=-J\sum_j \sigma_{j}^x\sigma_{j+1}^x-g\sum_j\sigma_j^z$$ in 1D with a field orthogonal to the coupling of spins. In this case, those products should be interpreted as tensor products, i.e. $\sigma_j^x\sigma_{j+1}^x=\sigma_j^x\otimes\sigma_{j+1}^x$, correct? $\endgroup$ Sep 5, 2022 at 11:57
  • $\begingroup$ It's probably better at the end of the day to think of them as ordinary products, and to think of each $\sigma^x_j$ as $\mathbb{1} \otimes \ldots \otimes \mathbb{1} \otimes \sigma^x \otimes \mathbb{1} \otimes \ldots \otimes \mathbb{1}$. But it's not harmful to think of it as a tensor product here, as long as you recognize that $\sigma^x_j \sigma^x_{j+1}$ really means $\mathbb{1} \otimes \ldots \otimes \sigma^x_j \otimes \sigma^x_{j+1} \otimes \ldots \otimes \mathbb{1}$. $\endgroup$
    – Zack
    Sep 5, 2022 at 14:35
  • $\begingroup$ Got it, thank you. Just one last thing: if I were to try and implement this Hamiltonian numerically in C or Python, what would be the most convenient approach? Should I just loop over the sites $j=1,...,N$ and do tensor products of $\mathbb{1} \otimes \ldots \otimes \sigma^x_j \otimes \sigma^x_{j+1} \otimes \ldots \otimes \mathbb{1}$, or are there better approach to deal with these matrices? I've never tried to do explicit calculations with many-body hamiltonians, so I'm wondering about the methods (perhaps this deserves a different question though). $\endgroup$ Sep 5, 2022 at 17:03
  • 1
    $\begingroup$ If you're trying to do exact diagonalization approaches, then this is exactly what you would do. But keep in mind that the complexity of this approach will explode rapidly: you will not be able to go further than 10-15 sites! There are sometimes better numerical approaches for certain circumstances. For example, for the Ising model you can employ free fermion numerics or matrix product state methods. $\endgroup$
    – Zack
    Sep 5, 2022 at 18:12
  • $\begingroup$ I'll look into that. Thank you, Zack. $\endgroup$ Sep 6, 2022 at 9:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.