Logic, Computation and Philosohy
Version 0.008 2024-01-12
Version 0.007 2020-03-31
Version 0.006 2019-06-06
Version 0.001 2014-03-19
- Editors:
- Richard Weyhrauch (IBUKI)
Note:
This is an internal IBUKI document and not available for general
distribution. The information in this document (and its companion documents)
is the confidential proprietary property of IBUKI. It contains trade secret,
published and unpublished components. These documents and the IBUKI
systems (appearing under various names) has been developed over a
substantial period of time at IBUKI's expense.
Introduction
This note outlines the basic ideas of logic, computation and philosophy
that I have found useful in my understanding of 'how thought can
happen' without reference to what is being thought about. It is not
an expositition or review of history, but, contains my interpetation of
existing notions. It is wide reaching and I take responsibility for any
misrepresentation of anyone's ideas. The observations here my take on
various notions as they apply to my thoughts on 'the building of mind'
and what I now call AI agents.
My goal is very general. I want to build an AI agent out of physical
hardware including computers. Thus the 'mind' of my 'thinker/AI agent'
must also be builtable out some combination of physical devices and
structures that can be made in the memory of computer. My starting point
is the notion of a formal system and the analysis of how formal systems
have been used by logicians to explain thought.
I start with logic because I believe that the analysis of logicians of
how and why formal systems are the good tools for describing understanding
is compelling and has been under appreciated by AI researchers. As a result
opportunity to leverage that work has largely been lost. That being said,
the methods of logicians fall short (for my purposes) in at least two ways:
the logicians tools for explaination is limited to text and the technical
success of set theory and its reliance on infinite sets to explain 'meaning'
has largely had the effect of overrunning other altrnatives.
-------------------------------------------------------------------------------
I full well know that 'category theory' has many adherents as an alternative
to set theory, but my remarks below will be equally applicably to these
theories as my ideas will suggest scrapping the notion of 'theory' itself.
-------------------------------------------------------------------------------
In the first section we list the relavant first order notions of
logic. We restrict ourselves to first order notions because: 1) they are
necessary; and, 2) perhaps less obviously, with careful formulation we
believe that they are all that's needed (i.e., they're sufficient).
The second section deals with how the logical notions enumerated in part
one can be reinterpreted in light of my goals and my understanding of modern
computers. This is not to ignore the notions of logic, but to ask how the
results of logicians, like Skolem or Hilbert or Gödel, should be seen
now that actual computers are commonplace and we know how they work not just
theories about computability, i.e., recursion theory. For the most part, the
logicians notion of theory and computation predate the existence of modern
computers and the ideas of programming languages. My goal is to build an AI
agent. Section two inroduces my ideas about how to interpret and use the
notions of logic with computational and information centric ideas. The most
radical result of this work is a view of 'thought' that lies somewhere
between nominalism and ultra-finitistism and whose foundation is information
and computation not set theory.
Section two reviews some notions of computation. Because the understanding
of both the proof theories and the model theories of traditional logic
are grounde in an understanding of the infinite sets the goal here is to show
how these abstract ad infinitary ideas can be rethought to be realizable as
'data' in the 'head' of an AI agent.
Many issues discussed by philosophers center on questions of how our
understanding of the world works. These are the same issues that will
confront an AI agent. Section three explains how these issues inform me
about how an understanding of the 'real' world can be developed at all.
This is followed by a bibliography of both introductory and advanced
reading.
Logic: First Order Notions
The notions of logic described in this section are basic ideas of logic
taught in an introductory course that describes first order logic and its
semantics. It is these notions that we intend rethink using finitist
information theoretic ideas in a system called NEWFOL.
The Notion of a Theory
The notion of theory usually refers to a set of formulas that are closed
under deduction, i.e., 'deductively closed'. To make sense of this description
we need to also understand several other notions. The notion of a 'language',
specified a collection of symbols and which expresssions, built using these
symbols are well-formed, i.e., well-formed formulas or [wff]s. The notion of
a 'model' that decribes a non-empty collection of objects that the theory is
about; an 'interpretation' which assigns members of a model to the symbols
of a language. An interpretation, i.e., a map between the symbols of a
language and a model that asssigns a truth value to each [wff].
theory, satisfiable, consistent, consequence, validity
A wff is true in a model if its interpretation is true (in the model)
A wff is 'satisfiable' if this exists a model in which it is true
A wff is 'valid' if it is true in all models (eg (implies A A)
A collection of wffs is 'consistent' if there is at least one model in which
all its formulas are true
The semantic notion of 'consequence' is
A wff 'is a consequence of' a collection of wffs, WFFS
if whenever all the wffs in WFFS are true in a model then so is wff
A 'rule of inference' is a map from collections of wffs to a wff
(or in some formulations collections of wffs) where, if all the
arguments of the map are true in a model then so is the wff.
A 'valid rule of inference' is a rule that has the property that it maps
collections of valid wffs onto a valid wff.
A set of 'rules of inference is called 'complete' if all valid wffs are
the consequence if some collection of valid ri=ules of inference.
The Notion of a First Order Language
Symbols
One way of defining a first order language is to specify a finite
collection of individual symbols, function symbols, relation symbols; and
appropriately constants and parameters for each. The language may also contain
variable symbols ranging over individuals, but it is first order
because there are no variable symbols ranging over functions or relations.
Terms and Wffs
First order logic defines two kinds of expressions: terms, [trm]s,
for naming objects and well formed formulas, [wff]s, for describing
sentences about those objects. [wff]s and [trm]s are syntactic objects, i.e.,
[text].
The definition [trm] and [wff] can be defined uniformly in a First order
language which specifies a finite number of individual symbols,
function symbols, relation symbols; constants, variables, and parameters. The
logical symbols (like 'and' and 'or') are common to all NEWFOL contexts.
Logicians have described various algorithms for determining if an
expression is a [wff] or a [trm]. We call programs that implement
algorithms that tell if a data structure is of a particular [sort] a
recognizer. Even though we have such a recognizer (which, as a
program, is itself a finite thing) and even though the collection of
symbols in the language is finite, the collections of 'recognizable'
[trm]s and [wff]s is unbounded.
Summary
NEWFOL writes them using s-expressions, [sexp]s, a la LISP
and use their associated data structures (called m-expressions in Lisp 1.5)
when building computer systems.
In
the following when we use the word language we mean the first order
language of some NEWFOL [context].
Finitization
The collection of examples of [wff]s in a NEWFOL language is 'infinite'
BUT we replace this 'set' (in the context Meta) by a [sort] predicate,
WFF?, and attach it to a program (implementing the logicians algorithm)
that takes an [object] and returns True or False depending
if the [object] is a [wff] or not. This algorithm is 'uniform' in the
[fol-language]. By definition, [fol-language]s only contain a finite
number of symbols an the language of NEWFOL is finitely determined by
a finite collection of [symbol]s and a finite collection of recognizers.
For example, in the NEWFOL [context] Meta we attach the SEUS program
#'WFF?, the recognizer for [wff]s, to the [sortsym] WFF?. #'WFF?
implements a primitive recursive function
We implement a NEWFOL language as a finite collection of [symbol]s and,
as described above, a collection of recognizers (programs) that take
as arguments an object (a data structure) and a NEWFOL language (ie
another finite structure) that determine the [sort] of the object.
Since all our [object]s are IBML types the existence of such a program
is guaranteed by the semantics of the IBML type system.
The idea of a recognizer is a program that tells you (for any [object])
if it is 'recognized' to be of a particular type. In the implementation
of NEWFOL recognizers will be written in SEUS (implemented as a
restartable computation system) and by convention: if [name] is a
[type-name] then: |name| is a lexical (term as spoken not logical)
expression; '[name]' is the symbol that names the type in any NEWFOL
[context] mentioning it; 'NAME?' is the [sortsym] that name's the
recognizer of that [sort]. Like LISP use #'name as the read/print
name for the recognizer in SEUS, which is the attachment of the
[sortsym] NAME? '[name]' gets attached to the type tree for the
type and NAME? is attached to #'NAME.
This is actually simple in practice but probably needs an example to
be better understood.
The strategy here, to reformulate the ideas of logic as finite structures
is one of the important techniques used to remove the infinitary aspects of
reasoning systems. This idea has its origin in Skolem's interpretation of
arithmetic in the 1928 paper where he informally uses the idea of recognizer
rather than set.
In the NEWFOL system we extend the usual language of first logic by
introducing a subset of predicate symbols called [sort]s. Each [sortsym]
in the language is a predicate symbol with one argument that is used to
name the predicate that reconizes things of that [sort]. We also allow
the use of individual variable and parameter symbols whose domain is
restricted to only include [object]s of that [sort]. In order to assure
that the semantics remain first order and that the 'relatativised'
quanterfier rules are sound we require that there is at least on thing
of that [sort]. This corresponds to the fact that in normal semantics of
first order theories, the domain of a model must be non-empty. This means
that the declaration of a [sort] in NEWFOL requires that
(exists x (SORT? x))
is a consequence of the context.
Since all [object]s in a NEWFOL simulation structures are IBML types,
each [sort] corresponds to a type and the recognizer for that type is the
natural attachment to its [sortsym]. By convention: if we have a type named
[name] then its crresponding [sortsym] is NAME? and its recognizer is
DEFLAMed to be NAME? and any FOL context that has 'NAME?' in its language
has the program #'NAME? attached to it.
Since the interpretation of a [sort] is a [type] the partial order on
[sort]s must correlate with the subtype relation on [type]. So we have
(implies
(and (more-general s1 s2) (isin t1 s1) (isin t2 s2))
(subtype (attachment-of t1) (attachment-of t2))
in the elementary theory of some context.
The Notion of Model
Model. A collection of things usually defined in 'set theory.
Finitization
Simulation structure
where 'individual constants are also attached to functions
allowing us to define boundaries, sensors and effectors
Logical notion
Interpretation of a formula in a model
Finitization
A program for evaluating an expression WRT a simulation structure
Since programs are restartable and simulation structures do no always know
the answers we alter the interpretation 'function' of logic to be a
restartable computation where we introduce the value IDK (I don't know)
which is returned whenever 1) the computation is not DONE? or 2) if the
simulation structure simply 'doesn't know'. In fact, in a context without
any attachments (i.e., having the 'empty' simulation structure) the
interpreter will always return IDK, so a term always has an interpretation
in a context, but it may be 'I don't know'!!! a formalization of ignorance
(problematic for philosophy) ditto for wffs. It may seem at first that IDK
introduces a third truth value. Our interpretatoion is rather different. We
imagine that all terms have values and all wffs are either True or False BUT
in some contexts (with limited computing resources) we may not be able to
tell. In fact interpretation could produce IDK sometimes and a value others.
A property of contexts without hardware attachments, however, is that if
it ever returns a value that is not IDK the it must always return this value.
This 'partialness' is a unique property of NEWFOL.
SIMPLIFY is a very cleaver operation in FOL. It is called SIMPLIFY because if
you give it an expression in a context it tries to return a 'simpler'
expression. Of course simplicity is in the eye of the beholder but in simple
cases it means replacing terms with constants and producing propositionally
simpler wffs if it can. eg
3+4 ==> 7 or
2<3 ==> true (with their standard meanings in arithmetic)
In the wristwatch case if we asked it "What time is it?" after we declared the
symbol 'now' but before we did the Hardware attachment SIMPLIFY would have
returned the wff "now = now" meaning that it didn't really have a meaning of
'now' so that was the best it could do. I gave the result after making
the attachment (with the correct reptype) so it not only could find an answer
but also could say the answer in the language of the context. This is a subtle
point. When we ask for the value of 'now' in the SS (simulation structure) it
could correctly have computed its value, but the language may not have had a
name for it. In the case of numbers this is additionally confusing because we
generally use '6' both for mentioning the number 6 and the numeral |6|. For
integers FOL knew about this and if a number was returned as the value of an
attachment and the context 'knew about' arithmetic the if it already had (in
its language) a numeral for this number it used it and if it didn't it
silently made one and used that!!!! If we used roman numerals so our context
used |vi| to 'name' the number 6 it might be less confusing but less 'normal'.
The use of the same 'word' in natural language to mention an object and its
name has confused linguists and AI persons. Here we win because in our mental
model of arithmetic numerals are part of the language and numbers are in the
SS. Since we separate the mental images of our thinker from the sentences it
would use to describe its mental images we can have our cake and eat it too!!!
I daon't think anyone else does this
Logical notion:
Theory. satisfiable consistent, consequence, validity
A wff is true in a model if its interpretation is true (in the model)
A wff is 'satisfiable' if this exists a model in which it is true
A wff is 'valid' if it is true in all models (eg (implies A A)
A collection of wffs is 'consistent' if there is at least one model in which
all its formulas are true
The semantic notion of 'consequence' is
A wff 'is a consequence of' a collection of wffs, WFFS
if whenever all the wffs in WFFS are true in a model then so is wff
A 'rule of inference' is a map from collections of wffs to a wff
(or in some formulations collections of wffs) where, if all the
arguments of the map are true in a model then so is the wff.
A 'valid rule of inference' is a rule that has the property that it maps
collections of valid wffs onto a valid wff.
A set of 'rules of inference is called 'complete' if all valid wffs are
the consequence if some collection of valid ri=ules of inference.
Finitazation
An FOL context is the finite realization of a theory
Logical notion
consequence, rule of inference - validity and satisfaction
Finitization
FOL a rule of inference is a satisfaction preserving operation on
[fol-context]s
Computation
Side effects - IO
state
error hndling
restartable
resource bounded
m-expressions VS s-expressions
or programs vs data
programs as data
Interactive Computing
Building structure - updating
'pointers' - sharing vs not
interning
Computation Systems
Philospphy
Universals
Catagories
- Plato
- Martius Cappella
- St.Augystine - Boethius
- Oakham - nominalism
- Hamilton
- Frege
- Russell
- Skolem
- Godel
References - Compution
Turing
Kleene
Landin
Scheme
RUM
computation systems
References - Philosophy
Aristotle
St. Augustine
Bothius
References - Logic
Aristotle
Frege
Skolem
Prawitz
IM
Sorts
- Skolem
- Nelson/Hook
- Fausto
FOL
- Manual 1
- Manual II
- Prolegamina
Lite Readings
Introductory
JvH (where is it)
NWEFOL
NEWFOL - logic
NEWFOL - implenentetion
EXAMPLES
Wristwatch
IAC
...
|