5 research outputs found
Proof Systems for Retracts in Simply Typed Lambda Calculus
Abstract. This paper concerns retracts in simply typed lambda calculus assuming βη-equality. We provide a simple tableau proof system which characterises when a type is a retract of another type and which leads to an exponential decision procedure.
Retractions in Intersection Types
This paper deals with retraction - intended as isomorphic embedding - in
intersection types building left and right inverses as terms of a lambda
calculus with a bottom constant. The main result is a necessary and sufficient
condition two strict intersection types must satisfy in order to assure the
existence of two terms showing the first type to be a retract of the second
one. Moreover, the characterisation of retraction in the standard intersection
types is discussed.Comment: In Proceedings ITRS 2016, arXiv:1702.0187
Which simple types have a unique inhabitant?
International audienceWe study the question of whether a given type has a unique inhabitant modulo program equivalence. In the setting of simply-typed lambda-calculus with sums, equipped with the strong βη-equivalence, we show that uniqueness is decidable. We present a saturating focused logic that introduces irreducible cuts on positive types "as soon as possible". Backward search in this logic gives an effective algorithm that returns either zero, one or two distinct inhabitants for any given type. Preliminary application studies show that such a feature can be useful in strongly-typed programs, inferring the code of highly-polymorphic library functions, or "glue code" inside more complex terms