English

An Expressive Trace Logic for Recursive Programs

Logic in Computer Science 2024-11-21 v1 Software Engineering

Abstract

We present an expressive logic over trace formulas, based on binary state predicates, chop, and least fixed-points, for precise specification of programs with recursive procedures. Both, programs and trace formulas, are equipped with a direct-style, fully compositional, denotational semantics that on programs coincides with the standard SOS of recursive programs. We design a compositional proof calculus for proving finite-trace program properties, and prove soundness as well as (relative) completeness. We show that each program can be mapped to a semantics-preserving trace formula and, vice versa, each trace formula can be mapped to a canonical program over slightly extended programs, resulting in a Galois connection between programs and formulas. Our results shed light on the correspondence between programming constructs and logical connectives.

Keywords

Cite

@article{arxiv.2411.13125,
  title  = {An Expressive Trace Logic for Recursive Programs},
  author = {Dilian Gurov and Reiner Hähnle},
  journal= {arXiv preprint arXiv:2411.13125},
  year   = {2024}
}

Comments

22 pages, 6 figures