aboutsummaryrefslogtreecommitdiffstats
path: root/src/hls/GibleSeq.v
diff options
context:
space:
mode:
Diffstat (limited to 'src/hls/GibleSeq.v')
-rw-r--r--src/hls/GibleSeq.v15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/hls/GibleSeq.v b/src/hls/GibleSeq.v
index 9e2cfc5..2a04a55 100644
--- a/src/hls/GibleSeq.v
+++ b/src/hls/GibleSeq.v
@@ -84,6 +84,11 @@ Lemma step_instr_false :
~ @step_instr A B ge sp (Iterm i c) a (Iexec i0).
Proof. destruct a; unfold not; intros; inv H. Qed.
+Lemma step_list_false :
+ forall A B ge sp a i0 s,
+ ~ step_list (@step_instr A B ge) sp s a (Iexec i0).
+Proof. destruct a; unfold not; intros; inv H. Qed.
+
Lemma step_list2_false :
forall A B ge l0 sp i c i0',
~ step_list2 (@step_instr A B ge) sp (Iterm i c) l0 (Iexec i0').
@@ -125,11 +130,11 @@ Qed.
#[local] Notation "'mki'" := (mk_instr_state) (at level 1).
Lemma exec_rbexit_truthy :
- forall A B bb ge sp rs pr m rs' pr' m' pc',
- @SeqBB.step A B ge sp (Iexec (mki rs pr m)) bb (Iterm (mki rs' pr' m') (RBgoto pc')) ->
+ forall A B bb ge sp rs pr m rs' pr' m' cf,
+ @SeqBB.step A B ge sp (Iexec (mki rs pr m)) bb (Iterm (mki rs' pr' m') cf) ->
exists p b1 b2,
truthy pr' p
- /\ bb = b1 ++ (RBexit p (RBgoto pc')) :: b2
+ /\ bb = b1 ++ (RBexit p cf) :: b2
/\ step_list2 (Gible.step_instr ge) sp (Iexec (mki rs pr m)) b1 (Iexec (mki rs' pr' m')).
Proof.
induction bb; crush.
@@ -184,9 +189,9 @@ Qed.
Lemma append3 :
forall A B l0 l1 sp ge s1 s2 s3,
- step_list2 (step_instr ge) sp s1 l0 s2 ->
+ step_list2 (step_instr ge) sp s1 l0 (Iexec s2) ->
@SeqBB.step A B ge sp s1 (l0 ++ l1) s3 ->
- @SeqBB.step A B ge sp s2 l1 s3.
+ @SeqBB.step A B ge sp (Iexec s2) l1 s3.
Proof.
induction l0; crush. inv H. auto.
inv H0. inv H. assert (i1 = (Iexec state')) by (eapply exec_determ; eauto). subst. eauto.