diff options
| author | Pierre-Marie Pédrot | 2019-04-29 18:50:47 +0200 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2019-05-03 13:42:40 +0200 |
| commit | 24c570834dccc90c7ff14d3f6b9d33b818fa79c9 (patch) | |
| tree | d986ebd93114b8b29711e8afc1811683905d4812 /test-suite | |
| parent | 6960da4736186fa6214854329f36f558e7aa4d0b (diff) | |
Fix #9994: `revert dependent` is extremely slow.
We add a fast path when generalizing over variables.
Diffstat (limited to 'test-suite')
| -rw-r--r-- | test-suite/bugs/closed/bug_10025.v | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test-suite/bugs/closed/bug_10025.v b/test-suite/bugs/closed/bug_10025.v new file mode 100644 index 0000000000..1effc771b0 --- /dev/null +++ b/test-suite/bugs/closed/bug_10025.v @@ -0,0 +1,39 @@ +Require Import Program. + +Axiom I : Type. + +Inductive S : Type := NT : I -> S. + +Axiom F : S -> Type. + +Axiom G : forall (s : S), F s -> Type. + +Section S. + +Variable init : I. +Variable my_s : F (NT init). + +Inductive foo : forall (s: S) (hole_sem: F s), Type := +| Foo : foo (NT init) my_s. + +Goal forall + (n : I) (s : F (NT n)) (ptz : foo (NT n) s) (pt : G (NT n) s) (x : unit), +match + match x with tt => tt end +with +| tt => + match + match ptz in foo x s return (forall _ : G x s, unit) with + | Foo => fun _ : G (NT init) my_s => tt + end pt + with + | tt => False + end +end. +Proof. +dependent destruction ptz. +(* Check well-typedness of goal *) +match goal with [ |- ?P ] => let t := type of P in idtac end. +Abort. + +End S. |
