Re: AtomList infinite or cyclic in all models

> [Bijan Parsia]
> [...]
> I guess I don't have strong prior intuitions about the nature of  
> empty lists. Well, I guess I do, but then they don't involve pair/ 
> cons structures *at all*.

On reflection, we're both wrong, but I believe you are righter than
I. 

> > and if it were then
> > testing whether a list was empty would be a nightmare.

I think I was a bit too hasty here.  A list is empty if it's equal to
nil, period.  Allowing the empty list to have elements is misleading
and perhaps humorous, but strictly speaking not a problem.

> Er if the first and rest of a list is #nil, then the list is #nil.

But you're wrong about this.  There must be a list with exactly one
element, nil, and it must be distinct from nil.  Otherwise you get all
kinds of anomalies.  (For instance, the list (nil nil) = nil,
because rest[(nil nil)] = (nil) = nil, so (nil nil) = (nil) = nil.)

In other words, it can be true that 

  If the list is #nil then its first and rest are #nil

but not vice versa.

                                             -- Drew

Received on Friday, 16 February 2007 15:03:11 UTC