aboutsummaryrefslogtreecommitdiff
path: root/src/RewriterInterpProofs1.v
diff options
context:
space:
mode:
Diffstat (limited to 'src/RewriterInterpProofs1.v')
-rw-r--r--src/RewriterInterpProofs1.v46
1 files changed, 0 insertions, 46 deletions
diff --git a/src/RewriterInterpProofs1.v b/src/RewriterInterpProofs1.v
index 611a6ca5b..145a3d388 100644
--- a/src/RewriterInterpProofs1.v
+++ b/src/RewriterInterpProofs1.v
@@ -455,52 +455,6 @@ Module Compilers.
subst; reflexivity.
Qed.
- Lemma interp_Base_value {t v1 v2}
- : value_interp_related v1 v2
- -> value_interp_related (@Base_value t v1) v2.
- Proof using Type.
- cbv [Base_value]; destruct t; exact id.
- Qed.
-
- Lemma interp_splice_under_lets_with_value_of_ex {T T' t R e f v}
- : (exists fv (xv : T'),
- UnderLets.interp_related ident_interp R e xv
- /\ (forall x1 x2,
- R x1 x2
- -> value_interp_related (f x1) (fv x2))
- /\ fv xv = v)
- -> value_interp_related (@splice_under_lets_with_value T t e f) v.
- Proof using Type.
- induction t as [|s IHs d IHd].
- all: repeat first [ progress cbn [value_interp_related splice_under_lets_with_value] in *
- | progress intros
- | progress destruct_head'_ex
- | progress destruct_head'_and
- | progress subst
- | eassumption
- | solve [ eauto ]
- | now (eapply UnderLets.splice_interp_related_of_ex; eauto)
- | match goal with
- | [ H : _ |- _ ] => eapply H; clear H
- | [ |- exists fv xv, _ /\ _ /\ _ ]
- => do 2 eexists; repeat apply conj; [ eassumption | | ]
- end ].
- Qed.
-
- Lemma interp_splice_value_with_lets_of_ex {t t' e f v}
- : (exists fv xv,
- value_interp_related e xv
- /\ (forall x1 x2,
- value_interp_related x1 x2
- -> value_interp_related (f x1) (fv x2))
- /\ fv xv = v)
- -> value_interp_related (@splice_value_with_lets t t' e f) v.
- Proof using Type.
- cbv [splice_value_with_lets]; break_innermost_match.
- { apply interp_splice_under_lets_with_value_of_ex. }
- { intros; destruct_head'_ex; destruct_head'_and; subst; eauto. }
- Qed.
-
Lemma interp_reify_and_let_binds {with_lets t v1 v}
: value_interp_related v1 v
-> UnderLets_interp_related (@reify_and_let_binds_cps with_lets t v1 _ UnderLets.Base) v.