Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!travelers.mail.cornell.edu!news.tc.cornell.edu!news.cac.psu.edu!news.pop.psu.edu!hudson.lm.com!newsfeed.pitt.edu!gatech!howland.reston.ans.net!swrinde!ihnp4.ucsd.edu!munnari.oz.au!cs.mu.OZ.AU!munta.cs.mu.OZ.AU!fjh
From: fjh@munta.cs.mu.OZ.AU (Fergus Henderson)
Subject: Re: Help!! union without cut!?
Message-ID: <9509803.19372@mulga.cs.mu.OZ.AU>
Sender: news@cs.mu.OZ.AU (CS-Usenet)
Organization: Computer Science, University of Melbourne, Australia
References: <3ldruq$fka@cpccux0.cityu.edu.hk> <3lejg1$djm@irix.uci.kun.nl> <3lo84f$4rk@goanna.cs.rmit.edu.au> <HSCHOTEL-0304951429060001@atdmac10.let.kun.nl> <3m2pte$7k4@goanna.cs.rmit.edu.au>
Date: Fri, 7 Apr 1995 17:20:22 GMT
Lines: 21

ok@goanna.cs.rmit.edu.au (Richard A. O'Keefe) writes:

>It is normal for a given abstract value to have more than one, perhaps
>very many, distinct concrete representations.  [...]
>In a functional language, this is not too much of a problem.  [...]
>But in a relational language [... it] is much harder.  The reason [...]
>is that we are using unification rather than
>full equality.  This is one of the reasons why people from Bill Kornfeld on
>worried about logic programming with equations, why we have people still
>thinking about narrowing and other such extensions.

I think the solution to this problem is to allow programmers to define
their own equality for each particular type.  (In logical terms, this
amounts to specifying your own equality axioms rather than always
getting the standard equality axioms.)

Of course, this only works in the context of a strongly-typed language
like Mercury....

-- 
Fergus Henderson - fjh@munta.cs.mu.oz.au
