aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64/Asmgenproof.v
diff options
context:
space:
mode:
authorJustus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr>2020-07-09 09:32:01 +0200
committerJustus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr>2020-07-09 09:32:01 +0200
commit7f1b9f2a76d13e08f7a00e7ef17f929a6602a32c (patch)
tree1c86aed732f38481793fa5ab75b51c2b76295266 /aarch64/Asmgenproof.v
parent932a3eda6a597d534131068d87052967398f0229 (diff)
downloadcompcert-kvx-7f1b9f2a76d13e08f7a00e7ef17f929a6602a32c.tar.gz
compcert-kvx-7f1b9f2a76d13e08f7a00e7ef17f929a6602a32c.zip
Finish proof of Lemma symbol_high_low
Diffstat (limited to 'aarch64/Asmgenproof.v')
-rw-r--r--aarch64/Asmgenproof.v11
1 files changed, 8 insertions, 3 deletions
diff --git a/aarch64/Asmgenproof.v b/aarch64/Asmgenproof.v
index 276e95d1..93899c72 100644
--- a/aarch64/Asmgenproof.v
+++ b/aarch64/Asmgenproof.v
@@ -45,12 +45,17 @@ Let tge := Genv.globalenv tprog.
Definition lk :aarch64_linker := {| Asmblock.symbol_low:=Asm.symbol_low tge; Asmblock.symbol_high:=Asm.symbol_high tge|}.
+
+Lemma symbols_preserved:
+ forall (s: ident), Genv.find_symbol tge s = Genv.find_symbol ge s.
+Proof (Genv.find_symbol_match TRANSF).
+
Lemma symbol_high_low: forall (id: ident) (ofs: ptrofs),
Val.addl (Asmblock.symbol_high lk id ofs) (Asmblock.symbol_low lk id ofs) = Genv.symbol_address ge id ofs.
Proof.
- unfold lk; simpl. intros; rewrite Asm.symbol_high_low.
-Admitted.
-
+ unfold lk; simpl. intros; rewrite Asm.symbol_high_low; unfold Genv.symbol_address;
+ rewrite symbols_preserved; reflexivity.
+Qed.
Lemma transf_program_correct:
forward_simulation (Asmblock.semantics lk prog) (Asm.semantics tprog).