The 'projectors' of a 'kwant.physics.DiscreteSymmetry' are not actually projectors
kwant.physics.DiscreteSymmetry has as a
projectors property, however the data stored here is not actually a projector.
The actual projectors are constructed in the
validate method (see here).
See here in the Builder where we construct "projectors" by selecting columns from the matrix of eigenvectors.
Clearly a true projector would be those matrices multiplied by their conjugate transposes.
IMO this is just an error in naming. Instead of
projectors these things should be called
subspaces. They are matrices that each have the following properties:
Mis a matrix whos columns span a given subspace
M M^\daggeris a projector onto
Additionally the set of all projectors has the property that it is a partition of unity:
\sum_i M_i M_i^\dagger = 1
It's fine that we store
M rather than
M M^\dagger, but we should at least name them correctly.