Return-Path: <John.Harrison-request@cl.cam.ac.uk>
Delivery-Date: 
Received: from leopard.cs.byu.edu (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Fri, 28 Jan 1994 18:38:57 +0000
Received: by leopard.cs.byu.edu (1.37.109.8/16.2) id AA27875;
          Fri, 28 Jan 1994 10:04:26 -0700
Sender: info-hol-request@leopard.cs.byu.edu
Errors-To: info-hol-request@leopard.cs.byu.edu
Precedence: bulk
Received: from dworshak.cs.uidaho.edu by leopard.cs.byu.edu 
          with SMTP (1.37.109.8/16.2) id AA27870;
          Fri, 28 Jan 1994 10:04:14 -0700
Received: from [134.83.128.62] by dworshak.cs.uidaho.edu 
          with SMTP (1.37.109.8/16.2) id AA12127;
          Fri, 28 Jan 1994 09:00:48 -0800
Received: from elektra.brunel.ac.uk by sirius.brunel.ac.uk with SMTP (PP) 
          id <11460-0@sirius.brunel.ac.uk>; Fri, 28 Jan 1994 16:51:31 +0000
From: Simon Finn <simon@ahl.co.uk>
Received: from alpha.ahl.co.uk by Pinky.ahl.co.uk; Fri, 28 Jan 94 16:55:31 GMT
Date: Fri, 28 Jan 1994 16:53:52 +0000
Message-Id: <372.9401281653@alpha.ahl.co.uk>
To: info-hol@cs.uidaho.edu, wishnu@cs.ruu.nl
Subject: Re: is this formula perhaps decidable?
X-Sun-Charset: US-ASCII
Content-Length: 1458

Wishnu Prasetya wrote:

> Here is the formula I'm trying to prove:
> 
>     "(!x:*A. ~TC U x x) ==> (!x. InDAG U x)"
> 
> TC U is the least transitive closure of U. InDAG U x means x is in the
> dag induced by relation U.
> 

I don't think this is a theorem, given the supplied definitions:

> let TC_INDUCTIVE = new_definition
>   (`TC_INDUCTIVE`,
>    "TC_INDUCTIVE (U:^MonoRel) P = !y. (!x. (TC U) x y ==> P x) ==> P y") ;;
> 
> let InDAG = new_definition
>   (`InDAG`,
>    "InDAG (U:^MonoRel) x = !P. TC_INDUCTIVE U P ==> P x") ;;
> 

Suppose I take U (and TC U) to be the ordinary < relation on integers
(NB not naturals). Then  "InDAG < z" is

   !P. (!y. (!x. x < y ==> P x) ==> P y) ==> P z

but this is false, because if I instantiate P to \w.false, I get

       (!y. (!x. x < y ==> false) ==> false) ==> false

which simplifies to

       (!y. (!x. ~(x < y)) ==> false) ==> false
(*)    (!y. false          ==> false) ==> false
       (!y. true)                     ==> false 
       true                           ==> false
                                          false

But the ordering relation, "<", is certainly acyclic, which
provides a counter-example to the intended theorem.

It looks to me as if the foramalisation of InDAG needs to be
changed (I think it works for finite domains).

Simon Finn (Abstract Hardware Limited)

(*) because every integer has a predecessor - this is where
we need to use integers rather than naturals.




