aboutsummaryrefslogtreecommitdiffstats
path: root/common/Memory.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-02 13:17:54 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-02 13:17:54 +0100
commit6af8f4275f7f9572d4d0783818cbfb85357807c6 (patch)
treecd98cb1112a398c992290e1660c329aff8ffd06f /common/Memory.v
parent65281dfbf2ce12f4fca5c1bfa57a14a429687ca7 (diff)
downloadcompcert-kvx-6af8f4275f7f9572d4d0783818cbfb85357807c6.tar.gz
compcert-kvx-6af8f4275f7f9572d4d0783818cbfb85357807c6.zip
loadv_storev_same
Diffstat (limited to 'common/Memory.v')
-rw-r--r--common/Memory.v18
1 files changed, 18 insertions, 0 deletions
diff --git a/common/Memory.v b/common/Memory.v
index b68a5049..89b920b3 100644
--- a/common/Memory.v
+++ b/common/Memory.v
@@ -1169,6 +1169,24 @@ Local Hint Resolve store_valid_block_1 store_valid_block_2: mem.
Local Hint Resolve store_valid_access_1 store_valid_access_2
store_valid_access_3: mem.
+
+Section STOREV.
+Variable chunk: memory_chunk.
+Variable m1: mem.
+Variables addr v: val.
+Variable m2: mem.
+Hypothesis STORE: storev chunk m1 addr v = Some m2.
+
+
+Theorem loadv_storev_same:
+ loadv chunk m2 addr = Some (Val.load_result chunk v).
+Proof.
+ destruct addr; simpl in *; try discriminate.
+ eapply load_store_same.
+ eassumption.
+Qed.
+End STOREV.
+
Lemma load_store_overlap:
forall chunk m1 b ofs v m2 chunk' ofs' v',
store chunk m1 b ofs v = Some m2 ->