aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Duplicateproof.v
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2019-09-03 17:34:02 +0200
committerCyril SIX <cyril.six@kalray.eu>2019-09-03 17:34:02 +0200
commit863b65cc49fb49ad203694cac36e3cbd4f45dab7 (patch)
tree30a0eaafba7086be2e5eb3cab1038c7b705e11fc /backend/Duplicateproof.v
parent2bf7b92601fd6f33f93609c85a79192f821e6637 (diff)
downloadcompcert-kvx-863b65cc49fb49ad203694cac36e3cbd4f45dab7.tar.gz
compcert-kvx-863b65cc49fb49ad203694cac36e3cbd4f45dab7.zip
Stubs for Duplicate pass
Diffstat (limited to 'backend/Duplicateproof.v')
-rw-r--r--backend/Duplicateproof.v29
1 files changed, 29 insertions, 0 deletions
diff --git a/backend/Duplicateproof.v b/backend/Duplicateproof.v
new file mode 100644
index 00000000..5cf6b368
--- /dev/null
+++ b/backend/Duplicateproof.v
@@ -0,0 +1,29 @@
+(** Correctness proof for code duplication *)
+Require Import AST Linking Errors.
+Require Import RTL Globalenvs Smallstep.
+Require Import Duplicate.
+
+Definition match_prog (p tp: program) :=
+ match_program (fun _ f tf => transf_fundef f = OK tf) eq p tp.
+
+Lemma transf_program_match:
+ forall prog tprog, transf_program prog = OK tprog -> match_prog prog tprog.
+Proof.
+ intros. eapply match_transform_partial_program_contextual; eauto.
+Qed.
+
+Section PRESERVATION.
+
+Variable prog: program.
+Variable tprog: program.
+Hypothesis TRANSL: match_prog prog tprog.
+Let ge := Genv.globalenv prog.
+Let tge := Genv.globalenv tprog.
+
+Theorem transf_program_correct:
+ forward_simulation (RTL.semantics prog) (RTL.semantics tprog).
+Proof.
+ (* TODO *)
+Admitted.
+
+End PRESERVATION. \ No newline at end of file