Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!satisfied.elf.com!news.mathworks.com!uunet!in1.uu.net!munnari.oz.au!cs.mu.OZ.AU!harald
From: harald@cs.mu.OZ.AU (Harald Sondergaard)
Subject: Prolog and notation for implication
Message-ID: <9505614.12375@mulga.cs.mu.OZ.AU>
Organization: Computer Science, University of Melbourne, Australia
Date: Sat, 25 Feb 1995 03:58:19 GMT
Lines: 39

Unfortunately I lost the reference, but recently Richard O'Keefe wrote
about the subject:

|> As to abuse of mathematical notation, I'm afraid there is no standard
|> mathematical notation for implication.  Most of the books on my shelves
|> use a double-shafted arrow or a horse-shoe, certainly NONE of them use
|> a minus sign followed by a greater than.

As Richard indicates, there are two issues here.

(1) Is there a standard sign for material implication?
------------------------------------------------------
My feeling is that Peano's horse-shoe is dying, and Hilbert's 
single-shafted arrow is winning.  (This is good because Peano's 
notation clashes with standard notation in set theory.)  I had 
a quick browse through the books on my shelves, and a clear 
majority use the single-shafted arrow, the exceptions mainly 
being older books.  Quine, who has always been extremely concerned 
with the importance of well-chosen notation, at some stage made 
a decision to abandon other signs for material implication and 
take up Hilbert's.  While it is true that there is no standard, 
I believe that current practice favours single-shafted arrow.

(2) Is `->' a single-shafted arrow?
-----------------------------------
It is natural to assume that the `minus sign followed by a greater 
than' tries to approximate a single-shafted arrow.  Experience 
shows this:  If not told otherwise, practically anybody who is 
being introduced to _logic_ programming assumes that in

	q :- (p -> p).

`->' stands for material implication (no matter what it stands for
in imperative or functional programming languages).

My conclusion is that Prolog's usage of `->' _is_ discordant with 
common usage, and we may as well admit it.

Harald Sondergaard
