[comp.theory] A set F of functions from F to F ??

johnson@charming.nrtc.northrop.com (Greg Johnson <gjohnson>) (01/23/91)

In `usual' set theory (that which is relied on in standard texts such as Rudin
and Munkres) is it possible to have a set which contains itself as a member?
Or does usual set theory (ZF for instance) preclude such a thing?

Here is an attempt to write a set containing itself:

  { { { ... } } }

The above `set' has a single element, which is equal to the set itself.  This
is by way of analogy with the following infinite tree, which is equal to some
of its (proper) subtrees:

      o
     /|\
    / | \
   (  o  )
     /|\
    / | \
   (  o  )
     /|\
    / | \
   (  o  )
      .
      .
      .

Another question, a variant of the above:  Is it possible to have a set
F of functions whose domain and range are F?  As a small example, F might
contain two functions f1 and f2, where f1 is the identity and f2 is a constant
function.  (Notice that F is not its own function space, which would be
impossible; F is a subset of its function space.)

Thinking of a function as a set of ordered pairs and using the usual trick to
encode ordered pairs as sets ( <1,2> = { {1}, {1,2} }, <3,3> = { {3} } ),
this `set' would correspond to the following infinite tree, where `f1' and
`f2' are copies of the left and right subtrees of the root:

             o
           /    \
         /        \
       /            \
      o               o
     / \             / \
    /   \           o   o
   o     o        /   \  \
   |     |       /     \  \
   o     o      o       o  o
   |     |      |      / \  \
   f1    f2     f1   f1  f2  f2


The function f1 is (as a set)   {  <f1,f1>, <f2,f2> }
The function f2 is              {  <f1,f2>, <f2,f2> }

Thanks for any answers -

Greg Johnson

p.s. - Please send responses to me, since I don't always read these groups.

mjd@saul.cis.upenn.edu (Mr. Prolific) (01/23/91)

In article <16470@gremlin.nrtc.northrop.com> johnson@charming.nrtc.northrop.com (Greg Johnson <gjohnson>) writes:

>   In `usual' set theory (that which is relied on in
>   standard texts such as Rudin and Munkres) is it possible
>   to have a set which contains itself as a member?  Or
>   does usual set theory (ZF for instance) preclude such a
>   thing?

	Although you're perfectly free to develop any theory
of sets you like, the usual ones don't have any such sets.
We might restrict our models with an axiom like this one:

Foo:	For any non-null set X, there is a member Y in X,
	such that X and Y are disjoint.

	From this, we can show that there is no set which is
an element of itself, at least in the usual models.

	Here's the proof, which is simpler than it looks,
because I wrote it out in hideous detail:

	1. Suppose there were such a set, say Z, with Z an
element of Z.

	2. Then by another theorem we would like to have
shown from other axioms, {Z} is a set.  

	3.  `Foo' says that there is an element Y in {Z},
such that Y is disjoint from {Z}.

	4.  The only element of {Z} is Z, so the Y of step 3
must be equal to Z.

	5.  Since Y is disjoint from {Z} (Step 3.) and Y=Z
(Step 4.) then Z is disjoint from {Z}.   

	6.  Since Z is an element of Z (Step 1.) and of {Z}
(Definition of `{Z}' in any reasonable theory), Z and {Z}
are not disjoint.

	7.  Steps 5 and 6 contradict each other, so the
supposition of step 1 is false and no set is an element of
itself.  

	So in `the usual theory' there are no sets that are
elements of themselves.  (Step 2 follows from the fact that
I'm only talking about `the usual theory'; any reasonable
and usual theory of sets will have as a theorem that {X} is
a set when X is.  For more details, see the appendix of John
Kelley, _General Topology_.)

	The `foo' axiom above turns out to be pretty strong; once
you have the induction axiom in place, you can use `foo' to
prove no only that no set is an element of itself, but also
that

	1) There's no collection of sets {X1, X2, X3 ... Xn} 
with X1 an element of X2, X2 an element of X3, ... , and
Xn an element of X1.

	2) There's no sequence of sets {X1, X2, X3 ...} with
X1 an element of X2, X2 an element of X3, ...

	In particular, (1) precludes having a `set' of
functions like the one you describe.  

	A pretty good reference for this stuff is the
appendix to John Kelley's _General Topology_; that's where I
cribbed most of this posting from.

>   Here is an attempt to write a set containing itself:
>     { { { ... } } }
>   The above `set' has a single element, which is equal to the set itself. 

	Like I said, you can make up whatever you like, but
it seems to me that confusing inkmarks on paper with sets is
only going to get you confused in the long run.  Ink marks
on paper are not sets and you can't reason about them.  An
axiomatic system is supposed to describe in operational
terms exactly what you can and can't do with a set, and what
things are sets and what aren't.  That is why we use
axiomatic systems instead of waving our hands over little
squiggles like `{'.  

	You could of course make up axioms for little
squiggles and show that there is a natural isomorphism
between squiggles and sets, but if you were going to do all
that work anyway then why did you need the squiggles in the
first place?

> Thanks for any answers -
> Greg Johnson

Sure 'nuff.

> p.s. - Please send responses to me, since I don't always read these groups.

Tough luck!
--

	  Behold the riant anthropoid, beware its crooked thumbs!
Mark-Jason Dominus 	  			    mjd@central.cis.upenn.edu 

hensm@csc2.essex.ac.uk (Henson M C) (01/23/91)

 In ZF one has the axiom of foundation which rules out sets which have
 themselves as members. Levy's text [Springer Perspectives in Mathematical
 logic series: "Basic Set Theory" ] is a good presentation.

 In intuitionistic set theories like IZF this axiom gets replaced by
 epsilon-induction which is classically equivalent to foundation. This
 is done because foundation implies excluded middle which is not universally
 valid in intuitionistic theories. Beeson's text ["Foundations of Constructive
 Mathematics", Springer] is a good presentation.

 Peter Aczel has written a book on non-well founded sets which is very nice
 and published in the CLSI monograph series.

moss@cs.umass.edu (Eliot Moss) (01/24/91)

In the theory of semantics of programming languages work has been done on
domain equations such as F = F -> F and there are indeed useful solutions.
However, rather than F -> F being the set of ALL functions from F to F, it is
the set of all CONTINUOUS functions from F to F. Further, the domains are
lattices (or sometimes complete partial orders). A lattice is a set with a
partial order (usually written with a square version of the mathematical
less-than-or-equal symbol) such that every pair of elements has a unique least
upper bound and greatest lower bound, and every chain x1 <= x2 <= ..., finite
or infinite, has a unique limit (and likewise for the other direction).
Continuity is defined in terms of the ordering; a function G is continuous
provided whenever x <= y, G(x) <= G(y), which implies that as arguments go to
limits so do continuous function results.

Well, it turns out that the cardinality of the set of CONTINUOUS functions on
a domain D is not a higher order of infinity than D, so it is possible to
develop mappings between D and D -> D such that elements of D represent
continuous functions D -> D. Dana Scott proved this some years ago using what
is called the inverse limit construction. My understanding is that category
theoretic work follows in the same general vein.

Someone else (Joe Stoy?) developed a specific example called the P(w) (power
set of omega, i.e., the set of sets of natural numbers) construction, which
goes as follows. What we want is a way to represent a CONTINUOUS function from
P(w) to P(w) as an ELEMENT of P(w), i.e., as a set of integers. Well, for a
continuous function we need know only what it does to FINITE sets of integers,
since what it does on an infinite set is determined as the limit of its
operation on a chain of finite sets building up to the infinite set. (The
lattice ordering here is the ordinary set containment relation.) Somehow (I
don't recall) the functions are restricted to finite set results on finite set
arguments. Given that, we can think of the function as a set of pairs
{(x1,y1), (x2,y2), ...} where each xi and yi is a finite set of integers (a
finite element of P(w)). Since the number of FINITE sets of integers is
countable, the set repsenting the function is countable. Now the final trick:
use some unique encoding of finite sets of integers into integers (Godel
numbering, say) to encode the function as {(x1',y1'),(x2'y2'),...} where xi'
is the integer encoding of the set of integers xi. Now encode each pair of
integers (xi',yi') as a single integer zi using a unique encoding of paris of
intgers to integers. Encode the function as {z1,z2,...} which is an element of
P(w). In this way (certain) elements of P(w) can be understood to represent
continuous functions from P(w) to P(w). Note how crucial the continuity
property is: without it the set of pairs describing the function would not be
countable and the elements of the pairs not always encodable as integers.

Hope this adds to your understanding of the interesting aspects of functional
domains.

--

		J. Eliot B. Moss, Assistant Professor
		Department of Computer and Information Science
		Lederle Graduate Research Center
		University of Massachusetts
		Amherst, MA  01003
		(413) 545-4206, 545-1249 (fax); Moss@cs.umass.edu

hensm@csc2.essex.ac.uk (Henson M C) (01/25/91)

Newsgroups: comp.theory
Subject: Re: A set F of functions from F to F ??
Summary: Domain Theory 
Expires: 
References: <16470@gremlin.nrtc.northrop.com> <RAR.91Jan23010514@saturn.ads.com>
Sender: 
Reply-To: hensm@essex.ac.uk (Henson M C)
Followup-To: 
Distribution: 
Organization: University of Essex, Colchester, UK
Keywords: 

In ZF it is possible to solve equations like D = D->D up to isomorphism.
You need to impose conditions on the sets (various partial orderings work)
and restrict the function space in some way (continuous wrt ordering).
This is elementary domain theory and Dana Scott was reponsible for
starting it in about 1970. Spaces like D are needed in order to provide a
compositional semantics for the lambda calculus. 

The key is of course that the function space is so restricted. In general
the set D->D always has strictly greater cardinality to D unless D has fewer
than 2 elements. 

See the following: 

Barendregt, H., The lambda calculus, North Holland, 1984.
Schmidt, D., Denotational semantics, Allyn and Bacon, 1986.
Scott, D.,  Domains for denotational semantics, LNCS 140, Springer, 1982.

The categorical remark is misleading : the questioner requires a bijection
at the very least between elements of D and some set of functions from D to
D. Identifying objects with their identities doesn't do this.

rar@saturn.ads.com (Bob Riemenschneider) (01/25/91)

In article <MOSS.91Jan24091600@ibis.cs.umass.edu> moss@cs.umass.edu (Eliot Moss) writes:

=>   Someone else (Joe Stoy?) developed a specific example called the P(w) (power
=>   set of omega, i.e., the set of sets of natural numbers) construction, which
=>   goes as follows. ...

Not someone *else*, Dana Scott again.  He's also developed a couple more
frameworks for solving "D = [D -> D]".

								-- rar