Naïve Logic and natural semantics

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.

Giving things names

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

Matching patterns

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.

Naïve Logic

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:

modus ponens
for any A, B: A and (A implies B) implies B.
False implies every statement
(ab falso quod libet)
every statement implies True
converse of the previous

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 sweet

Juliet, 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.

denotational definitions

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.]

implicit naming

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

An attempt proceeds as follows:

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.

Valid CSSValid HTML 4.01 Written by Eddy.