Mathlib v3 is deprecated. Go to Mathlib v4

Commit 2021-09-06 12:25 773b45f7

View on Github →

feat(algebra/module/ordered): redefine ordered_module as ordered_smul (#8930) One would like to talk about ordered_monoid R (with_top R), but the module constraint is too strict to allow this. The definition of ordered_monoid works if it is loosened to has_scalar R M. Most of the proofs that are part of its API need at most smul_with_zero. So it has been loosened to smul_with_zero, since a lawless ordered_monoid wouldn't do much. In the ordered_field portion, module has been loosened to mul_action_with_zero. order_dual instances of smul instances have also been generalized to better transmit. There are more generalizations possible, but seem out of scope for a single PR. Unfortunately, these generalizations exposed a gnarly misalignment between prod.has_lt and prod.has_le, which have incompatible definitions, when inferred through separate paths. In particular, the lt definition of generated by prod.preorder is different than the core prod.has_lt. Due to this, the prod.ordered_monoid instance has not been generalized.

Estimated changes

deleted theorem le_smul_iff_of_pos
deleted theorem ordered_module.mk''
deleted theorem ordered_module.mk'
deleted theorem smul_le_iff_of_pos
modified theorem smul_le_smul_iff_of_neg
deleted theorem smul_le_smul_iff_of_pos
deleted theorem smul_le_smul_of_nonneg
deleted theorem smul_lt_iff_of_pos
deleted theorem smul_lt_smul_iff_of_pos
deleted theorem smul_lt_smul_of_pos
deleted theorem smul_pos_iff_of_pos
modified theorem concave_on.concave_le
modified theorem concave_on.smul
modified theorem convex_on.convex_le
modified theorem convex_on.smul