diff src/Tactics.v @ 51:9ceee967b1fc

What could go wrong; some exercises
author Adam Chlipala <adamc@hcoop.net>
date Sun, 28 Sep 2008 12:44:05 -0400
parents a21eb02cc7c6
children 1a664ff9d2d1
line wrap: on
line diff
--- a/src/Tactics.v	Sun Sep 28 11:57:15 2008 -0400
+++ b/src/Tactics.v	Sun Sep 28 12:44:05 2008 -0400
@@ -12,9 +12,18 @@
 Require Omega.
 
 
+Ltac inject H := injection H; clear H; intros; subst.
+
 Ltac simplHyp :=
   match goal with
-    | [ H : S _ = S _ |- _ ] => injection H; clear H; intros; subst
+    | [ H : ?F _ = ?F _ |- _ ] => injection H;
+      match goal with
+        | [ |- _ = _ -> _ ] => clear H; intros; subst
+      end
+    | [ H : ?F _ _ = ?F _ _ |- _ ] => injection H;
+      match goal with
+        | [ |- _ = _ -> _ = _ -> _ ] => clear H; intros; subst
+      end
   end.
 
 Ltac rewriteHyp :=
@@ -28,6 +37,6 @@
 
 Hint Rewrite app_ass : cpdt.
 
-Ltac sintuition := simpl in *; intuition; try simplHyp.
+Ltac sintuition := simpl in *; intuition; try simplHyp; try congruence.
 
 Ltac crush := sintuition; rewriter; sintuition; try omega.