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



In article <1134174476.373085.313290@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
boston103@xxxxxxxxxxx says...
> Jon Heggland wrote:
> > In article <1134060103.915048.159540@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
> > boston103@xxxxxxxxxxx says...
> > > I don't know about a single example of him using '=' as equivalence in
> > > the logical domain. Could you provide one ?
> >
> > Something like "NOT(F) = T; NOT(w) = w; NOT(T) = F", you mean?
>
> The above is ambiguous the most likely interpretation is that of
> *logical equivalence* rather than a biconditional.

You asked for equivalence, I gave you equivalence. :)

> If the above is a
> logical equivalence example, then it trivially restates what the NOT
> truth table already says. If it's a biconditional, then it evaluates
> accoding to its truth table.

I'd guess that the above is a substitute for a truth table for NOT,
meant to convey the exact same information. Note its context, and the
fact that Codd doesn't provide an actual truth table for NOT---so "what
the NOT truth table already says" is not given.

> > Apart from that, he uses '=' a lot---calling it a "binary relation"---
> > and he defines his theta-select and theta-join using it. He also wants
> > to (be able to) store truth values in the database, and he does not say
> > that '=' should mean anything else if that is the case.
>
> But, if he calls '=' a binary relation, then it's obvious that he
> means neither equivalence/biconditional' nor 'ogical equivalence, but
> rather *equlaity* which indeed is a binary relation (as well as a
> predicate) (as are <, >, !=, etc).

But how do you reconcile this with his THETA-SELECT example, where R[A =
r] does produce a result? By your definition, A is certainly not equal
to r.

> The usual meaning of '=' is equality which is a binary relation. In
> algebra, the symbol is often used to denote *equivalence of
> expressions* (2*x+4*y = x+2). However, in order to avoid ambiguity,
> in logic, '<-->' is most often used to denote the
> biconditional/equivalence connective and <==> is used to denote
> *equivalence of logical expressions* (whose truth tables are the same).

So let me see: w <--> w can be anything we want, according to how we
define its truth table. Lukasiewicz says it is TRUE; Kleene says it is
w. w <==> w, on the other hand, is necessarily TRUE, because the truth
tables for w and w are (trivially) equal / the same. Did I get that
right?

So the question then is what '=' should mean when used for truth values
in e.g. a THETA-SELECT, and what the opinions of Codd and the SQL
standard are on this.

> I am not sure if my answer clarifies or further muddies this stuff for
> you.

I'm so deep in the mud that I don't know up from down. What was our
original disagreement again?

> > Me neither. :) I'll rephrase: You say (if I understand you correctly)
> > that to claim that NULL = NULL is UNKNOWN even for "truth value NULLs"
> > constitutes a redefinition of equality, which renders logic
> > useless/unusable. I'm wondering why a similar disaster doesn't happen to
> > arithmetic / number theory when we say that NULL = NULL is UNKNOWN for
> > "integer NULLs".
>
> Because, for example the integer domain is not harmed so lethally as
> some logic would be by introdicing elements of which one cannot say
> whether they are the same or not. In a sense, one can say that the
> damage inflicted on the integer (or some other) domain by introducing
> NULL is contained through the use of some logic that has, arguably,
> ability to reason/make logical derivations when the domain reasoned
> about has NULL.

I still don't understand what the 'lethal' problem is. Can you give an
example?

> > I thought so too. But I don't really understand your position here. We
> > are discussing what Codd's "[W]hat is the truth value of x = y if x or y
> > or both are null? An appropriate result in each of these cases is the
> > unknown truth value, rather than true or false" means, right?
>
> Yes, *except* when x, y are variables ranging over truth values.
> I've tried, apparently unsuccessfully so far, to explain why the word
> 'except' appropriate.

It would have helped your case if Codd had included that word. Seems to
me that either:

1. There is no problem, even if you apply this to truth values
2. There is a problem, but Codd wasn't aware of it
3. Codd was aware, but was really bad at explaining things
4. The problem is so obvious that it is pointless to mention it

I lean towards 1 or 2. Do you subscribe to 4, or do you have other
alternatives?

> >Codd meant this to hold even for the truth value kind
> > of null/w. I also believe that Codd meant '=' to signify equivalence,
> > not equality; and this is all consistent if he used Kleene's 3VL.
>
> Ok, if you hypothesize that Codd used '=' as a binary
> predicate/relation everywhere *except* for truth values in which case
> he used '=' to denote a biconditional, that might make sense.

Point. I agree there is a dichotomy there. So if we then agree that
saying "NULL = NULL is UNKNOWN" implies a redefinition of the
[mathematical] equivalence relation, the question is whether Codd meant
to do this for truth values as well.

You say he didn't, because that would be stupid and break logic.

I say he did, because he doesn't say otherwise; and in fact talks about
'uniform treatment'.

Is that a reasonable summary?
--
Jon
.



Relevant Pages

  • Re: So whats null then if its not nothing?
    ... >> was made to be a tautology would show unfortunate effects elsewhere" ... >>> Because the result of the the evaluation of 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?
    ... >> 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)
  • Re: So whats null then if its not nothing?
    ... I raised the question how Codd meant equivalence to work in his 3VL. ... the truth table for equivalence. ... It's very strange that Codd references neither Lukasiewicz nor Kleene, ... where such a truth value column cannot be 'missing' NULL, only UNKNOWN ...
    (comp.databases.theory)
  • Re: So whats null then if its not nothing?
    ... so you are claiming that I've said that "they [truth tables] don't ... > we are arguing about, as I see it, is whether Codd intended his missing ... > truth table for equivalence to look like this: ... If we use NULL for UNKNOWN, ...
    (comp.databases.theory)