Definitions and analytic truth

John McCarthy <jmc@sail.stanford.edu>
Date: Mon, 6 Jan 92 20:39:59 -0800
From: John McCarthy <jmc@sail.stanford.edu>
Message-id: <9201070439.AA22511@SAIL.Stanford.EDU>
To: fikes@sumex-aim.stanford.edu
Cc: interlingua@isi.edu, sowa@watson.ibm.com
In-reply-to: Richard Fikes's message of Mon, 6 Jan 1992 13:57:03 PST <MacMS.4271.5627.fikes@sumex-aim.stanford.edu>
Subject: Definitions and analytic truth
Reply-To: jmc@cs.stanford.edu
I think you are correct that only defobject gives problems, but it
does give problems if you leave it as is.  In it's most brutal
form it allows

(defobject foo (= foo 0) (= foo 1))

The most straightforward way of getting around this is to let
(defobject <name> <sentence>) generate the sentence

(implies (exists <name> <sentence>)  <sentence>),

i.e. the existence of an object satisfying <sentence> implies
that <name> satisfies <sentence>.