aboutsummaryrefslogtreecommitdiffstats
path: root/cfrontend
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2009-08-05 14:40:34 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2009-08-05 14:40:34 +0000
commitbdc7b815d033f84e5538a1c8db87d3c061b1ca4c (patch)
treebc3ca91f80b4193335cdcc07e7003c9527b48350 /cfrontend
parent213bf38509f4f92545d4c5749c25a55b9a9dda36 (diff)
downloadcompcert-kvx-bdc7b815d033f84e5538a1c8db87d3c061b1ca4c.tar.gz
compcert-kvx-bdc7b815d033f84e5538a1c8db87d3c061b1ca4c.zip
Added 'going wrong' behaviors
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1120 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'cfrontend')
-rw-r--r--cfrontend/Cminorgenproof.v2
-rw-r--r--cfrontend/Cshmgenproof3.v13
2 files changed, 8 insertions, 7 deletions
diff --git a/cfrontend/Cminorgenproof.v b/cfrontend/Cminorgenproof.v
index 1a68c103..984381a3 100644
--- a/cfrontend/Cminorgenproof.v
+++ b/cfrontend/Cminorgenproof.v
@@ -2610,7 +2610,7 @@ Qed.
Theorem transl_program_correct:
forall (beh: program_behavior),
- Csharpminor.exec_program prog beh ->
+ not_wrong beh -> Csharpminor.exec_program prog beh ->
Cminor.exec_program tprog beh.
Proof.
unfold Csharpminor.exec_program, Cminor.exec_program; intros.
diff --git a/cfrontend/Cshmgenproof3.v b/cfrontend/Cshmgenproof3.v
index 92a09562..6a8b676f 100644
--- a/cfrontend/Cshmgenproof3.v
+++ b/cfrontend/Cshmgenproof3.v
@@ -1657,7 +1657,7 @@ Qed.
Theorem transl_program_correct:
forall (beh: program_behavior),
- Csem.exec_program prog beh ->
+ not_wrong beh -> Csem.exec_program prog beh ->
Csharpminor.exec_program tprog beh.
Proof.
set (order := fun (S1 S2: Csem.state) => False).
@@ -1669,21 +1669,22 @@ Proof.
/\ match_states S2 T2).
intros. exploit transl_step; eauto. intros [T2 [A B]].
exists T2; split. auto. auto.
- intros. inv H.
+ intros. inv H0.
assert (exists t1, exists s1, Csem.step (Genv.globalenv prog) s t1 s1).
- inv H1. inv H0; inv H2. exists t1; exists s2; auto.
- destruct H as [t1 [s1 ST]].
+ inv H3. inv H2. inv H1. exists t1; exists s2; auto.
+ destruct H0 as [t1 [s1 ST]].
exploit transl_initial_states; eauto. intros [R [A B]].
exploit simulation_star_star; eauto. intros [R' [C D]].
econstructor; eauto. eapply transl_final_states; eauto.
assert (exists t1, exists s1, Csem.step (Genv.globalenv prog) s t1 s1).
- inv H1. exists t; exists s2; auto.
- destruct H as [t1 [s1 ST]].
+ inv H2. exists t; exists s2; auto.
+ destruct H0 as [t1 [s1 ST]].
exploit transl_initial_states; eauto. intros [R [A B]].
exploit simulation_star_forever; eauto.
unfold order; red. intros. constructor; intros. contradiction.
intro C.
econstructor; eauto.
+ contradiction.
Qed.
End CORRECTNESS.