Skip to main content

Formal Systems, Logics, and Programs

  • Chapter
  • First Online:
Raymond Smullyan on Self Reference

Part of the book series: Outstanding Contributions to Logic ((OCTR,volume 14))

Abstract

This article connects certain writings of Raymond Smullyan on logic and formal systems with current research on constructive type theory. It also considers aspects of teaching logic to computer science students. Those students require logic in order to precisely define programming tasks and demonstrate that programs meet logical specifications of these tasks. Smullyan’s book First-Order Logic has been used for many years to teach logic to computer science students at Cornell. This article includes a brief account of an elegant result from this book. It is based on an extension of a fourteen page technical report that analyzes two pages on Boolean valuations in chapter one of his classic book. The analysis and results are formulated in a formal system of type theory and proved using the Nuprl proof assistant. The article also briefly considers the role of partial types, showing how they provide a new way to prove unsolvability results, another topic on which Smullyan has written with remarkable clarity. Partial types also provide a simple and faithful semantics for Hoare’s partial correctness logic, widely used to reason about programs and taught in computer science as an important applied logic. They also make it possible to state a clean rule for defined functions in Hoare logic.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Notes

  1. 1.

    I had also assisted my uncle who was a magician, so I was fascinated by this connection to Smullyan already as an undergraduate.

  2. 2.

    In the extreme, some articles claim that eventually “intelligent” machines will use these tools to create mathematics that is beyond the abilities of unaided humans Aron (2015).

References

  • Aczel, P. (1982). The type theoretic interpretation of constructive set theory: Choice principles. In S.S. Troelstra & D. van Dalen, (Eds.), The L.E.J. Brouwer Centenary Symposium. North Holland.

    Google Scholar 

  • Allen, S. F. (June 1987). A Non-type-theoretic Definition of Martin-Löf’s Types. In D. Gries (Ed.) Proceedings of the 2nd IEEE Symposium on Logic in Computer Science (pp. 215–224). IEEE Computer Society Press.

    Google Scholar 

  • Allen, S. F., Constable, R. L. & Fluet, M. (2004). Expressing and implementing the computational content implicit in Smullyan’s account of Boolean valuations. Technical Report TR2004-1933, Department Computer Science, Cornell University

    Google Scholar 

  • Allen, S., Bickford, M., Constable, R., Eaton, R., Kreitz, C., Lorigo, L., et al. (2006). Innovations in computational type theory using Nuprl. Journal of Applied Logic, 4(4), 428–469.

    Article  Google Scholar 

  • Aron J. (2015). Beyond knowledge. New Scientist, pp. 28–31.

    Google Scholar 

  • Basin, D. & Wolff, B. (Eds.) (2003). Proceedings of the 16th International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2003), volume 2758 of Lecture Notes in Computer Science. Springer-Verlag.

    Google Scholar 

  • Beeson, M. J. (2012). Logic of ruler and compass constructions. In S. B. Cooper, A. Dawar, & B. Loewe, (Eds.), Computability in Europe 2012, Lecture Notes in Computer Science (pp. 46–55). Springer, 2012.

    Google Scholar 

  • Benl, H., Berger, U., Schwichtenberg, H., et al. (1998). Proof theory at work: Program development in the Minlog system. In W. Bibel & P. G. Schmitt (Eds.), Automated Deduction vol. II. Kluwer.

    Google Scholar 

  • Berger, U., & Schwichtenberg, H. (1994). Program extraction from classical proofs. In D. Leivant (Ed.), Logic and Computational Complexity (pp. 77–97). Berlin: Springer.

    Google Scholar 

  • Bertot, Y., & Castéran, P. (2004). Interactive Theorem Proving and Program Development; Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science: Springer-Verlag.

    Book  Google Scholar 

  • Bickford, M., & Constable, R. L. (2012). Polymorphic logic. In Logic, Construction, Computation: Ontos Verlag, Festschrift for Helmut Schwichtenberg.

    Book  Google Scholar 

  • Bove, A., Dybjer, P., Norell, U. (2009). A brief overview of Agda – a functional language with dependent types. In Stefan Berghofer, Tobias Nipkow, Christian Urban, and Makarius Wenzel, editors, LNCS 5674, Theorem Proving in Higher Order Logics (pp. 73–78). Springer.

    Google Scholar 

  • Boyer, R. S., & Moore, J. S. (1979). A Computational Logic. New York: Academic Press.

    Google Scholar 

  • Brady, E. (2011). Idris:systems programming meets full dependent types. In Programming Languages meets Program Verification, PLPV 2011 (pp. 43–54). ACM.

    Google Scholar 

  • Casinghino, C., Sjberg, V., & Weirich, S. (2014) Combining proofs and programs in a dependently typed language. In 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (pp. 33 – 55). San Diego, CA.

    Google Scholar 

  • Chlipala, A. (2013). Certified Programming with Dependent Types. Cambridge, MA: MIT Press.

    Google Scholar 

  • Constable, R. L., Allen, S. F., Bromley, H. M., Cleaveland, W. R., Cremer, J. F., Harper, R. W., et al. (1986). Implementing Mathematics with the Nuprl Proof Development System. NJ: Prentice-Hall.

    Google Scholar 

  • Constable, R., & Bickford, M. (2014). Intuitionistic Completeness of First-Order Logic. Annals of Pure and Applied Logic, 165(1), 164–198.

    Article  Google Scholar 

  • Constable, R. L., & Smith, S. F. (1993). Computational foundations of basic recursive function theory. Journal of Theoretical Computer Science, 121(1&2), 89–112.

    Article  Google Scholar 

  • Coppo, M., & Dezani-Ciancaglini, M. (1978). A new type assignment for \(\lambda \)-terms. Archive for Mathematical Logic, 19(1), 139–156.

    Article  Google Scholar 

  • Crary, K. (August 1998). Type–Theoretic Methodology for Practical Programming Languages. Ph.D. thesis, Cornell University, Ithaca, NY.

    Google Scholar 

  • Fitting, M. (1969). Intuitionistic model theory and forcing. Amsterdam: North-Holland.

    Google Scholar 

  • Friedman, H. (1977). Set theoretic foundations for constructive analysis. Annals of Math, 105, 1–28.

    Article  Google Scholar 

  • Gonthier, G. (2008). Formal proof - the Four Color Theorem. Notices of the American Math Society, 55, 1382–1392.

    Google Scholar 

  • Gonthier, G., Asperti, A., Avigad, J., Bertot, Y., Cohen, C., Garillot, F., et al. (2013). A Machine-checked Proof of the Odd Order Theorem. In S. Blazy, C. Paulin-Mohring, & D. Pichardie (Eds.), ITP (Vol. 7998)., Lecture Notes in Computer Science, (pp. 163–179) Springer.

    Google Scholar 

  • Gordon, M., & Melham, T. (1993). Introduction to HOL: A theorem proving environment for higher-order logic. Cambridge: Cambridge University Press.

    Google Scholar 

  • Harrison, J. (1998) Theorem proving with the real numbers. Springer-Verlag.

    Google Scholar 

  • Hickey, J., Nogin, A., Kopylov, A., et al. (2003) MetaPRL — A Modular Logical Environment. In Basin and Wolff [6], pp. 287–303.

    Google Scholar 

  • Hoare, C. A. R. (1971). Procedures and parameters: An axiomatic approach. Semantics Algorithm. Lang., 188, 102–116.

    Article  Google Scholar 

  • Kopylov, A. (2003) Dependent intersection: A new way of defining records in type theory. In Proceedings of 18th IEEE Symposium on Logic in Computer Science, pp. 86–95.

    Google Scholar 

  • Kopylov, A. Type theoretical foundations for data structures, classes, and objects. Ph.D. thesis, Cornell University, Ithaca, NY, 2004.

    Google Scholar 

  • Leroy, X. (2006) Formal certification of a compiler back-end or: programming a compiler with a proof assistant. In Proceedings of the 33d ACM SIGPLAN-SIGACT symposium on Principles of programming languages (pp. 42–54). ACM Press.

    Google Scholar 

  • Martin-Löf, P. (1982). Constructive mathematics and computer programming. In Proceedings of the Sixth International Congress for Logic, Methodology, and Philosophy of Science (pp. 153–175). Amsterdam: North Holland.

    Google Scholar 

  • Martin-Löf, P. (1998) An intuitionistic theory of types. In G. Sambin & Smith, J.M. (Eds.) Twenty-Five Years of Constructive Type Theory, volume 36 of Oxford Logic Guides, (pp. 127–172). Oxford: Clarendon Press.

    Google Scholar 

  • Nerode, A., & Shore, R. (1994). Logic for Applications. New York: Springer-Verlag.

    Google Scholar 

  • O’Donnell, M. J. (1982). A critique of the foundations of Hoare style programming logics. Commications of the Association of Computing Machinery, 25(12), 927–935.

    Article  Google Scholar 

  • Pierce, B. C., Casinghino, C., Greenberg, M., Sjberg, V., & Yorgey B (2013). Software Foundations. Electronic.

    Google Scholar 

  • Pottinger, G. (1980) A type assignment for the strongly normalizable \(\lambda \)-terms. In J. P. Seldin & J. R. Hindley, (Eds.), To H. B. Curry: Essays in Combinatory Logic, Lambda Calculus and Formalism (pp. 561–577). London: Academic Press.

    Google Scholar 

  • Raymond, M. (1961). Smullyan. Theory of Formal Systems: Princeton University Press.

    Google Scholar 

  • Raymond, M. (1987). Smullyan. Quotation and self-reference. In S. J. Bartlett & P. Suber (Eds.), Self-Reference: Reflections on Reflexivity. Dordrecht, Holland: Martinus Nijhoff.

    Google Scholar 

  • Raymond, M. (1992). Smullyan. New York: Gödel’s Incompleteness Theorems. Oxford University Press.

    Google Scholar 

  • Scott, D. (1976). Data types as lattices. SIAM J. Comput., 5, 522–587.

    Article  Google Scholar 

  • Schiper, N., Rahli, V., Van Renesse, R., Bickford, M., & Constable, R. L. (2014). Developing correctly replicated databases using formal tools. In DSN 2014: The 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.

    Google Scholar 

  • Smullyan, R. M. (1968). First-order logic. New York: Springer-Verlag.

    Book  Google Scholar 

  • Smullyan, R. M. (1983). 5000 B.C. and Other Philosophical Fantasies. NY: St. Martin’s Press.

    Google Scholar 

  • Smullyan, R. M. (1984). What is the name of this book? Pelican.

    Google Scholar 

  • Smullyan, R. M. (1994). Diagonalization and self-reference. Number 27 in Oxford Logic Guides. Oxford: Clarendon Press.

    Google Scholar 

  • Strub, P. -Y., Swamy, N., Fournet, C. & Chen, J. (2012). Self-certification: Bootstrapping certified typecheckers in F star with Coq. In Proceedings of the ACM Symposium on Principles on Programming Languages (POPL’12) (pp. 571– 583). ACM.

    Google Scholar 

  • Underwood, J. L. (1993) The tableau algorithm for intuitionistic propositional calculus as a constructive completeness proof. In Proceedings of the Workshop on Theorem Proving with Analytic Tableaux, Marseille, France, (pp. 245–248). Available as Technical Report MPI-I-93-213 Max-Planck-Institut für Informatik, Saarbrücken, Germany.

    Google Scholar 

  • Underwood, J. L. (1994) Aspects of the computational content of proofs. Department of Computer Science TR94-1460, Cornell University, Ithaca, NY, October

    Google Scholar 

  • Univalent Foundations Program. Homotopy Type Theory. Univalent Foundations Program, 2013.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Robert L. Constable .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Constable, R.L. (2017). Formal Systems, Logics, and Programs. In: Fitting, M., Rayman, B. (eds) Raymond Smullyan on Self Reference. Outstanding Contributions to Logic, vol 14. Springer, Cham. https://doi.org/10.1007/978-3-319-68732-2_2

Download citation

Publish with us

Policies and ethics