diff options
author | 2017-10-20 18:47:04 -0400 | |
---|---|---|
committer | 2017-10-20 18:47:04 -0400 | |
commit | 0be5ab83b69b07d83f7e83b2efa81e46f6bcb5a5 (patch) | |
tree | 99f19d913723e5ce036e7b9c705dc328219819a6 /src/Compilers | |
parent | 5343266f774dbc278a957bf2f2764ac78616d71f (diff) |
Add wff_SmartPairf_SmartVarfMap_same
Diffstat (limited to 'src/Compilers')
-rw-r--r-- | src/Compilers/WfProofs.v | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Compilers/WfProofs.v b/src/Compilers/WfProofs.v index 5bf984a48..463f86656 100644 --- a/src/Compilers/WfProofs.v +++ b/src/Compilers/WfProofs.v @@ -158,6 +158,16 @@ Section language. induction Hwf; simpl in *; break_innermost_match; try congruence; eauto. Qed. End with_interp. + + Lemma wff_SmartPairf_SmartVarfMap_same {var} G {t} v f g + (Hfg : forall t v, wff G (f t v) (g t v)) + : wff G (t:=t) (var1:=var1) (var2:=var2) + (SmartPairf (SmartVarfMap f v)) + (SmartPairf (SmartVarfMap (var:=var) g v)). + Proof. + induction t; try solve [ cbv [SmartPairf]; simpl; auto ]. + rewrite !SmartVarfMap_Pair, !SmartPairf_Pair; auto. + Qed. End with_var. Definition duplicate_type {var1 var2} |