skip to main content
research-article
Open Access
Artifacts Available
Artifacts Evaluated & Functional

Up-to techniques using sized types

Published:27 December 2017Publication History
Skip Abstract Section

Abstract

Up-to techniques are used to make it easier—or feasible—to construct, for instance, proofs of bisimilarity. This text shows how many up-to techniques can be framed as size-preserving functions, using sized types to keep track of sizes.

Through a number of examples it is argued that this approach to up-to techniques is often convenient to use in practice. Some examples of functions that cannot be made size-preserving are also included, in order to illustrate the limits of the approach. On the more theoretical side a class of up-to techniques intended to capture a natural mode of use of size-preserving functions is defined. This class turns out to correspond closely to "functions below the companion", a notion recently introduced by Pous.

Skip Supplemental Material Section

Supplemental Material

uptotechniquesusingsizedtypes.webm

References

  1. Andreas Abel. 2012. Type-Based Termination, Inflationary Fixed-Points, and Mixed Inductive-Coinductive Types. In Proceedings 8th Workshop on Fixed Points in Computer Science. Google ScholarGoogle ScholarCross RefCross Ref
  2. Andreas Abel and Brigitte Pientka. 2016. Well-founded recursion with copatterns and sized types. Journal of Functional Programming (2016). Google ScholarGoogle ScholarCross RefCross Ref
  3. Andreas Abel, Brigitte Pientka, David Thibodeau, and Anton Setzer. 2013. Copatterns: Programming Infinite Structures by Observations. In POPL ’13, Proceedings of 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Andreas Abel, Andrea Vezzosi, and Theo Winterhalter. 2017. Normalization by Evaluation for Sized Dependent Types. Proceedings of the ACM on Programming Languages 1, ICFP (2017). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. The Agda Team. 2017. The Agda Wiki. (2017). Retrieved 2017-11-07 from http://wiki.portal.chalmers.se/agda/Google ScholarGoogle Scholar
  6. Thorsten Altenkirch, Neil Ghani, Peter Hancock, Conor McBride, and Peter Morris. 2015. Indexed containers. Journal of Functional Programming (2015). Google ScholarGoogle ScholarCross RefCross Ref
  7. Roberto M. Amadio and Solange Coupet-Grimal. 1998. Analysis of a Guard Condition in Type Theory. In Foundations of Software Science and Computation Structures, First International Conference, FoSSaCS’98. Google ScholarGoogle ScholarCross RefCross Ref
  8. S. Arun-Kumar and M. Hennessy. 1992. An efficiency preorder for processes. Acta Informatica (1992). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Robert Atkey and Conor McBride. 2013. Productive Coprogramming with Guarded Recursion. In ICFP’13, Proceedings of the 2013 ACM SIGPLAN International Conference on Functional Programming. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Patrick Bahr, Hans Bugge Grathwohl, and Rasmus Ejlers Møgelberg. 2017. The Clocks Are Ticking: No More Delays! Reduction Semantics for Type Theory with Guarded Recursion. In 2017 32nd Annual ACM/IEEE Symposium on Logic in Computer Science (LICS). Google ScholarGoogle ScholarCross RefCross Ref
  11. G. Barthe, M. J. Frade, E. Giménez, L. Pinto, and T. Uustalu. 2004. Type-based termination of recursive definitions. Mathematical Structures in Computer Science (2004). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Gilles Barthe, Benjamin Grégoire, and Fernando Pastawski. 2006. CIC : Type-Based Termination of Recursive Definitions in the Calculus of Inductive Constructions. In Logic for Programming, Artificial Intelligence, and Reasoning, 13th International Conference, LPAR 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Henning Basold, Damien Pous, and Jurriaan Rot. 2017. Monoidal Company for Accessible Functors. (2017). Accepted for publication in the proceedings of the 7th Conference on Algebra and Coalgebra in Computer Science (CALCO 2017). Possible future DOI: Google ScholarGoogle ScholarCross RefCross Ref
  14. Lars Birkedal, Aleš Bizjak, Ranald Clouston, Hans Bugge Grathwohl, Bas Spitters, and Andrea Vezzosi. 2016. Guarded Cubical Type Theory: Path Equality for Guarded Recursion. In Computer Science Logic 2016, CSL 2016. Google ScholarGoogle ScholarCross RefCross Ref
  15. Aleš Bizjak, Hans Bugge Grathwohl, Ranald Clouston, Rasmus E. Møgelberg, and Lars Birkedal. 2016. Guarded Dependent Type Theory with Coinductive Types. In Foundations of Software Science and Computation Structures, 19th International Conference, FOSSACS 2016. Google ScholarGoogle ScholarCross RefCross Ref
  16. Frédéric Blanqui. 2004. A Type-Based Termination Criterion for Dependently-Typed Higher-Order Rewrite Systems. In Rewriting Techniques and Applications, 15th International Conference, RTA 2004. Google ScholarGoogle ScholarCross RefCross Ref
  17. Frédéric Blanqui. 2005. Decidability of Type-Checking in the Calculus of Algebraic Constructions with Size Annotations. In Computer Science Logic, 19th International Workshop, CSL 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Venanzio Capretta. 2005. General Recursion via Coinductive Types. Logical Methods in Computer Science (2005). Google ScholarGoogle ScholarCross RefCross Ref
  19. Kaustuv Chaudhuri, Matteo Cimini, and Dale Miller. 2015. A Lightweight Formalization of the Metatheory of BisimulationUp-To. In CPP’15, Proceedings of the 2015 ACM Conference on Certified Programs and Proofs. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Thierry Coquand. 1994. Infinite objects in type theory. In Types for Proofs and Programs, International Workshop TYPES ’93. Google ScholarGoogle ScholarCross RefCross Ref
  21. Nils Anders Danielsson. 2012. Operational Semantics Using the Partiality Monad. In ICFP’12, Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Nils Anders Danielsson and Thorsten Altenkirch. 2010. Subtyping, Declaratively: An Exercise in Mixed Induction and Coinduction. In Mathematics of Program Construction, 10th International Conference, MPC 2010. Google ScholarGoogle ScholarCross RefCross Ref
  23. Eduardo Giménez. 1996. Un Calcul de Constructions Infinies et son Application à la Vérification de Systèmes Communicants. Ph.D. Dissertation. Ecole Normale Supérieure de Lyon.Google ScholarGoogle Scholar
  24. Eduardo Giménez. 1998. Structural Recursive Definitions in Type Theory. In Automata, Languages and Programming, 25th International Colloquium, ICALP’98. Google ScholarGoogle ScholarCross RefCross Ref
  25. Jean-Yves Girard. 1972. Interprétation fonctionnelle et élimination des coupures de l’arithmétique d’ordre supérieur. Thèse de Doctorat d’État. Université Paris VII.Google ScholarGoogle Scholar
  26. Benjamin Grégoire and Jorge Luis Sacchini. 2010. On Strong Normalization of the Calculus of Constructions with Type-Based Termination. In Logic for Programming, Artificial Intelligence, and Reasoning, 17th International Conference, LPAR-17. Google ScholarGoogle ScholarCross RefCross Ref
  27. Daniel Hirschkoff. 1997. A Full Formalisation of π -Calculus Theory in the Calculus of Constructions. In Theorem Proving in Higher Order Logics, 10th International Conference, TPHOLs ’97. Google ScholarGoogle ScholarCross RefCross Ref
  28. Furio Honsell, Marino Miculan, and Ivan Scagnetto. 2001. π -calculus in (Co)inductive-type theory. Theoretical Computer Science (2001). Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. John Hughes, Lars Pareto, and Amr Sabry. 1996. Proving the Correctness of Reactive Systems Using Sized Types. In Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL ’96). Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Chung-Kil Hur, Georg Neis, Derek Dreyer, and Viktor Vafeiadis. 2013. The Power of Parameterization in Coinductive Proof. In POPL ’13, Proceedings of 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Robin Milner. 1983. Calculi for synchrony and asynchrony. Theoretical Computer Science (1983). Google ScholarGoogle ScholarCross RefCross Ref
  32. Robin Milner. 1989. Communication and Concurrency. Prentice Hall.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Hiroshi Nakano. 2000. A Modality for Recursion. In 15th Annual IEEE Symposium on Logic in Computer Science (LICS’00). Google ScholarGoogle ScholarCross RefCross Ref
  34. Ulf Norell. 2007. Towards a practical programming language based on dependent type theory. Ph.D. Dissertation. Chalmers University of Technology and Göteborg University.Google ScholarGoogle Scholar
  35. Joachim Parrow and Tjark Weber. 2016. The Largest Respectful Function. Logical Methods in Computer Science (2016). Google ScholarGoogle ScholarCross RefCross Ref
  36. Damien Pous. 2016. Coinduction All the Way Up. In Proceedings of the 31st Annual ACM-IEEE Symposium on Logic in Computer Science (LICS 2016). Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Damien Pous and Jurriaan Rot. 2017. Companions, Codensity and Causality. In Foundations of Software Science and Computation Structures, 20th International Conference, FOSSACS 2017. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Damien Pous and Davide Sangiorgi. 2011. Enhancements of the bisimulation proof method. In Advanced Topics in Bisimulation and Coinduction, Davide Sangiorgi and Jan Rutten (Eds.). Google ScholarGoogle ScholarCross RefCross Ref
  39. Jorge Luis Sacchini. 2013. Type-Based Productivity of Stream Definitions in the Calculus of Constructions. In 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS). Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Jorge Luis Sacchini. 2014. Linear Sized Types in the Calculus of Constructions. In Functional and Logic Programming, 12th International Symposium, FLOPS 2014. Google ScholarGoogle ScholarCross RefCross Ref
  41. Jorge Luis Sacchini. 2015. Well-Founded Sized Types in the Calculus of (Co)Inductive Constructions. Draft. (2015). Retrieved 2017-11-07 from http://web.archive.org/web/20160531152811/http://www.qatar.cmu.edu:80/~sacchini/well-founded/ well-founded.pdfGoogle ScholarGoogle Scholar
  42. Davide Sangiorgi. 1998. On the bisimulation proof method. Mathematical Structures in Computer Science (1998). Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Davide Sangiorgi. 2017. Equations, Contractions, and Unique Solutions. ACM Transactions on Computational Logic (2017). Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Davide Sangiorgi and Robin Milner. 1992. The problem of “weak bisimulation up to”. In CONCUR ’92, Third International Conference on Concurrency Theory. Google ScholarGoogle ScholarCross RefCross Ref
  45. Steven Schäfer and Gert Smolka. 2017. Tower Induction and Up-to Techniques for CCS with Fixed Points. In Relational and Algebraic Methods in Computer Science, 16th International Conference, RAMiCS 2017. Google ScholarGoogle ScholarCross RefCross Ref
  46. Edsko de Vries. 2009. Re: [Coq-Club] Adding (inductive) transitivity to weak bisimilarity not sound? (was: Need help with coinductive proof). Message to the Coq-Club mailing list. (Aug. 2009).Google ScholarGoogle Scholar
  47. Hongwei Xi. 2002. Dependent Types for Program Termination Verification. Higher-Order and Symbolic Computation (2002). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Up-to techniques using sized types

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!