-
Notifications
You must be signed in to change notification settings - Fork 68
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
End calculus #422
End calculus #422
Conversation
where module F = Bifunctor F | ||
|
||
end-η♯ : {F G : Functor (P ×ᶜ (Category.op C ×ᶜ C)) D} (η : NaturalTransformation F G) | ||
⦃ ef : ∫ (F ♯) ⦄ ⦃ eg : ∫ (G ♯) ⦄ → NaturalTransformation (∫.E ef) (∫.E eg) |
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 don't use instance arguments. I'm fine with opaque
and unfolding
, but not these. Things are slow enough as it is, let's not make it worse.
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 not sure if the instances are making things slow here.
They make a lot of definitions nicer. For example, in Properties.agda
there is the type
end-η-resp-∘ : (α : NaturalTransformation F G) (β : NaturalTransformation G H)
{{ef : ∫ F}} {{eg : ∫ G}} {{eh : ∫ H}} →
end-η (β ∘ᵥ α) ≈ end-η β ∘ end-η α
Stating each end here for end-η
complicates the definition a lot, and I don't think that it makes things nicer. Using implicit arguments isn't possible either, since the only portion of the end that is solved uniquely is the apex.
The instance arguments work less well for parameterized ends, which is probably why you noticed it in this file and not the other.
Re: |
Yes, but I don't think this is all about reconstructing implicit arguments. It is also comparing terms. I reference #419 because one of the things that needs to be compared often is apices of ends |
I can't resolve all of the |
@JacquesCarette whenever you have the time, I would appreciate another look. I haven't changed everything that you suggested, but I left comments wherever I did not. |
...would it be possible to split this into several other PRs? It's very big and scary to look at for me (this isn't a requirement but I'd appreciate it) |
I can't split off too much, since github PRs can't depend on eachother. I split off some misc changes into #423 and #424 (will probably add to both of these later) |
Sorry for the slowness - was on vacation all last week. |
This PR is a collection of theorems and refactorings that were developed during my master's thesis.
This includes
Twist (F ∘ J)
is iso toF ∘ Twist J
EndF
)Many definitions could be simplified if #419 is resolved.
Considerations
--lossy-unification
is currently necessary forCategories.Diagram.End.Fubini
. I was hoping that refactoringEndF
to use an opaqueend-η
could fix this, but it does not.