Computer-Assisted Program Reasoning Based on a Relational Semantics of Programs
Wolfgang Schreiner

TL;DR
This paper introduces a relational semantics-based approach to program reasoning, allowing inspection of program denotations to detect errors and understand behavior before formal verification, implemented in the RISC ProgramExplorer tool.
Contribution
It presents a novel method for analyzing program semantics through relational models, enabling pre-verification insight and error detection, integrated into an educational reasoning environment.
Findings
Effective detection of program errors prior to verification
Insight into program semantics through relational models
Implementation in the RISC ProgramExplorer tool
Abstract
We present an approach to program reasoning which inserts between a program and its verification conditions an additional layer, the denotation of the program expressed in a declarative form. The program is first translated into its denotation from which subsequently the verification conditions are generated. However, even before (and independently of) any verification attempt, one may investigate the denotation itself to get insight into the "semantic essence" of the program, in particular to see whether the denotation indeed gives reason to believe that the program has the expected behavior. Errors in the program and in the meta-information may thus be detected and fixed prior to actually performing the formal verification. More concretely, following the relational approach to program semantics, we model the effect of a program as a binary relation on program states. A formal calculus…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Logic, Reasoning, and Knowledge
