diff options
author | John Wickerson <j.wickerson@imperial.ac.uk> | 2020-11-18 16:19:20 +0000 |
---|---|---|
committer | overleaf <overleaf@localhost> | 2020-11-18 16:19:49 +0000 |
commit | b5fafbdc36a7768002a05278308dc48cfca716e0 (patch) | |
tree | bc7f6e1877e86797bcec1de07c8425d2548ee635 /proof.tex | |
parent | a72d9e55c66d3d44b8a6c31e0941773600bd0fe5 (diff) | |
download | oopsla21_fvhls-b5fafbdc36a7768002a05278308dc48cfca716e0.tar.gz oopsla21_fvhls-b5fafbdc36a7768002a05278308dc48cfca716e0.zip |
Update on Overleaf.
Diffstat (limited to 'proof.tex')
-rw-r--r-- | proof.tex | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -1,8 +1,10 @@ \section{Proof} +\label{sec:proof} +\NR{Now that we have adapted the Verilog semantics to the CompCert model, we are in a position to formally prove the correctness of our C to Verilog compilation.} This section describes the main correctness theorem that was proven and the main ideas behind the proofs. -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. +The main correctness theorem is the exact same correctness theorem as stated in \compcert{}~\cite{leroy09_formal_verif_realis_compil} which 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. |