typically specified via the collection of values of the type;
for instance, the type natural
is introduced in terms of the collection
{naturals}. This exploits the special handling I give to types in my
specification for denotations of formulaic
collections delimited with { and }.
A relation is a formal description of a predicate
involving two unresolved names (i.e. a two-name relationship), canonically
left and right. If (denotations for) values x and y are
substituted in place of the two names, x in place of left and y in place
of right, the predicate becomes a statement
: if this statement is
true, we say that the relation (describing the predicate) relates x to y
,
otherwise not.
In so far as a relation, r, relates some value, x, to some value, y, I
describe x as a left value
of r and y as a right value
of r.
Example: left is an ancestor of right
is a predicate of
the canonical form; if I am substituted for right and one of my (living)
ancestors is substituted for left, the statement is true; so the
associated relation relates each of my (living) ancestors to me. Everyone
(except Adam and Eve) is a right value of this relation: every parent is a left
value of it.
A
collection is a relation subsumed by the universal identity (: x←x :),
i.e. a relation which relates x to y only if x and y are the same value (and
typically subject to some further restriction on this value). A collection is
synonymous with (and encodes, as a relation) a predicate involving only one
unresolved name (a one-name relationship). If C is a collection
and relates x to x, then x is said to be in
C (as a special case of a
general reading of fixed points) and x is
described as a member of
C.
See {relations}, above. The template relation
relates left to right
matches a great many
sub-texts of what I've written: in each, relation denotes a relation
describing some two-name relationship, of which left and right
denote a left value and a right value, respectively.
See {mappings} above.