skip to main content
research-article
Open Access

Modalities, cohesion, and information flow

Published:02 January 2019Publication History
Skip Abstract Section

Abstract

It is informally understood that the purpose of modal type constructors in programming calculi is to control the flow of information between types. In order to lend rigorous support to this idea, we study the category of classified sets, a variant of a denotational semantics for information flow proposed by Abadi et al. We use classified sets to prove multiple noninterference theorems for modalities of a monadic and comonadic flavour. The common machinery behind our theorems stems from the the fact that classified sets are a (weak) model of Lawvere's theory of axiomatic cohesion. In the process, we show how cohesion can be used for reasoning about multi-modal settings. This leads to the conclusion that cohesion is a particularly useful setting for the study of both information flow, but also modalities in type theory and programming languages at large.

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 - POPL ’99. ACM Press, New York, New York, USA, 147–160. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Samson Abramsky and Nikos Tzevelekos. 2011. Introduction to Categories and Categorical Logic. In New Structures for Physics, Bob Coecke (Ed.). Springer-Verlag, 3–94.Google ScholarGoogle Scholar
  3. Steve Awodey. 2010. Category Theory. Oxford University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Nick Benton, Gavin M. Bierman, and Valeria de Paiva. 1998. Computational types from a logical perspective. Journal of Functional Programming 8, 2 (1998), 177–193. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Francis Borceux. 1994. Handbook of Categorical Algebra. Cambridge University Press, Cambridge.Google ScholarGoogle Scholar
  6. William J. Bowman and Amal Ahmed. 2015. Noninterference for free. In Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming - ICFP 2015. ACM Press, New York, New York, USA, 101–113. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Stephen Brookes and Shai Geva. 1992. Computational comonads and intensional semantics. In Applications of Categories in Computer Science, M. P. Fourman, Peter T Johnstone, and Andrew M Pitts (Eds.). Vol. 177. Cambridge University Press, Cambridge, 1–44.Google ScholarGoogle Scholar
  8. Ranald Clouston, Alěs Bizjak, Hans Bugge Grathwohl, and Lars Birkedal. 2016. The guarded lambda calculus: Programming and reasoning with guarded recursion for coinductive types. Logical Methods in Computer Science 12, 3 (2016), 1–39.Google ScholarGoogle Scholar
  9. Roy L. Crole. 1993. Categories for Types. Cambridge University Press.Google ScholarGoogle Scholar
  10. Pierre-Louis Curien, Marcelo Fiore, and Guillaume Munch-Maccagnoni. 2016. A theory of effects and resources: adjunction models and polarised calculi. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL 2016. ACM Press, New York, New York, USA, 44–56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Rowan Davies and Frank Pfenning. 1996. A modal analysis of staged computation. In Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’96). 258–270. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Rowan Davies and Frank Pfenning. 2001. A modal analysis of staged computation. J. ACM 48, 3 (2001), 555–604. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Dorothy E Denning. 1976. A lattice model of secure information flow. Commun. ACM 19, 5 (1976), 236–243. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Marco Gaboardi, Shin-ya Katsumata, Dominic Orchard, Flavien Breuvart, and Tarmo Uustalu. 2016. Combining effects and coeffects via grading. In Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming - ICFP 2016. ACM Press, New York, New York, USA, 476–489. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. A. Goguen and J. Meseguer. 1982. Security Policies and Security Models. In 1982 IEEE Symposium on Security and Privacy. IEEE, 11–11.Google ScholarGoogle Scholar
  16. Nevin Heintze and Jon G Riecke. 1998. The SLam calculus: programming with secrecy and integrity. In Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL ’98. ACM Press, New York, New York, USA, 365–377. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Claudio Hermida, Uday S. Reddy, and Edmund P. Robinson. 2014. Logical relations and parametricity - A Reynolds Programme for category theory and programming languages. Electronic Notes in Theoretical Computer Science 303 (2014), 149–180. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Martin Hofmann. 1999. Type Systems for Polynomial-Time Computation. Habilitation thesis. Technischen Universität Darmstadt. http://www.lfcs.inf.ed.ac.uk/reports/99/ECS- LFCS- 99- 406/Google ScholarGoogle Scholar
  19. Peter T. Johnstone. 2003. Sketches of an Elephant: A Topos Theory Compendium. Clarendon Press.Google ScholarGoogle Scholar
  20. G. A. Kavvos. 2017a. Dual-context calculi for modal logic. In 2017 32nd Annual ACM/IEEE Symposium on Logic in Computer Science (LICS). IEEE.Google ScholarGoogle ScholarCross RefCross Ref
  21. G. A. Kavvos. 2017b. Dual-context calculi for modal logic (technical report). Technical Report. University of Oxford. http://www.lambdabetaeta.eu/papers/dualcalc.pdfGoogle ScholarGoogle Scholar
  22. Neelakantan R. Krishnaswami. 2013. Higher-order functional reactive programming without spacetime leaks. In Proceedings of the 18th ACM SIGPLAN international conference on Functional programming - ICFP ’13. ACM, ACM Press, New York, New York, USA, 221. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Leonard J. LaPadula and D. Elliott Bell. 1996. Secure Computer Systems: Mathematical Foundations. Journal of Computer Security 4, 2-3 (1996), 239–263.Google ScholarGoogle Scholar
  24. F. William Lawvere. 2007. Axiomatic cohesion. Theory and Applications of Categories 19, 3 (2007), 41–49. http://www.tac. mta.ca/tac/volumes/19/3/19- 03.pdfGoogle ScholarGoogle Scholar
  25. F. William Lawvere and M. Menni. 2015. Internal choice holds in the discrete part of any cohesive topos satisfying stable connected codiscreteness. Theory and Applications of Categories 30, 26 (2015), 909–932. http://www.tac.mta.ca/tac/ volumes/30/26/30- 26.pdfGoogle ScholarGoogle Scholar
  26. Daniel R. Licata and Michael Shulman. 2016. Adjoint Logic with a 2-Category of Modes. In Proceedings of LFCS 2016. 219–235.Google ScholarGoogle Scholar
  27. Daniel R. Licata, Michael Shulman, and Mitchell Riley. 2017. A Fibrational Framework for Substructural and Modal Logics. In 2nd International Conference on Formal Structures for Computation and Deduction (FSCD 2017) (Leibniz International Proceedings in Informatics (LIPIcs)), Dale Miller (Ed.), Vol. 84. Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, 25:1—-25:22.Google ScholarGoogle Scholar
  28. Saunders Mac Lane. 1978. Categories for the Working Mathematician. Graduate Texts in Mathematics, Vol. 5. Springer New York, New York, NY.Google ScholarGoogle Scholar
  29. Kenji Miyamoto and Atsushi Igarashi. 2004. A Modal Foundation for Secure Information Flow. In Proceedings of the Workshop on Foundations of Computer Security (FCS’04). 187–203.Google ScholarGoogle Scholar
  30. Eugenio Moggi. 1991. Notions of computation and monads. Information and Computation 93, 1 (1991), 55–92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Andreas Nuyts and Dominique Devriese. 2018. Degrees of Relatedness. In Proceedings of the 33rd Annual ACM/IEEE Symposium on Logic in Computer Science - LICS ’18. ACM Press, New York, New York, USA, 779–788. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Andreas Nuyts, Andrea Vezzosi, and Dominique Devriese. 2017. Parametric quantifiers for dependent type theory. Proceedings of the ACM on Programming Languages 1, ICFP (2017). Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Tomas Petricek, Dominic Orchard, and Alan Mycroft. 2014. Coeffects: A calculus of context-dependent computation. Proceedings of the 19th ACM SIGPLAN international conference on Functional programming - ICFP ’14 (2014), 123–135. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Benjamin C. Pierce. 2002. Types and Programming Languages. The MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Gordon D. Plotkin. 1977. LCF considered as a programming language. Theoretical Computer Science 5, 3 (1977), 223–255.Google ScholarGoogle ScholarCross RefCross Ref
  36. Vineet Rajani and Deepak Garg. 2018. Types for Information Flow Control: Labeling Granularity and Semantic Models. In 31st IEEE Symposium on Computer Security Foundations (CSF 2018). arXiv: 1805.00120Google ScholarGoogle Scholar
  37. John Rushby. 1986. The Bell and La Padula Security Model. Draft report, Computer Science Laboratory, SRI (1986), 1–19.Google ScholarGoogle Scholar
  38. Andrei Sabelfeld and David Sands. 2001. A per model of secure information flow in sequential programs. Higher-Order and Symbolic Computation 14 (2001), 59–91. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Naokata Shikuma and Atsushi Igarashi. 2008. Proving Noninterference by a Fully Complete Translation to the Simply Typed lambda-calculus. Logical Methods in Computer Science 4, 3 (2008), 10.Google ScholarGoogle ScholarCross RefCross Ref
  40. Michael Shulman. 2018. Brouwer’s fixed-point theorem in real-cohesive homotopy type theory. Mathematical Structures in Computer Science 28, 6 (2018), 856–941.Google ScholarGoogle Scholar
  41. Thomas Streicher. 2006. Domain-theoretic Foundations of Functional Programming. World Scientific. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Stephen Tse and Steve Zdancewic. 2004. Translating dependency into parametricity. In Proceedings of the ninth ACM SIGPLAN international conference on Functional programming - ICFP ’04. ACM Press, New York, New York, USA, 115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Tarmo Uustalu and Varmo Vene. 2008. Comonadic Notions of Computation. Electronic Notes in Theoretical Computer Science 203, 5 (2008), 263–284. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Modalities, cohesion, and information flow

              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!