aboutsummaryrefslogtreecommitdiffstats
path: root/backend/ForwardMovesproof.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-01-08 22:00:23 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-01-08 22:00:23 +0100
commit5be5afc63935c9dc534fe153026ff1ac4326e7c5 (patch)
treea25abbd0d3642210aa24e5fcbfffdaa766e64bae /backend/ForwardMovesproof.v
parent2e8e84aea389d41332ebd5a569b474d3c1de23d6 (diff)
downloadcompcert-kvx-5be5afc63935c9dc534fe153026ff1ac4326e7c5.tar.gz
compcert-kvx-5be5afc63935c9dc534fe153026ff1ac4326e7c5.zip
moving forward in proofs
Diffstat (limited to 'backend/ForwardMovesproof.v')
-rw-r--r--backend/ForwardMovesproof.v21
1 files changed, 19 insertions, 2 deletions
diff --git a/backend/ForwardMovesproof.v b/backend/ForwardMovesproof.v
index 4e24dab6..34c3c688 100644
--- a/backend/ForwardMovesproof.v
+++ b/backend/ForwardMovesproof.v
@@ -156,12 +156,29 @@ Lemma step_simulation:
forall S1 t S2, RTL.step ge S1 t S2 ->
forall S1', match_states S1 S1' ->
exists S2', RTL.step tge S1' t S2' /\ match_states S2 S2'.
-Admitted.
-(*
+Proof.
induction 1; intros S1' MS; inv MS; try TR_AT.
- (* nop *)
econstructor; split. eapply exec_Inop; eauto.
constructor; auto.
+
+ simpl in *.
+ unfold fmap_sem in *.
+ destruct (forward_map _) as [map |] eqn:MAP in *; trivial.
+ apply get_rb_sem_ge with (rb2 := map # pc); trivial.
+ replace (map # pc) with (apply_instr' (fn_code f) pc (map # pc)).
+ {
+ eapply DS.fixpoint_solution with (code := fn_code f) (successors := successors_instr); try eassumption.
+ 2: apply apply_instr'_bot.
+ simpl. tauto.
+ }
+ unfold apply_instr'.
+ unfold get_rb_sem in *.
+ destruct (map # pc) in *; try contradiction.
+ rewrite H.
+ reflexivity.
+Admitted.
+(*
- (* op *)
econstructor; split.
eapply exec_Iop with (v := v); eauto.