summaryrefslogtreecommitdiff
path: root/test-suite/success/rewrite.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/rewrite.v
parent4e6d6dab2ef2de6c1ad7972fc981e55a4fde7ae3 (diff)
parent0b14713e3efd7f8f1cc8a06555d0ec8fbe496130 (diff)
Merge branch 'experimental/master'
Diffstat (limited to 'test-suite/success/rewrite.v')
-rw-r--r--test-suite/success/rewrite.v21
1 files changed, 21 insertions, 0 deletions
diff --git a/test-suite/success/rewrite.v b/test-suite/success/rewrite.v
index 3bce52fe..08c406be 100644
--- a/test-suite/success/rewrite.v
+++ b/test-suite/success/rewrite.v
@@ -108,3 +108,24 @@ intros.
rewrite (H _).
reflexivity.
Qed.
+
+(* Example of rewriting of a degenerated pattern using the right-most
+ argument of the goal. This is sometimes used in contribs, even if
+ ad hoc. Here, we have the extra requirement that checking types
+ needs delta-conversion *)
+
+Axiom s : forall (A B : Type) (p : A * B), p = (fst p, snd p).
+Definition P := (nat * nat)%type.
+Goal forall x:P, x = x.
+intros. rewrite s.
+Abort.
+
+(* Test second-order unification and failure of pattern-unification *)
+
+Goal forall (P: forall Y, Y -> Prop) Y a, Y = nat -> (True -> P Y a) -> False.
+intros.
+(* The next line used to succeed between June and November 2011 *)
+(* causing ill-typed rewriting *)
+Fail rewrite H in H0.
+Abort.
+