# An axiomatic basis for computer programming

@article{Hoare1969AnAB, title={An axiomatic basis for computer programming}, author={Charles Antony Richard Hoare}, journal={Commun. ACM}, year={1969}, volume={12}, pages={576-580} }

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

#### Topics from this paper

#### 2,192 Citations

The Mathematical Construction of a Program

- 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

- Mathematics
- Acta Informatica
- 2009

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 containing… Expand

Theories of Programming and Formal Methods

- Computer Science
- Lecture Notes in Computer Science
- 2013

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

- Mathematics, Computer Science
- Acta Informatica
- 1996

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

- 2005

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 is… Expand

An axiomatic approach for solving geometric problems symbolically

- Computer Science
- 1990

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

- 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

- Mathematics
- 1993

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 or… Expand

Functional Analysis of Programs.

- Computer Science
- 1984

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

- Computer Science, Mathematics
- CLEI Selected Papers
- 2017

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

#### References

SHOWING 1-10 OF 11 REFERENCES

Proving Properties of Programs by Structural Induction

- Computer Science, Mathematics
- Comput. J.
- 1969

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

- Computer Science
- 1966

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

- Computer Science
- 1966

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 can… Expand

Sets and other types

- Computer Science
- 1968

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

- Computer Science
- J. ACM
- 1968

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. An… Expand

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