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(model_theory/basic): Substructures #7762
Conversation
🎉 Great news! Looks like all the dependencies have been resolved: 💡 To add or remove a dependency please update this issue/PR description. Brought to you by Dependent Issues (:robot: ). Happy coding! |
src/model_theory/basic.lean
Outdated
/-- The `L.substructure` generated by a set. -/ | ||
def closure (s : set M) : L.substructure M := Inf {S | s ⊆ S} |
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.
It might be worth the effort to instead define closure
as a lower_adjoint (coe : L.substructure M → set M)
and get a lot of the following lemmas (and quite a few additional ones!) for free. However, lower_adjoint
doesn't seem to be used yet in mathlib, so it's fine if you want to leave that to someone else.
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.
Done!
There's probably a better way to connect lower_adjoint
to gi
, but it does require an additional assumption (that the upper adjoint has the property that u x <= u y
implies x <= y
). I think this could at least be done at the level of set_like
, but perhaps that's for a different PR.
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!
bors r+
Defines substructures of first-order structures
Pull request successfully merged into master. Build succeeded: |
Defines substructures of first-order structures