### Conflict between the code and comment on mps.canonical_form()

Posted:

**17 Nov 2021, 06:18**Hi Johannes,

I have some questions regarding the canonical_form().

When the system becomes something like a "cat" state, the MPS has a very large correlation length and becomes non-injective.

Based on your comments in several FAQs and other git issues (e.g. https://github.com/tenpy/tenpy/issues/134 ), calling psi.canonical_form() should remove such behavior, i.e., collapse into one of symmetry broken sector. However, I realized that this does not happen.

However, based on what I read in the code, in fact calling canonical_form(tol_xi=number) simply generates the error if the correlation length is large. So this is what happens if I call canonical_form():

"ValueError: Degenerate spectrum of TransferMatrix (corr length xi=something)"

instead of doing the aforementioned projection. What is the intended action for canonical_form()?

I have some questions regarding the canonical_form().

When the system becomes something like a "cat" state, the MPS has a very large correlation length and becomes non-injective.

Based on your comments in several FAQs and other git issues (e.g. https://github.com/tenpy/tenpy/issues/134 ), calling psi.canonical_form() should remove such behavior, i.e., collapse into one of symmetry broken sector. However, I realized that this does not happen.

However, based on what I read in the code, in fact calling canonical_form(tol_xi=number) simply generates the error if the correlation length is large. So this is what happens if I call canonical_form():

"ValueError: Degenerate spectrum of TransferMatrix (corr length xi=something)"

instead of doing the aforementioned projection. What is the intended action for canonical_form()?