Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(algebra/module/ordered): redefine
ordered_module
as `ordered_s…
…mul` (#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. Co-authored-by: Yakov Pechersky <pechersky@users.noreply.github.com>
- Loading branch information
Showing
9 changed files
with
239 additions
and
186 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.