An axiomatic basis for computer programming

  title={An axiomatic basis for computer programming},
  author={Charles Antony Richard Hoare},
  journal={Commun. ACM},
  • C. Hoare
  • Published 1969
  • Computer Science
  • Commun. ACM
In this paper an attempt is made to explore the logical foundations of computer programming by use of techniques which were first applied in the study of geometry and have later been extended to other branches of mathematics. This involves the elucidation of sets of axioms and rules of inference which can be used in proofs of the properties of computer programs. Examples are given of such axioms and rules, and a formal proof of a simple theorem is displayed. Finally, it is argued that important… Expand
The Mathematical Construction of a Program
  • J. Abrial
  • Computer Science
  • Sci. Comput. Program.
  • 1984
In order to test the generality of the proposed approach, the Proof Checker is used to check proofs written within theories such as PropositionalCalculus and Predicate Calculus and Set Theory. Expand
A system that looks for axioms
In this paper we shall describe a formal system which enables us to prove theorems within propositional calculus, logic of quantifiers and first order theories, including theorems containingExpand
Theories of Programming and Formal Methods
The purpose is to see how various mechanical computation paradigms can be given a unified mathematical theory and to study how these computations can be specified and then developed by means of refinements and proofs. Expand
RETRPROV A system that looks for axioms
A formal system is described which is able to consider expressions which can become theorems by looking for a special set of assumptions and then adding it to the standard set of axioms, and using this system the correctness and equivalence of programs can be determined. Expand
Using Computer Algebra for Automated Reasoning in the Theorema System
While most of the Automated Reasoning systems (see e.g. [8]) are based on purely logical approaches, many researchers started during the last decade to believe that solving non-trivial problems isExpand
An axiomatic approach for solving geometric problems symbolically
A rewrite-rule mechanism operating on geometric predicates that has the potential to be used in many practical applications in interactive Computer Aided Design and adapted the Knuth-Bendix completion algorithm to the specific requirements of the geometric problem. Expand
The challenge of computer mathematics
  • H. Barendregt, F. Wiedijk
  • Mathematics, Medicine
  • Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences
  • 2005
Progress in the foundations of mathematics has made it possible to formulate all thinkable mathematical concepts, algorithms and proofs in one language and in an impeccable way, and interactive computer systems for a full integration of defining, computing and proving are based on this. Expand
Iteration Theories: The Equational Logic of Iterative Processes
Written both for graduate students and research scientists in theoretical computer science and mathematics, this book provides a detailed investigation of the properties of the fixed point orExpand
Functional Analysis of Programs.
Analysis of computer programs using a semantics that combines features of the operational and denotational methods is described, a program calculus that allows program meaning to be obtained from program syntax, then compared to a desired meaning by a simple set-theoretic methods. Expand
Calculation of Invariants Assertions
A series of theorems are presented that allow to establish strategies for the calculation of invariant assertions, such as the Dijkstra's H k ( Post ) , or the weakest precondition of the loop. Expand


Proving Properties of Programs by Structural Induction
Some syntactic extensions to Landin's functional programming language ISWIM are suggested which make it easier to program the manipulation of data structures and to develop proofs about such programs. Expand
Proof of Algorithms by General Snapshots
It is shown by an elementary example how this possibility may be used to prove the correctness of an algorithm written in ALGOL 60, i.e. expressions of static conditions existing whenever the execution of the algorithm reaches particular points. Expand
Numerical analysis as an independent science
The paper describes how a number of well-known mathematical concepts ought to be modified in order to make sense within the scope of numerical analysis. It is also shown how obvious difficulties canExpand
Sets and other types
An article clamp for a hanger is described which has a molded one-piece body of generally H-shape which is mounted on a rod-like support by insertion of the rod through the channel with the rod- like support serving as a rigid fulcrum when the clamp grips an article. Expand
The Influence of Data Base Characteristics and Usage on Direct Access File Organization
Memory utilization and retrieval time from direct access inverted files are investigated as a function of the data base, the demands on it, and a parameter which the system designer may control. AnExpand
An axiomatic approach to equivalence problems of algorithms with applications
  • An axiomatic approach to equivalence problems of algorithms with applications
  • 1968
An axiomatic approach to equivalence problems of algorithms with applications
  • Ph.D. Thesis 1964. Rep. Compt. Centre, U. Tokyo,
  • 1968
Sets and other types. ALGOL Bull
  • Sets and other types. ALGOL Bull
  • 1968
Towards a mathematical theory of computation
  • Proc. IFIP Cong
  • 1962