Chapter 19

Tuple / Relation Maximaland Minimal Typesetc.

Nothing at all takes place in the universe in which some rule of the maximum or minimum does not appear.

—Leonhard Euler: Methodus Inveniendi Lineas Curvas (1744)

The previous chapter mentioned T_alpha and T_omega several times. Both are generic names; they denote the maximal type and the minimal type, respectively, with respect to some specified type T, or in other words the least upper bound and the greatest lower bound, respectively, with respect to the type lattice to which that type T belongs. If T is scalar, of course, those “T_” prefixes can be dropped, since all scalar types belong to the same type lattice and there’s exactly one maximal and exactly one minimal scalar type: viz., alpha and omega, respectively. Alpha and omega were discussed under IM Prescription 20 in Chapter 12; the tuple / relation counterpart to that prescription is IM Prescription 25, which—along with IM Prescription 26, to which it’s closely related—is the principal topic of the present chapter.


Let T, T_alpha, and T_omega be all tuple types or all relation types, with headings

{ <A1,T1>       , <A2,T2>       , ... , <An,Tn>       }{ <A1,T1_alpha> , <A2,T2_alpha> , ... , <An,Tn_alpha> }{ <A1,T1_omega> , <A2,T2_omega> , ... , <An,Tn_omega> }

respectively. Then (a) type T_alpha shall be the maximal type with respect to type T if and only if, for all j (j = 1, 2, ..., n), type Tj_alpha ...

Get Type Inheritance and Relational Theory now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.