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

Research output: Contribution to journalArticlepeer-review

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.

Original languageEnglish (US)
Article number7
JournalProceedings of the ACM on Programming Languages
Volume8
DOIs
StatePublished - Jan 5 2024

Keywords

  • abstract interpretation
  • correctness
  • incorrectness
  • nontermination
  • rogram logic
  • semantics
  • termination
  • transformer

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality

Fingerprint

Dive into the research topics of 'Calculational Design of [In]Correctness Transformational Program Logics by Abstract Interpretation'. Together they form a unique fingerprint.

Cite this