From ap%computer-lab.cambridge.ac.uk@NSFnet-Relay.AC.UK  Thu Dec  7 08:19:50 1989
Received: by iris (5.57/3.14)
        id AA14250; Thu, 7 Dec 89 08:19:50 PST
Received: from ucdavis.ucdavis.edu by clover.ucdavis.edu (5.59/UCD.EECS.1.11)
        id AA14300; Thu, 7 Dec 89 08:23:12 PST
Received: by ucdavis.ucdavis.edu (5.51/UCD1.41)
        id AA06532; Thu, 7 Dec 89 08:05:51 PST
Received: from sun.nsfnet-relay.ac.uk by vax.NSFnet-Relay.AC.UK
           via Janet with NIFTP  id aa12461; 7 Dec 89 15:24 GMT
Received: from mallard.cl.cam.ac.uk by gnnt.Cl.Cam.AC.UK id aa01496;
          7 Dec 89 15:29 GMT
To: Tom Melham <@NSFnet-Relay.AC.UK:tfm@computer-lab.cambridge.ac.uk>
Cc: info-hol <@NSFnet-Relay.AC.UK:info-hol@clover.ucdavis.edu>,
        ap%computer-lab.cambridge.ac.uk@NSFnet-Relay.AC.UK
Subject: Re: an inconsistent axiom for lists.
In-Reply-To: Your message of Wed, 06 Dec 89 15:27:49 +0000.
             <8912061532.aa14745@scaup.Cl.Cam.AC.UK>
Date: Thu, 07 Dec 89 15:29:55 +0000
From: ap%computer-lab.cambridge.ac.uk@NSFnet-Relay.AC.UK
Message-Id:  <8912071529.aa01496@gnnt.Cl.Cam.AC.UK>

Cantor's theorem could be applied a little more directly to obtain the
contradiction. Observe that the axiom

   !x:**. !f:**->*->llist->**. ?!fn:llist->**.
      (fn LNIL) = x /\
      (!h t. fn(LCONS h t) = f (fn t) h t

for l-lists implies that there is a one-one function from any type * to llist,
viz. \h.(LCONS h LNIL) : * -> llist. Instantiating * to llist->bool,
one gets a one-one function from llist->bool to llist, from which a
contradiction can be derived (irrespective of the nature of llist)
using Cantor's diagonal argument in the usual way.

Andy Pitts

