aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2019-03-09 19:28:18 -0500
committerGravatar Jason Gross <jgross@mit.edu>2019-03-09 19:28:18 -0500
commita62576f9cb6379f3d9b5316ca64339353bde0aaa (patch)
tree685e739c6005c3d27d4c48cea531131871d3c375 /src
parent63322a7ec717a48c2a71b076527bd3c4346d5b66 (diff)
Add UnderLets.wf_of_expr
Diffstat (limited to 'src')
-rw-r--r--src/UnderLetsProofs.v7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/UnderLetsProofs.v b/src/UnderLetsProofs.v
index 7a59b7c78..7553b2cb1 100644
--- a/src/UnderLetsProofs.v
+++ b/src/UnderLetsProofs.v
@@ -228,6 +228,13 @@ Module Compilers.
intro Hwf; induction Hwf; cbn [to_expr]; [ assumption | constructor; auto ].
Qed.
+ Lemma wf_of_expr {t} (x : @expr var1 t) (y : @expr var2 t)
+ G
+ : expr.wf G x y -> wf (fun G => expr.wf G) G (of_expr x) (of_expr y).
+ Proof.
+ intro Hwf; induction Hwf; cbn [of_expr]; repeat constructor; auto.
+ Qed.
+
Lemma wf_splice {A1 B1 A2 B2}
{P : list { t : type & var1 t * var2 t }%type -> A1 -> A2 -> Prop}
{Q : list { t : type & var1 t * var2 t }%type -> B1 -> B2 -> Prop}