Trust in the λ-calculus

  • Jens Palsberg
  • Peter Ørb⇓ek
Contributed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 983)


This paper introduces trust analysis for higher-order languages. Trust analysis encourages the programmer to make explicit the trustworthiness of data, and in return it can guarantee that no mistakes with respect to trust will be made at run-time. We present a confluent λ-calculus with explicit trust operations, and we equip it with a trusttype system which has the subject reduction property. Trust information in presented as two annotations of each function type constructor, and type inference is computable in O(n3) time.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    J.-P. Banâtre, C. Bryce, and D. L. Metayer. Compile-time detection of information flow in sequential programs. In D. Gollmann, editor, Computer Security — ESORICS 94, 3rd European Symp. on Research in Comp. Security, pages 55–73. Springer-Verlag (LNCS 875), 1994.Google Scholar
  2. 2.
    H. P. Barendregt. The Lambda Calculus: Its Syntax and Semantics. North-Holland, 1981.Google Scholar
  3. 3.
    G. L. Burn, C. Hankin, and S. Abramsky. Strictness analysis for higher-order functions. Sci. Comput. Programming, 7:249–278, 1986.Google Scholar
  4. 4.
    P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Fourth ACM Symposium on Principles of Programming Languages, pages 238–252, 1977.Google Scholar
  5. 5.
    D. E. Denning and P. J. Denning. Certifications of programs for secure information flow. Commun. ACM, 20(7):504–512, July 1977.Google Scholar
  6. 6.
    T. Freeman and F. Pfenning. Refinement types for ML. In Proc. ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation, 1991.Google Scholar
  7. 7.
    C. K. Gomard and N. D. Jones. A partial evaluator for the untyped lambdacalculus. Journal of Functional Programming, 1(1):21–69, 1991.Google Scholar
  8. 8.
    F. Henglein. Dynamic typing. In Proc. ESOP'92, European Symposium on Programming, pages 233–253. Springer-Verlag (LNCS 582), 1992.Google Scholar
  9. 9.
    F. Henglein and J. Jørgensen. Formally optimal boxing. In Proc. POPL'94, 21st Annual Symposium on Principles of Programming Languages, pages 213–226, 1994.Google Scholar
  10. 10.
    D. Kozen, J. Palsberg, and M. I. Schwartzbach. Efficient inference of partial types. J. Comput. Syst. Sci., 49(2):306–324, 1994. Also in Proc. FOCS'92, 33rd IEEE Symposium on Foundations of Computer Science, pages 363–371, Pittsburgh, Pennsylvania, October 1992.Google Scholar
  11. 11.
    T.-M. Kuo and P. Mishra. Strictness analysis: A new perspective based on type inference. In Proc. Conference on Functional Programming Languages and Computer Architecture, pages 260–272, 1989.Google Scholar
  12. 12.
    J. Mitchell. Coercion and type inference. In Eleventh Symposium on Principles of Programming Languages, pages 175–185, 1984.Google Scholar
  13. 13.
    M. Mizuno and D. Schmidt. A security flow control algorithm and its denotational semantics correctness proof. Technical Report TR-CS-90-21, Kansas State University, 1990.Google Scholar
  14. 14.
    P. Ørbæk. Can you trust your data? In P. D. Mosses, editor, Proc. TAPSOFT'95, Theory and Practice of Software Development, pages 575–590. Springer-Verlag (LNCS 915), 1995.Google Scholar
  15. 15.
    J. Palsberg. Efficient inference of object types. Information and Computation. To appear. Also in Proc. LICS'94, Ninth Annual IEEE Symposium on Logic in Computer Science, pages 186–195, Paris, France, July 1994.Google Scholar
  16. 16.
    J. Palsberg and P. Ørbaek. Trust in the λ-calculus. Technical Report BRICS RS-95-31, BRICS, Computer Science Department, Aarhus University, 1995. URL: Scholar
  17. 17.
    J. Palsberg and M. I. Schwartzbach. Safety analysis versus type inference for partial types. Inf. Process. Lett., 43:175–180, 1992.Google Scholar
  18. 18.
    J. Palsberg and M. I. Schwartzbach. Safety analysis versus type inference. Information and Computation, 118(1):128–141, 1995.Google Scholar
  19. 19.
    J.-P. Talpin and P. Jouvelot. Polymorphic type, region and effect inference. Journal of Functional Programming, 2(3):245–271, 1992.Google Scholar
  20. 20.
    M. Wand. Type inference for record concatenation and multiple inheritance. Information and Computation, 93(1):1–15, 1991.Google Scholar
  21. 21.
    D. A. Wright. A new technique for strictness analysis. In Proc. TAPSOFT'91, pages 235–258. Springer-Verlag (LNCS 494), 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Jens Palsberg
    • 1
  • Peter Ørb⇓ek
    • 1
  1. 1.Basic Research in Computer Science, Centre of the Danish National Research Foundation, Department of Computer ScienceUniversity of AarhusAarhus CDenmark

Personalised recommendations