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.

Estimated changes

deleted theorem CharP.neg_one_pow_char
added theorem RingHom.map_frobenius
modified theorem add_pow_char
modified theorem add_pow_char_of_commute
modified theorem add_pow_char_pow
modified theorem add_pow_char_pow_of_commute
added theorem add_pow_expChar
added theorem add_pow_expChar_pow
added theorem coe_iterateFrobenius
added def frobenius
added theorem frobenius_def
added theorem frobenius_mul
added theorem frobenius_neg
added theorem frobenius_one
added theorem frobenius_sub
added def iterateFrobenius
added theorem iterateFrobenius_add
added theorem iterateFrobenius_def
added theorem iterateFrobenius_one
added theorem iterateFrobenius_zero
added theorem iterate_frobenius
added theorem list_sum_pow_char
added theorem list_sum_pow_char_pow
added theorem multiset_sum_pow_char
added theorem neg_one_pow_char
added theorem neg_one_pow_char_pow
added theorem neg_one_pow_expChar
modified theorem sub_pow_char
modified theorem sub_pow_char_of_commute
modified theorem sub_pow_char_pow
modified theorem sub_pow_char_pow_of_commute
added theorem sub_pow_expChar
added theorem sub_pow_expChar_pow
added theorem sum_pow_char
added theorem sum_pow_char_pow
added theorem ExpChar.congr
added theorem ExpChar.eq
added theorem ExpChar.exists
added theorem ExpChar.exists_unique
added theorem char_eq_expChar_iff
added theorem expChar_ne_zero
added theorem expChar_pos
added theorem expChar_pow_pos
added theorem ringExpChar.eq
added theorem ringExpChar.eq_iff
added theorem ringExpChar.eq_one
added theorem ringExpChar.of_eq
deleted theorem ExpChar.congr
deleted theorem ExpChar.eq
deleted theorem ExpChar.exists
deleted theorem ExpChar.exists_unique
deleted theorem MonoidHom.map_frobenius
deleted theorem RingHom.expChar
deleted theorem RingHom.expChar_iff
deleted theorem RingHom.map_frobenius
deleted theorem add_pow_expChar
deleted theorem add_pow_expChar_pow
deleted theorem charZero_of_expChar_one'
deleted theorem char_eq_expChar_iff
deleted theorem char_prime_of_ne_zero
deleted theorem char_zero_of_expChar_one
deleted theorem coe_iterateFrobenius
deleted theorem coe_iterateFrobenius_mul
deleted theorem expChar_is_prime_or_one
deleted theorem expChar_one_iff_char_zero
deleted theorem expChar_one_of_char_zero
deleted theorem expChar_pos
deleted theorem expChar_pow_pos
deleted def frobenius
deleted theorem frobenius_def
deleted theorem frobenius_mul
deleted theorem frobenius_neg
deleted theorem frobenius_one
deleted theorem frobenius_sub
deleted def iterateFrobenius
deleted theorem iterateFrobenius_add
deleted theorem iterateFrobenius_def
deleted theorem iterateFrobenius_one
deleted theorem iterateFrobenius_zero
deleted theorem iterate_frobenius
deleted theorem list_sum_pow_char
deleted theorem list_sum_pow_char_pow
deleted theorem multiset_sum_pow_char
deleted theorem multiset_sum_pow_char_pow
deleted theorem ringExpChar.eq
deleted theorem ringExpChar.eq_iff
deleted theorem ringExpChar.eq_one
deleted theorem ringExpChar.of_eq
deleted theorem sub_pow_expChar
deleted theorem sub_pow_expChar_pow
deleted theorem sum_pow_char
deleted theorem sum_pow_char_pow