diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-03-13 20:25:05 +0100 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-03-13 20:25:05 +0100 |
commit | 1e2fc0d53845b530e14a3c5293fbadfaf8285c35 (patch) | |
tree | 086fc460e98b5c36e466e9d626fe82fbc6336348 /backend/CSE3analysisproof.v | |
parent | 1378e28a9eb2ec73477bc592d586dd6fed8c3928 (diff) | |
download | compcert-kvx-1e2fc0d53845b530e14a3c5293fbadfaf8285c35.tar.gz compcert-kvx-1e2fc0d53845b530e14a3c5293fbadfaf8285c35.zip |
progress in proofs
Diffstat (limited to 'backend/CSE3analysisproof.v')
-rw-r--r-- | backend/CSE3analysisproof.v | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/backend/CSE3analysisproof.v b/backend/CSE3analysisproof.v index 94d3142f..7ddbaed8 100644 --- a/backend/CSE3analysisproof.v +++ b/backend/CSE3analysisproof.v @@ -378,18 +378,9 @@ Section SOUNDNESS. PSet.contains (eq_kill_reg ctx arg) j = true. Hypothesis ctx_kill_mem_has_depends_on_mem : - forall lhs op args j, - eq_catalog ctx j = Some {| eq_lhs := lhs; - eq_op := SOp op; - eq_args:= args |} -> - op_depends_on_memory op = true -> - PSet.contains (eq_kill_mem ctx tt) j = true. - - Hypothesis ctx_kill_mem_has_load : - forall lhs chunk addr args j, - eq_catalog ctx j = Some {| eq_lhs := lhs; - eq_op := SLoad chunk addr; - eq_args:= args |} -> + forall eq j, + eq_catalog ctx j = Some eq -> + eq_depends_on_mem eq = true -> PSet.contains (eq_kill_mem ctx tt) j = true. Theorem kill_reg_sound : @@ -529,17 +520,17 @@ Section SOUNDNESS. rewrite andb_true_iff in SUBTRACT. intuition. destruct (eq_op eq) as [op | chunk addr] eqn:OP. - - specialize ctx_kill_mem_has_depends_on_mem with (lhs := eq_lhs eq) (op := op) (args := eq_args eq) (j := i). + - specialize ctx_kill_mem_has_depends_on_mem with (eq0 := eq) (j := i). + unfold eq_depends_on_mem in ctx_kill_mem_has_depends_on_mem. + rewrite OP in ctx_kill_mem_has_depends_on_mem. rewrite (op_depends_on_memory_correct genv sp op) with (m2 := m). assumption. destruct (op_depends_on_memory op) in *; trivial. rewrite ctx_kill_mem_has_depends_on_mem in H0; trivial. discriminate H0. - rewrite <- OP. - rewrite CATALOG. - destruct eq; reflexivity. - - specialize ctx_kill_mem_has_load with (lhs := eq_lhs eq) (chunk := chunk) (addr := addr) (args := eq_args eq) (j := i). + - specialize ctx_kill_mem_has_depends_on_mem with (eq0 := eq) (j := i). destruct eq as [lhs op args]; simpl in *. + rewrite OP in ctx_kill_mem_has_depends_on_mem. rewrite negb_true_iff in H0. rewrite OP in CATALOG. intuition. |