aboutsummaryrefslogtreecommitdiff
path: root/test-suite/output
diff options
context:
space:
mode:
authorherbelin2007-09-21 09:42:04 +0000
committerherbelin2007-09-21 09:42:04 +0000
commit4dc76691537c57cb8344e82d6bb493360ae12aaa (patch)
tree93b01c33606d343fd6e5b3bdd070d2a406974471 /test-suite/output
parentd8a2c246510af26104fb16fb8ac7c266341c2f8b (diff)
- Fixing bug 1703 ("intros until n" falls back on the variable name when
the latter is bound to a var which is not a quantified one - this led to remove a line marked "temporary compatibility" ... ; made a distinction between quantified hypothesis as for "intros until" and binding names as in "apply with"; in both cases, we now expect that a identifier not used as a variable, as in "apply f_equal with f:=g" where "f" is a true binder name in f_equal, must not be used as a variable elsewhere [see corresponding change in Ints/Tactic.v]) - Fixing bug 1643 (bug in the algorithm used to possibly reuse a global name in the recursive calls of a coinductive term) - Fixing bug 1699 (bug in contracting nested patterns at printing time when the return clause of the subpatterns is dependent) - Fixing bug 1697 (bug in the TacAssert clause of Tacinterp.subst_tactic) - Fixing bug 1678 (bug in converting constr_pattern to constr in Constrextern) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10131 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'test-suite/output')
-rw-r--r--test-suite/output/Cases.out13
-rw-r--r--test-suite/output/Cases.v16
2 files changed, 29 insertions, 0 deletions
diff --git a/test-suite/output/Cases.out b/test-suite/output/Cases.out
index a3033e94fc..3c440b9d02 100644
--- a/test-suite/output/Cases.out
+++ b/test-suite/output/Cases.out
@@ -7,3 +7,16 @@ fix F (t : t) : P t :=
: forall P : t -> Type,
(let x := t in forall x0 : x, P x0 -> P (k x0)) -> forall t : t, P t
+proj =
+fun (x y : nat) (P : nat -> Type) (def : P x) (prf : P y) =>
+match eq_nat_dec x y with
+| left eqprf =>
+ match eqprf in (_ = z) return (P z) with
+ | refl_equal => def
+ end
+| right _ => prf
+end
+ : forall (x y : nat) (P : nat -> Type), P x -> P y -> P y
+
+
+Argument scopes are [nat_scope nat_scope _ _ _]
diff --git a/test-suite/output/Cases.v b/test-suite/output/Cases.v
index 452d360362..56d5cfb4e7 100644
--- a/test-suite/output/Cases.v
+++ b/test-suite/output/Cases.v
@@ -4,3 +4,19 @@ Inductive t : Set :=
k : let x := t in x -> x.
Print t_rect.
+
+(* Do not contract nested patterns with dependent return type *)
+(* see bug #1699 *)
+
+Require Import Arith.
+
+Definition proj (x y:nat) (P:nat -> Type) (def:P x) (prf:P y) : P y :=
+ match eq_nat_dec x y return P y with
+ | left eqprf =>
+ match eqprf in (_ = z) return (P z) with
+ | refl_equal => def
+ end
+ | _ => prf
+ end.
+
+Print proj.