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: port AlgebraicTopology.SimplicialObject #3302
Conversation
joelriou
commented
Apr 6, 2023
•
edited
edited
- depends on: [Merged by Bors] - feat: port AlgebraicTopology.SimplexCategory #3286
- depends on: [Merged by Bors] - chore: forward port of #18742, no simps lemmas for Category.Hom #3340
Mathbin -> Mathlib fix certain import statements move "by" to end of line add import to Mathlib.lean
Mathbin -> Mathlib fix certain import statements move "by" to end of line add import to Mathlib.lean
Mathbin -> Mathlib fix certain import statements move "by" to end of line add import to Mathlib.lean
…o port/Order.Category.Lat
… port/Order.Category.PartOrd
…o port/Order.Category.Lat
…o port/Order.Category.Lat
Mathbin -> Mathlib fix certain import statements move "by" to end of line add import to Mathlib.lean
…rt/Order.Category.LinOrd
Mathbin -> Mathlib fix certain import statements move "by" to end of line add import to Mathlib.lean
… port/Order.Category.NonemptyFinLinOrd
SimplexCategoryᵒᵖ ⥤ C | ||
#align category_theory.simplicial_object CategoryTheory.SimplicialObject | ||
|
||
@[simps!] |
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.
I'm a bit confused about all these simps!
attributes. There was nothing similar in mathlib3 right? Are they strictly necessary, and would it perhaps be better to make SimplicialObject
a reducible
instead?
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.
Without the reducible
attribute, the simps!
for the Category instance (and extra ext
lemmas for morphisms) were necessary. I have made SimplicialObject
reducible in the last commit.
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.
Okay, I'll ping @jcommelin , @semorrison and @adamtopaz to see if they're happy with the change.
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.
I mean, I'd prefer that we don't make it reducible. It's more work to set up here, unfortunately. We have a tendency to regret making things less opaque, however...
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.
Ok. I have reverted back to the previous situation where SimplicialObject
was not declared reducible.
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.
I'll let someone else take over the review of this PR, but I'm not sure that simp
lemmas unfolding the definition of a type is a particularly good idea either for the same reasons. Probably a lot of the simp lemmas that become accessible after unfolding definitions should be proved on SimplicialObject
directly.
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.
Indeed, a lemma like
theorem SimplicialObject.δ_naturality {X' X : SimplicialObject C} (f : X ⟶ X') {n : ℕ} (i : Fin (n + 2)) :
X.δ i ≫ f.app (op [n]) = f.app (op [n + 1]) ≫ X'.δ i
is a particular case of NatTrans.naturality
, and it is stated as a simp
lemma that is specific to SimplicialObject
.
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.
simps!
currently produces simp
lemmas unfolding the definition of Hom
on all of these instances. I have a commit locally that replaces simps!
with simps! id_app comp_app
or similar to avoid unfolding the definition of Hom
. The whole file builds without any other changes. Let me know if you think I should push this. Maybe @semorrison has an opinion on that, I'm not too familiar with CategoryTheory.
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.
Sorry, a bit of a tangle here. I have a PR open on mathlib proposing to adjust the simps projections for category
so we don't unfold Hom
. I should have got that done and forwarded port faster...
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.
Okay, I propose that I will quickly forward port that PR, and then merge that into this before we proceed?
This reverts commit 7219909.
This PR/issue depends on: |
bors merge |
Pull request successfully merged into master. Build succeeded: |