Commit 2024-10-21 22:54 ef1ba70e
View on Github →refactor: merge ExpChar and CharP API (#18023)
ExpChar is just as basic as CharP but was defined in a later file importing a lot of linear algebra. This situation resulted resulted in a lot of import bloat further down the line. I personally noticed it because LinearAlgebra.Span was imported in Data.Nat.Totient!
This PR merges the ExpChar and CharP into Algebra.CharP.Defs and Algebra.CharP.Basic. This lets us prove some CharP API using the corresponding ExpChar one, and ensures that the two APIs match up in lemmas. Some lemmas were moved in or out of the CharP namespace for consistency (but I am to keep the statu quo for now if you ask)
The only thing left in Algebra.CharP.ExpChar, is the Frobenius endomorphism bundled as a linear map. I am not sure where to put it. It can be moved later.