diff options
author | Jason Gross <jgross@mit.edu> | 2018-12-18 16:17:16 -0500 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2018-12-18 16:17:16 -0500 |
commit | 051d80a60ff66f325d94d6a984af1f24b797d80b (patch) | |
tree | a575581ba144e33b797288c44339ad7cd01fb750 /src | |
parent | e29ebda08454e21fb422a088dbf17ffe72213274 (diff) |
Add eq_subst_types_pattern_collect_vars_empty_iff
Diffstat (limited to 'src')
-rw-r--r-- | src/Experiments/NewPipeline/RewriterWf1.v | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Experiments/NewPipeline/RewriterWf1.v b/src/Experiments/NewPipeline/RewriterWf1.v index 9342bfbd3..0536757e8 100644 --- a/src/Experiments/NewPipeline/RewriterWf1.v +++ b/src/Experiments/NewPipeline/RewriterWf1.v @@ -279,6 +279,16 @@ Module Compilers. congruence. Qed. + Lemma eq_subst_types_pattern_collect_vars_empty_iff pt evm (evm0:=PositiveMap.empty _) + (evm' := mk_new_evm evm (pattern.base.collect_vars pt) evm0) + : pattern.base.subst pt evm = pattern.base.subst pt evm'. + Proof using Type. + apply subst_eq_if_mem; subst evm' evm0; intro. + rewrite fold_right_evar_map_find_In, PositiveMap.gempty. + intro H; rewrite H. + break_innermost_match; reflexivity. + Qed. + Lemma add_var_types_cps_id {t v evm T k} : @pattern.base.add_var_types_cps t v evm T k = k (@pattern.base.add_var_types_cps t v evm _ id). Proof using Type. @@ -507,6 +517,16 @@ Module Compilers. congruence. Qed. + Lemma eq_subst_types_pattern_collect_vars_empty_iff pt evm (evm0:=PositiveMap.empty _) + (evm' := mk_new_evm evm (pattern.type.collect_vars pt) evm0) + : pattern.type.subst pt evm = pattern.type.subst pt evm'. + Proof using Type. + apply subst_eq_if_mem; subst evm' evm0; intro. + rewrite base.fold_right_evar_map_find_In, PositiveMap.gempty. + intro H; rewrite H. + break_innermost_match; reflexivity. + Qed. + Lemma app_forall_vars_under_forall_vars_relation {p k1 k2 F v1 v2 evm} : @pattern.type.under_forall_vars_relation p k1 k2 F v1 v2 |