Re: So what's null then if it's not nothing?




Jon Heggland wrote:
> In article <1133496446.794271.267450@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
> boston103@xxxxxxxxxxx says...
> >
> > It's unclear at all what Clement -Davies means by this : "Since the
> > example he gives [regarding birth years] isn't a tautology in
> > Lukasiewicz's system and any system of three-valued logic in which this
> > was made to be a tautology would show unfortunate effects elsewhere"
>
> I take this to mean that Codd's example is *not* a tautology (in 3VL),
> whereas Codd claims that it is. In other words, a mistake on Codd's
> part.

Well, Codd claims no such thing. In fact, he says that the 3vl
cannot express the tautology (obviously):

"it evaluates the whole condition to be unknown. This is an example of
a mild error. This kind of error is just as likely to occur (and other
kinds much more likely) if the responsibility for handling missing
information is placed totally on the users.

Now, an obvious cure for this is to equip the DBMS not only with 3VL,
but also with the capability of recognizing for any whole condition
whether it is a tautology.
"

To me, it's unclear what C.-D means by "any system of three-valued
logic in which this
was made to be a tautology would show unfortunate effects elsewhere".
He does not show *how *exactly Codd's example can be made a tautology
in any 3vl system and *what* specific unfortunate effects elsewhere it
would have.


More importantly, he ignores the crucial point that tautology
determination is undecidable in even the traditional 2vl FOL.

>
> > > Because the result of the the evaluation of equivalence
> >
> > of what ?
>
> of two 3VL-boolean expressions

3VL boolean expression is almost an oxymoron. If you mean equivalence
of two 3VL formulas, then its determined in the same way as the 2vl
wff equivalence: the truth tables should be the same.


>
> > > and equality
> >
> > of what ?
>
> of two 3VL-boolean expressions

Two 3vl expressions are equal iff they are the same. E.g. (X and Y) =
(X and Y).

>
> > > should be / is the same, perhaps? Or maybe it's just happy coincidence
> > > that it is in 2VL ... What practical (or indeed logical) consequences
> > > has such a separation of equality and equivalence for database theory?
> >
> > Logical equivalence is defined over a set of wffs whose truth tables
> > are the same. E.g.,
> >
> > p & q <=> not (not p or q)
>
> I think you are missing a "not" there.

Thank you, I am.

>
> > Clearly, we have two different formulas that are logically
> > equivalent because their truth tables are the same. In other words,
> > '<=>' partitiones the set of wffs into equivalence classes.
>
> Thank you so far. Now, can you explain equality too, and how it differs?
> Is "p & q" equivalent to "not (not p or [not] q)", but not equal? Are
> "0", "1" and "2" wffs? Is it equality or equivalence that are used in
> conditions in programming languages, e.g. in a relational restriction?

As. I believe Tarsky. said, "x = y if, and only if, x and y have every
property in common."
In simpler words, x and y are equal iff they are the same.

>
> > > Do you think it is a good idea to define a system where 0 is equivalent
> > > to 0, but not equal to 0?
> >
> > What's that supposed to mean ? What set is your equivalence is defined
> > over ? What set is your equality is defined on?
>
> Would you say that 0 <=> 0? Would you say that 0 = 0?

If the first zero denotes a logical constant, then yes. I do not know
what zero denotes in the second case, so the answer is , "I do not
know"..

>
> > > Codd uses the same symbol, omega/null for both his 'value (of any type)
> > > at present unknown' and for the unknown truth value. Or do you claim
> > > that when null is encountered as a 3VL boolean (lukasiewiczian?), Codd
> > > says null = null should yield true?
> >
> > As I said before, the domains (contexts) are different so what's the
> > problem ?
>
> I'll ask you again: Do you claim that when null is encountered as a 3VL
> boolean (lukasiewiczian?), Codd says null = null should yield true?

Of course, as a logical constant, null=null evaluates to true (assuming
our 3vl logical constants set is {true, false, null} with the usual
truth tables): it denotes the same thing on both side of the '=' sign.
No one uses the equality explicitly, since it's blindingly obvious.

>
> > When we use {0,1,2} in the 3vl, we do not claim that 0,1,2
> > are integers, do we ?
>
> I don't know why you keep bringing this straw man up. What I *do* claim
> is that a system where the symbols 0,1,2 are used for *both* 3VL truth
> values *and* integers, with different rules for each, is confusing and
> badly designed.

So the standard Boolean logic that uses 0 and 1 as logical constants is
badly designed ? I agree that reusing the same symbol for different
purposes *may* be confusing, but that's a standard practice in math.

>
> > The point is that we can [re]-use the same symbols for different things
> > as I hope I've demonstrated above.
>
> And my point is that it is not a good idea to do so *within the same
> system*.
>
> > Are you saying that say Lukasiewicz's was stupid because he used
> > {0,1/2, 1} for his system confusing the fraction (1/2) with a truth
> > constant ?
>
> If his system included fraction computation as well as logic, yes! If it
> didn't (and I doubt it did), then no.
>
> > > To use the same argument, we can call the empty string NULL, and say
> > > that in a string context, NULL = NULL is true.
> >
> > I cannot parse that.
>
> We use the symbol NULL for "", just like it is used for the UNKNOWN
> truth value (0 or 1/2, whatever). Surely there is no problem? After all,
> the context is different.

If you carefully use NULL as an empty string designation within a
string operations context, then no, there is no problem. .

>
> > >Or use NULL instead of
> > > TRUE, and "nothing really changes". Possible? Yes. Practical? No.
> >
> > See above.
>
> Shall we agree to disagree?
>
> > > But anyway, does Codd or SQL do this?
> >
> > Do what ?
>
> I'll ask you yet again: Do you claim that when null is encountered as a
> 3VL boolean (lukasiewiczian?), Codd (or SQL) says null = null should
> yield true?

As a logical constant, yes, as an unknown/missing value, no.

>
> > > > > I never claimed such a thing. I do claim that 0 = 0, 1 = 1 and 2 = 2,
> > > > > though.
> > > >
> > > > See above.
> > >
> > > Come on. Your argument above says essentially "we can define it to be if
> > > we want to". I'm asking why we (or Codd) wouldn't want to.
> >
> > I do not understand that. "Would not want to" do what ?
>
> Define 0, 1, 2 and = so that 0 = 0, 1 = 1 and 2 = 2. Or 1/2 = 1/2, for
> that matter.

I am missing something. Codd has a special eqaulity rule only for
NULL, not for anything you've mentioned above (assuming you assum the
standard meaning for those symbols).
> --
> Jon

.



Relevant Pages

  • Re: So whats null then if its not nothing?
    ... What substance does equivalence as a logical connective add ... It's just another truth table, ... > and he does not provide the missing truth table. ... NULL is used as a logical constant. ...
    (comp.databases.theory)
  • Re: So whats null then if its not nothing?
    ... >> whereas Codd claims that it is. ... > 1960" is a tautology ("the whole condition must be true for every ... > wff equivalence: the truth tables should be the same. ... > If the first zero denotes a logical constant, ...
    (comp.databases.theory)
  • Re: So whats null then if its not nothing?
    ... Or the equivalence truth table? ... > It's very strange that Codd references neither Lukasiewicz nor Kleene, ... >> Lukasiewicz's, but for the imlication and equivalence, they are ... > "same string of symbols denoting the same things" equality. ...
    (comp.databases.theory)
  • Re: So whats null then if its not nothing?
    ... You asked for equivalence, I gave you equivalence. ... > logical equivalence example, then it trivially restates what the NOT ... > accoding to its truth table. ... It would have helped your case if Codd had included that word. ...
    (comp.databases.theory)
  • Re: So whats null then if its not nothing?
    ... >> logical equivalence example, then it trivially restates what the NOT ... >> accoding to its truth table. ... But on page 403, Codd calls the three expression just that, a 'NOT' ... See above, it's an equality predicate. ...
    (comp.databases.theory)