Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-crg!nike!sri-spam!parcvax!hplabs!tektronix!uw-beaver!ubc-vision!ubc-cs!andrews From: andrews@ubc-cs.UUCP (Jamie Andrews) Newsgroups: net.lang.prolog Subject: Re: fixed points Message-ID: <381@ubc-cs.UUCP> Date: Tue, 2-Sep-86 13:04:41 EDT Article-I.D.: ubc-cs.381 Posted: Tue Sep 2 13:04:41 1986 Date-Received: Wed, 3-Sep-86 21:10:34 EDT References: <8608250740.AA00215@ucbvax.Berkeley.EDU> <177@zyx.UUCP> Reply-To: andrews@ubc-cs.UUCP (Jamie Andrews) Organization: UBC Department of Computer Science, Vancouver, B.C., Canada Lines: 27 >In article <8608250740.AA00215@ucbvax.Berkeley.EDU> > PGW@XX.LCS.MIT.EDU (Paul G. Weiss) writes: >>Ideally, I would like to find a one-clause predicate fixed/1, with the >>property that fixed(Term) is true of the Term which is the clause that >>defines fixed/1. In article <177@zyx.UUCP> bd@zyx.UUCP (Bjorn Danielsson) writes: >I have found a solution, but it requires an extra predicate that interprets >a "represented" clause and melts it into a lower level of representation. >Using an extra predicate might seem like cheating, especially if you write >something like: > > fixed(X) :- cheat(X). cheat((fixed(X) :- cheat(X))). Actually, the original query was framed so loosely that even this program works: fixed(X). I think Paul Weiss probably wanted to say "fixed(Term) is true ONLY of Terms which are clauses defining a predicate extensionally identical to fixed(Term)." Can the people who proposed solutions prove that their solutions have this property? --Jamie. ...!seismo!ubc-vision!ubc-cs!andrews "Two sapphires and a couple rows of pearls"