-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpaper.tex
100 lines (82 loc) · 2.79 KB
/
paper.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
\documentclass [preprint]{sigplanconf}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{xspace}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{latexsym}
\usepackage{graphicx}
\usepackage[latin1]{inputenc}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}
\usepackage{algorithm}
\usepackage{url}
\usepackage{amsmath, amsthm, amssymb}
\usepackage{color}
\usepackage{fancyvrb}
\usepackage{mathpartir}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\usetikzlibrary{shapes.symbols}
\usetikzlibrary{shapes}
\newtheorem{theorem}{Theorem}
\theoremstyle{remark}
\newtheorem{example}{Example}
\theoremstyle{definition}
\newtheorem{definition}{Definition}
\newcommand{\civl}{{\sc civl}\xspace}
\newcommand{\boogie}{{\sc boogie}\xspace}
\newcommand{\zthree}{{\sc Z3}\xspace}
\newcommand{\casm}{{\sc casm}\xspace}
\newcommand{\why}{{\sc why}\xspace}
\makeatletter
\let\@copyrightspace\relax
\makeatother
\begin{document}
\special{papersize=8.5in,11in}
\setlength{\pdfpageheight}{\paperheight}
\setlength{\pdfpagewidth}{\paperwidth}
\conferenceinfo{CONF 'yy}{Month d--d, 20yy, City, ST, Country}
\copyrightyear{20yy}
\copyrightdata{978-1-nnnn-nnnn-n/yy/mm}
\doi{nnnnnnn.nnnnnnn}
\title{Automated and modular refinement reasoning for concurrent programs}
\authorinfo{}{}{}
\maketitle
\input{macros}
\begin{abstract}
We present \civl, a language and verifier for concurrent programs based on automated and modular refinement reasoning.
\civl supports reasoning about a concurrent program at many levels of abstraction.
Atomic actions in a high-level description are refined to fine-grain
and optimized lower-level implementations.
Modular specifications and proof annotations, such as location invariants and procedure pre- and post-conditions,
are specified separately, independently at each level in terms of the variables visible at that level.
We have implemented \civl as an extension to the \boogie language and verifier.
We have used \civl to refine a realistic concurrent garbage collection algorithm
from a simple high-level specification down to a highly-concurrent implementation described in terms of individual memory accesses.
\end{abstract}
\section{Introduction}
\label{sec:introduction}
\input{intro}
\section{Overview}
\label{sec:overview}
\input{examples}
\section{A concurrent programming language}
\label{sec:language}
\input{language}
\section{Verification}
\label{sec:verification}
\input{verification}
\section{A concurrent garbage collector}
\label{sec:gc}
\input{gc}
\input{gcverify}
\section{Related work}
\label{sec:related}
\input{related}
\bibliographystyle{abbrv}
\bibliography{paper}
\end{document}