aboutsummaryrefslogtreecommitdiffstats
path: root/backend/CSE3proof.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-12-08 20:16:47 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-12-08 20:28:00 +0100
commitd7213cfdef90fc3ebc5f57ae18277d7b4c9dd126 (patch)
tree32f5adae832bb34a9dd25c7a7c34fe11208c1c7e /backend/CSE3proof.v
parent0f9018baabe8feeed19d8f7e14f8480e898b5a84 (diff)
downloadcompcert-kvx-d7213cfdef90fc3ebc5f57ae18277d7b4c9dd126.tar.gz
compcert-kvx-d7213cfdef90fc3ebc5f57ae18277d7b4c9dd126.zip
analysis with Abst_same
Diffstat (limited to 'backend/CSE3proof.v')
-rw-r--r--backend/CSE3proof.v12
1 files changed, 9 insertions, 3 deletions
diff --git a/backend/CSE3proof.v b/backend/CSE3proof.v
index 7af62b95..9a55f529 100644
--- a/backend/CSE3proof.v
+++ b/backend/CSE3proof.v
@@ -449,6 +449,7 @@ Lemma step_simulation:
exists S2', RTL.step tge S1' t S2' /\ match_states S2 S2'.
Proof.
induction 1; intros S1' MS; inv MS.
+ all: try set (ctx := (context_from_hints (snd (preanalysis tenv f)))).
- (* Inop *)
exists (State ts tf sp pc' rs m). split.
+ apply exec_Inop; auto.
@@ -779,9 +780,14 @@ Proof.
cbn in IND.
rewrite H in IND.
assert (RB.ge (fst (preanalysis tenv f)) # (if b then ifso else ifnot)
- match (fst (preanalysis tenv f)) # pc with
- | Some x => apply_instr (ctx:=(context_from_hints (snd (preanalysis tenv f)))) pc tenv (Icond cond args ifso ifnot predb) x
- | None => None
+ match
+ match (fst (preanalysis tenv f)) # pc with
+ | Some x =>
+ apply_instr (ctx:=ctx) pc tenv (Icond cond args ifso ifnot predb) x
+ | None => Abst_same RB.bot
+ end
+ with
+ | Abst_same rel' => rel'
end) as INDUCTIVE by (destruct b; intuition).
clear IND.