Brief intro. Mention: intertextuality, context
Presumptions:
we're discussing external entities, modelled by text
fragments of the text denote
external entities (values)
at least some of the entities specified by the theory may serve as values
Implicit model: the reader has a mental model of the external world and revises this model in response to the text as read.
formally, names are just texts denoting entities in the domain modelled
The association of a name with an entity is called binding
: the easy
form of binding is a statement in which the author announces a binding. More
sophisticated forms will follow.
Scope of bindings
Parsing; how we make sense of text. denotational templates/patterns matching a text to a template part 0: syntax part 1: semantics
implicit binding
It sometimes helps to describe the top-down pattern-matching process in
terms of a bottom-up process called evaluation
. Filtering by what values
may be used has to be modelled by failure
of evaluation; example f(x)
when (:f:{x}) is empty.
What follows is old and awaits vigorous pruning once I've extracted the re-usable parts. Eddy/2000/March/21.
I shall take it as read that you understand simple logical tools such as implies, not, and, or. I shall not, however (or, at least, I shall try not to) assume that not(not(A)) implies A. Here are some simple laws of logic – I'll add more as I notice them:
A and (A implies B)implies B.
Discarding the presumption that not
is self-inverse corresponds to
accepting that yes
and no
are not the only possible answers to
questions: questions to which neither of these is the answer are called
undecidable. If you ask such a question of a Zen master, I suppose you get
either the answer mu
or a whack on the head with a stick. Note, in
particular, that is A decidable ?
can be undecidable. Allowing questions
to be undecidable is a prerequisite of consistency, if we're to be able to
count, as Kurt Gödel proved.
I impose a semantic rule, under the slogan naming is arbitrary
. This
concerns a name introduced in a discourse and used, in the discourse, only to
refer to the meaning given by its introduction to the discourse – that is,
the name's meaning isn't derived from external context. Replacing a name
consistently throughout a discourse is deemed to have no effect on the meaning,
as long as the new name is not used elsewhere in the discourse to refer to
something else, of course. For these purposes, the discourse
can be
anything from a simple definition or formula to an entire treatise. In the
former case, one typically renames some dummy variable
in a formula; in
the latter case, I effectively assert that the concept of continuity
(say) would mean the same whether we call it continuity
or natural smoothness
or what you will. After all,
What's in a name ? that which we call a rose
By any other name would smell as sweetJuliet, in Romeo and Juliet, by William Shakespeare.
It is possible that this semantic rule may help resolve some issues of
equivalence between recursively-defined things. For instance, in a logical
system S, we define G(S) = Godel's fork for S = there is no proof, in S, of
G(S)
. Then any statement, H, in S, of form there is no proof, in S, of
H
is thus asserted to be equal to G(S): the only difference between the two
is their name, so they are the same entity. I'm not sure how to wield this
knife when it comes to dealing with mappings which accept themselves as input,
or in other lairs of the undecidable. [If C is some collection, of which A and
B aren't members, and A is C with one added element, A, while B is C with one
added element, B, are A and B the same thing ? I think
so. How about if A is C with one added
member, B, and B is C with one added member, A ? If we're given two such
collections but not told which is A and which B, we can't work out which is
which: but might A and B (thus entwined) still be distinct entities ?]
It is no surprise to me that the languages folk speak has internalized much
of naïve logic, and that the community of letters
has evolved ways
of using language that respect the logical
rules of civilized
discourse. This has meant that various of those rules which we now come to
discard are entrenched in our language – not in the words
(let
alone details of their spelling) so much as in the presumed equivalences of
meaning they introduce into the discourse. Various absolutes have gone this
century: indeed, the basic prerequisites everyone used to take for granted in a
logical system have proven inconsistent with one another. Consequently, a truly
formal foundation for mathematics has to work quite hard to use natural language
lightly enough to avoid falling into the errors endemic in the language; it
must, thus, introduce and rely on its own notation for manipulating
knowledge. However, I've not set my sights on a full re-founding of
mathematics: I just want a plaintext notation for doing the things that happen
in physics, which I intend to build on top of a presumed foundation, of which
I'll presume only those properties I need to assert in the course of building up
the tools I actually want.
Now the community of letters has coped, before, with changes of axioms in
the logic of its use of language, though typically only in localized
pockets. [For a larger case, consider the church coping with a universe
not centered
on the earth – or those who have trouble
with relativity
, even though it provides for an earth-centered view for
those who (like Sherlock Holmes) chose to use it.] So, while the purest
logicians beaver away at working out how to build acceptable ways to discuss
logic post-Gödel, the rest of us carry on using natural language to discuss
naïve logic and try to separate out the distinctions which will be needed
when folk come to translate the new logic into natural language.
The process of reasoning is concerned with how one may, beginning with some
trusted (or believed
) statements, discover some other statements to
trust. The aim of logic is to provide tools for conducting such deduction which
are independent
of what statements you chose to trust: ideally, two folk
who disagree upon some article of faith can, using logic, at least each work out
how the other's articles of faith lead to other matters on which they differ
– and, perhaps, help one to see that the other has, via garbled logic,
come to think some error follows from their faith when it does not.
If I wish to persuade my neighbour of something, I believe that my best chances lie with: start from statements my neighbour trusts; use forms of reasoning that my neighbour trusts; seek a path using the latter from the former to the subject of my persuasion – if that doesn't work, look for some more constructive topic to discuss. We can always come back to it if we see some common ground closer to it.
Now, logic need not presume that anyone's trust in any statement is
absolute: by way of doubt we leave open the door to revising what we trust in
the light of further evidence (or persuasion). Logic allows one to have
absolute trust, if one wishes: and can be viewed as discussing how absolutely
trusted statements relate to one another. Equally, one can use the same logical
processes as are called for in such a world of absolute truth to relate trusted
statements to one another, in general. Roughly speaking, insofar as one
trusts
some statements, one can use the logic of absolute truth to infer
guidance on how far to trust
related statements.
More generally, in conjunction with any means (e.g. the language of formal logic) by which one describes trustedness, one devises recipes for the trustworthiness of statements in terms of some presumed trustedness of some core collection of statements (the Axioms). Recipes used in this way constitute the logic of the relevant discourse, and on their good sense (in the eyes of the reader) that of the discourse is supposed to depend.
Logic and Reason have doubtless existed for a long time: long enough, by
now, that the common use of natural language
internalizes them, to
varying degrees (along with many beliefs, both ancient and modern) in the ways
that it treats certain meanings as equivalent – for instance, when several
meanings share one word, or their words are regarded as mere variants on one
another. To get themselves embedded in language, such assumptions typically
have to have been useful to folk for a fair while – and they can also
outlast that usefulness. In particular, there is no guarantee that those who
use the language trust these assumptions absolutely.
So students of logic have carefully, over many years, whittled down a small collection of straightforward statements that folk commonly do trust (if not absolutely then at least) well. These form a common ground which many folk will accept, thus empowering folk to, at the very least, explain to our neighbours how our various beliefs relate to one another: to distinguish, in particular, between what we take as articles of faith and which things we trust because we infer them from others; and to clarify how the latter depend on the former.
This, if nothing else, enables us to distinguish between: disagreeing with one another on our foundations, and; disagreeing because we have reasoned incompatibly. Examining carefully our reasons for proceeding from agreed foundations to some disagreement can help us out of the disagreement. Where our foundations disagree, however, we may learn much from the conclusions on which we agree – but where our differing foundations lead to disagreements, there is little point in examining the latter disagreement without being open about the former. In practice, of course, when we disagree with someone we do not start out knowing one another's foundations: so when someone explains their reasoning, attend both for actual disagreement on (possibly irrelevant) foundations (or ways of using words, for that matter) and failings of the reasoning; and be not so haughty as to forget that what sounds like nonsense to you may make perfect sense to another – and may well include a gem of wisdom, if only you can work out how to winkle it out. With patience and humility, each may glean, from the other, insights into how else we might apply reason to our own beliefs – which can, at times, lead us to changes in our foundations.
If logic is to be used by a great variety of folk, it must found itself on broadly general grounds: yet they must also be sufficiently specific that they imply plenty of things to anyone who accepts them, without problems arising from any ambiguity that may be present.
Various folk have devoted a lot of time and effort to devising highly
specific systems of reason possessing certain desirable
properties. I
view this as all very nice, and needed in the same sense that a computer user
needs there to be someone who has worked out how to etch silicon. What is
actually important to someone using a computer, though, is the tools and
facilities provided by or with the operating system they are using to control
the resulting silicon: and a decent toolwright tries to make tools which will
work on a wide range of varieties of silicon. Just so, good logical tools are
designed so that: a broad variety of different foundations can accommodate them,
and; they are of use in a broad variety of contexts.
Thus, in the following section, I give (in reasonably plain words) a rough sketch of what a general discourse is like. I use this as an opportunity to introduce terms by which I can subsequently refer to appropriate parts of a discourse. I also set forth a few simple presumptions about how these parts relate to one another. In principle, in so far as: you can match up the parts of some discourse to the terms I introduce in such a way that these presumptions hold true; I expect what follows to apply, when read in terms of that match-up, to the given discourse.
Returning to the analogy of designing software tools, this corresponds to describing a low-level tool-set, which I expect can be implemented on any reasonable chip-set, with certain simple but well-defined relationships within the tool-set, in preparation for explaining how to build, using only that tool-set and assuming only the given properties, a tool-set which is actually useful to the computer's user. In these terms, this page corresponds to a loose specification of some low-level tools.
Elsewhere, I'll build one tool from these, the
relation, whose character is substantially liberated from the details of
these basic tools: that is, the way relations relate to one another, and to
other things, will not depend on these details. I'll then build
a categorical
tool-set which expresses some
general structures, which do arise among relations (and, likewise, among various
other founding
notions I could have used
in their place): ultimately, it will be on these that I propose to base all
discussion of the real tool-set I want to use for physics. So, under the bonnet,
we have the relation, a notion expressible on a good variety of foundations (an
OS portable to many chip-sets), on which I build categories (a common software
context applicable to a variety of OSes on the same chip-set) using which I
construct mathematical tools for physicists (user applications). Well, that's
the goal, anyway ;^)
As the purpose of logic is to govern how a discourse
manipulates the
things it discusses, logic must be expressed in terms capable of addressing
these things. I suppose a discourse to consist of statements
, each of
which is given meaning
by a context
(the
statement's pre-context
) and that a statement may add information about
the contexts in which the discourse expects its various parts to be interpreted
– including (as, implicitly, in the case of this paragraph) the
statement's own pre-context. Thus a context can depend on a meaning which
depends on the context: while logic typically constrains how this may be done,
it need not forbid such recursive
definition – though a
discourse is at liberty to chose to use a logic which forbids
them.
I generally suppose a discourse
to be made up of portions, which I'll
call texts
, each of which is contiguous
– it consists of a
sequence of statements: a text might be a web page, an entry in a database of
definitions and theorems, or whatever. Within such a text, the context of a
statement will usually depend only on statements made earlier in that
text and on any (initial) context that the text is given by the discourse as a
whole, possibly via sub-discourses
to which the text belongs
. In
such situations, the pre-context of one statement is referred to equally as the
post-context of the previous statement (so each statement, with its pre-context,
is responsible
for the context used by its successor).
A text may include cross-references within itself and to other texts: these
are statements whose meanings, typically, take part of the context of the
cross-referenced text and make it accessible to some portion of the text
containing the cross-reference. This is, again, a potential source
of recursion
and may, again, be constrained by logic.
Just as a statement may add to a context, to be passed on to all subsequent
contexts within the given text, so also it may introduce things to the context
for some definite duration – if nothing else, one can treat a text as a
discourse and discuss it as, in its turn, a succession of (sub-) texts: a
statement in one of these sub-texts may reasonably affect only the remaining
contexts of its sub-text, without impinging on the context of the text as a
whole. Thus, for each fragment of meaning that is present in some of the
pre-contexts of statements within a text, I'll refer to the sub-texts or
statements in whose pre-contexts that fragment arises as
the reach of that fragment of meaning: I'll refer to the
fragment as being in reach
in each statement in the fragment's
scope.
I hope that was all sufficiently general to be boring. I'm sorry if that makes it unhelpfully abstract, but generality's like that.
I shall suppose that the relationship between statements and contexts can be expressed in terms of:
which: may be anything; may be combined in various ways to
produce more values; may be known
to a context, which may
provide names
and denotations
by which to refer to values. How
values are combined, or how a context binds
values to names is a matter
of the semantics defined by the context. I do assume that values support a
notion of sameness
so that I can ask, of two values, are they equal
?
; the answer to which must not depend on how I've named the values or on
what other comparisons I've previously performed.
The purpose of these foundations is to discuss what a discourse may do with
values (if once it has introduced any, by whatever means satisfy its criteria of
explanative adequacy) and I see no need to constrain your freedom to use the
tools I build to only such values
as I know how to characterize: the same
applies to much else in this discourse.
which are statements in the text in which a textual token,
called a name
, is given meaning as a value – so long as this
fragment of meaning remains in reach, use of that name in the text has the same
meaning as use of the given value. In general, where use of a fragment of text
in some context is to be understood as though some value appeared in its place,
the fragment of text is said to denote
the value: a naming contributes a
name as a denotation for some value.
I'll use the following tools to manipulate contexts in my own discourses.
which state a pattern in which a text may
combine fragments (statements, sub-texts, etc.), some of which may be special
fragments of text introduced in the definitions – which I'll refer to
as tokens. The other fragments must have meanings, on which
the denotational definition may impose constraints; and the definition may also
give meaning to the composite, which may then be deployed by subsequent
contexts. [e.g. with f as any sub-text which has, as its meaning, a
relation, and x as a sub-text which means a value, so long as f relates x to
precisely one value, the text f(x)
combines f, x and a pair of
tokens, (
and )
, to denote that one value.] In particular, a
denotational definition will usually give a value which is to be denoted by
fragments combined according to its pattern.
The use of denotational patterns involves decomposing a text into sub-texts
arranged according to the pattern: when the meanings of the non-token sub-texts
satisfy such constraints as the denotational definition may impose, the text
thus decomposed is said to match the given pattern. [Some
sentences in English match the pattern subject verb
object
. That claim, as a sentence, has Some sentences in
English
as its subject, match
as
its verb and the rest as
its object. The given pattern, as usually
interpreted, constrains subject
and object to be nouns (or clauses whose meaning
is an entity which a noun might denote) and
constrains verb to be a verb (or a clause with the
same kind of meaning). The meaning of a match to this pattern is
that subject did
whatever verb means
to object.]
My favourite way of introducing names is to have a denotational definition allow the non-token sub-texts to be names, or denotations deploying names, to which the ambient context gives no meaning. A match to the pattern then involves giving meaning to each of the names thus deployed within it: the match contributes these meanings to the pre-context of each sub-text, so that matching the sub-text to some denotational pattern may introduce constraints on these meanings. For the match to succeed, it must satisfy all these constraints.
There may be several matches of a given text to a pattern, or none: the denotation's meaning may be defined in terms of all matches, and the definition may impose some constraint on how the matches relate to one another. Some constraints may come from the definitions of denotations used in giving meaning to the assorted sub-texts; equally, some sub-texts (either of our primary text or of its sub-texts) may simply be statements, in plain words, to which the text's language gives meanings as constraints.
Where matching gives meaning to names, I'll sometimes say that
it binds
the meaning (typically a value) to
the name.
Describe any use of a name as an expression
: I'll
speak of name
as the parsing
of such an expression. Whenever a
text consists of expressions arranged, with some tokens, according to some
denotational definition's pattern, describe the text as an expression: I'll say
that it parses as
the given pattern, with
the given
sub-expressions' parsings in
and the tokens of some denotational definition, arranged in the denotation's
pattern,
A text given meaning by a denotation is
commonly called an expression
and said to stand for
the meaning
(typically a value) denoted by the text. The act of reading an expression is
commonly described in terms of evaluation
, a process in which the reader
notionally computes the value of the expression by evaluating its sub-texts, as
expressions, and combining their values in ways stipulated by the denotations
used in the expression.
Evaluation is, in principle, done once for each match. It may also,
notionally, be attempted
with some or all of the names introduced in the
expression bound to arbitrary values. An attempt presumes that there
In the course of an attempt, portions of the text are notionally replaced
by values to which they have evaluated
. An attempt starts
by
replacing names with values, either from context or from the binding: the names
are then said to have evaluated to these values. Whenever a denotational
pattern
At any stage during an attempt, a portion of our text is described
as evaluable
if
replacedby values (evaluated) and the tokens of some denotational pattern, arranged after the manner of that pattern.
An attempt proceeds
as
follows:
startby replacing each evaluable name with the value it denotes
for any sub-text consisting entirely of the
tokens of some denotational pattern
Those sub-texts in which all names are given meaning,
either by this binding or by ambient context,
sub-expressions whose values are well-defined
whose meaning breaks a constraint imposed on it by its context,
evaluation of the expression with that binding of names
if the values and tokens deployed in an expression don't satisfy the constraints
of any denotational definition (to which our context has given meaning),
evaluation of the expression (with the given binding of names to expressions) is
said to fail.
replacing
a sub-text with its value is what we do to an expression to
attempt to compute its value: this either fails or, succeeding,
produces its value. An expression containing a sub-expression, for whose
evaluation it calls, may perfectly legitimately stipulate if that succeeds,
my value is its; otherwise
and then give another expression to attempt to
evaluate; evaluation of the expression then succeeds if the sub-expression does,
but fails only if this fall-back evaluation also fails.
You can regard a discourse as an expression: as you read my words, in the context of all you understand, you evaluate the words to give their meanings and combine these meanings, according to common usage, to yield complex statements which you understand (well, I hope you will understand them ;^) and, thus, add to the given context, enabling you, as you read on, to interpret subsequent discourse.
Written by Eddy.