<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Comput. Sci.</journal-id>
<journal-title>Frontiers in Computer Science</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Comput. Sci.</abbrev-journal-title>
<issn pub-type="epub">2624-9898</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fcomp.2022.792570</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Computer Science</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Semantics for Combinatory Logic With Intersection Types</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Ghilezan</surname> <given-names>Silvia</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1058310/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Ka&#x00161;terovi&#x00107;</surname> <given-names>Simona</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1513576/overview"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Faculty of Technical Sciences, University of Novi Sad</institution>, <addr-line>Novi Sad</addr-line>, <country>Serbia</country></aff>
<aff id="aff2"><sup>2</sup><institution>Mathematical Institute of the Serbian Academy of Sciences and Arts</institution>, <addr-line>Belgrade</addr-line>, <country>Serbia</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Jonni Virtema, The University of Sheffield, United Kingdom</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Marcos Cramer, Technical University Dresden, Germany; Harsh Beohar, The University of Sheffield, United Kingdom</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Silvia Ghilezan <email>gsilvia&#x00040;uns.ac.rs</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Theoretical Computer Science, a section of the journal Frontiers in Computer Science</p></fn></author-notes>
<pub-date pub-type="epub">
<day>12</day>
<month>07</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>4</volume>
<elocation-id>792570</elocation-id>
<history>
<date date-type="received">
<day>10</day>
<month>10</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>17</day>
<month>06</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2022 Ghilezan and Ka&#x00161;terovi&#x00107;.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Ghilezan and Ka&#x00161;terovi&#x00107;</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract>
<p>There is a plethora of semantics of computational models, nevertheless, the semantics of combinatory logic are among the less investigated ones. In this paper, we propose semantics for the computational system of combinatory logic with intersection types. We define extensional applicative structures endowed with special elements corresponding to primitive combinators. We prove two soundness and completeness results. First, the equational theory of untyped combinatory logic is proven to be sound and complete with respect to the proposed semantics. Second, the system of the combinatory logic with intersection types is proven to be sound and complete with respect to the proposed semantics. The usual approach to the semantics for calculi with types that can be found in the literature is based on models for the untyped calculus endowed with a valuation of type variables which enables the interpretation of types to be defined inductively. We propose, however, a different approach. In the semantics we propose, the interpretation of types is represented as a family of subsets that satisfies certain properties, whereas for a given valuation of term variables, the interpretation of terms is defined inductively. Due to the wide applicability of semantics of computational models, the presented approach could be further developed to other computational models and beyond&#x02014;to current and foreseen application of semantics to large distributed systems and new challenging technologies.</p></abstract>
<kwd-group>
<kwd>computational systems</kwd>
<kwd>combinatory logic</kwd>
<kwd>equational theory</kwd>
<kwd>type theory</kwd>
<kwd>intersection types</kwd>
<kwd>soundness</kwd>
<kwd>completeness</kwd>
<kwd>semantics</kwd>
</kwd-group>
<counts>
<fig-count count="2"/>
<table-count count="0"/>
<equation-count count="28"/>
<ref-count count="29"/>
<page-count count="10"/>
<word-count count="7133"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>In the 1920s two models of computation were invented, <italic>combinatory logic</italic> and <italic>lambda calculus</italic>. The foundations of combinatory logic and lambda calculus was established in Curry (<xref ref-type="bibr" rid="B10">1930</xref>) and Church (<xref ref-type="bibr" rid="B7">1936</xref>), respectively. They were developed with the aim to describe functions, their behavior and properties. Nowadays they serve as a basis for the design of functional programming languages and programming languages at large. These two models of computation have the same computational power, they can express the same computational concepts; however the syntax of combinatory logic is much simpler. The basic idea of combinatory logic, introduced in Sch&#x000F6;nfinkel (<xref ref-type="bibr" rid="B26">1924</xref>), is to build functions without using variables. In order to control function application, type systems were introduced for both combinatory logic and lambda calculus. A recent comprehensive overview of combinators is given in Wolfram (<xref ref-type="bibr" rid="B29">2021</xref>). Apart from usual application in programming languages, typed combinatory logic has found its application in a wide range of different fields, such as machine learning, artificial intelligence, program synthesis. Developments of these fields urge for further investigation and development of the theory of combinatory logic.</p>
<p>In computation and type theory, intersection types characterize exactly all strongly normalizing lambda terms (Coppo and Dezani-Ciancaglini, <xref ref-type="bibr" rid="B8">1978</xref>; Sall&#x000E9;, <xref ref-type="bibr" rid="B25">1978</xref>; Pottinger, <xref ref-type="bibr" rid="B23">1980</xref>) providing, on the computational side, a significant extension of simple types, which do not type even some normal forms, such as &#x003BB;<italic>x</italic>.<italic>xx</italic>. On the semantical side, intersection types became a powerful tool suitable for analysing lambda models (Barendregt et al., <xref ref-type="bibr" rid="B3">1983</xref>, <xref ref-type="bibr" rid="B4">2013</xref>). Intersection types for different systems have been studied (e.g., van Bakel et al., <xref ref-type="bibr" rid="B27">2018</xref>; de&#x00027;Liguoro and Treglia, <xref ref-type="bibr" rid="B12">2019</xref>). Combinatory logic was equipped with intersection types in Dezani-Ciancaglini and Hindley (<xref ref-type="bibr" rid="B13">1992</xref>) with the same computational advantage of characterizing exactly all strongly normalizing combinatory terms, i.e., computations that always terminate.</p>
<p>The main contributions and results of this paper:</p>
<list list-type="bullet">
<list-item><p>We propose a novel semantics for combinatory logic with intersection types. We define extensional applicative structures endowed with special elements corresponding to primitive combinators <sans-serif>S</sans-serif>, <sans-serif>K</sans-serif> and <sans-serif>I</sans-serif>.</p></list-item>
<list-item><p>We prove that the equational theory of untyped combinatory logic is sound and complete with respect to the proposed semantics.</p></list-item>
<list-item><p>We then prove that combinatory logic with intersection types is sound and complete with respect to the proposed semantics.</p></list-item>
</list>
<sec>
<title>1.1. Background and Motivation</title>
<p>There have been several approaches to semantics of lambda calculus with intersection types (Barendregt et al., <xref ref-type="bibr" rid="B3">1983</xref>; Dezani-Ciancaglini and Margaria, <xref ref-type="bibr" rid="B14">1984</xref>; Barbanera et al., <xref ref-type="bibr" rid="B1">1995</xref>; Ong and Tsukada, <xref ref-type="bibr" rid="B21">2012</xref>; de Carvalho, <xref ref-type="bibr" rid="B11">2018</xref>) nevertheless none of them addresses combinatory logic. In Barendregt et al. (<xref ref-type="bibr" rid="B3">1983</xref>), the authors have introduced the filter models for lambda calculus and proved the soundness and completeness of the type assignment system with respect to the proposed semantics. Further, in Dezani-Ciancaglini and Margaria (<xref ref-type="bibr" rid="B14">1984</xref>) a modification of intersection type discipline has been considered, and it has been proved that this type system is sound and complete with respect to the <italic>F</italic>-semantics. The type assignment system with intersection and union types has been introduced in Barbanera et al. (<xref ref-type="bibr" rid="B1">1995</xref>), where authors proposed three semantics for the introduced system and proved soundness and completeness results. In de Carvalho (<xref ref-type="bibr" rid="B11">2018</xref>), the author introduced a non-uniform semantics of lambda calculus which allows to measure execution time and presented the intersection type system induced by these semantics, which can be seen as a reformulation of the system of Coppo et al. (<xref ref-type="bibr" rid="B9">1980</xref>). In Ong and Tsukada (<xref ref-type="bibr" rid="B21">2012</xref>), the two-level game semantics is used to model intersection types.</p>
<p>On the other hand, semantics for combinatory logic with intersection types has not been investigated as much as the semantics for lambda calculus with intersection types. An overview of models of combinatory logic is given in Bimb&#x000F3; (<xref ref-type="bibr" rid="B5">2012</xref>), however most of these models are models of untyped combinatory logic. Particularly, one class of models for combinatory logic with intersection types is presented based on theories of types which are in 1 &#x02212; 1 correspondence with filters. Nevertheless, to the best of our knowledge filter models for combinatory logic with intersection types has not been published anywhere. The lack of study of models of combinatory logic has been our motivation for the present research.</p>
</sec>
<sec>
<title>1.2. Organization of the Paper</title>
<p>In Section 2, we briefly review basic notions of the untyped combinatory logic and intersection type assignment system for combinatory logic. We then define the semantics in Section 3. Section 4 presents the results of the paper: in Section 4.1, we prove the soundness and completeness of the equational theory of the untyped combinatory logic with respect to the proposed semantics; in Section 4.2, we prove the soundness and completeness of the combinatory logic with intersection types with respect to the proposed semantics. Section 5 concludes and contains the discussion of the related work.</p>
</sec>
</sec>
<sec id="s2">
<title>2. Combinatory Logic With Intersection Types</title>
<p>We shortly review some basic notions of the untyped combinatory logic <italic>CL</italic> (Barendregt, <xref ref-type="bibr" rid="B2">1985</xref>; Hindley and Seldin, <xref ref-type="bibr" rid="B17">1986</xref>; Bimb&#x000F3;, <xref ref-type="bibr" rid="B5">2012</xref>), and intersection types for combinatory logic (Dezani-Ciancaglini and Hindley, <xref ref-type="bibr" rid="B13">1992</xref>).</p>
<sec>
<title>2.1. Combinatory Logic</title>
<p>The language of combinatory logic is build up from a countable set of term variables <italic>V</italic> and a set of term constants using application, the only (binary) operation. Terms of combinatory logic, called <italic>CL</italic>-terms, are generated by the following grammar:</p>
<disp-formula id="E1"><mml:math id="M1"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>:</mml:mo><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mtext mathvariant="sans-serif">S</mml:mtext><mml:mo>&#x02223;</mml:mo><mml:mtext mathvariant="sans-serif">K</mml:mtext><mml:mo>&#x02223;</mml:mo><mml:mtext mathvariant="sans-serif">I</mml:mtext><mml:mo>&#x02223;</mml:mo><mml:mi>M</mml:mi><mml:mi>N</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>x</italic> is a term variable and <sans-serif>S</sans-serif>, <sans-serif>K</sans-serif>, <sans-serif>I</sans-serif> are term constants, or constants for short. The set of all <italic>CL</italic>-terms is denoted by <italic>CL</italic> and is ranged over by capital letters <italic>M, N</italic>, &#x02026;, <italic>M</italic><sub>1</sub>, &#x02026;. The set of variables that occur in a term <italic>M</italic> is denoted by <italic>FV</italic>(<italic>M</italic>), and the result of substitution of the term <italic>N</italic> for variable <italic>x</italic> in the term <italic>M</italic> is denoted by <italic>M</italic>{<italic>N</italic>/<italic>x</italic>}. The use of parentheses is minimized by the convention that application associates to the left: <italic>M</italic><sub>1</sub><italic>M</italic><sub>2</sub>&#x02026;<italic>M</italic><sub><italic>n</italic></sub> means [&#x02026;(<italic>M</italic><sub>1</sub><italic>M</italic><sub>2</sub>)&#x02026;<italic>M</italic><sub><italic>n</italic></sub>].</p>
<p>The main objects of study in combinatory logic are the relations between terms. We will consider the equivalence relation generated by the equational theory <inline-formula><mml:math id="M2"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:math></inline-formula> given in <xref ref-type="fig" rid="F1">Figure 1</xref>.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Equational theory <inline-formula><mml:math id="M3"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:math></inline-formula>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-04-792570-g0001.tif"/>
</fig>
<p>If <italic>M</italic> &#x0003D; <italic>N</italic> can be derived from the set of axioms and rules of <xref ref-type="fig" rid="F1">Figure 1</xref> we say that terms <italic>M</italic> and <italic>N</italic> are equal, and we write <italic>M</italic> &#x0003D; <italic>N</italic>. The equational theory obtained by adding the rule</p>
<disp-formula id="E2"><mml:math id="M4"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mi>M</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mi>N</mml:mi><mml:mi>x</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>x</mml:mi><mml:mo>&#x02209;</mml:mo><mml:mi>F</mml:mi><mml:mi>V</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0222A;</mml:mo><mml:mi>F</mml:mi><mml:mi>V</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>M</mml:mi><mml:mo>=</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:mfrac><mml:mo stretchy="false">(</mml:mo><mml:mtext>ext</mml:mtext><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>to the equational theory <inline-formula><mml:math id="M5"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:math></inline-formula> will be denoted by <inline-formula><mml:math id="M6"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, and it represents the extensional equational theory. We write <italic>M</italic> &#x0003D;<sub>&#x003B7;</sub> <italic>N</italic>, whenever <italic>M</italic> &#x0003D; <italic>N</italic> is provable in <inline-formula><mml:math id="M7"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. We use the notion of equivalence classes: <inline-formula><mml:math id="M8"><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mi>M</mml:mi><mml:mo>=</mml:mo><mml:mi>N</mml:mi><mml:mstyle class="text"><mml:mtext>&#x000A0;is&#x000A0;provable&#x000A0;in&#x000A0;</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec>
<title>2.2. Intersection Types</title>
<p>Intersection types for combinatory logic were introduced in Dezani-Ciancaglini and Hindley (<xref ref-type="bibr" rid="B13">1992</xref>). The set of intersection types is generated by the following grammar:</p>
<disp-formula id="E3"><mml:math id="M9"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x003C3;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x003C4;</mml:mi><mml:mo>:</mml:mo><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003C9;</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02192;</mml:mo><mml:mi>&#x003C4;</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02229;</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>a</italic> belongs to a countable set of type variables <italic>V</italic><sub><sans-serif>Type</sans-serif></sub> and &#x003C9; is a type constant. There are two type forming operations: the <italic>arrow</italic>, &#x02192;, which generates the simple types and the <italic>intersection</italic>, &#x02229;, which provides the extension of the simple types. The set of all intersection types is denoted by <sans-serif>Types</sans-serif> and is ranged over by &#x003C3;, &#x003C4;, &#x02026;, &#x003C3;<sub>1</sub>, &#x02026;. We can omit parentheses in arrow types by removing outer parentheses and using the convention that, unless otherwise bracketed, nested arrows associate to the right: &#x003C3;<sub>1</sub> &#x02192; &#x02026; &#x02192; &#x003C3;<sub><italic>n</italic>&#x02212;1</sub> &#x02192; &#x003C3;<sub><italic>n</italic></sub> means (&#x003C3;<sub>1</sub> &#x02192; &#x02026; &#x02192; (&#x003C3;<sub><italic>n</italic>&#x02212;1</sub> &#x02192; &#x003C3;<sub><italic>n</italic></sub>)). Intersection types are associative: (&#x003C3; &#x02229; &#x003C4;) &#x02229; &#x003C1; is the same as &#x003C3; &#x02229; (&#x003C4; &#x02229; &#x003C1;), and an intersection type takes precedence over an arrow type: &#x003C3; &#x02229; &#x003C4; &#x02192; &#x003C1; means (&#x003C3; &#x02229; &#x003C4;) &#x02192; &#x003C1;.</p>
<p><bold>Definition 2.1</bold> (Dezani-Ciancaglini and Hindley, <xref ref-type="bibr" rid="B13">1992</xref>; Barendregt et al., <xref ref-type="bibr" rid="B4">2013</xref>).</p>
<list list-type="roman-lower">
<list-item><p><italic>A statement</italic> is of the form <italic>M</italic> : &#x003C3;, where <italic>M</italic> &#x02208; <italic>CL</italic> and &#x003C3; &#x02208; <sans-serif>Types</sans-serif>. The term <italic>M</italic> is the <italic>subject</italic> and the type &#x003C3; is the <italic>predicate</italic> of the statement.</p></list-item>
<list-item><p>A <italic>declaration</italic> is a statement with a term variable as subject, i.e., <italic>x</italic> : &#x003C3;.</p></list-item>
<list-item><p>A <italic>basis</italic> (<italic>context</italic>) is a set of declarations with distinct term variables as subjects.</p></list-item>
<list-item><p>Let &#x00393; &#x0003D; {<italic>x</italic><sub>1</sub> : &#x003C3;<sub>1</sub>, &#x02026;, <italic>x</italic><sub><italic>n</italic></sub> : &#x003C3;<sub><italic>n</italic></sub>} be a basis. The set <italic>dom</italic>(&#x00393;) &#x0003D; {<italic>x</italic><sub>1</sub>, &#x02026;, <italic>x</italic><sub><italic>n</italic></sub>} is the <italic>domain</italic> of the basis &#x00393;.</p></list-item>
<list-item><p>Let &#x00393; &#x0003D; {<italic>x</italic><sub>1</sub> : &#x003C3;<sub>1</sub>, &#x02026;, <italic>x</italic><sub><italic>n</italic></sub> : &#x003C3;<sub><italic>n</italic></sub>} be a basis. Then |&#x00393;| &#x0003D; {&#x003C3;<sub>1</sub>, &#x02026;, &#x003C3;<sub><italic>n</italic></sub>}.</p></list-item>
</list>
<p>The subtyping (pre-order) relation on the set of intersection types is defined in the following way.</p>
<p><bold>Definition 2.2</bold> (Dezani-Ciancaglini and Hindley, <xref ref-type="bibr" rid="B13">1992</xref>). The relation &#x02264; is the smallest binary relation satisfying:</p>
<list list-type="order">
<list-item><p>&#x003C3; &#x02264; &#x003C3;;</p></list-item>
<list-item><p>&#x003C3; &#x02264; &#x003C3; &#x02229; &#x003C3;;</p></list-item>
<list-item><p>&#x003C3; &#x02264; &#x003C9;;</p></list-item>
<list-item><p>&#x003C3; &#x02229; &#x003C4; &#x02264; &#x003C3;, &#x003C3; &#x02229; &#x003C4; &#x02264; &#x003C4;;</p></list-item>
<list-item><p>&#x003C9; &#x02264; &#x003C9; &#x02192; &#x003C9;;</p></list-item>
<list-item><p>(&#x003C3; &#x02192; &#x003C1;) &#x02229; (&#x003C3; &#x02192; &#x003C4;) &#x02264; &#x003C3; &#x02192; (&#x003C1; &#x02229; &#x003C4;);</p></list-item>
<list-item><p>if &#x003C3; &#x02264; &#x003C4;, &#x003C4; &#x02264; &#x003C1; then &#x003C3; &#x02264; &#x003C1;;</p></list-item>
<list-item><p>if &#x003C3; &#x02264; &#x003C3;<sub>1</sub>, &#x003C4; &#x02264; &#x003C4;<sub>1</sub>, then &#x003C3; &#x02229; &#x003C3;<sub>1</sub> &#x02264; &#x003C4; &#x02229; &#x003C4;<sub>1</sub>;</p></list-item>
<list-item><p>if &#x003C3; &#x02264; &#x003C3;<sub>1</sub>, &#x003C4; &#x02264; &#x003C4;<sub>1</sub>, then &#x003C3;<sub>1</sub> &#x02192; &#x003C4; &#x02264; &#x003C3; &#x02192; &#x003C4;<sub>1</sub>,</p></list-item>
</list>
<p>The induced equivalence relation &#x0007E; is defined by</p>
<disp-formula id="E4"><mml:math id="M10"><mml:mrow><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x0007E;</mml:mo><mml:mi>&#x003C4;</mml:mi><mml:mtext>&#x000A0;if&#x000A0;and&#x000A0;only&#x000A0;if&#x000A0;</mml:mtext><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mi>&#x003C4;</mml:mi><mml:mtext>&#x000A0;and&#x000A0;</mml:mtext><mml:mi>&#x003C4;</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>The type-assignment system for combinatory logic with intersection types, denoted by <italic>CL</italic><sub>&#x02229;</sub>, is presented in <xref ref-type="fig" rid="F2">Figure 2</xref>. If the typing judgment &#x00393; &#x022A2; <italic>M</italic> : &#x003C3; can be derived by the rules in <xref ref-type="fig" rid="F2">Figure 2</xref>, then it means that the statement <italic>M</italic> : &#x003C3; is derivable from the basis &#x00393; and that the term <italic>M</italic> is typable in the given basis &#x00393; with type &#x003C3;.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Type-assignment system <italic>CL</italic><sub>&#x02229;</sub>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-04-792570-g0002.tif"/>
</fig>
<p>The rules (axiom <italic>S</italic>), (axiom <italic>K</italic>), and (axiom <italic>I</italic>) type the combinators <sans-serif>S</sans-serif>, <sans-serif>K</sans-serif>, and <sans-serif>I</sans-serif>, respectively. The rule (axiom &#x003C9;) enables every combinatory term <italic>M</italic> to be typable. The rules (&#x02192; elim), (&#x02229; elim-l), and (&#x02229; elim-r) are the usual elimination rules for &#x02192; and &#x02229;, respectively. The rule (&#x02229; intro) is the introduction rule for &#x02229;. The rule (sub-type) is the subsumption rule induced by the subtyping relation on types and the rule (eq) is the rule which enables type preservation under equality.</p>
<p><italic>Remark</italic> 2.3. The type-assignment system <inline-formula><mml:math id="M11"><mml:mi>T</mml:mi><mml:msub><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mi>L</mml:mi><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">B</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> of Dezani-Ciancaglini and Hindley (<xref ref-type="bibr" rid="B13">1992</xref>) is obtained from <italic>CL</italic><sub>&#x02229;</sub> by omitting the rule (eq). Type-assignment statements in <inline-formula><mml:math id="M12"><mml:mi>T</mml:mi><mml:msub><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mi>L</mml:mi><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">B</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> are preserved by the equality generated by the equational theory <inline-formula><mml:math id="M13"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:math></inline-formula> (Dezani-Ciancaglini and Hindley, <xref ref-type="bibr" rid="B13">1992</xref>, Theorem 3.12). In order to obtain a type-assignment system in which types are preserved by the equality generated by the extensional equational theory <inline-formula><mml:math id="M14"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, the rule (eq) has to be added.</p>
<p><bold>Lemma 2.4</bold> (Weakening lemma). <italic>If</italic> &#x00393; &#x022A2; <italic>M</italic> : &#x003C3; <italic>and</italic> &#x00393; &#x02286; &#x00393;&#x02032; <italic>then</italic> &#x00393;&#x02032; &#x022A2; <italic>M</italic> : &#x003C3;.</p>
<p><italic>Proof</italic>. By induction on the length of derivation of &#x00393; &#x022A2; <italic>M</italic> : &#x003C3;.&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
</sec>
</sec>
<sec id="s3">
<title>3. Semantics for <italic>CL</italic><sub>&#x02229;</sub></title>
<p>In this section, we introduce a semantics for combinatory logic with intersection types. We define a model for <italic>CL</italic><sub>&#x02229;</sub> as an applicative structure equipped with an environment.</p>
<p><bold>Definition 3.1</bold>. <italic>An applicative structure for</italic> <italic>CL</italic><sub>&#x02229;</sub> is a tuple</p>
<disp-formula id="E5"><mml:math id="M15"><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>which consists of:</p>
<list list-type="roman-lower">
<list-item><p>a non-empty set <italic>D</italic>, called <italic>domain</italic>,</p></list-item>
<list-item><p>a family {<italic>A</italic><sup>&#x003C3;</sup>} of sets indexed by types &#x003C3;, such that for every &#x003C3;, &#x003C4; &#x02208; <sans-serif>Types</sans-serif>,</p>
<list list-type="bullet">
<list-item><p><italic>A</italic><sup>&#x003C3;</sup> &#x02286; <italic>D</italic>,</p></list-item>
<list-item><p><italic>A</italic><sup>&#x003C9;</sup> &#x0003D; <italic>D</italic>,</p></list-item>
<list-item><p><italic>A</italic><sup>&#x003C3;&#x02229;&#x003C4;</sup> &#x0003D; <italic>A</italic><sup>&#x003C3;</sup> &#x02229; <italic>A</italic><sup>&#x003C4;</sup>,</p></list-item>
<list-item><p>if &#x003C3; &#x02264; &#x003C4;, then <italic>A</italic><sup>&#x003C3;</sup> &#x02286; <italic>A</italic><sup>&#x003C4;</sup>.</p></list-item>
</list></list-item>
<list-item><p>an application function <italic>App</italic>:<italic>D</italic> &#x000D7; <italic>D</italic> &#x02192; <italic>D</italic>, such that for every &#x003C3;, &#x003C4; &#x02208; <sans-serif>Types</sans-serif>,</p>
<p><italic>App</italic>&#x021BE;(<italic>A</italic><sup>&#x003C3; &#x02192; &#x003C4;</sup> &#x000D7; <italic>A</italic><sup>&#x003C3;</sup>):<italic>A</italic><sup>&#x003C3; &#x02192; &#x003C4;</sup> &#x000D7; <italic>A</italic><sup>&#x003C3;</sup> &#x02192; <italic>A</italic><sup>&#x003C4;</sup>.</p></list-item>
</list>
<p><bold>Definition 3.2</bold>. An applicative structure</p>
<disp-formula id="E6"><mml:math id="M16"><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>
<p><italic>has combinators</italic> if there exist elements <bold>s</bold>, <bold>k</bold>, <bold>i</bold> of the domain <italic>D</italic> such that</p>
<list list-type="bullet">
<list-item><p><bold>s</bold> &#x02208; <italic>A</italic><sup>(&#x003C3; &#x02192; (&#x003C1; &#x02192; &#x003C4;)) &#x02192; ((&#x003C3; &#x02192; &#x003C1;) &#x02192; (&#x003C3; &#x02192; &#x003C4;))</sup> for every &#x003C3;, &#x003C1;, &#x003C4; &#x02208; <sans-serif>Types</sans-serif>,</p></list-item>
<list-item><p><bold>k</bold> &#x02208; <italic>A</italic><sup>&#x003C3; &#x02192; (&#x003C4; &#x02192; &#x003C3;)</sup> for every &#x003C3;, &#x003C4; &#x02208; <sans-serif>Types</sans-serif>,</p></list-item>
<list-item><p><bold>i</bold> &#x02208; <italic>A</italic><sup>&#x003C3; &#x02192; &#x003C3;</sup> for every &#x003C3; &#x02208; <sans-serif>Types</sans-serif>,</p></list-item>
<list-item><p>for every <italic>a, b, c</italic> &#x02208; <italic>D</italic> the following equations hold:</p>
</list-item>
</list>
<disp-formula id="E7"><label>(1)</label><mml:math id="M17"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>s</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mi>a</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>b</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>b</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E8"><label>(2)</label><mml:math id="M18"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>k</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mi>a</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>b</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>a</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E9"><label>(3)</label><mml:math id="M19"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>i</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mi>a</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>a</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p><bold>Definition 3.3</bold>. An applicative structure</p>
<disp-formula id="E10"><mml:math id="M20"><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>
<p><italic>is extensional</italic> if for all <italic>f, g</italic> &#x02208; <italic>D</italic> it holds that</p>
<disp-formula id="E11"><mml:math id="M21"><mml:mrow><mml:mtext>if&#x000A0;</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>&#x02200;</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>f</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mtext>then&#x000A0;</mml:mtext><mml:mi>f</mml:mi><mml:mo>=</mml:mo><mml:mi>g</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p><bold>Definition 3.4</bold>. <italic>An environment</italic> &#x003C1; for an applicative structure <inline-formula><mml:math id="M22"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> is a mapping from a set of term variables to the domain, &#x003C1;:<italic>V</italic> &#x02192; <italic>D</italic>.</p>
<p>Although the proposed semantics is not Kripke-style semantics, its definition is inspired by the Kripke-style semantics introduced in Mitchell and Moggi (<xref ref-type="bibr" rid="B20">1991</xref>) and Ka&#x00161;terovi&#x00107; and Ghilezan (<xref ref-type="bibr" rid="B18">2020</xref>), where a model is also defined as an applicative structure provided with an environment. The important difference between Definition 3.4 and the definition of an environment in Ka&#x00161;terovi&#x00107; and Ghilezan (<xref ref-type="bibr" rid="B18">2020</xref>) is the fact that the environment in Ka&#x00161;terovi&#x00107; and Ghilezan (<xref ref-type="bibr" rid="B18">2020</xref>) was a partial mapping, whereas herein it is a total mapping. The motivation for defining environments as total mappings will be explained in Remark 4.5.</p>
<p>Let &#x003C1; be an environment for <inline-formula><mml:math id="M23"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> and <italic>a</italic> &#x02208; <italic>D</italic>. By &#x003C1;(<italic>x</italic>: &#x0003D; <italic>a</italic>) we denote the environment for <inline-formula><mml:math id="M24"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> such that for all <italic>y</italic> &#x02208; <italic>V</italic></p>
<disp-formula id="E12"><mml:math id="M25"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr columnalign="left"><mml:mtd><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>a</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none" equalcolumns="false" class="array"><mml:mtr columnalign="left"><mml:mtd><mml:mi>a</mml:mi><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mi>x</mml:mi></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:mi>y</mml:mi><mml:mo>&#x02260;</mml:mo><mml:mi>x</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p><bold>Definition 3.5</bold>. A model for <italic>CL</italic><sub>&#x02229;</sub> is a pair <inline-formula><mml:math id="M26"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M27"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> is an extensional applicative structure for <italic>CL</italic><sub>&#x02229;</sub> with combinators, and &#x003C1; is an environment for <inline-formula><mml:math id="M28"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>Definition 3.6</bold>. Let <inline-formula><mml:math id="M29"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> be a model for <italic>CL</italic><sub>&#x02229;</sub>. We define the meaning of a term <italic>M</italic> in the environment &#x003C1;, denoted by &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub>, inductively as follows:</p>
<list list-type="order">
<list-item><p>&#x027E6;<italic>x</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x003C1;(<italic>x</italic>),</p></list-item>
<list-item><p>&#x027E6;<sans-serif>S</sans-serif>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; <bold>s</bold>,</p></list-item>
<list-item><p>&#x027E6;<sans-serif>K</sans-serif>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; <bold>k</bold>,</p></list-item>
<list-item><p>&#x027E6;<sans-serif>I</sans-serif>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; <bold>i</bold>,</p></list-item>
<list-item><p>&#x027E6;<italic>MN</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; <italic>App</italic>(&#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub>, &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub>).</p></list-item>
</list>
<p>Note that the meaning of a term does not depend on the meaning of the variables that do not occur in the term. Since an environment &#x003C1; is a total mapping and &#x003C1;(<italic>x</italic>) is defined for every variable <italic>x</italic>, the meaning of every term <italic>M</italic>, denoted by &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub>, is also well-defined.</p>
<p><italic>Remark</italic> 3.7. An important difference between the applicative structure we define and the one introduced in Mitchell and Moggi (<xref ref-type="bibr" rid="B20">1991</xref>) is that we have a domain in the applicative structure. In Mitchell and Moggi (<xref ref-type="bibr" rid="B20">1991</xref>) the authors define the interpretation of the judgment &#x00393; &#x022A2; <italic>M</italic> : &#x003C3;, they interpret the term with its type. In turn, we wanted to be able to define the interpretation of a term independent of its type. For this reason we have introduced a domain as part of the applicative structure.</p>
<p><bold>Lemma 3.8</bold>. <italic>Let</italic> <inline-formula><mml:math id="M30"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> <italic>be an extensional applicative structure for</italic> <italic>CL</italic><sub>&#x02229;</sub> <italic>with combinators</italic>, &#x003C1;<sub>1</sub> <italic>and</italic> &#x003C1;<sub>2</sub> <italic>environments for</italic> <inline-formula><mml:math id="M31"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula> <italic>and</italic> <italic>M</italic> <italic>a</italic> <italic>CL</italic>-<italic>term. If</italic> &#x003C1;<sub>1</sub>(<italic>x</italic>) &#x0003D; &#x003C1;<sub>2</sub>(<italic>x</italic>) <italic>holds for every variable</italic> <italic>x</italic> &#x02208; <italic>FV</italic>(<italic>M</italic>), <italic>then</italic> &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;<sub>1</sub></sub> &#x0003D; &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;<sub>2</sub></sub>.</p>
<p><italic>Proof</italic>. We prove the statement by induction on the structure of the term <italic>M</italic>.</p>
<list list-type="bullet">
<list-item><p>Let <italic>M</italic> be a variable <italic>x</italic>. If &#x003C1;<sub>1</sub>(<italic>x</italic>) &#x0003D; &#x003C1;<sub>2</sub>(<italic>x</italic>), then &#x027E6;<italic>x</italic>&#x027E7;<sub>&#x003C1;<sub>1</sub></sub> &#x0003D; &#x003C1;<sub>1</sub>(<italic>x</italic>) &#x0003D; &#x003C1;<sub>2</sub>(<italic>x</italic>) &#x0003D; &#x027E6;<italic>x</italic>&#x027E7;<sub>&#x003C1;<sub>2</sub></sub>.</p></list-item>
<list-item><p>If <italic>M</italic> is a term constant, then its interpretation does not depend on the environment, but only on the applicative structure. For example, let <italic>M</italic> be a term constant <sans-serif>S</sans-serif>, then &#x027E6;<sans-serif>S</sans-serif>&#x027E7;<sub>&#x003C1;<sub>1</sub></sub> &#x0003D; <bold>s</bold> &#x0003D; &#x027E6;<sans-serif>S</sans-serif>&#x027E7;<sub>&#x003C1;<sub>2</sub></sub>.</p></list-item>
<list-item><p>If <italic>M</italic> is an application <italic>NL</italic>, then by the induction hypothesis the statement holds for terms <italic>N</italic> and <italic>L</italic>, &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;<sub>1</sub></sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;<sub>2</sub></sub> and &#x027E6;<italic>L</italic>&#x027E7;<sub>&#x003C1;<sub>1</sub></sub> &#x0003D; &#x027E6;<italic>L</italic>&#x027E7;<sub>&#x003C1;<sub>2</sub></sub>. Now, by Definition 3.6 we have</p></list-item>
</list>
<disp-formula id="E13"><mml:math id="M32"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mi>L</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>L</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>L</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mi>L</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p><bold>Lemma 3.9</bold> (Substitution lemma). <italic>Let</italic> <italic>M, N</italic> <italic>be</italic> <italic>CL</italic>-<italic>terms and &#x003C1; an environment for an applicative structure</italic> <inline-formula><mml:math id="M33"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula>. <italic>Then</italic>,</p>
<disp-formula id="E14"><mml:math id="M34"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo>/</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula><p>The satisfiability of a statement <italic>M</italic> : &#x003C3; in a model and the notion of semantical consequence are defined as follows.</p>
<p><bold>Definition 3.10</bold> (Ka&#x00161;terovi&#x00107; and Ghilezan, <xref ref-type="bibr" rid="B18">2020</xref>).</p>
<list list-type="order">
<list-item><p>A statement <italic>M</italic> : &#x003C3; is satisfied in a model <italic>M</italic><sub>&#x003C1;</sub>, denoted by <inline-formula><mml:math id="M35"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula>, if and only if <inline-formula><mml:math id="M36"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. In this case we say <inline-formula><mml:math id="M37"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is a model of the statement <italic>M</italic> : &#x003C3;. If a model <inline-formula><mml:math id="M38"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> does not satisfy the statement <italic>M</italic> : &#x003C3;, we write <inline-formula><mml:math id="M39"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022AD;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item><p>A model <inline-formula><mml:math id="M40"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is a model of a basis &#x00393;, denoted by <inline-formula><mml:math id="M41"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mo>&#x00393;</mml:mo></mml:math></inline-formula>, if and only if every declaration <italic>x</italic> : &#x003C3; from the basis &#x00393; is satisfied in the model <inline-formula><mml:math id="M42"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, namely <inline-formula><mml:math id="M43"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item><p>A statement <italic>M</italic> : &#x003C3; is a semantical consequence of a basis &#x00393;, denoted by &#x00393; &#x022A7; <italic>M</italic> : &#x003C3;, if and only if every model of the basis &#x00393; is also a model of the statement <italic>M</italic> : &#x003C3;.</p></list-item>
</list>
</sec>
<sec id="s4">
<title>4. Soundness and Completeness Results</title>
<p>In this section we present the main results of the paper. We prove in Section 4.1 that the equational theory of the untyped combinatory logic <inline-formula><mml:math id="M44"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is sound and complete with respect to the proposed semantics. In Section 4.2, we prove that the type-assignment system <italic>CL</italic><sub>&#x02229;</sub> is sound and complete with respect to the proposed semantics.</p>
<sec>
<title>4.1. Soundness and Completeness of Equational Theory <inline-formula><mml:math id="M45"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula></title>
<p>In the previous section we have introduced models for <italic>CL</italic><sub>&#x02229;</sub> such that the interpretation of every term is defined in a model. A fundamental question to ask is: if two terms are proven to be equal in the equational theory are their interpretations equal in a model?&#x02014;this is referred to as <bold>the soundness</bold> of the equational theory with respect to the model. The other direction: if interpretations of two terms are equal in every model are the terms proven to be equal in the equational theory?&#x02014;is referred to as <bold>the completeness</bold>.</p>
<p>In the sequel, we prove that the equational theory of untyped combinatory logic <inline-formula><mml:math id="M46"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is sound and complete with respect to the proposed semantics.</p>
<p><bold>Theorem 4.1</bold> (Soundness of <inline-formula><mml:math id="M47"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>). <italic>If</italic> <italic>M</italic> &#x0003D;<sub>&#x003B7;</sub> <italic>N</italic>, <italic>then</italic> &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> <italic>for every model</italic> <inline-formula><mml:math id="M48"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p><italic>Proof</italic>. The proof is by induction on the length of the proof of <italic>M</italic> &#x0003D; <italic>N</italic> in <inline-formula><mml:math id="M49"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>.</p>
<p>If <italic>M</italic> &#x0003D; <italic>N</italic> is an instance of axiom (<italic>id</italic>), then terms <italic>M</italic> and <italic>N</italic> represent the same term <italic>L</italic> and it holds that &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>L</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> for every model <inline-formula><mml:math id="M50"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>If <italic>M</italic> &#x0003D; <italic>N</italic> is obtained by axiom (<italic>S</italic>), then there exist terms <italic>P</italic>, <italic>Q</italic> and <italic>R</italic> such that terms <italic>M</italic> and <italic>N</italic> are terms <sans-serif>S</sans-serif><italic>PQR</italic> and (<italic>PR</italic>)(<italic>QR</italic>), respectively. Then, from Definitions 3.2 and 3.6 we obtain</p>
<disp-formula id="E15"><mml:math id="M51"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mtext mathvariant="sans-serif">S</mml:mtext><mml:mi>P</mml:mi><mml:mi>Q</mml:mi><mml:mi>R</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mtext mathvariant="sans-serif">S</mml:mtext><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>Q</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>R</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>s</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>Q</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>R</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>R</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>Q</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>R</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mi>R</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>Q</mml:mi><mml:mi>R</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>If <italic>M</italic> &#x0003D; <italic>N</italic> is obtained by axiom (<italic>K</italic>), then there exist terms <italic>P</italic> and <italic>Q</italic>, such that terms <italic>M</italic> and <italic>N</italic> are terms <sans-serif>K</sans-serif><italic>PQ</italic> and <italic>P</italic>, respectively. Then, from Definitions 3.2 and 3.6 we obtain</p>
<disp-formula id="E16"><mml:math id="M52"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mtext mathvariant="sans-serif">K</mml:mtext><mml:mi>P</mml:mi><mml:mi>Q</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mtext mathvariant="sans-serif">K</mml:mtext><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>Q</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>k</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>Q</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>If <italic>M</italic> &#x0003D; <italic>N</italic> falls under axiom (<italic>I</italic>), then terms <italic>M</italic> and <italic>N</italic> are of the form <sans-serif>I</sans-serif><italic>P</italic> and <italic>P</italic>, respectively, for some term <italic>P</italic>. In a similar way as in the previous two cases, we obtain</p>
<disp-formula id="E17"><mml:math id="M53"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mtext mathvariant="sans-serif">I</mml:mtext><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mtext mathvariant="sans-serif">I</mml:mtext><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold"><mml:mtext>i</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>If <italic>M</italic> &#x0003D; <italic>N</italic> is obtained from <italic>N</italic> &#x0003D; <italic>M</italic> by rule (sym), then by induction hypothesis &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> and the statement holds.</p>
<p>If <italic>M</italic> &#x0003D; <italic>N</italic> is obtained from <italic>M</italic> &#x0003D; <italic>L</italic> and <italic>L</italic> &#x0003D; <italic>N</italic> by rule (trans), then &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>L</italic>&#x027E7;<sub>&#x003C1;</sub> and &#x027E6;<italic>L</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> hold by induction hypothesis. Thus, &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> also holds.</p>
<p>Next, let us suppose that <italic>M</italic> &#x0003D; <italic>N</italic> is obtained from <italic>L</italic> &#x0003D; <italic>Q</italic> by rule (app-l), then terms <italic>M</italic> and <italic>N</italic> are of the form <italic>LP</italic> and <italic>QP</italic>, respectively, for some term <italic>P</italic>. By induction hypothesis &#x027E6;<italic>L</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>Q</italic>&#x027E7;<sub>&#x003C1;</sub>. From the latter we obtain</p>
<disp-formula id="E18"><mml:math id="M54"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>L</mml:mi><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>L</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>Q</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>Q</mml:mi><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>Similarly to the previous case, if <italic>M</italic> &#x0003D; <italic>N</italic> is obtained by rule (app-r), then terms <italic>M</italic> and <italic>N</italic> are of the form <italic>PL</italic> and <italic>PQ</italic>, respectively, for some terms <italic>P, L, Q</italic> such that <italic>L</italic> &#x0003D; <italic>Q</italic> is provable in <inline-formula><mml:math id="M55"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. By induction hypothesis we obtain &#x027E6;<italic>L</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>Q</italic>&#x027E7;<sub>&#x003C1;</sub>, and thus</p>
<disp-formula id="E19"><mml:math id="M56"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mi>L</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>L</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>Q</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>P</mml:mi><mml:mi>Q</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>Finally, we consider the case where <italic>M</italic> &#x0003D; <italic>N</italic> is obtained by applying rule (ext) to <italic>Mx</italic> &#x0003D; <italic>Nx</italic>, with <italic>x</italic> being a variable which appears neither in <italic>M</italic> nor in <italic>N</italic>. Let <inline-formula><mml:math id="M57"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> be a model for <italic>CL</italic><sub>&#x02229;</sub>. In order to prove that &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> holds, it is enough to prove that for every <italic>d</italic> &#x02208; <italic>D</italic> it holds that <italic>App</italic>(&#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub>, <italic>d</italic>) &#x0003D; <italic>App</italic>(&#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub>, <italic>d</italic>), because of the extensionality of the applicative structure <inline-formula><mml:math id="M58"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:math></inline-formula>. Let <italic>d</italic> &#x02208; <italic>D</italic>. Since by induction hypothesis &#x027E6;<italic>Mx</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>Nx</italic>&#x027E7;<sub>&#x003C1;</sub> holds in any model, it also holds in model <inline-formula><mml:math id="M59"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, that is <italic>App</italic>(&#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;(<italic>x</italic>: &#x0003D; <italic>d</italic>)</sub>, &#x027E6;<italic>x</italic>&#x027E7;<sub>&#x003C1;(<italic>x</italic>: &#x0003D; <italic>d</italic>)</sub>) &#x0003D; <italic>App</italic>(&#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;(<italic>x</italic>: &#x0003D; <italic>d</italic>)</sub>, &#x027E6;<italic>x</italic>&#x027E7;<sub>&#x003C1;(<italic>x</italic>: &#x0003D; <italic>d</italic>)</sub>). From the assumption that <italic>x</italic> does not appear in <italic>M</italic> and Lemma 3.8, we obtain &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;(<italic>x</italic>: &#x0003D; <italic>d</italic>)</sub>. Similarly, &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;(<italic>x</italic>: &#x0003D; <italic>d</italic>)</sub>. Now, we have</p>
<disp-formula id="E20"><mml:math id="M60"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mi>x</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mi>x</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Thus, &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> due to the extensionality of the applicative structure.</p>
<p>This concludes the proof.&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p>Recall that by [<italic>M</italic>] we denote the equivalence class of term <italic>M</italic> with respect to the equivalence relation generated by the equational theory <inline-formula><mml:math id="M61"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula><mml:math id="M62"><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mi>M</mml:mi><mml:mo>=</mml:mo><mml:mi>N</mml:mi><mml:mstyle class="text"><mml:mtext>is provable in</mml:mtext></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p>In order to prove the completeness, we first prove the following property.</p>
<p><bold>Lemma 4.2</bold>. <italic>Let</italic> <inline-formula><mml:math id="M63"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> <italic>be an extensional applicative structure with combinators, such that</italic> <italic>D</italic> &#x0003D; {[<italic>M</italic>]&#x02223;<italic>M</italic> &#x02208; <italic>CL</italic>}, <italic>App</italic>([<italic>M</italic>], [<italic>N</italic>]) &#x0003D; [<italic>MN</italic>], <bold>s</bold> &#x0003D; [<sans-serif>S</sans-serif>], <bold>k</bold> &#x0003D; [<sans-serif>K</sans-serif>] <italic>and</italic> <bold>i</bold> &#x0003D; [<sans-serif>I</sans-serif>]. <italic>If an environment</italic> &#x003C1;<sup>&#x022C6;</sup> <italic>is defined by</italic> &#x003C1;<sup>&#x022C6;</sup>(<italic>x</italic>) &#x0003D; [<italic>x</italic>], <italic>then</italic> <inline-formula><mml:math id="M64"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p><italic>Proof</italic>. The proof is by induction on the structure of <italic>M</italic>.</p>
<list list-type="bullet">
<list-item><p>If the term <italic>M</italic> is a variable <italic>x</italic>, then by Definition 3.6 we have <inline-formula><mml:math id="M65"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item><p>If the term <italic>M</italic> is a term constant, for example <sans-serif>S</sans-serif>, then by Definition 3.6 we have <inline-formula><mml:math id="M66"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mtext mathvariant="sans-serif">S</mml:mtext><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle class="text"><mml:mtext mathvariant="bold">s</mml:mtext></mml:mstyle><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtext mathvariant="sans-serif">S</mml:mtext></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>. Similarly, for term constants <sans-serif>K</sans-serif> and <sans-serif>I</sans-serif>.</p></list-item>
<list-item><p>If the term <italic>M</italic> is an application <italic>NL</italic>, then by the induction hypothesis the statement holds for terms <italic>N</italic> and <italic>L</italic>, <inline-formula><mml:math id="M67"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M68"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>L</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>. Further, by Definition 3.6 we obtain <inline-formula><mml:math id="M69"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mi>L</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>L</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mi>L</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>.</p></list-item>
</list>
<p>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p><bold>Theorem 4.3</bold> (Completeness of <inline-formula><mml:math id="M70"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>). <italic>If</italic> &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> <italic>holds in every model</italic> <inline-formula><mml:math id="M71"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <italic>then</italic> <italic>M</italic> &#x0003D;<sub>&#x003B7;</sub> <italic>N</italic>.</p>
<p><italic>Proof</italic>. Suppose that &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> holds for any model <inline-formula><mml:math id="M72"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. We define a model <inline-formula><mml:math id="M73"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x02032;</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> where <inline-formula><mml:math id="M74"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> is an applicative structure &#x02329;<italic>D</italic>, {<italic>A</italic><sup>&#x003C3;</sup>}, <italic>App</italic>&#x0232A; with the following components:</p>
<list list-type="bullet">
<list-item><p>the domain <italic>D</italic> is defined by <italic>D</italic> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic>};</p></list-item>
<list-item><p>for every &#x003C3; &#x02208; <sans-serif>Types</sans-serif>, <italic>A</italic><sup>&#x003C3;</sup> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic> and &#x022A2; <italic>M</italic> : &#x003C3;};</p></list-item>
<list-item><p><italic>App</italic> is a function defined by <italic>App</italic>([<italic>M</italic>], [<italic>N</italic>]) &#x0003D; [<italic>MN</italic>].</p></list-item>
</list>
<p>The environment &#x003C1;<sup>&#x022C6;</sup> is defined by &#x003C1;<sup>&#x022C6;</sup>(<italic>x</italic>) &#x0003D; [<italic>x</italic>].</p>
<p>First we prove that the structure <inline-formula><mml:math id="M75"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> is an applicative structure, meaning that it satisfies conditions of Definition 3.1. The set <italic>D</italic> is a non-empty set. For every &#x003C3; &#x02208; <sans-serif>Types</sans-serif>, the set <italic>A</italic><sup>&#x003C3;</sup> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic> and &#x022A2; <italic>M</italic> : &#x003C3;} is a subset of the set <italic>D</italic> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic>}. Since for every term <italic>M</italic> it holds that &#x022A2; <italic>M</italic> : &#x003C9;, we have that <italic>A</italic><sup>&#x003C9;</sup> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic> and &#x022A2; <italic>M</italic> : &#x003C9;} &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic>} &#x0003D; <italic>D</italic>. Next, we look at the sets <italic>A</italic><sup>&#x003C3;</sup> and <italic>A</italic><sup>&#x003C4;</sup>. By the definition of the applicative structure <inline-formula><mml:math id="M76"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> we have <italic>A</italic><sup>&#x003C3;</sup> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic> and &#x022A2; <italic>M</italic> : &#x003C3;} and <italic>A</italic><sup>&#x003C4;</sup> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic> and &#x022A2; <italic>M</italic> : &#x003C4;}. If [<italic>M</italic>] &#x02208; <italic>A</italic><sup>&#x003C3;</sup> &#x02229; <italic>A</italic><sup>&#x003C4;</sup>, then &#x022A2; <italic>M</italic> : &#x003C3; and &#x022A2; <italic>M</italic> : &#x003C4;. By rule (&#x02229; intro) of <xref ref-type="fig" rid="F2">Figure 2</xref> we obtain &#x022A2; <italic>M</italic> : &#x003C3; &#x02229; &#x003C4;, which is equivalent to [<italic>M</italic>] &#x02208; <italic>A</italic><sup>&#x003C3;&#x02229;&#x003C4;</sup>, and we conclude <italic>A</italic><sup>&#x003C3;</sup> &#x02229; <italic>A</italic><sup>&#x003C4;</sup> &#x02286; <italic>A</italic><sup>&#x003C3;&#x02229;&#x003C4;</sup>. Similarly, we prove that <italic>A</italic><sup>&#x003C3;&#x02229;&#x003C4;</sup> &#x02286; <italic>A</italic><sup>&#x003C3;</sup> &#x02229; <italic>A</italic><sup>&#x003C4;</sup> and we conclude <italic>A</italic><sup>&#x003C3;&#x02229;&#x003C4;</sup> &#x0003D; <italic>A</italic><sup>&#x003C3;</sup> &#x02229; <italic>A</italic><sup>&#x003C4;</sup>. Let &#x003C3;, &#x003C4; &#x02208; <sans-serif>Types</sans-serif> such that &#x003C3; &#x02264; &#x003C4;. If [<italic>M</italic>] &#x02208; <italic>A</italic><sup>&#x003C3;</sup>, then &#x022A2; <italic>M</italic> : &#x003C3; holds, and since &#x003C3; &#x02264; &#x003C4; we obtain &#x022A2; <italic>M</italic> : &#x003C4; by rule (sub-type). It follows that [<italic>M</italic>] &#x02208; <italic>A</italic><sup>&#x003C4;</sup> and we can conclude that &#x003C3; &#x02264; &#x003C4; implies <italic>A</italic><sup>&#x003C3;</sup> &#x02286; <italic>A</italic><sup>&#x003C4;</sup>. The function <italic>App</italic> defined by <italic>App</italic>([<italic>M</italic>], [<italic>N</italic>]) &#x0003D; [<italic>MN</italic>] maps <italic>D</italic> &#x000D7; <italic>D</italic> to <italic>D</italic>. If [<italic>M</italic>] &#x02208; <italic>A</italic><sup>&#x003C3; &#x02192; &#x003C4;</sup> and [<italic>N</italic>] &#x02208; <italic>A</italic><sup>&#x003C3;</sup>, then by the definition of the applicative structure <inline-formula><mml:math id="M77"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> we have &#x022A2; <italic>M</italic> : &#x003C3; &#x02192; &#x003C4; and &#x022A2; <italic>N</italic> : &#x003C3;. By rule (&#x02192; elim) of <xref ref-type="fig" rid="F2">Figure 2</xref> we obtain &#x022A2; <italic>MN</italic> : &#x003C4;, thus we conclude [<italic>MN</italic>] &#x02208; <italic>A</italic><sup>&#x003C4;</sup> and <italic>App</italic> &#x021BE; (<italic>A</italic><sup>&#x003C3; &#x02192; &#x003C4;</sup> &#x000D7; <italic>A</italic><sup>&#x003C3;</sup>):<italic>A</italic><sup>&#x003C3; &#x02192; &#x003C4;</sup> &#x000D7; <italic>A</italic><sup>&#x003C3;</sup> &#x02192; <italic>A</italic><sup>&#x003C4;</sup>.</p>
<p>Next, we prove that the applicative structure <inline-formula><mml:math id="M78"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> has combinators. We consider the equivalence classes [<sans-serif>S</sans-serif>], [<sans-serif>K</sans-serif>], [<sans-serif>I</sans-serif>] &#x02208; <italic>D</italic> and denote them by <bold>s</bold>, <bold>k</bold>, <bold>i</bold>, respectively. Since &#x022A2; <sans-serif>S</sans-serif>:(&#x003C3; &#x02192; (&#x003C4; &#x02192; &#x003C1;)) &#x02192; ((&#x003C3; &#x02192; &#x003C4;) &#x02192; (&#x003C3; &#x02192; &#x003C1;)) holds by (axiom <italic>S</italic>) of <xref ref-type="fig" rid="F2">Figure 2</xref>, we have that <bold>s</bold> &#x0003D; [<sans-serif>S</sans-serif>] &#x02208; <italic>A</italic><sup>(&#x003C3; &#x02192; (&#x003C4; &#x02192; &#x003C1;)) &#x02192; ((&#x003C3; &#x02192; &#x003C4;) &#x02192; (&#x003C3; &#x02192; &#x003C1;))</sup> for any &#x003C3;, &#x003C4;, &#x003C1; &#x02208; <sans-serif>Types</sans-serif>. Similarly, we obtain <bold>k</bold> &#x0003D; [<sans-serif>K</sans-serif>] &#x02208; <italic>A</italic><sup>&#x003C3; &#x02192; (&#x003C4; &#x02192; &#x003C3;)</sup> and <bold>i</bold> &#x0003D; [<sans-serif>I</sans-serif>] &#x02208; <italic>A</italic><sup>&#x003C3; &#x02192; &#x003C3;</sup>. We also have to prove that the elements <bold>s</bold>, <bold>k</bold>, and <bold>i</bold> satisfy the Equations (1)&#x02013;(3). By the rules of the equational theory <inline-formula><mml:math id="M79"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> we obtain [<sans-serif>S</sans-serif><italic>MNL</italic>] &#x0003D; [(<italic>ML</italic>)(<italic>NL</italic>)], [<sans-serif>K</sans-serif><italic>MN</italic>] &#x0003D; [<italic>M</italic>] and [<sans-serif>I</sans-serif><italic>M</italic>] &#x0003D; [<italic>M</italic>] and it follows that:</p>
<disp-formula id="E21"><mml:math id="M80"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtext mathvariant="sans-serif">S</mml:mtext></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtext mathvariant="sans-serif">S</mml:mtext><mml:mi>M</mml:mi><mml:mi>N</mml:mi><mml:mi>L</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>L</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mi>L</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>L</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mi>L</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E22"><mml:math id="M81"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtext mathvariant="sans-serif">K</mml:mtext></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtext mathvariant="sans-serif">K</mml:mtext><mml:mi>M</mml:mi><mml:mi>N</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E23"><mml:math id="M82"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtext mathvariant="sans-serif">I</mml:mtext></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtext mathvariant="sans-serif">I</mml:mtext><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The extensionality of the applicative structure follows from the extensionality of combinatory logic. Let [<italic>M</italic>], [<italic>N</italic>] &#x02208; <italic>D</italic> such that for every [<italic>L</italic>] &#x02208; <italic>D</italic>, <italic>App</italic>([<italic>M</italic>], [<italic>L</italic>]) &#x0003D; <italic>App</italic>([<italic>N</italic>], [<italic>L</italic>]), i.e., [<italic>ML</italic>] &#x0003D; [<italic>NL</italic>]. Then, for a variable <italic>x</italic>, that does not appear in terms <italic>M</italic> and <italic>N</italic>, it holds that [<italic>Mx</italic>] &#x0003D; [<italic>Nx</italic>], that is <italic>Mx</italic> &#x0003D; <italic>Nx</italic> is provable in <inline-formula><mml:math id="M83"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. By rule (ext) we obtain <italic>M</italic> &#x0003D; <italic>N</italic> is provable in <inline-formula><mml:math id="M84"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, so [<italic>M</italic>] &#x0003D; [<italic>N</italic>].</p>
<p>We have proved that <inline-formula><mml:math id="M85"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x02032;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> is a model for <italic>CL</italic><sub>&#x02229;</sub>. If &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub> in any model, then it also holds in the model <inline-formula><mml:math id="M86"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x02032;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>. Hence, we have that <inline-formula><mml:math id="M87"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:math></inline-formula>. From Lemma 4.2 we get <inline-formula><mml:math id="M88"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M89"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>. Now we can conclude that [<italic>M</italic>] &#x0003D; [<italic>N</italic>] holds, that is <italic>M</italic> &#x0003D;<sub>&#x003B7;</sub> <italic>N</italic>.&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p>Theorems 4.1 and 4.3 prove that the equational theory of untyped combinatory logic is both sound and complete with respect to the proposed semantics, hence the proposed semantics is a semantics of the untyped combinatory logic.</p>
</sec>
<sec>
<title>4.2. Soundness and Completeness of Type-Assignment System <italic>CL</italic><sub>&#x02229;</sub></title>
<p>In the sequel we consider another fundamental question: if <italic>M</italic> : &#x003C3; is (syntactically) derivable in the type system <italic>CL</italic><sub>&#x02229;</sub>, &#x022A2; <italic>M</italic> : &#x003C3;, is it valid in all models, &#x022A7; <italic>M</italic> : &#x003C3;?&#x02014;this is referred to as <bold>the soundness</bold> of the type-assignment system with respect to the model. More general, if &#x00393; &#x022A2; <italic>M</italic> : &#x003C3; is (syntactically) derivable in the type system <italic>CL</italic><sub>&#x02229;</sub>, is it semantically derivable, &#x00393; &#x022A7; <italic>M</italic> : &#x003C3;? The other direction: if <italic>M</italic> : &#x003C3; is valid in all models of <italic>CL</italic><sub>&#x02229;</sub>, is it derivable in <italic>CL</italic><sub>&#x02229;</sub>?&#x02014;is referred to as <bold>the completeness</bold>. More general, does semantical derivability &#x00393; &#x022A7; <italic>M</italic> : &#x003C3; imply syntactical derivability &#x00393; &#x022A2; <italic>M</italic> : &#x003C3;?</p>
<p>We prove herein the type-assignment system <italic>CL</italic><sub>&#x02229;</sub> to be sound and complete with respect to the proposed semantics.</p>
<p><bold>Theorem 4.4</bold> (Soundness of <italic>CL</italic><sub>&#x02229;</sub>). <italic>If</italic> &#x00393; &#x022A2; <italic>M</italic> : &#x003C3;, <italic>then</italic> &#x00393; &#x022A7; <italic>M</italic> : &#x003C3;.</p>
<p><italic>Proof</italic>. We prove the statement by induction on the derivation of &#x00393; &#x022A2; <italic>M</italic> : &#x003C3;, considering the last rule used.</p>
<list list-type="bullet">
<list-item><p>Let <inline-formula><mml:math id="M90"><mml:mfrac><mml:mrow><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mo>&#x00393;</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula> be the last rule used. Assume that <inline-formula><mml:math id="M91"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is a model, such that <inline-formula><mml:math id="M92"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mo>&#x00393;</mml:mo></mml:math></inline-formula>. By Definition 3.10, the latter implies that for every <italic>y</italic> : &#x003C4; &#x02208; &#x00393;, <inline-formula><mml:math id="M93"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>y</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:math></inline-formula>. From the premise we have <italic>x</italic> : &#x003C3; &#x02208; &#x00393;, thus <inline-formula><mml:math id="M94"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>x</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item><p>If &#x00393; &#x022A2; <italic>M</italic> : &#x003C3; falls under (axiom <italic>S</italic>), then we have &#x00393; &#x022A2; <sans-serif>S</sans-serif>:(&#x003C3;<sub>1</sub> &#x02192; (&#x003C1;<sub>1</sub> &#x02192; &#x003C4;<sub>1</sub>)) &#x02192; ((&#x003C3;<sub>1</sub> &#x02192; &#x003C1;<sub>1</sub>) &#x02192; (&#x003C3;<sub>1</sub> &#x02192; &#x003C4;<sub>1</sub>)) for some &#x003C3;<sub>1</sub>, &#x003C4;<sub>1</sub>, &#x003C1;<sub>1</sub> &#x02208; <sans-serif>Types</sans-serif>. Let <inline-formula><mml:math id="M95"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> be an arbitrary model for <italic>CL</italic><sub>&#x02229;</sub>. By Definition 3.6 we have that <inline-formula><mml:math id="M96"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mtext mathvariant="sans-serif">S</mml:mtext><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle class="text"><mml:mtext mathvariant="bold">s</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>. Thus, <inline-formula><mml:math id="M97"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mtext mathvariant="sans-serif">S</mml:mtext><mml:mo>:</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> and we can conclude &#x00393; &#x022A7; <sans-serif>S</sans-serif>:(&#x003C3;<sub>1</sub> &#x02192; (&#x003C1;<sub>1</sub> &#x02192; &#x003C4;<sub>1</sub>)) &#x02192; ((&#x003C3;<sub>1</sub> &#x02192; &#x003C1;<sub>1</sub>) &#x02192; (&#x003C3;<sub>1</sub> &#x02192; &#x003C4;<sub>1</sub>)).</p></list-item>
<list-item><p>If &#x00393; &#x022A2; <italic>M</italic> : &#x003C3; falls under (axiom <italic>K</italic>), then we have &#x00393; &#x022A2; <sans-serif>K</sans-serif> : &#x003C3;<sub>1</sub> &#x02192; (&#x003C4;<sub>1</sub> &#x02192; &#x003C3;<sub>1</sub>) for some &#x003C3;<sub>1</sub>, &#x003C4;<sub>1</sub> &#x02208; <sans-serif>Types</sans-serif>. Let <inline-formula><mml:math id="M98"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> be an arbitrary model for <italic>CL</italic><sub>&#x02229;</sub>. We have that <inline-formula><mml:math id="M99"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mtext mathvariant="sans-serif">K</mml:mtext><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle class="text"><mml:mtext mathvariant="bold">k</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>. Thus, <inline-formula><mml:math id="M100"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mtext mathvariant="sans-serif">K</mml:mtext><mml:mo>:</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> holds and we can conclude &#x00393; &#x022A7; <sans-serif>K</sans-serif> : &#x003C3;<sub>1</sub> &#x02192; (&#x003C4;<sub>1</sub> &#x02192; &#x003C3;<sub>1</sub>).</p></list-item>
<list-item><p>If &#x00393; &#x022A2; <italic>M</italic> : &#x003C3; falls under (axiom <italic>I</italic>), then we have &#x00393; &#x022A2; <sans-serif>I</sans-serif> : &#x003C3;<sub>1</sub> &#x02192; &#x003C3;<sub>1</sub> for some &#x003C3;<sub>1</sub> &#x02208; <sans-serif>Types</sans-serif>. For an arbitrary model <inline-formula><mml:math id="M101"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> it holds that <inline-formula><mml:math id="M102"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mtext mathvariant="sans-serif">I</mml:mtext><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle class="text"><mml:mtext mathvariant="bold">i</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>. Hence, <inline-formula><mml:math id="M103"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mtext mathvariant="sans-serif">I</mml:mtext><mml:mo>:</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02192;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and &#x00393; &#x022A7; <sans-serif>I</sans-serif> : &#x003C3;<sub>1</sub> &#x02192; &#x003C3;<sub>1</sub>.</p></list-item>
<list-item><p>If &#x00393; &#x022A2; <italic>M</italic> : &#x003C3; falls under (axiom &#x003C9;), then we have &#x00393; &#x022A2; <italic>M</italic> : &#x003C9;. Let <inline-formula><mml:math id="M104"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> be an arbitrary model for <italic>CL</italic><sub>&#x02229;</sub>. We have that &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x02208; <italic>D</italic> and <italic>A</italic><sup>&#x003C9;</sup> &#x0003D; <italic>D</italic>. From this we obtain <inline-formula><mml:math id="M105"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, that is <inline-formula><mml:math id="M106"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C9;</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item><p>Let <inline-formula><mml:math id="M107"><mml:mfrac><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02192;</mml:mo><mml:mi>&#x003C4;</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>N</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mi>N</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula> be the last rule used and <inline-formula><mml:math id="M108"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> a model which satisfies &#x00393;. By the induction hypothesis, we have that the statement holds for premises &#x00393; &#x022A2; <italic>M</italic> : &#x003C3; &#x02192; &#x003C4; and &#x00393; &#x022A2; <italic>N</italic> : &#x003C3;, i.e., &#x00393; &#x022A7; <italic>M</italic> : &#x003C3; &#x02192; &#x003C4; and &#x00393; &#x022A7; <italic>N</italic> : &#x003C3;. From the induction hypothesis and the assumption <inline-formula><mml:math id="M109"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mo>&#x00393;</mml:mo></mml:math></inline-formula>, we obtain <inline-formula><mml:math id="M110"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02192;</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M111"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>N</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula>. The former implies <inline-formula><mml:math id="M112"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02192;</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> and the latter implies <inline-formula><mml:math id="M113"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. Thus, it holds that <inline-formula><mml:math id="M114"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, and we obtain <inline-formula><mml:math id="M115"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mi>N</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item><p>Let <inline-formula><mml:math id="M116"><mml:mfrac><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02229;</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula> be the last rule used and <inline-formula><mml:math id="M117"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> a model of &#x00393;. By the induction hypothesis we have <inline-formula><mml:math id="M118"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02229;</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:math></inline-formula>, which implies that <inline-formula><mml:math id="M119"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02229;</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> holds. Since <italic>A</italic><sup>&#x003C3;&#x02229;&#x003C4;</sup> &#x0003D; <italic>A</italic><sup>&#x003C3;</sup> &#x02229; <italic>A</italic><sup>&#x003C4;</sup> by Definition 3.1, we have <inline-formula><mml:math id="M120"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02229;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02286;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. Thus, we conclude <inline-formula><mml:math id="M121"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item><p>If the last rule used is <inline-formula><mml:math id="M122"><mml:mfrac><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02229;</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula> the proof proceeds similarly as in the previous case.</p></list-item>
<list-item><p>Let <inline-formula><mml:math id="M123"><mml:mfrac><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02229;</mml:mo><mml:mo>&#x003C4;</mml:mo></mml:mrow></mml:mfrac></mml:math></inline-formula> be the last rule used and <inline-formula><mml:math id="M124"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> a model of &#x00393;. By the induction hypothesis we obtain <inline-formula><mml:math id="M125"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M126"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:math></inline-formula>. The former implies that <inline-formula><mml:math id="M127"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> holds, and the latter implies that <inline-formula><mml:math id="M128"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> holds. Since <italic>A</italic><sup>&#x003C3;</sup> &#x02229; <italic>A</italic><sup>&#x003C4;</sup> &#x0003D; <italic>A</italic><sup>&#x003C3;&#x02229;&#x003C4;</sup> by Definition 3.1, we have <inline-formula><mml:math id="M129"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02229;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02229;</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. Finally, we conclude <inline-formula><mml:math id="M130"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02229;</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item><p>Let <inline-formula><mml:math id="M131"><mml:mfrac><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>&#x003C3;</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula> be the last rule used and <inline-formula><mml:math id="M132"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> a model which satisfies the basis &#x00393;. By the induction hypothesis we obtain that the statement holds for the premise, i.e., &#x00393; &#x022A7; <italic>M</italic> : &#x003C3; and since <inline-formula><mml:math id="M133"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mo>&#x00393;</mml:mo></mml:math></inline-formula> we have that <inline-formula><mml:math id="M134"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula>. The latter implies <inline-formula><mml:math id="M135"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. By Definition 3.1 we know that &#x003C3; &#x02264; &#x003C4; implies <italic>A</italic><sup>&#x003C3;</sup> &#x02286; <italic>A</italic><sup>&#x003C4;</sup>. Hence, it holds that <inline-formula><mml:math id="M136"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, and we can conclude <inline-formula><mml:math id="M137"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C4;</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item><p>Let <inline-formula><mml:math id="M138"><mml:mfrac><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>M</mml:mi><mml:msub><mml:mo>&#x0003D;</mml:mo><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msub><mml:mtext>&#x000A0;</mml:mtext><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>N</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula> be the last rule used and <inline-formula><mml:math id="M139"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> a model of &#x00393;. By the induction hypothesis we have <inline-formula><mml:math id="M140"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula>, which implies that <inline-formula><mml:math id="M141"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> holds. From <italic>M</italic> &#x0003D;<sub>&#x003B7;</sub> <italic>N</italic>, that is <italic>M</italic> &#x0003D; <italic>N</italic> is provable in <inline-formula><mml:math id="M142"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi><mml:mi mathvariant="-tex-caligraphic">Q</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, and Theorem 4.1 we obtain &#x027E6;<italic>M</italic>&#x027E7;<sub>&#x003C1;</sub> &#x0003D; &#x027E6;<italic>N</italic>&#x027E7;<sub>&#x003C1;</sub>. Thus, we can conclude <inline-formula><mml:math id="M143"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, that is <inline-formula><mml:math id="M144"><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x022A7;</mml:mo><mml:mi>N</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula>.</p>
<p>This concludes the proof.</p>
</list-item>
</list>
<p>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p><italic>Remark</italic> 4.5. As pointed out in Section 3, we have defined an environment as a total mapping, whereas in Ka&#x00161;terovi&#x00107; and Ghilezan (<xref ref-type="bibr" rid="B18">2020</xref>) an environment was defined as a partial mapping. Every combinatory term is typable with the type &#x003C9;, i.e., &#x00393; &#x022A2; <italic>M</italic> : &#x003C9; for any basis &#x00393;, and in order to obtain the soundness of the type-assignment system we need to prove that <italic>M</italic> : &#x003C9; holds in every model. Thus, we had to define environments so that the meaning of every term <italic>M</italic> is defined in all models. This is specific to intersection type systems and is due to the rule (axiom &#x003C9;) which ensures typability of all terms.</p>
<p>We define a class of canonical models, following the approach used in Ka&#x00161;terovi&#x00107; and Ghilezan (<xref ref-type="bibr" rid="B18">2020</xref>), in order to prove the completeness of the type-assignment system <italic>CL</italic><sub>&#x02229;</sub> with respect to the models presented in Section 3. Each canonical model is defined with respect to some basis, so that it satisfies only statements that can be derived from that basis. More precisely, we will define a model <inline-formula><mml:math id="M145"><mml:msubsup><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> such that</p>
<disp-formula id="E24"><mml:math id="M146"><mml:mrow><mml:msubsup><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mtext>&#x000A0;if&#x000A0;and&#x000A0;only&#x000A0;if&#x000A0;</mml:mtext><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p><bold>Definition 4.6</bold>. Let &#x00393; be a basis. A canonical model is a pair <inline-formula><mml:math id="M147"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula>, where</p>
<disp-formula id="E25"><mml:math id="M148"><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>such that</p>
<list list-type="bullet">
<list-item><p><italic>D</italic> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic>},</p></list-item>
<list-item><p><italic>A</italic><sup>&#x003C3;</sup> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic> and &#x00393; &#x022A2; <italic>M</italic> : &#x003C3;},</p></list-item>
<list-item><p><italic>App</italic>([<italic>M</italic>], [<italic>N</italic>]) &#x0003D; [<italic>MN</italic>],</p></list-item>
</list>
<p>and &#x003C1;<sup>&#x022C6;</sup>(<italic>x</italic>) &#x0003D; [<italic>x</italic>].</p>
<p><bold>Lemma 4.7</bold>. <italic>The canonical model</italic> <inline-formula><mml:math id="M149"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> <italic>is a model for</italic> <italic>CL</italic><sub>&#x02229;</sub>.</p>
<p><italic>Proof</italic>. We need to prove that the tuple <inline-formula><mml:math id="M150"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> introduced in Definition 4.6 satisfies the conditions of Definition 3.5. First, we prove that <inline-formula><mml:math id="M151"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> is an applicative structure. The set <italic>D</italic> is a non-empty set. The set <italic>A</italic><sup>&#x003C3;</sup> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic> and &#x00393; &#x022A2; <italic>M</italic> : &#x003C3;} is a subset of <italic>D</italic> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic>}. For every <italic>CL</italic>-term <italic>M</italic> we have &#x00393; &#x022A2; <italic>M</italic> : &#x003C9;, thus <italic>A</italic><sup>&#x003C9;</sup> &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic> and &#x00393; &#x022A2; <italic>M</italic> : &#x003C9;} &#x0003D; {[<italic>M</italic>] &#x02223; <italic>M</italic> &#x02208; <italic>CL</italic>} &#x0003D; <italic>D</italic>. The proofs that the family {<italic>A</italic><sup>&#x003C3;</sup>} and the application function <italic>App</italic> satisfy the conditions of Definition 3.1 are obtained similarly as in the proof of Theorem 4.3.</p>
<p>We have proved that the tuple <inline-formula><mml:math id="M152"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>p</mml:mi><mml:mi>p</mml:mi></mml:mrow><mml:mo>&#x0232A;</mml:mo></mml:mrow></mml:math></inline-formula> is an applicative structure. Next, we prove that it has combinators and that it is extensional. Similarly as in the proof of Theorem 4.3 we denote equivalence classes [<sans-serif>S</sans-serif>], [<sans-serif>K</sans-serif>], [<sans-serif>I</sans-serif>] by <bold>s</bold>, <bold>k</bold>, <bold>i</bold>, respectively. From the type-assignment system (<xref ref-type="fig" rid="F2">Figure 2</xref>) we know that for the basis &#x00393;, &#x00393; &#x022A2; <sans-serif>S</sans-serif>:(&#x003C3; &#x02192; (&#x003C4; &#x02192; &#x003C1;)) &#x02192; ((&#x003C3; &#x02192; &#x003C4;) &#x02192; (&#x003C3; &#x02192; &#x003C1;)). From the latter it follows that <bold>s</bold> &#x0003D; [<sans-serif>S</sans-serif>] &#x02208; <italic>A</italic><sup>(&#x003C3; &#x02192; (&#x003C4; &#x02192; &#x003C1;)) &#x02192; ((&#x003C3; &#x02192; &#x003C4;) &#x02192; (&#x003C3; &#x02192; &#x003C1;))</sup>. Similarly, we obtain <bold>k</bold> &#x0003D; [<sans-serif>K</sans-serif>] &#x02208; <italic>A</italic><sup>&#x003C3; &#x02192; (&#x003C4; &#x02192; &#x003C3;)</sup> and <bold>i</bold> &#x0003D; [<sans-serif>I</sans-serif>] &#x02208; <italic>A</italic><sup>&#x003C3; &#x02192; &#x003C3;</sup>. The proof that elements [<sans-serif>S</sans-serif>], [<sans-serif>K</sans-serif>], [<sans-serif>I</sans-serif>] satisfy Equations (1)&#x02013;(3) is given in the proof of Theorem 4.3.</p>
<p>We have proved that the applicative structure introduced in Definition 4.6 has combinators. The proof that the applicative structure is extensional is the same as in the proof of Theorem 4.3.</p>
<p>The mapping &#x003C1;<sup>&#x022C6;</sup> defined by &#x003C1;<sup>&#x022C6;</sup>(<italic>x</italic>) &#x0003D; [<italic>x</italic>] is an environment for the applicative structure <inline-formula><mml:math id="M153"><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>.</p>
<p>This completes the proof that <inline-formula><mml:math id="M154"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> is a model for <italic>CL</italic><sub>&#x02229;</sub>.&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p><bold>Lemma 4.8</bold>. <italic>Let</italic> <inline-formula><mml:math id="M155"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> <italic>be the canonical model. For every</italic> <italic>CL</italic>-<italic>term</italic> <italic>M</italic>, <italic>it holds</italic> <inline-formula><mml:math id="M156"><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p><italic>Proof</italic>. This is a straightforward consequence of Lemma 4.2.&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p><bold>Theorem 4.9</bold>. <italic>Let</italic> <inline-formula><mml:math id="M157"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> <italic>be a canonical model. It holds that</italic></p>
<disp-formula id="E26"><mml:math id="M158"><mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mstyle mathvariant="italic"><mml:mtext>&#x000A0;if&#x000A0;and&#x000A0;only&#x000A0;if&#x000A0;</mml:mtext></mml:mstyle><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p><italic>Proof</italic>. By Definition 4.6 and Lemma 4.8 we obtain</p>
<disp-formula id="E27"><mml:math id="M159"><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mtext>&#x000A0;if&#x000A0;and&#x000A0;only&#x000A0;if&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>M</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;if&#x000A0;and&#x000A0;only&#x000A0;if&#x000A0;</mml:mtext><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>C</mml:mi><mml:mi>L</mml:mi><mml:mtext>&#x000A0;and&#x000A0;</mml:mtext><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>N</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;if&#x000A0;and&#x000A0;only&#x000A0;if&#x000A0;</mml:mtext><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p><bold>Theorem 4.10</bold> (Completeness of <italic>CL</italic><sub>&#x02229;</sub>). <italic>If</italic> &#x00393; &#x022A7; <italic>M</italic> : &#x003C3;, <italic>then</italic> &#x00393; &#x022A2; <italic>M</italic> : &#x003C3;.</p>
<p><italic>Proof</italic>. Suppose that &#x00393; &#x022A7; <italic>M</italic> : &#x003C3;. Let <inline-formula><mml:math id="M160"><mml:msubsup><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> be a canonical model (Definition 4.6). First, we need to prove that <inline-formula><mml:math id="M161"><mml:msubsup><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x022A7;</mml:mo><mml:mo>&#x00393;</mml:mo></mml:math></inline-formula>. Let <italic>x</italic> : &#x003C3; be a declaration from the basis &#x00393;. By Lemma 4.8 and Definition 4.6 we have</p>
<disp-formula id="E28"><mml:math id="M162"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mo>&#x027E6;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x027E7;</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>C</mml:mi><mml:mi>L</mml:mi><mml:mtext>&#x000A0;and&#x000A0;</mml:mtext><mml:mo>&#x00393;</mml:mo><mml:mo>&#x022A2;</mml:mo><mml:mi>N</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></disp-formula>
<p>It follows that <inline-formula><mml:math id="M163"><mml:msubsup><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x022A7;</mml:mo><mml:mo>&#x00393;</mml:mo></mml:math></inline-formula>. From the latter and the assumption &#x00393; &#x022A7; <italic>M</italic> : &#x003C3; we obtain <inline-formula><mml:math id="M164"><mml:msubsup><mml:mrow><mml:mi mathvariant="-tex-caligraphic">M</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022C6;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x00393;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x022A7;</mml:mo><mml:mi>M</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x003C3;</mml:mi></mml:math></inline-formula>. By Theorem 4.9 we obtain &#x00393; &#x022A2; <italic>M</italic> : &#x003C3;.&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x025A1;</p>
<p>Theorems 4.4 and 4.10 prove that the type-assignment system <italic>CL</italic><sub>&#x02229;</sub> is both sound and complete with respect to the proposed semantics. Hence the proposed semantics is a semantics of the combinatory logic with intersection types and of the untyped combinatory logic, as proven in Section 4.1.</p>
</sec>
</sec>
<sec id="s5">
<title>5. Discussion and Conclusion</title>
<p>Combinatory logic, both typed and untyped, found its application in different scientific fields of computer science, e.g., machine learning (Liang et al., <xref ref-type="bibr" rid="B19">2010</xref>) and artificial intelligence (e.g., Garrette et al., <xref ref-type="bibr" rid="B16">2015</xref>), cognitive representation (e.g., Pierre Descl&#x000E9;s, <xref ref-type="bibr" rid="B22">2004</xref>), program synthesis (e.g., D&#x000FC;dder et al., <xref ref-type="bibr" rid="B15">2012</xref>). The development of these fields urge for the further development of combinatory logic, typed, and untyped. Combinatory logic with intersection types has been the object of several studies (Dezani-Ciancaglini and Hindley, <xref ref-type="bibr" rid="B13">1992</xref>; Bunder, <xref ref-type="bibr" rid="B6">2002</xref>; Rehof and Urzyczyn, <xref ref-type="bibr" rid="B24">2011</xref>; Bimb&#x000F3;, <xref ref-type="bibr" rid="B5">2012</xref>). In Dezani-Ciancaglini and Hindley (<xref ref-type="bibr" rid="B13">1992</xref>), two different formulations of intersection types for combinatory logic are proposed and we consider in the paper one of these formulations. The authors proved that type-assignment statements are preserved by combinatory &#x003B2;-equality. A logic of intersection types is considered in Venneri (<xref ref-type="bibr" rid="B28">1994</xref>), by studying a logical characterization for the intersection-type discipline. The author presents a new formulation of the intersection type inference, equivalent to the original one, and then define a Hilbert-style axiomatization such that a formula is provable in the logical system if and only if it is an inhabited intersection type. Bunder (<xref ref-type="bibr" rid="B6">2002</xref>) also studies a logic of intersection types for lambda-terms and combinators by introducing a new system for intersection types, weaker than the one of Venneri (<xref ref-type="bibr" rid="B28">1994</xref>), and with the advantage that the logic of types can be obtained directly from the rules of the type-assignment system. None of these papers consider semantics for combinatory logic with intersection types. Models for combinatory logic with intersection types are presented in Bimb&#x000F3; (<xref ref-type="bibr" rid="B5">2012</xref>) along with the proof that the type-assignment system is sound and complete with respect to the presented models. Kripke-style semantics for lambda calculus and combinatory logic with types are introduced in Mitchell and Moggi (<xref ref-type="bibr" rid="B20">1991</xref>) and Ka&#x00161;terovi&#x00107; and Ghilezan (<xref ref-type="bibr" rid="B18">2020</xref>). In Mitchell and Moggi (<xref ref-type="bibr" rid="B20">1991</xref>), calculi with simple types are considered, whereas in Ka&#x00161;terovi&#x00107; and Ghilezan (<xref ref-type="bibr" rid="B18">2020</xref>) the authors considered full simply typed calculi. However, to the best of our knowledge the semantics we propose is novel.</p>
<p>We have introduced a semantics for combinatory logic with intersection types. As the main results of the paper we have proved that both the extensional equational theory of the untyped <italic>CL</italic> and the intersection type-assignment system <italic>CL</italic><sub>&#x02229;</sub> are sound and complete with respect to the proposed semantics.</p>
<p>The usual approach to the semantics for calculi with types that can be found in the literature, e.g., filter models for lambda calculus with intersection types (Barendregt et al., <xref ref-type="bibr" rid="B3">1983</xref>), is based on a model for the untyped calculus endowed with a valuation of type variables which enables the interpretation of types to be defined inductively. We propose a different approach. In the semantics we propose, the interpretation of types is represented as a family of subsets that satisfies certain properties. Moreover, for a given valuation of term variables, the interpretation of terms is defined inductively, whereas in the previously mentioned semantics the interpretation of terms is defined as a function that satisfies specified conditions.</p>
<p>We plan to further develop this approach to lambda calculus, to different frameworks in logic and computation, e.g., polymorphic types.</p>
</sec>
<sec sec-type="data-availability" id="s6">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/supplementary materials, further inquiries can be directed to the corresponding author/s.</p>
</sec>
<sec id="s7">
<title>Author Contributions</title>
<p>Both authors listed have made a substantial, direct, and intellectual contribution to the work and approved it for publication.</p>
</sec>
<sec sec-type="funding-information" id="s8">
<title>Funding</title>
<p>This research reported in the paper is partly supported by the Science Fund Republic of Serbia &#x00023;6526707 AI4TrustBC.</p>
</sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s9">
<title>Publisher&#x00027;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
</body>
<back>
<ack><p>The authors would like to thank the referees whose suggestions lead to major improvements.</p>
</ack>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Barbanera</surname> <given-names>F.</given-names></name> <name><surname>Dezani-Ciancaglini</surname> <given-names>M.</given-names></name> <name><surname>de&#x00027;Liguoro</surname> <given-names>U.</given-names></name></person-group> (<year>1995</year>). <article-title>Intersection and union types: syntax and semantics</article-title>. <source>Inf. Comput</source>. <volume>119</volume>, <fpage>202</fpage>&#x02013;<lpage>230</lpage>. <pub-id pub-id-type="doi">10.1006/inco.1995.1086</pub-id></citation>
</ref>
<ref id="B2">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Barendregt</surname> <given-names>H. P.</given-names></name></person-group> (<year>1985</year>). <source>The Lambda Calculus - Its Syntax and Semantics, Volume 103 of Studies in Logic and the Foundations of Mathematics</source>. <publisher-name>Elsevier</publisher-name>: <publisher-loc>North-Holland</publisher-loc>.</citation>
</ref>
<ref id="B3">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Barendregt</surname> <given-names>H. P.</given-names></name> <name><surname>Coppo</surname> <given-names>M.</given-names></name> <name><surname>Dezani-Ciancaglini</surname> <given-names>M.</given-names></name></person-group> (<year>1983</year>). <article-title>A filter lambda model and the completeness of type assignment</article-title>. <source>J. Symb. Logic</source>. <volume>48</volume>, <fpage>931</fpage>&#x02013;<lpage>940</lpage>. <pub-id pub-id-type="doi">10.2307/2273659</pub-id></citation>
</ref>
<ref id="B4">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Barendregt</surname> <given-names>H. P.</given-names></name> <name><surname>Dekkers</surname> <given-names>W.</given-names></name> <name><surname>Statman</surname> <given-names>R.</given-names></name></person-group> (<year>2013</year>). <source>Lambda Calculus With Types. Perspectives in Logic.</source> <publisher-loc>Cambridge</publisher-loc>: <publisher-name>University Press</publisher-name>. <pub-id pub-id-type="doi">10.1017/CBO9781139032636</pub-id></citation>
</ref>
<ref id="B5">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Bimb&#x000F3;</surname> <given-names>K.</given-names></name></person-group> (<year>2012</year>). <source>Combinatory Logic: Pure, Applied, and Typed</source>. <publisher-loc>Boca Raton, FL</publisher-loc>: <publisher-name>CRC Press; Taylor &#x00026; Francis Group</publisher-name>. <pub-id pub-id-type="doi">10.1201/b11046</pub-id></citation>
</ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bunder</surname> <given-names>M. W.</given-names></name></person-group> (<year>2002</year>). <article-title>Intersection types for lambda-terms and combinators and their logics</article-title>. <source>Log. J. IGPL</source> <volume>10</volume>, <fpage>357</fpage>&#x02013;<lpage>378</lpage>. <pub-id pub-id-type="doi">10.1093/jigpal/10.4.357</pub-id></citation>
</ref>
<ref id="B7">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Church</surname> <given-names>A.</given-names></name></person-group> (<year>1936</year>). <article-title>An unsolvable problem of elementary number theory</article-title>. <source>Am. J. Math</source>. <volume>58</volume>, <fpage>345</fpage>&#x02013;<lpage>363</lpage>. <pub-id pub-id-type="doi">10.2307/2371045</pub-id></citation>
</ref>
<ref id="B8">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Coppo</surname> <given-names>M.</given-names></name> <name><surname>Dezani-Ciancaglini</surname> <given-names>M.</given-names></name></person-group> (<year>1978</year>). <article-title>A new type assignment for &#x003BB;-terms</article-title>. <source>Arch. Math. Log</source>. <volume>19</volume>, <fpage>139</fpage>&#x02013;<lpage>156</lpage>. <pub-id pub-id-type="doi">10.1007/BF02011875</pub-id></citation>
</ref>
<ref id="B9">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Coppo</surname> <given-names>M.</given-names></name> <name><surname>Dezani-Ciancaglini</surname> <given-names>M.</given-names></name> <name><surname>Venneri</surname> <given-names>B.</given-names></name></person-group> (<year>1980</year>). <article-title>Principal type schemes and lambda-calculus semantics</article-title>, in <source>H.B.Curry: Essays on Combinatory Logic</source>, Lambda-Calculus and Formalism (<publisher-loc>San Diego, CA</publisher-loc>: <publisher-name>Academic Press</publisher-name>), <fpage>535</fpage>&#x02013;<lpage>560</lpage>.</citation>
</ref>
<ref id="B10">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Curry</surname> <given-names>H. B.</given-names></name></person-group> (<year>1930</year>). <article-title>Grundlagen der kombinatorischen logik</article-title>. <source>Am. J. Math</source>. <volume>52</volume>, <fpage>509</fpage>&#x02013;<lpage>536</lpage>. <pub-id pub-id-type="doi">10.2307/2370619</pub-id></citation>
</ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>de Carvalho</surname> <given-names>D.</given-names></name></person-group> (<year>2018</year>). <article-title>Execution time of &#x003BB;-terms <italic>via</italic> denotational semantics and intersection types</article-title>. <source>Math. Struct. Comput. Sci</source>. <volume>28</volume>, <fpage>1169</fpage>&#x02013;<lpage>1203</lpage>. <pub-id pub-id-type="doi">10.1017/S0960129516000396</pub-id></citation>
</ref>
<ref id="B12">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>de&#x00027;Liguoro</surname> <given-names>U.</given-names></name> <name><surname>Treglia</surname> <given-names>R.</given-names></name></person-group> (<year>2019</year>). <article-title>Intersection types for the computational lambda-calculus</article-title>, in <source>Proceedings of the 20th Italian Conference on Theoretical Computer Science, ICTCS 2019</source>, eds <person-group person-group-type="editor"><name><surname>Cherubini</surname> <given-names>A.</given-names></name> <name><surname>Sabadini</surname> <given-names>N.</given-names></name> <name><surname>Tini</surname> <given-names>S.</given-names></name></person-group> (<publisher-loc>Como</publisher-loc>), <fpage>184</fpage>&#x02013;<lpage>189</lpage>.</citation>
</ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dezani-Ciancaglini</surname> <given-names>M.</given-names></name> <name><surname>Hindley</surname> <given-names>J. R.</given-names></name></person-group> (<year>1992</year>). <article-title>Intersection types for combinatory logic</article-title>. <source>Theor. Comput. Sci</source>. <volume>100</volume>, <fpage>303</fpage>&#x02013;<lpage>324</lpage>. <pub-id pub-id-type="doi">10.1016/0304-3975(92)90306-Z</pub-id></citation>
</ref>
<ref id="B14">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Dezani-Ciancaglini</surname> <given-names>M.</given-names></name> <name><surname>Margaria</surname> <given-names>I.</given-names></name></person-group> (<year>1984</year>). <article-title>F-semantics for intersection type discipline</article-title>, in <source>Semantics of Data Types, International Symposium Sophia-Antipolis, Vol. 173 of Lecture Notes in Computer Science</source>, eds <person-group person-group-type="editor"><name><surname>Kahn</surname> <given-names>G.</given-names></name> <name><surname>MacQueen</surname> <given-names>D. B.</given-names></name> <name><surname>Plotkin</surname> <given-names>G. D.</given-names></name></person-group> (<publisher-loc>Berlin; Heidelberg</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>279</fpage>&#x02013;<lpage>300</lpage>. <pub-id pub-id-type="doi">10.1007/3-540-13346-1_14</pub-id></citation>
</ref>
<ref id="B15">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>D&#x000FC;dder</surname> <given-names>B.</given-names></name> <name><surname>Martens</surname> <given-names>M.</given-names></name> <name><surname>Rehof</surname> <given-names>J.</given-names></name> <name><surname>Urzyczyn</surname> <given-names>P.</given-names></name></person-group> (<year>2012</year>). <article-title>Bounded combinatory logic</article-title>, in <source>Computer Science Logic (CSL&#x00027;12) - 26th International Workshop/21st Annual Conference of the EACSL, CSL 2012, Vol. 16 of LIPIcs</source>, eds <person-group person-group-type="editor"><name><surname>C&#x000E9;gielski</surname> <given-names>P.</given-names></name> <name><surname>Durand</surname> <given-names>A.</given-names></name></person-group> (<publisher-loc>Fontainebleau</publisher-loc>: <publisher-name>Schloss Dagstuhl - Leibniz-Zentrum f&#x000FC;r Informatik</publisher-name>), <fpage>243</fpage>&#x02013;<lpage>258</lpage>.</citation>
</ref>
<ref id="B16">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Garrette</surname> <given-names>D.</given-names></name> <name><surname>Dyer</surname> <given-names>C.</given-names></name> <name><surname>Baldridge</surname> <given-names>J.</given-names></name> <name><surname>Smith</surname> <given-names>N. A.</given-names></name></person-group> (<year>2015</year>). <article-title>Weakly-supervised grammar-informed Bayesian CCG parser learning</article-title>, in <source>Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence</source>, eds <person-group person-group-type="editor"><name><surname>Bonet</surname> <given-names>B.</given-names></name> <name><surname>Koenig</surname> <given-names>S.</given-names></name></person-group> (<publisher-loc>Austin, TX</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>2246</fpage>&#x02013;<lpage>2252</lpage>.</citation>
</ref>
<ref id="B17">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hindley</surname> <given-names>J. R.</given-names></name> <name><surname>Seldin</surname> <given-names>J. P.</given-names></name></person-group> (<year>1986</year>). <source>Introduction to Combinators and Lambda-Calculus</source>. <publisher-loc>Cambridge</publisher-loc>: <publisher-name>Cambridge University Press</publisher-name>.</citation>
</ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ka&#x00161;terovi&#x00107;</surname> <given-names>S.</given-names></name> <name><surname>Ghilezan</surname> <given-names>S.</given-names></name></person-group> (<year>2020</year>). <article-title>Kripke-style semantics and completeness for full simply typed lambda calculus</article-title>. <source>J. Log. Comput</source>. <volume>30</volume>, <fpage>1567</fpage>&#x02013;<lpage>1608</lpage>. <pub-id pub-id-type="doi">10.1093/logcom/exaa055</pub-id></citation>
</ref>
<ref id="B19">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Liang</surname> <given-names>P.</given-names></name> <name><surname>Jordan</surname> <given-names>M. I.</given-names></name> <name><surname>Klein</surname> <given-names>D.</given-names></name></person-group> (<year>2010</year>). <article-title>Learning programs: a hierarchical Bayesian approach</article-title>, in <source>Proceedings of the 27th International Conference on Machine Learning (ICML-10)</source>, eds <person-group person-group-type="editor"><name><surname>F&#x000FC;rnkranz</surname> <given-names>J.</given-names></name> <name><surname>Joachims</surname> <given-names>T.</given-names></name></person-group> (<publisher-loc>Haifa</publisher-loc>: <publisher-name>Omnipress</publisher-name>), <fpage>639</fpage>&#x02013;<lpage>646</lpage>.</citation>
</ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mitchell</surname> <given-names>J. C.</given-names></name> <name><surname>Moggi</surname> <given-names>E.</given-names></name></person-group> (<year>1991</year>). <article-title>Kripke-style models for typed lambda calculus</article-title>. <source>Ann Pure Appl. Logic</source> <volume>51</volume>, <fpage>99</fpage>&#x02013;<lpage>124</lpage>. <pub-id pub-id-type="doi">10.1016/0168-0072(91)90067-V</pub-id><pub-id pub-id-type="pmid">23920764</pub-id></citation></ref>
<ref id="B21">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Ong</surname> <given-names>C. L.</given-names></name> <name><surname>Tsukada</surname> <given-names>T.</given-names></name></person-group> (<year>2012</year>). <article-title>Two-level game semantics, intersection types, and recursion schemes</article-title>, in <source>Automata, Languages, and Programming - 39th International Colloquium, ICALP 2012, Vol. 7392 of Lecture Notes in Computer Science</source>, eds <person-group person-group-type="editor"><name><surname>Czumaj</surname> <given-names>A.</given-names></name> <name><surname>Mehlhorn</surname> <given-names>K.</given-names></name> <name><surname>Pitts</surname> <given-names>A. M.</given-names></name> <name><surname>Wattenhofer</surname> <given-names>R.</given-names></name></person-group> (<publisher-loc>Warwick</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>325</fpage>&#x02013;<lpage>336</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-642-31585-5_31</pub-id></citation>
</ref>
<ref id="B22">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Pierre Descl&#x000E9;s</surname> <given-names>J.</given-names></name></person-group> (<year>2004</year>). <article-title>Combinatory logic, language, and cognitive representations</article-title>, in <source>Alternative Logics. Do Sciences Need Them?</source>, ed <person-group person-group-type="editor"><name><surname>Weingartner</surname> <given-names>P.</given-names></name></person-group> (<publisher-loc>Berlin</publisher-loc>: <publisher-name>Springer Verlag</publisher-name>), <fpage>115</fpage>&#x02013;<lpage>148</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-662-05679-0_9</pub-id></citation>
</ref>
<ref id="B23">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Pottinger</surname> <given-names>G.</given-names></name></person-group> (<year>1980</year>). <article-title>A type assignment for the strongly normalizable &#x003BB;-terms</article-title>, in <source>To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism</source>, eds <person-group person-group-type="editor"><name><surname>Seldin</surname> <given-names>J. P.</given-names></name> <name><surname>Hindley</surname> <given-names>J. R.</given-names></name></person-group> (<publisher-loc>London</publisher-loc>: <publisher-name>Academic Press</publisher-name>), <fpage>561</fpage>&#x02013;<lpage>577</lpage>.</citation>
</ref>
<ref id="B24">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Rehof</surname> <given-names>J.</given-names></name> <name><surname>Urzyczyn</surname> <given-names>P.</given-names></name></person-group> (<year>2011</year>). <article-title>Finite combinatory logic with intersection types</article-title>, in <source>Typed Lambda Calculi and Applications - 10th International Conference, TLCA 2011, Volume 6690 of Lecture Notes in Computer Science</source>, ed <person-group person-group-type="editor"><name><surname>Ong</surname> <given-names>C. L.</given-names></name></person-group> (<publisher-loc>Novi Sad</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>169</fpage>&#x02013;<lpage>183</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-642-21691-6_15</pub-id></citation>
</ref>
<ref id="B25">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Sall&#x000E9;</surname> <given-names>P.</given-names></name></person-group> (<year>1978</year>). <article-title>Une extension de la th&#x000E9;orie des types en lambda-calcul</article-title>, in <source>5th International Conference on Automata, Languages and Programming, ICALP&#x00027;78, Vol. 62 of Lecture Notes in Computer Science</source>, eds <person-group person-group-type="editor"><name><surname>Ausiello</surname> <given-names>G.</given-names></name> <name><surname>B&#x000F6;hm</surname> <given-names>C.</given-names></name></person-group> (<publisher-loc>Udine</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>398</fpage>&#x02013;<lpage>410</lpage>. <pub-id pub-id-type="doi">10.1007/3-540-08860-1_30</pub-id></citation>
</ref>
<ref id="B26">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sch&#x000F6;nfinkel</surname> <given-names>M.</given-names></name></person-group> (<year>1924</year>). <article-title>&#x000DC;ber die bausteine der mathematischen logik</article-title>. <source>Math. Ann</source>. <volume>92</volume>, <fpage>305</fpage>&#x02013;<lpage>316</lpage>. <pub-id pub-id-type="doi">10.1007/BF01448013</pub-id></citation>
</ref>
<ref id="B27">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>van Bakel</surname> <given-names>S.</given-names></name> <name><surname>Barbanera</surname> <given-names>F.</given-names></name> <name><surname>de&#x00027;Liguoro</surname> <given-names>U.</given-names></name></person-group> (<year>2018</year>). <article-title>Intersection types for the lambda-mu calculus</article-title>. <source>arXiv:1704.00272</source>. <pub-id pub-id-type="doi">10.48550/arXiv.1704.00272</pub-id></citation>
</ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Venneri</surname> <given-names>B.</given-names></name></person-group> (<year>1994</year>). <article-title>Intersection types as logical formulae</article-title>. <source>J. Log. Comput</source>. <volume>4</volume>, <fpage>109</fpage>&#x02013;<lpage>124</lpage>. <pub-id pub-id-type="doi">10.1093/logcom/4.2.109</pub-id></citation>
</ref>
<ref id="B29">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wolfram</surname> <given-names>S.</given-names></name></person-group> (<year>2021</year>). <article-title>Combinators: a centennial view</article-title>. <source>CoRR, abs/2103.12811</source>.</citation>
</ref>
</ref-list>
</back>
</article>