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.
Similar content being viewed by others
Notes
- 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.
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.
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.
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
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.
Aron J. (2015). Beyond knowledge. New Scientist, pp. 28–31.
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.
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.
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.
Berger, U., & Schwichtenberg, H. (1994). Program extraction from classical proofs. In D. Leivant (Ed.), Logic and Computational Complexity (pp. 77–97). Berlin: Springer.
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.
Bickford, M., & Constable, R. L. (2012). Polymorphic logic. In Logic, Construction, Computation: Ontos Verlag, Festschrift for Helmut Schwichtenberg.
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.
Boyer, R. S., & Moore, J. S. (1979). A Computational Logic. New York: Academic Press.
Brady, E. (2011). Idris:systems programming meets full dependent types. In Programming Languages meets Program Verification, PLPV 2011 (pp. 43–54). ACM.
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.
Chlipala, A. (2013). Certified Programming with Dependent Types. Cambridge, MA: MIT Press.
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.
Constable, R., & Bickford, M. (2014). Intuitionistic Completeness of First-Order Logic. Annals of Pure and Applied Logic, 165(1), 164–198.
Constable, R. L., & Smith, S. F. (1993). Computational foundations of basic recursive function theory. Journal of Theoretical Computer Science, 121(1&2), 89–112.
Coppo, M., & Dezani-Ciancaglini, M. (1978). A new type assignment for \(\lambda \)-terms. Archive for Mathematical Logic, 19(1), 139–156.
Crary, K. (August 1998). Type–Theoretic Methodology for Practical Programming Languages. Ph.D. thesis, Cornell University, Ithaca, NY.
Fitting, M. (1969). Intuitionistic model theory and forcing. Amsterdam: North-Holland.
Friedman, H. (1977). Set theoretic foundations for constructive analysis. Annals of Math, 105, 1–28.
Gonthier, G. (2008). Formal proof - the Four Color Theorem. Notices of the American Math Society, 55, 1382–1392.
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.
Gordon, M., & Melham, T. (1993). Introduction to HOL: A theorem proving environment for higher-order logic. Cambridge: Cambridge University Press.
Harrison, J. (1998) Theorem proving with the real numbers. Springer-Verlag.
Hickey, J., Nogin, A., Kopylov, A., et al. (2003) MetaPRL — A Modular Logical Environment. In Basin and Wolff [6], pp. 287–303.
Hoare, C. A. R. (1971). Procedures and parameters: An axiomatic approach. Semantics Algorithm. Lang., 188, 102–116.
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.
Kopylov, A. Type theoretical foundations for data structures, classes, and objects. Ph.D. thesis, Cornell University, Ithaca, NY, 2004.
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.
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.
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.
Nerode, A., & Shore, R. (1994). Logic for Applications. New York: Springer-Verlag.
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.
Pierce, B. C., Casinghino, C., Greenberg, M., Sjberg, V., & Yorgey B (2013). Software Foundations. Electronic.
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.
Raymond, M. (1961). Smullyan. Theory of Formal Systems: Princeton University Press.
Raymond, M. (1987). Smullyan. Quotation and self-reference. In S. J. Bartlett & P. Suber (Eds.), Self-Reference: Reflections on Reflexivity. Dordrecht, Holland: Martinus Nijhoff.
Raymond, M. (1992). Smullyan. New York: Gödel’s Incompleteness Theorems. Oxford University Press.
Scott, D. (1976). Data types as lattices. SIAM J. Comput., 5, 522–587.
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.
Smullyan, R. M. (1968). First-order logic. New York: Springer-Verlag.
Smullyan, R. M. (1983). 5000 B.C. and Other Philosophical Fantasies. NY: St. Martin’s Press.
Smullyan, R. M. (1984). What is the name of this book? Pelican.
Smullyan, R. M. (1994). Diagonalization and self-reference. Number 27 in Oxford Logic Guides. Oxford: Clarendon Press.
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.
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.
Underwood, J. L. (1994) Aspects of the computational content of proofs. Department of Computer Science TR94-1460, Cornell University, Ithaca, NY, October
Univalent Foundations Program. Homotopy Type Theory. Univalent Foundations Program, 2013.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this chapter
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
DOI: https://doi.org/10.1007/978-3-319-68732-2_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-68731-5
Online ISBN: 978-3-319-68732-2
eBook Packages: Religion and PhilosophyPhilosophy and Religion (R0)