Formal theories and software systems: Fundamental connections between Computer Science and Logic

  • Robert L. Constable
II. Symbolic Computation, Programming, and Software Engineering
Part of the Lecture Notes in Computer Science book series (LNCS, volume 653)


A formal Theory of Logics is sketched using concepts from a modern proof development system (like Nuprl, Coq or other such software systems). The Theory can be applied to understanding these software systems, and the application suggests a design principle called the theories-as-systems notion. Applications of the Theory to automated reasoning have led to an empirical study of the notion of obvious inference. Experimental results are cited to explain key constants of a scientific theory of obvious inference. The constants appear in what is called here the deBruijn equation.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    M. Aagaard and M. Leeser. Verifying a logic synthesis tool in Nuprl. In G. Bochmann and D. Probst, editors, Participants copy of Proceedings of Workshop on Computer-Aided. Verification, pages 72–83. Springer-Verlag, June 1992. To appear by Springer-Verlag, 1993.Google Scholar
  2. [2]
    S. Abramsky. Computational interpretations of linear logic. TCS, 1992. To appear.Google Scholar
  3. [3]
    W. Aitken and R. C. Constable. Reflecting on Nuprl Lessons 1–4. Technical report, Cornell University, Computer Science Dept., 1992. To appear.Google Scholar
  4. [4]
    S. Allen, R. Constable, D. Howe, and W. Aitken. The semantics of reflected proof. Proc. of Fifth Symp. on Logic in Comp. Sci., IEEE, pages 95–197, June 1990.Google Scholar
  5. [5]
    S. F. Allen. A non-type-theoretic definition of Martin-Löf's types. Proc. of Second Symp. on Logics in Computer Science, IEEE, pages 215–224., June 1987.Google Scholar
  6. [6]
    A. Appel. Compiling with Continuations. Cambridge University Press, 1992.Google Scholar
  7. [7]
    D. Basin. An environment for automated reasoning about partial functions. In 9th International Conference on Automated Deduction, pages 101–110. Springer-Verlag, NY, 1988.Google Scholar
  8. [8]
    D. Basin, G. Brown, and M. Leeser. Formally Verified Synthesis of Combinational CMOS Circuits. Integration: The International Journal of VLSI Design, 11:235–250, 1991.Google Scholar
  9. [9]
    E. Bishop. Mathematics as a Numerical Language. In Intuitionism and Proof Theory., pages 53–71. North-Holland, NY, 1970.Google Scholar
  10. [10]
    W. W. Bledsoe. A new method for proving certain Presburger formulas. Fourth IJCAI, September 1975. Tblisi, USSR.Google Scholar
  11. [11]
    N. Bourbaki. Elements of Mathematics, Algebra, Volume 1. Addison-Wesley, Reading, MA, 1968.Google Scholar
  12. [12]
    W. Chen. Tactic-based theorem proving and knowledge-based forward chaining. In D. Kapur, editor, Eleventh International Conference on Automated Deduction, pages 552–566. Springer-Verlag, June 1992.Google Scholar
  13. [13]
    J. Chirimar and D. Howe. Implementing constructive real analysis: a preliminary report. In Symposium on Constructivity in Computer Science. Springer-Verlag, 1991. To appear.Google Scholar
  14. [14]
    R. C. Cleaveland. Type-Theoretic Models of Concurrency. PhD thesis, Cornell University, 1987.Google Scholar
  15. [15]
    R. Constable, S. Johnson, and C. Eichenlaub. Introduction to the PL/CV2 Programming Logic, LNCS, volume 135. Springer-Verlag, NY, 1982.Google Scholar
  16. [16]
    R. Constable, T. Knoblock, and J. Bates. Writing programs that construct proofs. J. Automated Reasoning, 1(3):285–326, 1984.MathSciNetGoogle Scholar
  17. [17]
    R. L. Constable. Constructive mathematics and automatic program writers. In Proc. IFP Congr., pages 229–33, Ljubljana, 1971.Google Scholar
  18. [18]
    R. L. Constable. Lectures on: Classical proofs as programs. NATO ASI Series, Constructive Methods of Computing Science, F, 1991.Google Scholar
  19. [19]
    R. L. Constable et al. Implementing Mathematics with the Nuprl Development System. Prentice-Hall, NJ, 1986.Google Scholar
  20. [20]
    R. L. Constable and D. J. Howe. Implementing metamathematics as an approach to automatic theorem proving. In R. Banerji, editor, Formal Techniques in Artificial Intelligence: A Source Book, pages 45–76. Elsevier Science Publishers (North-Holland), 1990.Google Scholar
  21. [21]
    S. Cook. The complexity of theorem proving procedures. In Proc. of the 3rd ACM Symposium on Theory of Computation, pages 151–158. ACM, NY, 1971.Google Scholar
  22. [22]
    H. Curry, R. Feys, and W. Craig. Combinatory Logic, Vol. 1. Amsterdam:North-Holland, 1968.Google Scholar
  23. [23]
    M. Davis. The prehistory and early history of automated deduction. In Automation of Reasoning 1, pages 1–28. Springer-Verlag, NY, 1983.Google Scholar
  24. [24]
    N. deBruijn. The mathematical language Automath, its usage and, some of its extensions. Symp. on Automatic Demonstration, Lecture Notes in Math, 125:29–61, 1968.CrossRefGoogle Scholar
  25. [25]
    N. deBruijn. A survey of the project Automath. In To H.B. Curry: Essays in Combinatory Logic, Lambda Calculus, and Formalism., pages 589–606. Academic Press, 1980.Google Scholar
  26. [26]
    S. Feferman. A language and axioms for explicit mathematics. In Algebra and Logic, Lecture Notes in Mathematics, pages 87–139. Springer-Verlag, 1975.Google Scholar
  27. [27]
    S. Feferman. Polymorphic typed lambda-calculi in a type free axiomatic framework. Contemporary Mathematics, 106:101–135, 1990.MathSciNetGoogle Scholar
  28. [28]
    G. Frege. Begriffsschrift, a formula language, modeled upon that for arithmetic for pure thought. In From Frege to Godel: A Source Book in Mathematical Logic, 1879–1931, pages 1–82. Harvard University Press, Cambridge, Mass., 1967.Google Scholar
  29. [29]
    J.-Y. Girard. Une extension de l'interpretation de godel a l'analyse, et son application a l'elimination des coupures dans l'analyse et la theorie des types. In 2nd Scandinavian Logic Symp., pages 63–69. Springer-Verlag, NY, 1971.Google Scholar
  30. [30]
    J.-Y. Girard. On the unity of logic. In Proceedings of Computer and Systems Sciences, NATO Advanced Science Institute Series F, 1991.Google Scholar
  31. [31]
    K. Gödel. On intuitionistic arithmetic and number theory. In M. Davis, editor, The Undecidable, pages 75–81. Raven Press, 1965.Google Scholar
  32. [32]
    M. Gordon. HOL: A machine oriented formalization of higher order logic. Technical Report 68, Cambridge University, 1985.Google Scholar
  33. [33]
    M. Gordon, R. Milner, and C. Wadsworth. Edinburgh LCF: a mechanized logic of computation, volume 78 of Lecture Notes in Computer Science. Springer-Verlag, NY, 1979.Google Scholar
  34. [34]
    J. Hartmanis. Feasible Computations and Provable Complexity Properties. SIAM, Philadelphia, PA, 1978.MATHGoogle Scholar
  35. [35]
    J. Hartmanis and R. Stearns. On the computational complexity of algorithms. Transactions of the American Mathematics Society, 117:285–306, 1965.MATHCrossRefMathSciNetGoogle Scholar
  36. [36]
    W. Howard. The formulas-as-types notion of construction. In To H.B. Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism, pages 479–490. Academic Press, NY, 1980.Google Scholar
  37. [37]
    D. Howe. The computational behaviour of Girard's paradox. Proc. of Second Symp. on Logic in Comp. Sci., IEEE, pages 205–214, June 1987.Google Scholar
  38. [38]
    D. Howe. Implementing number theory: An experiment with Nuprl. 8th International Conference on Automated Deduction, pages 404–415, July 1987.Google Scholar
  39. [39]
    D. Howe. Equality in lazy computation systems. In Proc. of Second Symp. on Logic in Comp. Sci., pages 198–203. IEEE Computer Society, June 1989.Google Scholar
  40. [40]
    D. Howe. A simple type theory for reasoning about functional programs. pre print, 1992.Google Scholar
  41. [41]
    D. Howe. Reasoning about functional programs in Nuprl. Functional Programming, Concurrency, Simulation and Automated Reasoning, LNCS, 1993. To appear.Google Scholar
  42. [42]
    G. Huet. Theorem proving systems of the Formel project. In Proc. of the 8th International Conference on Automated Deduction, Lecture Notes in Computer Science, pages 687–688. Springer-Verlag, 1986.Google Scholar
  43. [43]
    G. Huet. A uniform approach to type theory. In G. Huet, editor, Logical Foundations of Functional Programming, pages 337–398. Addison-Wesley, 1990.Google Scholar
  44. [44]
    P. B. Jackson. Nuprl and its use in circuit design. In V. Stavridou, T. Melham, and R. Boute, editors, Proceedings of the IFIP TC10/WG10.2 International Conference on Theorem Provers in Circuit Design: Theory, Practice and Experience, pages 311–336. North-Holland, The Netherlands, June 1992.Google Scholar
  45. [45]
    S. C. Kleene. Introduction to Metamathematics. D. Van Nostrand, Princeton, 1952.MATHGoogle Scholar
  46. [46]
    A. Kolmogorov. Three approaches to the concept of 'the amount of information'. Probl. Inf. Tramsm., 1:1–7, 1965.MathSciNetGoogle Scholar
  47. [47]
    C. Kreitz. Constructive automata theory implemented with the Nuprl proof development system. Technical Report TR 86-779, Cornell University, Ithaca, New York, September 1986.Google Scholar
  48. [48]
    H. Lauchli. An abstract notion of realizability for which intuitionistic predicate calculus is complete. In Intuitionism and Proof Theory., pages 227–34. North-Holland, Amsterdam, 1970.Google Scholar
  49. [49]
    M. Leeser. Using Nuprl for the verification and synthesis of hardware. Phil. Trans. R. Soc. Lond., 339:49–68, 1992.CrossRefGoogle Scholar
  50. [50]
    G. Leibniz. Logical Papers: A Selection. Clarendon Press, Oxford, 1966.Google Scholar
  51. [51]
    L. Levin. Universal search problems. Problemy Peredaci Informacii 9, pages 115–116, 1973.MathSciNetGoogle Scholar
  52. [52]
    P. Martin-Löf. Constructive mathematics and computer programming. In Sixth International Congress for Logic, Methodology, and Philosophy of Science, pages 153–75. North-Holland, Amsterdam, 1982.Google Scholar
  53. [53]
    D. A. McAllester. ONTIC: A Knowledge Representation System for Mathematics. MIT Press, Cambrige, Mass., 1989.MATHGoogle Scholar
  54. [54]
    J. McCarthy. Computer programs for checking mathematical proofs. In Proceedings of the Symposium in Pure Math, Recursive Function Theory, Vol V, pages 219–228. AMS, Providence, RI, 1962.Google Scholar
  55. [55]
    R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes, part 1. Technical Report CSR-302-89, LFCS, University of Edinburgh, June 1989.Google Scholar
  56. [56]
    R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. The MIT Press, 1991.Google Scholar
  57. [57]
    C. Murthy. An evaluation semantics for classical proofs. In LICS, '91, pages 96–107, Amsterdam, The Netherlands, July 1991.Google Scholar
  58. [58]
    B. Nordstrom, K. Petersson, and J. Smith. Programming in Martin-Lof 's Type Theory. Oxford Sciences Publication, Oxford, 1990.Google Scholar
  59. [59]
    C. Paulin-Mohring. Extracting F′ws programs from proofs in the calculus of constructions. In Proceedings of POPL, 1989.Google Scholar
  60. [60]
    B. Russell. Mathematical logic as based on a theory of types. Am. J. Math., 30:222–62, 1908.CrossRefGoogle Scholar
  61. [61]
    N. Shankar. Towards mechanical metamathematics. J. Automated Reasoning, 1(4):407–434, 1985.MATHCrossRefMathSciNetGoogle Scholar
  62. [62]
    R. Shostak. A practical decision procedure for arithmetic with function symbols. JACM, 26:351–360, 1979.MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Robert L. Constable
    • 1
  1. 1.Department of Computer ScienceCornell UniversityIthaca

Personalised recommendations