aboutsummaryrefslogtreecommitdiffhomepage
path: root/theories/Program
diff options
context:
space:
mode:
authorGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2011-06-07 11:14:09 +0000
committerGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2011-06-07 11:14:09 +0000
commit9fa6f319f5b615ce928cb99db4b6d0f55c79ffb7 (patch)
tree58b522d06d98be02801c11696611d5c41479df5f /theories/Program
parent6d52b2f9c7beab66b6faa5cbf3b135f947033f75 (diff)
Fixed bug #2398: destruct ex2/sig2/sigT2 in Program, patch by Paolo Herms.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14164 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'theories/Program')
-rw-r--r--theories/Program/Tactics.v10
1 files changed, 9 insertions, 1 deletions
diff --git a/theories/Program/Tactics.v b/theories/Program/Tactics.v
index 9c34fa916..9694e3fd1 100644
--- a/theories/Program/Tactics.v
+++ b/theories/Program/Tactics.v
@@ -59,12 +59,20 @@ Ltac destruct_pairs := repeat (destruct_one_pair).
Ltac destruct_one_ex :=
let tac H := let ph := fresh "H" in (destruct H as [H ph]) in
+ let tac2 H := let ph := fresh "H" in let ph' := fresh "H" in
+ (destruct H as [H ph ph'])
+ in
let tacT H := let ph := fresh "X" in (destruct H as [H ph]) in
+ let tacT2 H := let ph := fresh "X" in let ph' := fresh "X" in
+ (destruct H as [H ph ph'])
+ in
match goal with
| [H : (ex _) |- _] => tac H
| [H : (sig ?P) |- _ ] => tac H
| [H : (sigT ?P) |- _ ] => tacT H
- | [H : (ex2 _) |- _] => tac H
+ | [H : (ex2 _ _) |- _] => tac2 H
+ | [H : (sig2 ?P _) |- _ ] => tac2 H
+ | [H : (sigT2 ?P _) |- _ ] => tacT2 H
end.
(** Repeateadly destruct existentials. *)