diff options
author | Jason Gross <jgross@mit.edu> | 2018-10-29 00:41:40 -0400 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2018-10-29 00:42:27 -0400 |
commit | 458b80ae2bbf9abe267cfaa0e98d8b91b1b415d3 (patch) | |
tree | 5914617fbf87c5ceebf10306cfc6cb371d9a4cc1 /src | |
parent | 204799abf657fb094ce4b5d72564d0495d3f7a24 (diff) |
Add subst_relax
Diffstat (limited to 'src')
-rw-r--r-- | src/Experiments/NewPipeline/RewriterWf1.v | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Experiments/NewPipeline/RewriterWf1.v b/src/Experiments/NewPipeline/RewriterWf1.v index e63f46c18..7c91bc401 100644 --- a/src/Experiments/NewPipeline/RewriterWf1.v +++ b/src/Experiments/NewPipeline/RewriterWf1.v @@ -50,6 +50,13 @@ Module Compilers. Module pattern. Module base. + Lemma subst_relax {t evm} + : pattern.base.subst (pattern.base.relax t) evm = Some t. + Proof using Type. + induction t; cbn; cbv [Option.bind option_map]; + rewrite_hyp ?*; reflexivity. + Qed. + Lemma subst_Some_subst_default {pt evm t} : pattern.base.subst pt evm = Some t -> pattern.base.subst_default pt evm = t. Proof using Type. @@ -115,6 +122,13 @@ Module Compilers. End base. Module type. + Lemma subst_relax {t evm} + : pattern.type.subst (pattern.type.relax t) evm = Some t. + Proof using Type. + induction t; cbn; cbv [Option.bind option_map]; + rewrite_hyp ?*; rewrite ?base.subst_relax; reflexivity. + Qed. + Lemma subst_Some_subst_default {pt evm t} : pattern.type.subst pt evm = Some t -> pattern.type.subst_default pt evm = t. Proof using Type. |