Skip to main content
×
Home

Validating Brouwer's continuity principle for numbers using named exceptions

  • VINCENT RAHLI (a1) and MARK BICKFORD (a2)
Abstract

This paper extends the Nuprl proof assistant (a system representative of the class of extensional type theories with dependent types) with named exceptions and handlers, as well as a nominal fresh operator. Using these new features, we prove a version of Brouwer's continuity principle for numbers. We also provide a simpler proof of a weaker version of this principle that only uses diverging terms. We prove these two principles in Nuprl's metatheory using our formalization of Nuprl in Coq and reflect these metatheoretical results in the Nuprl theory as derivation rules. We also show that these additions preserve Nuprl's key metatheoretical properties, in particular consistency and the congruence of Howe's computational equivalence relation. Using continuity and the fan theorem, we prove important results of Intuitionistic Mathematics: Brouwer's continuity theorem, bar induction on monotone bars and the negation of the law of excluded middle.

Copyright
References
Hide All
Allen S. (2006). An abstract semantics for atoms in Nuprl, Technical report TR2006-2032, Cornell University.
Allen S.F. (1987a). A non-type-theoretic definition of Martin-Löf's types. In: Proceedings of Second IEEE Symposium on Logic in Computer Science 215–221.
Allen S.F. (1987b). A Non-Type-Theoretic Semantics for Type-Theoretic Language, PhD thesis, Cornell University.
Allen S.F., Bickford M., Constable R.L., Eaton R., Kreitz C., Lorigo L. and Moran E. (2006). Innovations in computational type theory using Nuprl. Journal of Applied Logic 4 (4) 428469, http://www.nuprl.org/.
Anand A., Bickford M., Constable R.L. and Rahli V. (2014). A Type Theory with Partial Equivalence Relations as Types, Presented at TYPES 2014.
Anand A. and Rahli V. (2014a). Towards a Formally Verified Proof Assistant, ITP 2014, Klein G. and Gamboa R. (eds.) Lecture Notes in Computer Science, vol. 8558, Springer, 2744.
Anand A. and Rahli V. (2014b). Towards a formally verified proof assistant. Technical report, Cornell University, http://www.nuprl.org/html/Nuprl2Coq/.
Avigad J. (2004). Forcing in proof theory. Bulletin of Symbolic Logic 10 (3) 305333.
Bauer A. and Pretnar M. (2015). Programming with algebraic effects and handlers. Journal of Logical and Algebraic Methods in Programming 84 (1) 108123.
Beeson M.J. (1985). Foundations of Constructive Mathematics, Springer.
Berardi S., Bezem M. and Coquand T. (1998). On the computational content of the axiom of choice. Journal of Symbolic Logic 63 (2) 600622.
Berger U. and Oliva P. (2006). Modified bar recursion. Mathematical Structures in Computer Science 16 (2) 163183.
Bertot Y. and Casteran P. (2004). Interactive Theorem Proving and Program Development, Springer-Verlag, http://www.labri.fr/perso/casteran/CoqArt.
Bickford M. (2008). Unguessable atoms: A logical foundation for security. In: Proceedings of the 2nd International Conference on Verified Software: Theories, Tools, Experiments, Lecture Notes in Computer Science, vol. 5295, Springer, 30–53.
Bishop E. and Bridges D. (1985). Constructive Analysis, Springer.
Bojanczyk M., Braud L., Klin B. and Lasota , (S. 2012). Towards nominal computation. In: POPL'12, ACM, 401412.
Bove A., Dybjer P. and Norell U. (2009). A brief overview of Agda - a functional language with dependent types. In: TPHOLs 2009, Lecture Notes in Computer Science, vol. 5674, Springer, pp. 7378, http://wiki.portal.chalmers.se/agda/pmwiki.php.
Brady E. (2011). Idris —: systems programming meets full dependent types. In: PLPV 2011, ACM, 4354.
Bridges D. and Richman F. (1987). Varieties of Constructive Mathematics, London Mathematical Society Lecture Notes Series, Cambridge University Press.
Cheney J. (2009). A simple nominal type theory. Electronic Notes in Theoretical Computer Science 228 3752.
Cheney J. (2012). A dependent nominal type theory. Logical Methods in Computer Science 8 (1) 129.
Cheney J. and Urban C. (2004). Alpha-prolog: A logic programming language with names, binding and a-equivalence. In: ICLP 2004, Lecture Notes in Computer Science, vol. 3132, Springer, 269283.
Cheney J. and Urban C. (2008). Nominal logic programming. ACM Transactions on Programming Languages and Systems 30 (5) Article No. 26. doi:10.1145/1387673.1387675.
Cohen P.J. (1963). The independence of the continuum hypothesis. The National Academy of Sciences of the United States of America 50 (6) 11431148.
Cohen P.J. (1964). The independence of the continuum hypothesis ii. The National Academy of Sciences of the United States of America 51 (1) 105110.
Constable R.L. (1983). Constructive mathematics as a programming logic I: Some principles of theory. Fundamentals of Computation Theory, Lecture Notes in Computer Science, vol. 158, Springer, 6477.
Constable R.L., Allen S.F., Bromley H.M., Cleaveland W.R., Cremer J.F., Harper R.W., Howe D.J., Knoblock T.B., Mendler N.P., Panangaden P., Sasaki J.T. and Smith S.F. (1986). Implementing Mathematics with the Nuprl Proof Development System, Prentice-Hall, Inc.
Constable R. and Bickford M. (2014). Intuitionistic completeness of first-order logic. Annals of Pure and Applied Logic 165 (1) 164198.
Constable R.L. and Hickey J. (2000). Nuprl's class theory and its applications. Foundations of Secure Computation, NATO ASI Series, Series F: Computer & System Sciences, IOS Press, 91–116.
Constable R.L. and Smith S.F. (1993). Computational foundations of basic recursive function theory. Theoretical Computer Science 121 (1&2) 89112.
Coquand T. and Jaber G. (2010). A note on forcing and type theory. Fundamenta Informaticae 100 (1–4) 4352.
Coquand T. and Jaber G. (2012). A computational interpretation of forcing in type theory. In: Epistemology versus Ontology, Logic, Epistemology, and the Unity of Science, Springer, 203213.
Coquand T. and Paulin C. (1988). Inductively defined types. In: COLOG-88, International Conference on Computer Logic, Lecture Notes in Computer Science, vol. 417, Springer, 5066.
Crary K. (1998). Type-Theoretic Methodology for Practical Programming Languages, PhD thesis, Cornell University.
Crole R.L. and Nebel F. (2013). Nominal lambda calculus: An internal language for fm-cartesian closed categories. Electronic Notes in Theoretical Computer Science 298 93117.
Danvy O. and Filinski A. (1990). Abstracting control. In: LISP and Functional Programming, 151–160.
David R. and Mounier G. (2005). An intuitionistic λ-calculus with exceptions. Journal of Functional Programming 15 (1) 3352.
de Groote P. (1995). A simple calculus of exception handling. In: TLCA '95, Lecture Notes in Computer Science, vol. 902, Springer, 201215.
Dummett M.A.E. (1977). Elements of Intuitionism, 2nd ed., Clarendon Press.
Escardó M. and Oliva P. (2015). Bar recursion and products of selection functions. Journal of Symbolic Logic 80 (1) 128.
Escardó M.H. (2007). Infinite sets that admit fast exhaustive search. In: Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science (LICS 2007) 443452.
Escardó M.H. (2008). Exhaustible sets in higher-type computation. Logical Methods in Computer Science 4 (3) 137.
Escardó M.H. (2013). Continuity of Gödel's system T definable functionals via effectful forcing. Electronic Notes in Theoretical Computer Science 298 119141.
Escardó M.H. and Xu C. (2015). The inconsistency of a Brouwerian continuity principle with the Curry-Howard interpretation. In: TLCA 2015, LIPIcs, vol. 38, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik., 153164.
Fairweather E., Fernández M., Szasz N. and Tasistro A. (2015). Dependent types for nominal terms with atom substitutions. In: TLCA 2015, LIPIcs, vol. 38, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik., 180195.
Felleisen M. (1988). The theory and practice of first-class prompts. In: Ferrante J. and Mager P. (eds.) POPL 1988, ACM Press, 180190.
Felleisen M., Friedman D.P., Kohlbecker E.E. and Duba B.F. (1986). Reasoning with continuations. In: LICS '86, IEEE Computer Society, 131141.
Gabbay M. and Pitts A.M. (1999). A new approach to abstract syntax involving binders. In: Proceedings of the 14th Symposium on Logic in Computer Science (LICS 1999) 214–224.
Gielen W., de Swart H.C.M. and Veldman W. (1981). The continuum hypothesis in intuitionism. Journal of Symbolic Logic 46 (1) 121136.
Girard J.-Y., Taylor P. and Lafont Y. (1989). Proofs and Types, Cambridge University Press.
Gordon A.D. (1995). Bisimilarity as a theory of functional programming. Electronic Notes in Theoretical Computer Science 1 232252.
Gordon M.J.C., Milner R. and Wadsworth C.P. (1979). Edinburgh LCF: A Mechanised Logic of Computation, Lecture Notes in Computer Science, vol. 78, Springer-Verlag.
Griffin T. (1990). A formulae-as-types notion of control. In: Allen F.E. (ed.) POPL 1990, ACM Press, 4758.
Hickey J.J. (2001). The MetaPRL Logical Programming Environment, PhD thesis, Cornell University.
Hofmann M. (1995). Extensional Concepts in Intensional Type Theory, PhD thesis, University of Edinburgh.
Howard W.A. and Kreisel G. (1966). Transfinite induction and bar induction of types zero and one, and the role of continuity in intuitionistic analysis. Journal of Symbolic Logic 31 (3) 325358.
Howe D.J. (1989). Equality in lazy computation systems. In: LICS 1989, IEEE Computer Society, 198203.
Howe D.J. (1996). Semantic foundations for embedding HOL in Nuprl. In: Wirsing, M. and Nivat, M. (eds.) Algebraic Methodology and Software Technology, Lecture Notes in Computer Science, vol. 1101, Springer-Verlag, Berlin, 85101.
Jeffrey A. and Rathke J. (1999). Towards a theory of bisimulation for local names. In: Proceedings of the 14th Symposium on Logic in Computer Science (LICS 1999) 5666.
Kameyama Y. (2001). Dynamic control operators in type theory. In: APLAS'01, 1–11.
Kameyama Y. and Yonezawa T. (2008). Typed dynamic control operators for delimited continuations. In: Garrigue J. and Hermenegildo M.V. (eds.) FLOPS 2008, Lecture Notes in Computer Science, vol. 4989, Springer, 239–254.
Kleene S.C. and Vesley R.E. (1965). The Foundations of Intuitionistic Mathematics, Especially in Relation to Recursive Functions, North-Holland Publishing Company.
Kopylov A. (2004). Type Theoretical Foundations for Data Structures, Classes, and Objects, PhD thesis, Cornell University.
Kopylov A. and Nogin A. (2001). Markov's principle for propositional type theory. In: CSL 2001, Lecture Notes in Computer Science, vol. 2142, Springer, 570584.
Krebbers R. and Spitters B. (2011). Type classes for efficient exact real arithmetic in Coq. Logical Methods in Computer Science 9 (1) 127.
Kreisel, (1962). On weak completeness of intuitionistic predicate logic. The Journal of Symbolic Logic 27 (2) 139158.
Krivine J.-L. (1993). Lambda-Calculus, Types and Models, Ellis Horwood Series in Computers and their Applications, Masson.
Lebresne S. (2008). A system F with call-by-name exceptions. ICALP 2008, Lecture Notes in Computer Science, vol. 5126, Springer, 323335.
Lebresne S. (2009). A type system for call-by-name exceptions. Logical Methods in Computer Science 5 (4).
Longley J. (1999). When is a functional program not a functional program?. In: ICFP'99, ACM, 17.
Lösch S. and Pitts A.M. (2011). Relating two semantics of locally scoped names. In: CSL 2011, LIPIcs, vol. 12, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 396411.
Martin-Löf P. (1984). Intuitionistic type theory. In: Studies in Proof Theory, Lecture Notes, no. 1, Bibliopolis, Napoli.
Miquel A. (2000). A model for impredicative type systems, universes, intersection types and subtyping. In: LICS 2000, IEEE Computer Society, 1829.
Miquel A. (2001a). The implicit calculus of constructions. In: TLCA, 344–359.
Miquel A. (2001b). Le Calcul des Constructions Implicites: Syntaxe et Sémantique, PhD thesis, Université Paris 7.
Moore G.H. (1988). The origins of forcing. In: Logic Colloquium '86, Elsevier Science Publishers B.V. (North-Holland), 143173.
Murthy C.R. (1991). An evaluation semantics for classical proofs. In: LICS '91, IEEE Computer Society, 96107.
Nakano H. (1994). A constructive logic behind the catch and throw mechanism. Annals of Pure and Applied Logic 69 (2–3) 269301.
Nogin A. (2002). Theory and Implementings of an Efficient Tactic-Based Logical Framework, PhD thesis, Cornell University.
Nogin A. and Kopylov A. (2006). Formalizing type operations using the ‘image’ type constructor. Electronic Notes in Theoretical Computer Science 165 121132.
Normann D. (2006). Computing with functionals - computability theory or computer science?. Bulletin of Symbolic Logic 12 (1) 4359.
Odersky M. (1994). A functional theory of local names. In: POPL'94, ACM Press, 4859.
Parigot M. (1992). λμ-calculus: An algorithmic interpretation of classical natural deduction. In: Voronkov A. (ed.) LPAR'92, Lecture Notes in Computer Science, vol. 624, Springer, 190201.
Pitts A.M. (2001). Nominal logic: A first order theory of names and binding. In: TACS 2001, Lecture Notes in Computer Science, vol. 2215, Springer, 219242.
Pitts A.M. (2010). Nominal system T. In: POPL'10, ACM, 159170.
Pitts A.M. (2013). Nominal Sets: Names and Symmetry in Computer Science, Cambridge University Press.
Pitts A.M. and Gabbay M. (2000). A metalanguage for programming with bound names modulo renaming. In: MPC 2000, Lecture Notes in Computer Science, vol. 1837, Springer, 230255.
Pitts A.M., Matthiesen J. and Derikx J. (2015). A dependent type theory with abstractable names. Mackie I. and Ayala-Rincon M. (eds.) Proceedings of the LSFA 2014 Workshop, Electronic Notes in Theoretical Computer Science, vol. 312, Elsevier, 19–50.
Pitts A.M. and Stark I.D.B. (1993). Observable properties of higher order functions that dynamically create local names, or what's new?. In: MFCS'93, Lecture Notes in Computer Science, vol. 711, Springer, 122141.
Pottier F. (2007). Static name control for FreshML. In: Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science (LICS 2007) 356–365.
Pouillard P. and Pottier F. (2010). A fresh look at programming with names and binders. In: ICFP 2010, ACM, 217228.
Rahli V. and Bickford M. (2015). Coq as a metatheory for Nuprl with bar induction. Presented at CCC 2015. Available at http://www.nuprl.org/html/Nuprl2Coq/barind.pdf.
Rahli V. and Bickford M. (2016). A nominal exploration of intuitionism. In: Avigad J. and Chlipala A. (eds.) CPP 2016, ACM, 130141.
Rahli V., Bickford M. and Anand A. (2013). Formal program optimization in Nuprl using computational equivalence and partial types. In: ITP'13, Lecture Notes in Computer Science, vol. 7998, Springer, 261278.
Rahli V., Bickford M. and Constable R.L. (2016). A Story of Bar Induction in Nuprl. Extended version available at http://www.nuprl.org/html/Nuprl2Coq/bar-induction-long.pdf.
Rahli V., Bickford M. and Constable R.L. (2017). Bar induction: The good, the bad, and the ugly. In: Abstract book of LICS 2017: 32nd Annual ACM/IEEE Symposium on Logic in Computer Science. Open Access. (http://hdl.handle.net/10993/31268)
Rathjen M. (2005). Constructive set theory and Brouwerian principles. Journal of UCS 11 (12) 20082033.
Rathjen M. (2006). A note on bar induction in constructive set theory. Mathematical Logic Quarterly 52 (3) 253258.
Sacchini J.L. (2014). Exceptions in Dependent Type Theory, Presented at TYPES'14. Available at http://www.pps.univ-paris-diderot.fr/types2014/abstract-18.pdf.
Schöpp U. (2006). Names and Binding in Type Theory, PhD thesis, University of Edinburgh.
Schöpp U. and Stark I. (2004). A dependent type theory with names and binding. In: CSL 2004, Lecture Notes in Computer Science, vol. 3210, Springer, 235249.
Shinwell M.R. (2006). Fresh O'Caml: Nominal abstract syntax for the masses. Electronic Notes in Theoretical Computer Science 148 (2) 5377.
Shinwell M.R., Pitts A.M. and Gabbay M.J. (2003). FreshML: Programming with binders made simple. SIGPLAN Notices 38 (9) 263274.
Smith S.F. (1989). Partial Objects in Type Theory, PhD thesis, Cornell University.
The Univalent Foundations Program (2013). Homotopy Type Theory: Univalent Foundations of Mathematics. Available at http://homotopytypetheory.org/book, Institute for Advanced Study.
Thielecke H. (2000). On exceptions versus continuations in the presence of state. In: Smolka G. (ed.) ESOP 2000, Lecture Notes in Computer Science, vol. 1782, Springer, 397411.
Thielecke H. (2001). Contrasting Exceptions and Continuations. Available at http://www.cs.bu.edu/fac/kfoury/CVS-Working-Files/CS520-Fall06/Handouts/contrasting-exceptions-and-continuations.pdf.
TLCA 2015 (2015). LIPIcs, vol. 38, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik.
Troelstra A.S. (1973). Metamathematical Investigation of Intuitionistic Arithmetic and Analysis, Springer.
Troelstra A.S. (1975). Non-extensional equality. Fundamenta Mathematicae 82 (4) 307322.
Troelstra A.S. (1977a). Aspects of constructive mathematics. In: Handbook of Mathematical Logic, North-Holland Publishing Company, 9731052.
Troelstra A.S. (1977b). A note on non-extensional operations in connection with continuity and recursiveness. Indagationes Mathematicae 39 (5) 455462.
Troelstra A.S. and van Dalen D. (1988). Constructivism in Mathematics an Introduction, Studies in Logic and the Foundations of Mathematics, vol. 121, Elsevier.
van Atten M. and van Dalen D. (2002). Arguments for the continuity principle. Bulletin of Symbolic Logic 8 (3) 329347.
Veldman W. (2001). Understanding and using Brouwer's continuity principle. In: Reuniting the Antipodes — Constructive and Nonstandard Views of the Continuum, Synthese Library, vol. 306, Springer Netherlands, 285302 (English).
Veldman W. (2006). Brouwer's real thesis on bars. Philosophia Scientiæ CS6, 2142.
Veldman W. (2014). Brouwer's fan theorem as an axiom and as a contrast to Kleene's alternative. Archive for Mathematical Logic 53 (5–6) 621693.
Waaldijk F. (2005). On the foundations of constructive mathematics – especially in relation to the theory of continuous functions. Foundations of Science 10 (3) 249324.
Westbrook E.M. (2008). Higher-order Encodings with Constructors, PhD thesis, Washington University.
Westbrook E.M., Stump A. and Austin E. (2009). The calculus of nominal inductive constructions: An intensional approach to encoding name-bindings. In: LFMTP '09, ACM, 7483.
Xu C. (2015). A Continuous Computational Interpretation of Type Theories, PhD thesis, University of Birmingham.
Xu C. and Hötzel Escardó M. (2013). A constructive model of uniform continuity. In: TLCA 2013, Lecture Notes in Computer Science, vol. 7941, Springer, 236249.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Mathematical Structures in Computer Science
  • ISSN: 0960-1295
  • EISSN: 1469-8072
  • URL: /core/journals/mathematical-structures-in-computer-science
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
×

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 6 *
Loading metrics...

Abstract views

Total abstract views: 57 *
Loading metrics...

* Views captured on Cambridge Core between 2nd November 2017 - 23rd November 2017. This data will be updated every 24 hours.