Survey notes on fermi algebras and the Jordan-Wigner transform now on GitHub

Continuing the theme of my last post, I’ve now put my old survey notes on fermi algebras and the Jordan-Wigner transform up on GitHub.

The Jordan-Wigner transform is an amazing tool. It let’s you move back and forth between two seemingly very different ways of describing a physical system, either as a collection of qubits, or as a collection of fermions. To give you an idea of the power of the Jordan-Wigner transform, in his famous 1982 paper on quantum computing, Richard Feynman wrote the following:

could we [use a quantum computer to] imitate every quantum mechanical system which is discrete and has a finite number of degrees of freedom? I know, almost certainly, that we could do that for any quantum mechanical system which involves Bose particles. I’m not sure whether Fermi particles could be described by such a system. So I leave that open.

As shown in the notes, once you understand the Jordan-Wigner transform, the answer to Feynman’s question is obvious: yes, we can use quantum computers to simulate systems of fermions. The reason is that the Jordan-Wigner transforms lets us view the fermi system as a system of qubits which is easy to simulate using standard simulation techniques. Obviously, the point here isn’t that Feynman was silly: it’s that tools like the Jordan-Wigner transform can make formerly hard things very simple.

The notes assume familiarity with elementary quantum mechanics, comfort with elementary linear algebr, and a little familiarity with the basic nomenclature of quantum information science (qubits, the Pauli matrices).

I’m releasing the notes under a Creative Commons Attribution license (CC BY 3.0). That means anyone can copy, distribute, transmit and adapt/remix the work, provided my contribution is attributed. The notes could be used, for example, to help flesh out Wikipedia’s article about the Jordan-Wigner transform. Or perhaps they could usefully be adapted into course notes, or part of a review article.


  1. I think there’s a missing closing } in the second \emph of the .tex file. I wasn’t able to run latex on the file, but after i added the curly bracket, latex was able to compile.

  2. Thanks for making these available. Cool to see this moving to version control. Can I make a humble suggestion, though … would it be possible to put all the articles in a single repo, with subfolders? So then it is a simple matter to update the base folder and get any new changes? Or have you chosen seperate repos for a particular reason?

  3. Glad you find this useful! On the separate repos, I’m doing this for many of the same reasons people separate their code out into separate projects, not just one big project. It means, for instance, that different people can follow and fork different repos, according to interest. I would guess that someone who forked the Jordan-Wigner notes would quite likely have little interest in simultaneously forking the expander graph notes.

  4. Yes, you make a legitimate point (I didn’t realise it was only possible to fork from individual repos, not sub folders within repos). I was more wanting a way to have a folder like ‘mnielsens articles’ which I could update monthly, to see if new things came through; but that’s a bit different to what you are doing I think (and could be more suited to, say, attaching a build server to the repo’s such that it builds pdfs when changes are committed/etc).

    Anyway, thanks again. I really like this trend of version control usage.

  5. I haven’t checked, but I think git itself might let you fork the subfolders. But the way GitHub is set up, it’s quite oriented toward individual repos as the unit of interest, and makes it exceptionally easy to track and fork those repositories.

  6. Thanks for these great notes! I am curious on one thing, the section on the action of the raising/lowering operators on the subspace W you say that the lowering operators produce a new state |\alpha ‘> from a_j|\alpha>=-(-1)^{s_a^j}|\alpha ‘>. I understand where the (-1)^{s_a^j} term comes from, but I do not understand where the overall minus sign comes from.

    Could you explain the origin of this overall minus sign on the |\alpha ‘> state?


  7. Dear Michael, first of all I would like to thank you for these very nice notes. Probably the best and most succinct notes on the Jordan-Wigner that one can find online.

    I would just like to point out a small mistake in the notes. Taking definition (3) into account, the action of the annihilation operator at the top of page 4, like Jon mentioned above, contains an overall minus sign too much.
    It should read:

    a_j | \alpha >= (-1)^{s_a^j} | \alpha^\prime > (not very readable, I know)

    This error propagates into the Jordan-Wigner transformation section, and equations (33) and (34) should be multiplied by -1.

Comments are closed.