From paul%melasv@uunet.uucp Mon Jun 24 19:20:08 1991
Received: from brwbf.inmos.co.uk by frogland.inmos.co.uk; Mon, 24 Jun 91 19:20:08 BST
Received: from inmos-c.inmos.com by brwbf.inmos.co.uk with DNI-MTP [1.1]
        id inmos-c-11682; Mon, 24 Jun 91 19:23:56 BST
Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP
        (5.61/UUNET-internet-primary) id AA11745; Fri, 21 Jun 91 20:22:09 -0400
Received: from melasv.UUCP by uunet.uu.net with UUCP/RMAIL
        (queueing-rmail) id 202144.19004; Fri, 21 Jun 1991 20:21:44 EDT
Received: from rdc03. by melasv.uunet.uu.net (3.2/SMI-RD-3.2)
        id AA28855; Fri, 21 Jun 91 16:35:39 PDT
Received: by rdc03. (4.0/SMI-RD-4.0)
        id AA01628; Fri, 21 Jun 91 16:35:38 PDT
Date: Fri, 21 Jun 91 16:35:38 PDT
From: paul%melasv@uunet.uucp ( Paul Loewenstein CAD)
Message-Id: <9106212335.AA01628@rdc03.>
To: des%uunet.uu.net@inmos.com
Cc: sandy@tis.com, info-hol@ted.cs.uidaho.edu
In-Reply-To: David Shepherd's message of Fri, 21 Jun 91 10:36:25 BST <16345.9106210936@frogland.inmos.co.uk>
Subject: select


It seems to me that that David's Shepherd's implementation:

                     f x = x + (@y.IS_ODD y)

is not much use, since there is no way to transform it into something
"real" such as:

                       f x = x + 3

since that cannot be shown to implement:

                     f x = x + (@y.IS_ODD y)

because we do not know what @y.IS_ODD y really is.

The principal (only useful?) use of @ is to provide witnesses for
existence proofs, such as in the proof of:

      !P. (!x:*. ?y:**. P x y) ==> (?y'. !x. P x (y' x))

        Paul.
