Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming 2016
DOI: 10.1145/2951913.2951940
|View full text |Cite
|
Sign up to set email alerts
|

Refinement through restraint: bringing down the cost of verification

Abstract: We present a framework aimed at significantly reducing the cost of verifying certain classes of systems software, such as file systems. Our framework allows for equational reasoning about systems code written in our new language, Cogent. Cogent is a restricted, polymorphic, higher-order, and purely functional language with linear types and without the need for a trusted runtime or garbage collector. Linear types allow us to assign two semantics to the language: one imperative, suitable for efficient C code gen… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
13
0

Year Published

2017
2017
2024
2024

Publication Types

Select...
5
4

Relationship

2
7

Authors

Journals

citations
Cited by 19 publications
(13 citation statements)
references
References 32 publications
0
13
0
Order By: Relevance
“…The Cogent (O'Connor et al, 2016) language has a proof-producing compiler down to C, which can be further compiled with CompCert, or via translation validation (Sewell et al, 2013). It is a pure, functional and total language, aimed at reasoning for systems programming.…”
Section: Discussion Of Related Workmentioning
confidence: 99%
“…The Cogent (O'Connor et al, 2016) language has a proof-producing compiler down to C, which can be further compiled with CompCert, or via translation validation (Sewell et al, 2013). It is a pure, functional and total language, aimed at reasoning for systems programming.…”
Section: Discussion Of Related Workmentioning
confidence: 99%
“…There are many large and successful verification projects that demonstrate that functional languages are well suited for verification. In contrast to our work, these projects require either re-implementing the code in a new functional language, as is the case for Cogent (O'Connor et al, 2016;Amani et al, 2016) and F* (Swamy et al, 2016); re-implementing the code in a proof assistant, such as HOL4 in the case of CakeML Kumar et al, 2014); or taking an SMT solver-based approach, as found in Leon (Blanc et al, 2013). The CakeML and Cogent projects have a different focus than ours, and they provide a higher assurance in their verified code.…”
Section: Translating Other Higher Order Functional Languagesmentioning
confidence: 97%
“…Our work is similar to verify a file system (a similar system API like open, read and write etc.) Pioneering work in file system direction includes FSCQ [30], COGENT [31, 32] and Flashix [33, 34], which are all successful engineering achievements. However, almost all of these jobs need a developer to construct a proof of implementation correctness using theorem tools such as Coq or Isabelle.…”
Section: Related Workmentioning
confidence: 99%