Commit 2024-04-05 15:59 3cc22ef5
View on Github →chore: Sort big operator order lemmas (#11750) Take the content of
- some of
Algebra.BigOperators.List.Basic - some of
Algebra.BigOperators.List.Lemmas - some of
Algebra.BigOperators.Multiset.Basic - some of
Algebra.BigOperators.Multiset.Lemmas Algebra.BigOperators.Multiset.OrderAlgebra.BigOperators.Orderand sort it into six files:Algebra.Order.BigOperators.Group.List. I credit Yakov for https://github.com/leanprover-community/mathlib/pull/8543.Algebra.Order.BigOperators.Group.Multiset. Copyright inherited fromAlgebra.BigOperators.Multiset.Order.Algebra.Order.BigOperators.Group.Finset. Copyright inherited fromAlgebra.BigOperators.Order.Algebra.Order.BigOperators.Ring.List. I credit Stuart for https://github.com/leanprover-community/mathlib/pull/10184.Algebra.Order.BigOperators.Ring.Multiset. I credit Ruben for https://github.com/leanprover-community/mathlib/pull/8787.Algebra.Order.BigOperators.Ring.Finset. I credit Floris for https://github.com/leanprover-community/mathlib/pull/1294. Here are the design decisions at play:- Pure algebra and big operators algebra shouldn't import (algebraic) order theory. This PR makes that better, but not perfect because we still import
Data.Nat.Order.Basicin a fewListfiles. - It's
Algebra.Order.BigOperatorsinstead ofAlgebra.BigOperators.Orderbecause algebraic order theory is more of a theory than big operators algebra. Another reason is that algebraic order theory is the only way to mix pure order and pure algebra, while there are more ways to mix pure finiteness and pure algebra than just big operators. - There are separate files for group/monoid lemmas vs ring lemmas. Groups/monoids are the natural setup for big operators, so their lemmas shouldn't be mixed with ring lemmas that involves both addition and multiplication. As a result, everything under
Algebra.Order.BigOperators.Groupshould be additivisable (except a fewNat- orInt-specific lemmas). In contrast, things underAlgebra.Order.BigOperators.Ringare more prone to having heavy imports. - Lemmas are separated according to
ListvsMultisetvsFinset. This is not strictly necessary, and can be relaxed in cases where there aren't that many lemmas to be had. As an example, I could split out theAbsoluteValuelemmas fromAlgebra.Order.BigOperators.Ring.Finsetto a fileAlgebra.Order.BigOperators.Ring.AbsoluteValueand it could stay this way until too many lemmas are in this file (or a split is needed for import reasons), in which case we would need filesAlgebra.Order.BigOperators.Ring.AbsoluteValue.Finset,Algebra.Order.BigOperators.Ring.AbsoluteValue.Multiset, etc... Finsuppbig operator andfinprod/finsumorder lemmas also belong inAlgebra.Order.BigOperators. I haven't done so in this PR because the diff is big enough like that.