-
Notifications
You must be signed in to change notification settings - Fork 76
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
Proving Eliminators without using J. #107
base: pi4s3_nobug
Are you sure you want to change the base?
Conversation
I made some tests and this doesn't seem to make things faster... I ran testShortcut4To5 (after applying 7d70bea) and the timing is actually 1s slower. |
@ecavallo has some alternative definition of this map that completely avoids the lemmas that this patch affects, however this doesn't seem to make things faster either. So the strange slowdown in the latter maps doesn't seem to come from this. |
I think the most time consuming part is from the map
The part that using |
Yeah, test0To5 definitely needs to get faster. However f8 (kappaTwo) seems to cause a massive combinatorial explosion. Try the following:
This map seems very innocent so I wonder what is going on. I think the problem might be that we are running |
Oh yeah a direct definition of |
The map is defined in B.10 (page 155) of https://arxiv.org/pdf/1606.05916.pdf Maybe someone can come up with a more efficient definition? @ecavallo @loic-p The case we need here is n=2 and A=S^2. |
Evan seems to have figured it out: #110 Those new maps seem to have linear complexity in the number of hcomps in the input. This is a huge improvement to f8-f10 that were seemingly at least exponential. The next step is to optimize f5. I have some ideas for how to do it, but I really have to work on a grant proposal so it might be a few weeks before I work on it |
PS: the idea to hopefully optimize f5 is to use Loic's definition of the map from the total space of the Hopf fibration to S1 * S1 instead of the "tee" map (https://github.com/mortberg/cubicaltt/blob/pi4s3_nobug/examples/brunerie2.ctt#L925): https://github.com/agda/cubical/blob/master/Cubical/HITs/Hopf.agda#L60 As Loic's map is defined for the Hopf fibration defined using the suspension of S1 we will have to change a bunch of other things in f5 as well. One way to quickly test it might be to insert the map: https://github.com/mortberg/cubicaltt/blob/pi4s3_nobug/examples/brunerie2.ctt#L927 somewhere but I'm not sure where. If someone experiments with this please keep me posted. |
Just one observation: I just did
|
Wow, this should be better in Cubical Agda then... Once we have a perfected version of f5 it should be fairly straightforward to port the definition and try it there. |
Is there any heuristic for one to believe this new map is better than the one defined by |
I seems simpler and shorter. But this is very hard to judge without trying, so we will have to see empirically :) |
I ported it now: https://github.com/mortberg/cubicaltt/blob/pi4s3_nobug/examples/brunerie2.ctt#L972 It doesn't seem faster... But more testing and experimenting is necessary. |
I used a lemma called
g2TruncFib
similar tosetTruncFib
.Just one remark, for
g2TruncFib
(and similarlysetTruncFib
) to work we don't need thatgP x
is a 2-groupoid for allx
. We actually only need it to be a 2-groupoid at the fiber overb
. However I choose to keep the type unchanged. But this could be useful at some point where not all fibers are known to be 2-groupoid.