-
Notifications
You must be signed in to change notification settings - Fork 199
An interchange law for squares and cleanups to Cubical/PathSquare.v #2328
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
|
I guess I need some help. I added some missing definitions, as indicated by Dan ( |
|
I figured out that you can write induction principles for square that only require one of the edges to be free. They make this proof trivial, and probably make other proofs trivial too. So the file can probably be rearranged so that these are earlier and they are used more often. They depend on the Kan fillers, but those have no dependencies, so could appear near the start of the file. I have to run and will be busy for a day or two, so feel free to keep working on these things. |
|
I also made the notations available if you want to use them. BTW, you should read the commits separately, as the changes will be easier to understand that way. |
|
Thanks, Dan, this is real progress. Let me add the 3+2 missing cases and think a bit more. |
|
The new |
Thanks for adding the other versions.
Oh, nice observation. In fact, you can get by with only two of the four squares being eliminated: destruct sq11; simpl.
destruct vi2, h2i, vi1, h1i; simpl.
revert vj0 sq10; rapply pathsquare_ind_l; simpl.
by destruct vi0.But the proof is a bit longer than what you came up with, so I prefer yours. My proof destructs one extra edge (10 instead of 9), but one fewer square. Edit: Actually, yours destructs 11 edges and 3 squares, while mine destructs 10 edges and 2 squares. |
|
FTR we had a discussion before about using the equivalent definition of a square using paths directly and the transition mainly went smoothly. The only proof I recall getting stuck at was the T=S1xS1 proof in Homotopy/Torus. This was my original motivation for introducing these kinds of squares originally. I'm thinking that these single edge induction principles might help out with the Torus proof actually, but I won't dwell too much on it here. |
What do you mean by "the transition"? PathSquare doesn't yet use the path definition, so you must be talking about somewhere else in the library? |
|
Sorry I wasn't clear in my message. I meant that when I tried to redefine PathSquare using the path definition. |
|
I did some clean up and feel we could update from draft PR to full PR. Feel free to clean up a bit more. I'm planning a follow up, but have still to think about it. Also, I'm unsure where to put it. |
jdchristensen
left a comment
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 do a bunch of clean-up before we mark this as non-draft. I'll also squash and then unsquash a bit, to have a clean history. This will involve force-pushing, so don't make any other changes in the meantime, @marcbezem .
This is in Homotopy/HSpace/Core.v (search for "2301" in that file). The current proof is quite short, but does unnecessarily rely on function extensionality. It would be nice to have a proof that doesn't use Funext, but I'm not sure that squares will be easier than just doing this directly. If you want to try, that would be interesting to see. I guess that same HSpace/Core.v file would be the right place. |
45dd659 to
65ff8ac
Compare
|
@Alizter This is ready for review now. I broke it up into logical commits. One of the commits changes lots of comments, and another moves something, so it's best if you view the commits separately when reviewing. @marcbezem If you can give this a quick look, that would be great. |
65ff8ac to
645de1e
Compare
|
(Force pushed again just to fix typo in commit message.) |
Alizter
left a comment
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 much better, thank you both for your work.
theories/Cubical/PathSquare.v
Outdated
|
|
||
| End KanUnique. | ||
|
|
||
| (** Interchange law. *) |
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.
Here is a diagram that may aid readers:
h0i h0j
a00 ━━━━━━━━ a01 ━━━━━━━━ a02
┃ ┃ ┃
┃ sq00 ┃ sq01 ┃
vi0 ┃ vi1 ┃ ┃ vi2
┃ ┃ ┃
┃ h1i ┃ h1j ┃
a10 ━━━━━━━━ a11 ━━━━━━━━ a12
┃ ┃ ┃
┃ sq10 ┃ sq11 ┃
vj0 ┃ vj1 ┃ ┃ vj2
┃ ┃ ┃
┃ h2i ┃ h2j ┃
a20 ━━━━━━━━ a21 ━━━━━━━━ a22
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.
Nice! I've added that, including the unicode, with << >> markers. Let's see how it looks in the generated documentation. @Alizter Can you remind me where I can find the coqdoc/alectryon documentation that the CI generates?
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's not possible to view it in the CI for a PR (online), but the main CI will upload and host the artefacts. Links to the hosted docs are on the wiki https://github.com/HoTT/Coq-HoTT/wiki
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.
If you go to the specific CI job there is an upload artifact step which gives you a link to download the produced docs. That's technically one way you can view it.
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 don't see the diagram in the recent commit btw, did you push it?
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.
Whoops, I only commited part of the changes I made. I just force pushed to fix 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.
We can just merge this once @marcbezem takes a look, and then check the documentation at that point.
|
Since I changed the title, I'll say explicitly that this finishes the work started in #2325, which was not actually merged. |
8d451a2 to
a3d559c
Compare
|
Looks good to me! |
|
For the record, the documentation looks fine. |
|
Thanks! Shall I delete the |
Yep! |
As asked by @Alizter .
One simplification added, using the library (
experimentalis not used, but reminds me of the plan). I'm still thinking what should beremember-ed to get fromh0jback tosq01.