An Expressive Trace Logic for Recursive Programs
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.
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