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

From: vc <boston103_at_hotmail.com>
Date: 7 Dec 2005 13:51:48 -0800
Message-ID: <1133992308.569062.326920_at_g14g2000cwa.googlegroups.com>


Jon Heggland wrote:
> In article <1133896860.912140.197720_at_f14g2000cwb.googlegroups.com>,
> boston103_at_hotmail.com says...
> >
> > > > > > Sorry, one cannot get more specific than defining truth table as
> > > > > > that's the only way to describe what the logical operations mean.
> > > > >
> > > > > Of course one can. One can define the truth table for equivalence, for
> > > > > one thing!
> > > >
> > > > So what ? What substance does equivalence as a logical connective add
> > > > to the game ? It's just another truth table, that's all.
> > >
> > > Now you really boggle my mind. One minute, you claim that truth tables
> > > are the end all, be all desideratum for Codd's meaning; the other, you
> > > say they don't have any substance!
> >
> > I do not understand that, especially the part about my claiming that
> > "they don't have any substance".

>

> Read your own statements, quoted above. I really can't make it much
> clearer than that.

OK, so you are claiming that I've said that "they [truth tables] don't have any substance" even though I, in fact, did not say any such thing ? Nice touch.

>

> > I'll try to re-phrase. The usual way to define what a logical
> > connective is about is to provide its truth table. The truth table
> > uses logical constants to do so. Therefore, it's immaterial whether
> > or not the logic designer gave a complete set of such tables in order
> > to *see* that some strings of characters indeed are logical constants.
>

> I'll say it yet again: That's not what I am contesting. The only thing
> we are arguing about, as I see it, is whether Codd intended his missing
> truth table for equivalence to look like this:
>

> T w F
> ---------
> T|T w F
> w|w T w
> F|F w T
>

> ... or this:
>

> T w F
> ---------
> T|T w F
> w|w w w
> F|F w T
>

> > It's intersting that you've mentioned that. In Lukasiewicz's 3VL,
> > they are not, but in Kleene's style 3VL, they are. Since we do not
> > know what 3VL variety Codd used, it would be prudent to refrain from
> > trying to criticize him for alleged 'oversights' with respect to the
> > 3VL.
>

> Yay! A fresh argument! Can you give a link to Kleene's 3VL, or a short
> summary? Or the equivalence truth table?

It's not a "fresh argument", because we do not *know* what 3VL Codd meant. It's assumed, maybe erroneously, that Codd used Lukasiewitcz's logic rataher than Kleene's, in particular because Codd talks about tautologies that Kleene's logic simply does not have and Lukasiewicz's does.

For AND, NOT and OR, Kleene's truth tables are the same as Lukasiewicz's, but for the imlication and equivalence, they are different. In particular, the equivalence has truth table is:

x y <-->
T T T
T u u
T F F

u T u
u u u
u F u

F T F
F u u
F F T

>

> > > > "they should be treated uniformly" because the latter begs the question
> > > > "what do you mean by 'uniformly' ?" whilst the former does not.
> > >
> > > No, *your* interpretation begs the question "what do you mean by
> > > 'uniformly'?". My interpretation does not.
> >
> > Your interpretation is based on what ?
>

> In my interpretation, the mere presence of truth tables does not imply
> without a doubt that w = w (equivalence) should be true in a truth value
> context.

In the truth tables context, 'w=w' is not an equivalence, but an equality expression which trivially evaluates to TRUE by virtue of 'w' being one of three truth values.

>Thus, the "treated uniformly" has an obvious and simple
> meaning: w = w is *always* w, regardless of context.

That is wrong, even in Kleene's system w=w evaluates to true assuming w is one of the three truth values.

>

> > Gee, I wonder how SQL manages to define constraints, then. The values
> > are used implicitely, you've not provided sufficient rationale for
> > storing them in the database.
>

> Neither have Codd. Read some database textbooks. Most suggest "flag"
> attributes (booleans) for implementing overlapping entity subclasses.

What would be an example of such overlapping entity subclass ?

>

> > > Then suggest another name you'd prefer I use. I've asked you for such a
> > > name three or four times. I'll call it Lukasiewiczian, if you don't come
> > > up with anything easier to type.
> >
> > Why not call it a logical value ?
>
> Because that will be confused with Boolean?

A 3VL value then if one wants to be specific as to what logic is meant,  but surely not Boolean. Truth value is also not bad.

>

> > > > if I were to store a 3VL constant I would
> > > > just do so regardless of what's it called NULL, UNKNOWN, 1/2, or
> > > > something entirely different.
> > >
> > > "Just do so", as if by magic? Please. If NULL is used both as 'missing'
> > > and as a normal value for a data type, how do you formulate your DML
> > > statement?
> >
> > Please provide an example of a statement that one cannot formulate if
> > NULL is used as a logical constant.
>

> Say we have a table of persons. We use a "logical value" column (3VL
> logic) to store each person's opinion on whether capital of Honduras is
> Oslo. Some persons say that it is, so we set their column to TRUE. Some
> say that it isn't, so we set it to FALSE. Some say they don't know, so
> we set it to UNKNOWN. Some persons haven't been asked, so we set their
> column to NULL. If we use NULL for UNKNOWN, we can't differentiate
> between persons who don't know, and persons who haven't been asked.

It's a rather contrived example because what's stored should be a fact,  rtaher than a pre-cooked evaluation whether the fact is true or not. What you'd like to store is say a (person, location) pair (or tuple, does not matter). You'd want to deal with a domain of strings, extended by two markers, UNKNOWN and MISSING to represent an address. Now, *queries* would need to use a four-valued logic whose truth values may be {TRUE, FALSE, UNKNOWN, MISSING}. There would be no confusion at all. All that, of course, assumes that you want to abandon the 2VL.

Btw, Codd dealt with a 4VL too.

>

> > > Irrelevant. They may be logical constants, but that has no bearing at
> > > all on whether or not he uses the conventional 3VL equivalence relation.
> > > In fact, as I may have said before, the text suggests that he doesn't.
> >
> > What do you mean by "3VL equivalence relation" ? '<->' is not a
> > relation.

>

> Strike the word "relation", then.
>

> > Then he would be using Kleene's 3VL. We just do not know since he
> > never had need to define or use '<->' anywhere. Besides, I hope you
> > realize that whilst 'w<->w' may be defined as evaluating to UNKNOWN,
> > 'w=w' always evaluates to TRUE by virtue of being a logical constant
> > denoting the same thing/notion.
>

> Earlier, you said
>

> '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.'
>

> Codd says null=null is UNKNOWN. Either he is here redefining the notion
> of equality,

Yes, he does.

> in which case he might very well do the same for logical
> constants/values (for reasons of uniform treatment), or he uses '=' to
> denote equivalence.

No, he might not because if one redefines the equality for logical truth values, such logic ceases to exist.

>This last is the case in most computer systems I

> know, and in SQL in particular, or else "SELECT * FROM table WHERE 2 + 2
> = 4" would never return anything. Either way, your argument is
> irrelevant---and I thought we actually agreed earlier that it is
> equivalence that matters here?

You might be confused about two kinds of equivalence in logic, equivalence as a logical connective (<-->) and equivalence as logical expression equivalence (<==>). The former sometimes is called material equivalence/a biconditional, the latter *logical equivalence*.

[To be continued ;)] Received on Wed Dec 07 2005 - 22:51:48 CET

Original text of this message