François Pottier

Learn More
This paper presents a type-based information flow analysis for a call-by-value λ-calculus equipped with references, exceptions and let-polymorphism, which we refer to as Core ML. The type system is constraint-based and has decidable type inference. Its non-interference proof is reasonably lightweight, thanks to the use of a number of orthogonal(More)
The Java Security Architecture includes a dynamic mechanism for enforcing access control checks, the so-called <i>stack inspection</i> process. While the architecture has several appealing features, access control checks are all implemented via dynamic method calls. This is a highly nondeclarative form of specification that is hard to read, and that leads(More)
This paper studies type inference for a functional, ML-style language with subtyping, and focuses on the issue of simplifying inferred constraint sets. We propose a powerful notion of entailment between constraint sets, as well as an algorithm to check it, which we prove to be sound. The algorithm, although very powerful in practice, is not complete. We(More)
This paper shows how to systematically extend an arbitrary type system with dependency information, and how soundness and non-interference proofs for the new system may rely upon, rather than duplicate, the soundness proof of the original system. This allows enriching virtually any of the type systems known today with information flow analysis, while(More)
Cαml is a tool that turns a so-called “binding specification” into an Objective Caml compilation unit. A binding specification resembles an algebraic data type declaration, but also includes information about names and binding. Cαml is meant to help writers of interpreters, compilers, or other programs-that-manipulate-programs deal with α-conversion in a(More)
We study HMG(<i>X</i>), an extension of the constraint-based type system HM(<i>X</i>) with deep pattern matching, polymorphic recursion, and <i>guarded algebraic data types</i>. Guarded algebraic data types subsume the concepts known in the literature as <i>indexed types</i>, <i>guarded recursive datatype constructors</i>, <i>(first-class) phantom(More)