aboutsummaryrefslogtreecommitdiffstats
path: root/backend/CSE2proof.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-02-05 17:34:03 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-02-05 17:34:03 +0100
commite4c7ff447ad30832c42ee51f0fe7e1cf62d2eee9 (patch)
treea8f92ebb47582726fc86900055d9ce46c72614cf /backend/CSE2proof.v
parent27b985393cd8d90a3d6f5e9f13bdf90e4300bb8e (diff)
downloadcompcert-kvx-e4c7ff447ad30832c42ee51f0fe7e1cf62d2eee9.tar.gz
compcert-kvx-e4c7ff447ad30832c42ee51f0fe7e1cf62d2eee9.zip
wellformed_reg_kill_mem
Diffstat (limited to 'backend/CSE2proof.v')
-rw-r--r--backend/CSE2proof.v18
1 files changed, 17 insertions, 1 deletions
diff --git a/backend/CSE2proof.v b/backend/CSE2proof.v
index 4d503f90..0d369e7a 100644
--- a/backend/CSE2proof.v
+++ b/backend/CSE2proof.v
@@ -321,7 +321,8 @@ Proof.
rewrite PTree.gro by congruence.
apply Hrel; trivial.
Qed.
-
+Local Hint Resolve wellformed_reg_kill_reg : wellformed.
+
Lemma wellformed_mem_kill_mem:
forall rel,
(wellformed_mem rel) -> (wellformed_mem (kill_mem rel)).
@@ -343,6 +344,21 @@ Proof.
Qed.
Local Hint Resolve wellformed_mem_kill_mem : wellformed.
+Lemma wellformed_reg_kill_mem:
+ forall rel,
+ (wellformed_reg rel) -> (wellformed_reg (kill_mem rel)).
+Proof.
+ unfold wellformed_reg, kill_mem.
+ simpl.
+ intros rel Hrel.
+ intros i j sv KILLMEM KILLABLE.
+ apply Hrel with (sv := sv); trivial.
+ rewrite PTree.gremove_t in KILLMEM.
+ destruct ((mem_used rel) ! i) in KILLMEM.
+ discriminate.
+ assumption.
+Qed.
+
Lemma wellformed_mem_move:
forall r dst rel,
(wellformed_mem rel) -> (wellformed_mem (move r dst rel)).