Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11200))

Abstract

A decision procedure for the Barendregt-Coppo-Dezani subtype relation on intersection types (“BCD subtyping”) is presented and formally verified in Coq. Types are extended with unary, covariant, distributing, preordered type constructors and binary products. A quadratic upper bound on the algorithm runtime is established. The formalization can be compiled to executable OCaml or Haskell code using the extraction mechanism of Coq.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    https://github.com/JanBessai/SubtypeMachine.

References

  1. Avigad, J., Donnelly, K.: Formalizing O notation in Isabelle/HOL. In: Basin, D., Rusinowitch, M. (eds.) IJCAR 2004. LNCS (LNAI), vol. 3097, pp. 357–371. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-25984-8_27

    Chapter  Google Scholar 

  2. van Bakel, S.: Complete restrictions of the intersection type discipline. Theor. Comput. Sci. 102(1), 135–163 (1992). https://doi.org/10.1016/0304-3975(92)90297-S

    Article  MathSciNet  MATH  Google Scholar 

  3. Barendregt, H.P., Dekkers, W., Statman, R.: Lambda Calculus with Types. Perspectives in logic. Cambridge University Press (2013). http://www.cambridge.org/de/academic/subjects/mathematics/logic-categories-and-sets/lambda-calculus-types

  4. Barendregt, H., Coppo, M., Dezani-Ciancaglini, M.: A filter lambda model and the completeness of type assignment. J. Symb. Log. 48(4), 931–940 (1983). https://doi.org/10.2307/2273659

    Article  MathSciNet  MATH  Google Scholar 

  5. Bessai, J., Dudenhefner, A., Düdder, B., Martens, M., Rehof, J.: Combinatory logic synthesizer. In: Margaria, T., Steffen, B. (eds.) ISoLA 2014. LNCS, vol. 8802, pp. 26–40. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-45234-9_3

    Chapter  Google Scholar 

  6. Bessai, J., Dudenhefner, A., Düdder, B., Rehof, J.: Extracting a formally verified Subtyping algorithm for intersection types from ideals and filters. Types (2016)

    Google Scholar 

  7. Bi, X., Oliveira, B.C.d.S., Schrijvers, T.: The essence of nested composition. In: 32nd European Conference on Object-Oriented Programming, ECOOP 2018, Amsterdam, The Netherlands, 16–21 July 2018, pp. 22:1–22:33 (2018). https://doi.org/10.4230/LIPIcs.ECOOP.2018.22

  8. Damm, F.M.: Subtyping with union types, intersection types and recursive types. In: Hagiya, M., Mitchell, J.C. (eds.) TACS 1994. LNCS, vol. 789, pp. 687–706. Springer, Heidelberg (1994). https://doi.org/10.1007/3-540-57887-0_121

    Chapter  Google Scholar 

  9. Damm, F.M.: Subtyping with union types, intersection types and recursive types II. Ph.D. thesis, INRIA (1994)

    Google Scholar 

  10. Dudenhefner, A., Martens, M., Rehof, J.: The algebraic intersection type unification problem. Log. Methods Comput. Sci. 13(3) (2017). https://doi.org/10.23638/LMCS-13(3:9)2017

  11. Dunfield, J.: A unified system of type refinements. Ph.D. thesis, Carnegie Mellon University (2007)

    Google Scholar 

  12. Grigore, R.: Java generics are turing complete. In: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, Paris, France, 18–20 January 2017, pp. 73–85 (2017). http://dl.acm.org/citation.cfm?id=3009871

  13. Guéneau, A., Charguéraud, A., Pottier, F.: A fistful of dollars: formalizing asymptotic complexity claims via deductive program verification. In: Ahmed, A. (ed.) ESOP 2018. LNCS, vol. 10801, pp. 533–560. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-89884-1_19

    Chapter  Google Scholar 

  14. Hindley, J.R.: The simple semantics for Coppo-Dezani-Sallé types. In: Dezani-Ciancaglini, M., Montanari, U. (eds.) Programming 1982. LNCS, vol. 137, pp. 212–226. Springer, Heidelberg (1982). https://doi.org/10.1007/3-540-11494-7_15

    Chapter  Google Scholar 

  15. Hoffmann, J., Das, A., Weng, S.: Towards automatic resource bound analysis for OCaml. In: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, Paris, France, 18–20 January 2017, pp. 359–373 (2017). http://dl.acm.org/citation.cfm?id=3009842

  16. Honsell, F., Liquori, L., Stolze, C., Scagnetto, I.: The Delta-framework. CoRR abs/1808.04193 (2018). http://arxiv.org/abs/1808.04193

  17. Kennedy, A., Pierce, B.C.: On decidability of nominal subtyping with variance. In: International Workshop on Foundations and Developments of Object-Oriented Languages (FOOL/WOOD), January 2007

    Google Scholar 

  18. Kurata, T., Takahashi, M.: Decidable properties of intersection type systems. In: Dezani-Ciancaglini, M., Plotkin, G. (eds.) TLCA 1995. LNCS, vol. 902, pp. 297–311. Springer, Heidelberg (1995). https://doi.org/10.1007/BFb0014060

    Chapter  Google Scholar 

  19. Larchey-Wendling, D., Monin, J.F.: Simulating induction-recursion for partial algorithms. In: TYPES (2018)

    Google Scholar 

  20. Laurent, O.: Intersection subtyping with constructors. In: Pagani, M. (ed.) Proceedings of the Ninth Workshop on Intersection Types and Related Systems (2018)

    Google Scholar 

  21. Magaud, N.: Transferring arithmetic decision procedures (on Z) to alternative representations. In: CoqPL 2017: The Third International Workshop on Coq for Programming Languages (2017)

    Google Scholar 

  22. Pierce, B.C.: A decision procedure for the subtype relation on intersection types with bounded variables. Citeseer (1989)

    Google Scholar 

  23. Rehof, J., Urzyczyn, P.: Finite combinatory logic with intersection types. In: Ong, L. (ed.) TLCA 2011. LNCS, vol. 6690, pp. 169–183. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21691-6_15

    Chapter  Google Scholar 

  24. Statman, R.: A finite model property for intersection types. In: Proceedings Seventh Workshop on Intersection Types and Related Systems, ITRS 2014, Vienna, Austria, 18 July 2014, pp. 1–9 (2014). https://doi.org/10.4204/EPTCS.177.1

    Article  MathSciNet  Google Scholar 

  25. Steffen, B., Cleaveland, R.: When is “partial” adequate? A logic-based proof technique using partial specifications. In: Proceedings of the Fifth Annual Symposium on Logic in Computer Science (LICS 1990), Philadelphia, Pennsylvania, USA, 4–7 June 1990, pp. 440–449 (1990). https://doi.org/10.1109/LICS.1990.113768

Download references

Acknowledgments

The authors would like to thank Olivier Laurent, as well as Andrej Dudenhefner, Tristan Schäfer, Anna Vasileva, and Jan Winkels for the prior work, and patient as well as enlightening discussions without which the results in this paper would have been impossible.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jan Bessai .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Bessai, J., Rehof, J., Düdder, B. (2019). Fast Verified BCD Subtyping. In: Margaria, T., Graf, S., Larsen, K. (eds) Models, Mindsets, Meta: The What, the How, and the Why Not?. Lecture Notes in Computer Science(), vol 11200. Springer, Cham. https://doi.org/10.1007/978-3-030-22348-9_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-22348-9_21

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-22347-2

  • Online ISBN: 978-3-030-22348-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics