summaryrefslogtreecommitdiff
path: root/test-suite/success/autorewrite.v
diff options
context:
space:
mode:
authorGravatar Stephane Glondu <steph@glondu.net>2013-05-08 18:01:07 +0200
committerGravatar Stephane Glondu <steph@glondu.net>2013-05-08 18:01:07 +0200
commit095eac936751bab72e3c6bbdfa3ede51f7198721 (patch)
tree44cf2859ba6b8486f056efaaf7ee6c2d855f2aae /test-suite/success/autorewrite.v
parent4e6d6dab2ef2de6c1ad7972fc981e55a4fde7ae3 (diff)
parent0b14713e3efd7f8f1cc8a06555d0ec8fbe496130 (diff)
Merge branch 'experimental/master'
Diffstat (limited to 'test-suite/success/autorewrite.v')
-rw-r--r--test-suite/success/autorewrite.v29
1 files changed, 29 insertions, 0 deletions
diff --git a/test-suite/success/autorewrite.v b/test-suite/success/autorewrite.v
new file mode 100644
index 00000000..5e9064f8
--- /dev/null
+++ b/test-suite/success/autorewrite.v
@@ -0,0 +1,29 @@
+Variable Ack : nat -> nat -> nat.
+
+Axiom Ack0 : forall m : nat, Ack 0 m = S m.
+Axiom Ack1 : forall n : nat, Ack (S n) 0 = Ack n 1.
+Axiom Ack2 : forall n m : nat, Ack (S n) (S m) = Ack n (Ack (S n) m).
+
+Hint Rewrite Ack0 Ack1 Ack2 : base0.
+
+Lemma ResAck0 : (Ack 2 2 = 7 -> False) -> False.
+Proof.
+ intros.
+ autorewrite with base0 in H using try (apply H; reflexivity).
+Qed.
+
+Lemma ResAck1 : forall H:(Ack 2 2 = 7 -> False), True -> False.
+Proof.
+ intros.
+ autorewrite with base0 in *.
+ apply H;reflexivity.
+Qed.
+
+(* Check autorewrite does not solve existing evars *)
+(* See discussion started by A. Chargueraud in Oct 2010 on coqdev *)
+
+Hint Rewrite <- plus_n_O : base1.
+Goal forall y, exists x, y+x = y.
+eexists. autorewrite with base1.
+Fail reflexivity.
+