Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!munnari.oz.au!cs.mu.oz.au!ok
From: ok@cs.mu.oz.au (Richard O'Keefe)
Newsgroups: comp.lang.prolog
Subject: What does "extralogical" mean?
Keywords: usage
Message-ID: <2204@munnari.oz.au>
Date: 27 Sep 89 08:04:50 GMT
Sender: news@cs.mu.oz.au
Lines: 49

Once upon a time I thought I knew what "extra-logical" meant in
logic programming circles.  I could, for example, turn to
"The Art of Prolog", and find
	There is a class of predicates in Prolog that lie
	outside the logic programming model, and are
	called {\it extra-logical\/} predicates.  These
	predicates achieve a side effect in the course of
	being satisfied as a logical goal.
Sterling and Shapiro explicitly list
	transput commands and
	program manipulation commands.

[I do wish people would stop talking about SIDE effects when
 referring to the MAIN effect of something like write/1 or assert/1.]

The Sterling and Shapiro text offers two definitions, really.
X is extra-logical if
 [definition 1] it lies outside the logic programming model
or
 [definition 2] it has a ``side effect''.

Under definition 1, I would include var/1 and anything which can be
used to simulate it, such as cut, unsound negation, unsound if then else,
findall/3, even perhaps compare/3 (but not NU Prolog's termCompare/3).
However, Sterling & Shapiro do NOT describe these operations in their
chapter on extra-logical predicates, which suggests that they may not
have intended the word to apply to them.

The reason that I ask is that I was stunned to find a paper which
described the Mycroft/O'Keefe type system as ``extralogical''.  Now,
we're talking about a type system where type declarations are
syntactic sugar for certain Horn clauses, and where a predicate declaration
	pred p(T1, ..., Tn)
is interpreted as saying that
	p(X1, ..., Xn) :- Body
is to be read declaratively as
	p(X1, ..., Xn) :- isa(X1, T1), ..., isa(Xn, Tn), Body.
(in essence, the type checks are ``factored'' out into the declaration.)
I really can't see any side effects there, nor can I see how to simulate
var/1 with this stuff, nor yet does it seem to me to lie outside the
logic programming model.  Is there some other sense of ``extralogical''
which does apply?  Did presenting the system in proof theoretic rather
than model theoretic terms damn it to extralogicality?

So, what DOES ``extralogical'' mean?
-- 
GNUs are more derived than other extant alcelaphines,| Richard A. O'Keefe
such as bonteboks, and show up later in the fossil   | visiting Melbourne
record than less highly derived species.  (Eldredge) | ok@munmurra.cs.mu.OZ.au