-
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
Make eexact consistent with other e-tactics #4045
Comments
Comment author: @MatejKosik Concerning "eexact" tactic the Reference Manual says: "This tactic behaves like exact but is able to handle terms and goals with meta-variables." That sounds like "exact" wouldn't be able to cope with terms and goals with meta-variables. I do not think that is true (anymore): Below, there is no need for "eexact" even though meta-variables are involved. Require Import Arith. (* Theorem le_mult_mult : forall a b c d : nat, a <= c -> b <= d -> a * b <= c * d. |
Comment author: @Zimmi48 Actually, I couldn't find any use-case where eexact is more powerful than exact. (BTW the tactic is not used in the standard library.) In particular, eexact is strictly less powerful than eapply in cases where they should be equivalent: Goal (nat -> True) -> True. The implementation of eexact should be changed to succeed in this case in the same way as eapply, or the tactic should be simply removed. Does anyone have an example where eexact is more powerful than exact as of today? |
I found a case where |
Here is an example where |
Minimal-ish test-case: Class Foo := foo : True.
Goal forall (A B : Type) (F : A -> Type) (a : A),
F a -> (Foo -> forall x, F x -> B) -> B.
intros A B F a Fa H.
let H' := open_constr:(H _ _) in
refine (H' _); match goal with H'' : _ |- _ => exact H'' end. but if I replace |
I get the same results if I replace the match goal stuff with just |
Note: the issue was created automatically with bugzilla2github tool
Original bug ID: BZ#4045
From: @MatejKosik
Reported version: trunk
CC: coq-bugs-redist@lists.gforge.inria.fr
The text was updated successfully, but these errors were encountered: