Skip to content
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

make pEquiv Cumulative and pequiv_compose more polymorphic #1706

Merged
merged 3 commits into from
Jan 30, 2023

Conversation

jdchristensen
Copy link
Collaborator

See the discussion and examples in #1703.

@jarlg
Copy link
Collaborator

jarlg commented Jan 29, 2023

After this change, does pequiv_compose still unify with $oE when the latter makes sense? It seems it would be good if we could achieve that, even if we don't use the wildcat instance of pType much at the moment.

@jdchristensen
Copy link
Collaborator Author

After this change, does pequiv_compose still unify with $oE when the latter makes sense? It seems it would be good if we could achieve that, even if we don't use the wildcat instance of pType much at the moment.

No, they don't unify. The proofs of isequiv_compose in Basics/Equivalences and compose_cate in WildCat/Equiv are different. The proofs of the section property and retraction property are different, and in addition, compose_cate uses isequiv_adjointify, while isequiv_compose gives a direct proof without any rewriting. It's likely that these two could be unified, but I'm not sure it's worth fiddling with. In this case, the WildCat proof ends up with lots of extra reflexivity paths; isequiv_compose can make use of the fact that function composition is strictly associative and unital, while WildCat can't assume that. So if they were unified, then isequiv_compose would have to always insert extra reflexivity paths, which would be annoying.

@jarlg
Copy link
Collaborator

jarlg commented Jan 29, 2023

Makes sense. Thanks for the analysis!

@jdchristensen
Copy link
Collaborator Author

Merging this. If ->* is redefined to avoid using pForall, then pequiv_compose can probably be changed back to being defined using $oE.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants