diff options
| author | Hugo Herbelin | 2016-08-20 17:29:26 +0200 |
|---|---|---|
| committer | Hugo Herbelin | 2018-09-27 22:36:12 +0200 |
| commit | b2361208a1242a92af7d18cb723ef3b7b55d79b5 (patch) | |
| tree | e5a2696d5300d563f5115e1a4e481334c43fe713 /test-suite | |
| parent | 29f749d87aebb8226bb9da624c57f83942881a99 (diff) | |
Possible abstractions over goal variables when inferring match return clause.
The no-inversion and maximal abstraction over dependencies now
supports abstraction over goal variables rather than only on "rel"
variables. In particular, it now works consistently using
"intro H; refine (match H with ... end)" or
"refine (fun H => match H with ... end)".
By doing so, we ensure that all three strategies are tried in all
situations where a return clause has to be inferred, even in the
context of a "refine".
See antepenultimate commit for discussion.
Diffstat (limited to 'test-suite')
| -rw-r--r-- | test-suite/success/Case13.v | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test-suite/success/Case13.v b/test-suite/success/Case13.v index 8fad41cd8f..356a67efec 100644 --- a/test-suite/success/Case13.v +++ b/test-suite/success/Case13.v @@ -113,3 +113,15 @@ Check fun z P Q (y:K true z) (H1 H2:P y) (f:forall y z, P y -> Q y z) => | F => f y true H1 | G b => f y b H2 end. + +(* Check use of the maximal-dependency-in-variable strategy for "Var" + variables *) + +Goal forall z P Q (y:K true z) (H1 H2:P y) (f:forall y z, P y -> Q y z), Q y z. +intros z P Q y H1 H2 f. +Show. +refine (match y with + | F => f y true H1 + | G b => f y b H2 + end). +Qed. |
