A Type System for First-Class Layers with Inheritance, Subtyping, and Swapping
Hiroaki Inoue, Atsushi Igarashi

TL;DR
This paper introduces a formal type system for a context-oriented programming language with first-class layers, inheritance, subtyping, and swapping, ensuring type safety in dynamic context-dependent software modifications.
Contribution
It formalizes a small COP language with a sound type system that models key features of JCop, including dynamic layer activation and inheritance.
Findings
Proves type soundness of the language
Models dynamic layer activation and inheritance
Ensures type safety in context-dependent modifications
Abstract
Context-Oriented Programming (COP) is a programming paradigm to encourage modularization of context-dependent software. Key features of COP are layers---modules to describe context-dependent behavioral variations of a software system---and their dynamic activation, which can modify the behavior of multiple objects that have already been instantiated. Typechecking programs written in a COP language is difficult because the activation of a layer can even change objects' interfaces. Inoue et al. have informally discussed how to make JCop, an extension of Java for COP by Appeltauer et al., type-safe. In this article, we formalize a small COP language called ContextFJ with its operational semantics and type system and show its type soundness. The language models main features of the type-safe version of JCop, including dynamically activated first-class layers, inheritance of layer…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
A Type System for First-Class Layers with Inheritance, Subtyping, and Swapping111This is a revised and extended version of the paper “A Sound Type System for Layer Subtyping and Dynamically Activated First-Class Layers,” presented at the 13th Asian Symposium on Programming Languages and Systems (APLAS 2015).
Hiroaki Inoue
Atsushi Igarashi
Graduate School of Informatics
Kyoto University
Abstract
Context-Oriented Programming (COP) is a programming paradigm to encourage modularization of context-dependent software. Key features of COP are layers—modules to describe context-dependent behavioral variations of a software system—and their dynamic activation, which can modify the behavior of multiple objects that have already been instantiated. Typechecking programs written in a COP language is difficult because the activation of a layer can even change objects’ interfaces. Inoue et al. have informally discussed how to make JCop, an extension of Java for COP by Appeltauer et al., type-safe.
In this article, we formalize a small COP language called with its operational semantics and type system and show its type soundness. The language models main features of the type-safe version of JCop, including dynamically activated first-class layers, inheritance of layer definitions, layer subtyping, and layer swapping.
keywords:
Context-oriented programming , dynamic layer composition , first-class layers , layer inheritance , type systems
††journal: Science of Computer Programming
\doclicenseThis
1 Introduction
Software is much more interactive than it used to be: it interacts with not only users but also external resources such as network and sensors and changes its behavior according to inputs from these resources. For example, an e-mail reader may switch to a text-based mode when network throughput is low. Such external information that affects the behavior of software is often referred to as contexts and software that is aware of contexts as context-dependent software. However, context-dependent software is hard to develop and maintain, because the description of context-dependent behavior, which we desire to be modularized, often crosscuts with the dominating module structure. To address such a problem from a programming-language perspective, Context-Oriented Programming (COP) has been proposed by Hirschfeld et al [25].
The main language constructs for COP are layers, which are modules to specify context-dependent behavior, and their dynamic layer activation. A layer is basically a collection of what are called partial methods, which add new behavior to existing objects or override existing methods. When a layer is activated at run time by a designated construct, the partial methods defined in it become effective, changing the behavior of objects until the activation ends. Roughly speaking, a layer abstracts a context and dynamic layer activation abstracts change of contexts.
The JCop language [3] is an extension of Java with language constructs for COP. Not only does it support basic COP constructs described above, but also it introduces many advanced features such as inheritance of layer implementations and first-class layers. However, typechecking implemented in the JCop compiler does not take into account the fact that layer activation can change objects’ interface by partial methods that add new methods and, as a result, not all “method not found” errors are prevented statically. In our previous work [30], we have studied this problem, proposed a type-safe version of JCop (we call Safe JCop in this paper) with informal discussions on its type system.
In this paper, we formalize most of the ideas proposed in the previous work and prove that they really make the language sound. More concretely, we develop a small COP language called , which extends ContextFJ by Igarashi, Hirschfeld, and Masuhara [26, 27] to layer inheritance, subtyping of layer types, first-class layers, and a type-safe layer deactivation mechanism called layer swapping [30]; and we prove a type soundness theorem for . Main issues we have to deal with are (1) the semantics of layer inheritance, which adds another “dimension” to the space of method lookup, (2) sound subtyping for first-class layers, which led us to two kinds of subtyping relation, and (3) layer swapping. A preliminary version of this work has been presented elsewhere [29] under the title “A Sound Type System for Layer Subtyping and Dynamically Activated First-Class Layers.” We have extended given there with superproceed calls, which have been omitted, added proofs, and substantially revised the paper.
The rest of the article is organized as follows. After informally reviewing features of Safe JCop in Section 2, we develop with its syntax, operational semantics, and type system in Section 3; and we prove type soundness in Section 4. In Section 5, we discuss related work and then conclude in Section 6.
2 Language Constructs of Safe JCop
In this section, we review language constructs of Safe JCop, first described in [30], including first-class layers, layer inheritance/subtyping, and layer swapping along informal discussions about the type system.
As a running example, we consider programming a graphical computer game called RetroAdventure [4]. In this game, a player has a character “hero” that wanders around the game world. Here, we introduce class Hero that represents the hero, which has method move to walk around, and class World that represents the game world.
2.1 Layers and Partial Methods
As mentioned already, a first distinctive feature of COP is layers—collections of partial methods to modify the behavior of existing objects. A partial method is syntactically similar to an ordinary method declared in a class, except that the name is given in a qualified form Hero.move(); this means the partial method is going to override method move defined in Hero or (if it does not exist) add to Hero. A layer can contain partial methods for different classes, so, when it is activated, it can affect objects from various classes at once. Similarly to super calls in Java, the body of a partial method can contain proceed calls to invoke the original method overridden by this partial method.
Here, suppose that the hero’s behavior is influenced by weather conditions in the game world. For example, in a foggy weather, the hero gets slow and, in a stormy weather, the hero cannot move as he likes. Here are layers that denote weathers of the game world.
Foggy and Stormy have the definitions of Hero.move, which change the behavior of the original definition in different ways. In particular, Hero.move in Stormy uses proceed, replacing the arguments to calls to move. It also has Hero.randomDirection, used to determine a new randomized direction to which the hero is going to move.
Methods defined in classes are often referred to as base methods and partial methods without corresponding base methods as baseless partial methods. Notice that activating a layer with baseless partial methods extends object interfaces and proceed in a baseless partial method is unsafe unless another layer activation provides a baseless partial method of the same signature.
2.2 Layer Activation and First-Class Layers
In Safe JCop, a layer can be activated by using a layer instance (created by a new expression, just as an ordinary Java object, from a layer definition) in a with statement. The following code snippet shows how Foggy can be activated. (hero is an object of the class Hero).
Inside the body of with, dynamic method dispatch is affected by the activated layers so that partial methods are looked up first. So, movement of the hero will be slow.
Layer activation has a dynamic extent in the sense that the behavior of objects changes even in methods called from inside with. If more than one layer is activated, a more recent activation has precedence and a proceed call in a more recently activated layer may call another partial method (of the same name) in another layer.
In Safe JCop, a layer instance is a first-class citizen and can be stored in a variable, passed to, or returned from a method. A layer name can be used as a type. Combining with layer subtyping discussed later, we can switch layers to activate by a run-time condition. For example, suppose that the game has difficulty levels, determined at run time according to some parameters, and each level is represented by an instance of a sublayer of Difficulty. Then, we can set the initial difficulty level by code like this:
Difficulty diff = /* an expression to compute difficulty */ ;
with(diff){ ... }
Moreover, a layer can declare own fields and methods (although we do not model them in layers in this article). So, first-class layers significantly enhance expressiveness of the language.
2.3 Dependencies between Layers
Baseless partial methods and layer activation that has dynamic extent pose a challenge on typechecking because activation of a layer including baseless partial methods can change object interfaces. So, a method invocation, including a proceed call, may or may not be safe depending on what layers are activated at the program point. Safe JCop adopts requires clauses [27] for layer definitions to express which layers should have been activated before activating each layer (instance). The type system checks whether each activation satisfies the requires clause associated to the activated layer and also uses requires clauses to estimate interfaces of objects at every program point.
For example, consider another layer ThunderInStorm, which expresses an event in a game. It affects the way how the hero’s direction is randomized during a storm and includes a baseless partial method with a proceed call. To prevent ThunderInStorm from being activated in a weather other than a storm, the layer requires Stormy as follows:
An attempt at activating ThunderInStorm without activating Stormy will be rejected by the type system (unless the activation appears in a layer requiring Stormy). Thanks to the requires clause, the type system knows that the proceed call will not fail. (It will call the partial method of the same name in Stormy or some other depending on what layers are activated at run time.)
2.4 Layer Inheritance and Subtyping
In Safe JCop, a layer can inherit definitions from another layer by using the keyword extends and the extends relation between layers yields subtyping, just like Java classes. If weather layers have many definitions in common, it is a good idea to define a superlayer Weather and concrete weather layers as its sublayers.
Here, Weather provides (baseless) partial method sayWeather to the class People, which returns Text data that people say about weather condition. The implementation of People.sayWeather just returns an empty Text and sublayers of the Weather override it. Safe JCop provides superproceed, which calls a partial method overridden because of layer inheritance. The partial method of Stormy sets the contents of the text using superproceed.
Since class subtyping equals to the reflexive and transitive closure of the extends relation, we expect layer subtyping to be the same; an instance of a sublayer can be substituted for that of its superlayer. However, substitutability is more subtle than one might expect and we are led to distinguishing two kinds of substitutability and introducing two kinds of subtyping relation, called weak and normal subtyping. The difference arises from requires clauses. To explain the issue, we define layer Thunder, which is the superlayer of ThunderInStorm and ThunderInFog and a sublayer of a marker layer Event.
Thunder changes the font of the text of what People say. It seems natural to set the requires clause of Thunder to be Weather, since its two sublayers require Stormy and Foggy respectively.
Weak subtyping
An instance of a sublayer can be used where a superlayer is required, since a sublayer defines more partial methods than its superlayer. For example, to activate the following layer called Thunder, which requires Weather, it suffices to activate Foggy, a sublayer of Weather, beforehand.
with(new Foggy()){
// Thunder requires Weather and Foggy extends Weather
with(new Thunder()){ ... }
}
We will formalize substitutability about requires as weak subtyping, which is the reflexive transitive closure of the extends relation between layer types. For the weak subtyping to work, we require that a sublayer declare, at least, what its superlayer requires because partial methods inherited from the superlayer may depend on them. We could relax this condition if a sublayer overrides all the partial methods but such a case is expected to be rare and so not taken into account.222Re-typechecking inherited methods under the new requires clause would be another way to relax this condition but this is against modular checking.
Normal subtyping
The above notion of subtyping is called weak because it does not guarantee safe substitutability for first-class layers. Consider layer Difficulty again and assume that it requires no other layers and has sublayers Easy and Hard. In the following code snippet, the activation of diff appears safe because its static type Difficulty does not require any layers to have been activated.
Difficulty diff = someCondition() ? new Easy() : new Hard();
with(diff){ ... }
However, the case where Easy or Hard requires some layers breaks the expected invariant that the dependency expressed by the requires clauses is satisfied at run time. So, for assignments and parameter passing, we need one more condition for subtyping, namely, requires of a sublayer must be the same as that of its superlayer. We call this strong notion of subtyping normal subtyping.
In Fig. 1, we show the layer subtyping hierarchy of the examples so far. An oval means a layer and the notation req {X} beside an oval means its requiring layers. Just like Object in Java, there is Base, which is a superlayer of all layers, in Safe JCop. If a layer omits the extends clause, it is implicitly assumed that the layer extends Base.
2.5 Layer Swapping and Deactivation
The original JCop provides constructs to deactivate layers. However, only with requires, it is not easy to guarantee that layer deactivation does not lead to an error. For safe deactivation, it has to be checked that there is no layer that requires the deactivated layer, but the type system is not designed to keep track of the absence of certain layers. Instead of general-purpose layer deactivation mechanisms, Safe JCop introduces a special construct to express one important idiom that uses deactivation, namely layer swapping to deactivate some layers and activate a layer at once.
In Safe JCop, we can define a layer as swappable, which means that all its sublayers can be swapped with each other, by adding the modifier swappable. The swap statement for layer swapping is of the following form:
swap(activation_layer, deactivation_layer_type){ … }
The activation_layer is an expression whose static type must be a sublayer of deactivation_layer_type, which in turn has to be swappable. It deactivates all instances of deactivation_layer_type (and its sublayers), and activates the activation_layer.
Let’s consider Difficulty once again. We could define Difficulty as a swappable layer and use swap to switch to another mode temporarily.
For type safety, the necessary restriction for layer swapping was wrong and has to be stronger than discussed in the previous work [30]. Specifically, we need the following restrictions:
No sublayer of a swappable layer can be required by any other layers.
- 2.
Every sublayer of a swappable layer has to have the same interface (namely, set of public methods) and requires clause as the swappable layer.
The second condition was overlooked in the previous work.
2.6 Method Lookup
We informally explain how Safe JCop’s method lookup mechanism works, before proceeding to the formal calculus.
When method m is invoked on an instance of class C with layers activated, the corresponding method definition is sought as follows: first, the activated layers , , down to are searched (in this order) for a partial method named C.m; if C.m is not found, the base class C is searched for the base definition; if m is not found, similar search continues on the C’s superclass D—namely, the activated layers are searched again for a partial method named D.m and the base class D is searched for the base definition, and so on. In addition to the usual inheritance chain in class-based object-oriented languages, COP adds another dimension to the space of method lookup. Actually, there is yet another dimension in (Safe) JCop because of layer inheritance: When is searched for a partial method, its superlayers are searched, too, before going to . For example, under the following class and layer definitions
class C extends D { }
class D extends E { void m(){ ... } }
class E { void m(){ ... } }
layer L1 { void D.m(){ ... } }
layer L2 extends L3 { void E.m(){ ... } }
layer L3 { void C.m(){ ... } }
the following statement
with(new L1()) {
with(new L2()){
**new** C().m();
}
}
will execute partial method C.m defined in L3 (we will use notation L.C.m to mean the partial method C.m defined in layer L hereafter), whereas the statement
with(new L1()) { new C().m(); }
will execute L1.D.m.
Now, we turn our attention to the semantics of super, proceed, and superproceed. When a super, proceed or superproceed call is encountered during execution of a (partial) method, it continues to look for a method definition of the same name as follows.
Suppose that C.m is found in layer with layers activated () and that D is a superclass of C.
A call super.m() starts looking for a partial method D.m from and so on.
- 2.
A proceed call starts looking for a partial method C.m from or the base method of class C (when ), and so on.
- 3.
A superproceed call starts looking for C.m in \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} (where \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} is the superlayer of ), \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} (where \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} is the superlayer of \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}), and so on. If C.m is not found in the superlayers, it is a run-time error (which the type system will prevent).
For example, consider the following class and layer definitions and suppose L1, L2 and L3 are activated in this order.
class C extends D { }
class D extends E { void m(){ return super.m();} }
class E { void m(){ return; } }
layer L1 {
void C.m(){ ... super.m(); ... proceed(); ... }
void D.m(){ ... super.m(); ... proceed(); ... }
}
layer L2 {
void C.m(){ ... super.m(); ... proceed(); ... }
}
layer L4 {
void C.m(){ ... super.m(); ... proceed(); ... }
void E.m(){ ... super.m(); ... proceed(); ... }
}
layer L3 extends L4 {
void C.m(){ ... super.m(); ... proceed(); ... }
}
super.m calls from L4.C.m and L1.C.m will invoke L1.D.m; and those from L1.D.m and D.m will invoke L4.E.m, since L3 inherits E.m from L4.
- 2.
a proceed call from L4.C.m will invoke L2.C.m and that from L1.C.m will invoke L1.D.m.
- 3.
a superproceed call from L3.C.m will invoke L4.C.m.
Fig. 2 summarizes how super, proceed, and superproceed calls are resolved. Each ball represents a (partial) method definition and its location where it is put. The three axes stands for class inheritance (C extends D and D extends E), activated layers (L1, L2, and L3 are activated in this order), and layer inheritance (L3 extends L4). Dotted arrows represent how proceed calls at each method definition are resolved. For example, the top-most long dotted arrow means that proceed from L4.E.m will invoke E.m. Double-line arrows represent super and thick arrows superproceed.
Finally, we should note that, for super, proceed, and superproceed calls, the activated layers are the same as those when the current method is found. So, with or swap around super, proceed, and superproceed does not affect which definition is invoked; only method invocations are affected by with and swap.
3
In this section, we formalize a core functional subset of Safe JCop as with its syntax, operational semantics and type system. , a descendant of Featherweight Java (FJ) [28], extends ContextFJ [26, 27] with layer inheritance, superproceed, layer subtyping, first-class layers, and swappable layers. JCop features that does not model for simplicity include: fields and (ordinary) methods in layers, special variable thislayer to refer to the current layer instance, superlayer to invoke an ordinary method in a superlayer, and declarative layer composition.
3.1 Syntax
Let metavariables C, D and E range over class names; L over layer names; f and g over field names; m over method names; x and y over variables, which contains special variable this. The abstract syntax of is given in Fig. 3.
Following FJ, we use overlines to denote sequences: So, stands for a possibly empty sequence and similarly for , , , and so on. The empty sequence is denoted by . Concatenation of sequences is often denoted by a comma except for layer names, for which we use a semicolon. We also abbreviate pairs of sequences, writing “” for “”, where is the length of and , and similarly “” as shorthand for the sequence of declarations “…” and “” for “…”. Given layer sequence , We write for the set of layers (obtained by ignoring the order). Sequences of field declarations, parameter names, layer names, and method declarations are assumed to contain no duplicate names.
We briefly explain the syntax, focusing on COP-related constructs. A layer definition LA consists of optional modifier swappable, its name, its superlayer name, layers that it requires, and partial methods. A partial method (defined as PM) is similar to a method but specifies which m to modify by qualifying the simple method name with a class name C.
Instantiation can be a layer instance new L(), as well as a class instance . Note that arguments to new L are always empty because does not model fields of layer instances. In the expression , stands for the layer to be activated and the body of with. In the expression , means the layer to be activated, L the swappable layer, the body of swap. By this expression, during the evaluation of , all instances of the swappable layer L and its sublayers are deactivated, and is activated. , and are keywords to invoke methods of the superclass, a previously activated layer, and the superlayer, respectively.
Expressions \mathchoice{\mbox{\normalsize\tt{new C(}}}{\mbox{\normalsize\tt{new C(}}}{\mbox{\scriptsize\tt{new C(}}}{\mbox{\tiny\tt{new C(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,}}}{\mbox{\normalsize\tt{)<D,}}}{\mbox{\scriptsize\tt{)<D,}}}{\mbox{\tiny\tt{)<D,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m(}}}{\mbox{\normalsize\tt{>.m(}}}{\mbox{\scriptsize\tt{>.m(}}}{\mbox{\tiny\tt{>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}} and \mathchoice{\mbox{\normalsize\tt{new C(}}}{\mbox{\normalsize\tt{new C(}}}{\mbox{\scriptsize\tt{new C(}}}{\mbox{\tiny\tt{new C(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,L,}}}{\mbox{\normalsize\tt{)<D,L,}}}{\mbox{\scriptsize\tt{)<D,L,}}}{\mbox{\tiny\tt{)<D,L,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m(}}}{\mbox{\normalsize\tt{>.m(}}}{\mbox{\scriptsize\tt{>.m(}}}{\mbox{\tiny\tt{>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}} are special run-time expressions that are related to method invocation mechanism of COP, and not supposed to appear in classes and layers. They basically mean that m is going to be invoked on . The annotation \mathchoice{\mbox{\normalsize\tt{<D,}}}{\mbox{\normalsize\tt{<D,}}}{\mbox{\scriptsize\tt{<D,}}}{\mbox{\tiny\tt{<D,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>}}}{\mbox{\normalsize\tt{>}}}{\mbox{\scriptsize\tt{>}}}{\mbox{\tiny\tt{>}}} is used to model super and proceed whereas \mathchoice{\mbox{\normalsize\tt{<D,L,}}}{\mbox{\normalsize\tt{<D,L,}}}{\mbox{\scriptsize\tt{<D,L,}}}{\mbox{\tiny\tt{<D,L,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>}}}{\mbox{\normalsize\tt{>}}}{\mbox{\scriptsize\tt{>}}}{\mbox{\tiny\tt{>}}} is used for superproceed. stands for a sequence of activated layers and D, L and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} (which is assumed to be a prefix of ) play a role of a “cursor” where the method lookup starts from. We explain how they work in detail in Section 3.2.
Program
A program consists of a class table CT, a layer table LT and an expression e, which stands for the body of the main method. CT maps a class name to a class definition and LT a layer name to a layer definition. A layer definition can be regarded as a function that maps a partial method name C.m to a partial method definition. So, we can view LT as a Curried function, and we often write for the partial method C.m in L in a program. We assume that the domains of CT and LT are finite. Precisely speaking, the semantics and type system are parameterized over CT and LT but, to lighten the notation, we assume them to be fixed and omit from judgments.
Given CT and , extends and requires clauses are considered relations, written and req, respectively, over class/layer names. Namely, we write if and . We also write if .333Note that L1 req L2 and \texttt{L{}_{1} req }\{\texttt{L}_{2}\} have slightly different meanings; the former means L2 is one of the layers required by L1, whereas the latter means L2 is the only layer required by L1. As usual, we write for the transitive closure of relation ; similarly for for the reflexive transitive closure of . We write L swappable if is defined with the swappable modifier.
We assume the following sanity conditions are satisfied by a given program:
for any . 2. 2.
. 3. 3.
For every class name C (except Object) appearing anywhere in CT, . 4. 4.
for any . 5. 5.
. 6. 6.
For every layer name L (except Base) appearing anywhere in LT, . 7. 7.
Both for classes and layers, there are no cycles in the transitive closure of the extends clauses. 8. 8.
for any and and .
These sanity conditions are an extension of those of FJ: conditions for layers (4–7) are similar to those for classes (1–3, 7). In Condition 6, like Object of classes, layer Base is defined as the root of the layer inheritance/subtyping hierarchy. In the condition (8), means that a layer cannot introduce a method to Object, which has no base methods. We could allow a layer to add methods to Object but doing so would just clutter presentation—there are more rules to deal with the fact that super calls cannot be made in partial methods for Object.
3.2 Operational Semantics
Lookup Functions
We need a few auxiliary lookup functions to define operational semantics and they are defined in Fig. 4. The function returns a sequence of pairs of a field name and its type by collecting all field declarations from C and its superclasses.
The function returns the parameters and body of the partial method C.m defined in layer L. It also returns the layer name at which C.m is found, which will be used in reduction rules to deal with superproceed. If partial method C.m is not found in L, its superlayer L*′* is searched and so on. The function returns the parameters and body of method m in class C when the search starts from ; the other sequence keeps track of the layers that are activated when the search initially started. It also returns D and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} (which will be a prefix of ), information on where the method has been found. For example, in the rule MB-Layer, which means that the method is found in class C and layer (or its superlayers), mbody returns C and (\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}};\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}). Such information will be used in reduction rules to deal with proceed and super. Readers familiar with ContextFJ will notice that the rules for mbody are mostly the same as those in ContextFJ, except that is substituted for to take layer inheritance into account. By reading the four rules defining the two functions in a bottom-up manner, it is not hard to see the correspondence with the method lookup procedure, informally described in Section 2.6.
Reduction
The operational semantics of is given by a reduction relation of the form \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}, read “expression e reduces to e*′* under the activated layers .” The sequence of layer names stands for nesting of with and the rightmost name stands for the most recently activated layer. As for other sequences, do not contain duplicate names. Note that we put a sequence of layer names rather than layer instances because layer instances have no fields and new L() and L can be identified. If we modelled fields in layer instances, we would have to put instances for layer names.
Reduction rules are found in Fig. 5 and Fig. 6. R-Field is for field access and four rules R-InvkXX are for method invocation: R-Invk initializes the cursor according to the currently activated layers ; the rules R-InvkB and R-InvkP represent invocation of a base and partial method, respectively, depending on which kind is found by mbody; the rule R-InvkSP deals with the case where the cursor in the receiver object is a quadruple, which occurs when the entire expression was a superproceed call. In the last case, pmbody is used to find a method body because superproceed denotes a partial method in one of the superlayers.
Note how this, proceed, super and superproceed are replaced with the receiver with different cursor locations. For proceed, the cursor of triple moves one layer to the left and, for super, the cursor moves one level up in the direction of class inheritance, resetting the layers. Thanks to Sanity Condition (8), the superclass D is always found. If we allowed a layer to add baseless partial methods to Object, we would have to have special rules, in which there is no substitution for super (and typing rules to disallow the use of super in such partial methods). Igarashi et al. [27] (as well as the conference version of this article [29]) have overlooked this subtlety. For superproceed, the cursor moves one level up in the direction of layer inheritance (generating a quadruple from a triple in R-InvkP). For example, we show how cursors of a triple and a quadruple work using example in Section 2.6. Let e be new C().m(). Then, the derivation of \mathchoice{\mbox{\normalsize\tt{L1}}}{\mbox{\normalsize\tt{L1}}}{\mbox{\scriptsize\tt{L1}}}{\mbox{\tiny\tt{L1}}};\mathchoice{\mbox{\normalsize\tt{L2}}}{\mbox{\normalsize\tt{L2}}}{\mbox{\scriptsize\tt{L2}}}{\mbox{\tiny\tt{L2}}};\mathchoice{\mbox{\normalsize\tt{L3}}}{\mbox{\normalsize\tt{L3}}}{\mbox{\scriptsize\tt{L3}}}{\mbox{\tiny\tt{L3}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}} will take the form:
[TABLE]
where e*′* is
[TABLE]
Now, we go back to Fig. 6. The rules RC-With and RC-Swap express layer activation and swapping, respectively. The auxiliary functions and for context manipulation are defined by:
[TABLE]
The function with removes L (if exists) from layer sequence and adds L to the end of and swap removes all sublayers of from , and adds L to the end of .444The symbol is usually used to remove entities from a set, but we informally use it for a sequence here. The type system checks that is a swappable layer. Based on the above, the rule RC-With means that with (new L()) e executes e with L activated (as the first layer). The rule RC-Swap is similar; it means that executes by deactivating all sublayers of and activating layer L. For example, we can derive:
[TABLE]
The rules RC-WithArg and RC-SwapArg are for reduction of expression that is expected to become a layer instance. Rules RC-WithVal and RC-SwapVal are for final reduction steps of with and swap blocks, respectively, that pass the value v as it is. Other rules for congruence are same as those of ContextFJ: reduction is call by value but the order of reduction of subexpressions is unspecified.
3.3 Type System
As usual, the role of a type system is to ensure the absence of a certain class of run-time errors. Here, they are “field-not-found” and “method-not-found” errors, including the failure of proceed, superproceed or super calls.
As discussed in the last section, the type system takes information on activated layers at every program point into account. We approximate such information by a set of layer names, which mean that, for any layer in , an instance of one of its sublayers has to be activated at run time. This set gives underapproximation of activated layers; other layers might be activated. Activated layers are approximated by sets rather than sequences because the type system is mainly concerned about access to fields and methods and the order of activated layers does not influence which fields and methods are accessible.
In our type system, a type judgment for an expression is of the form , where is a type environment, which records types of variables, and stands for where e appears, namely, a method in a class (denoted by C.m) or a partial method in a layer (denoted by L.C.m). For example, the proceed call in the body of the partial method People.sayWeather() of layer Thunder is typed as follows:
[TABLE]
The layer name set comes from the fact that Thunder requires Weather. Thunder is also included because Thunder (or one of its sublayers) is obviously activated when a partial method defined in this very layer is executed.
We start with the definitions of two kinds of layer subtyping discussed in the last section and proceed to functions to look up method types and typing rules.
Subtyping
We define subtyping C <: D for class types, weak subtyping \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and normal subtyping \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} for layer types by the rules in Fig. 7. Class subtyping C <: D is defined as the reflexive and transitive closure of , just as FJ. Weak layer subtyping is also the reflexive and transitive closure of . We extend it to the relation \Lambda_{1}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{2} between layer name sets by LSS-Intro: \Lambda_{1}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{2} if and only if for every element in , there must exist a sublayer of it in . It is used to check activated layers satisfy the requirement given by a requires clause in typechecking a layer activation. Normal subtyping is almost the reflexive and transitive closure of but there is one additional condition: for to be a normal subtype of , the layers they require must be the same (LS-Extends). Obviously, if \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} (but not vice versa).
Method type lookup
Similarly to pmbody and mbody, we define two auxiliary functions pmtype and mtype to look up the signature \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} (consisting of argument type and a return type ) of a (partial) method. returns the signature of C.m in L (or one of its superlayers). returns the type of m in C under the assumption that is activated. The other layer set () is used when the lookup goes on to a superclass. If and are the same, which is mostly the case, we write .
These rules by themselves do not define mtype as a function, because different layers may contain partial methods of the same name with different signatures. So, precisely speaking, it should rather be understood as a relation; in a well-typed program, it will behave as a function, though.
Expression Typing
As mentioned already, the type judgment for expressions is of the form , read “e is given type T under context , location and layer set ”. In addition to C.m and L.C.m, can be , which means the top-level (i.e., under execution). Typing rules are given in Fig. 9. We defer typing rules for run-time expressions \mathchoice{\mbox{\normalsize\tt{new C(}}}{\mbox{\normalsize\tt{new C(}}}{\mbox{\scriptsize\tt{new C(}}}{\mbox{\tiny\tt{new C(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,}}}{\mbox{\normalsize\tt{)<D,}}}{\mbox{\scriptsize\tt{)<D,}}}{\mbox{\tiny\tt{)<D,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m(}}}{\mbox{\normalsize\tt{>.m(}}}{\mbox{\scriptsize\tt{>.m(}}}{\mbox{\tiny\tt{>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}} and \mathchoice{\mbox{\normalsize\tt{new C(}}}{\mbox{\normalsize\tt{new C(}}}{\mbox{\scriptsize\tt{new C(}}}{\mbox{\tiny\tt{new C(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,L,}}}{\mbox{\normalsize\tt{)<D,L,}}}{\mbox{\scriptsize\tt{)<D,L,}}}{\mbox{\tiny\tt{)<D,L,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m(}}}{\mbox{\normalsize\tt{>.m(}}}{\mbox{\scriptsize\tt{>.m(}}}{\mbox{\tiny\tt{>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}} to the next section and focus on expressions that appear class and layer definitions.
Rules T-Var, T-Field are easy. T-New and T-NewL are for instance of classes and instance of layers, respectively. The rule T-Invk is straightforward: the method signature \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} is retrieved from the receiver type and ; the types of the actual arguments must be subtypes of ; and the whole expression is given the method return type . The rule T-With checks, by \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime}, that the layers required by L—the type of the layer to be activated—are already activated and that the body is well typed under the assumption that L is additionally activated. T-Swap is similar; the set stands for the set of layers after deactivation and must be a weak subtype of the required set . The last four rules are for super, proceed, and superproceed calls and so they are similar to T-Invk. Differences are in how the method signature is obtained. In the rules T-SuperB and T-SuperP for a super call in a method defined in a class and in a partial method, respectively, the superclass E is given to mtype. Layer names are taken from the requires clause instead of —corresponding to the fact that the method to be invoked is not affected by with or swap surrounding super (a class cannot require any layer, hence the empty set). In the rule T-Proceed for a proceed call, the current class name C is used. Similarly to T-SuperP, layer names are taken from the require clause. The last argument to mtype is because a proceed call can proceed to a partial method D.m (where D is a superclass of C) defined in the same layer L. In the rule T-SuperProceed, pmtype is used instead of mtype.
In Igarashi et al. [27], in which a type system for ContextFJ is developed, another layer activation construct called ensure is adopted. The difference from with is that, if an already activated layer is to be activated, ensure does not change the activated layer sequence, whereas with will pull that layer to the head of the sequence so that partial methods in it are invoked first. For example, activating layers L1, L2, L1 in this order results in L1;L2 with ensure but in L2;L1 with the with statement. Igarashi et al. argue that the rearrangement of layers by with destroys the layer ordering in which interlayer dependency is respected. For example, if L2 requires L1, then L2;L1 violates the require clause in the sense that the layers that L2 requires do not precede L2 in the sequence. So, for simplicity, Igarashi et al. considered only ensure, which does not have this problem.
Our discovery is that, in fact, this anomaly caused by with is not really a problem for type soundness and essentially the same typing rule works—Our typing rule T-With for with is indeed very similar to that for ensure in ContextFJ; the only difference is the use of in the place of weak subtyping \mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w} (ContextFJ does not have layer subtyping). The reason why a layer sequence like L2;L1 is not problematic can be explained as follows. Actually, problematic would be a partial method defined in L2 calling another (partial) method, say C.m, that exists only in L1—that is, one that is undefined in a base class—via proceed.555Invoking m via this or super will find m in L1. Such a dangling partial method cannot be executed, however: C.m in L1 cannot contain proceed, which leads to execution of the dangling partial method, because L1 is activated first, meaning that L1 does not require any other layer, but it is assumed here that m is not defined in base class C.
Typing for Methods, Partial Methods, Classes, Layers, and Programs
Typing rules for (partial) methods, layers, and classes and are given in Fig. 10. The rule T-Method is standard. Readers familiar with FJ may notice that a condition for valid overriding is missing; it is put in elsewhere–see below. The rule T-PMethod for a partial method means that the method body is typed under the layer set required by this layer. The rule T-Layer is for layers that are not sublayers of any swappable layer and demands that the requires clause of the layer be covariant and all partial methods are well formed. The rule T-LayerSW is for sublayers of swappable layers. It demands, in addition to the conditions described in T-Layer, that the requires clause of this layer be the same as those of its parent swappable layer, that no partial method be newly introduced, and that this layer be not required by other layers. The last condition requires a global program analysis.
It is worth elaborating the rule T-LayerSW in more detail. First, if the condition were \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime} (as in T-Layer), the type system would be unsound. A counterexample is below:
class C {}
swappable layer L0 { int C.m() { return 0; } }
layer L1 extends L0 {}
layer L2 extends L0 requires L { int C.m() { return proceed(); } }
layer L requires L0 { int C.m() { return proceed(); } }
Layer L2 additionally requires L, which requires L0, a swappable superclass of L2. The condition \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime} would be trivially satisfied for L2 because the requires clause of L0 is empty. The partial methods in L2 and L are well formed because L and L0, respectively, provide definitions to proceed. Under these classes and layers, the following expression
with (new L1())
with (new L()) // fulfills "requires L0"
**swap**(L0, **new** L2()) // fulfills "requires L"
**new** C().m()
is well typed, because L1, which is a subclass of L0, is activated before activating L, and L is activated before activating L2. However, the swap expression executed under would get stuck as follows:
[TABLE]
The method invocation would take place under , both of which have C.m but the second proceed call goes nowhere.
Second, if a subclass of a swappable layer were allowed to define a new method (which is not defined in the swappable), then the type system would be unsound, too. Consider the following classes and layers.
class C {}
class D extends C {}
swappable layer L0 {}
layer L1 extends L0 {}
layer L2 extends L0 {
int C.m() { return this.m(); }
int D.m() { return swap(L, new L2()) super.m(); }
}
Layer L2 defines new partial methods C.m and D.m. They are well formed: in particular, super.m() is well typed because L2 itself provides C.m. The following expression
with (new L2()) new D().m()
is well typed, since D.m invoked with L2 activated. However, reduction of new D().m() under L2 would get stuck:
[TABLE]
Since super calls are not affected by swap, super.m() in D.m succeeds but, by the time this.m() is executed, L2 will be swapped out.
Fig. 11 is for program typing; a program is well typed if all classes and layers in CT and LT, respectively, are well formed and the main expression e is typed (at the top-level ).
The most involved is the rule to check valid method overriding used in T-Table. The predicate noconflict means that for two partial methods of the same (qualified) name must have the same signature. The predicate means that, for any partial method, the overridden method (base method in C or partial methods for C’s superclass) must have the same signature. The predicate means that a base method can override a (partial) method in its superclass (or layers modifying it) with a covariant return type. Note that, unlike Java, checking valid method overriding requires a whole program because a layer may add a new method to a base class, one of whose subclass may accidentally define a method of the same name without knowing of that layer.
4 Type Soundness
In this section, we prove type soundness of via subject reduction and progress [43]. Strictly speaking, we should present typing rules for run-time expressions first before stating these properties but, for ease of understanding, we will reverse the order and start with the statements of the properties.
Since we model the execution of a main method starting with no layers activated, we are mainly interested in the case where is and the layer sequence is empty. However, we have to strengthen the statements of these properties so that the layer sequence can be nonempty. We introduce the notion of well-formed layer sets for this purpose.
We define the relation , read “layer set is well formed,” by the rules in Fig. 12. Intuitively, a set of layers is well-formed if one can obtain the layers by activating them one by one so that requires clauses are satisfied. We ignore the order of activation because the with statement can change the order of activated layers by activating an already activated layer again.
Aside from layer well-formedness, the statements of subject reduction, progress, and type soundness are standard:
Theorem 1** (Subject Reduction)**
Suppose . If and {} wf and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}, then \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}} for some S such that \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}.
Theorem 2** (Progress)**
Suppose . If and {} wf, then e is a value or \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}} for some e′.
Theorem 3** (Type Soundness)**
If and e reduces to a normal form under the empty set of layers, then the normal form is for some and S such that \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}.
4.1 Typing Rules for Run-time Expressions
To prove the theorems above, we have to give typing rules for run-time expressions of the forms \mathchoice{\mbox{\normalsize\tt{new C(}}}{\mbox{\normalsize\tt{new C(}}}{\mbox{\scriptsize\tt{new C(}}}{\mbox{\tiny\tt{new C(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,}}}{\mbox{\normalsize\tt{)<D,}}}{\mbox{\scriptsize\tt{)<D,}}}{\mbox{\tiny\tt{)<D,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m(}}}{\mbox{\normalsize\tt{>.m(}}}{\mbox{\scriptsize\tt{>.m(}}}{\mbox{\tiny\tt{>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}} and \mathchoice{\mbox{\normalsize\tt{new C(}}}{\mbox{\normalsize\tt{new C(}}}{\mbox{\scriptsize\tt{new C(}}}{\mbox{\tiny\tt{new C(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,L,}}}{\mbox{\normalsize\tt{)<D,L,}}}{\mbox{\scriptsize\tt{)<D,L,}}}{\mbox{\tiny\tt{)<D,L,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m(}}}{\mbox{\normalsize\tt{>.m(}}}{\mbox{\scriptsize\tt{>.m(}}}{\mbox{\tiny\tt{>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}, which are not supposed to appear in a class/layer table. The typing rules with the rules for a few auxiliary judgments are given in Fig. 13:
In the rule T-InvkA for \mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D}}}{\mbox{\normalsize\tt{)<D}}}{\mbox{\scriptsize\tt{)<D}}}{\mbox{\tiny\tt{)<D}}}_{0}\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m(}}}{\mbox{\normalsize\tt{>.m(}}}{\mbox{\scriptsize\tt{>.m(}}}{\mbox{\tiny\tt{>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}, the premises except for \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<D}}}{\mbox{\normalsize\tt{<D}}}{\mbox{\scriptsize\tt{<D}}}{\mbox{\tiny\tt{<D}}}_{0}\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{> ok}}}{\mbox{\normalsize\tt{> ok}}}{\mbox{\scriptsize\tt{> ok}}}{\mbox{\tiny\tt{> ok}}} and \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}—they are explained in detail below—are similar to T-Invk. The method signature is obtained by using the current cursor \mathchoice{\mbox{\normalsize\tt{<D}}}{\mbox{\normalsize\tt{<D}}}{\mbox{\scriptsize\tt{<D}}}{\mbox{\tiny\tt{<D}}}_{0}\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>}}}{\mbox{\normalsize\tt{>}}}{\mbox{\scriptsize\tt{>}}}{\mbox{\tiny\tt{>}}}. The rule T-InvkAL for a method invoked by superproceed is similar. One difference is that the method signature is obtained by using pmtype; the receiver is derived from a superproceed call that originated from a superlayer of , hence \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}.
The condition \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\} relates the layer sequence in the cursor and , which intuitively represents the set of layers activated at this program point. In many cases, holds but if super and proceed calls are surrounded by with or swap, they can be different. The relation \mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw} is similar to \mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w} but the additional clauses and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\text{ and }\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} take into account the possibility that a layer in may be activated by swapping layers in {} out.
The judgment , which means that the cursor is well formed with respect to method m in class C, is defined by Wf-Cursor. It requires that D to be a superclass of C and to be well formed. The last condition \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}) (standing for “non-dangling proceed”) intuitively means “a chain of proceed calls from the given cursor location \mathchoice{\mbox{\normalsize\tt{<D}}}{\mbox{\normalsize\tt{<D}}}{\mbox{\scriptsize\tt{<D}}}{\mbox{\tiny\tt{<D}}}_{0}\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>}}}{\mbox{\normalsize\tt{>}}}{\mbox{\scriptsize\tt{>}}}{\mbox{\tiny\tt{>}}} eventually reaches a (partial) method that does not call proceed” and is defined by the rules NDP-Class, NDP-Layer and NDP-Super, which are straightforward. (Here, “” means that there is no proceed calls in the method body obtained by .) This predicate represents an invariant condition throughout a chain of proceed calls and ensures there will not be a dangling proceed call.
4.2 Subject Reduction
The proof of subject reduction is done by induction on \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}. Similarly to FJ, one main lemma is the Substitution Lemma, which is used in the case where e is a method invocation and states substitution of values of types for variables of types , where are subtypes of , in a well typed term preserves typing. Another important lemma here is Lemma 5, which states substitution for proceed, super, and superproceed preserves typing.
We state several main lemmas to prove the theorems above; their proofs as well as other lemmas and proofs are found in Appendix. We fix CT and LT and assume in the rest of this section.
As usual, adding an unused variable to the type environment preserves typing (Weakening). Narrowing usually refers to the property that replacing the type of a variable in the type environment with its subtype preserves typing; here, we need narrowing with respect to (extended) layer set subtyping \mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}. The next lemma states that a well typed value remains well typed regardless of its typing context ().
Lemma 1** (Weakening)**
If , then .
Lemma 2** (Layer Set Narrowing)**
If and \Lambda^{\prime}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda, then .
Lemma 3** (Strengthening for values)**
If then, .
The statement of the Substitution Lemma is straightforward.
Lemma 4** (Substitution)**
If and and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then and \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}} for some S.
The next lemma states that substitution for proceed, super, and superproceed preserves typing. The first item is for an invocation of a partial method, which may contain proceed and superproceed calls as well as super calls; the second is for a base method, which may contain only super calls. The conditions, which look rather complicated, correspond to the premises of T-InvkA and T-InvkAL.
Lemma 5** (Substitution for super, proceed and superproceed)**
If and and \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C,(}}}{\mbox{\normalsize\tt{<C,(}}}{\mbox{\scriptsize\tt{<C,(}}}{\mbox{\tiny\tt{<C,(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\normalsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\scriptsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\tiny\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{> ok}}}{\mbox{\normalsize\tt{> ok}}}{\mbox{\scriptsize\tt{> ok}}}{\mbox{\tiny\tt{> ok}}} and C D and \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L \triangleleft L{{}^{\prime}}}}}{\mbox{\normalsize\tt{ L \triangleleft L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{ L \triangleleft L{{}^{\prime}}}}}{\mbox{\tiny\tt{ L \triangleleft L{{}^{\prime}}}}} and \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\} and \mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\in\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\implies\mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}), then where
[TABLE] 2. 2.
If and and \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C,}}}{\mbox{\normalsize\tt{<C,}}}{\mbox{\scriptsize\tt{<C,}}}{\mbox{\tiny\tt{<C,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{> ok}}}{\mbox{\normalsize\tt{> ok}}}{\mbox{\scriptsize\tt{> ok}}}{\mbox{\tiny\tt{> ok}}} and C D and \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}, then .
The next two lemmas state method bodies obtained by pmbody and mbody are well typed according to the type information obtained by pmtype and mtype, respectively.
Lemma 6** (Inversion for partial method body)**
If \mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{ in L{{}^{\prime}}}}}{\mbox{\normalsize\tt{ in L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{ in L{{}^{\prime}}}}}{\mbox{\tiny\tt{ in L{{}^{\prime}}}}} and and {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ \rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrow T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then for some \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}.
Lemma 7** (Inversion for method body)**
Suppose and \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} and {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}).
If \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{.C{{}^{\prime}}.m}}}{\mbox{\normalsize\tt{.C{{}^{\prime}}.m}}}{\mbox{\scriptsize\tt{.C{{}^{\prime}}.m}}}{\mbox{\tiny\tt{.C{{}^{\prime}}.m}}};\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{this}}}{\mbox{\normalsize\tt{this}}}{\mbox{\scriptsize\tt{this}}}{\mbox{\tiny\tt{this}}}:\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{U}}}{\mbox{\normalsize\tt{U}}}{\mbox{\scriptsize\tt{U}}}{\mbox{\tiny\tt{U}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}} and \mathchoice{\mbox{\normalsize\tt{U}}}{\mbox{\normalsize\tt{U}}}{\mbox{\scriptsize\tt{U}}}{\mbox{\tiny\tt{U}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}) for some and . 2. 2.
If \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}}=\bullet, then \mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}.m}}}{\mbox{\normalsize\tt{C{{}^{\prime}}.m}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}.m}}}{\mbox{\tiny\tt{C{{}^{\prime}}.m}}};\emptyset;\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{this}}}{\mbox{\normalsize\tt{this}}}{\mbox{\scriptsize\tt{this}}}{\mbox{\tiny\tt{this}}}:\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{U}}}{\mbox{\normalsize\tt{U}}}{\mbox{\scriptsize\tt{U}}}{\mbox{\tiny\tt{U}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}} and \mathchoice{\mbox{\normalsize\tt{U}}}{\mbox{\normalsize\tt{U}}}{\mbox{\scriptsize\tt{U}}}{\mbox{\tiny\tt{U}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\bullet,\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}) for some .
We also need additional lemmas derived from runtime conditions. Layer-set wellformedness provides two important properties. The first states that a well formed layer set is closed under the requires clause and the second that, if method m is found in C (under the assumption that activated) but not in its direct superclass D, then at least one of those methods does not call proceed. This lemma is used to prove the next lemma (Lemma 10), which derives ndp for an initial cursor of the form .
Lemma 8
] If , then \forall\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\in\Lambda,\forall\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\text{ s.t. }\mathchoice{\mbox{\normalsize\tt{L req L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L req L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L req L{{}^{\prime}}}}}{\mbox{\tiny\tt{L req L{{}^{\prime}}}}},\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\in\Lambda.\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}.
Lemma 9
If and and and C D, then (\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\in\Lambda.\mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\not\in\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}))\text{ or }{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\emptyset,\Lambda)\mbox{ defined}.
Lemma 10
If and {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then .
As stated below, the predicate ndp ensures the existence of a method:
Lemma 11
If \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}) holds for some m, C, \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and , then {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} for some and .
4.3 Progress
To prove the Progress Theorem, we need the following two lemmas, which show the existence of a method body from well definedness of pmtype and mtype.
Lemma 12
If {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then there exist and and L′* () such that \mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}} and the lengths of and are equal and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}.*
Lemma 13
If {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} is a prefix of and , then there exist and and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} and C′* () such that \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} and the lengths of and are equal and, if \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} is not empty, the last layer name of \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} is not Base.*
5 Related Work
Foundation of Context-Oriented Programming
Our work is a direct descendant of Igarashi, Hirschfeld, and Masuhara [26, 27], where a tiny COP language ContextFJ is developed and its type system is proved to be sound. ContextFJ is not equipped with layer inheritance, layer subtyping, or first-class layers but allows baseless partial methods to be declared in the second type system [27], in which requires declarations are first introduced into COP.
Our swappable layers resemble atomic layers in ContextL [16], in which mutual exclusion between layers can be specified and activation of an atomic layer automatically deactivates another layer in conflict. Our syntax is a little verbose in that the swappable layer name such as Weather has to be explicit because a layer may have more than one swappable layer in its superlayers. It may be a reasonable idea to disallow a sublayer of a swappable layer to be swappable for the sake of syntactic conciseness.
Similarly to our swappable layers for layer deactivation, Kamina et al. [32, 36] also show another approach to safe layer deactivation mechanism and formalized its semantics and type safety with an extension of ContextFJ. Their approach is also based on requires clauses. The key idea is to modify the method lookup so that it searches not only activated layers but all layers that are required by those activated layers.
Besides block-style layer activation mechanisms as in JCop, there are other mechanisms such as imperative activation of Subjective-C [23], event-based activation of EventCJ [33], and implicit activation of Flute [5]. The original JCop also supports implicit layer activation [4], but currently we omit it from our formalization. ServalCJ [34] provides a generalized layer activation mechanism that can treat the layer activation mechanisms above uniformly. Although some of them [1, 35] study formal semantics, they do not discuss type soundness of languages with baseless partial methods; e.g., ServalCJ does not support baseless partial methods.
Clarke and Sergey [14] independently formalize a core language (also called ContextFJ) for context-oriented programming and develop such a type system. In their type system, each partial/base method (rather than a layer) is equipped with dependency information, a set of the signatures of the methods that it may call. Dependency information is very fine-grained but their calculus does not support class nor layer inheritances.
The JCop compiler transforms a JCop program into a plain Java code which contains auxiliary classes and methods, constructing a kind of double dispatch. Appeltauer et al. [2] discusses two implementation schemes of JCop’s method dispatch mechanism: one that rely on the translation to plain Java code and the other that rely on invokedynamic of Java 7.
There are several studies to enrich description of relationships between contexts. Subjective-C [23], an extension of Objective-C with COP, adopts imperative context activation with imperative context relationship description, which supports various kinds of declarations of dependency between layers, such as implication, requirement, and exclusion. Context Petri Nets [11, 12] is a context-oriented extension of Petri Nets, and helps formalization of description of context dependencies in Subjective-C. [19, 20] provides two kinds of components; one for declarative description of context dependencies and the other for functional computation. It also provides a type and effect system and a loading-time verification mechanism that detects failures in adaptation.
Dynamic Software Product Line
Software product line (SPL) is a paradigm of industrial software development that enables to create various variations of software by mostly reusing common modules. Programming languages for SPL, such as Feature-Oriented Programming [39, 6] and Delta-Oriented Programming (DOP) [41], have been studied. They provide modules that refine existing classes and combine them according to a given configuration at compile time or build time.
Recent studies [24, 40] reveal that SPL also needs dynamic reconfiguration of software, and so dynamic DOP [18, 17] is proposed. Dynamic DOP provides mainly three kinds of modules; a delta module for describing refinement of classes (similar to a layer of COP), a product-line declaration for describing valid configurations, and a dynamic reconfiguration graph for replacing heap objects dynamically. Unlike COP, the composition order of delta modules is determined uniquely by a given product line declaration; this property is called unambiguity. A type system of dynamic DOP also ensures that all valid reconfigurations lead to type-safe products.
Type systems for advanced composition mechanisms of OOP
There are many type systems proposed for advanced composition mechanisms such as mixins [9, 22], traits [38, 42], open classes (a.k.a. inter-type declarations) [15], and revisers [13]. A common idea is to let programmers declare dependency between modules as required interfaces; our requires declarations basically follow it. In most work, however, composition is done at compile or link time unlike COP languages. We think that it is interesting that the same idea works even for dynamic composition found in COP languages.
Kamina and Tamai [37] propose McJava, in which mixin-based composition can be deferred to object instantiation. In fact, new expressions can specify a class and mixins to instantiate an object. So, the type of an object also consists of a class name and a sequence of mixin names. Whereas composition is per-instance basis in McJava, it is global in . However, in McJava, composition cannot be changed once an object is instantiated.
Drossopoulou et al. [21] proposed Fickle, a class-based object-oriented language with dynamic reclassification, which allows an object to change its class at run time. Their idea of root classes, which serve as interface, is similar to our swappable layers; their restriction that state classes cannot be used as type for fields is similar to ours that a sublayer of a swappable cannot be required by any other layer.
Bettini et al. [8] developed a type system for dynamic trait replacement, which allows methods in an object to be exchanged at run time. They introduce the notion of replaceable to describe the signatures of replaceable methods; a replaceable appears as part of the type of an object and the trait to replace methods of the object has to provide the methods in that replaceable. The roles of replaceables and traits are somewhat similar to those of swappable layers, which provide interfaces common to swapped layers, and sublayers of swappable.
Several studies for dynamism of objects in distributed settings exist. MoMi [7] presents an approach to having a process communicate mobile code to other processes in a safe manner; well-typed code sent from external processes can be merged into local code without recompilation. Dynamic class [31] is a mechanism to modify classes and a class hierarchy in a type-safe way, where objects are distributed and long-lived, and so a number of upgrade operations are performed; a series of upgrade operations is used to type-check the next upgrade operation. Unlike these two approaches, COP realizes its dynamism with its method dispatching mechanism. It is quite interesting to consider how COP mechanism works safely in the above distributed settings.
Although not a type system, Burton and Sekerinski [10] studies interference problem of dynamic mixin composition, in which some order of mixin composition breaks required specification of class methods. They develop a refinement calculus in order to formalize dynamic mixin composition.
6 Concluding Remarks
We have developed a formal type system for a small COP language with layer inheritance, layer subtyping, layer swapping, and first-class layers, and shown that the type system is sound with respect to the operational semantics. As in previous work, requires declarations are important to guarantee safety in the presence of baseless partial methods. Subtyping for first-class layers is subtle because there are two kinds of substitutability. We have introduced weak subtyping for checking whether a requires clause is satisfied and normal subtyping for usual substitutability.
In JCop, a layer definition can contain field and (ordinary) method declarations so that a layer instance can act just like an ordinary object. Typechecking accesses to these members of layer instances is the same as ordinary objects. If we model fields of layer instances, we will have to modify the reduction relation so that the sequence of activated layers consists of layer instances (with their field values) rather than layer names.
JCop also provides special variable thislayer, which can be used in partial methods and is similar to this of classes. It represents the layer instance in which the invoked partial method is found at run time and can be used to access fields and methods of that layer instance. In operational semantics, the layer instance would be substituted for thislayer, similarly to this. Typing thislayer is also similar to this in the sense that it is given the name of the layer in which it appears but thislayer cannot be used for layer activation because, at run time, it may be bound to an instance of a weak subtype.
We have not fully investigated the interaction between our type system with other features in Java, such as concurrency, generics, and lambda, although we expect most of them are orthogonal.
Acknowledgments.
We thank Tomoyuki Aotani, Malte Appeltauer, Robert Hirschfeld, and Tetsuo Kamina for valuable discussions on the subject. This work was supported in part by Kyoto University Design School (Inoue) and MEXT KAKENHI Grant Number 23220001 (Igarashi).
A Proofs
We fix CT and LT and assume throughout this section.
Lemma A.1
If {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}.
Proof 1
By induction on \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}, using \mbox{{noconflict}}(\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}) in the case where L′* L. \qed*
Lemma A.2
If {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{1},\Lambda_{2})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \Lambda_{3}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda_{1} and \Lambda_{4}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda_{2} and and , then {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{3},\Lambda_{4})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}.
Proof 2
By induction on the derivation of {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{1},\Lambda_{2})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} with case analysis on the last rule used.
**Case MT-Class: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{class C \triangleleftD {\char 123\relax}... T}}}{\mbox{\normalsize\tt{class C\triangleleftD {\char 123\relax}... T}}}{\mbox{\scriptsize\tt{class C\triangleleftD {\char 123\relax}... T}}}{\mbox{\tiny\tt{class C\triangleleft D {\char 123\relax}... T}}}_{0}\mathchoice{\mbox{\normalsize\tt{ m(}}}{\mbox{\normalsize\tt{ m(}}}{\mbox{\scriptsize\tt{ m(}}}{\mbox{\tiny\tt{ m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{){\char 123\relax} return e; {\char 125\relax} ...{\char 125\relax}}}}{\mbox{\normalsize\tt{){\char 123\relax} return e; {\char 125\relax} ...{\char 125\relax}}}}{\mbox{\scriptsize\tt{){\char 123\relax} return e; {\char 125\relax} ...{\char 125\relax}}}}{\mbox{\tiny\tt{){\char 123\relax} return e; {\char 125\relax} ...{\char 125\relax}}}}\end{array} *
- MT-Class finishes the case.*
**Case MT-PMethod: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\exists\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\in\Lambda_{1}.{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- By \Lambda_{3}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda_{1}, there exists such that either (1) \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{3}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} or (2) there exists L such that L swappable and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{3}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}. In the case (1), Lemma A.1 and MT-PMethod finish the case. In the case (2), by T-LayerSW and , it is easy to show {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{3}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. Then, Lemma A.1 and MT-PMethod finish the case.*
**Case MT-Super: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{class C \triangleleftD {\char 123\relax}... }}}{\mbox{\normalsize\tt{class C\triangleleftD {\char 123\relax}... }}}{\mbox{\scriptsize\tt{class C\triangleleftD {\char 123\relax}... }}}{\mbox{\tiny\tt{class C\triangleleft D {\char 123\relax}... }}}\overline{\mathchoice{\mbox{\normalsize\tt{M}}}{\mbox{\normalsize\tt{M}}}{\mbox{\scriptsize\tt{M}}}{\mbox{\tiny\tt{M}}}}\mathchoice{\mbox{\normalsize\tt{{\char 125\relax}}}}{\mbox{\normalsize\tt{{\char 125\relax}}}}{\mbox{\scriptsize\tt{{\char 125\relax}}}}{\mbox{\tiny\tt{{\char 125\relax}}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}}\not\in\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{M}}}{\mbox{\normalsize\tt{M}}}{\mbox{\scriptsize\tt{M}}}{\mbox{\tiny\tt{M}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \forall\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\in\Lambda_{1}.{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})\mbox{ undefined}\quad\quad{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda_{2},\Lambda_{2})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \end{array} *
- If is undefined for all , then the induction hypothesis and MT-Super finish the case. Otherwise, we have for some . Then, {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{3},\Lambda_{4})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\scriptsize\tt{\rightarrowS}}}{\mbox{\tiny\tt{\rightarrowS}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} holds by MT-PMethod and also there exists L′** such that \mbox{{LT}}(\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}})(\mathchoice{\mbox{\normalsize\tt{C.m}}}{\mbox{\normalsize\tt{C.m}}}{\mbox{\scriptsize\tt{C.m}}}{\mbox{\tiny\tt{C.m}}})=\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{0}\mathchoice{\mbox{\normalsize\tt{ m(}}}{\mbox{\normalsize\tt{ m(}}}{\mbox{\scriptsize\tt{ m(}}}{\mbox{\tiny\tt{ m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{){\char 123\relax}...{\char 125\relax}}}}{\mbox{\normalsize\tt{){\char 123\relax}...{\char 125\relax}}}}{\mbox{\scriptsize\tt{){\char 123\relax}...{\char 125\relax}}}}{\mbox{\tiny\tt{){\char 123\relax}...{\char 125\relax}}}}.*
By the induction hypothesis, {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\mbox{{dom}}(\mbox{{LT}}),\mbox{{dom}}(\mbox{{LT}}))=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} (since \mbox{{dom}}(\mbox{{LT}})\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{2}). By MT-Super, {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\emptyset,\mbox{{dom}}(\mbox{{LT}}))=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. Finally, , = , follows from \mbox{{override}}^{h}(\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}), finishing the case. \qed
Lemma A.3
If {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{1},\Lambda_{2})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{3},\Lambda_{4})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}, then , = \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}, \mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}.
Proof 3
By induction on the derivation of {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{1},\Lambda_{2})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} with case analysis on the last rule used.
**Case MT-Class: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{class C \triangleleftD {\char 123\relax}... T}}}{\mbox{\normalsize\tt{class C\triangleleftD {\char 123\relax}... T}}}{\mbox{\scriptsize\tt{class C\triangleleftD {\char 123\relax}... T}}}{\mbox{\tiny\tt{class C\triangleleft D {\char 123\relax}... T}}}_{0}\mathchoice{\mbox{\normalsize\tt{ m(}}}{\mbox{\normalsize\tt{ m(}}}{\mbox{\scriptsize\tt{ m(}}}{\mbox{\tiny\tt{ m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{){\char 123\relax}...{\char 125\relax} ...{\char 125\relax}}}}{\mbox{\normalsize\tt{){\char 123\relax}...{\char 125\relax} ...{\char 125\relax}}}}{\mbox{\scriptsize\tt{){\char 123\relax}...{\char 125\relax} ...{\char 125\relax}}}}{\mbox{\tiny\tt{){\char 123\relax}...{\char 125\relax} ...{\char 125\relax}}}}\end{array} *
- Easy. Use for if {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{3},\Lambda_{4})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} is derived by MT-PMethod, in which case there exists L′** such that \mathchoice{\mbox{\normalsize\tt{L \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L{{}^{\prime}}}}}{\mbox{\normalsize\tt{ L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{ L{{}^{\prime}}}}}{\mbox{\tiny\tt{ L{{}^{\prime}}}}} and \mbox{{LT}}(\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}})(\mathchoice{\mbox{\normalsize\tt{C.m}}}{\mbox{\normalsize\tt{C.m}}}{\mbox{\scriptsize\tt{C.m}}}{\mbox{\tiny\tt{C.m}}})=\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}} m(}}}{\mbox{\normalsize\tt{{{}^{\prime}} m(}}}{\mbox{\scriptsize\tt{{{}^{\prime}} m(}}}{\mbox{\tiny\tt{{{}^{\prime}} m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}} }}}{\mbox{\normalsize\tt{{{}^{\prime}} }}}{\mbox{\scriptsize\tt{{{}^{\prime}} }}}{\mbox{\tiny\tt{{{}^{\prime}} }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{) {\char 123\relax}...{\char 125\relax}}}}{\mbox{\normalsize\tt{) {\char 123\relax}...{\char 125\relax}}}}{\mbox{\scriptsize\tt{) {\char 123\relax}...{\char 125\relax}}}}{\mbox{\tiny\tt{) {\char 123\relax}...{\char 125\relax}}}}. (Note that {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{3},\Lambda_{4})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} cannot be derived by MT-Super.)*
**Case MT-PMethod: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\exists\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\in\Lambda_{1}.{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- There exists \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} such that \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}}_{1}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and \mbox{{LT}}(\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}})(\mathchoice{\mbox{\normalsize\tt{C.m}}}{\mbox{\normalsize\tt{C.m}}}{\mbox{\scriptsize\tt{C.m}}}{\mbox{\tiny\tt{C.m}}})=\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{ m(}}}{\mbox{\normalsize\tt{ m(}}}{\mbox{\scriptsize\tt{ m(}}}{\mbox{\tiny\tt{ m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{) {\char 123\relax}...{\char 125\relax}}}}{\mbox{\normalsize\tt{) {\char 123\relax}...{\char 125\relax}}}}{\mbox{\scriptsize\tt{) {\char 123\relax}...{\char 125\relax}}}}{\mbox{\tiny\tt{) {\char 123\relax}...{\char 125\relax}}}}. Further case analysis on {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{3},\Lambda_{4})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}.*
**Subcase MT-Class: *** *
- Similar to the above case.*
**Subcase MT-PMethod: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\exists\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\in\Lambda_{3}.{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
- There exists \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} such that \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}}_{2}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and \mbox{{LT}}(\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}})(\mathchoice{\mbox{\normalsize\tt{C.m}}}{\mbox{\normalsize\tt{C.m}}}{\mbox{\scriptsize\tt{C.m}}}{\mbox{\tiny\tt{C.m}}})=\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}} m(}}}{\mbox{\normalsize\tt{{{}^{\prime}} m(}}}{\mbox{\scriptsize\tt{{{}^{\prime}} m(}}}{\mbox{\tiny\tt{{{}^{\prime}} m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}} }}}{\mbox{\normalsize\tt{{{}^{\prime}} }}}{\mbox{\scriptsize\tt{{{}^{\prime}} }}}{\mbox{\tiny\tt{{{}^{\prime}} }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{) {\char 123\relax}...{\char 125\relax}}}}{\mbox{\normalsize\tt{) {\char 123\relax}...{\char 125\relax}}}}{\mbox{\scriptsize\tt{) {\char 123\relax}...{\char 125\relax}}}}{\mbox{\tiny\tt{) {\char 123\relax}...{\char 125\relax}}}}. Then, \mbox{{noconflict}}(\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}) finishes the case.*
**Subcase MT-Super: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{class C \triangleleftD {\char 123\relax}... }}}{\mbox{\normalsize\tt{class C\triangleleftD {\char 123\relax}... }}}{\mbox{\scriptsize\tt{class C\triangleleftD {\char 123\relax}... }}}{\mbox{\tiny\tt{class C\triangleleft D {\char 123\relax}... }}}\overline{\mathchoice{\mbox{\normalsize\tt{M}}}{\mbox{\normalsize\tt{M}}}{\mbox{\scriptsize\tt{M}}}{\mbox{\tiny\tt{M}}}}\mathchoice{\mbox{\normalsize\tt{{\char 125\relax}}}}{\mbox{\normalsize\tt{{\char 125\relax}}}}{\mbox{\scriptsize\tt{{\char 125\relax}}}}{\mbox{\tiny\tt{{\char 125\relax}}}}&\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}}\not\in\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{M}}}{\mbox{\normalsize\tt{M}}}{\mbox{\scriptsize\tt{M}}}{\mbox{\tiny\tt{M}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \forall\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\in\Lambda_{3}.{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})\mbox{ undefined}&{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda_{4},\Lambda_{4})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
- In this case, {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\emptyset,\mbox{{dom}}(\mbox{{LT}}))=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} because we can show that*
[TABLE]
by Lemma A.2 and MT-Super. Then, \mbox{{override}}^{h}(\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}) finishes the case.
**Case MT-Super: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{class C \triangleleftD {\char 123\relax}... }}}{\mbox{\normalsize\tt{class C\triangleleftD {\char 123\relax}... }}}{\mbox{\scriptsize\tt{class C\triangleleftD {\char 123\relax}... }}}{\mbox{\tiny\tt{class C\triangleleft D {\char 123\relax}... }}}\overline{\mathchoice{\mbox{\normalsize\tt{M}}}{\mbox{\normalsize\tt{M}}}{\mbox{\scriptsize\tt{M}}}{\mbox{\tiny\tt{M}}}}\mathchoice{\mbox{\normalsize\tt{{\char 125\relax}}}}{\mbox{\normalsize\tt{{\char 125\relax}}}}{\mbox{\scriptsize\tt{{\char 125\relax}}}}{\mbox{\tiny\tt{{\char 125\relax}}}}&\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}}\not\in\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{M}}}{\mbox{\normalsize\tt{M}}}{\mbox{\scriptsize\tt{M}}}{\mbox{\tiny\tt{M}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \forall\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\in\Lambda_{1}.{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})\mbox{ undefined}&{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda_{2},\Lambda_{2})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- Further case analysis on {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{3},\Lambda_{4})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}.*
**Subcase MT-PMethod: *** *
- Similar to the subcase MT-Super above.*
**Subcase MT-Class: *** *
- Cannot happen.*
**Subcase MT-Super: *** *
- By the induction hypothesis, . \qed*
Lemma A.4
If and \mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}, then for some , .
Proof 4
By induction on \mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}. \qed
Lemma A.5** (Weakening, Lemma 1)**
*If , then . *
Proof 5
By straightforward induction on . \qed
Lemma A.6
If {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda)=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}, then {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda)=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\scriptsize\tt{\rightarrowS}}}{\mbox{\tiny\tt{\rightarrowS}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} for some .
Proof 6
By induction on \mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}. We show only the case where D extends C. If \mathchoice{\mbox{\normalsize\tt{class D \triangleleftC {\char 123\relax}... S}}}{\mbox{\normalsize\tt{class D\triangleleftC {\char 123\relax}... S}}}{\mbox{\scriptsize\tt{class D\triangleleftC {\char 123\relax}... S}}}{\mbox{\tiny\tt{class D\triangleleft C {\char 123\relax}... S}}}_{0}\mathchoice{\mbox{\normalsize\tt{ m(}}}{\mbox{\normalsize\tt{ m(}}}{\mbox{\scriptsize\tt{ m(}}}{\mbox{\tiny\tt{ m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{){\char 123\relax} return e; {\char 125\relax} ...{\char 125\relax}}}}{\mbox{\normalsize\tt{){\char 123\relax} return e; {\char 125\relax} ...{\char 125\relax}}}}{\mbox{\scriptsize\tt{){\char 123\relax} return e; {\char 125\relax} ...{\char 125\relax}}}}{\mbox{\tiny\tt{){\char 123\relax} return e; {\char 125\relax} ...{\char 125\relax}}}}, then {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda)=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\scriptsize\tt{\rightarrowS}}}{\mbox{\tiny\tt{\rightarrowS}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} for some by MT-Class. By , and \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{0}\mathchoice{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}T}}}{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}T}}}{\mbox{\scriptsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}T}}}{\mbox{\tiny\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}} T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. If \exists\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\in\Lambda.{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\scriptsize\tt{\rightarrowS}}}{\mbox{\tiny\tt{\rightarrowS}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then we have {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda)=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\scriptsize\tt{\rightarrowS}}}{\mbox{\tiny\tt{\rightarrowS}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} by MT-PMethod. By , we get and . Otherwise, {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda)=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} by MT-Super. \qed
Lemma A.7** (Narrowing, Lemma 2)**
If and \Lambda^{\prime}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda, then .
Proof 7
By induction on . We show only some representative cases.
**Case T-Invk: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m(}}}{\mbox{\normalsize\tt{.m(}}}{\mbox{\scriptsize\tt{.m(}}}{\mbox{\tiny\tt{.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&\mathcal{L};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\Lambda)=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowC}}}{\mbox{\normalsize\tt{\rightarrowC}}}{\mbox{\scriptsize\tt{\rightarrowC}}}{\mbox{\tiny\tt{\rightarrowC}}}&\mathcal{L};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{E}}}{\mbox{\normalsize\tt{E}}}{\mbox{\scriptsize\tt{E}}}{\mbox{\tiny\tt{E}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{E}}}{\mbox{\normalsize\tt{E}}}{\mbox{\scriptsize\tt{E}}}{\mbox{\tiny\tt{E}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
**
By Lemma A.2, {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\Lambda^{\prime})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowC}}}{\mbox{\normalsize\tt{\rightarrowC}}}{\mbox{\scriptsize\tt{\rightarrowC}}}{\mbox{\tiny\tt{\rightarrowC}}}. Then, the induction hypothesis and T-Invk finish the case.
**Case T-With: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{with e}}}{\mbox{\normalsize\tt{with e}}}{\mbox{\scriptsize\tt{with e}}}{\mbox{\tiny\tt{with e}}}_{l}\mathchoice{\mbox{\normalsize\tt{ e}}}{\mbox{\normalsize\tt{ e}}}{\mbox{\scriptsize\tt{ e}}}{\mbox{\tiny\tt{ e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathcal{L};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}&\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda^{\prime\prime}\\ \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime\prime}&\mathcal{L};\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}\end{array} *
**
By LSSW-Intro, we have \Lambda^{\prime}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}. By the induction hypothesis, .
It is easy to show that \mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw} is transitive and so \Lambda^{\prime}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda^{\prime\prime}. By the induction hypothesis, we also have .
Moreover, in a well-formed program, means that does not contain any sublayer of swappable layers. By these facts and LSS-Intro, we get \Lambda^{\prime}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime\prime}. Then, by T-With, , finishing the case.
**Case T-Swap: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{swap (e}}}{\mbox{\normalsize\tt{swap (e}}}{\mbox{\scriptsize\tt{swap (e}}}{\mbox{\tiny\tt{swap (e}}}_{l}\mathchoice{\mbox{\normalsize\tt{,L}}}{\mbox{\normalsize\tt{,L}}}{\mbox{\scriptsize\tt{,L}}}{\mbox{\tiny\tt{,L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{) e}}}{\mbox{\normalsize\tt{) e}}}{\mbox{\scriptsize\tt{) e}}}{\mbox{\tiny\tt{) e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathcal{L};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\\ \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{ swappable}}}{\mbox{\normalsize\tt{ swappable}}}{\mbox{\scriptsize\tt{ swappable}}}{\mbox{\tiny\tt{ swappable}}}&\mathchoice{\mbox{\normalsize\tt{L \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda^{\prime\prime}\\ \Lambda_{rm}=(\Lambda\backslash\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mid\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})&\Lambda_{rm}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime\prime}&\mathcal{L};\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}\end{array} *
**
It is easy to show that (\Lambda^{\prime}\backslash\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mid\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\} from \Lambda^{\prime}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda. By the induction hypothesis, \mathcal{L};(\Lambda^{\prime}\backslash\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}|\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}.
By LSSW-Intro, we have (\Lambda^{\prime}\backslash\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}|\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda^{\prime\prime}. Moreover, in a well-formed program, means that does not have any sublayer of swappable layers. By these facts and LSS-Intro, we get (\Lambda^{\prime}\backslash\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}|\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime\prime}. By the induction hypothesis, we also have . Then, by T-Swap, , finishing the case. \qed
Lemma A.8** (Strengthening for values, Lemma 3))**
If then, .
Proof 8
By straightforward induction on . \qed
Lemma A.9** (Substitution, Lemma 4)**
If and and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then and \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}} for some S.
Proof 9
By induction on with case analysis on the last rule used. We show main cases of T-With and T-Swap.
**Case T-With: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{with e}}}{\mbox{\normalsize\tt{with e}}}{\mbox{\scriptsize\tt{with e}}}{\mbox{\tiny\tt{with e}}}_{l}\mathchoice{\mbox{\normalsize\tt{ e}}}{\mbox{\normalsize\tt{ e}}}{\mbox{\scriptsize\tt{ e}}}{\mbox{\tiny\tt{ e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathcal{L};\Lambda;\Gamma,\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\colon\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}&\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda^{\prime}\\ \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime}&\mathcal{L};\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\Gamma,\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\colon\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}\end{array} *
- By the induction hypothesis, and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}} for some . By induction on \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}, it is easy to show that . Since \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}L}}}{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}L}}}{\mbox{\scriptsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}L}}}{\mbox{\tiny\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}} L}}}, we also have \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}} and so it is easy to show \Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}. By the induction hypothesis, and \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}} for some S. Then, by Lemma A.7, ; and T-With finish the case.*
**Case T-Swap: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{swap (e}}}{\mbox{\normalsize\tt{swap (e}}}{\mbox{\scriptsize\tt{swap (e}}}{\mbox{\tiny\tt{swap (e}}}_{l}\mathchoice{\mbox{\normalsize\tt{, L}}}{\mbox{\normalsize\tt{, L}}}{\mbox{\scriptsize\tt{, L}}}{\mbox{\tiny\tt{, L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{) e}}}{\mbox{\normalsize\tt{) e}}}{\mbox{\scriptsize\tt{) e}}}{\mbox{\tiny\tt{) e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathcal{L};\Lambda;\Gamma,\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\colon\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\\ \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{ swappable}}}{\mbox{\normalsize\tt{ swappable}}}{\mbox{\scriptsize\tt{ swappable}}}{\mbox{\tiny\tt{ swappable}}}&\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda^{\prime}\\ \Lambda_{rm}=\Lambda\setminus\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mid\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}&\Lambda_{rm}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime}\\ \mathcal{L};\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\Gamma,\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\colon\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}\end{array} *
**
By the induction hypothesis, and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}} for some . By induction on \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}, it is easy to show . Since \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}, we have \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}} and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}. By the induction hypothesis, and \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}} for some S. Then, by Lemma A.7, ; and T-With finishes the case. \qed
Lemma A.10
If \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and and , then \Lambda_{1}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{2}.
Proof 10
By induction on \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. Use T-Layer in the case for LSw-Extends. \qed
We prove a stronger property than Lemma 8; in the statement below, \mathrel{(\mathchoice{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}};\mathchoice{\mbox{\normalsize\tt{req}}}{\mbox{\normalsize\tt{req}}}{\mbox{\scriptsize\tt{req}}}{\mbox{\tiny\tt{req}}})} stands for the composition of the two relations \mathchoice{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and req.
Lemma A.11
If , then \forall\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\in\Lambda,\forall\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\text{ s.t. }\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\mathrel{(\mathchoice{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}};\mathchoice{\mbox{\normalsize\tt{req}}}{\mbox{\normalsize\tt{req}}}{\mbox{\scriptsize\tt{req}}}{\mbox{\tiny\tt{req}}})}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}},\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\in\Lambda.\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}.
Proof 11
Induction on the derivation of .
**Case Wf-Empty: *** *
- Trivial.*
**Case Wf-With: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\Lambda=\Lambda_{0}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\quad\quad\Lambda_{0}\,\mbox{{wf}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{ req }}}{\mbox{\normalsize\tt{ req }}}{\mbox{\scriptsize\tt{ req }}}{\mbox{\tiny\tt{ req }}}\Lambda^{\prime}\quad\quad\Lambda_{0}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime}\end{array} *
- By the induction hypothesis, we have \forall\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\in\Lambda_{0}.\forall\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\text{ s.t. }\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\mathrel{(\mathchoice{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}};\mathchoice{\mbox{\normalsize\tt{req}}}{\mbox{\normalsize\tt{req}}}{\mbox{\scriptsize\tt{req}}}{\mbox{\tiny\tt{req}}})}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}.\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\in\Lambda_{0}.\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}. By \Lambda_{0}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime} and Lemma A.10, we have \forall\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\text{ s.t. }\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{(\mathchoice{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}};\mathchoice{\mbox{\normalsize\tt{req}}}{\mbox{\normalsize\tt{req}}}{\mbox{\scriptsize\tt{req}}}{\mbox{\tiny\tt{req}}})}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}.\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\in\Lambda_{0}.\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}. So, \forall\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\in\Lambda.\forall\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\text{ s.t. }\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\mathrel{(\mathchoice{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{\mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}};\mathchoice{\mbox{\normalsize\tt{req}}}{\mbox{\normalsize\tt{req}}}{\mbox{\scriptsize\tt{req}}}{\mbox{\tiny\tt{req}}})}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}.\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\in\Lambda.\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}.*
**Case Wf-Swap: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\Lambda=\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\quad\quad\Lambda_{0}\,\mbox{{wf}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{ swappable}}}{\mbox{\normalsize\tt{ swappable}}}{\mbox{\scriptsize\tt{ swappable}}}{\mbox{\tiny\tt{ swappable}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{ req }}}{\mbox{\normalsize\tt{ req }}}{\mbox{\scriptsize\tt{ req }}}{\mbox{\tiny\tt{ req }}}\Lambda_{a}\quad\quad\Lambda_{rm}=\Lambda_{0}\setminus\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mid\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\quad\quad\Lambda_{rm}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{a}\end{array} *
**
By the induction hypothesis, we have
[TABLE]
and so
[TABLE]
In fact, we can show that
[TABLE]
if \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\in\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{b}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mid\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{b}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{sw}\} for given L and L′, then it must be the case that \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{sw}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}} because L′* is required by some weak supertype of L and so must not be a sublayer of a swappable and that \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}.*
By and \Lambda_{rm}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{a}, we finally have
[TABLE]
\qed
Lemma A.12** (Lemma 9)**
If and and and C D, then (\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\in\Lambda.\mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\not\in\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}))\text{ or }{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\emptyset,\Lambda)\mbox{ defined}.
Proof 12
We prove by induction on the derivation of wf a stronger property: If and and and C D, then (\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\in\Lambda.\mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\not\in\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}})\land(\forall\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}\text{ s.t. }\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\land\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}\land\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}.\mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\not\in\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}))) or is defined.
In what follows, we define predicate by (\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\in\Lambda.\mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\not\in\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}})\land(\forall\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}\text{ s.t. }\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\land\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}\land\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}.\mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\not\in\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}))) or is defined.
**Case Wf-Empty: *** *
- Trivial.*
**Case Wf-With: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\Lambda=\Lambda_{0}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\quad\quad\Lambda_{0}\,\mbox{{wf}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{ req }}}{\mbox{\normalsize\tt{ req }}}{\mbox{\scriptsize\tt{ req }}}{\mbox{\tiny\tt{ req }}}\Lambda^{\prime}\quad\quad\Lambda_{0}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime}\end{array} *
- If is defined, by the induction hypothesis, holds. Since , also holds.*
Otherwise, it must be the case that and . Since \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{0}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime} and neither nor is defined, is undefined. Then, holds since if the partial method had proceed, it would contradict the fact that is well-typed (in particular, would not be defined, as opposed to what T-Proceed requires). If is a sublayer of swappable layer , for all \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{b}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, through the same argument (note that \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{b}\mathchoice{\mbox{\normalsize\tt{ req }}}{\mbox{\normalsize\tt{ req }}}{\mbox{\scriptsize\tt{ req }}}{\mbox{\tiny\tt{ req }}}$$\Lambda^{\prime}). Then, holds.
**Case Wf-Swap: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\Lambda=\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\quad\quad\Lambda_{0}\,\mbox{{wf}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{ swappable}}}{\mbox{\normalsize\tt{ swappable}}}{\mbox{\scriptsize\tt{ swappable}}}{\mbox{\tiny\tt{ swappable}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{ req }}}{\mbox{\normalsize\tt{ req }}}{\mbox{\scriptsize\tt{ req }}}{\mbox{\tiny\tt{ req }}}\Lambda_{a}\quad\quad\Lambda_{rm}=\Lambda_{0}\setminus\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mid\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\quad\quad\Lambda_{rm}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{a}\end{array} *
- It is easy to show \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda_{0} and vice versa. By Lemma A.2, is defined and is undefined. By the induction hypothesis, , that is, either (1) is defined, or (2) (\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\in\Lambda_{0}.\mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\not\in\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}})\land(\forall\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}\text{ s.t. }\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\land\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}} swappable}}}\land\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}.\mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\not\in\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}))).*
We show by case analysis. In the case (1), we have defined by Lemma A.2. The case (2) is also easy: if \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\in\Lambda_{rm}, then \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\in\Lambda; otherwise, because \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{a}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and , hence . \qed
Lemma A.13** (Lemma 10)**
If and {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then .
Proof 13
By induction on the length of \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\cdots\mathchoice{\mbox{\normalsize\tt{Object}}}{\mbox{\normalsize\tt{Object}}}{\mbox{\scriptsize\tt{Object}}}{\mbox{\tiny\tt{Object}}}. The case where the length is zero is trivial.
**Case: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{C \triangleleftD}}}{\mbox{\normalsize\tt{C\triangleleftD}}}{\mbox{\scriptsize\tt{C\triangleleftD}}}{\mbox{\tiny\tt{C\triangleleft D}}}\quad\quad{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})\mbox{ undefined}\end{array} *
**
By and Lemma A.12, we have is defined or . If is defined, class C must have the definition of method m since is undefined, and so NDP-Class finishes the case. In the other case, NDP-Layer finishes the case.
**Case: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{C \triangleleftD}}}{\mbox{\normalsize\tt{C\triangleleftD}}}{\mbox{\scriptsize\tt{C\triangleleftD}}}{\mbox{\tiny\tt{C\triangleleft D}}}\quad\quad{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})\text{ defined}\end{array} *
- By the induction hypothesis, holds. Then, NDP-Super finishes the case. \qed*
Lemma A.14** (Lemma 11)**
If \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}), then {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} for some and .
Proof 14
By induction on \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}). \qed
Lemma A.15
If and \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}}, then \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}.C.m}}}{\mbox{\normalsize\tt{L{{}^{\prime}}.C.m}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}.C.m}}}{\mbox{\tiny\tt{L{{}^{\prime}}.C.m}}};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}.
Proof 15
Suppose that and \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}} req }}}{\mbox{\normalsize\tt{L{{}^{\prime}} req }}}{\mbox{\scriptsize\tt{L{{}^{\prime}} req }}}{\mbox{\tiny\tt{L{{}^{\prime}} req }}}\Lambda_{1}. Since L and L′* are well-formed, \Lambda_{1}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{0}. We proceed by induction on . We show only main cases.*
**Case T-SuperP: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{super.m{{}^{\prime}}(}}}{\mbox{\normalsize\tt{super.m{{}^{\prime}}(}}}{\mbox{\scriptsize\tt{super.m{{}^{\prime}}(}}}{\mbox{\tiny\tt{super.m{{}^{\prime}}(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{class C \triangleleftD}}}{\mbox{\normalsize\tt{class C\triangleleftD}}}{\mbox{\scriptsize\tt{class C\triangleleftD}}}{\mbox{\tiny\tt{class C\triangleleft D}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda_{0}\\ {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\scriptsize\tt{m{{}^{\prime}}}}}{\mbox{\tiny\tt{m{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda_{0}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\scriptsize\tt{L.C.m}}}{\mbox{\tiny\tt{L.C.m}}};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
**
Since \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}} and \Lambda_{1}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{0}, we have \Lambda_{1}\cup\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{0}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}. Then, by Lemma A.2, {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\scriptsize\tt{m{{}^{\prime}}}}}{\mbox{\tiny\tt{m{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda_{1}\cup\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}. The induction hypothesis and T-SuperP finish the case.
**Case T-Proceed: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{proceed(}}}{\mbox{\normalsize\tt{proceed(}}}{\mbox{\scriptsize\tt{proceed(}}}{\mbox{\tiny\tt{proceed(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda_{0}\quad\quad{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{0},\Lambda_{0}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}\\ \mathchoice{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\scriptsize\tt{L.C.m}}}{\mbox{\tiny\tt{L.C.m}}};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- Since \Lambda_{1}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{0}, we have \Lambda_{1}\cup\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{0}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}. Then, by Lemma A.2, {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda_{1},\Lambda_{1}\cup\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}. The induction hypothesis and T-Proceed finish the case.*
**Case T-SuperProceed: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{superproceed(}}}{\mbox{\normalsize\tt{superproceed(}}}{\mbox{\scriptsize\tt{superproceed(}}}{\mbox{\tiny\tt{superproceed(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L \triangleleft L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L \triangleleft L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L \triangleleft L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L \triangleleft L{{}^{\prime}}{{}^{\prime}}}}}\quad\quad{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ \rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrow T}}}\\ \mathchoice{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\scriptsize\tt{L.C.m}}}{\mbox{\tiny\tt{L.C.m}}};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- We have that for some L′′′, L′* L*′′′. Then, \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}} and {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ \rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrow T}}} by Lemma A.1. The induction hypothesis and T-SuperProceed finish the case. \qed*
Lemma A.16** (Inversion for partial method body, Lemma 6)**
If \mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{ in L{{}^{\prime}}}}}{\mbox{\normalsize\tt{ in L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{ in L{{}^{\prime}}}}}{\mbox{\tiny\tt{ in L{{}^{\prime}}}}} and and {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ \rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrow T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then for some \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}.
Proof 16
By induction on \mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{ in L{{}^{\prime}}}}}{\mbox{\normalsize\tt{ in L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{ in L{{}^{\prime}}}}}{\mbox{\tiny\tt{ in L{{}^{\prime}}}}}.
**Case PMB-Super: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mbox{{LT}}(\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})(\mathchoice{\mbox{\normalsize\tt{C.m}}}{\mbox{\normalsize\tt{C.m}}}{\mbox{\scriptsize\tt{C.m}}}{\mbox{\tiny\tt{C.m}}})\mbox{ undefined}\quad\quad\mathchoice{\mbox{\normalsize\tt{L \triangleleft L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L \triangleleft L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L \triangleleft L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L \triangleleft L{{}^{\prime}}{{}^{\prime}}}}}\quad\quad\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{ in L{{}^{\prime}}}}}{\mbox{\normalsize\tt{ in L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{ in L{{}^{\prime}}}}}{\mbox{\tiny\tt{ in L{{}^{\prime}}}}}\end{array} *
- By {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ \rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrow T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and PMT-Super, it must be the case that {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ \rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrow T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. By the induction hypothesis,*
[TABLE]
for some \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. Lemmas A.7 and A.15 finish the case.
**Case PMB-Layer: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mbox{{LT}}(\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})(\mathchoice{\mbox{\normalsize\tt{C.m}}}{\mbox{\normalsize\tt{C.m}}}{\mbox{\scriptsize\tt{C.m}}}{\mbox{\tiny\tt{C.m}}})=\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{ C.m(}}}{\mbox{\normalsize\tt{ C.m(}}}{\mbox{\scriptsize\tt{ C.m(}}}{\mbox{\tiny\tt{ C.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{){\char 123\relax} return e; {\char 125\relax}}}}{\mbox{\normalsize\tt{){\char 123\relax} return e; {\char 125\relax}}}}{\mbox{\scriptsize\tt{){\char 123\relax} return e; {\char 125\relax}}}}{\mbox{\tiny\tt{){\char 123\relax} return e; {\char 125\relax}}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\end{array} *
- By T-PMethod, it must be the case that*
[TABLE]
for some s.t. \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{0}\mathchoice{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ T}}}{\mbox{\normalsize\tt{ T}}}{\mbox{\scriptsize\tt{ T}}}{\mbox{\tiny\tt{ T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, finishing the case. \qed
Lemma A.17** (Substitution for super, proceed and superproceed, Lemma 5)**
If and and \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C,(}}}{\mbox{\normalsize\tt{<C,(}}}{\mbox{\scriptsize\tt{<C,(}}}{\mbox{\tiny\tt{<C,(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\normalsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\scriptsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\tiny\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{> ok}}}{\mbox{\normalsize\tt{> ok}}}{\mbox{\scriptsize\tt{> ok}}}{\mbox{\tiny\tt{> ok}}} and C D and \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}} \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L \triangleleft L{{}^{\prime}}}}}{\mbox{\normalsize\tt{ L \triangleleft L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{ L \triangleleft L{{}^{\prime}}}}}{\mbox{\tiny\tt{ L \triangleleft L{{}^{\prime}}}}} and \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\} and \mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\in\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\implies\mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}), then where
[TABLE] 2. 2.
If and and \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C,}}}{\mbox{\normalsize\tt{<C,}}}{\mbox{\scriptsize\tt{<C,}}}{\mbox{\tiny\tt{<C,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{> ok}}}{\mbox{\normalsize\tt{> ok}}}{\mbox{\scriptsize\tt{> ok}}}{\mbox{\tiny\tt{> ok}}} and C D and \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}, then .
Proof 17
By induction on with case analysis on the last typing rule used. We show main cases below.
**Case T-SuperB: *** *
- Cannot happen.*
**Case T-SuperP: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{super.m{{}^{\prime}}(}}}{\mbox{\normalsize\tt{super.m{{}^{\prime}}(}}}{\mbox{\scriptsize\tt{super.m{{}^{\prime}}(}}}{\mbox{\tiny\tt{super.m{{}^{\prime}}(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\scriptsize\tt{m{{}^{\prime}}}}}{\mbox{\tiny\tt{m{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda^{\prime}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}\\ \mathchoice{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\scriptsize\tt{L.C.m}}}{\mbox{\tiny\tt{L.C.m}}};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}&\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda^{\prime}\quad\quad\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
- It suffices to show that \bullet;\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,}}}{\mbox{\normalsize\tt{)<D,}}}{\mbox{\scriptsize\tt{)<D,}}}{\mbox{\tiny\tt{)<D,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m{{}^{\prime}}(}}}{\mbox{\normalsize\tt{>.m{{}^{\prime}}(}}}{\mbox{\scriptsize\tt{>.m{{}^{\prime}}(}}}{\mbox{\tiny\tt{>.m{{}^{\prime}}(}}}S\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}. By assumption, we have . Next, we show . By \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C,}}}{\mbox{\normalsize\tt{<C,}}}{\mbox{\scriptsize\tt{<C,}}}{\mbox{\tiny\tt{<C,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{> ok}}}{\mbox{\normalsize\tt{> ok}}}{\mbox{\scriptsize\tt{> ok}}}{\mbox{\tiny\tt{> ok}}}, we have \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}, from which \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}} follows, and . By Lemma A.11 and \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\in\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\} and \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}, for any such that , there exists such that \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\normalsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\scriptsize\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}{\mbox{\tiny\tt{ \mathchoice{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<\raisebox{0.43054pt}{:}}}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{ L}}}{\mbox{\normalsize\tt{ L}}}{\mbox{\scriptsize\tt{ L}}}{\mbox{\tiny\tt{ L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}; so, \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}. Then, by {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\scriptsize\tt{m{{}^{\prime}}}}}{\mbox{\tiny\tt{m{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\Lambda^{\prime}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}} and Lemma A.2, we have {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\scriptsize\tt{m{{}^{\prime}}}}}{\mbox{\tiny\tt{m{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}; moreover, by Lemma A.13, . So, . By the induction hypothesis, we have \bullet;\Lambda;\Gamma\vdash S\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and, by assumption, \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}. Finally, T-InvkA finishes the case.*
**Case T-Proceed: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{proceed(}}}{\mbox{\normalsize\tt{proceed(}}}{\mbox{\scriptsize\tt{proceed(}}}{\mbox{\tiny\tt{proceed(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\Lambda^{\prime},\Lambda^{\prime}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}\\ \mathchoice{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\scriptsize\tt{L.C.m}}}{\mbox{\tiny\tt{L.C.m}}};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}&\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda^{\prime}\quad\quad\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
- It suffices to show that \bullet;\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{<C,}}}{\mbox{\normalsize\tt{<C,}}}{\mbox{\scriptsize\tt{<C,}}}{\mbox{\tiny\tt{<C,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>(}}}{\mbox{\normalsize\tt{>(}}}{\mbox{\scriptsize\tt{>(}}}{\mbox{\tiny\tt{>(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{).m(}}}{\mbox{\normalsize\tt{).m(}}}{\mbox{\scriptsize\tt{).m(}}}{\mbox{\tiny\tt{).m(}}}S\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}. By assumption, we have . Since , we have \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}), from which \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C,}}}{\mbox{\normalsize\tt{<C,}}}{\mbox{\scriptsize\tt{<C,}}}{\mbox{\tiny\tt{<C,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{> ok}}}{\mbox{\normalsize\tt{> ok}}}{\mbox{\scriptsize\tt{> ok}}}{\mbox{\tiny\tt{> ok}}} and follow. By Lemmas A.14 and A.3, we have {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}, too. By the induction hypothesis, we have \bullet;\Lambda;\Gamma\vdash S\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and, by assumption, \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}. Finally, T-InvkA finishes the case.*
**Case T-SuperProceed: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{superproceed(}}}{\mbox{\normalsize\tt{superproceed(}}}{\mbox{\scriptsize\tt{superproceed(}}}{\mbox{\tiny\tt{superproceed(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&\mathchoice{\mbox{\normalsize\tt{L \triangleleft L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L \triangleleft L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L \triangleleft L{{}^{\prime}}}}}{\mbox{\tiny\tt{L \triangleleft L{{}^{\prime}}}}}\\ {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}\\ \mathchoice{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\scriptsize\tt{L.C.m}}}{\mbox{\tiny\tt{L.C.m}}};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
- It suffices to show that \bullet;\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{<C,L{{}^{\prime}},(}}}{\mbox{\normalsize\tt{<C,L{{}^{\prime}},(}}}{\mbox{\scriptsize\tt{<C,L{{}^{\prime}},(}}}{\mbox{\tiny\tt{<C,L{{}^{\prime}},(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\normalsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\scriptsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\tiny\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m(}}}{\mbox{\normalsize\tt{>.m(}}}{\mbox{\scriptsize\tt{>.m(}}}{\mbox{\tiny\tt{>.m(}}}S\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}.*
By assumption, we have and \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C,(}}}{\mbox{\normalsize\tt{<C,(}}}{\mbox{\scriptsize\tt{<C,(}}}{\mbox{\tiny\tt{<C,(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\normalsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\scriptsize\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}{\mbox{\tiny\tt{{{}^{\prime}};L{{}^{\prime}}{{}^{\prime}}),}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{> ok}}}{\mbox{\normalsize\tt{> ok}}}{\mbox{\scriptsize\tt{> ok}}}{\mbox{\tiny\tt{> ok}}} and \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}. Also, {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}, by assumption. By the induction hypothesis, we have \bullet;\Lambda;\Gamma\vdash S\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and, by assumption, \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}. Finally, T-InvkAL finishes the case.
**Case T-With: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{with e}}}{\mbox{\normalsize\tt{with e}}}{\mbox{\scriptsize\tt{with e}}}{\mbox{\tiny\tt{with e}}}_{l}\mathchoice{\mbox{\normalsize\tt{ e}}}{\mbox{\normalsize\tt{ e}}}{\mbox{\scriptsize\tt{ e}}}{\mbox{\tiny\tt{ e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\scriptsize\tt{L.C.m}}}{\mbox{\tiny\tt{L.C.m}}};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}&\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda_{0}\\ \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{0}&\mathchoice{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\scriptsize\tt{L.C.m}}}{\mbox{\tiny\tt{L.C.m}}};\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}\end{array} *
- Since \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}, we have \Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\} by LSSW-Intro. By the induction hypothesis, and . T-With finishes the case.*
**Case T-Swap: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{swap (e}}}{\mbox{\normalsize\tt{swap (e}}}{\mbox{\scriptsize\tt{swap (e}}}{\mbox{\tiny\tt{swap (e}}}_{l}\mathchoice{\mbox{\normalsize\tt{,L}}}{\mbox{\normalsize\tt{,L}}}{\mbox{\scriptsize\tt{,L}}}{\mbox{\tiny\tt{,L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{) e}}}{\mbox{\normalsize\tt{) e}}}{\mbox{\scriptsize\tt{) e}}}{\mbox{\tiny\tt{) e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\scriptsize\tt{L.C.m}}}{\mbox{\tiny\tt{L.C.m}}};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}&\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda_{0}\\ \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{ swappable}}}{\mbox{\normalsize\tt{ swappable}}}{\mbox{\scriptsize\tt{ swappable}}}{\mbox{\tiny\tt{ swappable}}}&\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \Lambda_{rm}=\Lambda\setminus\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mid\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}&\Lambda_{rm}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{0}\\ \mathchoice{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\normalsize\tt{L.C.m}}}{\mbox{\scriptsize\tt{L.C.m}}}{\mbox{\tiny\tt{L.C.m}}};\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}\end{array} *
**
Since \Lambda\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}, we have \Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\} by LSSW-Intro. By the induction hypothesis, and . T-Swap finishes the case. 2. 2.
By induction on with case analysis on the last typing rule used. We show only main cases below (note that none of the cases T-Proceed and T-SuperP and T-SuperProceed can happen).
**Case T-SuperB: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{super.m{{}^{\prime}}(}}}{\mbox{\normalsize\tt{super.m{{}^{\prime}}(}}}{\mbox{\scriptsize\tt{super.m{{}^{\prime}}(}}}{\mbox{\tiny\tt{super.m{{}^{\prime}}(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&{\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\scriptsize\tt{m{{}^{\prime}}}}}{\mbox{\tiny\tt{m{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\emptyset)=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \mathchoice{\mbox{\normalsize\tt{C.m}}}{\mbox{\normalsize\tt{C.m}}}{\mbox{\scriptsize\tt{C.m}}}{\mbox{\tiny\tt{C.m}}};\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
**
Let . It suffices to show that \bullet;\Lambda;\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,}}}{\mbox{\normalsize\tt{)<D,}}}{\mbox{\scriptsize\tt{)<D,}}}{\mbox{\tiny\tt{)<D,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m{{}^{\prime}}(}}}{\mbox{\normalsize\tt{>.m{{}^{\prime}}(}}}{\mbox{\scriptsize\tt{>.m{{}^{\prime}}(}}}{\mbox{\tiny\tt{>.m{{}^{\prime}}(}}}S\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. By assumption, we have . Next, we show . By \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C,}}}{\mbox{\normalsize\tt{<C,}}}{\mbox{\scriptsize\tt{<C,}}}{\mbox{\tiny\tt{<C,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{> ok}}}{\mbox{\normalsize\tt{> ok}}}{\mbox{\scriptsize\tt{> ok}}}{\mbox{\tiny\tt{> ok}}}, we have \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}, from which \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}} follows, and . By {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\scriptsize\tt{m{{}^{\prime}}}}}{\mbox{\tiny\tt{m{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\emptyset)=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and Lemma A.2, we have {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\normalsize\tt{m{{}^{\prime}}}}}{\mbox{\scriptsize\tt{m{{}^{\prime}}}}}{\mbox{\tiny\tt{m{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}; moreover, by Lemma A.13, . So, . By the induction hypothesis, we have \bullet;\Lambda;\Gamma\vdash S\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and, by assumption, \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}. Finally, T-InvkA finishes the case.\qed
Lemma A.18** (Inversion for method body, Lemma 7)**
Suppose and \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} and {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}).
If \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{.C{{}^{\prime}}.m}}}{\mbox{\normalsize\tt{.C{{}^{\prime}}.m}}}{\mbox{\scriptsize\tt{.C{{}^{\prime}}.m}}}{\mbox{\tiny\tt{.C{{}^{\prime}}.m}}};\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{this}}}{\mbox{\normalsize\tt{this}}}{\mbox{\scriptsize\tt{this}}}{\mbox{\tiny\tt{this}}}:\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{U}}}{\mbox{\normalsize\tt{U}}}{\mbox{\scriptsize\tt{U}}}{\mbox{\tiny\tt{U}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}} and \mathchoice{\mbox{\normalsize\tt{U}}}{\mbox{\normalsize\tt{U}}}{\mbox{\scriptsize\tt{U}}}{\mbox{\tiny\tt{U}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}) for some and . 2. 2.
If \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}}=\bullet, then \mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}.m}}}{\mbox{\normalsize\tt{C{{}^{\prime}}.m}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}.m}}}{\mbox{\tiny\tt{C{{}^{\prime}}.m}}};\emptyset;\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{this}}}{\mbox{\normalsize\tt{this}}}{\mbox{\scriptsize\tt{this}}}{\mbox{\tiny\tt{this}}}:\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{U}}}{\mbox{\normalsize\tt{U}}}{\mbox{\scriptsize\tt{U}}}{\mbox{\tiny\tt{U}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}} and \mathchoice{\mbox{\normalsize\tt{U}}}{\mbox{\normalsize\tt{U}}}{\mbox{\scriptsize\tt{U}}}{\mbox{\tiny\tt{U}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\bullet,\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}) for some .
Proof 18
Both 1 and 2 are proved simultaneously by induction on \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}}.
**Case MB-Class: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{class C \triangleleftD {\char 123\relax}... S}}}{\mbox{\normalsize\tt{class C\triangleleftD {\char 123\relax}... S}}}{\mbox{\scriptsize\tt{class C\triangleleftD {\char 123\relax}... S}}}{\mbox{\tiny\tt{class C\triangleleft D {\char 123\relax}... S}}}_{0}\mathchoice{\mbox{\normalsize\tt{ m(}}}{\mbox{\normalsize\tt{ m(}}}{\mbox{\scriptsize\tt{ m(}}}{\mbox{\tiny\tt{ m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{){\char 123\relax}return e}}}{\mbox{\normalsize\tt{){\char 123\relax}return e}}}{\mbox{\scriptsize\tt{){\char 123\relax}return e}}}{\mbox{\tiny\tt{){\char 123\relax}return e}}}_{0}\mathchoice{\mbox{\normalsize\tt{;{\char 125\relax} ...{\char 125\relax}}}}{\mbox{\normalsize\tt{;{\char 125\relax} ...{\char 125\relax}}}}{\mbox{\scriptsize\tt{;{\char 125\relax} ...{\char 125\relax}}}}{\mbox{\tiny\tt{;{\char 125\relax} ...{\char 125\relax}}}}\\ \mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}=\bullet\quad\quad\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}}=\bullet\end{array} *
- By T-Class, T-Method, MT-Class, it must be the case that*
[TABLE]
for some . We have by NDP-Class, finishing the case.
**Case MB-Layer: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{ in L}}}{\mbox{\normalsize\tt{ in L}}}{\mbox{\scriptsize\tt{ in L}}}{\mbox{\tiny\tt{ in L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
**
By the definition of pmbody, there exists some such that and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. By T-PMethod, it must be the case that
[TABLE]
for some and . It is easy to show by induction on \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} using Lemma A.7 and T-Layer and T-LayerSW that
[TABLE]
for some such that . Finally, we have ndp(m,C′**,\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}},) by assumption, finishing the case.
**Case MB-Super: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}=\bullet\quad\quad\mathchoice{\mbox{\normalsize\tt{class C \triangleleftD {\char 123\relax} ... }}}{\mbox{\normalsize\tt{class C\triangleleftD {\char 123\relax} ... }}}{\mbox{\scriptsize\tt{class C\triangleleftD {\char 123\relax} ... }}}{\mbox{\tiny\tt{class C\triangleleft D {\char 123\relax} ... }}}\overline{\mathchoice{\mbox{\normalsize\tt{M}}}{\mbox{\normalsize\tt{M}}}{\mbox{\scriptsize\tt{M}}}{\mbox{\tiny\tt{M}}}}\mathchoice{\mbox{\normalsize\tt{ {\char 125\relax}}}}{\mbox{\normalsize\tt{ {\char 125\relax}}}}{\mbox{\scriptsize\tt{ {\char 125\relax}}}}{\mbox{\tiny\tt{ {\char 125\relax}}}}&\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}}\not\in\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{M}}}{\mbox{\normalsize\tt{M}}}{\mbox{\scriptsize\tt{M}}}{\mbox{\tiny\tt{M}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}}\end{array} *
- By MT-Super, it must be the case that {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. By Lemma A.13, we have ndp(m,D,,). The induction hypothesis and transitivity of subtyping finish the case.*
**Case MB-NextLayer: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}_{b}\mathchoice{\mbox{\normalsize\tt{;L}}}{\mbox{\normalsize\tt{;L}}}{\mbox{\scriptsize\tt{;L}}}{\mbox{\tiny\tt{;L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\quad\quad\mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})\mbox{ undefined}\\ \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}_{b}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}}\end{array} *
- We show holds by case analysis on . The cases NDP-Super and NDP-Class are easy. The case NDP-Layer is easy, too: since , by NDP-Layer, we have . Since is undefined and {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, it must be the case that {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}_{b}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. Then, the induction hypothesis finishes the case. \qed*
Theorem A.1** (Subject Reduction)**
Suppose . If and {} wf and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}, then \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}} for some S such that \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}.
Proof 19
By induction on \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}} with case analysis on the last reduction rule used. We show only main cases.
**Case R-Field: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{).f}}}{\mbox{\normalsize\tt{).f}}}{\mbox{\scriptsize\tt{).f}}}{\mbox{\tiny\tt{).f}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&{\mbox{{fields}}}(\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{f}}}{\mbox{\normalsize\tt{f}}}{\mbox{\scriptsize\tt{f}}}{\mbox{\tiny\tt{f}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- By T-Field and T-New, it must be the case that*
[TABLE]
Then, we have and \mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, finishing the case.
**Case R-Invk: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{).m(}}}{\mbox{\normalsize\tt{).m(}}}{\mbox{\scriptsize\tt{).m(}}}{\mbox{\tiny\tt{).m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{w}}}{\mbox{\normalsize\tt{w}}}{\mbox{\scriptsize\tt{w}}}{\mbox{\tiny\tt{w}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\\ \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<C}}}{\mbox{\normalsize\tt{)<C}}}{\mbox{\scriptsize\tt{)<C}}}{\mbox{\tiny\tt{)<C}}}_{0}\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{>.m(}}}{\mbox{\normalsize\tt{>.m(}}}{\mbox{\scriptsize\tt{>.m(}}}{\mbox{\tiny\tt{>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{w}}}{\mbox{\normalsize\tt{w}}}{\mbox{\scriptsize\tt{w}}}{\mbox{\tiny\tt{w}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}\end{array} *
- By T-Invk and T-New, it must be the case that*
[TABLE]
By Lemma A.13, and so holds. Since \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}, we have
[TABLE]
by T-InvkA. By the induction hypothesis, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}} for some \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}, finishing the case.
**Case R-InvkP: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<C{{}^{\prime}},}}}{\mbox{\normalsize\tt{)<C{{}^{\prime}},}}}{\mbox{\scriptsize\tt{)<C{{}^{\prime}},}}}{\mbox{\tiny\tt{)<C{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\normalsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\tiny\tt{{{}^{\prime}}>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{w}}}{\mbox{\normalsize\tt{w}}}{\mbox{\scriptsize\tt{w}}}{\mbox{\tiny\tt{w}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\\ \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}{{}^{\prime}}}}},(\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}};\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})\\ \mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}} \triangleleft D}}}{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}} \triangleleft D}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}{{}^{\prime}} \triangleleft D}}}{\mbox{\tiny\tt{C{{}^{\prime}}{{}^{\prime}} \triangleleftD}}}\\ \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{\triangleleftL}}}{\mbox{\normalsize\tt{\triangleleftL}}}{\mbox{\scriptsize\tt{\triangleleftL}}}{\mbox{\tiny\tt{\triangleleft L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\left[\begin{array}[]{l@{/}l}\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&\mathchoice{\mbox{\normalsize\tt{this}}}{\mbox{\normalsize\tt{this}}}{\mbox{\scriptsize\tt{this}}}{\mbox{\tiny\tt{this}}},\\ \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{w}}}{\mbox{\normalsize\tt{w}}}{\mbox{\scriptsize\tt{w}}}{\mbox{\tiny\tt{w}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\\ \mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<C{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\normalsize\tt{)<C{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\scriptsize\tt{)<C{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\tiny\tt{)<C{{}^{\prime}}{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>.m}}}{\mbox{\normalsize\tt{{{}^{\prime}}>.m}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>.m}}}{\mbox{\tiny\tt{{{}^{\prime}}>.m}}}&\mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}},\\ \mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,}}}{\mbox{\normalsize\tt{)<D,}}}{\mbox{\scriptsize\tt{)<D,}}}{\mbox{\tiny\tt{)<D,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>}}}{\mbox{\normalsize\tt{{{}^{\prime}}>}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>}}}{\mbox{\tiny\tt{{{}^{\prime}}>}}}&\mathchoice{\mbox{\normalsize\tt{super}}}{\mbox{\normalsize\tt{super}}}{\mbox{\scriptsize\tt{super}}}{\mbox{\tiny\tt{super}}},\\ \mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<C{{}^{\prime}}{{}^{\prime}},L}}}{\mbox{\normalsize\tt{)<C{{}^{\prime}}{{}^{\prime}},L}}}{\mbox{\scriptsize\tt{)<C{{}^{\prime}}{{}^{\prime}},L}}}{\mbox{\tiny\tt{)<C{{}^{\prime}}{{}^{\prime}},L}}}_{1}\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}(\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>.m}}}{\mbox{\normalsize\tt{{{}^{\prime}}>.m}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>.m}}}{\mbox{\tiny\tt{{{}^{\prime}}>.m}}}&\mathchoice{\mbox{\normalsize\tt{superproceed}}}{\mbox{\normalsize\tt{superproceed}}}{\mbox{\scriptsize\tt{superproceed}}}{\mbox{\tiny\tt{superproceed}}}\end{array}\right]\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- By T-InvkA, it must be the case that*
[TABLE]
for some \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}.
By Lemma A.18,
[TABLE]
and for some and S.
By S-Trans, \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}{{}^{\prime}}}}}. From \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}) and \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C{{}^{\prime}},}}}{\mbox{\normalsize\tt{<C{{}^{\prime}},}}}{\mbox{\scriptsize\tt{<C{{}^{\prime}},}}}{\mbox{\tiny\tt{<C{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}> ok}}}{\mbox{\normalsize\tt{{{}^{\prime}}> ok}}}{\mbox{\scriptsize\tt{{{}^{\prime}}> ok}}}{\mbox{\tiny\tt{{{}^{\prime}}> ok}}}, it follows that \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\normalsize\tt{<C{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\scriptsize\tt{<C{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\tiny\tt{<C{{}^{\prime}}{{}^{\prime}},}}}(\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}> ok}}}{\mbox{\normalsize\tt{{{}^{\prime}}> ok}}}{\mbox{\scriptsize\tt{{{}^{\prime}}> ok}}}{\mbox{\tiny\tt{{{}^{\prime}}> ok}}}.
By \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}\,\mbox{{wf}} and Lemma A.11 and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\in\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and , we have \forall\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\in\Lambda,\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\in\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}.\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}. So, by LSS-Intro, we have \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}=\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}. By this fact and \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}, we get \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}. By Lemma A.7,
[TABLE]
By \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}) and the definition of ndp, implies \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}). Then, by Lemmas A.8 and Lemma A.17(1),
[TABLE]
By Lemmas A.8, A.5 and A.9, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\scriptsize\tt{S{{}^{\prime}}}}}{\mbox{\tiny\tt{S{{}^{\prime}}}}} for some \mathchoice{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\scriptsize\tt{S{{}^{\prime}}}}}{\mbox{\tiny\tt{S{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}. By S-Trans, \mathchoice{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\scriptsize\tt{S{{}^{\prime}}}}}{\mbox{\tiny\tt{S{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}, finishing the case.
**Case R-InvkSP: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<C{{}^{\prime}},L}}}{\mbox{\normalsize\tt{)<C{{}^{\prime}},L}}}{\mbox{\scriptsize\tt{)<C{{}^{\prime}},L}}}{\mbox{\tiny\tt{)<C{{}^{\prime}},L}}}_{1}\mathchoice{\mbox{\normalsize\tt{,(}}}{\mbox{\normalsize\tt{,(}}}{\mbox{\scriptsize\tt{,(}}}{\mbox{\tiny\tt{,(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{),}}}{\mbox{\normalsize\tt{),}}}{\mbox{\scriptsize\tt{),}}}{\mbox{\tiny\tt{),}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\normalsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\tiny\tt{{{}^{\prime}}>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{w}}}{\mbox{\normalsize\tt{w}}}{\mbox{\scriptsize\tt{w}}}{\mbox{\tiny\tt{w}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\\ \mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}} \triangleleft D}}}{\mbox{\normalsize\tt{C{{}^{\prime}} \triangleleft D}}}{\mbox{\scriptsize\tt{C{{}^{\prime}} \triangleleft D}}}{\mbox{\tiny\tt{C{{}^{\prime}} \triangleleftD}}}\\ \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{\triangleleftL}}}{\mbox{\normalsize\tt{\triangleleftL}}}{\mbox{\scriptsize\tt{\triangleleftL}}}{\mbox{\tiny\tt{\triangleleft L}}}_{3}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\left[\begin{array}[]{l@{/}l}\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&\mathchoice{\mbox{\normalsize\tt{this}}}{\mbox{\normalsize\tt{this}}}{\mbox{\scriptsize\tt{this}}}{\mbox{\tiny\tt{this}}}\\ \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{w}}}{\mbox{\normalsize\tt{w}}}{\mbox{\scriptsize\tt{w}}}{\mbox{\tiny\tt{w}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<C{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\normalsize\tt{)<C{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\scriptsize\tt{)<C{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\tiny\tt{)<C{{}^{\prime}}{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>.m}}}{\mbox{\normalsize\tt{{{}^{\prime}}>.m}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>.m}}}{\mbox{\tiny\tt{{{}^{\prime}}>.m}}}&\mathchoice{\mbox{\normalsize\tt{proceed}}}{\mbox{\normalsize\tt{proceed}}}{\mbox{\scriptsize\tt{proceed}}}{\mbox{\tiny\tt{proceed}}}\\ \mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,}}}{\mbox{\normalsize\tt{)<D,}}}{\mbox{\scriptsize\tt{)<D,}}}{\mbox{\tiny\tt{)<D,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>}}}{\mbox{\normalsize\tt{{{}^{\prime}}>}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>}}}{\mbox{\tiny\tt{{{}^{\prime}}>}}}&\mathchoice{\mbox{\normalsize\tt{super}}}{\mbox{\normalsize\tt{super}}}{\mbox{\scriptsize\tt{super}}}{\mbox{\tiny\tt{super}}},\\ \mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<C{{}^{\prime}}{{}^{\prime}},L}}}{\mbox{\normalsize\tt{)<C{{}^{\prime}}{{}^{\prime}},L}}}{\mbox{\scriptsize\tt{)<C{{}^{\prime}}{{}^{\prime}},L}}}{\mbox{\tiny\tt{)<C{{}^{\prime}}{{}^{\prime}},L}}}_{3}\mathchoice{\mbox{\normalsize\tt{,(}}}{\mbox{\normalsize\tt{,(}}}{\mbox{\scriptsize\tt{,(}}}{\mbox{\tiny\tt{,(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{),}}}{\mbox{\normalsize\tt{),}}}{\mbox{\scriptsize\tt{),}}}{\mbox{\tiny\tt{),}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>.m}}}{\mbox{\normalsize\tt{{{}^{\prime}}>.m}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>.m}}}{\mbox{\tiny\tt{{{}^{\prime}}>.m}}}&\mathchoice{\mbox{\normalsize\tt{superproceed}}}{\mbox{\normalsize\tt{superproceed}}}{\mbox{\scriptsize\tt{superproceed}}}{\mbox{\tiny\tt{superproceed}}}\end{array}\right]\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- By T-InvkAL, it must be the case that*
[TABLE]
for some \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}. Let be the layer set such that . By Lemma A.16,
[TABLE]
and \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}} for some S.
Since \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, requires all the layers that requires (including ). By \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}\,\mbox{{wf}} and Lemma A.11 and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\in\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}, we have \forall\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\in\Lambda,\exists\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\in\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\} such that \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}. So, \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}=\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}. By this and \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}, we have \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\Lambda\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}. By Lemma A.7,
[TABLE]
By \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}) (which follows from \mathchoice{\mbox{\normalsize\tt{C.m}}}{\mbox{\normalsize\tt{C.m}}}{\mbox{\scriptsize\tt{C.m}}}{\mbox{\tiny\tt{C.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<C{{}^{\prime}},(}}}{\mbox{\normalsize\tt{<C{{}^{\prime}},(}}}{\mbox{\scriptsize\tt{<C{{}^{\prime}},(}}}{\mbox{\tiny\tt{<C{{}^{\prime}},(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{),}}}{\mbox{\normalsize\tt{),}}}{\mbox{\scriptsize\tt{),}}}{\mbox{\tiny\tt{),}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}> ok}}}{\mbox{\normalsize\tt{{{}^{\prime}}> ok}}}{\mbox{\scriptsize\tt{{{}^{\prime}}> ok}}}{\mbox{\tiny\tt{{{}^{\prime}}> ok}}}) and the definition of ndp, implies \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}) holds. Then, by Lemmas A.8, A.5, A.9 and A.17(1), \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\scriptsize\tt{S{{}^{\prime}}}}}{\mbox{\tiny\tt{S{{}^{\prime}}}}} for some \mathchoice{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\scriptsize\tt{S{{}^{\prime}}}}}{\mbox{\tiny\tt{S{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}. By S-Trans, \mathchoice{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\scriptsize\tt{S{{}^{\prime}}}}}{\mbox{\tiny\tt{S{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}, finishing the case.
**Case R-InvkB: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<C{{}^{\prime}},}}}{\mbox{\normalsize\tt{)<C{{}^{\prime}},}}}{\mbox{\scriptsize\tt{)<C{{}^{\prime}},}}}{\mbox{\tiny\tt{)<C{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\normalsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\tiny\tt{{{}^{\prime}}>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{w}}}{\mbox{\normalsize\tt{w}}}{\mbox{\scriptsize\tt{w}}}{\mbox{\tiny\tt{w}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\\ \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}{{}^{\prime}}}}},\bullet\\ \mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}} \triangleleft D}}}{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}} \triangleleft D}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}{{}^{\prime}} \triangleleft D}}}{\mbox{\tiny\tt{C{{}^{\prime}}{{}^{\prime}} \triangleleft D}}}\\ \mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\left[\begin{array}[]{l@{/}l}\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&\mathchoice{\mbox{\normalsize\tt{this}}}{\mbox{\normalsize\tt{this}}}{\mbox{\scriptsize\tt{this}}}{\mbox{\tiny\tt{this}}}\\ \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{w}}}{\mbox{\normalsize\tt{w}}}{\mbox{\scriptsize\tt{w}}}{\mbox{\tiny\tt{w}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D,}}}{\mbox{\normalsize\tt{)<D,}}}{\mbox{\scriptsize\tt{)<D,}}}{\mbox{\tiny\tt{)<D,}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>}}}{\mbox{\normalsize\tt{{{}^{\prime}}>}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>}}}{\mbox{\tiny\tt{{{}^{\prime}}>}}}&\mathchoice{\mbox{\normalsize\tt{super}}}{\mbox{\normalsize\tt{super}}}{\mbox{\scriptsize\tt{super}}}{\mbox{\tiny\tt{super}}}\end{array}\right]\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
**
By T-InvkA, it must be the case that
[TABLE]
for some \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}. By Lemma A.18,
[TABLE]
and \mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}{{}^{\prime}}}}} and \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}} and \mbox{{ndp}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}{{}^{\prime}}}}},\bullet,\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}) for some S. By S-Trans, \mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}{{}^{\prime}}}}}. By Lemma A.5,
[TABLE]
By Lemmas A.8, A.5, A.9 and A.17(2), \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\scriptsize\tt{S{{}^{\prime}}}}}{\mbox{\tiny\tt{S{{}^{\prime}}}}} for some \mathchoice{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\scriptsize\tt{S{{}^{\prime}}}}}{\mbox{\tiny\tt{S{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}. By S-Trans, \mathchoice{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\normalsize\tt{S{{}^{\prime}}}}}{\mbox{\scriptsize\tt{S{{}^{\prime}}}}}{\mbox{\tiny\tt{S{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}, finishing the case.
**Case RC-With: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{with new L() e}}}{\mbox{\normalsize\tt{with new L() e}}}{\mbox{\scriptsize\tt{with new L() e}}}{\mbox{\tiny\tt{with new L() e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{with new L() e}}}{\mbox{\normalsize\tt{with new L() e}}}{\mbox{\scriptsize\tt{with new L() e}}}{\mbox{\tiny\tt{with new L() e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\\ \mbox{{with}}(\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
**
By T-With, it must be the case that
[TABLE]
for some . Here, \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}=\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}\,\mbox{{wf}} by Wf-With. By the induction hypothesis, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}} for some \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}. By T-With, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}, finishing the case.
**Case RC-WithArg: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{with e}}}{\mbox{\normalsize\tt{with e}}}{\mbox{\scriptsize\tt{with e}}}{\mbox{\tiny\tt{with e}}}_{l}\mathchoice{\mbox{\normalsize\tt{ e}}}{\mbox{\normalsize\tt{ e}}}{\mbox{\scriptsize\tt{ e}}}{\mbox{\tiny\tt{ e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{with e}}}{\mbox{\normalsize\tt{with e}}}{\mbox{\scriptsize\tt{with e}}}{\mbox{\tiny\tt{with e}}}_{l}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}} e}}}{\mbox{\normalsize\tt{{{}^{\prime}} e}}}{\mbox{\scriptsize\tt{{{}^{\prime}} e}}}{\mbox{\tiny\tt{{{}^{\prime}} e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
- By T-With, it must be the case that*
[TABLE]
for some . By the induction hypothesis, we have \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}} for some L′ <: L*. By LS-Extends, L′** and L have the same require clause . Since L′* <: L*, we have \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}, and \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\cup\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}. By Lemma A.7 and T-With, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}. Reflexivity of <: finishes the case.*
**Case R-WithVal: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{with new L() v}}}{\mbox{\normalsize\tt{with new L() v}}}{\mbox{\scriptsize\tt{with new L() v}}}{\mbox{\tiny\tt{with new L() v}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- By T-With, it must be the case that . By Lemma A.8, , finishing the case.*
**Case RC-Swap: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{swap (new L(),L}}}{\mbox{\normalsize\tt{swap (new L(),L}}}{\mbox{\scriptsize\tt{swap (new L(),L}}}{\mbox{\tiny\tt{swap (new L(),L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{) e}}}{\mbox{\normalsize\tt{) e}}}{\mbox{\scriptsize\tt{) e}}}{\mbox{\tiny\tt{) e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{swap (new L(),L}}}{\mbox{\normalsize\tt{swap (new L(),L}}}{\mbox{\scriptsize\tt{swap (new L(),L}}}{\mbox{\tiny\tt{swap (new L(),L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{) e}}}{\mbox{\normalsize\tt{) e}}}{\mbox{\scriptsize\tt{) e}}}{\mbox{\tiny\tt{) e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\\ \mbox{{swap}}(\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
- By T-Swap, it must be the case that*
[TABLE]
for some L, , and . Here, \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}=\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}. Then, \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}\,\mbox{{wf}} by Wf-Swap. By the induction hypothesis, \bullet;\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}} for some \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}. By T-Swap, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}, finishing the case.
**Case RC-SwapArg: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{swap (e}}}{\mbox{\normalsize\tt{swap (e}}}{\mbox{\scriptsize\tt{swap (e}}}{\mbox{\tiny\tt{swap (e}}}_{l}\mathchoice{\mbox{\normalsize\tt{,L}}}{\mbox{\normalsize\tt{,L}}}{\mbox{\scriptsize\tt{,L}}}{\mbox{\tiny\tt{,L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{) e}}}{\mbox{\normalsize\tt{) e}}}{\mbox{\scriptsize\tt{) e}}}{\mbox{\tiny\tt{) e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{swap (e}}}{\mbox{\normalsize\tt{swap (e}}}{\mbox{\scriptsize\tt{swap (e}}}{\mbox{\tiny\tt{swap (e}}}_{l}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},L}}}{\mbox{\normalsize\tt{{{}^{\prime}},L}}}{\mbox{\scriptsize\tt{{{}^{\prime}},L}}}{\mbox{\tiny\tt{{{}^{\prime}},L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{) e}}}{\mbox{\normalsize\tt{) e}}}{\mbox{\scriptsize\tt{) e}}}{\mbox{\tiny\tt{) e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
- By T-Swap, it must be the case that*
[TABLE]
for some L, , and . By the induction hypothesis, we have \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}} for some L′ <: L*. By LS-Extends, L′** and L have the same require clause . Since L′* <: L*, we have \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}, \mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, and \Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda. By Lemma A.7 and T-Swap, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}. Reflexivity of <: finishes the case.*
**Case R-SwapVal: *** *
- Similar to Case R-WithVal.*
**Case RC-InvkRecv: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m(}}}{\mbox{\normalsize\tt{.m(}}}{\mbox{\scriptsize\tt{.m(}}}{\mbox{\tiny\tt{.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}&\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}.m(}}}{\mbox{\normalsize\tt{{{}^{\prime}}.m(}}}{\mbox{\scriptsize\tt{{{}^{\prime}}.m(}}}{\mbox{\tiny\tt{{{}^{\prime}}.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\end{array} *
- By T-Invk, it must be the case that*
[TABLE]
for some and . By the induction hypothesis, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} for some \mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. By Lemma A.6, {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\normalsize\tt{\rightarrowS}}}{\mbox{\scriptsize\tt{\rightarrowS}}}{\mbox{\tiny\tt{\rightarrowS}}} and \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}} for some S. By T-Invk, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}.m(}}}{\mbox{\normalsize\tt{{{}^{\prime}}.m(}}}{\mbox{\scriptsize\tt{{{}^{\prime}}.m(}}}{\mbox{\tiny\tt{{{}^{\prime}}.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}:\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}, finishing the case.
**Case RC-InvkArg: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m(}}}{\mbox{\normalsize\tt{.m(}}}{\mbox{\scriptsize\tt{.m(}}}{\mbox{\tiny\tt{.m(}}}\ldots\mathchoice{\mbox{\normalsize\tt{,e}}}{\mbox{\normalsize\tt{,e}}}{\mbox{\scriptsize\tt{,e}}}{\mbox{\tiny\tt{,e}}}_{i}\mathchoice{\mbox{\normalsize\tt{,}}}{\mbox{\normalsize\tt{,}}}{\mbox{\scriptsize\tt{,}}}{\mbox{\tiny\tt{,}}}\ldots\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}&\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m(}}}{\mbox{\normalsize\tt{.m(}}}{\mbox{\scriptsize\tt{.m(}}}{\mbox{\tiny\tt{.m(}}}\ldots\mathchoice{\mbox{\normalsize\tt{,e}}}{\mbox{\normalsize\tt{,e}}}{\mbox{\scriptsize\tt{,e}}}{\mbox{\tiny\tt{,e}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\normalsize\tt{{{}^{\prime}},}}}{\mbox{\scriptsize\tt{{{}^{\prime}},}}}{\mbox{\tiny\tt{{{}^{\prime}},}}}\ldots\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\end{array} *
- By T-Invk, it must be the case that*
[TABLE]
for some and . By the induction hypothesis, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} for some \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. By S-Trans, \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. So, by T-Invk, \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}, finishing the case.
**Case RC-New, RC-InvkAArg1, RC-InvkAArg2: *** *
- Similar to the case above. \qed*
Lemma A.19** (Lemma 12)**
If {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}, then there exist and and L′* () such that \mbox{{pmbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}} and the lengths of and are equal and \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}.*
Proof 20
By induction on {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}.
**Case PMT-Layer: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mbox{{LT}}()() = \mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{ C.m(}}}{\mbox{\normalsize\tt{ C.m(}}}{\mbox{\scriptsize\tt{ C.m(}}}{\mbox{\tiny\tt{ C.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{){\char 123\relax} return e; {\char 125\relax}}}}{\mbox{\normalsize\tt{){\char 123\relax} return e; {\char 125\relax}}}}{\mbox{\scriptsize\tt{){\char 123\relax} return e; {\char 125\relax}}}}{\mbox{\tiny\tt{){\char 123\relax} return e; {\char 125\relax}}}}$$\end{array} *
- By T-PMethod, the lengths of and are equal. \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}} by Reflexivity of \mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}. Then, PMB-Layer finishes the case.*
**Case PMT-Super: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mbox{{LT}}()() \mbox{ undefined}\quad\quad\mathchoice{\mbox{\normalsize\tt{L \triangleleft L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L \triangleleft L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L \triangleleft L{{}^{\prime}}}}}{\mbox{\tiny\tt{L \triangleleft L{{}^{\prime}}}}}\quad\quad{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- The induction hypothesis and PMB-Layer and LSw-Extends and LSw-Extends finish the case. \qed*
Lemma A.20** (Lemma 13)**
If {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} is a prefix of and , then there exist and and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} and C′* () such that \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} and the lengths of and are equal and, if \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} is not empty, the last layer name of \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} is not Base.*
Proof 21
By lexicographic induction on {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} and the length of \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}.
**Case: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}=\bullet\quad\quad\mathchoice{\mbox{\normalsize\tt{class C \triangleleftD {\char 123\relax}... S}}}{\mbox{\normalsize\tt{class C\triangleleftD {\char 123\relax}... S}}}{\mbox{\scriptsize\tt{class C\triangleleftD {\char 123\relax}... S}}}{\mbox{\tiny\tt{class C\triangleleft D {\char 123\relax}... S}}}_{0}\mathchoice{\mbox{\normalsize\tt{ m(}}}{\mbox{\normalsize\tt{ m(}}}{\mbox{\scriptsize\tt{ m(}}}{\mbox{\tiny\tt{ m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{){\char 123\relax} return e}}}{\mbox{\normalsize\tt{){\char 123\relax} return e}}}{\mbox{\scriptsize\tt{){\char 123\relax} return e}}}{\mbox{\tiny\tt{){\char 123\relax} return e}}}_{0}\mathchoice{\mbox{\normalsize\tt{; {\char 125\relax} ...{\char 125\relax}}}}{\mbox{\normalsize\tt{; {\char 125\relax} ...{\char 125\relax}}}}{\mbox{\scriptsize\tt{; {\char 125\relax} ...{\char 125\relax}}}}{\mbox{\tiny\tt{; {\char 125\relax} ...{\char 125\relax}}}}\end{array} *
- By MT-Class, it must be the case that and the lengths of and are equal. Then, by MB-Class, , finishing the case.*
**Case: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}=\bullet\quad\quad\mathchoice{\mbox{\normalsize\tt{class C \triangleleftD {\char 123\relax}... }}}{\mbox{\normalsize\tt{class C\triangleleftD {\char 123\relax}... }}}{\mbox{\scriptsize\tt{class C\triangleleftD {\char 123\relax}... }}}{\mbox{\tiny\tt{class C\triangleleft D {\char 123\relax}... }}}\overline{\mathchoice{\mbox{\normalsize\tt{M}}}{\mbox{\normalsize\tt{M}}}{\mbox{\scriptsize\tt{M}}}{\mbox{\tiny\tt{M}}}}\mathchoice{\mbox{\normalsize\tt{{\char 125\relax}}}}{\mbox{\normalsize\tt{{\char 125\relax}}}}{\mbox{\scriptsize\tt{{\char 125\relax}}}}{\mbox{\tiny\tt{{\char 125\relax}}}}\quad\quad\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}}\not\in\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{M}}}{\mbox{\normalsize\tt{M}}}{\mbox{\scriptsize\tt{M}}}{\mbox{\tiny\tt{M}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- It must be the case that {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} is derived by MT-Super and {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. The induction hypothesis and MB-Super finish the case.*
**Case: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- By Lemma A.19 and MB-Layer.*
**Case: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}};\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&{\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})\mbox{ undefined}\end{array} *
- Since , it must be the case that {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}\},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}. By the induction hypothesis, there exist and and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} and C′** () such that \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} and the lengths of and are equal. It follows that is ** undefined** from . MB-NextLayer finishes the case. \qed*
Theorem A.2** (Progress)**
Suppose . If and {} wf, then e is a value or \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}} for some e′.
Proof 22
By induction on with case analysis on the last typing rule used.
**Case T-Var, T-Super, T-Proceed, T-SuperProceed: *** *
- Cannot happen.*
**Case T-Field: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{.f}}}{\mbox{\normalsize\tt{.f}}}{\mbox{\scriptsize\tt{.f}}}{\mbox{\tiny\tt{.f}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\bullet\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&{\mbox{{fields}}}(\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{f}}}{\mbox{\normalsize\tt{f}}}{\mbox{\scriptsize\tt{f}}}{\mbox{\tiny\tt{f}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}=\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- By the induction hypothesis, either is a value or there exists \mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} such that \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}. In the latter case, RC-Field finishes the case. In the former case where is a value, by T-New, we have*
[TABLE]
So, we have , finishing the case.
**Case T-Invk: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m(}}}{\mbox{\normalsize\tt{.m(}}}{\mbox{\scriptsize\tt{.m(}}}{\mbox{\tiny\tt{.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&\bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\bullet\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ {\mbox{{mtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\normalsize\tt{\rightarrowT}}}{\mbox{\scriptsize\tt{\rightarrowT}}}{\mbox{\tiny\tt{\rightarrowT}}}&\bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\bullet\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- By the induction hypothesis, there exist and \mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} such that \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}, in which case RC-InvkRecv or RC-InvkArg finishes the case, or all ’s are values , . Then, by T-New, for some values . By Lemma A.20, there exist , \mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}, \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} and C′** () such that \mbox{{mbody}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{x}}}{\mbox{\normalsize\tt{x}}}{\mbox{\scriptsize\tt{x}}}{\mbox{\tiny\tt{x}}}}\mathchoice{\mbox{\normalsize\tt{.e}}}{\mbox{\normalsize\tt{.e}}}{\mbox{\scriptsize\tt{.e}}}{\mbox{\tiny\tt{.e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\;\texttt{in}\;\mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} and the lengths of and are the same. Since \mathchoice{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\normalsize\tt{C{{}^{\prime}}}}}{\mbox{\scriptsize\tt{C{{}^{\prime}}}}}{\mbox{\tiny\tt{C{{}^{\prime}}}}}\neq\mathchoice{\mbox{\normalsize\tt{Object}}}{\mbox{\normalsize\tt{Object}}}{\mbox{\scriptsize\tt{Object}}}{\mbox{\tiny\tt{Object}}}, there exists D′** such that class C′* D*′* {...}. We have two subcases here depending on whether \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} is empty or not. We will show the case where \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}} is not empty; the other case is similar. Let \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}}}}=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}};\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}} for some \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}}{{}^{\prime}}}}}. Since , there exists such that \mathchoice{\mbox{\normalsize\tt{layer L}}}{\mbox{\normalsize\tt{layer L}}}{\mbox{\scriptsize\tt{layer L}}}{\mbox{\tiny\tt{layer L}}}_{0}\mathchoice{\mbox{\normalsize\tt{ \triangleleftL}}}{\mbox{\normalsize\tt{\triangleleftL}}}{\mbox{\scriptsize\tt{\triangleleftL}}}{\mbox{\tiny\tt{\triangleleft L}}}_{1}\mathchoice{\mbox{\normalsize\tt{ {\char 123\relax}...{\char 125\relax}}}}{\mbox{\normalsize\tt{ {\char 123\relax}...{\char 125\relax}}}}{\mbox{\scriptsize\tt{ {\char 123\relax}...{\char 125\relax}}}}{\mbox{\tiny\tt{ {\char 123\relax}...{\char 125\relax}}}}. Then, the expression
[TABLE]
is well defined (note that the lengths of and are equal). Then, by R-InvkP and R-Invk, \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}.
**Case T-New: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{new C(}}}{\mbox{\normalsize\tt{new C(}}}{\mbox{\scriptsize\tt{new C(}}}{\mbox{\tiny\tt{new C(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}&{\mbox{{fields}}}(\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{ }}}{\mbox{\normalsize\tt{ }}}{\mbox{\scriptsize\tt{ }}}{\mbox{\tiny\tt{ }}}\overline{\mathchoice{\mbox{\normalsize\tt{f}}}{\mbox{\normalsize\tt{f}}}{\mbox{\scriptsize\tt{f}}}{\mbox{\tiny\tt{f}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\bullet\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- By the induction hypothesis, either (1) are all values, in which case e is also a value; or (2) there exists and \mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} such that \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}, in which case RC-New finishes the case.*
**Case T-NewL: *** *
- Trivial.*
**Case T-With: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{with e}}}{\mbox{\normalsize\tt{with e}}}{\mbox{\scriptsize\tt{with e}}}{\mbox{\tiny\tt{with e}}}_{l}\mathchoice{\mbox{\normalsize\tt{ e}}}{\mbox{\normalsize\tt{ e}}}{\mbox{\scriptsize\tt{ e}}}{\mbox{\tiny\tt{ e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\bullet\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}&\bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\bullet\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}\\ \mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda&\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda\end{array} *
- By the induction hypothesis, either is not a value, in which case RC-WithArg finishes the case; or is a value, in which case R-WithVal finishes the case; or there exists \mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} such that \mbox{{with}}(\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}, in which case RC-With finishes the case (notice that , by Wf-With).*
**Case T-Swap: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{swap (e}}}{\mbox{\normalsize\tt{swap (e}}}{\mbox{\scriptsize\tt{swap (e}}}{\mbox{\tiny\tt{swap (e}}}_{l}\mathchoice{\mbox{\normalsize\tt{,L}}}{\mbox{\normalsize\tt{,L}}}{\mbox{\scriptsize\tt{,L}}}{\mbox{\tiny\tt{,L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{) e}}}{\mbox{\normalsize\tt{) e}}}{\mbox{\scriptsize\tt{) e}}}{\mbox{\tiny\tt{) e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\bullet\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{l}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\\ \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{ swappable}}}{\mbox{\normalsize\tt{ swappable}}}{\mbox{\scriptsize\tt{ swappable}}}{\mbox{\tiny\tt{ swappable}}}&\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{L req }}}{\mbox{\normalsize\tt{L req }}}{\mbox{\scriptsize\tt{L req }}}{\mbox{\tiny\tt{L req }}}\Lambda^{\prime}\\ \Lambda_{rm}=\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\setminus\{\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mid\mathchoice{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\normalsize\tt{L{{}^{\prime}}}}}{\mbox{\scriptsize\tt{L{{}^{\prime}}}}}{\mbox{\tiny\tt{L{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}&\Lambda_{rm}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\Lambda^{\prime}&\mathcal{L};\Lambda_{rm}\cup\{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}\};\Gamma\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\end{array} *
- By the induction hypothesis, either is not a value, in which case RC-SwapArg finishes the case; or is a value, in which case R-SwapVal finishes the case; or there exists \mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} such that \mbox{{swap}}(\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{{sw}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}, in which case RC-Swap finishes the case (notice that, by Wf-Swap, ).*
**Case T-InvkA: *** *
- Similar to the case for T-Invk.*
**Case T-InvkAL: *** \quad\begin{array}[t]{@{}l@{\qquad}l@{\qquad}l@{\qquad}l}\lx@intercol\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}=\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)<D}}}{\mbox{\normalsize\tt{)<D}}}{\mbox{\scriptsize\tt{)<D}}}{\mbox{\tiny\tt{)<D}}}_{0}\mathchoice{\mbox{\normalsize\tt{,L}}}{\mbox{\normalsize\tt{,L}}}{\mbox{\scriptsize\tt{,L}}}{\mbox{\tiny\tt{,L}}}_{1}\mathchoice{\mbox{\normalsize\tt{,(}}}{\mbox{\normalsize\tt{,(}}}{\mbox{\scriptsize\tt{,(}}}{\mbox{\tiny\tt{,(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{),}}}{\mbox{\normalsize\tt{),}}}{\mbox{\scriptsize\tt{),}}}{\mbox{\tiny\tt{),}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\normalsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\scriptsize\tt{{{}^{\prime}}>.m(}}}{\mbox{\tiny\tt{{{}^{\prime}}>.m(}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}\hfil\lx@intercol\\ \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\bullet\vdash\mathchoice{\mbox{\normalsize\tt{new C}}}{\mbox{\normalsize\tt{new C}}}{\mbox{\scriptsize\tt{new C}}}{\mbox{\tiny\tt{new C}}}_{0}\mathchoice{\mbox{\normalsize\tt{(}}}{\mbox{\normalsize\tt{(}}}{\mbox{\scriptsize\tt{(}}}{\mbox{\tiny\tt{(}}}\overline{\mathchoice{\mbox{\normalsize\tt{v}}}{\mbox{\normalsize\tt{v}}}{\mbox{\scriptsize\tt{v}}}{\mbox{\tiny\tt{v}}}}\mathchoice{\mbox{\normalsize\tt{)}}}{\mbox{\normalsize\tt{)}}}{\mbox{\scriptsize\tt{)}}}{\mbox{\tiny\tt{)}}}:\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}&\mathchoice{\mbox{\normalsize\tt{C}}}{\mbox{\normalsize\tt{C}}}{\mbox{\scriptsize\tt{C}}}{\mbox{\tiny\tt{C}}}_{0}\mathchoice{\mbox{\normalsize\tt{.m}}}{\mbox{\normalsize\tt{.m}}}{\mbox{\scriptsize\tt{.m}}}{\mbox{\tiny\tt{.m}}}\vdash\mathchoice{\mbox{\normalsize\tt{<D}}}{\mbox{\normalsize\tt{<D}}}{\mbox{\scriptsize\tt{<D}}}{\mbox{\tiny\tt{<D}}}_{0}\mathchoice{\mbox{\normalsize\tt{,L}}}{\mbox{\normalsize\tt{,L}}}{\mbox{\scriptsize\tt{,L}}}{\mbox{\tiny\tt{,L}}}_{1}\mathchoice{\mbox{\normalsize\tt{,(}}}{\mbox{\normalsize\tt{,(}}}{\mbox{\scriptsize\tt{,(}}}{\mbox{\tiny\tt{,(}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\normalsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\scriptsize\tt{{{}^{\prime}}{{}^{\prime}};L}}}{\mbox{\tiny\tt{{{}^{\prime}}{{}^{\prime}};L}}}_{0}\mathchoice{\mbox{\normalsize\tt{),}}}{\mbox{\normalsize\tt{),}}}{\mbox{\scriptsize\tt{),}}}{\mbox{\tiny\tt{),}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}> ok}}}{\mbox{\normalsize\tt{{{}^{\prime}}> ok}}}{\mbox{\scriptsize\tt{{{}^{\prime}}> ok}}}{\mbox{\tiny\tt{{{}^{\prime}}> ok}}}\\ \{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{sw}\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\}&\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}_{w}\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ {\mbox{{pmtype}}}(\mathchoice{\mbox{\normalsize\tt{m}}}{\mbox{\normalsize\tt{m}}}{\mbox{\scriptsize\tt{m}}}{\mbox{\tiny\tt{m}}},\mathchoice{\mbox{\normalsize\tt{D}}}{\mbox{\normalsize\tt{D}}}{\mbox{\scriptsize\tt{D}}}{\mbox{\tiny\tt{D}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}},\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{1}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}})=\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\normalsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\scriptsize\tt{{{}^{\prime}}\rightarrowT}}}{\mbox{\tiny\tt{{{}^{\prime}}\rightarrowT}}}_{0}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\\ \bullet;\{\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\};\bullet\vdash\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}:\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}&\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\end{array} *
- By the induction hypothesis, either (1) there exists and \mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} such that \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{i}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}, in which case RC-InvkArg finishes the case, or (2) all ’s are values . Then, by Lemma A.19, there exist , \mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}_{0}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} and () such that and the lengths of and \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}} are the same. Since \mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}_{2}\mathchoice{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\normalsize\tt{{{}^{\prime}}}}}{\mbox{\scriptsize\tt{{{}^{\prime}}}}}{\mbox{\tiny\tt{{{}^{\prime}}}}}\neq\mathchoice{\mbox{\normalsize\tt{Base}}}{\mbox{\normalsize\tt{Base}}}{\mbox{\scriptsize\tt{Base}}}{\mbox{\tiny\tt{Base}}}, there exists such that \mathchoice{\mbox{\normalsize\tt{layer L}}}{\mbox{\normalsize\tt{layer L}}}{\mbox{\scriptsize\tt{layer L}}}{\mbox{\tiny\tt{layer L}}}_{2}\mathchoice{\mbox{\normalsize\tt{ \triangleleftL}}}{\mbox{\normalsize\tt{\triangleleftL}}}{\mbox{\scriptsize\tt{\triangleleftL}}}{\mbox{\tiny\tt{\triangleleft L}}}_{3}\mathchoice{\mbox{\normalsize\tt{ {\char 123\relax}...{\char 125\relax}}}}{\mbox{\normalsize\tt{ {\char 123\relax}...{\char 125\relax}}}}{\mbox{\scriptsize\tt{ {\char 123\relax}...{\char 125\relax}}}}{\mbox{\tiny\tt{ {\char 123\relax}...{\char 125\relax}}}}.*
By Sanity Condition (8), is not Object and there exists such that \mathchoice{\mbox{\normalsize\tt{class D}}}{\mbox{\normalsize\tt{class D}}}{\mbox{\scriptsize\tt{class D}}}{\mbox{\tiny\tt{class D}}}_{0}\mathchoice{\mbox{\normalsize\tt{ \triangleleftE}}}{\mbox{\normalsize\tt{\triangleleftE}}}{\mbox{\scriptsize\tt{\triangleleftE}}}{\mbox{\tiny\tt{\triangleleft E}}}_{0}\mathchoice{\mbox{\normalsize\tt{ {\char 123\relax}...{\char 125\relax}}}}{\mbox{\normalsize\tt{ {\char 123\relax}...{\char 125\relax}}}}{\mbox{\scriptsize\tt{ {\char 123\relax}...{\char 125\relax}}}}{\mbox{\tiny\tt{ {\char 123\relax}...{\char 125\relax}}}}. Then, the expression
[TABLE]
is well defined (note that the lengths of and are equal). Then, by R-InvkSP, \mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\overline{\mathchoice{\mbox{\normalsize\tt{L}}}{\mbox{\normalsize\tt{L}}}{\mbox{\scriptsize\tt{L}}}{\mbox{\tiny\tt{L}}}}\mathchoice{\mbox{\normalsize\tt{}}}{\mbox{\normalsize\tt{}}}{\mbox{\scriptsize\tt{}}}{\mbox{\tiny\tt{}}}\vdash\mathchoice{\mbox{\normalsize\tt{e}}}{\mbox{\normalsize\tt{e}}}{\mbox{\scriptsize\tt{e}}}{\mbox{\tiny\tt{e}}}\longrightarrow\mathchoice{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\normalsize\tt{e{{}^{\prime}}}}}{\mbox{\scriptsize\tt{e{{}^{\prime}}}}}{\mbox{\tiny\tt{e{{}^{\prime}}}}}. \qed
Theorem A.3** (Type Soundness)**
If and e reduces to a normal form under the empty set of layers, then the normal form is for some and S such that \mathchoice{\mbox{\normalsize\tt{S}}}{\mbox{\normalsize\tt{S}}}{\mbox{\scriptsize\tt{S}}}{\mbox{\tiny\tt{S}}}\mathrel{\mathchoice{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\normalsize\tt{<!\raisebox{0.86108pt}{:}}}}{\mbox{\scriptsize\tt{<!\raisebox{0.60275pt}{:}}}}{\mbox{\tiny\tt{<!\raisebox{0.43054pt}{:}}}}}\mathchoice{\mbox{\normalsize\tt{T}}}{\mbox{\normalsize\tt{T}}}{\mbox{\scriptsize\tt{T}}}{\mbox{\tiny\tt{T}}}.
Proof 23
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1] T. Aotani, T. Kamina, and H. Masuhara. Featherweight Event CJ: a core calculus for a context-oriented language with event-based per-instance layer transition. In Proceedings of the 3rd International Workshop on Context-Oriented Programming . ACM, 2011.
- 2[2] M. Appeltauer, M. Haupt, and R. Hirschfeld. Layered method dispatch with invokedynamic: an implementation study. In Proceedings of the 2nd International Workshop on Context-Oriented Programming , page 4. ACM, 2010.
- 3[3] M. Appeltauer and R. Hirschfeld. The J Cop language specification: Version 1.0, April 2012 . Number 59. Universitätsverlag Potsdam, 2012.
- 4[4] M. Appeltauer, R. Hirschfeld, and J. Lincke. Declarative layer composition with the J Cop programming language. Journal of Object Technology , 12, 2013.
- 5[5] E. Bainomugisha, J. Vallejos, C. De Roover, A. Lombide Carreton, and W. De Meuter. Interruptible context-dependent executions: a fresh look at programming context-aware applications. In Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software , Onward! 2012, pages 67–84. ACM, 2012.
- 6[6] D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling step-wise refinement. Software Engineering, IEEE Transactions on , 30(6):355–371, 2004.
- 7[7] L. Bettini, V. Bono, and B. Venneri. Mo Mi: A Calculus for Mobile Mixins. Acta Informatica , 42(2-3):143 – 190, 2005.
- 8[8] L. Bettini, S. Capecchi, and F. Damiani. On flexible dynamic trait replacement for Java-like languages. Science of Computer Programming , 78(7):907–932, 2013.
