diff options
author | Sylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr> | 2019-04-11 14:20:56 +0200 |
---|---|---|
committer | Sylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr> | 2019-04-11 14:20:56 +0200 |
commit | 4807d6f32f08dd70f798a0478d39163ad3b81129 (patch) | |
tree | 60aa0f0d1df3018feb84d8e2d5d90bf164ddba91 /mppa_k1c/abstractbb | |
parent | 9fbf11fb19617643e816717a288901b4ba17a2b7 (diff) | |
download | compcert-kvx-4807d6f32f08dd70f798a0478d39163ad3b81129.tar.gz compcert-kvx-4807d6f32f08dd70f798a0478d39163ad3b81129.zip |
refactor for #92
Diffstat (limited to 'mppa_k1c/abstractbb')
-rw-r--r-- | mppa_k1c/abstractbb/AbstractBasicBlocksDef.v | 28 | ||||
-rw-r--r-- | mppa_k1c/abstractbb/Parallelizability.v | 8 |
2 files changed, 31 insertions, 5 deletions
diff --git a/mppa_k1c/abstractbb/AbstractBasicBlocksDef.v b/mppa_k1c/abstractbb/AbstractBasicBlocksDef.v index 3023ad8a..d1950209 100644 --- a/mppa_k1c/abstractbb/AbstractBasicBlocksDef.v +++ b/mppa_k1c/abstractbb/AbstractBasicBlocksDef.v @@ -211,7 +211,33 @@ Proof. intros; eapply res_eq_trans. eapply alt_bblock_equiv_refl; eauto. eauto. Qed. - + + +Lemma run_app p1: forall m1 p2, + run (p1++p2) m1 = + match run p1 m1 with + | Some m2 => run p2 m2 + | None => None + end. +Proof. + induction p1; simpl; try congruence. + intros; destruct (inst_run _ _ _); simpl; auto. +Qed. + +Lemma run_app_None p1 m1 p2: + run p1 m1 = None -> + run (p1++p2) m1 = None. +Proof. + intro H; rewrite run_app. rewrite H; auto. +Qed. + +Lemma run_app_Some p1 m1 m2 p2: + run p1 m1 = Some m2 -> + run (p1++p2) m1 = run p2 m2. +Proof. + intros H; rewrite run_app. rewrite H; auto. +Qed. + End SEQLANG. End MkSeqLanguage. diff --git a/mppa_k1c/abstractbb/Parallelizability.v b/mppa_k1c/abstractbb/Parallelizability.v index d1971e57..eae7b672 100644 --- a/mppa_k1c/abstractbb/Parallelizability.v +++ b/mppa_k1c/abstractbb/Parallelizability.v @@ -91,18 +91,18 @@ Proof. intros; destruct (inst_prun _ _ _); simpl; auto. Qed. -Lemma prun_iw_app_None p1: forall m1 old p2, +Lemma prun_iw_app_None p1 m1 old p2: prun_iw p1 m1 old = None -> prun_iw (p1++p2) m1 old = None. Proof. - intros m1 old p2 H; rewrite prun_iw_app. rewrite H; auto. + intros H; rewrite prun_iw_app. rewrite H; auto. Qed. -Lemma prun_iw_app_Some p1: forall m1 old m2 p2, +Lemma prun_iw_app_Some p1 m1 old m2 p2: prun_iw p1 m1 old = Some m2 -> prun_iw (p1++p2) m1 old = prun_iw p2 m2 old. Proof. - intros m1 old m2 p2 H; rewrite prun_iw_app. rewrite H; auto. + intros H; rewrite prun_iw_app. rewrite H; auto. Qed. End PARALLEL. |