aboutsummaryrefslogtreecommitdiff
path: root/src/Compilers
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-17 19:26:08 -0500
committerGravatar Jason Gross <jgross@mit.edu>2017-11-17 19:26:08 -0500
commit668ea5d4857ef81fc6bb8e83161c4590398c7ca0 (patch)
tree6e124dfbdea400d1968f03d628f8207ffd6126e0 /src/Compilers
parenta96f7f9c31713cee36949e7a7e8c52227f301014 (diff)
Add interpf_SmartVarf
Diffstat (limited to 'src/Compilers')
-rw-r--r--src/Compilers/SmartMap.v10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Compilers/SmartMap.v b/src/Compilers/SmartMap.v
index a7ba64712..b02bba2a1 100644
--- a/src/Compilers/SmartMap.v
+++ b/src/Compilers/SmartMap.v
@@ -424,6 +424,16 @@ Section interp_lemmas.
Local Notation exprfb := (fun t => exprf _ op (Tbase t)).
+ Lemma interpf_SmartVarf
+ {t} (e : interp_flat_type _ t)
+ : @interpf _ interp_base_type _ interp_op _ (SmartVarf (var:=interp_base_type) e)
+ = e.
+ Proof.
+ induction t as [ t | | A IHA B IHB ]; try destruct e; try reflexivity.
+ rewrite !SmartVarf_Pair; cbn; rewrite IHA, IHB.
+ reflexivity.
+ Qed.
+
Lemma interpf_SmartPairf'
{t} (e : interp_flat_type exprfb t)
: @interpf _ interp_base_type _ interp_op _ (SmartPairf e)