Re: Questions on possreps

From: Hugh Darwen <hughdarwen_at_gmail.com>
Date: Tue, 14 Jun 2011 10:39:52 -0700 (PDT)
Message-ID: <b40127db-ac03-4e7e-aad7-cae00b7bf595_at_f11g2000vbx.googlegroups.com>


On Jun 13, 6:01 pm, David BL <davi..._at_iinet.net.au> wrote: [...]
>
> > 1. A selector S for type T is an operator that has certain special
> > properties that we regard as required--and I mean required in a well-
> > designed computer language, and I realise that opinions as to what
> > "well-designed" entails may differ.  The special properties are, quite
> > simply, (a) every invocation of S denotes a value of type T, and (b)
> > for every value V of type T there is an invocation of S that denotes
> > V.
>
> I'll treat that as a very concise definition of the term "selector".
> As a point of clarification I note that (a) implies that a selector
> for type T cannot also be a selector for a proper subtype of T, and
> (b) implies that a selector for type T cannot also be a selector for a
> proper supertype of T.

I deliberately omitted any reference to the IM. It seems from your response and Keith Duggar's that there is more interest in the IM in particular than in the general type model into which the IM is supposed to be incorporated. As Erwin has already noted, the IM makes certain modifications to the base model.

Anyway, to address this observation for now (I might come back to other points at a later date):

Your points are correct but nevertheless if T2 is a subtype of T1, then an invocation of a selector for T1 can denote a value of type T2. It wouldn't be a selector for T1 if that were not the case. Similarly, every invocation of a selector for T2 denotes a value of type T1. Thus the problem that selectors are intended to solve remains solved.

I should perhaps make it clear that although Tutorial D includes explicit syntax for defining types via possrep declarations, TTM itself does not prescribe syntax. A type that is defined solely in terms of operator signatures conforms to our model if those operators include at least one that satisfies the requirements for being a selector (pace the IM as already noted) and counterparts of our THE_ operators that in Tutorial D are implicitly spawned by possrep definitions. A language that somehow enforces these requirements on every type definition (pace the IM) conforms to our model.

Hugh Darwen Received on Tue Jun 14 2011 - 19:39:52 CEST

Original text of this message