Re: Proposal: 6NF

From: Marshall <marshall.spight_at_gmail.com>
Date: 19 Oct 2006 22:50:44 -0700
Message-ID: <1161323444.146629.117300_at_b28g2000cwb.googlegroups.com>


On Oct 19, 8:40 pm, "vc" <boston..._at_hotmail.com> wrote:
> Marshall wrote:
>
> > > "return new ModFour((val+a.val)%4)" is called a bug or cheating
> > > because you used a function defined on the entire domain NxN (where N
> > > is a subset of the natural numbers implemented by the computer) to
> > > generate a result which is undefined for the (2,3) pair.
>
> > It's not a bug, since the program produces the correct result, which is
> > 1. It's not "cheating" because WTF does cheating even mean in
> > this context. What it is, is the absence of closure over the subclass.
> > Which is no big deal.
>
> So producing an absurd result is no big deal ? You seem to have agreed
> that in the {2,3} subset there is no '1', how come your java
> implementation manages to extract '1' out of nowhere ?

Consider the below function:

Let S4 = {0, 1, 2, 3}
Let S23 = {2, 3}
f : S23, S23 -> S4

f(2,2) = 0
f(2,3) = 1
f(3,2) = 1
f(3,3) = 2

Your claim is what, exactly? That this is not a function? That it doesn't exist? That it's cheating? That it's invalidly defined because the result type is not the same as the types of both parameters?

> > > At thispoint, it may be useful to recall what a function is and
> > > apply the memory, if any, to the addMod4 operation.
>
> > Indeed. A function is a mapping from one set to another.
> > In this case, the domain is pairs of values from {0,1,2,3}
> > and the range is that same set. This particular
> > function qualifies as a binary function, and also
> > exhibits closure over the set {0,1,2,3}. Since {2,3} is a
> > subset of {0,1,2,3}, the function is fully defined over
> > that subset. However, since that function is not closed
>
> How can it be 'fully defined' over {2,3} and 'not closed' at the same
> time ? What does (2,3) map to ? If you say to one, then you
> exctract '1' out of nowhere again.

I don't understand this "out of nowhere" business. It's just a plain, regular number one. Nothing could be simpler.

> > > > The *only* trouble anywhere in here is if you want to
> > > > have methods which are mutator methods; that is,
> > > > methods which modify the distinguished object in place.
> > > > And yes, in that case, closure is an issue. I have not
> > > > seen any math books that give functions the same
> > > > semantics as inherited OOPL mutator methods however.
>
> > I note you did not respond to this important paragraph. Yes,
> > in OOPLs, there is a problem with closure, subtyping,
> > and mutator methods. Outside of OOPLs (in math, that
> > is) this problem does not apply.
>
> We may tackle those issues later after we come to some agreement re.
> the trivial stuff like functions and binary operations.

Okay. What is your definition of a function, then, and how does my f above stack up with regards to your definition?

> > > > Also, I found this equation in a math book on page 3:
>
> > > > P ⊆ N ⊆ Z ⊆ Q ⊆ R
>
> > > The equation looks like a random collection of characters. What do
> > > you suppose it means ?
>
> > I suppose your browser doesn't have the necessary font.
>
> > In prose, it means:
>
> > The set of positive integers is a subset of the set of nonnegative
> > integers which is a subset of the integers which is a subset
> > of the rationals which is a subset of the reals.
>
> That's truly a trivial observation which is not strictly speaking
> correct (see the earlier discussion re. real construction).

Wait, you're saying it's both trivial *and* incorrect? Earlier I recall you suggesting various people consult math books for such questions; I did consult one and it was quite clear on the question: every integer is also a real.

Marshall Received on Fri Oct 20 2006 - 07:50:44 CEST

Original text of this message