Proceedings of the 9th ACM SIGPLAN International Conference on Certified Programs and Proofs 2020
DOI: 10.1145/3372885.3373812
|View full text |Cite
|
Sign up to set email alerts
|

FreeSpec: specifying, verifying, and executing impure computations in Coq

Abstract: FreeSpec is a framework for the Coq theorem prover which allows for specifying and verifying complex systems as hierarchies of components verified both in isolation and in composition. While FreeSpec was originally introduced for reasoning about hardware architectures, in this article we propose a novel iteration of FreeSpec formalism specifically designed to write certified programs and libraries. Then, we present in depth how we use this formalism to verify a static files webserver. We use this opportunity t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
4
0

Year Published

2021
2021
2023
2023

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 9 publications
(4 citation statements)
references
References 32 publications
0
4
0
Order By: Relevance
“…These operations involve side effects and, naturally, have no easy correspondence in Coq. Fortunately, dealing with side-effects in pure functional settings is a well-studied problem [7,11,5] and there are different solutions, including Coq libraries, that we could adapt to translate effectful SML code.…”
Section: Discussionmentioning
confidence: 99%
“…These operations involve side effects and, naturally, have no easy correspondence in Coq. Fortunately, dealing with side-effects in pure functional settings is a well-studied problem [7,11,5] and there are different solutions, including Coq libraries, that we could adapt to translate effectful SML code.…”
Section: Discussionmentioning
confidence: 99%
“…Interaction Trees. Interaction trees have been used to verify compilation of an imperative programming language [74], networked servers [40,48], an HTTP key-value server [76], and transactional objects [47]. The Zar system presents a novel application of interaction trees to verified executable semantics of probabilistic programs, and employs a novel domain-theoretic framework for reasoning about them (Section 3.4).…”
Section: Related Workmentioning
confidence: 99%
“…We also favor the computational encoding of semantics. Similar to the recent related works on mechanization of operational semantics [23][24][25], we encode the semantics as monadic interpreters. This allows us to extract [26] the semantics as a functional program and run it.…”
Section: Overview Of Our Librarymentioning
confidence: 99%