ID: cs/0003071

Axiomatic Synthesis of Computer Programs and Computability Theorems

March 22, 2000

View on ArXiv
Charlie Volkstorf
Computer Science
Logic in Computer Science

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 formally generate several additional theorems, including (4) The halting problem is unsolvable. Open problems and future research is discussed, including the use of temporary sort files, programs that calculate statistics (such as counts and sums), the synthesis of programs to solve other well-known problems from Number Theory, Logic, DataBase retrieval and Computability Theory, application to Programming Language Semantics, and the formalization of incompleteness results from Logic and the semantic paradoxes.

Similar papers 1

Program Synthesis from Axiomatic Proof of Correctness

January 7, 2015

86% Match
Charles Volkstorf
Logic in Computer Science

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. ...

Find SimilarView on arXiv

Axiomatic Theory of Algorithms: Computability and Decidability in Algorithmic Classes

September 8, 2004

86% Match
Mark Burgin
Logic

Axiomatic approach has demonstrated its power in mathematics. The main goal of this preprint is to show that axiomatic methods are also very efficient for computer science. It is possible to apply these methods to many problems in computer science. Here the main modes of computer functioning and program execution are described, formalized, and studied in an axiomatic context. The emphasis is on three principal modes: computation, decision, and acceptation. Now the prevalent m...

Find SimilarView on arXiv

Program Synthesis in Saturation

February 29, 2024

85% Match
Petra Hozzová, Laura Kovács, ... , Voronkov Andrei
Logic in Computer Science

We present an automated reasoning framework for synthesizing recursion-free programs using saturation-based theorem proving. Given a functional specification encoded as a first-order logical formula, we use a first-order theorem prover to both establish validity of this formula and discover program fragments satisfying the specification. As a result, when deriving a proof of program correctness, we also synthesize a program that is correct with respect to the given specificat...

Find SimilarView on arXiv

Programming for All: Understanding the Nature of Programs

November 9, 2021

85% Match
Andrej Brodnik, Andrew Csizmadia, Gerald Futschek, Lidija Kralj, Violetta Lonati, ... , Monga Mattia
Computers and Society

Computer programs are part of our daily life, we use them, we provide them with data, they support our decisions, they help us remember, they control machines, etc. Programs are made by people, but in most cases we are not their authors, so we have to decide if we can trust them. Programs enable computers and computer-controlled machines to behave in a large variety of ways. They bring the intrinsic power of computers to life. Programs have a variety of properties that all ci...

Find SimilarView on arXiv

A Programming Language Oriented Approach to Computability

February 10, 2014

85% Match
Aaron Karper
Programming Languages
Logic in Computer Science

The field of computability and complexity was, where computer science sprung from. Turing, Church, and Kleene all developed formalisms that demonstrated what they held "intuitively computable". The times change however and today's (aspiring) computer scientists are less proficient in building automata or composing functions and are much more native to the world of programming languages. This article will try to introduce typical concepts of computability theory and complexity...

Find SimilarView on arXiv

Recent Developments in Program Synthesis with Evolutionary Algorithms

August 27, 2021

85% Match
Dominik Sobania, Dirk Schweim, Franz Rothlauf
Neural and Evolutionary Comp...
Software Engineering

The automatic generation of computer programs is one of the main applications with practical relevance in the field of evolutionary computation. With program synthesis techniques not only software developers could be supported in their everyday work but even users without any programming knowledge could be empowered to automate repetitive tasks and implement their own new functionality. In recent years, many novel program synthesis approaches based on evolutionary algorithms ...

Find SimilarView on arXiv

Programs as the Language of Science

November 13, 2018

85% Match
Garry Pantelis
Logic in Computer Science

Currently it is widely accepted that the language of science is mathematics. This book explores an alternative idea where the future of science is based on the language of algorithms and programs. How such a language can actually be implemented in the sciences is outlined in some detail. We start by constructing a simple formal system where statements are represented as programs and inference is based on computability as opposed to the classical notion of truth value assignme...

Find SimilarView on arXiv

Proving Program Properties as First-Order Satisfiability

August 13, 2018

85% Match
Salvador Lucas
Logic in Computer Science

Program semantics can often be expressed as a (many-sorted) first-order theory S, and program properties as sentences $\varphi$ which are intended to hold in the canonical model of such a theory, which is often incomputable. Recently, we have shown that properties $\varphi$ expressed as the existential closure of a boolean combination of atoms can be disproved by just finding a model of S and the negation $\neg\varphi$ of $\varphi$. Furthermore, this idea works quite well in ...

Find SimilarView on arXiv

Theory of Programs

July 2, 2015

85% Match
Bertrand Meyer
Programming Languages
Software Engineering

A general theory of programs, programming and programming languages built up from a few concepts of elementary set theory. Derives, as theorems, properties treated as axioms by classic approaches to programming. Covers sequential and concurrent computation.

Find SimilarView on arXiv

From Philosophy to Program Size

March 27, 2003

84% Match
G. J. IBM Research Chaitin
History and Overview

Most work on computational complexity is concerned with time. However this course will try to show that program-size complexity, which measures algorithmic information, is of much greater philosophical significance. I'll discuss how one can use this complexity measure to study what can and cannot be achieved by formal axiomatic mathematical theories. In particular, I'll show (a) that there are natural information-theoretic constraints on formal axiomatic theories, and that pr...

Find SimilarView on arXiv