[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article
Open access

Proofs as programs

Published: 02 January 1985 Publication History

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.

References

[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.
[2]
BATES, J.L. A logic for correct program development. Ph.D. dissertation, Dept. of Computer Science, Cornell Univ., 1979.
[3]
BATES, J., AND CONSTABLE, R.L. Definition of Micro-PRL. Tech. Rep. TR 82-492, Computer Science Dept., Cornell Univ., Oct. 1981.
[4]
BISHOP, E. Foundations of Constructive Analysis. McGraw-Hill, New York, 1967.
[5]
BISHOP, E. Mathematics as a numerical language. In Intuitionism and Proof Theory. J. Myhill, et al., Eds., North-Holland, Amsterdam, 1970, 53-71.
[6]
BLEDSOE, W. Nonresolution theorem proving. Artif Intell. 9 (1977), 1-36.
[7]
BOYER, R. S., AND MOORE, J.S. A Computational Logic. Academic Press, New York, 1979.
[8]
BUNDY, A. The Computer Modelling of Mathematical Reasoning. Academic Press, New York, 1983.
[9]
CONSTABLE, R.L. Constructive mathematics and automatic program writers. In Proceedings of IFIP Congress, (Ljubljana, 1971), 229-233.
[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.
[11]
CONSTABLE R.L. Intensional analysis of functions and types. Dept. of Computer Science Internal Rep. CSR-118-82, Univ. of Edinburgh, June 1982.
[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.
[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.
[14]
CONSTABLE R.L. Programs as proofs. Inf. Process. Lett. 16, 3 (Apr. 1983), 105-112.
[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.
[16]
DIJKSTRA, E.W. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, N.J., 1976.
[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.
[18]
GRIES, D. The Science of Programming. Springer-Verlag, New York, 1982.
[19]
GUARD, J. R., OGLESBY, F. C., BENNETT, J. H., AND SETTLE, L.G. Semiautomated mathematics. J. ACM 18 (1969), 49-62.
[20]
HOARE, C. A.R. An axiomatic basis for computer programming. Commun. ACM 12 (Oct. 1969), 576-580.
[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.
[22]
KLEENE, S.C. On the interpretation of intuitionistic number theory. JSL 10 (1945), 109-124.
[23]
KLEENE, S.C. Introduction to Metamathematics. D. Van Nostrand, Princeton, N.J., 1952.
[24]
KRAFFT, D.B. AVID: A system for the interactive development of verifiable correct programs. Ph.D. dissertation, Cornell Univ., Aug. 1981.
[25]
LAKATOS, I. Proofs and Refutations. Cambridge University Press, Cambridge, 1976.
[26]
MANNA, Z., AND WALD1NGER, R. A deductive approach to program synthesis. ACM Trans. Program. Lang. Syst. 2, i (Jan. 1980), 90-121.
[27]
MARTIN-LOF P. Constructive mathematics and computer programming. In 6th International Congress for Logic, Method, and Philosophy of Science, (Hannover, Aug. 1979).
[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.
[29]
PAULSON, L. Structural inductions in LCF. In Proceedings International Symposium on Semantics of Data Types. Springer-Verlag, New York, 1984.
[30]
POLYA, G. How To Solve It. Princeton University Press, Princeton, N.J., 1945.
[31]
PROOFROCK, J. A. PRL: Proof refinement logic programmer's manual (Lambda PRL VAX version). Computer Science Dept., Cornell Univ., 1983.
[32]
REYNOLDS, J.C. The Craft of Programming. Prentice-Hall, Englewood Cliffs, N.J., 1981.
[33]
SCOTT, D. Constructive validity. In Symposium on Automatic Demonstration. Lecture Notes in Mathematics, 125. Springer-Verlag, New York, 1970, 237-275.
[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.
[35]
SHOSTAK, R.E. A practical decision procedure for arithmetic with function symbols. J. ACM 26 (Apr. 1979), 351-360.
[36]
STENLUND, S. Combinators, Lambda-Terms, and Proof-Theory. D. Reidel, Dordrecht, 1972.
[37]
TEITELBAUM, R., AND REPS, T. The Cornell program synthesizer: A syntax-directed programming environment. Commun. ACM 24, 9 (Sept. 1981), 563-573.
[38]
WHITEHEAD, A. N., AND RUSSELL, B. Principia Mathematica. Vol. 1, Cambridge University Press, Cambridge, 1925.
[39]
WIRTH, N. Systematic Programming: An Introduction. Prentice-Hall, Engiewood Cliffs, N.J., 1973.
[40]
Wos, L., OVERBEEK, R., EWING, L., AND BOYLE, J. Automated Reasoning. Prentice-Hall, Englewood Cliffs, N.J., 1984.

Cited By

View all
  • (2021)Evidenced Frames: A Unifying Framework Broadening Realizability Models2021 36th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1109/LICS52264.2021.9470514(1-13)Online publication date: 29-Jun-2021
  • (2020)Troubled IS/IT projects: searching for the root causesKybernetes10.1108/K-04-2020-019450:9(2619-2631)Online publication date: 23-Nov-2020
  • (2019)The Effects of Effects on ConstructivismElectronic Notes in Theoretical Computer Science10.1016/j.entcs.2019.09.006347(87-120)Online publication date: Nov-2019
  • Show More Cited By

Recommendations

Reviews

Ali Mili

Bates and Constable discuss the use of constructive proofs as a paradigm for programming. They introduce an implemented program development system, called PRL, that is based on this paradigm. The use of PRL is illustrated on a programming problem, that of finding a consecutive subsequence of maximum sum in a finite sequence of integers. The basic thesis of the paper, constructive proofs as programs, is quite appealing, and the authors present it in a lively—perhaps opinionated—manner. Also, this reviewer finds the discussions in Section 2 on mathematical problemsolving and its relevance to programming to be interesting and thought provoking. Finally, system PRL does appear to be useful, though this reviewer does not know enough about other systems to confirm the claims made for this one. The reader might be annoyed by the expediency with which some controversial statements are made. An example of such is the statement that “comments, written in pidgin English, attached to the code. . .are not the way to explain a program.” Another example is the statement that a program carries “no trace” of the “intellectual effort that went into producing it." Without expressing opinions on them, this reviewer merely suggests that these are controversial statements that need to be made with some care. On balance, this paper (and its extensions, as seen in the bibliographic references) is very useful to anybody doing research on program construction. It is also quite readable.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 7, Issue 1
Jan. 1985
181 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/2363
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 January 1985
Published in TOPLAS Volume 7, Issue 1

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)88
  • Downloads (Last 6 weeks)7
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Evidenced Frames: A Unifying Framework Broadening Realizability Models2021 36th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1109/LICS52264.2021.9470514(1-13)Online publication date: 29-Jun-2021
  • (2020)Troubled IS/IT projects: searching for the root causesKybernetes10.1108/K-04-2020-019450:9(2619-2631)Online publication date: 23-Nov-2020
  • (2019)The Effects of Effects on ConstructivismElectronic Notes in Theoretical Computer Science10.1016/j.entcs.2019.09.006347(87-120)Online publication date: Nov-2019
  • (2017)Programs from ProofsACM Transactions on Programming Languages and Systems10.1145/301442739:2(1-56)Online publication date: 10-Mar-2017
  • (2017)Autotuning CUDA compiler parameters for heterogeneous applications using the OpenTuner frameworkConcurrency and Computation: Practice and Experience10.1002/cpe.397329:22Online publication date: 6-Mar-2017
  • (2016)Solving Data Mismatches in Bioinformatics Workflows by Generating Data ConvertersSpecial Issue on Database- and Expert-Systems Applications on Transactions on Large-Scale Data- and Knowledge-Centered Systems XXIV - Volume 951010.1007/978-3-662-49214-7_3(88-115)Online publication date: 1-Jan-2016
  • (2015)Propositions as typesCommunications of the ACM10.1145/269940758:12(75-84)Online publication date: 23-Nov-2015
  • (2015)A Simple BSP-based Model to Predict Execution Time in GPU ApplicationsProceedings of the 2015 IEEE 22nd International Conference on High Performance Computing (HiPC)10.1109/HiPC.2015.34(285-294)Online publication date: 16-Dec-2015
  • (2015)Intuitionistic ancestral logicJournal of Logic and Computation10.1093/logcom/exv073(exv073)Online publication date: 10-Oct-2015
  • (2015)Synthesis of list algorithms by mechanical provingJournal of Symbolic Computation10.1016/j.jsc.2014.09.03069:C(61-92)Online publication date: 1-Jul-2015
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media