| < Free Open Study > |
|
PREFIX | USAGE |
---|---|
B- | big-step evaluation |
CT- | constraint typing |
E- | evaluation |
K- | kinding |
M- | matching |
P- | pattern typing |
Q- | type equivalence |
QR- | parallel reduction of types |
S- | subtyping |
SA- | algorithmic subtyping |
T- | typing |
TA- | algorithmic typing |
XA- | exposure |
The choice of metavariable names, numeric subscripts, and primes is guided throughout the book by the following principles:
In syntax definitions, the bare metavariable t is used for all terms, T for types, v for values, etc.
In typing rules, the main term (the one whose type is being calculated) is always called t, and its subterms are named t1, t2, etc. (Occasionally-e.g., in reduction rules-we need names for subterms of subterms; for these we use t11, t12, etc.)
In evaluation rules, the whole term being reduced is called t and the term it reduces to is t′.
The type of a term t is called T. (Similarly, the type of a subterm t1 is T1, etc.)
The same conventions are used when stating and proving theorems, except that t is sometimes replaced by s (and T by S or R, etc.) to avoid name clashes between definitions and theorems.
There are a few cases where these rules cannot all be satisfied at the same time. In such cases, the earlier ones are given priority. (For example, in the rule T-PROJ1 in Figure 11-5, rule 4 is relaxed: the type of the subterm t1 is T1 × T2.) The rules are ignored completely in a very small number of cases (for example, the record projection rule T-PROJ in Figure 11-7) where following them would yield unacceptably ugly or unreadable results.
| < Free Open Study > |
|