Re: Quantifier syntax in KIF

"Michael R. Genesereth" <mrg@cs.Stanford.EDU>
Reply-To: cg@cs.umn.edu
Date: Thu, 8 Apr 93 22:00:42 PDT
From: "Michael R. Genesereth" <mrg@cs.Stanford.EDU>
Reply-To: genesereth@cs.Stanford.EDU
To: phayes@cs.uiuc.edu
Cc: macgregor@ISI.EDU, genesereth@cs.Stanford.EDU,
        sowa <sowa@turing.pacss.binghamton.edu>, cg@cs.umn.edu,
        interlingua@ISI.EDU, srkb@ISI.EDU
Subject: Re: Quantifier syntax in KIF
In-reply-to: Your message of Thu, 8 Apr 1993 15:24:46 +0000
Message-id: <CMM.0.90.4.734331642.mrg@Sunburn.Stanford.EDU>
 9-Apr-93  4:59:16-GMT,816;000000000000
Date: Thu, 8 Apr 93 21:59:16 PDT
From: "Michael R. Genesereth" <mrg@cs.Stanford.EDU>
Reply-To: genesereth@cs.Stanford.EDU
To: <phayes@cs.uiuc.edu>
Cc: mrg
Fcc: foo.hayes
Subject: Re: Quantifier syntax in KIF
In-Reply-To: Your message of Thu, 8 Apr 1993 13:27:23 -0700
Message-ID: <CMM.0.90.4.734331556.mrg@Sunburn.Stanford.EDU>

Pat,

The double nested syntax is necessary because we allow mutliple variables to
be nested within a single forall.  At the mement the following are all legal

(forall ?x (p ?x))
(forall (?x ?y) (p ?x ?y))

So if we want to allow a rane for a varaible we need a nother level of
nesting.?s alone do not suffice as it may be that one variable will range
over the values in another

(forall ((?x integer) (?y integer)) (p ?x ?y))
(forall ((?x set1) (?y set2)) (forall ((?z ?x)) ...))

mrg