Miser Project Note N021001

Self-Reference in ‹ob›

Version 0.00  Last updated 2002-10-27-00:19 -0700 (pdt)

Self-reference is used to denote any situation in which someone or something refers to itself.  A recent conference [PhiLog2002] is devoted to the issue of self-reference in philosophy, mathematics and computer science.  The announcement of that conference triggered my thinking about this.

The theoretical foundation for Miser, the mathematical structure  ‹ob›, exhibits self-reference in a variety of ways.   There are two cases which are quite benign and not problematic in any apparent way.  

However, one can use the universal computational function of Miser to represent self-referential situations that are problematical.  We will identify and explore a particular example, after first disposing of those which, up to that point, appear completely benign.


Content

1. ‹ob› Manifest Self-Reference

2. ‹ob› Contextual References

3. Self-Reference Realized

4. Symbol-Miser Implications

5. Other Self-Reference Issues

6. References


1. ‹ob› Manifest Self-Reference

1.1 Prohibition of Cycles and Loops

1.2 Self-Reference Differentiates Ob Forms

2. ‹ob› Contextual References

3. Self-Reference Realized

An easy way to introduce self-reference is with regard to predicative sets.  That is, we will represent sets of Obs by functions that report whether or not a given Ob is a member of the set or not.

There is no particular difficulty with simple finite sets of Obs.  The null set is simply

set-null(x) = no

and the "universal" set is represented via

set-Ob(x) = yes 

A set of a single element would be something like

set-singleton(y) x = if x = y then yes else no

A set of several distinct Obs can be realized by

set-listing(L) x = is-member(x) L

where rec is-member(x) L 

... as defined already below.

The important thing here is that the sets are being realized by the functions set-null, set-Ob, set-singleton(y), set-listing(L), etc.

And at the Miser level, we don't have the functions, but their programs, and these programs are themselves Obs.

So long as we use programs for sets, then we have the following operations on such "sets," 

set-complement(A) x = if A(x) then no else yes;

set-union(A, B) x = if A(x) then yes else B(x);

set-intersection(A, B) x = if A(x) then B(x) else no;

and so on.  

This is a deficient characterization.  What is missing is any way to distinguish and identify sets.  

4. Symbol-Miser Implications

The oMiser system is devoid of symbols in any recognizable sense.  The accomplishment of reference, to the extent there is any, is that embodied in the ob.ev rules, namely in the companion function, oEvInt.

At the same time, we very much want to have something like symbols, elements that serve as free variables (and can be bound) and in particular that can be used in recursive definitions.  

This would permit oFugal expressions like

\closure \lambda.y \lambda.A \rec.is-member-y
      '( (A = \b A) (\no : 
                   (y = \a A)
                      (\yes : is-member-y \b A) ) )

an optimization of the standard member function,

rec is-member(y) A 
      = if A = ob.b A 
        then no
        else if y = ob.a A
             then yes else is-member(y) ob.b A;

In the normal approach in computer science, we need some construction that is usable as tags in oMiser.  This is strictly a human convenience.  That is, we want these to be uninterpreted symbols can be used in representation of symbolic expressions that are manipulated by Miser programs and that have some semblance to human-language symbolic expressions so that we can recognize what it is we are having be manipulated.

We can do this without having the tags denote anything, in much the way we have ob.proc not denote anything, in a denotational sense, but we can just have these all be fixed elements that are useful as markers.

Once we have tags, we can define ob.rec and ob.lambda by programs.  

That is, we can have functions on Obs with the intended interpretation of the domain being applicative expressions (relative to ob.ap or ob.ev) and the tags are construed as free variables in those expressions.  Then these functions can "bind" those free variables and in effect eliminate them.

The problem that tags give us is that any applicative interpretation (oApInt) for a tag can be an intended interpretation.  We want these to "really be" uninterpreted symbols.  This is not possible, even if we make oApInt of a tag be undefined.  It could then be used for that.
     There is more to think about here, in terms of what constitutes an uninterpreted symbol for oMiser, and what its nature is in ‹ob›.  This conversations needs to be taken to a separate note.  --dh:2002-10-26

5. Other Self-Reference Issues

Look at the standard self-reference situations and how they might have computational manifestations in Miser Systems.

"Actually, any theory that could be considered to be part of its own subject matter has some degree of self-referentiality. This applies to many theories of language, economy, sociology, psychology, etc. With respect to these theories an understanding of self-reference is essential to avoid performing unsound self-referential reasoning as in the paradoxes above." - From the [Philog2002] conference aims

See paradoxes, logical in The Oxford Companion to Philosophy.

See Mendelson's Introduction to Mathematical Logic for a run-down of logical paradoxes including Grelling's.

And see Principia Mathematica (p.60) for a rundown of the fundamental ones as considered by Whitehead and Russell.

There is then the question of self-referential sentences in the Gödel sense.  This is a bigger deal and we need to look at what we can say about that here.

6. References

[PhiLog2002]
The Danish Network for Philosophical Logic and Its Applications (PhiLog).  Self Reference Conference.  The Carlsberg Academy, Copenhagen.  October 31 - November 2, 2002.  http://www.philog.ruc.dk/phiconf2.html.  [archive]
   

Version 0.00: Initial Draft (orcmid)
Outline the basic situation and what it implies for self-reference in ‹ob› and oMiser/oFrugal.

created 2002-10-25-13:53 -0700 (pdt) by orcmid
$$Author: Orcmid $
$$Date: 04-01-06 13:03 $
$$Revision: 5 $

Home