Article View: comp.lang.prolog
Article #435Re: Semantics of type checking (was "extralogical")
From: Mattias Waldau
Date: Wed, 25 Oct 1989 19:48
Date: Wed, 25 Oct 1989 19:48
44 lines
2091 bytes
2091 bytes
In article <2497@munnari.oz.au>, lee@munnari (Lee Naish) writes:
>In article <1213@kuling.UUCP> mattias@emil.CSD.UU.Se (Mattias Waldau) writes:
>>
>>(Syntax: -> implication, <-> iff, or or, & and)
>>
>>(1)
>>:- pred q(type)
>>q(X) :- r1(X).
>>q(X) :- r2(X).
>>
>>(2)
>>q is a partial relation, only defined for type's.
>>type(X) -> [q(X) <-> {r1(X) or r2(X)}]
>>
>>(3)
>>q is a total relation, false if type is false
>>q(X) <-> [(type(X) & r1(X)) or (type(X) & r2(X))]
>
>I have argued that the semantics should be defined as (and the intended
>semantics generally is) (3). See my paper in LNCS 287.
Could you please give some of these arguments?
In your paper in LNCS 287 you say that specification=types+program. In
some cases this is true but not generally. merge below is an example
of an untyped specification and a typed program. For this case the
semantics (2) above is the correct one.
The untyped specification of merge:
merge(x,y,z)<->(forall e)[{(e in x) or (e in y)}<->(e in z)]
One merge program is the program that merges ordered lists. It is a
partial program that assumes that its argument are ordered lists. The
program is undefined for other types of arguments, but we may later add
more clauses, e.g. for merging unordered lists (also called union).
ordlist(x)&ordlist(y)&ordlist(z) ->
[ merge([],X,X).
merge(X,[],X).
merge([X|Xs],[Y|Ys],[X|Zs]) :- X<Y, merge(......
]
Technical Details
Message-ID:
<1218@kuling.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!mcsun!sunic!bmc!kuling!mattiasReferences:
<2204@munnari.oz.au> <786@ecrcvax.UUCP> <2390@munnari.oz.au> <1213@kuling.UUCP> <2497@munnari.oz.au>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!mcsun!sunic!bmc!kuling!mattias From: mattias@emil.CSD.UU.Se (Mattias Waldau) Newsgroups: comp.lang.prolog Subject: Re: Semantics of type checking (was "extralogical") Message-ID: <1218@kuling.UUCP> Date: 25 Oct 89 19:48:42 GMT References: <2204@munnari.oz.au> <786@ecrcvax.UUCP> <2390@munnari.oz.au> <1213@kuling.UUCP> <2497@munnari.oz.au> Sender: news@kuling.UUCP Reply-To: mattias@emil.CSD.UU.Se (Mattias Waldau) Organization: Computing Science Department, Uppsala Univ, Sweden Lines: 44 In-reply-to: lee@munnari.oz.au (Lee Naish) Posting-Front-End: Gnews 2.0