Skip to content
Snippets Groups Projects
Commit 23412a35 authored by Alban Gruin's avatar Alban Gruin
Browse files

correct_sb: cleanup proofs


Signed-off-by: default avatarAlban Gruin <alban.gruin@irit.fr>
parent c59de73d
Branches
Tags
No related merge requests found
...@@ -110,6 +110,7 @@ Section constrained. ...@@ -110,6 +110,7 @@ Section constrained.
Hypothesis Hl' : List.length tpost' = List.length tpost. Hypothesis Hl' : List.length tpost' = List.length tpost.
Hypothesis Htc : tc = cycle sbState t. Hypothesis Htc : tc = cycle sbState t.
Hypothesis Htc' : tc' = cycle sbState' t'. Hypothesis Htc' : tc' = cycle sbState' t'.
Hypothesis HconstT : is_constrained e t sbState = true.
(* Delve into tc, tc', cycle, cycle_elt, etc. (* Delve into tc, tc', cycle, cycle_elt, etc.
* Pretty specific to these constraints, do not use it outside this section. *) * Pretty specific to these constraints, do not use it outside this section. *)
...@@ -136,12 +137,11 @@ Section constrained. ...@@ -136,12 +137,11 @@ Section constrained.
(* If a constrained Sp can advance, an unconstrained Sp can advance. *) (* If a constrained Sp can advance, an unconstrained Sp can advance. *)
Theorem constrained_sp_can_advance_unconstrained_too : Theorem constrained_sp_can_advance_unconstrained_too :
e = (opc, (Sp, 0)) ->
(* t is constrained, t' is unconstrained *) (* t is constrained, t' is unconstrained *)
is_constrained e t sbState = true -> is_constrained e t' sbState' = false -> e = (opc, (Sp, 0)) -> is_constrained e t' sbState' = false ->
List.nth_error tc i = Some (opc, (Lsu, 0)) -> List.nth_error tc' i = Some (opc, (Lsu, 0)). List.nth_error tc i = Some (opc, (Lsu, 0)) -> List.nth_error tc' i = Some (opc, (Lsu, 0)).
Proof. Proof.
intros He HconstT HconstT'. intros He HconstT'.
rewrite He in HconstT'. rewrite He in HconstT'.
constraint_delve He. constraint_delve He.
...@@ -155,12 +155,11 @@ Section constrained. ...@@ -155,12 +155,11 @@ Section constrained.
(* If a constrained Lsu can advance, an unconstrained Lsu can advance. *) (* If a constrained Lsu can advance, an unconstrained Lsu can advance. *)
(* Load version *) (* Load version *)
Theorem constrained_lsu_load_advance_unconstrained_too : Theorem constrained_lsu_load_advance_unconstrained_too :
e = (Load, (Lsu, 0)) ->
(* t is constrained, t' is unconstrained *) (* t is constrained, t' is unconstrained *)
is_constrained e t sbState = true -> is_constrained e t' sbState' = false -> e = (Load, (Lsu, 0)) -> is_constrained e t' sbState' = false ->
List.nth_error tc i = Some (Load, (Lu, 0)) -> List.nth_error tc' i = Some (Load, (Lu, 0)). List.nth_error tc i = Some (Load, (Lu, 0)) -> List.nth_error tc' i = Some (Load, (Lu, 0)).
Proof. Proof.
intros He Hconst. intro He.
rewrite He. rewrite He.
unfold is_constrained. unfold is_constrained.
...@@ -181,12 +180,11 @@ Section constrained. ...@@ -181,12 +180,11 @@ Section constrained.
(* Store version *) (* Store version *)
Theorem constrained_lsu_store_advance_unconstrained_too : Theorem constrained_lsu_store_advance_unconstrained_too :
e = (Store, (Lsu, 0)) ->
(* t is constrained, t' is unconstrained *) (* t is constrained, t' is unconstrained *)
is_constrained e t sbState = true -> is_constrained e t' sbState' = false -> e = (Store, (Lsu, 0)) -> is_constrained e t' sbState' = false ->
List.nth_error tc i = Some (Store, (Su, 0)) -> List.nth_error tc' i = Some (Store, (Su, 0)). List.nth_error tc i = Some (Store, (Su, 0)) -> List.nth_error tc' i = Some (Store, (Su, 0)).
Proof. Proof.
intros He HconstT HconstT'. intros He HconstT'.
rewrite He in HconstT'. rewrite He in HconstT'.
constraint_delve He. constraint_delve He.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment