Skip to content
This repository has been archived by the owner on Nov 16, 2023. It is now read-only.

Incorrect Jordan Wigner transform #507

Closed
christopherkang opened this issue Sep 3, 2019 · 9 comments
Closed

Incorrect Jordan Wigner transform #507

christopherkang opened this issue Sep 3, 2019 · 9 comments
Labels
Area-Conceptual Issue relates to conceptual documentation and articles bug Resolution-Done Issue closed because work item completed.

Comments

@christopherkang
Copy link

[Enter feedback here]
In the transformation from the creation operator to its Pauli equivalent, the summation doesn't actually equal the given matrix. Similarly, the annihilation operator doesn't equal it's Pauli equivalent. The actual formulas are used later on in the text, but the first mention is incorrect:

Screen Shot 2019-09-03 at 10 53 16 AM

(also, if possible, the spacing should be fixed)


Document Details

Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

@cgranade
Copy link
Contributor

cgranade commented Sep 3, 2019

Thanks for pointing this out! It looks like somehow 𝑎ⱼ⁺ and 𝑎ⱼ got swapped with each other (ironically). The spacing issue seems to be because \\\ was used instead of \\\\ as is required for MathJax to see a \\ through the Markdown processor.

@cgranade cgranade added Area-Conceptual Issue relates to conceptual documentation and articles bug good first issue labels Sep 3, 2019
geduardo added a commit that referenced this issue Sep 5, 2019
cgranade pushed a commit that referenced this issue Sep 6, 2019
* Fixing issue #507

* Fixing spacing

* Fixing spacing 2

* Update articles/libraries/chemistry/concepts/jordan-wigner.md

Co-Authored-By: Chris Granade <chgranad@microsoft.com>
@cgranade
Copy link
Contributor

cgranade commented Sep 6, 2019

Closing, as this has been addressed with #513. Please feel free to reopen if needed, or to file another issue with follow-ups. Thanks for the report!

@cgranade cgranade closed this as completed Sep 6, 2019
@cgranade cgranade added Resolution-Done Issue closed because work item completed. and removed good first issue labels Sep 6, 2019
@christopherkang
Copy link
Author

christopherkang commented Sep 6, 2019

#513 is still broken - switching the matrix forms was incorrect. Here are the final formulas

image

@christopherkang
Copy link
Author

Current:
image

@cgranade
Copy link
Contributor

cgranade commented Sep 6, 2019

That's very odd, it looked right in the preview, will investigate. Thanks for the heads-up!

@cgranade cgranade reopened this Sep 6, 2019
@geduardo
Copy link
Contributor

geduardo commented Sep 8, 2019

Ok, this is a bit weird. Most references I found use the current form (1. http://home.uchicago.edu/dtson/phys411/Jordan-Wigner.pdf, 2. https://www.lptmc.jussieu.fr/user/messio/ICFP_documents/TD_Jordan_Wigner_enonce.pdf and 3. https://en.wikipedia.org/wiki/Jordan–Wigner_transformation). However, going to the original paper (4. http://www.fisicafundamental.net/relicario/doc/JordanWigner-1928.pdf) they use a different representation of Pauli matrices, but doing the explicit calculation gives the matrices provided by @christopherkang, which are the ones that make sense for them to be creation and annihilation operators (assuming we are using the cartesian basis |0>=(1,0)^T and |1>=(0,1)^T).
I think the discrepancy has to do with the chosen cartesian basis for up and down, but not completely sure.

@christopherkang
Copy link
Author

@geduardo I think you're right! Let's look at the matrix form of the z spin operator they define:

image

Now, we can analyze it's behavior by putting in spin up / spin down kets and comparing it to the expected result.

If we put in spin up, we should get half spin up back. If we put in spin down, we should get negative half spin down:

image

So, we are looking for two eigenvectors with eigenvalues of 1 and 0, meaning that spin up is the 0 ket, and spin down is the 1 ket. (I guess because 0 is 'above' the 1?)

@guanghaolow
Copy link
Collaborator

@christopherkang @cgranade @geduardo Thanks for identifying this inconsistency.

This issue is caused by a difference in convention between Q#'s representation of the |0> state and the |0> state in some areas of physics.

Q# represents |0> as the +1 eigenstate of the Z operator.
In some areas of physics, |0> is the low-energy ground state, thus the -1 eigenstate of the Z operator.

The correct version is in @christopherkang 's image:

image

To see why, the following are assertions that the fermionic creation operator must satisfy.

  1. In the chemistry library, we use |0> to represent an unoccupied spin-orbital, and |1> to represent an occupied spin-orbitals.
  2. Thus a raising operator should be a^\dagger = |1><0|.

The following is the Q# convention for what a |0> state is.
3) Q# represents the |0> state as the +1 eigenstate of the Z operator (in Q#, this is the value of Zero of the Result type). Thus the Z operator = |0><0| - |1><1|
4) The Z operator in matrix form is written as 1st row: (1,0); 2nd row: (0,-1). Thus |0> as a column vector is 1st row:(1); 2nd row:(0).
5) Thus a^\dagger = |1><0| is as shown in Chris' image.

@geduardo
Copy link
Contributor

@christopherkang @cgranade @guanghaolow
Great! That's what I was thinking. Thanks for the clarification! I'll try to fix it asap.

geduardo added a commit that referenced this issue Dec 16, 2019
I thought this was fixed, but apparently it was correct on master and not on live (or something like that). Anyways, this PR solves it. I added small note warning about the possible issues with notation.
geduardo added a commit that referenced this issue Dec 17, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Area-Conceptual Issue relates to conceptual documentation and articles bug Resolution-Done Issue closed because work item completed.
Projects
None yet
Development

No branches or pull requests

4 participants