diff options
author | Yann Herklotz <git@yannherklotz.com> | 2020-11-18 13:03:25 +0000 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2020-11-18 13:03:36 +0000 |
commit | ac0c5651fb855d28eaeed5fb71dbf8f654944ae8 (patch) | |
tree | 64dd9046f3d895176fdfe8f5581dde6fd79ab530 /proof.tex | |
parent | dca94ceaf47afd42298fea1812c8549ca7f55462 (diff) | |
download | oopsla21_fvhls-ac0c5651fb855d28eaeed5fb71dbf8f654944ae8.tar.gz oopsla21_fvhls-ac0c5651fb855d28eaeed5fb71dbf8f654944ae8.zip |
Add proof and verilog
Diffstat (limited to 'proof.tex')
-rw-r--r-- | proof.tex | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -2,7 +2,7 @@ This section describes the main correctness theorem that was proven and the main ideas behind the proofs. -The main correctness theorem states that for all Clight source programs $C$, if the translation from the source to the target Verilog code succeeds, assuming that $C$ has correct observable behaviour $B$ when executed, then the target Verilog code will simulate with the same behaviour $B$. The following backwards simulation theorem describes this property. +The main correctness theorem is the exact same correctness theorem as stated in \compcert{}~\cite{leroy09_formal_verif_realis_compil} and states that for all Clight source programs $C$, if the translation from the source to the target Verilog code succeeds, assuming that $C$ has correct observable behaviour $B$ when executed, then the target Verilog code will simulate with the same behaviour $B$, where behaviour can either be convergent, divergent or ``going wrong'' and is associated with a trace $t$ of any external function calls. The following backwards simulation theorem describes this property, where $\Downarrow_{s}$ and $\Downarrow$ stand for simulation and execution respectively. \begin{equation*} \forall C, V, B \notin \texttt{Wrong},\, \yhfunction{HLS} (C) = \yhconstant{OK} (V) \land V \Downarrow_{s} B \implies C \Downarrow B. |