2018
DOI: 10.1007/s10817-018-9457-5
|View full text |Cite
|
Sign up to set email alerts
|

VST-Floyd: A Separation Logic Tool to Verify Correctness of C Programs

Abstract: The Verified Software Toolchain builds foundational machine-checked proofs of the functional correctness of C programs. Its program logic, Verifiable C, is a shallowly embedded higher-order separation Hoare logic which is proved sound in Coq with respect to the operational semantics of CompCert C light. This paper introduces VST-Floyd, a verification assistant which offers a set of semiautomatic tactics helping users build functional correctness proofs for C programs using Verifiable C.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
47
0

Year Published

2019
2019
2020
2020

Publication Types

Select...
5
2
1

Relationship

1
7

Authors

Journals

citations
Cited by 78 publications
(52 citation statements)
references
References 28 publications
1
47
0
Order By: Relevance
“…Embedding ITrees in VST VST is a framework for proving separation logic specifications of C programs, based on the C semantics of the CompCert compiler. Its separation logic comes with a proof automation system, Floyd, that supplies tactics for symbolically executing a program while maintaining its pre-and postcondition [Cao et al 2018]. To support reasoning about external behavior in general-and the swap server's invocations of OS/network primitives in particular-we extend VST's logic with two abstract predicates [Penninckx et al 2015]; these are separation logic predicates that behave like resources but do not have a footprint in concrete memory.…”
Section: Verificationmentioning
confidence: 99%
“…Embedding ITrees in VST VST is a framework for proving separation logic specifications of C programs, based on the C semantics of the CompCert compiler. Its separation logic comes with a proof automation system, Floyd, that supplies tactics for symbolically executing a program while maintaining its pre-and postcondition [Cao et al 2018]. To support reasoning about external behavior in general-and the swap server's invocations of OS/network primitives in particular-we extend VST's logic with two abstract predicates [Penninckx et al 2015]; these are separation logic predicates that behave like resources but do not have a footprint in concrete memory.…”
Section: Verificationmentioning
confidence: 99%
“…Kästner et al (2017) described many extensions and enhancements to the basic compilation toolchain of CompCert, e.g., translation validation of the process of linking machine code to produce object files and executable files. Cao et al (2018) presented a CompCertbased C program verification environment called VST-Floyd in Coq based on separation logic, simplifying the process of specifying and verifying properties that hold down to machine code.…”
Section: Certified Compilersmentioning
confidence: 99%
“…Various successful deep embeddings of Floyd-Hoare style reasoning into Coq have been demonstrated viable for the sake of reasoning about low-level programs using different versions of Separation Logic (Chlipala et al, 2009;Chlipala, 2011;Chlipala, 2013b;Chen et al, 2015;Cao et al, 2018). All those efforts came supplied with tailored libraries of domain-specific tactics, with those tactics automatically applying Separation Logic's Frame rule and thus progressively reducing the size of the verification goal.…”
Section: Proof Organization and Scalabilitymentioning
confidence: 99%
“…C Semantics. There has been a considerable body of work on formal semantics for the C language, including several large projects that aimed to formalize substantial subsets of C [17,20,30,37,41,44], and projects that focused on specific aspects like its memory model [10,13,27,28,31,38,40,41], weak memory concurrency [4,36,43], non-local control flow [35], verified compilation [37,48], etc.…”
Section: Related Workmentioning
confidence: 99%