Re: Proposal: 6NF

From: Jan Hidders <hidders_at_gmail.com>
Date: 18 Oct 2006 05:01:59 -0700
Message-ID: <1161172919.465904.118010_at_b28g2000cwb.googlegroups.com>


vc wrote:
> Jan Hidders wrote:
> > vc wrote:
> >I know that this set and the tuple are often identified in common
> > terminology, but this is in some sense sloppy and it is this sloppyness
>
> It's not sloppy but is a common way of talking about this sort of
> things depending of course on what exactly you want to say.

Agreed, but I would claim that here, i.e., in the context of type theory and database theory, we do want to say different things than usual, and therefore this definition is here too sloppy,

> > that makes it in this case harder to see what the relationship is
> > between the subtype=subset interpretation and inheritance between
> > abstract data types.
>
> Not harder, just impossible ;) regardles of whether you talk about
> c.r's and fileld or just integers. and real numbers.

Well, impossible for you perhaps, others seem to have less trouble. ;-)

> >This, however, allows us to construct Z
> > and Q such that Z is a subset of Q while still respecting the axioms of
> > both algebraic structures. I'm arguing that this gives us an intuitive
> > and consistent interpretation of what these sets mean along with an
> > easy to understand semantics of subtyping that ensures LSP.
>
> Alas, as long as Z satisfies the commutative ring axioms without the
> multiplicative inverses ( such inverses if available would immediatey
> make it a field) and Q the field axioms, there is little hope that the
> LSP would also be satisfied -- of course you can construct 'my_Q'
> without the division operation but that would be cheating.

The other way around, I'm constructing a my_Z as a subset of my_Q that I presumably constructed earlier. That it's possible to define the operations so that the axioms are satisified and LSP holds seems rather obivous, and such definitions already exist in the literature, so why you would claim that this is not possible is beyond me.

> It might also be interesting to note that paying so much attention to
> the carrier set is contrary to the algebraic data type spirit -- ADTs
> emphasize structural properties or in simple words operations rather
> than what the underlying set might be. That is another argument
> against the 'subtype as subset' school of thought.

ADT's don't necessarily make sense in the context of database theory / data modelling. Their point was to specify a data type while hiding implentation details, which makes sense when you are programming, but not in a data modelling context which is about how data is going to be represented. Hiding that represenation doesn't make sense because that is what you were supposed to be specifying.

> >So, just to
> > be clear on this, what I'm *not* saying is that this is necessarily so,
> > i.e., we can just as well define constructions for Z and Q such that
> > they are disjoint.
>
> As I said before, we may define anything we like, but we can hardly
> claim that what we define is Q and Z if they do not possess the
> expected properties.

But the constructions together with the operations that are defined along with them, *do* satisfy the expected properties. Hence the claim that they correctly model the concerned sets.

> > > No, it's not based on that. Although, a typical construction of
> > > reals makes 2.0 and 2 quite distinct, we can pretend that they are the
> > > same ("up to the isomorphism").
> >
> > So where is that distinction in the definition of the surreal numbers?
>
> I'd rather not talk about the Conway construction in order to avoid
> unnecessarily complicating the R/Q/Z simple stuff even more.

Fair enough, although I insist that the record shows that you ignored possible counter evidence. :-) So let's consider the construction where I construct Q as equivalence classes over their representations as strings (possibly including a fraction notation such as a/b and decimal notation), along with the usual operations, and Z as the subset of the classes that contain a representation that consists of a sign followed by a finite number of digits. Also here 2.0 and 2 are not distinct.

> > I assume you think that an example of a problematic expression would be
> > (2.0 / 3.0) where I could subtitute the 2.0 and 3.0 with their integer
> > counterparts 2 and 3 and obtain (2 / 3) which would not have a defined
> > result, right?
> >
> > Well, no. Since it is assumed that the integers are a subset of the
> > reals the result of / is defined also for all the integers.
>
> So what is the result of 2/3 ?

The number that is represented by the fraction 2/3.

  • Jan Hidders
Received on Wed Oct 18 2006 - 14:01:59 CEST

Original text of this message