Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - feat(algebra/lattice_ordered_group): add basic theory of lattice ordered groups #8673

Closed
wants to merge 39 commits into from

Conversation

mans0954
Copy link
Collaborator

@mans0954 mans0954 commented Aug 14, 2021


This is my first non-trivial PR to mathlib. It adds the basic theory of lattice ordered groups, which is useful as the algebraic underpinnings of vector lattices, Banach lattices, AL-space, AM-space etc. I am still relatively new to lean/mathlib and have a lot to learn, so constructive criticism is very welcome. I imagine an expert could write more succinct proofs.

I have defined both the multiplicative and additive classes, but have mostly developed the theory with the additive classes as this notation seems more natural in this context, and I have not myself had an application for multiplicative lattice ordered groups. I'm happy to rewrite the file in the multiplicative form if required.

Many of the results are valid in the non-commutative case, but the proofs are more involved. I've only submitted the commutative case, as that's all I personally need. Should I be aiming for greater generality?

Thanks for your time,

Christopher Hoskin

Open in Gitpod

@mans0954
Copy link
Collaborator Author

Previously opened as #8663

@mans0954 mans0954 changed the title Lattice ordered group feat(src/algebra) : add basic theory of lattice ordered groups Aug 14, 2021
@mans0954 mans0954 added the awaiting-review The author would like community review of the PR label Aug 14, 2021
@mans0954
Copy link
Collaborator Author

I've re-worked the theory into multiplicative notation as suggested by @jcommelin in the original PR.

It appears the abel tactic only works for additive groups, which required reworking some proofs.

@bryangingechen bryangingechen changed the title feat(src/algebra) : add basic theory of lattice ordered groups feat(algebra/lattice_ordered_group): add basic theory of lattice ordered groups Aug 17, 2021
@mans0954
Copy link
Collaborator Author

Thanks for all the feedback so far. The linter is currently failing on the branch with:

Run ./scripts/mk_all.sh
  ./scripts/mk_all.sh
  lean --run scripts/lint_mathlib.lean
  shell: /usr/bin/bash -e {0}
deep recursion was detected at 'replace' (potential solution: increase stack space in your system)
:0:0: error: deep recursion was detected at 'replace' (potential solution: increase stack space in your system)
:0:0: error: deep recursion was detected at 'replace' (potential solution: increase stack space in your system)
:0:0: error: deep recursion was detected at 'replace' (potential solution: increase stack space in your system)
:0:0: error: deep recursion was detected at 'replace' (potential solution: increase stack space in your system)
Error: Process completed with exit code 1.

I am not sure what to do about this?

src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
@mans0954 mans0954 force-pushed the lattice_ordered_group branch 3 times, most recently from 903f88b to 7870aa4 Compare August 21, 2021 20:08
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Outdated Show resolved Hide resolved
src/algebra/lattice_ordered_group.lean Show resolved Hide resolved
@github-actions github-actions bot added the merge-conflict Please `git merge origin/master` then a bot will remove this label. label Aug 26, 2021
@jcommelin jcommelin added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels Aug 27, 2021
@mans0954 mans0954 added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels Sep 2, 2021
@jcommelin
Copy link
Member

Thanks 🎉

bors d+

@bors
Copy link

bors bot commented Sep 6, 2021

✌️ mans0954 can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@github-actions github-actions bot added delegated The PR author may merge after reviewing final suggestions. and removed awaiting-review The author would like community review of the PR labels Sep 6, 2021
@mans0954
Copy link
Collaborator Author

mans0954 commented Sep 6, 2021

bors r+

bors bot pushed a commit that referenced this pull request Sep 6, 2021
…red groups (#8673)




Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com>
@bors
Copy link

bors bot commented Sep 6, 2021

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(algebra/lattice_ordered_group): add basic theory of lattice ordered groups [Merged by Bors] - feat(algebra/lattice_ordered_group): add basic theory of lattice ordered groups Sep 6, 2021
@bors bors bot closed this Sep 6, 2021
@bors bors bot deleted the lattice_ordered_group branch September 6, 2021 14:26
bors bot pushed a commit that referenced this pull request Sep 30, 2021
The notion of an "absolute value" occurs both in algebra (e.g. lattice ordered groups) and analysis (e.g. GM and GL-spaces). I introduced a `has_abs` notation class in #8673 for lattice ordered groups, along with the notation `|.|` and was asked by @eric-wieser and @jcommelin to add it in a separate PR and retro fit `has_abs` and the notation to mathlib.

I tried to introduce both the `has_abs` class and the `|.|` notation in #8891 . However, I'm finding such a large and wide-ranging PR unwieldy to work with, so I'm now opening this PR which just replaces the previous definitions of `abs : α → α` in the following locations:

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/algebra/ordered_group.lean#L984

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/topology/continuous_function/basic.lean#L113

Out of scope are the following `abs : α → β`:

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/complex/is_R_or_C.lean#L439

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/complex/basic.lean#L406

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/real/nnreal.lean#L762

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/num/basic.lean#L315

Replacing the `abs` notation with `|.|` can be considered in a subsequent PR.



Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com>
bors bot pushed a commit that referenced this pull request Sep 30, 2021
The notion of an "absolute value" occurs both in algebra (e.g. lattice ordered groups) and analysis (e.g. GM and GL-spaces). I introduced a `has_abs` notation class in #8673 for lattice ordered groups, along with the notation `|.|` and was asked by @eric-wieser and @jcommelin to add it in a separate PR and retro fit `has_abs` and the notation to mathlib.

I tried to introduce both the `has_abs` class and the `|.|` notation in #8891 . However, I'm finding such a large and wide-ranging PR unwieldy to work with, so I'm now opening this PR which just replaces the previous definitions of `abs : α → α` in the following locations:

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/algebra/ordered_group.lean#L984

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/topology/continuous_function/basic.lean#L113

Out of scope are the following `abs : α → β`:

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/complex/is_R_or_C.lean#L439

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/complex/basic.lean#L406

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/real/nnreal.lean#L762

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/num/basic.lean#L315

Replacing the `abs` notation with `|.|` can be considered in a subsequent PR.



Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com>
bors bot pushed a commit that referenced this pull request Sep 30, 2021
The notion of an "absolute value" occurs both in algebra (e.g. lattice ordered groups) and analysis (e.g. GM and GL-spaces). I introduced a `has_abs` notation class in #8673 for lattice ordered groups, along with the notation `|.|` and was asked by @eric-wieser and @jcommelin to add it in a separate PR and retro fit `has_abs` and the notation to mathlib.

I tried to introduce both the `has_abs` class and the `|.|` notation in #8891 . However, I'm finding such a large and wide-ranging PR unwieldy to work with, so I'm now opening this PR which just replaces the previous definitions of `abs : α → α` in the following locations:

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/algebra/ordered_group.lean#L984

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/topology/continuous_function/basic.lean#L113

Out of scope are the following `abs : α → β`:

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/complex/is_R_or_C.lean#L439

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/complex/basic.lean#L406

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/real/nnreal.lean#L762

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/num/basic.lean#L315

Replacing the `abs` notation with `|.|` can be considered in a subsequent PR.



Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com>
bors bot pushed a commit that referenced this pull request Sep 30, 2021
The notion of an "absolute value" occurs both in algebra (e.g. lattice ordered groups) and analysis (e.g. GM and GL-spaces). I introduced a `has_abs` notation class in #8673 for lattice ordered groups, along with the notation `|.|` and was asked by @eric-wieser and @jcommelin to add it in a separate PR and retro fit `has_abs` and the notation to mathlib.

I tried to introduce both the `has_abs` class and the `|.|` notation in #8891 . However, I'm finding such a large and wide-ranging PR unwieldy to work with, so I'm now opening this PR which just replaces the previous definitions of `abs : α → α` in the following locations:

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/algebra/ordered_group.lean#L984

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/topology/continuous_function/basic.lean#L113

Out of scope are the following `abs : α → β`:

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/complex/is_R_or_C.lean#L439

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/complex/basic.lean#L406

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/real/nnreal.lean#L762

https://github.com/leanprover-community/mathlib/blob/f36c98e877dd86af12606abbba5275513baa8a26/src/data/num/basic.lean#L315

Replacing the `abs` notation with `|.|` can be considered in a subsequent PR.



Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated The PR author may merge after reviewing final suggestions.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants