Editor: Dale Miller; Article No. 24
Delia Kesner, Pierre Vial
2017
17 Leibniz International Proceedings in Informatics Schloss Dagstuhl-Leibniz-Zentrum für Informatik
unpublished
We define two resource aware typing systems for the λ µ-calculus based on non-idempotent intersection and union types. The non-idempotent approach provides very simple combinatorial arguments-based on decreasing measures of type derivations-to characterize head and strongly normalizing terms. Moreover, typability provides upper bounds for the length of head-reduction sequences and maximal reduction sequences. A few years after Griffin [22] observed that Feilleisen's C operator can be typed with
more »
... the double-negation elimination, Parigot [32] made a major step in extending the Curry-Howard from intuitionistic to classical logic by proposing the λ µ-calculus as a simple term notation for classical natural deduction proofs. Other calculi were proposed since then, as for example Curien-Herbelin's λµ˜µλµ˜µ-calculus [11] based on classical sequent calculus. Simple types are known to be unable to type some normalizing term, for instance the normal form ∆ = λx.xx. Intersection types, pioneered by Coppo and Dezani [9, 10], extend simple types by resorting to a new constructor ∩ for types, allowing the assignment of a type of the form ((σ ⇒ σ) ∩ σ) ⇒ σ to the term ∆. The intuition behind a term t of type τ 1 ∩ τ 2 is that t has both types τ 1 and τ 2. The intersection operator ∩ is to be understood as idempotent (σ ∩ σ = σ), commutative (σ ∩ τ = τ ∩ σ), and associative ((σ ∩ τ) ∩ δ = σ ∩ (τ ∩ δ)) laws. Among other applications, intersection types have been used as a behavioural tool to reason about several operational and semantical properties of programming languages. For example, a λ-term/program t is strongly normalizing/terminating if and only if t can be assigned a type in an appropriate intersection type assignment system. This technology turns out to be a powerful tool to reason about qualitative properties of programs, but not about quantitative ones. Indeed, e.g. there is a type system assigning a type to a term t if and only if t is head normalizing, but the type derivations give no information about the number of head-reduction steps needed to head-normalize t, because of idempotency. In constrast, after the pioneering works of Gardner [19] and Kfoury [27], D. de Carvalho [14, 15] established a relation between the size of a typing derivation in a non-idempotent intersection type system for the lambda-calculus and the head/weak-normalization execution time of head/weak-normalizing lambda-terms, respectively. Non-idempotent types have recently received a lot of attention in the domain of semantics of programming languages from a quantitative perspective (see for example [6]), notably because they are closely related
fatcat:g5sdayv2pneibgzm5cn5tlx4km