diff options
author | Yann Herklotz <git@yannherklotz.com> | 2021-05-21 18:28:58 +0100 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2021-05-21 18:28:58 +0100 |
commit | e1d0762daf0dd4d8f826decaa4c0498c75aa9119 (patch) | |
tree | 14f247eac741b3d7ba3ea6f1b0e7f213e7891162 /src/hls/RTLPargenproof.v | |
parent | 51d25ab7feeaca959d35fbd4fa905f8ce003e07b (diff) | |
download | vericert-e1d0762daf0dd4d8f826decaa4c0498c75aa9119.tar.gz vericert-e1d0762daf0dd4d8f826decaa4c0498c75aa9119.zip |
Finish top-level of proof
Diffstat (limited to 'src/hls/RTLPargenproof.v')
-rw-r--r-- | src/hls/RTLPargenproof.v | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/src/hls/RTLPargenproof.v b/src/hls/RTLPargenproof.v index 9cfee3a..119ed59 100644 --- a/src/hls/RTLPargenproof.v +++ b/src/hls/RTLPargenproof.v @@ -313,20 +313,29 @@ Proof. induction 2; try rewrite H; eauto with barg. Qed. induction 1; repeat semantics_simpl. - { destruct bb as [bbc bbe]; destruct x as [bbc' bbe']. - assert (bbe = bbe') by admit. - rewrite H3 in H5. - exploit abstract_execution_correct. eauto. apply ge_preserved_lem. - eauto. - eapply abstract_execution_correct in H5; eauto with rtlgp. - repeat econstructor; eauto with rtlgp. simplify. - exploit step_cf_instr_correct. eauto. - econstructor; eauto with rtlgp. + { destruct bb; destruct x. + assert (bb_exit = bb_exit0) by admit; subst. + + exploit abstract_execution_correct; try eassumption. eapply ge_preserved_lem. + econstructor; eauto. + inv_simp. destruct x. inv H7. + + exploit step_cf_instr_correct; try eassumption. econstructor; eauto. + inv_simp. + + econstructor. econstructor. eapply Smallstep.plus_one. econstructor. + eauto. eauto. simplify. eauto. eauto. + } + { unfold bind in *. inv TRANSL0. clear Learn. inv H0. destruct_match; crush. + inv H2. unfold transl_function in Heqr. destruct_match; crush. + inv Heqr. + repeat econstructor; eauto. + unfold bind in *. destruct_match; crush. } - { unfold bind in *. destruct_match; try discriminate. repeat semantics_simpl. inv TRANSL0. - repeat econstructor; eauto. } { inv TRANSL0. repeat econstructor; eauto using Events.external_call_symbols_preserved, symbols_preserved, senv_preserved, Events.E0_right. } - { inv STACKS. inv H2. repeat econstructor; eauto. } - Qed. + { inv STACKS. inv H2. repeat econstructor; eauto. + intros. admit. + } + Admitted. End CORRECTNESS. |