aboutsummaryrefslogtreecommitdiffstats
path: root/scheduling/BTL_Scheduler.v
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-07-20 10:17:46 +0200
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-07-20 10:17:46 +0200
commita9c90fe3354f65340283dc79431bc6915ed1ad90 (patch)
treeb23f9d32f7b2d33c2eec38e56556bacc7f7e6b0b /scheduling/BTL_Scheduler.v
parentf59ff208a301bf3f04aab350d9f0b3b217ddeac3 (diff)
downloadcompcert-kvx-a9c90fe3354f65340283dc79431bc6915ed1ad90.tar.gz
compcert-kvx-a9c90fe3354f65340283dc79431bc6915ed1ad90.zip
proof for symbolic simu, need to finish equiv_inputs
Diffstat (limited to 'scheduling/BTL_Scheduler.v')
-rw-r--r--scheduling/BTL_Scheduler.v17
1 files changed, 9 insertions, 8 deletions
diff --git a/scheduling/BTL_Scheduler.v b/scheduling/BTL_Scheduler.v
index 63114125..e7d2b37f 100644
--- a/scheduling/BTL_Scheduler.v
+++ b/scheduling/BTL_Scheduler.v
@@ -92,16 +92,16 @@ Qed.
Lemma check_symbolic_simu_rec_correct lpc: forall f1 f2 x,
check_symbolic_simu_rec f1 f2 lpc = OK x ->
- forall pc ib1, (fn_code f1)!pc = Some ib1 ->
+ forall pc ib1, (fn_code f1)!pc = Some ib1 /\ In pc lpc ->
exists ib2, (fn_code f2)!pc = Some ib2 /\ symbolic_simu f1 f2 (entry ib1) (entry ib2).
Proof.
-Admitted.
- (*
- induction lpc; simpl; intros f1 f2 x X pc ib1 PC; try (inv X; fail).
- destruct ((fn_code f1) ! pc), ((fn_code f2) ! pc); inv X.
- eapply IHlpc; eauto.
+ induction lpc; simpl; intros f1 f2 x X pc ib1 (PC & HIN); try contradiction.
+ destruct HIN; subst.
+ - rewrite PC in X; destruct ((fn_code f2)!pc); monadInv X.
+ exists i; split; auto. destruct x0. eapply simu_check_correct; eauto.
+ - destruct ((fn_code f1)!a), ((fn_code f2)!a); monadInv X.
+ eapply IHlpc; eauto.
Qed.
- *)
Lemma check_symbolic_simu_correct x f1 f2:
check_symbolic_simu f1 f2 = OK x ->
@@ -109,7 +109,8 @@ Lemma check_symbolic_simu_correct x f1 f2:
exists ib2, (fn_code f2)!pc = Some ib2 /\ symbolic_simu f1 f2 (entry ib1) (entry ib2).
Proof.
unfold check_symbolic_simu; intros X pc ib1 PC.
- eapply check_symbolic_simu_rec_correct; eauto.
+ eapply check_symbolic_simu_rec_correct; intuition eauto.
+ apply PTree.elements_correct in PC. eapply (in_map fst) in PC; auto.
Qed.
Definition transf_function (f: BTL.function) :=