Axiomatic Synthesis of Computer Programs and Computability Theorems
Charlie Volkstorf

TL;DR
This paper introduces a formal program calculus using inference rules to generate and prove properties of programs, including fundamental results like the unsolvability of the halting problem, with applications across logic, number theory, and computability.
Contribution
It presents a novel axiomatic framework for synthesizing programs and proving their properties, formalizing key computability theorems and exploring extensions to various domains.
Findings
Formalized the halting problem as an unprovable program requirement.
Generated programs to determine number divisibility and employee hierarchies.
Proved the unsolvability of the halting problem within the calculus.
Abstract
We introduce a set of eight universal Rules of Inference by which computer programs with known properties (axioms) are transformed into new programs with known properties (theorems). Axioms are presented to formalize a segment of Number Theory, DataBase retrieval and Computability Theory. The resulting Program Calculus is used to generate programs to (1) Determine if one number is a factor of another. (2) List all employees who earn more than their manager. (3) List the set of programs that halt no on themselves, thus proving that it is recursively enumerable. The well-known fact that the set of programs that do not halt yes on themselves is not recursively enumerable is formalized as a program requirement that has no solution, an Incompleteness Axiom. Thus, any axioms (programs) which could be used to generate this program are themselves unattainable. Such proofs are presented to…
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
TopicsComputability, Logic, AI Algorithms · Logic, programming, and type systems · Logic, Reasoning, and Knowledge
