5 research outputs found
Type Soundness for Path Polymorphism
Path polymorphism is the ability to define functions that can operate
uniformly over arbitrary recursively specified data structures. Its essence is
captured by patterns of the form which decompose a compound data
structure into its parts. Typing these kinds of patterns is challenging since
the type of a compound should determine the type of its components. We propose
a static type system (i.e. no run-time analysis) for a pattern calculus that
captures this feature. Our solution combines type application, constants as
types, union types and recursive types. We address the fundamental properties
of Subject Reduction and Progress that guarantee a well-behaved dynamics. Both
these results rely crucially on a notion of pattern compatibility and also on a
coinductive characterisation of subtyping
Semantics of Typed Lambda-Calculus with Constructors
We present a Curry-style second-order type system with union and intersection
types for the lambda-calculus with constructors of Arbiser, Miquel and Rios, an
extension of lambda-calculus with a pattern matching mechanism for variadic
constructors. We then prove the strong normalisation and the absence of match
failure for a restriction of this system, by adapting the standard reducibility
method
Semantics of Typed Lambda-Calculus with Constructors
International audienceWe present a Curry-style second-order type system with union and intersection types for the lambda-calculus with constructors of Arbiser, Miquel and Rios, an extension of lambda-calculus with a pattern matching mechanism for variadic constructors. We then prove the strong normalisation and the absence of match failure for a restriction of this system, by adapting the standard reducibility method