Abstract
The significant intellectual cost of programming is for problem solving and explaining, not for coding. Yet programming systems offer mechanical assistance for the coding process exclusively. We illustrate the use of an implemented program development system, called PRL ("pearl"), that provides automated assistance with the difficult part. The problem and its explained solution are seen as formal objects in a constructive logic of the data domains. These formal explanations can be executed at various stages of completion. The most incomplete explanations resemble applicative programs, the most complete are formal proofs.
- 1 ANDREWS, P. B., COHEN, E. L., AND MILLER, D. A. A look at TPS. In 6th Conference on Automated Deduction. Lecture Notes in Computer Science, 138. Springer-Verlag, New York, 1982, 50-69. Google Scholar
- 2 BATES, J.L. A logic for correct program development. Ph.D. dissertation, Dept. of Computer Science, Cornell Univ., 1979. Google Scholar
- 3 BATES, J., AND CONSTABLE, R.L. Definition of Micro-PRL. Tech. Rep. TR 82-492, Computer Science Dept., Cornell Univ., Oct. 1981.Google Scholar
- 4 BISHOP, E. Foundations of Constructive Analysis. McGraw-Hill, New York, 1967.Google Scholar
- 5 BISHOP, E. Mathematics as a numerical language. In Intuitionism and Proof Theory. J. Myhill, et al., Eds., North-Holland, Amsterdam, 1970, 53-71.Google Scholar
- 6 BLEDSOE, W. Nonresolution theorem proving. Artif Intell. 9 (1977), 1-36.Google Scholar
- 7 BOYER, R. S., AND MOORE, J.S. A Computational Logic. Academic Press, New York, 1979.Google Scholar
- 8 BUNDY, A. The Computer Modelling of Mathematical Reasoning. Academic Press, New York, 1983. Google Scholar
- 9 CONSTABLE, R.L. Constructive mathematics and automatic program writers. In Proceedings of IFIP Congress, (Ljubljana, 1971), 229-233.Google Scholar
- 10 CONSTABLE R. L., AND BATES, J. L. The nearly ultimate PRL. Dept. of Computer Science Tech. Rep. TR 83-551, Cornell Univ., Apr. 1983.Google Scholar
- 11 CONSTABLE R.L. Intensional analysis of functions and types. Dept. of Computer Science Internal Rep. CSR-118-82, Univ. of Edinburgh, June 1982.Google Scholar
- 12 CONSTABLE R. L., AND ZLATIN, D.R. The type theory of PL/CV3. ACM Trans. Program. Lang. Syst. 6, 1 (Jan. 1984), 94-117. Google Scholar
- 13 CONSTABLE, R. L., JOHNSON, S. D., AND EICHENLAUB, C. D. Introduction to the PL/CV2 Programming Logic. Lecture Notes in Computer Science, 135. Springer-Verlag, New York, 1982. Google Scholar
- 14 CONSTABLE R.L. Programs as proofs. Inf. Process. Lett. 16, 3 (Apr. 1983), 105-112.Google Scholar
- 15 DEBRUIJN, N. G. A survey of the project AUTOMATH. In Essays on Combinatory Logic, Lambda Calculus, and Formalism. J. P. Seldin and J. R. Hindley, Eds., Academic Press, New York, 1980, 589-606.Google Scholar
- 16 DIJKSTRA, E.W. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, N.J., 1976. Google Scholar
- 17 GORDON, M., MILNER, R., AND WADSWORTH, C. Edinburgh LCF: A Mechanized Logic of Computation. Lecture Notes in Computer Science, 78, Springer-Verlag, New York, 1979.Google Scholar
- 18 GRIES, D. The Science of Programming. Springer-Verlag, New York, 1982. Google Scholar
- 19 GUARD, J. R., OGLESBY, F. C., BENNETT, J. H., AND SETTLE, L.G. Semiautomated mathematics. J. ACM 18 (1969), 49-62. Google Scholar
- 20 HOARE, C. A.R. An axiomatic basis for computer programming. Commun. ACM 12 (Oct. 1969), 576-580. Google Scholar
- 21 JUTTING, L.S. Checking Landau's "Grundlagen" in the AUTOMATH system. Ph.D. dissertation, Eindhoven Univ., Math. Centre Tracts No. 83. Math. Centre, Amsterdam, 1979.Google Scholar
- 22 KLEENE, S.C. On the interpretation of intuitionistic number theory. JSL 10 (1945), 109-124.Google Scholar
- 23 KLEENE, S.C. Introduction to Metamathematics. D. Van Nostrand, Princeton, N.J., 1952.Google Scholar
- 24 KRAFFT, D.B. AVID: A system for the interactive development of verifiable correct programs. Ph.D. dissertation, Cornell Univ., Aug. 1981. Google Scholar
- 25 LAKATOS, I. Proofs and Refutations. Cambridge University Press, Cambridge, 1976.Google Scholar
- 26 MANNA, Z., AND WALD1NGER, R. A deductive approach to program synthesis. ACM Trans. Program. Lang. Syst. 2, i (Jan. 1980), 90-121. Google Scholar
- 27 MARTIN-LOF P. Constructive mathematics and computer programming. In 6th International Congress for Logic, Method, and Philosophy of Science, (Hannover, Aug. 1979).Google Scholar
- 28 NORDSTROM, B. Programming in constructive set theory: Some examples. In Proceedings 1981 Conference on Functional Programming, Languages, and Computer Architecture, (Portsmouth, 1981), 141-153. Google Scholar
- 29 PAULSON, L. Structural inductions in LCF. In Proceedings International Symposium on Semantics of Data Types. Springer-Verlag, New York, 1984. Google Scholar
- 30 POLYA, G. How To Solve It. Princeton University Press, Princeton, N.J., 1945.Google Scholar
- 31 PROOFROCK, J. A. PRL: Proof refinement logic programmer's manual (Lambda PRL VAX version). Computer Science Dept., Cornell Univ., 1983.Google Scholar
- 32 REYNOLDS, J.C. The Craft of Programming. Prentice-Hall, Englewood Cliffs, N.J., 1981. Google Scholar
- 33 SCOTT, D. Constructive validity. In Symposium on Automatic Demonstration. Lecture Notes in Mathematics, 125. Springer-Verlag, New York, 1970, 237-275.Google Scholar
- 34 SHOSTAK, R. E., SCHWARTZ, R., AND MELLIAR-SMITH, P. M. STP: A mechanized logic for specification and verification. In 6th Conference on Automated Deduction. Lecture Notes in Computer Science, 138. Springer-Verlag, New York, 1982, 32-49. Google Scholar
- 35 SHOSTAK, R.E. A practical decision procedure for arithmetic with function symbols. J. ACM 26 (Apr. 1979), 351-360. Google Scholar
- 36 STENLUND, S. Combinators, Lambda-Terms, and Proof-Theory. D. Reidel, Dordrecht, 1972.Google Scholar
- 37 TEITELBAUM, R., AND REPS, T. The Cornell program synthesizer: A syntax-directed programming environment. Commun. ACM 24, 9 (Sept. 1981), 563-573. Google Scholar
- 38 WHITEHEAD, A. N., AND RUSSELL, B. Principia Mathematica. Vol. 1, Cambridge University Press, Cambridge, 1925.Google Scholar
- 39 WIRTH, N. Systematic Programming: An Introduction. Prentice-Hall, Engiewood Cliffs, N.J., 1973. Google Scholar
- 40 Wos, L., OVERBEEK, R., EWING, L., AND BOYLE, J. Automated Reasoning. Prentice-Hall, Englewood Cliffs, N.J., 1984.Google Scholar
Index Terms
- Proofs as programs
Recommendations
Imperative Programs as Proofs via Game Semantics
LICS '11: Proceedings of the 2011 IEEE 26th Annual Symposium on Logic in Computer ScienceGame semantics extends the Curry-Howard isomorphism to a three-way correspondence: proofs, programs, strategies. But the universe of strategies goes beyond intuitionistic logics and lambda calculus, to capture stateful programs. In this paper we ...
Comments