-
Notifications
You must be signed in to change notification settings - Fork 199
Bicategory (Is1Cat compatible design) #2272
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
base: master
Are you sure you want to change the base?
Bicategory (Is1Cat compatible design) #2272
Conversation
4d18146 to
46398a1
Compare
|
I haven't had time to look at this. I was hoping @Alizter might get a chance, but if not, I'll add it to my list. |
|
I have been very busy these past few weeks unfortunately and didn't have the brain-power to think about this. |
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've made a first pass through. Feel free to do an interactive rebase and a force push to move the changes from the "undid change to master" commit into the earlier commit(s), but it'll be easier to review if other changes are made as additional commits.
BTW, I'm not sure what "pre post" means in the title of this PR.
I didn't comment on notation, as that is being discussed in #2271.
I'm hoping that @Alizter will have time to take a look, maybe after my feedback has been addressed.
| (p : f $=> f') (p' : g $=> g'), | ||
| (p' $@R f) $| (g' $@L p) $== (g $@L p) $| (p' $@R f'); |
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 would have been better to make the change to the notation in a separate commit, as the diff is now harder to read.
| rapply is0bifunctor_flip. | ||
| Defined. | ||
|
|
||
| Notation "alpha $@@ beta" := (fmap11 cat_comp beta alpha) : twocat. |
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.
Now there are two meanings for $@@. Is the plan to unify them?
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 makes sense to unify them. I'll take another look at this PR and figure out whether it's appropriate for the current PR or would require extensive refactoring.
theories/WildCat/Paths.v
Outdated
| - exact (@concat_pV A _ _ _). | ||
| - exact (@concat_Vp A _ _ _). |
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.
apply concat_pV. and apply concat_Vp. work and are cleaner.
| Class AreInverse {A} `{Is1Cat A} {a b : A} (f : a $-> b) (g : b $-> a) := | ||
| { | ||
| inv_issect : g $o f $== Id a; | ||
| inv_isretr : f $o g $== Id b; | ||
| }. |
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.
We also have Cat_IsBiInv which uses bi-invertibility. Maybe it makes sense to have these separate, but it's worth thinking about.
|
Sorry, the name was just a lazy way of distinguishing it from the previous PR. In this PR, the definition of |
46398a1 to
80de9be
Compare
80de9be to
a37ad55
Compare
|
Addressed some comments but not all, I will come back to address these |
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.
This is looking good. I especially like the new comments which make it much easier to understand what you are doing. As you mention, there are a couple more comments to respond to. And I think it would be a good time for @Alizter to take a look at this PR if he is able to.
| - intros ? ? ? ? f g h; exact ((pmap_compose_assoc h g f)^* ). | ||
| - intros ? ? f; exact (pmap_postcompose_idmap f). | ||
| - intros ? ? f; exact ((pmap_postcompose_idmap f)^* ). | ||
| - intros ? ? f; exact (pmap_precompose_idmap f). | ||
| - intros ? ? f; exact ((pmap_precompose_idmap f)^* ). |
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.
In the lines with ^*, you can remove the outer parentheses.
| 1: reflexivity. | ||
| by pelim f g. | ||
| - intros A B C D; snapply Build_Is1Natural. | ||
| (* TODO: It would be nice if this naturality proof could reuse the proof in the |
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.
No line break in comment.
| - intros a b f. exact ((@concat_p1 A _ _ f)^). | ||
| - exact (@concat_1p A). | ||
| - intros a b f. exact ((@concat_1p A _ _ f)^). |
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.
In the two lines with ^, you can remove the outer parentheses.
This PR defines a wild bicategory. This is a rewrite of the previous PR, because my original definition of a
1Bicatwas too far from the definition of a1Cat, making it a lot of work to port work using1Cats to use1Bicats instead; the new definition of a1Bicatmimics1Catas closely as possible.Also, with my original definition using
Is0Bifunctorthere are two different ways to whisker a 2-cell with a 1-cell that are not in any way related, and this seems like a potential pitfall.On the other hand, the definition of a
Bicategoryis more of a departure from the current definition of a(2,1)-category, in that it assumes that the associator is natural as a functor on(a $-> b) * (b $-> c) * (c $-> d)rather than being natural in each argument separately. This definition is more complex because it uses products and uncurrying, but I preferred the style, and there's not as much material in the library for (2,1)-cats as there is for 1-cats so refactoring is not as much of an issue.PathGroupoid.v. Notation is introduced for vertical pasting.AreInverseinto the library by rewritingIs1Gpdto depend onAreInverse.