Re: Proposal: 6NF

From: vc <boston103_at_hotmail.com>
Date: 19 Oct 2006 03:31:06 -0700
Message-ID: <1161253866.929438.48030_at_h48g2000cwc.googlegroups.com>


Jan Hidders wrote:
> vc wrote:

[...]
> > A, B and C are real;
> > D, E are integer;
> >
> > C = A / B -- is OK
> > C = D / E -- the LSP requires that should be OK too but it is not
> > because D / E is undefined.
>
> No, it is defined. D and E are in the domain of integers, and therefore
> also in the domain of reals, so the result is the real D/E with / the
> operator (in both expressions) as defined by the reals.

The result cannot be "defined by reals" because you do not have any elements in your integer domain to define such result. There is no number 0.66666666... (2/3) in it, it's gone when you subsetted your integers.

If you jump into the real domain each time the operation cannot be defined in integers, what's the point of even talking about the integeres? They are simply unnecessary, they just do not exist in your picture, they are useless labels without any obvioius purpose. Essentially, you are saying that everything is done with reals, but whenever a real number looks like an integer *and* the operation is possible with integers you pretend that you are using integers, otherwise you use reals. What's the point of such talk ? Needless to say that such viewpoint does not make any sense in math.

> So if A is the
> integer counterpart of the real D (i.e. A=D) and B the integer
> counterpart of the real E (i.e. B=E), then this is the same as A/B. So
> LSP holds.

The LSP holds because your subtype is ephemeral -- each time the LSP is violated you replace the subtype with its 'parent type'.

>
> -- Jan Hidders
Received on Thu Oct 19 2006 - 12:31:06 CEST

Original text of this message