Litcius/Paper detail

Calculational Design of [In]Correctness Transformational Program Logics by Abstract Interpretation

Patrick Cousot

2024Proceedings of the ACM on Programming Languages10 citationsDOIOpen Access PDF

Abstract

We study transformational program logics for correctness and incorrectness that we extend to explicitly handle both termination and nontermination. We show that the logics are abstract interpretations of the right image transformer for a natural relational semantics covering both finite and infinite executions. This understanding of logics as abstractions of a semantics facilitates their comparisons through their respective abstractions of the semantics (rather that the much more difficult comparison through their formal proof systems). More importantly, the formalization provides a calculational method for constructively designing the sound and complete formal proof system by abstraction of the semantics. As an example, we extend Hoare logic to cover all possible behaviors of nondeterministic programs and design a new precondition (in)correctness logic.

Topics & Concepts

CorrectnessPredicate transformer semanticsComputer scienceProgramming languageHoare logicAbstract interpretationAxiomatic semanticsSeparation logicSemantics (computer science)Nondeterministic algorithmTheoretical computer scienceOperational semanticsDenotational semanticsLogic, programming, and type systemsFormal Methods in VerificationSecurity and Verification in Computing
Calculational Design of [In]Correctness Transformational Program Logics by Abstract Interpretation | Litcius