#### The Delta-calculus: Syntax and Types

F S C D
The ?-calculus: Syntax and Types
Luigi Liquori Universit? C?te d'Azur 0
Inria 0
Sophia Antipolis 0
France 0
Claude Stolze 0
0 Universite? Co?te d'Azur , Inria, Sophia Antipolis , France
We present the ?-calculus, an explicitly typed ?-calculus with strong pairs, projections and explicit type coercions. The calculus can be parametrized with different intersection type theories T , e.g. the Coppo-Dezani, the Coppo-Dezani-Sall?, the Coppo-Dezani-Venneri and the Barendregt-CoppoDezani ones, producing a family of ?-calculi with related intersection typed systems. We prove the main properties like Church-Rosser, unicity of type, subject reduction, strong normalization, decidability of type checking and type reconstruction. We state the relationship between the intersection type assignment systems ? la Curry and the corresponding intersection typed systems ? la Church by means of an essence function translating an explicitly typed ?-term into a pure ?-term one. We finally translate a ?-term with type coercions into an equivalent one without them; the translation is proved to be coherent because its essence is the identity. The generic ?-calculus can be parametrized to take into account other intersection type theories as the ones in the Barendregt et al. book. 2012 ACM Subject Classification Theory of computation ? Lambda calculus; Theory of computation ? Type theory Related Version A full version of the paper is available at https://arxiv.org/abs/1803.09660. Funding Work supported by the COST Action CA15123 EUTYPES ?The European research network on types for programming and verification?. Acknowledgements We are grateful to Benjamin Pierce, Joe Wells, Furio Honsell, and the anonymous reviewers for the useful comments and remarks.
and phrases intersection types; lambda calculus ? la Church and ? la Curry; prooffunctional logics
Introduction
Intersection type theories T were first introduced as a form of ad hoc polymorphism in (pure)
?-calculi ? la Curry. The paper by Barendregt, Coppo, and Dezani [4] is a classic reference,
while [5] is a definitive reference.
Intersection type assignment systems ?T have been well known in the literature for almost
?
40 years for many reasons: among them, characterization of strongly normalizing ?-terms [5],
?-models [1], automatic type inference [28], type inhabitation [
45, 40
], type unification [18].
As intersection had its classical development for type assignment systems, many papers
tried to find an explicitly typed ?-calculus ? la Church corresponding to the original
intersection type assignment systems ? la Curry. The programming language Forsythe,
by Reynolds [41], is probably the first reference, while Pierce?s Ph.D. thesis [36] combines
also unions, intersections and bounded polymorphism. In [49] intersection types were used
as a foundation for typed intermediate languages for optimizing compilers for higher-order
polymorphic programming languages; implementations of typed programming language
featuring intersection (and union) types can be found in SML-CIDRE [15] and in StardustML
[19, 20].
Annotating pure ?-terms with intersection types is not simple: a classical example is the
difficulty to decorate the bound variable of the explicitly typed polymorphic identity ?x:?.x
such that the type of the identity is (? ? ?) ? (? ? ? ): previous attempts showed that the
full power of the intersection type discipline can be easily lost.
In this paper, we define and prove the main properties of the ?-calculus, a generic
intersection typed system for an explicitly typed ?-calculus ? la Church enriched with strong
pairs, denoted by h?1 , ?2i, projections, denoted by pri ?, and type coercions, denoted by ??.
A strong pair h?1 , ?2i is a special kind of cartesian product such that the two parts of a
pair satisfy a given property R on their ?essence?, that is o ?1 o R o ?2 o.
An essence o ? o of a ?-term is a pure ?-term obtained by erasing type decorations,
projections and choosing one of the two elements inside a strong pair. As examples
o h?x:? ? ?.pr2 x , ?x:? ? ?.pr1 xi o
o ?x:(? ? ? ) ? ?.(pr1 x)(pr2 x) o
o ?x:? ? (? ? ?).hhpr1 x , pr1 pr2 xi , pr2 pr2 xi o
=
=
=
?x.x
?x.x x
?x.x
and so on. Therefore, the essence of a ?-term is its untyped skeleton: a strong pair h?1 , ?2i
can be typechecked if and only if o ?1 o R o ?2 o is verified, otherwise the strong pair will
be ill-typed. The essence also gives the exact mapping between a term and its typing ? la
Church and its corresponding term and type assignment ? la Curry. Changing the parameters
T and R results in defining a totally different intersection typed system.
A type coercion ?? is a term of type ? whose type-decoration denotes an application of a
subsumption rule to the term ? of type ? such that ? 6T ? : if we omit type coercions, then
we lose the uniqueness of type property.
For the purpose of this paper, we study the four well-known intersection type theories T ,
namely Coppo-Dezani TCD [12], Coppo-Dezani-Sall? TCDS [13], Coppo-Dezani-Venneri TCDV
[14] and Barendregt-Coppo-Dezani TBCD [4]. We will inspect the above type theories using
three equivalence relations R on pure ?-terms, namely ?, =? , and =??.
The combination of the above T and R allows to define ten meaningful typed systems for
the ?-calculus that can be pictorially displayed in a ??-chair? (see Definition 9). Following
the same style as in the Barendrengt et al. book [5], the edges in the chair represent an
inclusion relation over the set of derivable judgments.
Section 3 shows a number of typable examples in the systems presented in the ?-chair:
each example is provided with a corresponding type assignment derivation of its essence.
Some historical examples of Pottinger [39], Hindley [25] and Ben-Yelles [6] are essentially
re-decorated and inhabited (when possible) in the ?-calculus. The aim of this section is
both to make the reader comfortable with the different intersection typed systems, and to
give a first intuition of the correspondence between Church-style and Curry-style calculi.
Section 4 proves the metatheory for all the systems in the ?-chair: Church-Rosser, unicity
of type, subject reduction, strong normalization, decidability of type checking and type
reconstruction and studies the relations between intersection type assignment systems ? la
Curry and the corresponding intersection typed systems ? la Church. Notions of soundness,
completeness and isomorphism will relate type assignment and typed systems. We also show
how to remove type coercions ?? defining a translation function, denoted by k_k, inspired
by the one of Tannen et al. [8]: the intuition of the translation is that if ? has type ?
and ? 6T ? , then k? 6T ? k is a ?-term of type ? ? ? , (k? 6T ? k k?k) has type ? and
o k? 6T ? k o is the identity ?x.x.
1.1
?-calculi with intersection types ? la Church
Several calculi ? la Church appeared in the literature: they capture the power of intersection
types; we briefly review them.
The Forsythe programming language by Reynolds [41] annotates a ?-abstraction with
types as in ?x:?1|? ? ?|?n.M . However, there is no typed term whose type erasure is the
combinator K ? ?x.?y.x, with the type (? ? ? ? ?) ? (? ? ? ? ? ).
Pierce [37] improves Forsythe by using a for construct to build ad hoc polymorphic
typing, as in for ? ? {?, ? }.?x:?.?y:?.x. However, there is no typed term whose type erasure
is ?x.?y.?z.(x y , x z), with the type
((? ? ?) ? (? ? ?0) ? ? ? ? ? ? ? ?0) ? ((? ? ?) ? (? ? ?) ? ? ? ? ? ? ? ?).
Freeman and Pfenning [21] introduced refinement types, that is types that allow ad hoc
polymorphism for ML constructors. Intuitively, refinement types can be seen as subtypes
of a standard type: the user first defines a type and then the refinement types of this type.
The main motivation for these refinement types is to allow non-exhaustive pattern matching,
which becomes exhaustive for a given refinement of the type of the argument. As an example,
we can define a type boolexp for boolean expressions, with constructors True, And, Not and
Var, and a refinement type ground for boolean expressions without variables, with the same
constructors except Var: then, the constructor True has type boolexp?ground, the constructor
And has type (boolexp ? boolexp ? boolexp) ? (ground ? ground ? ground) and so on. However,
intersection is meaningful only when using constructors.
Wells et al. [49] introduced ?CIL, a typed intermediate ?-calculus for optimizing compilers
for higher-order programming languages. The calculus features intersection, union and flow
types, the latter being useful to optimize data representation. ?CIL can faithfully encode
an intersection type assignment derivation by introducing the concept of virtual tuple, i.e.
a special kind of pair whose type erasure leads to exactly the same untyped ?-term. A
parallel context and parallel substitution, similar to the notion of [29, 30], is defined to reduce
expressions in parallel inside a virtual tuple. Subtyping is defined only on flow types and not
on intersection types: this system can encode the ?CD type assignment system.
?
Wells and Haak [50] introduced ?B, a more compact typed calculus encoding of ?CIL: in
fact, by comparing Fig. 1 and Fig. 2 of [50] we can see that the set of typable terms with
intersection types of ?CIL and ?B are the same. In that paper, virtual tuples are removed
by introducing branching terms, typable with branching types, the latter representing
intersection type schemes. Two operations on types and terms are defined, namely expand,
expanding the branching shape of type annotations when a term is substituted into a new
context, and select, to choose the correct branch in terms and types. As there are no virtual
tuples, reductions do not need to be done in parallel. As in [49], the ?CD type assignment
?
system can be encoded.
Frisch et al. [22] designed a typed system with intersection, union, negation and recursive
types. The authors inherit the usual problem of having a domain space D that contains
all the terms and, at the same time, all the functions from D to D. They prevent this by
having an auxiliary domain space which is the disjoint union of D2 and P(D2). The authors
interpret types as sets in a well-suited model where the set-inspired type constructs are
interpreted as the corresponding to set-theoretical constructs. Moreover, the model manages
higher-order functions in an elegant way. The subtyping relation is defined as a relation on
the set-theoretical interpretation J_K of the types. For instance, the problem ? ? ? 6 ? will
be interpreted as J?K ? J? K ? J K
? , where ? becomes the set intersection operator, and the
decision program actually decides whether (J?K ? J? K) ? J?K is the empty set.
Bono et al. [7] introduced a relevant and strict parallel term constructor to build
inhabitants of intersections and a simple call-by-value parallel reduction strategy. In that
paper, an infinite number of constants c??? is applied to typed variables x? such that
c??? x? is upcasted to type ? . The paper also uses a local renaming typing rule, which
changes the type decoration in ?-abstractions, as well as coercions. Term synchronicity in
the tuples is guaranteed by the typing rules. The calculus uses van Bakel?s strict version [46]
of the TCD intersection type theory.
1.2
Logics for intersection types
Proof-functional (or strong) logical connectives, introduced by Pottinger [39], take into
account the shape of logical proofs, thus allowing for polymorphic features of proofs to be
made explicit in formulae. This differs from classical or intuitionistic connectives where the
meaning of a compound formula is only dependent on the truth value or the provability of
its subformulae.
Pottinger was the first to consider the intersection ? as a proof-functional connective. He
contrasted it to the intuitionistic connective ? as follows: ?The intuitive meaning of ? can
be explained by saying that to assert A ? B is to assert that one has a reason for asserting A
which is also a reason for asserting B, while to assert A ? B is to assert that one has a pair
of reasons, the first of which is a reason for asserting A and the second of which is a reason
for asserting B?.
A simple example of a logical theorem involving intuitionistic conjunction which does
not hold for proof-functional conjunction is (A ? A) ? (A ? B ? A). Otherwise there would
exist a term which behaves both as I and as K. Later, Lopez-Escobar [32] and Mints [33]
investigated extensively logics featuring both proof-functional and intuitionistic connectives
especially in the context of realizability interpretations.
It is not immediate to extend the judgments-as-types Curry-Howard paradigm to logics
supporting proof-functional connectives. These connectives need to compare the shapes of
derivations and do not just take into account their provability, i.e. the inhabitation of the
corresponding type.
There are many proposals to find a suitable logics to fit intersection types; among them
we cite [48, 42, 34, 10, 7, 38], and previous papers by the authors [16, 31, 43].
1.3
Raising the ?-calculus to a ?-framework.
Our long term goal is to build a prototype of a theorem prover based on the ?-calculus and
proof-functional logic. Recently [27], we have extended a subset of the generic ?-calculus
with other proof-functional operators like union types, relevant arrow types, together with
dependent types as in the Edinburgh Logical Framework [24]: a preliminary implementation
of a type checker appeared in [43] by the authors. In a nutshell:
Strong disjunction is a proof-functional connective that can be interpreted as the union
type ? [16, 43]: it contrasts with the intuitionistic connective ?. As Pottinger did for
intersection, we could informally say that asserting (A ? B) ? C corresponds to have a same
reason for both A ? C and B ? C.
A simple example of a logical theorem involving intuitionistic disjunction which does not
hold for strong disjunction is ((A ? B) ? B) ? A ? B. Otherwise there would exist a term
which behaves both as I and as K.
Minimal type theory 6min
(refl) ? 6 ?
(glb) ? 6 ?, ? 6 ? ? ? 6 ? ? ?
Axiom schemes
(Utop) ? 6 U
(??) (? ? ? ) ? (? ? ?) 6 ? ? (? ? ?)
Rule scheme
(?)
(incl) ? ? ? 6 ?, ? ? ? 6 ?
(trans) ? 6 ?, ? 6 ? ? ? 6 ?
(U?)
U 6 ? ? U
Strong (relevant) implication is yet another proof-functional connective that was
interpreted in [2] as a relevant arrow type ?r. As explained in [2], it can be viewed as a
special case of implication whose related function space is the simplest one, namely the one
containing only the identity function. Because the operators ? and ?r differ, A ?r B ?r A
is not derivable.
Dependent types, as introduced in the Edinburgh Logical Framework [24] by Harper
et al., allows considering proofs as first-class citizens albeit differently with respect to
proof-functional logics. The interaction of both dependent and proof-functional operators
is intriguing: the former mentions proofs explicitly, while the latter mentions proofs
implicitly. Their combination therefore opens up new possibilities of formal reasoning
on proof-theoretic semantics.
2
Syntax, Reduction and Types
I Definition 1 (Type atoms, type syntax, type theories and type assignment systems). We
briefly review some basic definition from Subsection 13.1 of [5], in order to define type
assignment systems. The set of atoms, intersection types, intersection type theories and
intersection type assignment systems are defined as follows:
1. (Atoms). Let A be a set of symbols which we will call type atoms, and let U be a special
type atom denoting the universal type. In particular, we will use A? = {ai | i ? N} with
ai being different from U and AU? = A? ? {U}.
2. (Syntax). The syntax of intersection types, parametrized by A, is: ? ::= A | ? ? ? | ???.
3. (Intersection type theories T ). An intersection type theory T is a set of sentences
of the form ? 6 ? satisfying at least the axioms and rules of the minimal type theory 6min
defined in Figure 1. The type theories TCD, TCDV, TCDS, and TBCD are the smallest type
theories over A satisfying the axioms and rules given in Table 1. We write T1 v T2 if,
for all ?, ? such that ? 6T1 ? , we have that ? 6T2 ? . In particular, TCD v TCDV v TBCD
and TCD v TCDS v TBCD. We will sometimes note, for instance, BCD instead of TBCD.
4. (Intersection type assignment systems ?T?). We define in Figure 2 an infinite
collection of type assignment systems parametrized by a set of atoms A and a type theory
T . We name four particular type assignment systems in the table below, which is an
T M : ? denotes a derivable type assignment judgment
excerpt from Figure 13.4 of [5]. B `?
in the type assignment system ?T . Type checking is not decidable for ?CD, ?CDV, ?CDS,
and ?BCD. ? ? ? ?
?
2.1
The ?-calculi
Intersection type assignment systems and ?-calculi have in common their type syntax and
intersection type theories. The generic syntax of the ?-calculus is defined as follows.
I Definition 2 (Generic ?-calculus syntax).
? ::=
u? | x | ?x:?.? | ? ? | h? , ?i | pri ? | ??
Intuitively, u? ranges over an infinite set of constants, indexed with a particular ?-term.
?? denotes an explicit coercion of ? to type ?. The expression h? , ?i denotes a pair that,
following the Lopez-Escobar jargon [32], we call ?strong pair? with respective projections pr1
and pr2 . Note that pri is not a term: if it were a term, then pri should have several types,
or a parametric polymorphic type. But our calculi do not have parametric polymorphism,
and they have unicity of typing.
The essence function o _ o is an erasing function mapping typed ?-terms into pure ?-terms.
It is defined as follows.
I Definition 3 (Essence function).
o x o
o ?x:?.? o
o h?1 , ?2i o
def
=
def
=
def
=
x
?x.o ? o
o ?1 o
o ?? o
o ?1 ?2 o
o pri ? o
def
=
def
=
def
=
o ? o
o ? o
o ?1 o o ?2 o
i ? {1, 2}
def
One could argue that the choice of o h?1 , ?2i o = o ?1 o is arbitrary and could have been
def
replaced with o h?1 , ?2i o = o ?2 o. However, the typing rules will ensure that, if h?1 , ?2i
o u? o
def
=
o ? o
is typable, then, for some suitable equivalence relation R, we have that o ?1 o R o ?2 o. Thus,
strong pairs can be viewed as constrained cartesian products.
The generic reduction semantics reduces terms of the ?-calculus as follows.
I Definition 4 (Generic reduction semantics). Syntactical equality is denoted by ?.
1. (Substitution). Substitution on ?-terms is defined as usual, with the additional rules:
u?1 [?2/x] d=ef u(?1[?2/x])
and
?1?[?2/x] d=ef (?1[?2/x])?
2. (One-step reduction). We define two notions of reduction:
I Definition 5 (Synchronization). A ?-term is synchronous if and only if, for all its subterms
of the shape h?1 , ?2i, we have that o ?1 o ? o ?2 o.
It is easy to verify that ??k preserves synchronization, while this is not the case for ??.
The next definition introduces a generic intersection typed system for the ?-calculus that is
parametrizable by suitable equivalence relations on pure ?-terms R and type theories T .
I Definition 6 (Generic intersection typed system). The generic intersection typed system is
defined in Figure 3. We denote by ?T a particular typed system with the type theory T and
R
under an equivalence relation R and by B `R
T ? : ? a corresponding typing judgment.
The typing rules are intuitive for a calculus ? la Church except rules (?I), (top) and (6T ).
The typing rule for a strong pair (?I) is similar to the typing rule for a cartesian product,
except for the side-condition o ?1 o R o ?2 o, forcing the two parts of the strong pair to have
essences compatible under R, thus making a strong pair a special case of a cartesian pair.
U ? A
B `TR u? : U
B `TR ?1 : ?
(top)
x:? ? B
B `TR x : ?
(ax)
B, x:? `TR ? : ?
B `TR ?x:?.? : ? ? ?
B `TR ?2 : ? o ?1 o R o ?2 o (?I)
B `TR h?1 , ?2i : ? ? ?
B `TR ?1 : ? ? ?
B `TR ?2 : ?
B `TR ?1 ?2 : ?
B `TR ? : ? ? ?
B `TR pr1 ? : ?
(?E1)
B `TR ? : ? ? ?
B `TR pr2 ? : ?
(?E2)
B `TR ? : ? ? 6T ?
B `TR ?? : ?
For instance, h?x:?.?y:?.x , ?x:?.xi is not typable in ?T?; h(?x:?.x) y , yi is not typable in
?T? but it is in ?T=? ; hx , ?y:?.((?z:?.z) x) yi is not typable in ?T? nor ?T=? but it is in ?T=?? .
In the typing rule (top), the subscript ? in u? is not necessarily typable so o u? o can easily
be any arbitrary ?-term. The typing rule (6T ) allows to change the type of a ?-term from
? to ? if ? 6
coercion _? , Tpr?o:duthciengtetrhme innewthetecromnc?lu?s:ioenxpmliucistt tryepceorcdoetrhciisocnhsaanrgeeimwiptohrtaanntextpolikceietptytphee
unicity of typing derivations.
The next definition introduces a partial order over equivalence relations on pure ?-terms
and an inclusion over typed systems as follows.
I Definition 7 (R and v).
1. Let R ? {?, =? , =??}. R1 v R2 if, for all pure ?-terms M, N such that M R1 N , we
have that M R2 N ;
2. ?TR11 v ?TR22 if, whenever B `TR11 ? : ?, we have B `TR22 ? : ?.
I Lemma 8.
1. ?CRD v ?CRDS v ?BRCD and ?CRD v ?CRDV v ?BRCD;
2. ?TR11 v ?TR22 if T1 v T2 and R1 v R2.
2.2
The ?-chair
The next definition classifies ten typed systems for the ?-calculus: some of them already
appeared (sometime with a different notation) in the literature by the present authors.
?BCD
?
3
Examples
This section shows examples of typed derivations ?T and highlights the corresponding type
R
assignment judgment in ?T they correspond to, in the sense that we have a derivation
?
B `TR ? : ? and another derivation B `T? o ? o : ?. The correspondence between intersection
typed systems ?T and intersection type assignment ?T? will be defined in Subsection 5.1.
R
I Example 10 (Polymorphic identity). In all of the intersection type assignment systems ?T
?
we can derive `T? ?x.x : (? ? ?) ? (? ? ? ). A corresponding ?-term is: h?x:?.x , ?x:?.xi
that can be typed in all of the typed systems of the ?-chair as follows
x:? `TR x : ? x:? `TR x : ?
`TR ?x:?.x : ? ? ? `TR ?x:?.x : ? ? ? ?x.x R ?x.x
`TR h?x:?.x , ?x:?.xi : (? ? ?) ? (? ? ? )
I Example 11 (Auto application). In all of the intersection type assignment systems we
can derive `T? ?x.x x : ((? ? ? ) ? ?) ? ? . A corresponding ?-term is: ?x:(? ? ? ) ?
?.(pr1 x)(pr2 x) that can be typed in all of the typed systems of the ?-chair as follows
x:(? ? ? ) ? ? `TR x : (? ? ? ) ? ? x:(? ? ? ) ? ? `TR x : (? ? ? ) ? ?
x:(? ? ? ) ? ? `TR pr1 x : ? ? ? x:(? ? ? ) ? ? `TR pr2 x : ?
x:(? ? ? ) ? ? `TR (pr1 x)(pr2 x) : ?
T ?x:(? ? ? ) ? ?.(pr1 x)(pr2 x) : (? ? ? ) ? ? ? ?
`R
I Example 12 (Some examples in ?CDS). In ?CDS we can derive `T?CDS (?x.?y.x) : ? ? U ? ?,
R ?
and using this type assignment, we can derive z:? `T?CDS (?x.?y.x) z z : ?. A corresponding
?-term is: (?x:?.?y:U.x) z zU that can be typed in ?CDS as follows
R
z:?, x:?, y:U `TRCDS x : ?
z:?, x:? `TRCDS ?y:U.x : U ? ?
z:? `TRCDS ?x:?.?y:U.x : ? ? U ? ?
z:? `TRCDS z : ?
z:? `TRCDS (?x:?.?y:U.x) z : U ? ?
z:? `TRCDS z : ?
? 6TCDS U
z:? `TRCDS zU : U
z:? `TRCDS (?x:?.?y:U.x) z zU : ?
As another example, we can also derive `T?CDS ?x.x : ? ? ? ? U. A corresponding ?-term is:
?x:?.hx , xUi that can be typed in ?CDS as follows
R
x:? `TRCDS x : ?
x:? `TRCDS x : ?
? 6TCDS U
x:? `TRCDS xU : U
x R x
x:? `TRCDS hx , xUi : ? ? U
`TRCDS ?x:?.hx , xUi : ? ? ? ? U
I Example 13 (An example in ?CDV). In ?CDV we can prove the commutativity of intersection,
R ?
i.e. `?
TCDV ?x.x : ? ? ? ? ? ? ?. A corresponding ?-term is:
h?x:? ? ?.pr2 x , ?x:? ? ?.pr1 xi(???)?(???) that can be typed in ?CDV as follows
R
x:? ? ? `TRCDS x : ? ? ?
x:? ? ? `TRCDS pr2 x : ?
x:? ? ? `TRCDS x : ? ? ?
x:? ? ? `TRCDS pr1 x : ?
`TRCDS ?x:? ? ?.pr2 x : (? ? ? ) ? ?
`TRCDS ?x:? ? ?.pr1 x : (? ? ? ) ? ? ?x.x R ?x.x
`TRCDS h?x:? ? ?.pr2 x , ?x:? ? ?.pr1 xi : ((? ? ? ) ? ? ) ? ((? ? ? ) ? ?)
?
`TRCDS h?x:? ? ?.pr2 x , ?x:? ? ?.pr1 xi(???)?(???) : (? ? ? ) ? (? ? ?)
where ? is ((? ? ? ) ? ? ) ? ((? ? ? ) ? ?) 6TCDV (? ? ? ) ? (? ? ?).
I Example 14 (Another polymorphic identity in ?T=? ). In all the ?T=? you can type the
following ?-term: h?x:?.x , (?x:? ??.x) (?x:?.x)i. The typing derivation is thus
x:? `T=? x : ?
I Example 15 (Two examples in ?BCD and ?BCD). In ?BCD we can can type any term, including
? =?? ?
the non-terminating term ? d=ef (?x.x x) (?x.x x). More precisely, we have `T?BCD ? : U. A
corresponding ?-term whose essence is ? is (?x:U.xU?U x) (?x:U.xU?U x)U that can be typed
in ?BCD as follows
R
?
`TRBCD ?x:U.xU?U x : U ? U
?
`TRBCD ?x:U.xU?U x : U ? U
U ? U 6TBCD U
`TRBCD (?x:U.xU?U x)U : U
`TRBCD (?x:U.xU?U x) (?x:U.xU?U x)U : U
where ? is
x:U `TRBCD x : U
U 6TBCD U ? U
x:U `TRBCD xU?U : U ? U
x:U `TRBCD x : U
x:U `TRBCD xU?U x : U
In ?BCD we can type x:U ? U `T?BCD x : (U ? U) ? (? ? U). A corresponding ?-term whose
?
essence is x is hx , ?y:?.x yUi that can be typed in ?BCD as follows
=??
x:U ? U, y:? `T=B?C?D x : U ? U
x:U ? U, y:? `T=B?C?D y : ? ? 6 U
x:U ? U, y:? `T=B?C?D yU : U
x:U ? U `T=B?C?D x : U ? U
x:U ? U, y:? `T=B?C?D x yU : U
x:U ? U `T=B?C?D ?y:?.x yU : ? ? U
x:U ? U `T=B?C?D hx , ?y:?.x yUi : (U ? U) ? (? ? U)
x =?? ?y.x y
Note that the =?? condition has an interesting loophole, as it is well known that ?BCD
?
does not enjoy =? conversion property. Theorem 35 will show that we can construct a
?-term which does not correspond to any ?BCD derivation.
?
?x.x
T ?x:? ? ?.pr1 x : ? ? ? ? ?
`R
?x.x
T ?x:?.hx , xi : ? ? ? ? ?
`R
?x.x
T ?x:? ? (? ? ?).hhpr1 x , pr1 pr2 xi , pr2 pr2 xi : ? ? (? ? ?) ? (? ? ? ) ? ?
`R
In the same paper, Pottinger lists some types that cannot be inhabited by any intersection
type assignment (6`T? ) in an empty context, namely: ? ? (? ? ? ), and (? ? ? ) ? (? ?
?) ? ? ? ? ? ?, and ((? ? ? ) ? ?) ? ? ? ? ? ?. It is not difficult to verify that the above
types cannot be inhabited by any of the typed systems of the ?-chair because of the failure
of the essence condition in the strong pair type rule.
I Example 17 (Intersection is not the conjunction operator). This counter-example is from
the corresponding counter-example ? la Curry given by Hindley [26] and Ben-Yelles [6]. The
intersection type (? ? ?) ? ((? ? ? ? ?) ? (? ? ? ) ? ? ? ?) where the left part of
the intersection corresponds to the type for the combinator I and the right part for the
combinator S cannot be assigned to a pure ?-term. Analogously, the same intersection type
cannot be assigned to any ?-term.
3.1
On synchronization and subject reduction
For the typed systems ?T , strong pairs have an intrinsic notion of synchronization: some
?
redexes need to be reduced in a synchronous fashion unless we want to create meaningless
?-terms that cannot be typed. Consider the ?-term h(?x:?.x) y , (?x:?.x) yi: if we use the
?? reduction relation, then the following reduction paths are legal:
h(?x:?.x) y , (?x:?.x) yi 1? h(?x:?.x) y , yi %?? hy , yi
%? hy , (?x:?.x) yi 1
More precisely, the first and second redexes are rewritten asynchronously, thus they cannot
be typed in any typed system ?T , because we fail to check the left and the right part of the
?
strong pair to be the same: the ??k reduction relation prevents this loophole and allows to
type all redexes. In summary, ??k can be thought of as the natural reduction relation for
the typed systems ?T .
?
4
Metatheory of ?T
R
For lack of space all proofs are omitted: the interested reader can find more technical details
in the related full version at https://arxiv.org/abs/1803.09660.
4.1
General properties
Unless specified, all properties applies to the intersection typed systems ?T . There are
R
several elegant ways to prove the Church-Rosser property: among others we could use the
historical method of Tait and Martin-L?f (see Definition 3.2.3 of [3]), or the van Oostrom and
van Raamsdonk technique [47], or the Takahashi parallel reduction technique [44]. Parallel
reduction semantics extends Definition 4 and it is inductively defined as follows.
I Definition 18 (Parallel reduction semantics).
x
??
?1 ?2
?x:?.?
Intuitively, ? =? ?0 means that ?0 is obtained from ? by simultaneous contraction
of some ?pri -redexes possibly overlapping each other. Church-Rosser can be achieved by
proving a stronger statement, namely ? =? ?0 implies ?0 =? ??, where ?? is a ?-term
determined by ? and independent from ?0. The above statement is satisfied by the term ??
which is, in turn, obtained from ? by contracting all the redexes existing in ? simultaneously.
I Definition 19 (The map _?).
x?
d=ef x
(??)?
(?x:?.?)?
(?1 ?2)?
(pri h?1 , ?2i)?
(pri ?)?
def
=
def
=
def
=
def
=
def
=
(??)?
?x:?.??
?1? ?2?
??
i
pri ??
u??
h?1 , ?2i?
(?x:?.?1) ?2?
def
=
def
=
def
=
u?
h?1? , ?2?i
?1?[?2?/x]
if ?1 ?2 is not a ?-redex
Now we have to prove the Church-Rosser property for the parallel reduction.
I Lemma 21 (Confluence property for =?). If ? =? ?0, then ?0 =? ??.
The Church-Rosser property follows.
I Theorem 22 (Confluence). If ?1?????2 and ?1?????3, then there exists ?4 such that
?2?????4 and ?3?????4.
At this point, a small remark about ?-reduction in the ?-calculus could be useful. It
is well-known by Nederpelt [35] that Church-Rosser for ??-reduction in the ?-calculus ? la
Church is just false; Geuvers in [23] proved the Church-Rosser for ??-reduction for well-typed
terms in Pure Type Systems; the same result can be easily proved for the ?-calculus.
The next lemma says that all type derivations for ? have an unique type.
I Lemma 23 (Unicity of typing). If B `TR ? : ?, then ? is unique.
The next lemma proves inversion properties on typable ?-terms.
I Lemma 24 (Generation).
1. If B `R
T x : ?, then x:? ? B;
2. if B `R
T ?x:?.? : ?, then ? ? ? ? ? for some ? and B, x:? `TR ? : ? ;
3. if B `TR ?1 ?2 : ? , then there is ? such that B `TR ?1 : ? ? ? and B `TR ?2 : ?;
4. if B `TR h?1 , ?2i : ?, then there is ?, ? such that ? ? ? ? ? and B `R
T ?1 : ? and
B `TR ?2 : ? and o ?1 o R o ?2 o;
T pr1 ? : ?, then there is ? such that B `TR ? : ? ? ? ;
5. if B `R
T pr2 ? : ? , then there is ? such that B `TR ? : ? ? ? ;
6. if B `R
T u? : ?, then ? ? U;
7. if B `R
8. if B `TR ?? : ?, then ? ? ? and there is ? such that ? 6T ? and B `TR ? : ?.
The next lemma says that all subterms of a typable ?-term are typable too.
I Lemma 25 (Subterms typability). If B `TR ? : ?, and ?0 is a subterm of ?, then there
exists B0 and ? such that B0 ? B and B0 `TR ?0 : ? .
As expected, the weakening and strengthening properties on contexts are verified.
I Lemma 26 (Free-variable properties).
1. If B `TR ? : ?, and B0 ? B, then B0 `TR ? : ?;
2. if B `TR ? : ?, then FV(?) ? Dom(B);
3. if B `TR ? : ?, B0 ? B and FV(?) ? Dom(B0), then B0 `TR ? : ?.
The next lemma also says that essence is closed under substitution.
I Lemma 27 (Substitution).
1. o ?1[?2/x] o ? o ?1 o[o ?2 o/x];
2. If B, x:? `TR ?1 : ? and B `TR ?2 : ?, then B `TR ?1[?2/x] : ? .
In order to prove subject reduction, we need to prove that reducing ?-terms preserve
the side-condition o ?1 o R o ?2 o when typing the strong pair h?1 , ?2i. We prove this in the
following lemma.
I Lemma 28 (Essence reduction).
1. If B `T? ?1 : ? and ?1 ?? ?2, then o ?1 o =? o ?2 o;
2. for R ? {=?, =??}, if B `TR ?1 : ? and ?1 ?? ?2, then o ?1 o R o ?2 o;
3. if B `T=?? ?1 : ? and ?1 ??? ?2, then o ?1 o =? o ?2 o.
The next theorem states that all the ?T typed systems preserve synchronous ?pri
?
reduction, and all the ?T=? and ?T=?? typed systems preserve ?pri -reduction.
I Theorem 29 (Subject reduction for ?pri ).
1. If B `T? ?1 : ? and ?1 ??k ?2, then B `T? ?2 : ?;
2. for R ? {=?, =??}, if B `TR ?1 : ? and ?1 ?? ?2, then B `TR ?2 : ?.
The next theorem states that some of the typed systems on the back of the ?-chair
preserve ?-reduction.
I Theorem 30 (Subject reduction for ? for TCDV, TBCD). Let T ? {TCDV, TBCD}. If B `T=??
?1 : ? and ?1 ??? ?2, then B `T=?? ?2 : ?.
4.2
Strong normalization
The idea of the strong normalization proof is to embed typable terms of the ?-calculus into
Church-style terms of a target system, which is the simply-typed ?-calculus with pairs, in a
structure-preserving way (and forgetting all the essence side-conditions). The translation is
sufficiently faithful so as to preserve the number of reductions, and so strong normalization
for the ?-calculus follows from strong normalization for simply-typed ?-calculus with pairs.
A similar technique has been used in [24] to prove the strong normalization property of LF
and in [9] to prove the strong normalization property of a subset of ?CD.
?
The target system has one atomic type called ?, a special constant term u? of type ? and
an infinite number of constants c? of type ? for any type of the target system. We denote by
B `? M : ? a typing judgment in the target system.
I Definition 31 (Forgetful mapping).
On intersection types.
def
|ai| =
?
?ai ? A
and
def
|? ? ? | = |?| ? |? |
and
def
|? ? ? | = |?| ? |? |
|?1 ?2|B
|pri ?|B
def
=
def
=
def
=
u?
|?1|B |?2|B
pri |?|B
On ?-terms.
|x|B
|?x:?.?|B
|h?1 , ?2i|B
def
=
def
=
def
=
def
=
x
?x.|?|B,x:?
(|?1|B , |?2|B)
|?? |B c|?|?|?| |?|B
The map can be easily extended to basis B.
if B `TR ? : ?
The following technical lemma states some properties of the forgetful function.
I Lemma 32.
1. If B `TR ? : ?, then |?|B is defined, and, for all B0 ? B, |?|B ? |?|B0 ;
2. |?1[?2/x]|B ? |?1|B[|?2|B/x];
3. If ?1 ?? ?2, then |?1|B ?? |?2|B;
4. If B `TR ? : ? then |B| `? |?|B : |?|.
Strong normalization follows easily from the above lemmas.
I Theorem 33 (Strong normalization). If B `TR ? : ?, then ? is strongly normalizing.
5
Typed systems ? la Church vs. type assignment systems ? la Curry
5.1 Relation between type assignment systems ?T and typed systems
?T ?
R
It is interesting to state some relations between type assignment systems ? la Church and
typed systems ? la Curry. An interesting property is the one of isomorphism, namely the
fact that whenever we assign a type ? to a pure ?-term M , the same type can be assigned
to a ?-term such that the essence of ? is M . Conversely, for every assignment of ? to a
?-term, a valid type assignment judgment of the same type for the essence of ? can be
derived. Soundness, completeness and isomorphism between intersection typed systems for
the ?-calculus and the corresponding intersection type assignment systems for the ?-calculus
are defined as follows.
I Definition 34 (Soundness, completeness and isomorphism). Let ?T and ?T .
R ?
1. (Soundness, ?T / ?T ). B `TR ? : ? implies B `T? o ? o : ?;
R ?
2. (Completeness, ?T . ? T ). B `?
R ? T M : ? implies there exists ? such that M ? o ? o and
B `TR ? : ?;
3. (Isomorphism, ?TR ? ?T ). ?T . ? T and ?T / ?T .
? R ? R ?
I Theorem 35 (Soundness, completeness and isomorphism). The following properties (left of
Figure 4) between ?-calculi and type assignment systems ?T can be verified.
?
The next theorem characterizes the class of strongly normalizing ?-terms.
?T
R
?CD
?
?CDV
?
?CDS
?
?BCD
?
?CD
=?
?CDV
=?
?CDS
=?
?BCD
=?
?CDV
=??
?BCD
=??
?T / ?T
R? ?
?
?
?
?
?
?
?
?
?
?T . ? T
R? ?
?
?
?
?
?
?
?
?
?
?T
R
?CD
?
?CDV
?
?CDS
?
?BCD
?
?CD
=?
?CDV
=?
?CDS
=?
?BCD
=?
?CDV
=??
?BCD
=??
TC/TR
?
?
?
?
?
?
?
?
?
?
Source
?CD
?
?CDV
?
?CDS
?
?BCD
?
?CD
=?
?CDV
=?
?CDS
=?
?BCD
=?
?CDV
=??
?BCD
=??
Target
?CD
=?
?CDV
=??
?CDS
=?
?BCD
=??
?CD
=?
?CDV
=??
?CDS
=?
?BCD
=??
?CDV
=??
?BCD
=??
We can finally state decidability of type checking (TC) and type reconstruction (TR).
I Theorem 37 (Decidability of type checking and type reconstruction). Figure 4 (in the center)
list decidability of type checking and type reconstruction.
5.2
Subtyping and explicit coercions
The typing rule (6T ) in the general typed system introduces type coercions: once a type
coercion is introduced, it cannot be eliminated, so de facto freezing a ?-term inside an
explicit coercion. Tannen et al. [8] showed a translation of a judgment derivation from a
?Source? system with subtyping (Cardelli?s Fun [11]) into an ?equivalent? judgment derivation
in a ?Target? system without subtyping (Girard system F with records and recursion). In
the same spirit, we present a translation that removes all explicit coercions. Intuitively, the
translation proceeds as follows: every derivation ending with rule (6T ) is translated into the
following (coercion-free) derivation, i.e.
B `TR0 k? 6T ? k : ? ? ?
B `TR0 k?kB : ?
B `TR0 k? 6T ? k k?kB : ?
(?E)
where R0 is a suitable relation such that R v R0, k?k is a suitable translation function
defined later in Definition 39. Note that changing of the type theory is necessary to guarantee
well-typedness in the translation of strong pairs. Summarizing, we provide a type preserving
translation of a ?-term into a coercion-free ?-term such that o ? o =?? o ?0 o. The following
example illustrates some trivial compilations of axioms and rule schemes of Figure 1.
I Example 38 (Translation of axioms and rule schemes of Figure 1).
(refl) the judgment x:? `TR hx , x?i : ? ? ? is translated to a coercion-free judgment
x:? `=? hx , (?y:?.y) xi : ? ? ?;
T
(incl) the judgment x:? ? ? `TR hx , x? i : (? ? ? ) ? ? is translated to a coercion-free judgment
x:? ? ? `T=? hx , (?y:? ? ?.pr2 y) xi : (? ? ? ) ? ? ;
(glb) the judgment x:? `TR hx , x???i : ? ? (? ? ?) is translated to a coercion-free judgment
x:? `=? hx , (?y:?.hy , yi) xi : ? ? (? ? ?);
T
(Utop) the judgment x:? `TR hx , xUi : ? ? U is translated to a coercion-free judgment
x:? `=? hx , (?y:?.uy) xi : ? ? U;
T
(U?) the judgment x:U `TR hx , x??Ui : U ? (? ? U) is translated to a coercion-free judgment
x:U `T=?? hx , (?f :U.?y:?.u(f y)) xi : U ? (? ? U);
(??) the judgment x:(? ? ? ) ? (? ? ?) `TR x????? : ? ? ? ? ? is translated to a
coercionfree judgment
x:(? ? ? ) ? (? ? ?) `T=?? (?f :(? ? ? ) ? (? ? ?).?y:?.h(pr1 f ) y , (pr2 f ) yi) x : ? ? ? ? ?;
(?) the judgment x:? ? ? ? ? `TR hx , x????? i : (? ? ? ? ?) ? (? ? ? ? ? ) is translated to
a coercion-free judgment
x:? ? ? ? ? `T=?? hx , (?f :? ? ? ? ?.?y:? ? ?.pr1 (f (pr1 y))) xi : (? ? ? ? ?) ? (? ? ? ? ? );
(trans) the judgment x:? `TR hx , (xU)??Ui : ? ? (? ? U) is translated to a coercion-free
judgment
x:? `T=?? hx , (?f :U.?y:?.u(f y)) ((?y:?.uy) x)i : ? ? (? ? U).
The next definition introduces two maps translating subtype judgments into explicit
coercions functions and ?-terms into coercion-free ?-terms.
I Definition 39 (Translations k?k and k?kB).
1. The minimal type theory 6min and the extra axioms and schemes are translated as follows.
k? 6T ?k
k? ? ? 6T ?k
k? ? ? 6T ? k
? 6T ? ? 6T ?
? 6T ? ? ?
? 6T ?
? 6T ?
? 6T ?
def
=
def
=
def
=
def
=
def
=
def
=
Let ?1 d=ef (? ? ? ) ? (? ? ?) and ?2 d=ef ? ? ? ? ?
Let ?1 d=ef ?1 ? ?1 and ?2 d=ef ?2 ? ?2
?2 6T ?1 ?1 6T ?2
?1 ? ?1 6T ?2 ? ?2
def
=
def
=
def
=
k? 6T Uk
`T=? ?x:?.ux : ? ? U
kU 6T ? ? Uk
`T=?? ?f :U.?x:?.u(f x) : U ? (? ? U)
k?1 6T ?2k
`T=?? ?f :?1.?x:?.h(pr1 f ) x , (pr2 f ) xi : ?1 ? ?2
`T=?? ?f :?1.?x:?2. k?1 6T ?2k (f (k?2 6T ?1k x)) : ?1 ? ?2
2. The translation k?kB is defined on ? as follows.
ku?kB
k?x:?.?kB
kh?1 , ?2ikB
k?? kB
def
=
def
=
def
=
def
=
uk?kB
?x:?. k?kB,x:?
hk?1kB , k?2kBi
k? 6T ? k k?kB
kxkB
k?1 ?2kB
kpri ?kB
def
=
def
=
def
=
if B `TR ? : ?.
x
k?1kB k?2kB
pri k?kB
By looking at the above translation functions we can see that if B `R
T ? : ?, then k?kB
is defined and it is coercion-free.
The following key lemma states that a coercion function is always typable in ?T , that
=??
it is essentially the identity and that, without using the rule schemes (??), (U?), and (?)
the translation can even be derivable in ?T=? .
I Lemma 40 (Essence of a coercion is an identity).
1. If ? 6T ? , then `T=?? k? 6T ? k : ? ? ? and o k? 6T ? k o =?? ?x.x;
2. If ? 6T ? without using the rule schemes (??), (U?), and (?), then `T=? k? 6T ? k :
? ? ? and o k? 6T ? k o =? ?x.x.
Proof. The proofs proceed in both parts by induction on the derivation of ? 6T ? . For
instance, in case of (glb), we can verify that `T=? ?x:?.hk? 6T ?k x , k? 6T ? k xi : ? ? ? ? ?
using the induction hypotheses that k? 6T ?k (resp. k? 6T ? k) has type ? ? ? (resp. ? ? ? )
and has an essence convertible to ?x.x. J
We can now prove the coherence of the translation as follows.
I Theorem 41 (Coherence). If B `TR ? : ?, then B `TR0 k?kB : ? and o k?kB o R0 o ? o,
where ?T and ?TR0 are respectively the source and target intersection typed systems given in
R
Figure 4 (right part).
Proof. By induction on the derivation. We illustrate the most important case, namely when
the last type rule is (6T ). In this case k?? kB is translated to k? 6T ? k k?kB. By induction
hypothesis we have that B `TR ? : ?, and by Lemma 40 we have that B `TR0 k? 6T ? k : ? ? ? ;
therefore B `TR0 k?? kB : ? . Moreover, we know that o k? 6T ? k o R0 ?x.x, and this gives
o k?? kB o R0 o k?kB o. Again by induction hypothesis we have that o k?kB o R0 o ? o, and this
gives the thesis o k?? kB o R0 o ?? o. J
1
2
3
4
5
6
7
8
9
10
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Fabio Alessi , Franco Barbanera, and Mariangiola Dezani-Ciancaglini. Intersection types and lambda models . Theor. Comput. Sci. , 355 ( 2 ): 108 - 126 , 2006 .
Franco Barbanera and Simone Martini . Proof-functional connectives and realizability . Archive for Mathematical Logic , 33 : 189 - 211 , 1994 .
Henk Barendregt . The Lambda Calculus: Its Syntax and Semantics , volume 103 of Studies in Logic and the Foundations of Mathematics. North-Holland, Amsterdam, revised edition , 1984 .
Henk P. Barendregt , Mario Coppo, and Mariangiola Dezani-Ciancaglini. A Filter lambda model and the completeness of type assignment . Journal of Symbolic Logic , 48 ( 4 ): 931 - 940 , 1983 .
Cambridge University Press, 2013 .
Choukri-Bey Ben-Yelles. Type assignment in the lambda-calculus: syntax and semantics . PhD thesis , University College of Swansea, 1979 .
Viviana Bono , Betti Venneri, and Lorenzo Bettini . A typed lambda calculus with intersection types . Theor. Comput. Sci. , 398 ( 1-3 ): 95 - 113 , 2008 .
Val Breazu-Tannen , Thierry Coquand, Carl A . Gunter , and Andre Scedrov . Inheritance as Implicit Coercion . Inf. Comput. , 93 ( 1 ): 172 - 221 , 1991 .
Mathematical Structures in Computer Science , 13 ( 1 ): 15 - 53 , 2003 .
Beatrice Capitani , Michele Loreti, and Betti Venneri . Hyperformulae, Parallel Deductions and Intersection Types . Proc. of BOTH, Electr. Notes Theor. Comput. Sci. , 50 ( 2 ): 180 - 198 , 2001 .
ACM Computing Surveys , 17 ( 4 ): 471 - 523 , December 1985 .
Mario Coppo and Mariangiola Dezani-Ciancaglini . An Extension of the Basic Functionality Theory for the ?-calculus . Notre Dame Journal of Formal Logic , 21 ( 4 ): 685 - 693 , 1980 .
Mario Coppo , Mariangiola Dezani-Ciancaglini, and Patrick Sall? . Functional characterization of some semantic equalities inside ?-calculus . In International Colloquium on Automata, Languages, and Programming , pages 133 - 146 . Springer-Verlag, 1979 .
Mario Coppo , Mariangiola Dezani-Ciancaglini, and Betti Venneri . Functional characters of solvable terms . Zeitschrift f?r Mathematische Logik und Grundlagen der Mathematik , 27 ( 2-6 ): 45 - 58 , 1981 .
Rowan Davies. Practical Refinement-Type Checking. PhD thesis , Carnegie Mellon University, 2005 . CMU-CS- 05 -110.
Daniel J. Dougherty , Ugo de'Liguoro , Luigi Liquori , and Claude Stolze . A Realizability Interpretation for Intersection and Union Types . In Proc. of APLAS , volume 10017 of Lecture Notes in Computer Science, pages 187 - 205 . Springer-Verlag, 2016 .
Daniel J. Dougherty and Luigi Liquori . Logic and Computation in a Lambda Calculus with Intersection and Union Types . In Proc. of LPAR , volume 6355 of Lecture Notes in Computer Science, pages 173 - 191 . Springer-Verlag, 2010 .
Andrej Dudenhefner , Moritz Martens, and Jakob Rehof . The Algebraic Intersection Type Unification Problem . Logical Methods in Computer Science , 13 ( 3 ), 2017 .
Joshua Dunfield . Refined typechecking with Stardust . In Proc. of PLPV , pages 21 - 32 , 2007 .
Joshua Dunfield . Elaborating intersection and union types . J. Funct. Program. , 24 ( 2-3 ): 133 - 165 , 2014 .
Timothy S. Freeman and Frank Pfenning . Refinement Types for ML . In Proc. of PLDI , pages 268 - 277 , 1991 .
Alain Frisch , Giuseppe Castagna, and V?ronique Benzaken . Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation types . Journal of the ACM , 55 ( 4 ): 19 , 2008 .
In Proc. of LICS , pages 453 - 460 , 1992 .
ACM , 40 ( 1 ): 143 - 184 , 1993 .
J. Roger Hindley . The simple semantics for Coppo-Dezani-Sall? types . In International Symposium on Programming , pages 212 - 226 , 1982 .
Comput. Sci. , 28 : 235 - 236 , 1984 .
Furio Honsell , Luigi Liquori, Claude Stolze, and Ivan Scagnetto. The Delta-Framework. In Proc of FSTTCS , pages 37 : 1 - 37 : 21 , 2018 .
Assaf J. Kfoury and Joe B. Wells . Principality and type inference for intersection types using expansion variables . Theor. Comput. Sci. , 311 ( 1-3 ): 1 - 70 , 2004 .
Luigi Liquori and Simona Ronchi Della Rocca . Towards an intersection typed system ? la Church . Proc. of ITRS, Electronic Notes in Theoretical Computer Science , 136 : 43 - 56 , 2005 .
Information and Computation , 9 ( 205 ): 1371 - 1386 , 2007 .
Luigi Liquori and Claude Stolze . A Decidable Subtyping Logic for Intersection and Union Types . In Proc of TTCS , volume 10608 of Lecture Notes in Computer Science, pages 74 - 90 .
Springer-Verlag, 2017 .
Edgar G. K. Lopez-Escobar . Proof functional connectives . In Methods in Mathematical Logic , volume 1130 of Lecture Notes in Mathematics, pages 208 - 221 . Springer-Verlag, 1985 .
Grigori Mints . The Completeness of Provable Realizability. Notre Dame Journal of Formal Logic , 30 ( 3 ): 420 - 441 , 1989 .
Alexandre Miquel . The Implicit Calculus of Constructions . In Proc. of TLCA , volume 2044 of Lecture Notes in Computer Science , pages 344 - 359 . Springer-Verlag, 2001 .
Rob. P. Nederpelt . Strong Normalization in a typed lambda calculus with lambda structured types . PhD thesis , Eindhoven Technological University, 1973 .
Benjamin C. Pierce . Programming with intersection types, union types, and bounded polymorphism . PhD thesis , Technical Report CMU-CS-91-205 . Carnegie Mellon University, 1991 .
Technical Report CMU-CS- 91 - 106 , Carnegie Mellon University, 1991 .
Elaine Pimentel , Simona Ronchi Della Rocca, and Luca Roversi . Intersection Types from a Proof-theoretic Perspective . Fundam. Inform., 121 ( 1-4 ): 253 - 274 , 2012 .
Garrel Pottinger . A Type Assignment for the Strongly Normalizable ?-terms . In To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism , pages 561 - 577 . Academic Press, 1980 .
In Logic and Program Semantics - Essays Dedicated to Dexter Kozen on the Occasion of His 60th Birthday , pages 256 - 270 , 2012 .
John C. Reynolds . Preliminary Design of the Programming Language Forsythe . Report CMU-CS-88-159 , Carnegie Mellon University, june 21 1988.
Simona Ronchi Della Rocca and Luca Roversi . Intersection logic . In Proc. of CSL , volume 2142 of Lecture Notes in Computer Science, pages 421 - 428 . Springer-Verlag, 2001 .
Claude Stolze , Luigi Liquori, Furio Honsell, and Ivan Scagnetto . Towards a Logical Framework with Intersection and Union Types . In Proc. of LFMTP , pages 1 - 9 , 2017 .
Masako Takahashi . Parallel reductions in ?-calculus . Information and computation , 118 ( 1 ): 120 - 127 , 1995 .
Pawel Urzyczyn . The Emptiness Problem for Intersection Types . J. Symb . Log., 64 ( 3 ): 1195 - 1215 , 1999 .
Steffen van Bakel . Cut-Elimination in the strict intersection type assignment system is strongly normalizing . Notre Dame Journal of Formal Logic , 45 ( 1 ): 35 - 63 , 2004 .
Vincent van Oostrom and Femke van Raamsdonk. Weak orthogonality implies confluence: the higher-order case . In Proc. of LFCS , volume 813 of Lecture Notes in Computer Science, pages 379 - 392 . Springer-Verlag, 1994 .
Betti Venneri . Intersection Types as Logical Formulae . J. Log. Comput. , 4 ( 2 ): 109 - 124 , 1994 .
Joe B. Wells , Allyn Dimock, Robert Muller, and Franklyn Turbak . A calculus with polymorphic and polyvariant flow types . J. Funct. Program. , 12 ( 3 ): 183 - 227 , 2002 .
Joe B. Wells and Christian Haack . Branching Types . In Proc. of ESOP , volume 2305 of Lecture Notes in Computer Science, pages 115 - 132 . Springer-Verlag, 2002 .