[comp.databases] errors and 4-valued logic

aaron@grad2.cis.upenn.edu (Aaron Watters) (10/11/90)

In response to my brief account of one variety of 4-valued logic
where I claimed:

`the king of North America is bald' is error.

Chuck Phillips  writes:
:Clairification: A statement requiring the existance of the non-existant to
:be true, is simply false, not an error.  However, a domain violation _is_
:an error.  (e.g. "I am green years old.")
:
:If "king" is an out-of-band attribute, then the statement is an error; if
:"king" is within the defined domain, then the statement is simply:
:false.

Now I'm willing to admit that this may be what the Prophet Codd says, but
I respectfully disagree.

if ``The king of North America is bald'' is false then we infer
that ``The king of North America has hair'' must be true, right?

However neither statement can be meaningfully asserted to be true
because there is no king of North America.  My favorite
version of 4-valued logic resolves this difficulty by calling
both statements `overdefined' or `erroneous.'  I would argue that
treating either statement as having a truth value is 
actually illogical. -aaron.

PS: I also claim that `I am green years old' can reasonably be
treated as false.

gordon@meaddata.com (Gordon Edwards) (10/12/90)

In article <30999@netnews.upenn.edu>, aaron@grad2.cis.upenn.edu (Aaron
Watters) writes:
|> In response to my brief account of one variety of 4-valued logic
|> where I claimed:
|> 
|> `the king of North America is bald' is error.
|> 
|> Chuck Phillips  writes:
|> :Clairification: A statement requiring the existance of the non-existant to
|> :be true, is simply false, not an error.  However, a domain violation _is_
|> :an error.  (e.g. "I am green years old.")
|> :
|> :If "king" is an out-of-band attribute, then the statement is an error; if
|> :"king" is within the defined domain, then the statement is simply:
|> :false.
|> 
|> Now I'm willing to admit that this may be what the Prophet Codd says, but
|> I respectfully disagree.
|> 
|> if ``The king of North America is bald'' is false then we infer
|> that ``The king of North America has hair'' must be true, right?

I respectfully disgree with your disagreement. :-)  You treat the statement,
"The king of North America is bald" as  having a single semantic.
What you really have is:

assertion :-
	is_ruled_by(North_America, king),
	is(king, bald).  /* read as pseudo prolog */

Both predicates must evaluate to true for the assertion to be true.  North
America does not have a king, but North America could potentially be ruled by
a king.  Any land mass that supports human life can have any form of government
so I don't think we have a domain problem.  Since the first predicate is false,
the assertion is false without saying anything about the baldness predicate.  

|> However neither statement can be meaningfully asserted to be true
|> because there is no king of North America.  My favorite
|> version of 4-valued logic resolves this difficulty by calling
|> both statements `overdefined' or `erroneous.'  I would argue that
|> treating either statement as having a truth value is 
|> actually illogical. -aaron.
|> 
|> PS: I also claim that `I am green years old' can reasonably be
|> treated as false.

OK, I'll bite.  How?

-- Gordon     (gordon@meaddata.com)

aaron@grad2.cis.upenn.edu (Aaron Watters) (10/13/90)

>|> In response to my brief account of one variety of 4-valued logic
>|> where I claimed:
>|> 
>|> `the king of North America is bald' is error.

In article <1602@meaddata.meaddata.com> gordon@meaddata.com (Gordon Edwards) writes:
>
>I respectfully disgree with your disagreement. :-)  You treat the statement,
>"The king of North America is bald" as  having a single semantic.
>What you really have is:
>
>assertion :-
>	is_ruled_by(North_America, king),
>	is(king, bald).  /* read as pseudo prolog */

Not at all.  This is the statement `X is the king of North America
and X is bald.' which is false for all X.  Not at all equivalent to
the statement `The king of north america is bald.' which involves
no quantification.'  If we have a relation
  landmass(Name,Kingname,Kinghashair)
Then the entry for northamerica should read
  landmass(`north america', NOT_APPLICABLE, NOT_APPLICABLE)
and the answer to the question `what is the name of the king
of north america?' and `Is the king of north america bald?'
are both ILLFORMED QUERY or ERROR.


>|> 
>|> PS: I also claim that `I am green years old' can reasonably be
>|> treated as false.
>
>OK, I'll bite.  How?

I am 2 years old (for the sake of argument and privacy).
It is perfectly reasonable to say that
  `I am X years old' is false exactly when x=!2.		-aaron