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

Weaker interface for neutral conversion #61

Merged
merged 2 commits into from
Jan 23, 2024
Merged

Conversation

MevenBertrand
Copy link
Member

This backports a change we had already on the branch with lists, which makes the generic interface for conversion weaker, by only demanding inclusion of neutral conversion in conversion at positive types. We pay the price in Neutral, because the proof for negative types is a bit more involved – we need to use η expansion –, but more "moral". It allows to remove a nasty proof that algorithmic neutral conversion in included in algorithmic conversion, which was using normalisation to basically do what is now done in the logical relation

Comment on lines -224 to -228
Lemma ne_conv_conv : forall (Γ : context) (A m n : term),
[Γ |-[de] A] ->
[Γ |-[de] m : A] ->
[Γ |-[al] m ~ n ▹ A] ->
[Γ |-[al] m ≅ n : A].
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's happening with this lemma ? Is it not derivable anymore ? Or just not useful ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is still derivable, but not useful any more, as we only need it when A is a positive type, in which case it is trivial by using the relevant constructor of algorithmic conversion. As explained above, I feel it is more "moral" that this consequence of normalisation is directly handled in the logrel, rather than after the fact.

theories/LogicalRelation/Neutral.v Show resolved Hide resolved
@kyoDralliam kyoDralliam merged commit fcbc9d0 into master Jan 23, 2024
1 check passed
@kyoDralliam kyoDralliam deleted the neutral-at-positive branch January 23, 2024 14:45
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