aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-01-27 17:53:05 -0500
committerGravatar Jason Gross <jgross@mit.edu>2017-01-27 17:53:05 -0500
commitfe96f366f9470335f6bf0a3337bbb26c939487cf (patch)
treec2d32e3132274301921579088905dadb2db8133f
parentf34a91243202f5b6844497c7a16affab1fba1c5e (diff)
Add SmartPairf_Pair
-rw-r--r--src/Reflection/SmartMap.v3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/Reflection/SmartMap.v b/src/Reflection/SmartMap.v
index f6619f449..d38b5c733 100644
--- a/src/Reflection/SmartMap.v
+++ b/src/Reflection/SmartMap.v
@@ -110,6 +110,9 @@ Section homogenous_type.
and not just [base_type_code] *)
Definition SmartPairf {t} : interp_flat_type exprf t -> exprf t
:= @smart_interp_flat_map exprf exprf (fun t x => x) TT (fun A B x y => Pair x y) t.
+ Lemma SmartPairf_Pair {A B} e1 e2
+ : SmartPairf (t:=Prod A B) (e1, e2)%core = Pair (SmartPairf e1) (SmartPairf e2).
+ Proof. reflexivity. Qed.
Definition SmartVarf {t} : interp_flat_type var t -> exprf t
:= @smart_interp_flat_map var exprf (fun t => Var) TT (fun A B x y => Pair x y) t.
Definition SmartVarfMap {var var'} (f : forall t, var t -> var' t) {t}