[FOM] Computer Scientists visa vie Mathematicians
Dennis E. Hamilton
dennis.hamilton at acm.org
Sun Jan 19 13:22:25 EST 2020
-----Original Message-----
From: fom-bounces at cs.nyu.edu <fom-bounces at cs.nyu.edu> On Behalf Of Patrik
Eklund
Sent: Saturday, January 18, 2020 01:37
To: Foundations of Mathematics <fom at cs.nyu.edu>
Cc: hmflogic at gmail.com; p.b.levy at cs.bham.ac.uk
Subject: Re: [FOM] Foundational Challenge
[ ... ]
> Computer scientists accept that the "elegant definition" of a lambda term
should not be modified, even if, when eventually dealing with substitution, it
leads to having "undesirable terms" which need to be handle by "renaming".
Computer scientists simply find ways to code one thing in terms of another.
"Free and bound variables" is an awful concept, since some symbols, in fact
the informal ones, possess a capacity to "bind", a notion which seemingly is
not describable in any language but the natural one.
[ ... ]
I find this attribution to computer scientists to be awkward. It strikes me
as a misunderstanding of the matter, the origin of which is not in computer
science at all.
The idea of scopes and whether occurrences of variables in a text are free or
bound is a syntactic/grammatical matter. It is easy to illustrate. I
hesitate to offer this to a mathematical audience where I expect it is already
recognizable. I do so to establish a shared context.
The TL;DR: All of this predates computer science. It goes back to the work of
Church and others. My first exposure, around 1961, was in the account of
[Rosenbloom, Paul C. The Elements of Mathematical Logic. Dover (New York:
1950). ISBN 0-486-60227-3 pbk.] The free-bound distinction is found in
[Church, Alonzo. The Calculi of Lambda-Conversion. Annals of Mathematical
Studies 6. Princeton University Press (Princeton NJ: 1941). ISBN
0-691-08394-0 pbk.]
AN ACCOUNT OF FREE, BOUND, AND BINDING
In the (applicative) expression f(z, g(z)) the symbols f, g, and z occur
"free." We say they are not bound to anything there. They may be bound to
something in a wider context but we don't know what. This idea of free and
bound is about the formula texts.
In the expression ?z.( f(z, g(z)) ) we say that f and g occur "free" and z is
bound, signifying any operand (?z.( f(z, g(z)) ) is applied to. We might
(informally) say z is bound to the ?z there. It is a harmless informality
that does leak some understanding of how that might be managed in the
operation of a computer program.
Similarly, ?g?z.( f(z, g(z)) ) has only f occurring free, and ?f?g?z.( f(z,
g(z)) ) has no free occurrences of (variable) symbols.
This is not particularly computer science, although computer scientists are
sometimes interested in this kind of situation in symbolic notations employed
in the expression of computational procedures.
The business about renaming arises if one engages in rewriting expressions by
making symbolic substitutions that involve free occurrences of symbols that
collide with the symbols that are bound in the place of substitution. For a
(contrived) example, if I wanted to inject ?n.f(n) with f occurring free in
place of g in my example, to have f still occur free I must do some renaming,
to something like
?h?z.( h(z, (?n.f(n)) (z)) ), and from there to ?h?z.( h(z, f(z)) ),
In computer science, these notions of free and bound (variables) are employed
more widely than expressions like this. Ultimately, in a computer program,
there are no free occurrences -- everything is bound, and we mean variable in
the sense of application to different operands (including input operations) or
alteration by change of state (such as altering an element of storage).
Application of different operands taken as functions (i.e., the procedures
that represent them computationally) is included, as for ?f and ?g in my
examples.
Generally, rewriting is not done although if I was editing expressions like
that, I would have to pay attention to collisions of already-bound and free
occurrences, just as in this message. In turning notations like this into
computer programs, rewriting is not a problem, lexical scoping (what the
free-bound rules are about) is extended to dynamic cases without difficulty in
various processing models. The tendency, at the next level inward, is to use
indirect addressing techniques to achieve/preserve binding without rewriting.
The mechanisms for this are quite marvelous. They are engineered in such a
way as to preserve mathematical assurances to the extent that can be done with
engineered artifacts (i.e., to within contingent reality).
- Dennis
More information about the FOM
mailing list