Program logics for certified compilers /
Andrew W. Appel [and seven others].
- 1 online resource (x, 458 pages) : digital, PDF file(s).
Title from publisher's bibliographic system (viewed on 05 Oct 2015).
Generic separation logic -- Hoare logic -- Separation logic -- Soundness of Hoare logic -- Mechanized semantic library -- Separation algebras -- Operators on separation algebras -- First-order separation logic -- A little case study -- Covariant recursive predicates -- Share accounting -- Higher order separation logic -- Separation logic as a logic -- From separation algebras to separation logic -- Simplification by rewriting -- Introduction to step-indexing -- Predicate implication and subtyping -- General recursive predicates -- Case study: separation logic with first-class functions.
Separation logic is the twenty-first-century variant of Hoare logic that permits verification of pointer-manipulating programs. This book covers practical and theoretical aspects of separation logic at a level accessible to beginning graduate students interested in software verification. On the practical side it offers an introduction to verification in Hoare and separation logics, simple case studies for toy languages, and the Verifiable C program logic for the C programming language. On the theoretical side it presents separation algebras as models of separation logics; step-indexed models of higher-order logical features for higher-order programs; indirection theory for constructing step-indexed separation algebras; tree-shares as models for shared ownership; and the semantic construction (and soundness proof) of Verifiable C. In addition, the book covers several aspects of the CompCert verified C compiler, and its connection to foundationally verified software analysis tools. All constructions and proofs are made rigorous and accessible in the Coq developments of the open-source Verified Software Toolchain.
9781107256552 (ebook)
Computer software--Verification. Logic, Symbolic and mathematical. Compilers (Computer programs)