Title
Automating formal proofs for reactive systems
Abstract
Implementing systems in proof assistants like Coq and proving their correctness in full formal detail has consistently demonstrated promise for making extremely strong guarantees about critical software, ranging from compilers and operating systems to databases and web browsers. Unfortunately, these verifications demand such heroic manual proof effort, even for a single system, that the approach has not been widely adopted. We demonstrate a technique to eliminate the manual proof burden for verifying many properties within an entire class of applications, in our case reactive systems, while only expending effort comparable to the manual verification of a single system. A crucial insight of our approach is simultaneously designing both (1) a domain-specific language (DSL) for expressing reactive systems and their correctness properties and (2) proof automation which exploits the constrained language of both programs and properties to enable fully automatic, pushbutton verification. We apply this insight in a deeply embedded Coq DSL, dubbed Reflex, and illustrate Reflex's expressiveness by implementing and automatically verifying realistic systems including a modern web browser, an SSH server, and a web server. Using Reflex radically reduced the proof burden: in previous, similar versions of our benchmarks written in Coq by experts, proofs accounted for over 80% of the code base; our versions require no manual proofs.
Year
DOI
Venue
2014
10.1145/2594291.2594338
PLDI
Keywords
Field
DocType
proof assistant,manual proof,single system,reactive system,proof automation,modern web browser,proof burden,manual verification,embedded coq dsl,heroic manual proof effort,manual proof burden,formal proof,dependent types,domain specific languages,reactive systems
Domain-specific language,Programming language,Computer science,Correctness,Automation,Theoretical computer science,Compiler,Mathematical proof,Reactive system,Web server,Proof assistant
Conference
Volume
Issue
ISSN
49
6
0362-1340
Citations 
PageRank 
References 
5
0.45
19
Authors
5
Name
Order
Citations
PageRank
Daniel Ricketts1243.22
Valentin Robert2131.01
Dongseok Jang318810.05
Zachary Tatlock430721.68
Sorin Lerner598163.89