skip to main content
research-article
Open Access

Simple noninterference from parametricity

Published:26 July 2019Publication History
Skip Abstract Section

Abstract

In this paper we revisit the connection between parametricity and noninterference. Our primary contribution is a proof of noninterference for a polyvariant variation of the Dependency Core Calculus of in the Calculus of Constructions. The proof is modular: it leverages parametricity for the Calculus of Constructions and the encoding of data abstraction using existential types. This perspective gives rise to simple and understandable proofs of noninterference from parametricity. All our contributions have been mechanised in the Agda proof assistant.

Skip Supplemental Material Section

Supplemental Material

a89-algehed.webm

webm

100.8 MB

References

  1. Martín Abadi, Anindya Banerjee, Nevin Heintze, and Jon G Riecke. 1999. A core calculus of dependency. In Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. ACM, 147–160. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Alejandro Aguirre, Gilles Barthe, Marco Gaboardi, Deepak Garg, and Pierre-Yves Strub. 2017. A relational logic for higher-order programs. Proceedings of the ACM on Programming Languages 1, ICFP (2017), 21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Maximilian Algehed. 2018. A Perspective on the Dependency Core Calculus. In Proceedings of the 13th Workshop on Programming Languages and Analysis for Security (PLAS ’18). ACM, New York, NY, USA, 24–28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Maximilian Algehed and Alejandro Russo. 2017. Encoding DCC in Haskell. In Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security. ACM, 77–89. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Henk Barendregt, Wil Dekkers, and Richard Statman. 2013. Lambda calculus with types. Cambridge University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Jean-philippe Bernardy, Patrik Jansson, and Ross Paterson. 2012. Proofs for free: Parametricity for dependent types. Journal of Functional Programming 22, 2 (2012), 107–152. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Yves Bertot and Pierre Castéran. 2013. Interactive theorem proving and program development: Coq’Art: the calculus of inductive constructions. Springer Science & Business Media. Google ScholarGoogle Scholar
  8. William J Bowman and Amal Ahmed. 2015. Noninterference for free. ACM SIGPLAN Notices 50, 9 (2015), 101–113. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Pablo Buiras, Dimitrios Vytiniotis, and Alejandro Russo. 2015. HLIO: Mixing static and dynamic typing for information-flow control in Haskell. In ACM SIGPLAN Notices, Vol. 50. ACM, 289–301. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Luca Cardelli and Peter Wegner. 1985. On understanding types, data abstraction, and polymorphism. ACM Computing Surveys (CSUR) 17, 4 (1985), 471–523. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Thierry Coquand and Gérard Huet. 1988. The calculus of constructions. Information and computation 76, 2-3 (1988), 95–120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Eugenio Moggi. 1991. Notions of computation and monads. Information and computation 93, 1 (1991), 55–92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Ulf Norell. 2007. Towards a practical programming language based on dependent type theory. Ph.D. Dissertation. Department of Computer Science and Engineering, Chalmers University of Technology, SE-412 96 Göteborg, Sweden.Google ScholarGoogle Scholar
  14. John C Reynolds. 1983. Types, abstraction and parametric polymorphism. (1983).Google ScholarGoogle Scholar
  15. Alejandro Russo. 2015. Functional pearl: Two can keep a secret, if one of them uses Haskell. In ACM SIGPLAN Notices, Vol. 50. ACM, 280–288. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Alejandro Russo, Koen Claessen, and John Hughes. 2008. A library for light-weight information-flow security in Haskell. In ACM Sigplan Notices, Vol. 44. ACM, 13–24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Naokata Shikuma and Atsushi Igarashi. 2008. Proving Noninterference by a Fully Complete Translation to the Simply Typed lambda-calculus. CoRR abs/0808.3307 (2008). arXiv: 0808.3307 http://arxiv.org/abs/0808.3307 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Deian Stefan, Alejandro Russo, John C Mitchell, and David Mazières. 2011. Flexible dynamic information flow control in Haskell. In ACM Sigplan Notices, Vol. 46. ACM, 95–106. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Stephen Tse and Steve Zdancewic. 2004. Translating dependency into parametricity. In ACM SIGPLAN Notices, Vol. 39. ACM, 115–125. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Marco Vassena and Alejandro Russo. 2016. On formalizing information-flow control libraries. In Proceedings of the 2016 ACM Workshop on Programming Languages and Analysis for Security. ACM, 15–28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Marco Vassena, Alejandro Russo, Pablo Buiras, and Lucas Waye. 2018. MAC A verified static information-flow control library. Journal of Logical and Algebraic Methods in Programming 95 (2018), 148 – 180.Google ScholarGoogle ScholarCross RefCross Ref
  22. Philip Wadler. 1989. Theorems for free!. In Proceedings of the fourth international conference on Functional programming languages and computer architecture. ACM, 347–359. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Simple noninterference from parametricity

            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

            • Published in

              cover image Proceedings of the ACM on Programming Languages
              Proceedings of the ACM on Programming Languages  Volume 3, Issue ICFP
              August 2019
              1054 pages
              EISSN:2475-1421
              DOI:10.1145/3352468
              Issue’s Table of Contents

              Copyright © 2019 Owner/Author

              This work is licensed under a Creative Commons Attribution International 4.0 License.

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 26 July 2019
              Published in pacmpl Volume 3, Issue ICFP

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader