Pragmatically, I find that relations are a good place to start. Now, I pause to examine the alternatives that naturally suggest themselves, and try not to fall into the trap of post hoc justification.
I have chosen to work from relations. One may formalise a relation as a
predicate with two free variables (do I relate this to
that ?), a collection as a
predicate with one free variable (is
this a member of me ?) and, indeed, a statement as a
no free variables. Going the other way, we can intelligibly consider
multi-relations of form
do I relate this, then that,
to some other ? (a predicate with three free variables) and so on.
Why settle on two ?
The answer has two parts:
These are both implementation truths. On the one hand, the customer
(Physics) needs certain tools, among which mappings predominate; when described
as predicates, mappings are a variety of 2-relation (ie what's normally
called a relation - a mapping never relates any given
input to more than
output). On the other, the implementor finds that one can do
anything with the variety of relation required by the customer; a relation whose
values are all fixed points models a collection, by constraining input = output
on a mapping and only leaving the question
do I relate this to
itself as a model for
is this a member of me ?; likewise, a
relation whose final values are relations models a 3-relation using
relate this to something which relates that to some
other ?; inductively, one can likewise model arbitrary
[relations whose final values are ...]
One may equally formalise a multi-relation, generally, as a mapping which
takes values and yield a
truth value which says whether the
says yes to that sequence of values. I find this more
intelligible when expressed as a mapping which takes a list of values
and returns a
truth value; with Haskell B. Curie, I find I prefer the
mapping idiom to work on a basis which views f(a, b, c) as mentioning a
function, f, which accepts some value, a, as an
input and yields a
result, f(a), which is, likewise, a function accepting b to yield f(a,b), which
in its turn accepts c to yield the value f(a, b, c), which might not be a
function; f(a, b, c) = ((f(a))(b))(c), though I can refine this via the
denotational form which admits f(a, ..., w) whenever: f relates a to some ...
relation which relates w to some F and there is only one F for which this is
true. Example: f(a,b) will make sense if f relates a to various relations, but
there is exactly one value to which any of these relates b; illustrate ?
One must chose whether to formalise a multi-relation (or, indeed, a function of many arguments) as such or as a mapping whose input is a list of values. I find this discipline more helpful than inconvenient: the two are functionally equivalent, so it seldom hurts overly to be wrong - and such errors are easy to correct, - but discovering which idiom describes each case best reveals much about each case.
In any case, one must have 2-relations as the style of
which yields a mapping; which physics wants; and 2-relations provide a natural
implementation of arbitrary multi-relations, including collections and
statements; so it suffices to use only what we must have.