-
Notifications
You must be signed in to change notification settings - Fork 201
Cubical/PathSquare.v: edit diagram in comment + formulate interchange lemma #2325
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
Conversation
|
The following gets you a bit further: Proof.
destruct sq00, sq11.
destruct vi2, h2i.
simpl.
rewrite (sq_concat_h_1s (p0y:=1) (p1y:=1) sq01).
simpl.
(* We're missing the analogous [sq_concat_v_1s]. Even with it, it's not clear to me how to proceed. *)
Admitted.The reason I choose to destruct I've basically never used this part of the library. Maybe @Alizter has more ideas? |
|
I don't recall much of the details here, but what I do recall is that you need to shift some of the data around using naturality squares before it fully collapses. You can find a similar kind of manipulation in https://github.com/HoTT/Coq-HoTT/blob/master/theories/Homotopy/Syllepsis.v. There we aren't using the same kind of square but an equivalent one. |
|
Thanks for the help! I added The idea is that, when applied with |
|
Sorry I can't be more helpful here but https://github.com/HoTT/Coq-HoTT/blob/master/theories/Types/Paths.v has the lemmas you are probably after. |
|
@marcbezem Your It might also be useful to use |
|
I'm in favour of defining squares as path types. The only advantage of doing things this way is the auto-generated induction principle. But that's not nearly as convenient as it looks. I would also be in favour of using the general stuff about squares we have in |
Those notations are defined within a Section, and notations don't persist outside of the section they are defined in. And it seems that Notation and Infix don't support |
|
I don't know how hard it would be to redo PathSquare.v with squares defined using path types. One advantage would be that it would be compatible with what is done in Syllepsis.v, so that duplication could be removed. It would also mean that in other situations in which a square of paths appeared, one could apply a fact from PathSquare without having to go across the equivalence. I'm surprised that there aren't more tricks for using the current definition efficiently, but it seems hard to use the induction principle multiple times when squares share edges. I think what is needed is a separate induction principle that reduces a general square to one of the form About generalizing to any 1-category using WildCat/Square.v (regarding a type as a 1-category whose 1-cells are paths), that's an interesting idea. It's probably tricky to do for someone who doesn't know the wild category library well, and may require lemmas analogous to those in PathGroupoids, so it would be additional work. |
|
@marcbezem If you could split the changes fixing the diagram at the top, we can merge that quicker. The work-in-progress is welcome to stay here as you work further on it. Let me know if you need any advice on how to do that with |
|
See #2327. If that one is OK I didn't need help with Rethinking the way I did this: perhaps that has resulted in a more complicated commit history than necessary. I created a new branch and switched to it, deleted the interchange playground, committed and pushed and PR-ed from the new branch. It would perhaps have been better to go back a few commits on the new branch, and then PR from there (making sure all edits of the diagram are there). |
|
@marcbezem I think both PRs were using the same branch which is why this is showed as merged. Could you open a new draft PR in a separate branch from |
|
Do you mean, single-topic PRs are preferred (I understand), so I open a new one about interchange, after which we cancel this multi-topic PR? |
|
@marcbezem Generally PRs focusing on one particular issue or addition are easier to review and merge since my time budget is limited. If you have a bunch of loosely related changes that's fine too. Here we have a GitHub bug. The other PR had the same commits and made this PR be considered merged. That wasn't my intention with merging #2327. What you will have to do is re-introduce the experiment you had the end, which is evidently now in the commit history. If you make a PR for that we can continue the discussion of how best to finish the goal there. |
2a. (minor) I didn't get the infix operators
@@h, @@vto work.2b. Just before
Admitted, the proof state is:My plan would be the following. Through
equiv_sq_pathand some easy path algebra, thesq-variables correspond to 2-paths between1 : x=xandh2i, vi2, respectively. The latter are also variables, so we can do path induction on the 2-paths and assume they are reflexivity paths. In that case thesq-variables correspond both to a1%squareand the goal can be solved by reflexivity.I'm new to this library, so I have difficulties getting this idea to work. Any help will be appreciated, both regarding the formulation of the interchange lemma and the feasibility of my idea to prove it.