Program Synthesis from Axiomatic Proof of Correctness
Charles Volkstorf

TL;DR
This paper presents a formal method for program synthesis by axiomatic proof of correctness, deriving programs from specifications using axioms and inference rules, with backward proof strategies and simple prototype implementation.
Contribution
It introduces an axiomatic framework for program synthesis that systematically derives programs from specifications using inference rules and backward proof techniques.
Findings
Successfully derived programs from specifications using axioms and inference rules
Implemented a prototype with table look-up functions to simulate proof complexities
Validated approach with examples like prime number and factorization programs
Abstract
Program Synthesis is the mapping of a specification of what a computer program is supposed to do, into a computer program that does what the specification says to do. This is equivalent to constructing any computer program and a sound proof that it meets the given specification. We axiomatically prove statements of the form: program PROG meets specification SPEC. We derive 7 axioms from the definition of the PHP programming language in which the programs are to be written. For each primitive function or process described, we write a program that uses only that feature (function or process), and we have an axiom that this program meets the specification described. Generic ways to alter or combine programs, that meet known specifications, into new programs that meet known specifications, are our 7 rules of inference. To efficiently prove statements that some program meets a given…
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 · Software Engineering Research · Software Testing and Debugging Techniques
