-
Notifications
You must be signed in to change notification settings - Fork 236
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
Is Eta included in definitional equality? #756
Comments
I would say that it is rather surprising that you are even able to prove
Though I don't understand why the pattern does not kick in immediately (i.e. replacing |
As far as I understand, eta-equivalence is different from functional extensionality. Specifically, eta-equivalence is about definitional equality, while the latter is about propositional equality. Definitionally, if I have equivalent lambda terms This is the case in Agda (probably in Coq too), where all three proofs go through without assuming it (Agda has eta-reductions).
|
Indeed, my comment was rather stupid... Moreover proving that |
I don't see why this is a bug. None of our formal calculi include eta. Why should one expect this to be part of definitional equality. It is provable. I'm changing the label to a discussion / enhancement. |
Randomly remembered this. I don't really mind the lack of eta, but it's not very consistent. The following code works, for instance:
|
Eta equivalence is specifically forbidden in F*. See #2294 |
In the following code, we try to automatically prove some eta-equivalences. The first two work, at different types, while the third (which is a particular case for the first) fails to be proved automatically. Instantiating
e1
appropriately works to prove the goal, but it feels like this should be automatic.Output:
The text was updated successfully, but these errors were encountered: