# Proofs as descriptions of computation

## Abstract

A proof of ∀x∃yϕ(x,y) can serve as a description of an algorithm which satisfies the specification given by ϕ. A variety of techniques from proof theory may be used to execute such a proof — that is, to take the proof and a value for x, and compute a value for y such that ϕ(x,y) holds. Proofs differ from ordinary programs in that they formalize information about algorithms beyond what is needed for the simple execution of the algorithm. This paper concerns (I) the uses of this additional information in the automatic transformation of algorithms, and in particular, in the adaptation of algorithms to special situations, and (2) efficient methods for executing and transforming proofs. A system for manipulating proofs has been implemented. Results of experiments on the specialization of a bin-packing algorithm are described.

## Keywords

Reduction Rule Natural Deduction Proof Theory Symbolic Execution Proof Tree## Preview

Unable to display preview. Download preview PDF.

## References

- Bates, J.L.
*A logic for correct program development*, PhD Thesis, Dept. of Computer Science, Cornell University, August 1979Google Scholar - Beckeman, L., Haraldsson, A., Oskarsson, O., and Sandewall, E. [1976],
*A partial evaluator and its use as a programming tool*, Artificial Intelligence Journal 7 pp. 319–357Google Scholar - Bishop, E.[1970],
*Mathematics as a numerical language*, Intuitionism and proof theory, Proceedings of the summer conference at Buffalo N.Y., 1968, A. Kino, J. Myhill, R.E. Vesley eds., North Holland, Amsterdam pp 53–71Google Scholar - Constable, R.L.[1971],
*Constructive mathematics and automatic program writers*, IFIP Congress 1971Google Scholar - de Brujin, N.G.[1970],
*The mathematical language AUTOMATH, its usage, and some of its extensions*, Lecture Notes in Mathematics, vol. 125, Springer Verlag, pp. 29–61Google Scholar - Doyle, J.[1978],
*Truth maintenance systems for problem solving*, M.I.T. AI lab technical report AI-TR-419, January 1978Google Scholar - Ershov A.P.[1977],
*On the essense of compilation*, IFIP Working Conference on Formal Description of Programming Concepts, Saint Andrews, New Brunswick, vol. 1., pp. 1.1–1.28Google Scholar - Gentzen, G.[1969],
*The collected papers of Gerhard Gentzen*, (M.E. Szabo ed.), North-Holland, AmsterdamGoogle Scholar - Goad C.A.[1980],
*Computational uses of the manipulation of formal proofs*, PhD Thesis, Stanford University, in preparationGoogle Scholar - Godel, K.[1958],
*Ueber eine bisher noch nicht benutzte Erweiterung des finiten Standpunktes*, Dialectica 12, pp. 280–287Google Scholar - Goto S.,[1979],
*Program Synthesis from Natural Deduction Proofs*, International Joint Conference on Artificial Intelligence, TokyoGoogle Scholar - Green, C.C.,[1969],
*Application of theorem proving to problem solving*, Proceedings of the International Joint Conference on Artificial Intelligence, Washington DC, pp 219–239Google Scholar - Hewitt, C.[1971],
*Procedural embedding of knowledge in planner*, Proceedings of the International Joint Conference on Artificial Intelligence, LondonGoogle Scholar - Howard, W.A.[1980],
*The formulae-as-types notion of construction*, in*Festschrift on the occasion of H.B. Curry's 80th birthday*, Academic Press, New York, San Francisco, London, to appearGoogle Scholar - Kleene S.C.[1945],
*On the interpretation of intuitionistic number theory*, Journal of Symbolic Logic 10,pp. 109–124Google Scholar - Kowalski, R.[1974],
*Predicate logic as a programming language*, Proc. of the IFIP Congress 1974, pp 569–574Google Scholar - Kreisel, G.[1959],
*Interpretation of analysis by means of constructive functionals of finite type, in Constructivity in Mathematics*, North-Holland, Amsterdam, pp. 101–128Google Scholar - Kreisel, G.[1975],
*Some uses of proof theory for finding computer programs*, Colloque International de Logique, Clermont-Ferrand (July 1975), Colloques Internationaux du Centre National de la Researche Scientifique, No. 249, pp. 123–134Google Scholar - Kreisel, G.[1977],
*From foundations to science: justifying and unwinding proofs*, Recueil Des Travaux de L'Institut Mathematique, Belgrade, Nouvelle Serie 1977, Vol. 2, pp. 63–72Google Scholar - London, P.E.[1978],
*Dependency networks as a representation for modeling in general problem solvers*. PhD thesis. U Maryland Department of Computer Science Technical Report 698Google Scholar - Manna, Z. and Waldinger, R.[1979],
*A deductive approach to program synthesis*, Fourth Workshop on Automatic Deduction, Austin Texas, pp 129–139Google Scholar - Miglioli, P., and Ornaghi, M.,
*A logically justified computing model*, Fundamenta Informaticae, to appearGoogle Scholar - Prawitz, D.[1965],
*Natural deduction*, Almquist and Wksell, StockholmGoogle Scholar - Scott, D.[1970],
*Constructive Validity*, Lecture Notes in Mathematics, vol. 125, Springer Verlag, pp. 237–275Google Scholar - Sussman G.J., and Steele, G.L.,[1975],
*SCHEME, an interpreter for extended lambda calculus*, MIT AI Memo 349Google Scholar - Tait, W.W.[1975],
*A realizability interpretation of the theory of species*, Logic Colloquium Proceedings, 1972–1973, A. Dold, B. Eckmann eds., Lecture Notes in Mathematics vol. 453, Springer Verlag, pp. 240–251Google Scholar - Takasu S.[1978],
*Proofs and programs*, Proceedings of the Third IBM Symposium on the Mathematical Foundations of Computer Science — Mathematical Logic and Computer Science, KansaiGoogle Scholar - Troelstra A.S.[1973],
*Intuitionistic formal systems, in Metamathematical Investigation of Intuitionistic Arithmetic and Analysis*, A.S. Troelstra, ed., Lecture Notes in Mathematics vol. 344, Springer Verlag, pp. 1–96Google Scholar