summaryrefslogtreecommitdiffstats
path: root/main.tex
diff options
context:
space:
mode:
authorJohn Wickerson <j.wickerson@imperial.ac.uk>2020-06-04 15:40:46 +0000
committeroverleaf <overleaf@localhost>2020-06-04 21:04:05 +0000
commitc3f04aee8d41069aded014f3e47e50037e03d4ce (patch)
tree5dbedca78cba5eaf7f2e7837786dfbd0fe3147f6 /main.tex
parent0545f89f3bef9c17fa1f24c3790850c76981c238 (diff)
downloadoopsla21_fvhls-c3f04aee8d41069aded014f3e47e50037e03d4ce.tar.gz
oopsla21_fvhls-c3f04aee8d41069aded014f3e47e50037e03d4ce.zip
Update on Overleaf.
Diffstat (limited to 'main.tex')
-rw-r--r--main.tex33
1 files changed, 26 insertions, 7 deletions
diff --git a/main.tex b/main.tex
index 9547da2..4e4675e 100644
--- a/main.tex
+++ b/main.tex
@@ -18,8 +18,7 @@
\acmNumber{CONF} % CONF = POPL or ICFP or OOPSLA
\acmArticle{1}
\acmYear{2018}
-\acmMonth{1}
-\acmDOI{} % \acmDOI{10.1145/nnnnnnn.nnnnnnn}
+\acmMonth{1}\acmDOI{} % \acmDOI{10.1145/nnnnnnn.nnnnnnn};'--
\startPage{1}
%% Copyright information
@@ -52,6 +51,13 @@
\usepackage{mathpartir}
\usepackage{subcaption}
+\newif\ifCOMMENTS
+\COMMENTStrue
+\newcommand{\Comment}[3]{\ifCOMMENTS\textcolor{#1}{{\bf [\![#2:} #3{\bf ]\!]}}\fi}
+\newcommand\JW[1]{\Comment{red!75!black}{JW}{#1}}
+\newcommand\YH[1]{\Comment{green!50!black}{YH}{#1}}
+\newcommand\JP[1]{\Comment{blue!50!black}{JP}{#1}}
+
\begin{document}
%% Title information
@@ -97,7 +103,7 @@
\author{James Pollard}
%\authornote{with author1 note} %% \authornote is optional;
%% can be repeated if necessary
-\orcid{0000-0000-0000-0000} %% \orcid is optional
+\orcid{0000-0003-1404-1527} %% \orcid is optional
\affiliation{
% \position{PhD Student}
% \department{Electrical and Electronic Engineering} %% \department is recommended
@@ -196,11 +202,24 @@ Definition of state.
s = (\Gamma, \Delta)
\end{equation}
-Definition of stmntrun.
+Definition of stmntrun. \JW{stmtntrun has four parameters, and if I read the rules correctly, it looks like the fourth parameter is uniquely determined by the first three. So, you could consider presenting stmntrun simply as a recursive definition, e.g. `stmntrun f s Vskip = s', `stmntrun f s0 (Vseq st1 st2) = stmntrun f (stmntrun f s0 st1) st2', and so on. That might (\emph{might}) be easier to read than the inference rule format.}
+
+\YH{It works well for Seq and Skip, but I think that CaseMatch and CaseNoMatch, or even if statements will be a bit clunky? We would have to use case statements in the function to do different things
+based on what they evaluate to. For case I think that would end up being a three way choice. I'll try it out though and see how nice it is.}
+
+\JP{I suppose this would essentially be an ``interpreter'' style semantics but we can prove equivalence pretty easily.}
+
+\YH{To add to that, I used to have both in the Coq code, but commented the recursive definition out, and now only have the inductive definition, which is basically what I copy pasted here.} \JW{Fair enough. Whatever you think ends up being the easiest to read and understand, really. There's something to be said for staying close to the Coq definitions anyway.}
+
+\begin{align}
+ \text{stmntrun}\ f\ s\ \mathtt{Vskip} &= s \\
+ \text{stmntrun}\ f\ s_0\ (\mathtt{Vseq}\ \mathit{st}_1\ \mathit{st}_2) &= \text{stmntrun}\ f\
+ (\text{stmntrun}\ f\ s_0\ \mathit{st}_1)\ \mathit{st}_2
+\end{align}
\begin{equation}
\label{eq:1}
- \inferrule[Skip]{ }{\text{stmntrun}\ f\ s\ \mathtt{Vskip}\ s}
+ \inferrule[Skip]{ }{\text{stmntrun}\ f\ s\ \mathtt{Vskip} = s}
\end{equation}
\begin{equation}
@@ -230,7 +249,7 @@ Definition of stmntrun.
\begin{equation}
\label{eq:7}
- \inferrule[CaseDefault]{\text{exprrun}\ f\ \Gamma_{0}\ e\ ve \\ \text{stmntrun}\ f\ s_{0}\ st\ s_{1}}{\text{stmntrun}\ f\ s_{0}\ (\mathtt{Vcase}\ e\ []\ (\mathtt{Some}\ st))\ s_{1}}
+ \inferrule[CaseDefault]{\text{stmntrun}\ f\ s_{0}\ st\ s_{1}}{\text{stmntrun}\ f\ s_{0}\ (\mathtt{Vcase}\ e\ []\ (\mathtt{Some}\ st))\ s_{1}}
\end{equation}
\begin{equation}
@@ -240,7 +259,7 @@ Definition of stmntrun.
\begin{equation}
\label{eq:9}
- \inferrule[Nonblocking]{\text{name}\ \mathit{lhs} = \mathtt{OK}\ n \\ \text{exprrun}\ f\ \Gamma\ \mathit{rhs}\ v_{\mathit{rhs}}}{\text{stmntrun}\ f\ (\Gamma, \Delta)\ (\mathtt{Vnonblock}\ \mathit{lhs}\ \mathit{rhs})\ (\Gamma, \Delta ! n \rightarrow v_{\mathit{rhs}})}
+ \inferrule[Nonblocking]{\text{name}\ \mathit{lhs} = \mathtt{OK}\ n \\ \text{exprrun}\ f\ \Gamma\ \mathit{rhs}\ v_{\mathit{rhs}}}{\text{stmntrun}\ f\ (\Gamma, \Delta)\ (\mathtt{Vnonblock}\ \mathit{lhs}\ \mathit{rhs}) = (\Gamma, \Delta ! n \rightarrow v_{\mathit{rhs}})}
\end{equation}
%% Acknowledgments