diff options
author | Maxime Dénès <mail@maximedenes.fr> | 2018-01-18 18:00:17 +0100 |
---|---|---|
committer | Maxime Dénès <mail@maximedenes.fr> | 2018-01-18 18:00:17 +0100 |
commit | 9aa2464375c1515aa64df7dc910e2f324e34c82f (patch) | |
tree | adae0cab32f7d2fb01c29d74c9dfc7dc93c3bf6f /test-suite/success | |
parent | f26bf29cfe6fb154400f3a1305b86b34ad88e0e2 (diff) | |
parent | 7f60ab72facdee620467c0c48c914273f70aa96f (diff) |
Merge PR #6555: Use let-in aware prod_applist_assum in dtauto and firstorder.
Diffstat (limited to 'test-suite/success')
-rw-r--r-- | test-suite/success/dtauto-let-deps.v | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test-suite/success/dtauto-let-deps.v b/test-suite/success/dtauto-let-deps.v new file mode 100644 index 000000000..094b2f8b3 --- /dev/null +++ b/test-suite/success/dtauto-let-deps.v @@ -0,0 +1,24 @@ +(* +This test is sensitive to changes in which let-ins are expanded when checking +for dependencies in constructors. +If the (x := X) is not reduced, Foo1 won't be recognized as a conjunction, +and if the (y := X) is reduced, Foo2 will be recognized as a conjunction. + +This tests the behavior of engine/termops.ml : prod_applist_assum, +which is currently specified to reduce exactly the parameters. + +If dtauto is changed to reduce lets in constructors before checking dependency, +this test will need to be changed. +*) + +Context (P Q : Type). +Inductive Foo1 (X : Type) (x := X) := foo1 : let y := X in P -> Q -> Foo1 x. +Inductive Foo2 (X : Type) (x := X) := foo2 : let y := X in P -> Q -> Foo2 y. + +Goal P -> Q -> Foo1 nat. +solve [dtauto]. +Qed. + +Goal P -> Q -> Foo2 nat. +Fail solve [dtauto]. +Abort. |