-
Notifications
You must be signed in to change notification settings - Fork 661
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
Improve: unification message in case of disallowed variable #3126
Comments
Comment author: ruibaptista@live.com Goal forall T1 (P1 : T1 -> Type), sigT P1 -> sigT P1.
(* For this goal the following series of tactics fails. *)
(*
intros T1 P1 H1.
eexists.
destruct H1 as [x1 H1].
apply H1.
*)
(* But it's possible to get them to work simply by reordering them. *)
intros T1 P1 H1.
destruct H1 as [x1 H1].
eexists.
apply H1. |
Comment author: @aspiwack This is not a bug: an existential variable cannot be instantiated using variables introduced later. It would create ill-typed proof terms. In fact it would allow proofs of Definition Top {A} (x:A) := True.
Goal exists x:False, Top x -> False -> False.
Proof.
eexists.
intros x y.
instantiate (1:=y) in x.
exact y.
Qed. The error message of instanciate is much better :
I'm leaving this bug as a request for a better error message. (and changing the title along these lines) |
Comment author: @herbelin Backtracking on setting the bug as invalid (I was too quick on reading Arnaud's comment). Actually, the error message improved and shows that there is a solution:
In any case, my conclusions at this time are the following:
|
Note: the issue was created automatically with bugzilla2github tool
Original bug ID: BZ#3126
From: ruibaptista@live.com
Reported version: 8.4
CC: @aspiwack, @herbelin, @JasonGross
See also: #3823
See also: #5264
The text was updated successfully, but these errors were encountered: