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
feat(src/algebra): add basic theory of lattice ordered groups #8663
feat(src/algebra): add basic theory of lattice ordered groups #8663
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your PR! The code looks pretty mature already, at first sight.
But there are some stylistic issues. I've marked the first few, but please go through the entire file.
Concerning the additive/multiplicative decision: I think @[to_additive]
could do almost all of the work for you, right? So in principal it shouldn't be much harder to develop the multiplicative story as well.
Otoh, I agree that maybe it's not likely to see use in the future.
- `a⁺ = a ⊔ 0`: The *positive component* of an element a of a `lattice_ordered_add_comm_group` | ||
- `a⁻ = (-a) ⊔ 0`: The *negative component* of an element a of a `lattice_ordered_add_comm_group` | ||
* `|a| = a⊔(-a)`: The *absolute value* of an element a of a `lattice_ordered_add_comm_group` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- `a⁺ = a ⊔ 0`: The *positive component* of an element a of a `lattice_ordered_add_comm_group` | |
- `a⁻ = (-a) ⊔ 0`: The *negative component* of an element a of a `lattice_ordered_add_comm_group` | |
* `|a| = a⊔(-a)`: The *absolute value* of an element a of a `lattice_ordered_add_comm_group` | |
- `a⁺ = a ⊔ 0`: The *positive component* of an element `a` of a `lattice_ordered_add_comm_group` | |
- `a⁻ = (-a) ⊔ 0`: The *negative component* of an element `a` of a `lattice_ordered_add_comm_group` | |
* `|a| = a⊔(-a)`: The *absolute value* of an element `a` of a `lattice_ordered_add_comm_group` |
universe u | ||
|
||
/-- | ||
A group (α,*), equipped with a partial order ≤, making α into a lattice, such that, given elements |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please surround all the variables etc with backticks.
end | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
end | |
} | |
end } |
end | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
end | |
} | |
end } |
{ simp, } | ||
}, | ||
{ rw ← add_le_add_iff_left (-c), simp, } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
{ simp, } | |
}, | |
{ rw ← add_le_add_iff_left (-c), simp, } | |
{ simp, } }, | |
{ rw ← add_le_add_iff_left (-c), simp, } |
feat(src/algebra) : add basic theory of lattice ordered groups
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