From 0e1a55f98dd47bb65201070722442e9f3e9f16a1 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Wed, 8 Apr 2020 19:12:59 +0200 Subject: progress in proofs --- backend/Profilingproof.v | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'backend/Profilingproof.v') diff --git a/backend/Profilingproof.v b/backend/Profilingproof.v index 630fecbc..202e451c 100644 --- a/backend/Profilingproof.v +++ b/backend/Profilingproof.v @@ -187,7 +187,14 @@ Inductive match_states: RTL.state -> RTL.state -> Prop := match_states (Returnstate stk v m) (Returnstate stk' v m). -Hint Resolve symbols_preserved : profiling. +Lemma funsig_preserved: + forall fd, + funsig (transf_fundef fd) = funsig fd. +Proof. + destruct fd; simpl; trivial. +Qed. + +Hint Resolve symbols_preserved funsig_preserved : profiling. Lemma step_simulation: forall s1 t s2 (STEP : step ge s1 t s2) @@ -226,8 +233,21 @@ Proof. rewrite eval_addressing_preserved with (ge1:=ge). all: eauto with profiling. + constructor; auto. - - admit. - - admit. + - econstructor; split. + + apply plus_one. apply exec_Istore with (chunk:=chunk) (src := src) + (addr:=addr) (args:=args) (a:=a). + erewrite transf_function_at; eauto. apply I. + rewrite eval_addressing_preserved with (ge1:=ge). + all: eauto with profiling. + + constructor; auto. + - econstructor; split. + + apply plus_one. apply exec_Icall with (sig:=(funsig fd)) (ros:=ros). + erewrite transf_function_at; eauto. apply I. + apply find_function_translated with (fd := fd). + all: eauto with profiling. + + constructor; auto. + constructor; auto. + constructor. - admit. - admit. - admit. -- cgit