diff options
| author | Enrico Tassi | 2015-09-10 11:44:11 +0200 |
|---|---|---|
| committer | Enrico Tassi | 2015-12-03 09:59:45 +0100 |
| commit | 4d0f111956307c5a134db701fe27f01f8ac50e9d (patch) | |
| tree | 83a8175782bdd7c04d614a269878a0f9ab3e51e7 /mathcomp/ssrtest | |
| parent | 55a5aaa22e9dd92ff1c6aba599b878c384c1a66b (diff) | |
fix: elim/v handles eliminator from Derive Inversion (issue #2)
Also:
- fix elim trying to saturate too much and not raising the expected exn
- fix fill_occ_pattern when occ is {-}, it used to lose the
instantiation obtained by matching the term
Diffstat (limited to 'mathcomp/ssrtest')
| -rw-r--r-- | mathcomp/ssrtest/derive_inversion.v | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/mathcomp/ssrtest/derive_inversion.v b/mathcomp/ssrtest/derive_inversion.v new file mode 100644 index 0000000..71257d8 --- /dev/null +++ b/mathcomp/ssrtest/derive_inversion.v @@ -0,0 +1,19 @@ +Require Import ssreflect ssrbool. + +Set Implicit Arguments. + + Inductive wf T : bool -> option T -> Type := + | wf_f : wf false None + | wf_t : forall x, wf true (Some x). + + Derive Inversion wf_inv with (forall T b (o : option T), wf b o) Sort Prop. + + Lemma Problem T b (o : option T) : + wf b o -> + match b with + | true => exists x, o = Some x + | false => o = None + end. + Proof. + by case: b; elim/wf_inv=>//;case: o=>// a *; exists a. + Qed. |
