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

Template <-> PCUIC proofs #533

Merged
merged 22 commits into from
Dec 13, 2020
Merged

Template <-> PCUIC proofs #533

merged 22 commits into from
Dec 13, 2020

Conversation

mattam82
Copy link
Member

@mattam82 mattam82 commented Dec 10, 2020

This PR fills the remaining holes in these proofs, mainly by updating the Template Typing definitions from what's in PCUIC now. Currently, I only finished the (easier) PCUIC -> Template proof but the other one is just boring passing of well-formedness conditions (I hope 🤞 ).

Two notable differences appeared:

  • PCUIC needs an additional G |- tProd na A B : tSort s assumption in applications, otherwise it's impossible to produce the corresponding assumption in Template's typing (where application is based on spines, and every product type appearing there must have a sorting judgment). Not to worry, by PCUICValidity we can get rid of this paranoid assumption.

  • I finally removed the isLambda side condition on bodies of (inductive) fixpoints as is is not needed anywhere. (And would be problematic with eta-conversion/reduction)

@mattam82 mattam82 force-pushed the template-pcuic-proofs branch from 7b967c5 to 21e77a0 Compare December 10, 2020 02:41
@mattam82 mattam82 marked this pull request as ready for review December 10, 2020 10:34
@mattam82 mattam82 force-pushed the template-pcuic-proofs branch from dddefdc to f8ab08d Compare December 12, 2020 03:14
@mattam82
Copy link
Member Author

mattam82 commented Dec 12, 2020

Suprise surprise: when I thought PCUIC -> Template was finished I realized the application case was actually not done. It really requires a stronger induction principle on typing derivations, and a way to measure a special type of application spines to get the induction going. It's all written down in comments and proven now. I will leave the Template -> PCUIC proof as is, that is missing the proof that translation of case predicates and branches is correct, as this is currently very ugly and should get better with the upcoming new case representation. @jakobbotsch I'll handle that part when we settle on the Ast/Typing rule.

@mattam82 mattam82 force-pushed the template-pcuic-proofs branch from ef23702 to 5b34d94 Compare December 12, 2020 16:21
@mattam82 mattam82 merged commit 18d18e0 into coq-8.11 Dec 13, 2020
@mattam82 mattam82 deleted the template-pcuic-proofs branch December 13, 2020 00:33
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.

1 participant