You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Run the following script with Abella in the master branch:
Kind pair type -> type -> type.
Define map : (A -> B) -> prop by
map F.
Set types on.
Theorem map_destr_cons [A,B]: forall (F: (pair A B) -> A),
map F -> false.
induction on 1. intros. case H1.
The last case analysis fails with the following message:
Error: Unification error during case analysis: the generic type variable A cannot be instantiated; instead it is instantiated to (pair A B).
Variables:
F : (pair A B) -> A
IH : forall F, map F * -> false
H1 : map F @
============================
false
However, it is obvious the unification should have succeeded with the schematic type variables A and B in the definition of map instantiated with types pair A B and A, respectively, in which A and B are generic type variables.
It seems that the type unification algorithm incorrectly conflates the schematic type variable A in the definition of map with the generic type variable A in the proof.
The text was updated successfully, but these errors were encountered:
Run the following script with Abella in the master branch:
The last case analysis fails with the following message:
However, it is obvious the unification should have succeeded with the schematic type variables
A
andB
in the definition ofmap
instantiated with typespair A B
andA
, respectively, in whichA
andB
are generic type variables.It seems that the type unification algorithm incorrectly conflates the schematic type variable
A
in the definition ofmap
with the generic type variableA
in the proof.The text was updated successfully, but these errors were encountered: