thank you for sharing your work. I have something similar to do. from a hamiltonien real lattice i have to dos fourier trandform to have bands structures. I built my matrix and I used the end of your code.I Except that a straight lig, instead of 3 bands.

In fact I am a beginner in python. Could you help me

thank you ]]>

`proof3 x`

on the right hand side has the type `Eq1 (NPlus x1 'Zero) x1`

where `x ~ 'Succ x1`

. This is not the type

Eq1 (NPlus x ‘Zero) x` we need to return. Even though we pattern match a Refl out of proof3 x and we ultimately return a Refl does not mean they are the same, because the two Refl have different types. It’s a bit like having [] :: [Int] vs [] :: [Bool]. They aren’t interchangeable even though the values look the same.
]]>`proof3 (SSucc x) = proof3 x`

?

]]>