Characterisation of Approximation and (Head) Normalisation for $\lambda\mu$ using Strict Intersection Types
Steffen van Bakel (Imperial College London, UK)

TL;DR
This paper investigates the strict type assignment for lambda-mu calculus, introducing approximants to characterize head normalisation, normalisation, and strong normalisation through assignable types.
Contribution
It defines approximants for lambda-mu-terms and establishes a semantics, providing new characterizations of normalisation properties via strict intersection types.
Findings
Approximants generate a semantics for lambda-mu-terms.
Typeability of an approximant matches the term's type.
Characterizations for head normal form, normal form, and strong normalisation.
Abstract
We study the strict type assignment for lambda-mu that is presented in [van Bakel'16]. We define a notion of approximants of lambda-mu-terms, show that it generates a semantics, and that for each typeable term there is an approximant that has the same type. We show that this leads to a characterisation via assignable types for all terms that have a head normal form, and to one for all terms that have a normal form, as well as to one for all terms that are strongly normalisable.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Characterisation of Approximation and
(Head) Normalisation for
using Strict Intersection Types
Steffen van Bakel Department of Computing, Imperial College London, 180 Queen’s Gate, London SW7 2BZ, UK
(Extended Abstract)
Abstract
We study the strict type assignment for that is presented in [8]. We define a notion of approximants of -terms, show that it generates a semantics, and that for each typeable term there is an approximant that has the same type. We show that this leads to a characterisation via assignable types for all terms that have a head normal form, and to one for all terms that have a normal form, as well as to one for all terms that are strongly normalisable.
Introduction
The Intersection Type Discipline [14] is an extension of the standard, implicative type assignment known as Curry’s system [17] for the -calculus [16, 13]; the extension made consists of relaxing the requirement that a parameter for a function should have a single type, adding the type constructor \mathop{{\colourfortype\mbox{{\cap}}}} next to . This simple extension allows for a great leap in complexity: not only can a (filter) model be built for the -calculus using intersection types, also strong normalisation (termination) can be characterised via assignable types; however, type assignment becomes undecidable.
A natural question is whether or intersection type assignment yields a semantics also for other calculi, like [20]. To answer that, in [9, 10, 11] a notion of intersection type assignment was defined for that is a variant of the union-intersection system defined in [6]. Inspired by Streicher and Reus’s domain [24], -terms are separated into terms and streams; then ’s names act as the destination of streams, the same way variables are the destination of terms. A type theory is defined following the domain construction; the main results for that system are the definition of a filter model, closure under conversion, and that the system is an extension of Parigot’s [9]; and that, in a restricted system, the terms that are typeable are exactly the strongly normalising ones [10].
One of the main disadvantages of taking the domain-directed approach to type assignment is that, naturally, intersection becomes a ‘top level’ type constructor, that lives at the same level as arrow, for example, which induces a contra-variant type inclusion relation ‘’ and type assignment rule that greatly hinder proofs and gives an intricate generation lemma. This problem is addressed in [8] where a strict version of the system of [11] is defined, in the spirit of that of [2, 7] that allows for more easily constructed proofs. The main restriction with respect to the system of [11] is limiting the type inclusion relation to a relation that is no longer contra-variant, and allows only for the selection of a component of an intersection type; this is accompanied by a restriction of the type language, essentially no longer allowing intersection on the right of an arrow. The main results shown in [8] are that the system is closed under conversion (i.e. under reduction and expansion), and that all terms typeable in a system that excludes the type constant are strongly normalisable. To that aim it shows that, in this system, cut-elimination is strongly normalisable, using the technique of derivation reduction [4] (see also [5, 7]).
In this paper, we will elaborate further on the strict system. As in [5, 7], in this paper we will show that the fact that derivation reduction is strongly normalisable also here leads to an approximation result. For that, we define a notion of approximation for , and show that this yields a semantics (Thm. 3.7). We then show that for every typeable term there exists an approximant of that term that can be assigned exactly the same types (Thm. 4.6). We then show that this approximation result naturally gives a characterisation of head normalisation (Thm 4.7), as well as a characterisation of normalisation (Thm 5.8). We also revisit the proof of characterisation of strong normalisation of terms through the assignable types (Thm 5.14), which thanks to the approximation result has a more elegant proof.
Because of the restricted available space, most of the (full) proofs are not presented here. A version of this paper with the proofs added in an appendix can be found at www.doc.ic.ac.uk/~svb/Research/Papers/ITRS16wapp.pdf.
Note: We will write for the set and use a vector notation for the abbreviation of sequences, so write \leavevmode\raise 6.83331pt\hbox{\psset{unit=1.0pt,linewidth=0.3pt}\begin{pspicture}(0.0pt,0.0pt)(0.0pt,2.09999pt){\psline{cc-cc}(2.5pt,1.5pt)(8.51942pt,1.5pt)}\hskip 8.51942pt\hbox{}\put(-0.25,1.5){{\pscurve{cc-cc}(0.0pt,0.0pt)(-0.59999pt,0.4pt)(-1.09999pt,1.0pt)(-1.5pt,1.7pt)}}\end{pspicture}\kern 1.65001pt}\kern-9.06943pt\kern-0.55pt\hbox{X}_{\underline{n}} for , and if the number of elements in the sequence is not important.
1 The -calculus
In this section we present Parigot’s pure -calculus as introduced in [20]. It is an extension of the untyped -calculus obtained by adding names and a name-abstraction operator and was intended as a proof calculus for a fragment of classical logic. Derivable statements have the shape , where is the main (active) conclusion of the statement, and contains the alternative conclusions, consisting of pairs of names and types; the left-hand context , as usual, is a mapping from term variables to types, and represents the assumptions about free variables of .
Definition 1.1** (Term Syntax [20]).**
Let range over term variables, and range over names. The terms, ranged over by are defined by the grammar:
- \begin{array}[]{rcl}M,N&::=&x\mid\lambda y.M\mid MN\mid\mu\alpha.[\beta]M\end{array}**
As usual, we consider and to be binders; the sets and of, respectively, free variables and free names in a term are defined in the usual way. We adopt Barendregt’s convention on terms, and will assume that free and bound variables and names are different.
Definition 1.2** (Substitution [20]).**
Substitution takes two forms:
- \begin{array}[]{l@{\hspace{2mm}}cll}\textit{term substitution:}\hfil\hskip 5.69054pt&M[N/x]&\textrm{(NxM)}\\ \textit{structural substitution:}\hfil\hskip 5.69054pt&M[L{\cdot}\gamma/\alpha]&\textrm{(every `subterm' [\alpha]NM[\gamma]NL)}\end{array}**
As usual, both substitutions are capture avoiding, using -conversion when necessary.
Definition 1.3** (Reduction [20]).**
Reduction in is based on the following rules:
- \begin{array}[]{r@{\dquad\dquad}rll@{\dquad}l}(\beta):\quad\quad\quad\quad&(\lambda x.M)N&\mathrel{\rightarrow}&M[N/x]\hfil\quad\quad&(\textit{logical reduction})\\ (\mu):\quad\quad\quad\quad&\lx@intercol\kern-23.47351pt\left\{\begin{array}[]{@{}rcll}(\mu\beta.[\beta]P)Q&\mathrel{\rightarrow}&\mu\gamma.[\gamma](\,P[Q{\cdot}\gamma/\beta]\,)Q\\ (\mu\beta.[\delta]P)Q&\mathrel{\rightarrow}&\mu\gamma.[\delta]P[Q{\cdot}\gamma/\beta],&\textrm{if }\delta\not=\beta\\ \end{array}\right.\hfil\lx@intercol&(\textit{structural reduction})\\ (\textsc{Ren}):\quad\quad\quad\quad&\lx@intercol\kern-39.12253pt\left\{\begin{array}[]{@{}rcl@{\dquad}l}\mu\alpha.[\beta]\mu\gamma.[\gamma]M&\mathrel{\rightarrow}&\mu\alpha.[\beta]M[\beta/\gamma]\hfil\quad\quad\\ \mu\alpha.[\beta]\mu\gamma.[\delta]M&\mathrel{\rightarrow}&\mu\alpha.[\delta]M[\beta/\gamma],\hfil\quad\quad&\hskip 17.78296pt\textrm{if }\delta\not=\gamma\end{array}\right.\hfil\lx@intercol&(\textit{renaming})\end{array}111A more common notation for the second rule, for example, would be . This implicitly uses the fact that disappears during reduction, and through -conversion can be picked as name for the newly created applications instead of . But, in fact, this is not the same (and the named term has changed), as reflected in the fact that its type changes during reduction. Moreover, when making the substitution explicit as in **[12*]**, it becomes clear that this other approach in fact is a short-cut, which our definition does without. ***
We write M\mathbin{\semcolour\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\beta\mu}}N for the reduction relation that is the compatible closure of these rules, and for the equivalence relation generated by it.
Confluence for this notion of reduction has been shown in [21].
We will need the concept of head-normal form for , which is defined as follows:
Definition 1.4** (Head-normal forms).**
The head-normal forms (with respect to our notion of reduction \mathbin{\semcolour\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\beta\mu}}) are defined through the grammar:
- \begin{array}[]{rrl@{\quad}l}\mbox{\itbf H}&::=&xM_{1}\hskip 0.43999pt{\cdots}\hskip 0.43999ptM_{n}&(n\geq 0)\\ &\mid&\lambda x.\mbox{\itbf H}\\ &\mid&\ltermcol\mu\alpha.[\beta]\hskip 0.43999pt\mbox{\itbf H}&(\mbox{\itbf H}\not=\ltermcol\mu\gamma.[\delta]\hskip 0.43999pt\mbox{\itbf H}\hskip 1.1pt\mbox{{{}^{\prime}}})\end{array}**
2 Strict type assignment
Intersection (and union) type assignment for was first defined in [6]; this was followed by [9], in which an intersection type theory is developed departing from Streicher and Reus’s domain construction [24]. Terms can be typed with functional types and streams by continuation types that are of the shape \delta_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\delta_{n}\mathord{\mbox{\typecol\typefont\times}}\omega, so essentially is a sequence of s. This later [10] was followed by the proof that, as for the -calculus, the underlying intersection type system for allows for the full characterisation of strongly normalisable terms; in that paper, renaming is not considered. These papers were later combined (and revised) into [11]. One of the main disadvantages of taking the domain-directed approach to type assignment is that, naturally, intersection becomes a ‘top level’ type constructor, that lives at the same level as arrow, for example. This in itself is not negative, since it gives readable types and easy-to-understand type assignment rules, but it also induces a contra-variant type inclusion relation ‘’ and type assignment rule that hinder proofs and give an intricate generation lemma (see [11] for details).
Therefore, in [8], a strict restriction of the system of [11] was presented, where the occurrence of intersections is limited to only appear as components of continuation types (so no intersections of continuation types), and type inclusion is no longer contra-variant and only allows for the selection of a component in an intersection type. It also uses rather than to mark the end of a continuation type. But, more importantly, it removed the inference rule , and changed the type assignment rules to explicitly state when a -step is allowed, as in rule .
This system is defined as follows:
Definition 2.1** (Strict Types [8]).**
Let range over a countable, infinite set of type constants. We define our strict types by the grammar:
- \begin{array}[]{rcl@{\quad}l@{\quad}l}\mbox{\kern 0.275pt\typefont A\kern 0.825pt},\mbox{\kern 0.275pt\typefont B\kern 0.825pt}&::=&\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon&&\textit{basic types}\\ \mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt},\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt},\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}&::=&\omega\mid\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{n}&(n\geq 1)&\textit{intersection types}\\ \mbox{\kern 0.275pt\contfont C\kern 0.825pt},\mbox{\contfont{\typecol D}}&::=&\Omega\mid\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}&&\textit{continuation types}\end{array}**
On strict types, the type inclusion relation is the smallest partial order satisfying the rules:
- \begin{array}[]{c@{\colw}c@{\colw}c@{\colw}c@{\colw}c}{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\kern 42.63261pt\hbox{\displaystyle\penalty 1}}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=85.76523pt\hbox{\kern 3.00003pt({\bluecol j\mathbin{\in}\underline{n},~{}n\geq 1})}}}\hbox{\kern 0.0pt\hbox{\displaystyle\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{1}\mathop{{\colourfortype\mbox{{}}}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathop{{\colourfortype\mbox{{}}}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{n}\mathbin{{\colourfortype\leq}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{j}}}}}\hfil\hskip 17.07164pt&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\kern 4.37509pt\hbox{\displaystyle\penalty 1\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{{\colourfortype\leq}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{i}\quad(\forall i\mathbin{\in}\underline{n})}}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=88.69414pt\hbox{\kern 3.00003pt({\bluecol n\geq 1})}}}\hbox{\kern 0.0pt\hbox{\displaystyle\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{{\colourfortype\leq}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{1}\mathop{{\colourfortype\mbox{{}}}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathop{{\colourfortype\mbox{{}}}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{n}}}}}\hfil\hskip 17.07164pt&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\kern 17.81367pt\hbox{\displaystyle\penalty 1}}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=36.12735pt\hbox{}}}\hbox{\kern 0.0pt\hbox{\displaystyle\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{{\colourfortype\leq}}\omega}}}}\hfil\hskip 17.07164pt&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\kern 15.39584pt\hbox{\displaystyle\penalty 1}}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=31.29169pt\hbox{}}}\hbox{\kern 0.0pt\hbox{\displaystyle\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mathbin{{\colourfortype\leq}}\Omega}}}}\hfil\hskip 17.07164pt&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\kern 1.6042pt\hbox{\displaystyle\penalty 1\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{{\colourfortype\leq}}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}\quad\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mathbin{{\colourfortype\leq}}\mbox{\contfont{\typecol D}}}}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=97.54185pt\hbox{}}}\hbox{\kern 0.0pt\hbox{\displaystyle\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mathbin{{\colourfortype\leq}}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}\mathord{\mbox{\typecol\typefont}}\mbox{\contfont{\typecol D}}}}}}\end{array}**
For convenience, we will write \mbox{{\cap}}_{I}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}_{i} for \mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{i_{1}}\mathop{{\colourfortype\mbox{{\cap}}}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{i_{n}} where , \mbox{{\cap}}_{\raise-0.35pt\hbox to6.60004pt{\psset{unit=1.21pt,linewidth=0.38501pt} {\psset{linewidth=0.2475pt}\pscircle(3.78127pt,3.63002pt){3.02501pt}}{\psline{cc-cc}(2.11751pt,-0.9075pt)(5.14252pt,8.16754pt)}}}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}_{i} for , so the second and third rule combine to
- {tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\kern 4.37509pt\hbox{\displaystyle\penalty 1\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{{\colourfortype\leq}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{i}\quad(\forall i\mathbin{\in}\underline{n})}}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=88.69414pt\hbox{\kern 3.00003pt({\bluecol n\geq 0})}}}\hbox{\kern 0.0pt\hbox{\displaystyle\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{{\colourfortype\leq}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{1}\mathop{{\colourfortype\mbox{{}}}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathop{{\colourfortype\mbox{{}}}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{n}}}}}
and \mbox{{\cap}}_{\underline{n}}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}_{i} for \mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\ldots\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{n}. Notice that for any continuation type C there are and such that \mbox{\kern 0.275pt\contfont C\kern 0.825pt}=\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{n}\mathord{\mbox{\typecol\typefont\times}}\Omega.
Definition 2.2** (Strict Type Assignment [8]).**
A variable context is a mapping from term variables to intersection types, denoted as a finite set of statements , such that the subject of the statements () are distinct. 2. 2.
We write for the context defined by:
- \begin{array}[]{rcll}\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}&\mathrel{\semcolour\hbox{\raise-1.65001pt\hbox{=}\kern-3.8889pt\kern-2.91667pt\raise 4.40002pt\hbox{\hbox{{\scriptsize\Delta}}}\kern-2.91667pt\kern 3.8889pt}}&\Gamma\mathrel{\cup}\{x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\},&\textrm{if \Gammax}\\ &\mathrel{\semcolour\hbox{\raise-1.65001pt\hbox{=}\kern-3.8889pt\kern-2.91667pt\raise 4.40002pt\hbox{\hbox{{\scriptsize\Delta}}}\kern-2.91667pt\kern 3.8889pt}}&\Gamma,&\textrm{if }x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{\in}\Gamma\end{array}**
We write if there exists no \typecolS such that . 3. 3.
Name contexts* and the notions and are defined in a similar way.* 4. 4.
We define strict type assignment for -terms through the following natural deduction system:
- \begin{array}[t]{@{}rl@{~\quad}rl}({\bluecol\textsl{Ax}}):&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\kern 56.25829pt\hbox{\displaystyle\penalty 1}}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=113.01657pt\hbox{\kern 3.00003pt({\bluecol\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{\leq_{\hbox{{\sc s}}}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}})}}}\hbox{\kern 0.0pt\hbox{\displaystyle{\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathrel{{\blackcol{\vdash}}}{\ltermcol x}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt}}}}\hfil~{}&(\mathop{{\colourfortype\mbox{{\cap}}}}):&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\displaystyle\penalty 1{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{i}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt\quad(\raise-0.25pt\hbox{}\hskip 1.1pti\mathbin{\in}I)}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=132.58835pt\hbox{\kern 3.00003pt({\bluecol I=\raise-0.35pt\hbox to6.60004pt{\psset{unit=1.21pt,linewidth=0.38501pt} {\psset{linewidth=0.2475pt}\pscircle(3.78127pt,3.63002pt){3.02501pt}}{\psline{cc-cc}(2.11751pt,-0.9075pt)(5.14252pt,8.16754pt)}}\mathrel{\vee}|I|\geq 2})}}}\hbox{\kern 11.21234pt\hbox{\displaystyle{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{{}}{I}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}{i}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt}}}}\\[14.22636pt] (\textit{Abs}):&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\kern 8.08339pt\hbox{\displaystyle\penalty 1{\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathrel{{\blackcol{\vdash}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt}}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=152.3848pt\hbox{\kern 3.00003pt({\bluecol x\mathbin{\not\in}\Gamma})}}}\hbox{\kern 0.0pt\hbox{\displaystyle{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol\lambda x.M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt}}}}\hfil~{}&(\mu):&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\displaystyle\penalty 1{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=137.3165pt\hbox{\kern 3.00003pt({\bluecol\alpha\mathbin{\not\in}\Delta,\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mathbin{\leq{\hbox{{\sc s}}}}\mbox{\contfont{\typecol D}}})}}}\hbox{\kern 0.21931pt\hbox{\displaystyle{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol\mu\alpha.[\alpha]M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt}}}}\\[14.22636pt] (\textit{App}):&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\displaystyle\penalty 1{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt\quad{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=241.21399pt\hbox{}}}\hbox{\kern 62.01534pt\hbox{\displaystyle{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol MN}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt}}}}\hfil~{}&(\mu^{\prime}):&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\displaystyle\penalty 1{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta}}\hskip 1.1pt}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=158.95717pt\hbox{\kern 3.00003pt\mbox{\kern 0.55pt\parbox[r]{45.5244pt}{\begin{array}[]{l}\kern-4.95003pt(\bluecol\beta\not=\alpha\mathrel{\&}\alpha\mathbin{\not\in}\Delta,\\ \mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mathbin{\leq_{\hbox{{\sc s}}}}\mbox{\contfont{\typecol D}})\end{array}}}}}}\hbox{\kern 0.58969pt\hbox{\displaystyle{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol\mu\alpha.[\beta]M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta}}\hskip 1.1pt}}}}\end{array}**
We write for judgements derivable using these rules, and prefix this with ‘’ if we want to name the derivation. 5. 5.
The relation is naturally extended to variable contexts as follows:
- \begin{array}[]{rcl}\Gamma\mathbin{\leq_{\hbox{{\sc s}}}}\Gamma^{\prime}&\mathrel{\semcolour\hbox{\raise-1.65001pt\hbox{=}\kern-3.8889pt\kern-2.91667pt\raise 4.40002pt\hbox{\hbox{{\scriptsize\Delta}}}\kern-2.91667pt\kern 3.8889pt}}&\raise-0.25pt\hbox{\forall}\hskip 1.1ptx{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{\in}\Gamma^{\prime}~{}\raise-0.25pt\hbox{\exists}\hskip 1.1ptx{:}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}\mathbin{\in}\Gamma~{}[\hskip 1.1pt\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}\mathbin{\leq_{\hbox{{\sc s}}}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\hskip 1.1pt];\end{array}**
* is defined similarly.*
Definition 2.3**.**
By abuse of notation, we allow the notation \mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}, where \mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}=\mbox{{\cap}}_{\underline{n}}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}_{i} and \mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}=\mbox{{\cap}}_{\underline{m}}\hskip 0.275pt\mbox{\kern 0.275pt\typefont B\kern 0.825pt}_{j}, which stands for \mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{n}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont B\kern 0.825pt}_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont B\kern 0.825pt}_{m}. Given two contexts and , we define the context \Gamma_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\Gamma_{2} as follows:
- \begin{array}[]{rcr@{~}l}\Gamma_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\Gamma_{2}&\mathrel{\semcolour\hbox{\raise-1.65001pt\hbox{=}\kern-3.8889pt\kern-2.91667pt\raise 4.40002pt\hbox{\hbox{{\scriptsize\Delta}}}\kern-2.91667pt\kern 3.8889pt}}&\{\,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{2}\mid x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathbin{\in}\Gamma_{1}\mathrel{\&}x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{2}\mathbin{\in}\Gamma_{2}\,\}~{}&\mathrel{\cup}\\ &&\{\,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mid x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{\in}\Gamma_{1}\mathrel{\&}x\mathbin{\not\in}\Gamma_{2}\,\}~{}&\mathrel{\cup}\{\,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mid x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathbin{\in}\Gamma_{2}\mathrel{\&}x\mathbin{\not\in}\Gamma_{1}\,\}\end{array}**
and write for \Gamma_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathop{{\colourfortype\mbox{{\cap}}}}\Gamma_{n}. We will also allow intersection of continuation types as short-hand notation: let \mbox{\contfont{\typecol D}}=\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{n} \mathord{\mbox{\typecol\typefont\times}}\Omega, and \mbox{\kern 0.275pt\contfont C\kern 0.825pt}=\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{m}\mathord{\mbox{\typecol\typefont\times}}\Omega and assume, that ; we define
- \begin{array}[]{rcl}\mbox{\contfont{\typecol D}}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}&\mathrel{\semcolour\hbox{\raise-1.65001pt\hbox{=}\kern-3.8889pt\kern-2.91667pt\raise 4.40002pt\hbox{\hbox{{\scriptsize\Delta}}}\kern-2.91667pt\kern 3.8889pt}}&\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{n}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{n}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{n+1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{m}\mathord{\mbox{\typecol\typefont\times}}\Omega.\end{array}**
(we need this notion in the proof of Thm. 4.7). Then \Delta_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\Delta_{2} is defined the same way as \Gamma_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\Gamma_{2}.
In [8] it is then shown that this notion of type assignment is closed under conversion, so can be used to define a (filter) semantics. That paper also defines a notion of cut-elimination, by defining derivation reduction \mathrel{\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\mbox{\scriptsize\sc Der}}}, where only those redexes in terms are contracted that are typed with a type different from ; it shows that this notion is strongly normalisable, which then leads to the proof that all terms typeable in a restriction of that eliminates the type constant , are strongly normalisable.
The main results shown in [8] that are relevant to this paper are:
Theorem 2.4** ([8]).**
*If , , ,222 The condition might seem counterintuitive, since one might expect the inclusion relation to be reversed. To support intuition, we can see types in name contexts as negations, and \alpha{:}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\Omega as . Notice that \mbox{\kern 0.275pt\typefont A\kern 0.825pt}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont B\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\Omega\mathbin{\leq_{\hbox{{\sc s}}}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\Omega; obviously we have \alpha{:}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont B\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\Omega\mathbin{\leq_{\hbox{{\sc s}}}}\alpha{:}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\Omega and \neg\mbox{\kern 0.275pt\typefont A\kern 0.825pt}\mathbin{{\colourfortype\leq}}\neg\mbox{\kern 0.275pt\typefont A\kern 0.825pt}\mathord{\hskip 0.55pt{\colourfortype\mbox{{\cup}}}\hskip 0.55pt}\neg\mbox{\kern 0.275pt\typefont B\kern 0.825pt}. * and , then . 2. 2.
If and , then . 3. 3.
Let , and {\orangecol\hskip 1.1pt\mathcal{D}}\mathrel{\mbox{\typecol\typefont\mathbin{\rightarrow}}^{*}_{\mbox{\scriptsize\sc Der}}}{\orangecol\hskip 1.1pt\mathcal{D}}^{\prime}\mathrel{::}{\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt, then M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N.* 4. 4.
If , then (* is strongly normalisable).*
3 Approximation semantics for
Following the approach of [25], we now define an approximation semantics for with respect to \mathbin{\semcolour\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\beta\mu}}.
Essentially, approximants are partially evaluated expressions in which the locations of incomplete evaluation (i.e. where reduction may still take place) are explicitly marked by the element {\ltermcol\mbox{{\perp}}}; thus, they approximate the result of computations.
Approximation for (a variant of where naming and -binding are separated [18]) has been studied by others as well [23, 19]; weak approximants for are studied in [12].
Definition 3.1** (Approximation for ).**
We define {\semcolour\lambda\mu}{\ltermcol\mbox{{\perp}}} as an extension of by adding the term constant {\ltermcol\mbox{{\perp}}}. 2. 2.
The set of ’s approximants with respect to \mathbin{\semcolour\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\beta\mu}} is defined through the grammar:
- \begin{array}[]{rrccl@{\quad}l}A&::=&\bot&\mid&xA_{1}\hskip 0.43999pt{\cdots}\hskip 0.43999ptA_{n}&(n\geq 0)\\ &&&\mid&\lambda x.A&(A\not=\bot)\\ &&&\mid&\mu\alpha.[\beta]A&(A\not=\mu\gamma[\delta]A^{\prime},~{}A\not=\bot)\end{array}**
The relation {\mathrel{\semcolour\sqsubseteq}}\subseteq{\semcolour\lambda\mu}{\ltermcol\mbox{{\perp}}}^{2} is the smallest preorder that is the compatible extension of . 4. 4.
The set of approximants of , , is defined as
- \begin{array}[]{rcl}\semcolour{\cal A}({\ltermcol M})&\mathrel{\semcolour\hbox{\raise-1.65001pt\hbox{=}\kern-3.8889pt\kern-2.91667pt\raise 4.40002pt\hbox{\hbox{{\scriptsize\Delta}}}\kern-2.91667pt\kern 3.8889pt}}&\{\,A\mathbin{\in}{\semcolour\cal A}\mid\raise-0.25pt\hbox{\exists}\hskip 1.1ptN\mathbin{\in}{\semcolour\lambda\mu}~{}[\hskip 1.1ptM\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N\mathrel{\&}A\mathrel{\semcolour\sqsubseteq}N\hskip 1.1pt]\,\}.\end{array}**
Approximation equivalence* between terms is defined through: \begin{array}[]{@{}rcl}M\mathrel{{\semcolour\sim}\kern-2.20001pt_{\semcolour\cal A}}N&\mathrel{\semcolour\hbox{\raise-1.65001pt\hbox{=}\kern-3.8889pt\kern-2.91667pt\raise 4.40002pt\hbox{\hbox{{\scriptsize\Delta}}}\kern-2.91667pt\kern 3.8889pt}}&\semcolour{\cal A}({\ltermcol M})=\semcolour{\cal A}({\ltermcol N}).\end{array}*
The relationship between the approximation relation and reduction is characterised by:
Lemma 3.2**.**
If and M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N, then .* 2. 2.
H* is a head-normal form if and only if there exists such that and .*
Proof 3.3**.**
By induction on the structure of approximants.
Trivial, since .
If , then , with for all . If M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N, then with M_{i}\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N_{i}, for all (notice that the reduction can take place in many sub-terms, and need not take place in all). Then, by induction, for all , so .
,
If , then , with . If M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N, then with M^{\prime}\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N^{\prime}. Then, by induction, , so .
, ,
If , then , with . Since , , so any reduction in takes place inside . So if M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N, then with M^{\prime}\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N^{\prime}. Then, by induction, , so . 2. 2.
only if
By induction on the structure of head-normal forms:
Take .
\mbox{\itbf H}=\lambda x.\mbox{\itbf H}\hskip 1.1pt\mbox{{{}^{\prime}}}
By induction, there exists such that A\mathrel{\sqsubseteq}\mbox{\itbf H}\hskip 1.1pt\mbox{{{}^{\prime}}}. Then \lambda x.A\mathrel{\sqsubseteq}\lambda x.\mbox{\itbf H}\hskip 1.1pt\mbox{{{}^{\prime}}}; notice that, since , also .
\mbox{\itbf H}=\ltermcol\mu\alpha.[\beta]\hskip 0.43999pt\mbox{\itbf H}\hskip 1.1pt\mbox{{{}^{\prime}}},~{}\mbox{\itbf H}\hskip 1.1pt\mbox{{{}^{\prime}}}\not=\ltermcol\mu\gamma.[\delta]\hskip 0.43999pt\mbox{\itbf H}\hskip 1.1pt\mbox{{{}^{\prime}}}^{\prime}
By induction, there exists such that A\mathrel{\sqsubseteq}\mbox{\itbf H}\hskip 1.1pt\mbox{{{}^{\prime}}}. Then \ltermcol\mu\alpha.[\beta]\hskip 0.43999ptA\mathrel{\sqsubseteq}\ltermcol\mu\alpha.[\beta]\hskip 0.43999pt\mbox{\itbf H}\hskip 1.1pt\mbox{{{}^{\prime}}}; notice that, since and A\not={\ltermcol\mbox{{\perp}}}, also .
if
If there exists such that and , then either:
If , then , so is in head-normal form.
,
If , then , with . Since , by induction is in head-normal form, so also is in head-normal form.
, ,
*If , then , with . Since , by induction is in head-normal form; since , also , so also is in head-normal form.
The following definition introduces an operation of join on {\semcolour\lambda\mu}{\ltermcol\mbox{{\perp}}}-terms.
Definition 3.4** (Join, compatible terms).**
The partial mapping join, {}\mathop{{\sqcup}}{}:{\semcolour\lambda\mu}{\ltermcol\mbox{{\perp}}}^{2}\rightarrow{\semcolour\lambda\mu}{\ltermcol\mbox{{\perp}}}, is defined by:
- \begin{array}[]{r@{\,}c@{\,}lcl}{\ltermcol\mbox{{\perp}}}{}\mathop{{\sqcup}}{}M\quad\mathrel{\equiv}\quad M&{}\mathop{{\sqcup}}{}&{\ltermcol\mbox{{\perp}}}&\mathrel{\equiv}&M\\ x&{}\mathop{{\sqcup}}{}&x&\mathrel{\equiv}&x\\ (\lambda x.M)&{}\mathop{{\sqcup}}{}&(\lambda x.N)&\mathrel{\equiv}&\lambda x.(M{}\mathop{{\sqcup}}{}N)\\ (\mu\alpha.[\beta]M)&{}\mathop{{\sqcup}}{}&(\mu\alpha.[\beta]N)&\mathrel{\equiv}&\mu\alpha.[\beta](M{}\mathop{{\sqcup}}{}N)\\ (M_{1}M_{2})&{}\mathop{{\sqcup}}{}&(N_{1}N_{2})&\mathrel{\equiv}&(M_{1}{}\mathop{{\sqcup}}{}N_{1})\,(M_{2}{}\mathop{{\sqcup}}{}N_{2})\end{array}333The last alternative in the definition of defines the join on applications in a more general way than Scott’s, that would state that \begin{array}[]{r@{\quad}c@{\quad}l}(M_{1}M_{2}){}\mathop{{\sqcup}}{}(N_{1}N_{2})&\mathrel{\sqsubseteq}&(M_{1}{}\mathop{{\sqcup}}{}N_{1})\,(M_{2}{}\mathop{{\sqcup}}{}N_{2}),\end{array} since it is not always sure if a join of two arbitrary terms exists. Since we will use our more general definition only on terms that are compatible, there is no real conflict.**
If is defined, then and are called compatible.
It is easy to show that is associative and commutative; we will use {}\mathop{{\sqcup}}{}_{\underline{\mbox{\scriptsizen}}}M_{i} for the term . Note that {\ltermcol\mbox{{\perp}}} can be defined as the empty join, i.e. if M\mathrel{\equiv}{}\mathop{{\sqcup}}{}_{\underline{\mbox{\scriptsize0}}}M_{i}, then M\mathrel{\equiv}{\ltermcol\mbox{{\perp}}}.
The following lemma shows that the join acts as least upper bound of compatible terms.
Lemma 3.5**.**
If , and , then is defined, and:
- \begin{array}[]{cccc}P\mathrel{\sqsubseteq}P{}\mathop{{\sqcup}}{}Q,&Q\mathrel{\sqsubseteq}P{}\mathop{{\sqcup}}{}Q,&\mbox{\it\Itcol and\hskip 1.1pt}&P{}\mathop{{\sqcup}}{}Q\mathrel{\sqsubseteq}M.\end{array}**
If , , then and are compatible.
Proof 3.6**.**
By easy induction on the definition of . 2. 2.
If , , then there exist , such that M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N_{i} and , for . Since \mathbin{\semcolour\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\beta\mu}} is confluent, there exists such that N_{i}\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}P; then by Lem. 3.2, also , for . Then, by part (1), and are compatible.∎
We can also define (which by the previous lemma is well defined); then corresponds to (a variant of) Böhm trees [15, 13].
As is standard in other settings, interpreting a -term through its set of approximants gives a semantics.
Theorem 3.7** (Approximation semantics for ).**
If , then .
- *Proof: *
By induction on the definition of , of which we only show the case M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N.
If , then there exists such that M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}L and . Since \mathbin{\semcolour\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\beta\mu}} is Church-Rosser, there exists such that L\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}R and N\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}R, so also M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}R. Then by Lem. 3.2, , and since N\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}R, we have .
If , then there exists such that N\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}L and . But then also M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}L, so .
The reverse implication of this result does not hold, since terms without head-normal form (which have only as approximant) are not all related by reduction, so approximation semantics is not fully abstract.
4 The approximation and head normalisation results for
In this section we will show an approximation result, i.e. for every , , \typecolS, and such that , there exists an such that . From this, the well-known characterisation of (head-)normalisation of -terms using intersection types follows easily, i.e. all terms having a (head) normal form are typeable in (with a type without -occurrences). Another result is the well-known characterisation of strong normalisation of typeable -terms, i.e. all terms, typeable in without using the rule (\mathop{{\colourfortype\mbox{{\cap}}}}) with , are strongly normalisable.
First we give some auxiliary definitions and results.
The rules of the system are generalised to {\semcolour\lambda\mu}{\ltermcol\mbox{{\perp}}}; therefore, if {\ltermcol\mbox{{\perp}}} occurs in a term and , in that derivation {\ltermcol\mbox{{\perp}}} has to appear in a position where the rule (\mathop{{\colourfortype\mbox{{\cap}}}}) is used with , i.e., in a sub-term typed with . Notice that \lambda x.{\ltermcol\mbox{{\perp}}}, {\ltermcol\mbox{{\perp}}}M_{1}\hskip 0.43999pt{\cdots}\hskip 0.43999ptM_{n}, and \mu\alpha.[\beta]{\ltermcol\mbox{{\perp}}} are typeable by only.
First we show that is closed for .
Lemma 4.1**.**
* and then .*
Proof 4.2**.**
By easy induction on the definition of ; the base case, {\ltermcol\mbox{{\perp}}}\mathrel{\sqsubseteq}N, follows from the fact that then . ∎
Next we define a notion of type assignment that is similar to that of Def. 2.2, but differs in that it assigns only to the term {\ltermcol\mbox{{\perp}}}.
Definition 4.3**.**
{\ltermcol\mbox{{\perp}}}-type assignment* and {\ltermcol\mbox{{\perp}}}-derivations are defined as , with the exception of:*
- \begin{array}[t]{rl@{\dquad}rl}(\,{\mathop{{\colourfortype\mbox{{\cap}}}}}_{\perp}):&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\displaystyle\penalty 1{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol M_{i}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{i}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt\quad(\raise-0.25pt\hbox{}\hskip 1.1pti\mathbin{\in}\underline{n})}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=134.3371pt\hbox{\kern 3.00003pt({\bluecol n=0\mathrel{\vee}n\geq 2})}}}\hbox{\kern 5.23926pt\hbox{\displaystyle{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol{}\mathop{{\sqcup}}{}{\underline{\mbox{}}}M_{i}}\mathbin{:}{\colourfortype\mbox{{}}{\underline{n}}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}{i}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt}}}}\hfil\quad\quad\end{array}**
We write if this statement is derivable using a {\ltermcol\mbox{{\perp}}}-derivation.
Notice that, by rule (\,{\mathop{{\colourfortype\mbox{{\cap}}}}}_{\perp}), {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\perp}}{\ltermcol{\ltermcol\mbox{{\perp}}}}\mathbin{:}{\colourfortype\omega}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt, and that this is the only way to assign to a term. Moreover, in that rule, the terms need to be compatible (otherwise their join would not be defined).
Lemma 4.4**.**
If , then . 2. 2.
If , then there exists such that .
Proof 4.5**.**
By induction on the structure of derivations in . We only show:
\,{\mathop{{\colourfortype\mbox{{\cap}}}}}_{\perp}
Then \mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}=\mbox{{\cap}}_{\underline{n}}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}_{i}, M={}\mathop{{\sqcup}}{}_{\underline{\mbox{\scriptsizen}}}M_{i}, and, for every , . Then, by induction, for every , . Since, by Lem. 3.5, for all , by Lem. 4.1, for every , , so by (\mathop{{\colourfortype\mbox{{\cap}}}}), {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{{\cap}}_{\underline{n}}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}_{i}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt.
All other cases follow by straightforward induction. 2. 2.
By induction on the structure of derivations in . We only show:
\mathop{{\colourfortype\mbox{{\cap}}}}
Then \mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}=\mbox{{\cap}}_{\underline{n}}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}_{i} and, for every , ; by induction, for every there exists such that (notice that then these are compatible). Then, by rule (\,{\mathop{{\colourfortype\mbox{{\cap}}}}}_{\perp}), we have {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\perp}}{\ltermcol{}\mathop{{\sqcup}}{}_{\underline{\mbox{\scriptsizen}}}M_{i}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{i}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt. Notice that, by Lem. 3.5, {}\mathop{{\sqcup}}{}_{\underline{\mbox{\scriptsizen}}}M_{i}\mathrel{\sqsubseteq}M.
All other cases follow by straightforward induction.∎
Notice that, since need not be the same as , the second derivation in part (2) is not exactly the same; however, it has the same structure in terms of applied derivation rules.
Using Thm. 2.4(4) and Lem. 4.4, as for the BCD-system (see [22]) and the system of [3], the relation between types assignable to a -term and those assignable to its approximants can be formulated as:
Theorem 4.6** (Approximation).**
{\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt\mathrel{\hskip 1.0pt{\Leftarrow}\kern-6.60004pt{\Rightarrow}\hskip 1.0pt}\raise-0.25pt\hbox{\exists}\hskip 1.1ptA\mathbin{\in}\semcolour{\cal A}({\ltermcol M})~{}[\hskip 1.1pt{\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol A}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt\hskip 1.1pt].
- *Proof: *
If , then, by Thm. 2.4(4), . Let be a normal form of with respect to \mathrel{\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\mbox{\scriptsize\sc Der}}}, then by Thm. 2.4(3), and, by Lem. 4.4 (2), there exists such that . So, in particular, contains no redexes (no redexes typed with a type different form since is in normal form, and none typed with since only {\ltermcol\mbox{{\perp}}} can be typed with ), so , and therefore .
Let be such that . Since , there exists such that M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N and . Then, by Lem. 4.1, , and, by Thm. 2.4(2), also . ∎
Using this last result, the characterisation of head-normalisation becomes easy to show.
Theorem 4.7** (Head-normalisation).**
There exists , A, and such that , if and only if has a head normal form.
- *Proof: *
only if
If , then, by Thm. 4.6, there exists an such that . Then, by Def. 3.1, there exists such that M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N and . Since , A\not\mathrel{\equiv}{\ltermcol\mbox{{\perp}}}, so we know that is either , , or with . Since , is either , , or with . Then is in head-normal from and has a head-normal form.
if
If has a head-normal form, then there exists such that M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N and either:
Take \Gamma=x{:}\omega\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\omega\mathord{\mbox{\typecol\typefont\times}}\Omega\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon (with times ) and \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\Omega\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon.
Since is in head-normal form, by induction there are , C, , and such that {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta^{\prime}}}\hskip 1.1pt. If , take , and \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon; otherwise take and \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\omega\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon. In either case, by rule ,
Since is in head-normal form, by induction there are , C, \typecolD, , and such that {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta^{\prime}}}\hskip 1.1pt. Take \mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\contfont{\typecol D}}, then by Thm. 2.4 (1) also {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt, and since , by rule we get {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol\mu\alpha.[\alpha]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta^{\prime}}}\hskip 1.1pt.
, with
Since is in head-normal form, by induction there are C, , \typecolD such that {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta}}\hskip 1.1pt and . Take \mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime\prime}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\contfont{\typecol D}}, then by Thm. 2.4 (1) also {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime\prime},\Delta}}\hskip 1.1pt, and since we get {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol\mu\alpha.[\beta]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime\prime},\Delta^{\prime}}}\hskip 1.1pt by .
Notice that in all cases, , for some A, and by Thm. 2.4(2), . ∎
5 Type assignment for (strong) normalisation
In this section we show the characterisation of both normalisation and strong normalisation, for which we first define a notion of derivability obtained from by restricting the use of the type assignment rule (\mathop{{\colourfortype\mbox{{\cap}}}}) to at least two sub-derivations, thereby eliminating the possibility to assign to a term.
Definition 5.1** (SN type assignment).**
*We define the -free types by the grammar: *
- \begin{array}[]{rcl@{\quad}l@{\quad}l}\mbox{\kern 0.275pt\typefont A\kern 0.825pt},\mbox{\kern 0.275pt\typefont B\kern 0.825pt}&::=&\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon\\ \mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt},\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt},\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}&::=&\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{n}&(n\geq 1)\\ \mbox{\kern 0.275pt\contfont C\kern 0.825pt},\mbox{\contfont{\typecol D}}&::=&\Omega\mid\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\end{array}**
SN type assignment* is defined using the natural deduction system of Def. 2.2, but allowing only -free types, so restricting rule (\mathop{{\colourfortype\mbox{{\cap}}}}) to:*
- \begin{array}[t]{rl}(\mathop{{\colourfortype\mbox{{\cap}}}}):&{tensy\vbox{\hbox spread0.0pt{\hskip 0.0pt plus 0.0001fil\hbox{\displaystyle\penalty 1{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}{i}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt\quad(\raise-0.25pt\hbox{}\hskip 1.1pti\mathbin{\in}\underline{n})}\hskip 0.0pt plus 0.0001fil}\hbox{\hbox{\kern 0.0pt\kern-0.25pt\vrule height=0.25002pt,depth=0.25002pt,width=132.40782pt\hbox{\kern 3.00003pt({\bluecol n\geq 2})}}}\hbox{\kern 10.5726pt\hbox{\displaystyle{\colourfortype\Gamma}\mathrel{{\blackcol{\vdash}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{{}}{\underline{n}}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}_{i}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt}}}}\end{array}**
We write if this judgement is derivable using this system.
Notice that the only real change in the system compared to is that is no longer an intersection type, so in rule (\mathop{{\colourfortype\mbox{{\cap}}}}), the empty intersection is excluded.444With the aim of the characterisation of strong normalisation, it would have sufficed to only restrict rule (\mathop{{\colourfortype\mbox{{\cap}}}}); we restrict the set of types as well in order to be able to characterise normalisation as well.
The following properties hold:
Lemma 5.2**.**
If , then \mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}=\mbox{{\cap}}_{I}\hskip 0.275pt{\colourfortype\mbox{\kern 0.275pt\typefont A\kern 0.825pt}}_{i}, \mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}=\mbox{{\cap}}_{J}\hskip 0.275pt\mbox{\kern 0.275pt\typefont B\kern 0.825pt}_{j}, and for every there exists such that . 2. 2.
, if and only if . 3. 3.
. 4. 4.
. 5. 5.
.
Proof 5.3**.**
Straightforward.∎
As for , we can show that is an admissible rule in .
Lemma 5.4**.**
If , and , \typecolT, and are all -free and satisfy , , and , then .
- *Proof: *
Much the same as the proof for Thm. 2.4(1) in [8].∎
The following lemma shows a (limited) subject expansion result for : it states that if a contraction of a redex is typeable, then so is the redex, provided that the operand is typeable in its own right; since might not appear in the contractum, we need to assume that separately. Notice that we demand that is typeable in the same contexts as the redex itself; this property would not hold once we consider contextual closure (in particular, when the reduction takes place under an abstraction); it might be that free names or variables in get bound in the context.
Lemma 5.5**.**
If and , then there exists \typecolS such that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt and .
- *Proof: *
By nested induction; the outermost is on the structure of types, and the innermost on the structure of terms. We only show:
Then . Take , then by Lem. 5.2, also {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol x}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt.
All other cases follow by induction.∎
To prepare the characterisation of terms by their assignable types, we first prove that a term in {\semcolour\lambda\mu}{\ltermcol\mbox{{\perp}}}-normal form is typeable without , if and only if it does not contain {\ltermcol\mbox{{\perp}}}. This forms the basis for the result that all normalisable terms are typeable without . Notice that the first result is stated for .
Lemma 5.6**.**
If , and , A, and are -free, then is {\ltermcol\mbox{{\perp}}}-free. 2. 2.
If is {\ltermcol\mbox{{\perp}}}-free, then there are , A, and , such that .
Proof 5.7**.**
By induction on the structure of approximate normal forms.
Immediate.
A\mathrel{\equiv}{\ltermcol\mbox{{\perp}}}
Impossible, by inspecting the rules of .
By , \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon, and {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol A^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt. Of course also , and \mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon are -free, so by induction, is {\ltermcol\mbox{{\perp}}}-free, so also is {\ltermcol\mbox{{\perp}}}-free.
Then by and , , and x{:}\mbox{{\cap}}_{\underline{m}}\hskip 0.275pt\mbox{\kern 0.275pt\typefont B\kern 0.825pt}_{i}\mathbin{\in}\Gamma, and, for some , \mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{2}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{n}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon=\mbox{\kern 0.275pt\typefont B\kern 0.825pt}_{j} and \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon. Since each occurs in , which occurs in , all are -free, so by induction each is {\ltermcol\mbox{{\perp}}}-free. Then also is {\ltermcol\mbox{{\perp}}}-free.
, with
Then \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon, and by there exists \typecolD such that , and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol A^{\prime}}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt. Since , and C is -free, so is \typecolD; then, by induction, is {\ltermcol\mbox{{\perp}}}-free, so so is .
, with and
Then \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon, and by there exists \typecolD, such that , , and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{{\sc s}}}}{\ltermcol A^{\prime}}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\contfont{\typecol D}}^{\prime},\Delta^{\prime}}}\hskip 1.1pt. Since , and is -free, so is \typecolD; then, by induction, is {\ltermcol\mbox{{\perp}}}-free, so so is . 2. 2.
Then {\colourfortype x{:}\Omega\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol x}\mathbin{:}{\colourfortype\Omega\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt.
By induction {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol A^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt. If does not occur in , take a -free \typecolT; otherwise, there exist and \typecolT is -free. In either case, by we obtain {\colourfortype\Gamma{\setminus}x}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\lambda x.A^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt.
By induction there are such that for every . Then {\colourfortype\Gamma\mathop{{\colourfortype\mbox{{\cap}}}}\{x{:}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont A\kern 0.825pt}_{n}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon\}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol xA_{1}\hskip 0.43999pt{\cdots}\hskip 0.43999ptA_{n}}\mathbin{:}{\colourfortype\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt.
, with
By induction {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol A^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\contfont{\typecol D}},\Delta}}\hskip 1.1pt for some , , C, \typecolD, and . Then Lem. 5.4, also {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol A^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\contfont{\typecol D}}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt, so by rule , {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\alpha]A^{\prime}}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt.
, with and
*By induction {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol A^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\beta{:}\mbox{\contfont{\typecol D}},\Delta}}\hskip 1.1pt for some , , C, , \typecolD, and . Then also {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol A^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\beta{:}\mbox{\contfont{\typecol D}}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt, so by rule , {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\beta]A^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\contfont{\typecol D}}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt.
Now, as also shown in [2], it is possible to characterise normalisable terms.
Theorem 5.8** (Characterisation of Normalisation).**
There exists -free , , and A such that , if and only if has a normal form.
- *Proof: *
If , by Thm. 4.6 there exists such that . Since , A, and are -free, by Lem. 5.6(1), this is {\ltermcol\mbox{{\perp}}}-free. By Def. 3.1 there exists such that M\mathrel{{\semcolour\rightarrow}\hbox{\raise 4.95003pt\hbox{\scriptsize{\semcolour*}}\kern-9.8486pt\hbox{{\semcolour_{\beta\mu}}}}}N and . Since contains no {\ltermcol\mbox{{\perp}}}, , so is a normal form, so has a normal form.
If is the normal form of , then it is a {\ltermcol\mbox{{\perp}}}-free approximate normal form. By Lem. 5.6(2) there are , A, and such that . By Lem. 5.2(5) also , and by Thm. 2.4(2), , and , \typecolS, and are -free.∎
In [8] it is shown that it is possible to characterise the set of all terms that are strongly normalisable with respect to \mathbin{\semcolour\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\beta\mu}}, using Thm. 2.4(4), and the proof for the property that all terms in normal form can be typed in , a property that follows here from Lem. 5.6 (see the proof of the previous result). Other than that, the proof is identical.
The following lemma shows that is closed under the expansion of redexes (notice that the result is not stated for arbitrary reduction steps, but only for terms that are proper redexes).
Lemma 5.9**.**
If and , then . 2. 2.
If and , then . 3. 3.
If (with ) and , then . 4. 4.
If , then .
Proof 5.10**.**
By nested induction on the structure of types and the structure of terms. We just show the case \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon.
Then and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt. We have \Gamma,x{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol x}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon} by rule . Then {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\lambda x.x}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont B\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt by and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol(\lambda x.x)N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt by rule .
We have and ; by Lem. 5.2, \Gamma,x{:}\mbox{\kern 0.275pt\typefont B\kern 0.825pt}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol y}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}. Then {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\lambda x.y}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont B\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt by and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol(\lambda x.y)N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt by rule .
If {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\lambda y.M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt, then there exist \typecolS, , \typecolR such that {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt},y{:}\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt and \mbox{\kern 0.275pt\contfont C\kern 0.825pt}=\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}. Then by induction, we get {\colourfortype\Gamma,y{:}\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol(\lambda x.M^{\prime})N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt. Then, by rules and , there exists \typecolT such that {\colourfortype\Gamma,y{:}\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt},x{:}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol M^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt and (also using Lem. 5.2) . But then we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\lambda xy.M^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt by , and by rule also {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol(\lambda xy.M^{\prime})N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt.
Then there exists \typecolR such that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P\,[N/x]}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt and . Then by induction, both {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol(\lambda x.P)N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt and . Then by rules , , and (\mathop{{\colourfortype\mbox{{\cap}}}}) there are \typecolS, , , () such that \mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}={\mbox{{\cap}}}_{\underline{n}}\hskip 0.43999pt\mbox{\kern 0.275pt\contfont C\kern 0.825pt}_{i}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon_{i}, and {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt and , as well as {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{i}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol Q}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}_{i}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon_{i}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt and , for all (notice that, as above, we can assume that is not free in ).
By (\mathop{{\colourfortype\mbox{{\cap}}}}) and Lem. 5.4 we have {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathop{{\colourfortype\mbox{{\cap}}}}{\mbox{{\cap}}}_{\underline{n}}\hskip 0.43999pt\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{i}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt and {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathop{{\colourfortype\mbox{{\cap}}}}{\mbox{{\cap}}}_{\underline{n}}\hskip 0.43999pt\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{i}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol Q}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol R}\kern 0.825pt}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt as well as {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathop{{\colourfortype\mbox{{\cap}}}}{\mbox{{\cap}}}_{\underline{n}}\hskip 0.43999pt\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{i}}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt. By and Lem. 5.4 we get {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathop{{\colourfortype\mbox{{\cap}}}}{\mbox{{\cap}}}_{\underline{n}}\hskip 0.43999pt\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{i}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol PQ}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt and by {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\lambda x.PQ}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathop{{\colourfortype\mbox{{\cap}}}}{\mbox{{\cap}}}_{\underline{n}}\hskip 0.43999pt\mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}_{i}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt. Then by we obtain {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol(\lambda x.PQ)N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt.
Then there exists \typecolD such that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P[N/x]}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt with , and by induction {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol(\lambda x.P)N}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt. Then by rules and , there exists \typecolS such that {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt and (we can assume that is not free in ). Then by rule , {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\alpha]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt and by and we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol(\lambda x.\mu\alpha.[\alpha]P)N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt.
,
Then there exists , \typecolD such that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P[N/x]}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta}}\hskip 1.1pt with , and by induction {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol(\lambda x.P)N}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta}}\hskip 1.1pt. Then by rules and , there exists \typecolS such that {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta}}\hskip 1.1pt and (we can assume that is not free in ). Then by rule , {\colourfortype\Gamma,x{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\beta]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta}}\hskip 1.1pt and by and we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol(\lambda x.\mu\alpha.[\beta]P)N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta}}\hskip 1.1pt. 2. 2.
If , then by rule there are such that A=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon, and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P[Q{\cdot}\gamma/\beta]Q:\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype\gamma{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}. Then by rule there exists such that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P[Q{\cdot}\gamma/\beta]:\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype\gamma{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta} and .
By Lem. 5.5 there exists such that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{2}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt and . Take \mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}=\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{2}, then by Lem. 5.2, and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt by Lem. 5.4. Then \mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mathbin{\leq_{\hbox{{\sc s}}}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\mbox{\contfont{\typecol D}}, so by rule , {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\beta.[\beta]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt; then, by rule , we get . 3. 3.
If , there are such that \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon, , , and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P[Q{\cdot}\gamma/\beta]:\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype\gamma{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}. By Lem. 5.5, there exists \typecolS such that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt and . By rule , we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\beta.[\delta]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt and we get by rule . 4. 4.
We distinguish the following cases (where we assume that distinct identifiers are not equal, and and ):
By rule , there are such that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol M[\alpha/\gamma]}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt, \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon, and . Then also {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\gamma{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt. Then either:
By rule , {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\gamma.[\gamma]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt, and again by rule , {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\alpha]\mu\gamma.[\gamma]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt.
By rule , {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\gamma.[\alpha]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta}}\hskip 1.1pt, and by rule we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\alpha]\mu\gamma.[\alpha]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt.
Then . By rule , there are such that \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon, , {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P[\beta/\gamma]}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt, and ; then also {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\gamma{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt. Then we have {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\gamma.[\alpha]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt by rule , and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\beta]\mu\gamma.[\alpha]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt again by rule .
By rule , there are such that \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon, , {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P[\beta/\gamma]}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt, and . Then {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\gamma{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt, and either:
By rule we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\gamma.[\gamma]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt, and by rule we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\beta]\mu\gamma.[\gamma]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt.
By rule we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\gamma.[\beta]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt and again by rule we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\beta]\mu\gamma.[\beta]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt.
Then . By rule , there are such that , \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon, , and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P[\alpha/\gamma]}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt. Then also {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\gamma{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt. We get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\gamma.[\delta]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt by rule , and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\alpha]\mu\gamma.[\delta]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt by rule .
Then . By rule , there are such that \mbox{\kern 0.275pt\typefont A\kern 0.825pt}=\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon, , , and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P[\beta/\gamma]}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime\prime},\Delta^{\prime}}}\hskip 1.1pt; then also {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol P}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\gamma{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime\prime},\Delta^{\prime}}}\hskip 1.1pt. By rule we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\gamma.[\delta]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime\prime},\Delta^{\prime}}}\hskip 1.1pt and we get {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\beta]\mu\gamma.[\delta]P}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\delta{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime\prime},\Delta^{\prime}}}\hskip 1.1pt again by . ∎
Thm. 5.14 below shows that the set of strongly normalisable terms is exactly the set of terms typeable in the intersection system without using the type constant . The proof goes by induction on the leftmost outermost reduction path. First we introduce the notion of leftmost, outer-most reduction.
Definition 5.11**.**
An occurrence of a redex R in a term is called the leftmost, outermost redex of (), if:
There is no redex in such that with (outer-most); 2. 2.
There is no redex in such that (leftmost).
We write is used to indicate that reduces to by contracting .
The following lemma formulates a subject expansion result for with respect to left-most outer-most reduction.
Lemma 5.12**.**
Assume , and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol N}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt; if also assume that . Then there exists such that {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta^{\prime}}}\hskip 1.1pt.
Proof 5.13**.**
We reason by induction on the structure of terms:
We distinguish two cases:
- 1.
* is a \mathbin{\semcolour\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\beta\mu}}-redex, and , where is the result of contracting . From the fact that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol V^{\prime}P_{1}\hskip 0.43999pt{\cdots}\hskip 0.43999ptP_{n}:\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype\Delta}, we know there are such that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol V^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{n}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt, and for all . Then by Lem. 5.9, {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol V}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{n}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt, so also {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol VP_{1}\hskip 0.43999pt{\cdots}\hskip 0.43999ptP_{n}:\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype\Delta}.* 2. 2.
, so there exists such that , , and . From {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol yP_{1}\hskip 0.43999pt{\cdots}\hskip 0.43999ptP_{j}^{\prime}\hskip 0.43999pt{\cdots}\hskip 0.43999ptP_{n}:\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype\Delta}, we know there are such that {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol y}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{n}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt, and for all , and . Notice that then there exists such that \mbox{\kern 0.275pt\typefont{\typecol T}\kern 0.825pt}\mathbin{\leq_{\hbox{{\sc s}}}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{n}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon.
Then, by induction, there are , , and B such that . Then
- {\colourfortype\Gamma\mathop{{\colourfortype\mbox{{\cap}}}}\Gamma_{j}\mathop{{\colourfortype\mbox{{\cap}}}}\{\,y{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{1}\mathord{\mbox{\typecol\typefont\times}}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mbox{\kern 0.275pt\typefont B\kern 0.825pt}\hskip 0.43999pt{\cdots}\hskip 0.43999pt\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}_{n}\mathord{\mbox{\typecol\typefont\times}}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon\,\}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol yP_{1}\hskip 0.43999pt{\cdots}\hskip 0.43999ptP_{j}\hskip 0.43999pt{\cdots}\hskip 0.43999ptP_{n}:\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype\Delta_{j}}\mathop{{\colourfortype\mbox{{\cap}}}}\Delta.**
If , then and . Then there exists such that {\colourfortype\Gamma,y{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol N^{\prime}}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt and \mbox{\kern 0.275pt\contfont C\kern 0.825pt}=\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}\mathord{\mbox{\typecol\typefont\times}}\mbox{\contfont{\typecol D}}. By induction, there exists , , , and such that {\colourfortype\Gamma^{\prime},y{:}\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol M^{\prime}}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta^{\prime}}}\hskip 1.1pt. Then, by rule , {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\lambda y.M^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\typefont{\typecol S}\kern 0.825pt}^{\prime}\mathord{\mbox{\typecol\typefont\times}}\mbox{\contfont{\typecol D}}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta^{\prime}}}\hskip 1.1pt.
Then and . Since {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\alpha]Q}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt, there exists \typecolD such that , and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol Q}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\Delta_{0}}}\hskip 1.1pt. Then by induction there exist , , , and such that {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol Q}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\Delta^{\prime}}}\hskip 1.1pt. By Lem. 5.4 {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol Q}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}}}\hskip 1.1pt\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\contfont{\typecol D}}^{\prime},\Delta^{\prime} and then by rule we get {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\beta]Q}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta^{\prime}}}\hskip 1.1pt.
** with **
Then and . Since {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\beta]N^{\prime}}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\Delta}}\hskip 1.1pt, there are , \typecolE, \typecolD such that , , and {\colourfortype\Gamma}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol N^{\prime}}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt},\beta{:}\mbox{\contfont{\typecol E}},\Delta_{0}}}\hskip 1.1pt. Then by induction there exist , , , , and such that {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol Q}\mathbin{:}{\colourfortype\mbox{\contfont{\typecol D}}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\beta{:}\mbox{\contfont{\typecol E}}^{\prime},\Delta^{\prime}}}\hskip 1.1pt. Then by Lem. 5.4 we have {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol Q}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\alpha{:}\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime},\beta{:}\mbox{\contfont{\typecol E}}^{\prime}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\contfont{\typecol D}}^{\prime},\Delta^{\prime}}}\hskip 1.1pt and {\colourfortype\Gamma^{\prime}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol\mu\alpha.[\beta]Q}\mathbin{:}{\colourfortype\mbox{\kern 0.275pt\contfont C\kern 0.825pt}^{\prime}\mbox{\typecol\typefont\mathbin{\rightarrow}}\upsilon}\mathbin{\mid}{\colourfortype{\beta{:}\mbox{\contfont{\typecol E}}^{\prime}\mathop{{\colourfortype\mbox{{\cap}}}}\mbox{\contfont{\typecol D}}^{\prime},\Delta^{\prime}}}\hskip 1.1pt follows by rule . ∎
We can now show that all strongly normalisable terms are exactly those typeable in .
Theorem 5.14**.**
\raise-0.25pt\hbox{\exists}\hskip 1.1pt\Gamma, , is strongly normalisable with respect to \mathbin{\semcolour\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\beta\mu}}.
- *Proof: *
If , then by Lem. 5.2(5), also . Then, by Thm. 2.4(4), is strongly normalisable with respect to \mathrel{\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\mbox{\scriptsize\sc Der}}}. Since contains no , all redexes in correspond to redexes in , a property that is preserved by derivation reduction (it does not introduce ). So also is strongly normalisable with respect to \mathbin{\semcolour\mbox{\typecol\typefont\mathbin{\rightarrow}}_{\beta\mu}}.
By induction on the maximum of the lengths of reduction sequences for a strongly normalisable term to its normal form (denoted by ).
- 1.
If , then is in normal form, and by Lem. 5.6(2), there exist , and A such that . 2. 2.
If , so contains a redex, then let by contracting the redex . Then , and (since is a proper sub-term of a redex in ), so by induction, for some , , , , A, and B, we have and . Then, by Lem. 5.12, there exist , , \typecol such that {\colourfortype\Gamma_{1}}\mathbin{{\vdash}\kern-2.20001pt_{\hbox{\scriptsize\sc sn}}}{\ltermcol M}\mathbin{:}{\colourfortype\mbox{\typecol\typefontC}}\mathbin{\mid}{\colourfortype{\Delta_{1}}}\hskip 1.1pt. If the redex is , then , so the result follows by induction. ∎
Conclusions
We have studied a strict version of the intersection type system for of [11]. Using the fact that derivation reduction (a kind of cut-elimination) is strongly normalisable, we have shown an approximation theorem, and from that given a characterisation of head normalisation. We have also shown that the system without the type constant characterises the strongly normalisable terms and that we can characterise normalisation as well.
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1]
- 2[2] S. van Bakel (1992): Complete restrictions of the Intersection Type Discipline . Theoretical Computer Science 102(1), pp. 135–163, 10.1016/0304-3975(92)90297-S . · doi ↗
- 3[3] S. van Bakel (1995): Intersection Type Assignment Systems . Theoretical Computer Science 151(2), pp. 385–435, 10.1016/0304-3975(95)00073-6 . · doi ↗
- 4[4] S. van Bakel (2004): Cut-Elimination in the Strict Intersection Type Assignment System is Strongly Normalising . Notre Dame journal of Formal Logic 45(1), pp. 35–63, 10.1305/ndjfl/1094155278 . · doi ↗
- 5[5] S. van Bakel (2008): The Heart of Intersection Type Assignment; Normalisation proofs revisited . Theoretical Computer Science 398, pp. 82–94, 10.1016/j.tcs.2008.01.020 . · doi ↗
- 6[6] S. van Bakel (2010): Sound and Complete Typing for λ μ 𝜆 𝜇 \lambda\mu . In: Proceedings of 5th International Workshop Intersection Types and Related Systems (ITRS’10), Edinburgh, Scotland , Electronic Proceedings in Theoretical Computer Science 45, pp. 31–44, 10.4204/EPTCS.45.3 . · doi ↗
- 7[7] S. van Bakel (2011): Strict intersection types for the Lambda Calculus . ACM Computing Surveys 43, pp. 20:1–20:49, 10.1145/1922649.1922657 . · doi ↗
- 8[8] S. van Bakel (2016): Approximation and (Head) Normalisation for λ μ 𝜆 𝜇 \lambda\mu using Strict Intersection Types . Available at http://www.doc.ic.ac.uk/~svb/Research/Papers/Lmu-Strict.pdf .
