aboutsummaryrefslogtreecommitdiffhomepage
path: root/theories/Program/Tactics.v
diff options
context:
space:
mode:
authorGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-01-02 13:26:08 +0000
committerGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-01-02 13:26:08 +0000
commit640a6d2f48ba07b51bcabc4235eaa4a497f4c263 (patch)
treedc32022e578a0d8b15a5e442ba123428e4949768 /theories/Program/Tactics.v
parentc47a4f906b9427c93db441de30dd69898d42d449 (diff)
Better resolution of implicit parameters in typeclass binders, add extensionality tactic to apply the axiom properly and fix test-suite.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10415 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/Program/Tactics.v')
-rw-r--r--theories/Program/Tactics.v6
1 files changed, 4 insertions, 2 deletions
diff --git a/theories/Program/Tactics.v b/theories/Program/Tactics.v
index ac0f5cf71..b7b62f394 100644
--- a/theories/Program/Tactics.v
+++ b/theories/Program/Tactics.v
@@ -134,6 +134,8 @@ Ltac autoinjection :=
| [ H : ?f ?a ?b ?c ?d ?e ?g ?h ?i ?j = ?f' ?a' ?b' ?c' ?d' ?e'?g' ?h' ?i' ?j' |- _ ] => tac H
end.
+Ltac autoinjections := repeat autoinjection.
+
(** Destruct an hypothesis by first copying it to avoid dependencies. *)
Ltac destruct_nondep H := let H0 := fresh "H" in assert(H0 := H); destruct H0.
@@ -157,7 +159,7 @@ Tactic Notation "contradiction" "by" constr(t) :=
possibly using [program_simplify] to use standard goal-cleaning tactics. *)
Ltac program_simplify :=
- simpl ; intros ; destruct_conjs ; simpl proj1_sig in * ; subst* ;
- try (solve [ red ; intros ; destruct_conjs ; discriminate ]).
+ simpl ; intros ; destruct_conjs ; simpl proj1_sig in * ; subst* ; try autoinjection ; try discriminates ;
+ try (solve [ red ; intros ; destruct_conjs ; try autoinjection ; discriminates ]).
Ltac program_simpl := program_simplify ; auto with *.