Commit 2020-09-10 14:56 38d1715b
View on Github →chore(*): update to Lean 3.20.0c, account for nat.pow removal from core (#3985) Outline:
- nat.powhas been removed from the core library. We now use the instance- monoid.powto provide- has_pow ℕ ℕ.
- To accomodate this, algebra.group_powerhas been split into a directory.algebra.group_power.basiccontains the definitions ofmonoid.powandnsmuland whatever lemmas can be stated with very few imports. It is imported indata.nat.basic. The rest ofalgebra.group_powerhas moved toalgebra.group_power.lemmas.
- The new has_pow ℕ ℕnow satisfies a different definitional equality:a^(n+1) = a * a^n(rather thana^(n+1) = a^n * a). As a temporary measure, the lemmanat.pow_succprovides the old equality but I plan to deprecate it in favor of the more generalpow_succ'. The lemmanat.pow_eq_powis gone--the two sides are now the same in all respects so it can be deleted wherever it was used.
- The lemmas from core that mention nat.powhave been moved intodata.nat.lemmasand their proofs adjusted as needed to take into account the new definition.
- The module data.bitvecfrom core has moved todata.bitvec.corein mathlib. Future plans:
- Remove nat.lemmas redundant with generalgroup_powerones, likenat.pow_add. This will be easier after further shuffling of modules.