Re: So what's null then if it's not nothing?
Date: 11 Dec 2005 06:07:01 -0800
Message-ID: <1134310021.361013.248720_at_f14g2000cwb.googlegroups.com>
Jon Heggland wrote:
> In article <1134174476.373085.313290_at_f14g2000cwb.googlegroups.com>,
> boston103_at_hotmail.com says...
[...]
> > 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.
But on page 403, Codd calls the three expression just that, a 'NOT' truth table. It would be nice if he, or you for that matter, used <==> for the logical equivalence, '=' for equality, and '<--> for the equivalence(as a biconditional). However, it's easy to understand from the context what he means, whilst it's not in your case.
>
> > > 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.
A is a variable that may or may not be equal to 'r' when it ranges over some domain of values. '=' is an *equlity predicate* with two arguments, a constant and a variable (A) that ranges over all the values of some domain. The predicate is true for all the values where A is *equal* to r. That's. like, one of the most elementary FOL expressions.
>
> > 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?
You did.
>
> 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.
>
See above, it's an equality predicate.
> > 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?
About w equals w evaluating to anything but TRUE when w is a truth value.
>
> > > 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?
Evaluating w=w to w where = denotes equality.
>
> > > 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?
I subscribe to (4). I am also curious as to how one can subscribe to anything but (4) assuming one understands that a logic is not available any more if (1).
>
> > >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,
Not equivalence, but rather equality. If you use the word equivalence you have to define what exact equivalence you mean.
> 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?
More or less. I still do not understand your position but that's OK.
> --
> Jon
Received on Sun Dec 11 2005 - 15:07:01 CET