Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Definitional proof-irrelevance without K

Published: 02 January 2019 Publication History
  • Get Citation Alerts
  • Abstract

    Definitional equality—or conversion—for a type theory with a decidable type checking is the simplest tool to prove that two objects are the same, letting the system decide just using computation. Therefore, the more things are equal by conversion, the simpler it is to use a language based on type theory. Proof-irrelevance, stating that any two proofs of the same proposition are equal, is a possible way to extend conversion to make a type theory more powerful. However, this new power comes at a price if we integrate it naively, either by making type checking undecidable or by realizing new axioms—such as uniqueness of identity proofs (UIP)—that are incompatible with other extensions, such as univalence. In this paper, taking inspiration from homotopy type theory, we propose a general way to extend a type theory with definitional proof irrelevance, in a way that keeps type checking decidable and is compatible with univalence. We provide a new criterion to decide whether a proposition can be eliminated over a type (correcting and improving the so-called singleton elimination of Coq) by using techniques coming from recent development on dependent pattern matching without UIP. We show the generality of our approach by providing implementations for both Coq and Agda, both of which are planned to be integrated in future versions of those proof assistants.

    Supplementary Material

    WEBM File (a3-tabareau.webm)

    References

    [1]
    Andreas Abel, Joakim Öhman, and Andrea Vezzosi. 2018. Decidability of Conversion for Type Theory in Type Theory. Proc. ACM Program. Lang. 2, POPL, Article 23 (Jan. 2018), 29 pages.
    [2]
    Andreas Abel and Gabriel Scherer. 2012. On Irrelevance and Algorithmic Equality in Predicative Type Theory. Logical Methods in Computer Science 8, 1 (03 2012).
    [3]
    T. Altenkirch. 1999. Extensional equality in intensional type theory. In Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158). 412–420.
    [4]
    Thorsten Altenkirch, Paolo Capriotti, and Nicolai Kraus. 2016. Extending Homotopy Type Theory with Strict Equality. In CSL.
    [5]
    Steven Awodey and Andrej Bauer. 2004. Propositions As {Types}. J. Log. and Comput. 14, 4 (Aug. 2004), 447–471.
    [6]
    Simon Boulier, Pierre-Marie Pédrot, and Nicolas Tabareau. 2017. The Next 700 Syntactical Models of Type Theory. In Proceedings of Certified Programs and Proofs. ACM, 182–194.
    [7]
    Edwin Brady, Conor McBride, and James McKinna. 2004. Inductive Families Need Not Store Their Indices. In Types for Proofs and Programs, Stefano Berardi, Mario Coppo, and Ferruccio Damiani (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 115–129.
    [8]
    Paolo Capriotti. 2017. Models of type theory with strict equality. Ph.D. Dissertation. University of Nottingham.
    [9]
    Jesper Cockx and Andreas Abel. 2018. Elaborating Dependent (Co)pattern matching. In Proceedings of the 23th ACM SIG-PLAN Conference on Functional Programming (ICFP 2018). ACM Press, St. Louis, Missouri, United States.
    [10]
    Jesper Cockx and Dominique Devriese. 2018. Proof-relevant unification: Dependent pattern matching with only the axioms of your type theory. Journal of Functional Programming 28 (2018), e12.
    [11]
    Jesper Cockx, Dominique Devriese, and Frank Piessens. 2014. Pattern matching without K. In ACM SIGPLAN Notices, Vol. 49. ACM, 257–268.
    [12]
    Thierry Coquand. 2016. Universe of Bishop sets. (2016). www.cse.chalmers.se/~coquand/bishop.pdf .
    [13]
    Peter Dybjer. 1996. Internal type theory. In Types for Proofs and Programs, Stefano Berardi and Mario Coppo (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 120–134.
    [14]
    Martin Hofmann. 1995. Conservativity of equality reflection over intensional type theory. In International Workshop on Types for Proofs and Programs. Springer, 153–164.
    [15]
    P. Letouzey. 2004. Programmation fonctionnelle certifiée – L’extraction de programmes dans l’assistant Coq. Ph.D. Dissertation. Université Paris-Sud.
    [16]
    Cyprien Mangin and Matthieu Sozeau. 2018. Equations Reloaded. (2018). http://mattam82.github.io/Coq-Equations/
    [17]
    Per Martin-Löf. 1975. An Intuitionistic Theory of Types: Predicative Part. In Logic Colloquium ’73, H.E. Rose and J.C. Shepherdson (Eds.). Studies in Logic and the Foundations of Mathematics, Vol. 80. Elsevier, 73 – 118.
    [18]
    Frank Pfenning. 2001. Intensionality, Extensionality, and Proof Irrelevance in Modal Type Theory. In Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science (LICS ’01). IEEE Computer Society, Washington, DC, USA, 221–. http://dl.acm.org/citation.cfm?id=871816.871845
    [19]
    Aaron Stump. 2018. From realizability to induction via dependent intersection. Ann. Pure Appl. Logic 169, 7 (2018), 637–655.
    [20]
    The Univalent Foundations Program. 2013. Homotopy Type Theory: Univalent Foundations of Mathematics. Institute for Advanced Study.
    [21]
    Vladimir Voevodsky. 2011. Resising Rules - their use and semantic justification. www.math.ias.edu/~vladimir/Site3/ Univalent_Foundations_files/2011_Bergen.pdf . (2011).
    [22]
    Vladimir Voevodsky. 2013. A simple type system with two identity types. (2013). https://ncatlab.org/homotopytypetheory/ files/HTS.pdf
    [23]
    Benjamin Werner. 2008. On the Strength of Proof-Irrelevant Type Theories. 4 (09 2008), 1–20.

    Cited By

    View all
    • (2024)Internalizing Indistinguishability with Dependent TypesProceedings of the ACM on Programming Languages10.1145/36328868:POPL(1298-1325)Online publication date: 5-Jan-2024
    • (2024)Definitional Functoriality for Dependent (Sub)TypesProgramming Languages and Systems10.1007/978-3-031-57262-3_13(302-331)Online publication date: 5-Apr-2024
    • (2023)Impredicative Observational EqualityProceedings of the ACM on Programming Languages10.1145/35717397:POPL(2171-2196)Online publication date: 11-Jan-2023
    • Show More Cited By

    Index Terms

    1. Definitional proof-irrelevance without K

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image Proceedings of the ACM on Programming Languages
      Proceedings of the ACM on Programming Languages  Volume 3, Issue POPL
      January 2019
      2275 pages
      EISSN:2475-1421
      DOI:10.1145/3302515
      Issue’s Table of Contents
      This work is licensed under a Creative Commons Attribution-ShareAlike International 4.0 License.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 02 January 2019
      Published in PACMPL Volume 3, Issue POPL

      Permissions

      Request permissions for this article.

      Check for updates

      Badges

      Author Tags

      1. proof assistants
      2. proof irrelevance
      3. type theory

      Qualifiers

      • Research-article

      Funding Sources

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)387
      • Downloads (Last 6 weeks)25

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)Internalizing Indistinguishability with Dependent TypesProceedings of the ACM on Programming Languages10.1145/36328868:POPL(1298-1325)Online publication date: 5-Jan-2024
      • (2024)Definitional Functoriality for Dependent (Sub)TypesProgramming Languages and Systems10.1007/978-3-031-57262-3_13(302-331)Online publication date: 5-Apr-2024
      • (2023)Impredicative Observational EqualityProceedings of the ACM on Programming Languages10.1145/35717397:POPL(2171-2196)Online publication date: 11-Jan-2023
      • (2023)An Order-Theoretic Analysis of Universe PolymorphismProceedings of the ACM on Programming Languages10.1145/35712507:POPL(1659-1685)Online publication date: 11-Jan-2023
      • (2023)A Type-Based Approach to Divide-and-Conquer Recursion in CoqProceedings of the ACM on Programming Languages10.1145/35711967:POPL(61-90)Online publication date: 11-Jan-2023
      • (2023)Two-level type theory and applicationsMathematical Structures in Computer Science10.1017/S0960129523000130(1-56)Online publication date: 30-May-2023
      • (2023)Curiously Empty Intersection of Proof Engineering and Computational SciencesImpact of Scientific Computing on Science and Society10.1007/978-3-031-29082-4_3(45-73)Online publication date: 8-Jul-2023
      • (2022)A reasonably gradual type theoryProceedings of the ACM on Programming Languages10.1145/35476556:ICFP(931-959)Online publication date: 31-Aug-2022
      • (2022)Observational equality: now for goodProceedings of the ACM on Programming Languages10.1145/34986936:POPL(1-27)Online publication date: 12-Jan-2022
      • (2022)Coq’s vibrant ecosystem for verification engineering (invited talk)Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3497775.3503951(2-11)Online publication date: 17-Jan-2022
      • Show More Cited By

      View Options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Get Access

      Login options

      Full Access

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media