aboutsummaryrefslogtreecommitdiffstats
path: root/backend/CSE3proof.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-13 11:12:00 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-13 11:12:00 +0100
commit085e4f45ebf81b7734efa70f018928ac49703f47 (patch)
treecec7f94e308c3cbe470c3a0dc930be2d7394fee7 /backend/CSE3proof.v
parent7bc6519d4f72f2b7f6cd26f177dec12e35a4b47f (diff)
downloadcompcert-kvx-085e4f45ebf81b7734efa70f018928ac49703f47.tar.gz
compcert-kvx-085e4f45ebf81b7734efa70f018928ac49703f47.zip
inductive
Diffstat (limited to 'backend/CSE3proof.v')
-rw-r--r--backend/CSE3proof.v13
1 files changed, 13 insertions, 0 deletions
diff --git a/backend/CSE3proof.v b/backend/CSE3proof.v
index bdf5ecd7..f63636ce 100644
--- a/backend/CSE3proof.v
+++ b/backend/CSE3proof.v
@@ -142,6 +142,19 @@ Proof.
exists x.
assumption.
Qed.
+Lemma transf_function_invariants_inductive:
+ forall f tf tenv, transf_function f = OK tf ->
+ type_function f = OK tenv ->
+ check_inductiveness (ctx:=(context_from_hints (snd (preanalysis tenv f))))
+ f tenv (fst (preanalysis tenv f)) = true.
+Proof.
+ unfold transf_function; destruct f; simpl; intros.
+ monadInv H.
+ replace x with tenv in * by congruence.
+ clear x.
+ destruct preanalysis as [invariants hints].
+ destruct check_inductiveness; trivial; discriminate.
+Qed.
Lemma find_function_translated:
forall ros rs fd,