aboutsummaryrefslogtreecommitdiffstats
path: root/src/hls/GiblePargenproof.v
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2023-05-12 18:36:34 +0100
committerYann Herklotz <git@yannherklotz.com>2023-05-12 18:36:34 +0100
commit17f479648a2912e6a7c8c20664645f22a75cf1b8 (patch)
tree26155bea69eb46b37856d5f66158045afc1cf3f5 /src/hls/GiblePargenproof.v
parentc1778dc2f1a5de755b32f8c4655a718c109c6489 (diff)
downloadvericert-17f479648a2912e6a7c8c20664645f22a75cf1b8.tar.gz
vericert-17f479648a2912e6a7c8c20664645f22a75cf1b8.zip
Rename backwards proof
Diffstat (limited to 'src/hls/GiblePargenproof.v')
-rw-r--r--src/hls/GiblePargenproof.v34
1 files changed, 4 insertions, 30 deletions
diff --git a/src/hls/GiblePargenproof.v b/src/hls/GiblePargenproof.v
index 9e58e03..010bc0a 100644
--- a/src/hls/GiblePargenproof.v
+++ b/src/hls/GiblePargenproof.v
@@ -35,6 +35,7 @@ Require Import vericert.hls.Predicate.
Require Import vericert.hls.Abstr.
Require Import vericert.common.Monad.
Require Import vericert.hls.GiblePargenproofForward.
+Require Import vericert.hls.GiblePargenproofBackward.
Module Import OptionExtra := MonadExtra(Option).
@@ -169,9 +170,10 @@ Section CORRECTNESS.
Lemma schedule_oracle_nil2:
schedule_oracle nil nil = true.
Proof using .
- unfold schedule_oracle, check_control_flow_instr.
+ unfold schedule_oracle, check_control_flow_instr, check.
simplify; repeat destruct_match; crush.
- Admitted.
+ now rewrite ! check_mutexcl_singleton.
+ Qed.
Lemma eval_op_eq:
forall (sp0 : Values.val) (op : Op.operation) (vl : list Values.val) m,
@@ -206,35 +208,7 @@ RTLBlock to abstract translation
Correctness of translation from RTLBlock to the abstract interpretation
language.
-|*)
-
- Lemma abstr_seq_reverse_correct :
- forall sp x i i' ti cf x',
- abstract_sequence x = Some x' ->
- sem (mk_ctx i sp ge) x' (i', (Some cf)) ->
- state_lessdef i ti ->
- exists ti', SeqBB.step ge sp (Iexec ti) x (Iterm ti' cf)
- /\ state_lessdef i' ti'.
- Proof.
-
-(*|
-Proof Sketch:
-
-We do an induction over the list of instructions ``x``. This is trivial for the
-empty case and then for the inductive case we know that there exists an
-execution that matches the abstract execution, so we need to know that adding
-another instructions to it will still mean that the execution will result in the
-same value.
-
-Arithmetic operations will be a problem because we will have to show that these
-can be executed. However, this should mostly be a problem in the abstract state
-comparison, because there two abstract states can be equal without one being
-evaluable.
-|*)
- Admitted.
-
-(*|
This is the top-level lemma which uses the following proofs to complete the
square: