diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-11-26 16:24:01 +0100 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-11-26 16:24:01 +0100 |
commit | 3c670f954dc470333e94932279e02e6940ff9f15 (patch) | |
tree | 2cbe571ba6e62d3517551ff18d8fb0ce44591cfe /backend/CSE3analysisproof.v | |
parent | 01f0108df437df0792ac560f630e7969be76b60b (diff) | |
download | compcert-kvx-3c670f954dc470333e94932279e02e6940ff9f15.tar.gz compcert-kvx-3c670f954dc470333e94932279e02e6940ff9f15.zip |
is_condition_present_sound
Diffstat (limited to 'backend/CSE3analysisproof.v')
-rw-r--r-- | backend/CSE3analysisproof.v | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/backend/CSE3analysisproof.v b/backend/CSE3analysisproof.v index 228fec93..7e456748 100644 --- a/backend/CSE3analysisproof.v +++ b/backend/CSE3analysisproof.v @@ -831,6 +831,22 @@ Section SOUNDNESS. Hint Resolve eq_find_sound : cse3. + Theorem is_condition_present_sound : + forall node rel cond args rs m + (REL : sem_rel rel rs m) + (COND : (is_condition_present (ctx := ctx) node rel cond args) = true), + (eval_condition cond (rs ## args) m) = Some true. + Proof. + unfold sem_rel, is_condition_present. + intros. + destruct eq_find as [i |] eqn:FIND. + 2: discriminate. + pose proof (eq_find_sound node (Cond cond args) i FIND) as CATALOG. + exact (REL i (Cond cond args) COND CATALOG). + Qed. + + Hint Resolve is_condition_present_sound : cse3. + Theorem rhs_find_sound: forall no sop args rel src rs m, sem_rel rel rs m -> |