aboutsummaryrefslogtreecommitdiffstats
path: root/backend/CSE2proof.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-02-05 15:37:58 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-02-05 15:37:58 +0100
commitad16517ee345e53398c69c62d975474475880799 (patch)
treea988470a250ee713f86eba5e57cacc544f8dda0b /backend/CSE2proof.v
parentdabfcfe9aeffe4bcb3d2a27a46e2b10b5d725154 (diff)
downloadcompcert-kvx-ad16517ee345e53398c69c62d975474475880799.tar.gz
compcert-kvx-ad16517ee345e53398c69c62d975474475880799.zip
progress on wellformed reg
Diffstat (limited to 'backend/CSE2proof.v')
-rw-r--r--backend/CSE2proof.v32
1 files changed, 32 insertions, 0 deletions
diff --git a/backend/CSE2proof.v b/backend/CSE2proof.v
index 350cdb24..e0244518 100644
--- a/backend/CSE2proof.v
+++ b/backend/CSE2proof.v
@@ -171,6 +171,38 @@ Proof.
Qed.
Local Hint Resolve wellformed_mem_kill_reg : wellformed.
+Lemma kill_sym_val_referenced:
+ forall dst,
+ forall sv,
+ (kill_sym_val dst sv)=true <-> In dst (referenced_by sv).
+Proof.
+ intros.
+ destruct sv; simpl.
+ - destruct peq; intuition congruence.
+ - rewrite existsb_exists.
+ split.
+ + intros [x [IN EQ]].
+ destruct peq.
+ * subst x; trivial.
+ * discriminate.
+ + intro.
+ exists dst.
+ split; trivial.
+ destruct peq; trivial.
+ congruence.
+ - rewrite existsb_exists.
+ split.
+ + intros [x [IN EQ]].
+ destruct peq.
+ * subst x; trivial.
+ * discriminate.
+ + intro.
+ exists dst.
+ split; trivial.
+ destruct peq; trivial.
+ congruence.
+Qed.
+
Lemma wellformed_mem_kill_mem:
forall rel,
(wellformed_mem rel) -> (wellformed_mem (kill_mem rel)).