# Re: Undefinedness

Date: Thu, 22 Nov 2007 09:39:41 -0800 (PST)

Message-ID: <ea3deb47-3697-4eb5-8b4f-34cf2ef2ec25_at_t47g2000hsc.googlegroups.com>

On Nov 21, 2:22 pm, "David Cressey" <cresse..._at_verizon.net> wrote:

*> "JOG" <j..._at_cs.nott.ac.uk> wrote in message
**>
*

> news:84c11971-6500-48e4-ba0f-b8b659f390da_at_d61g2000hsa.googlegroups.com...

*>
**>
**>
**> > Word up CDT. How the devil are you all? Well, I return with a question
**> > that as ever highlights my complete lack of formal mathematical
**> > training, and in light of knowing no logicians in my daily life (funny
**> > that), I was hoping that one of you kind folks might be able to
**> > advise:
**>
**> > Say I had a set of 3 encoded propositions:
**> > R := { {(Name, Tom), (Age, 42)}, {(Name, Dick), (Age, 16)}, {(Name,
**> > Harry)} }
**>
**> > (note that Harry's Age is missing, so instead of adding a null, i've
**> > intentionally just left the attribute out. Just ride with such oddness
**> > for now if you would.)
**>
**> > What if I deigned to create a simple 'adults' subset of this set of
**> > propositions, by creating a predicate that only returned the elements,
**> > p, which contained an age attribute greater than 18. Could I state
**> > this as (where E signifies set membership):
**>
**> > Adults := { p E R | EXISTSx ( x > 18 && (Age, x) E p ) }
**>
**> > My question obviously hinges around Harry's missing age attribute. In
**> > this case would the EXISTSx (...) part of the set's intension simply
**> > return a FALSE, or will I end up in the quagmire of 3VL with an
**> > UNDEFINED? My instinct is that I am still in 2VL given there is no
**> > null floating about, but since the recent, excellent discussions of
**> > Jan's DEF operator, and having delved into beeson's logic of partial
**> > terms, I am not at all confident.
**>
**> > Any comments are much appreciated, and regards to all, Jim.
**>
**> I'm no mathematician or logician, but I'll answer anyway.
**>
**> To me, it dpends on whether the relationship (Name, Age) follows the open
**> world assumption or the closed world assumption.
*

Weather_is = { condition: Hot }

Weather_is_not = { condition: Cold }

Domain = {Hot, Cold}

Perfectly fine with full information, and a constraint that a condition can't appear in both. And I can happily extrapolate from CWA from the first relation that: !is(condition:cold)), and from the second !is_not(condition:hot). Nice...

...until we're faced missing information. If both relations are empty (because we just don't have the data say), then CWA tells me that: !Weather_is(condition:Hot) and !Weather_is_not(condition:Hot). It is both hot and not hot. Genius. I don't see how CWA based directly on what propositions state can ever be justified for a system working in the real world (TM).

Equally CWA would suggest that Harry is neither a child nor an adult in the other example. Meh.

> If it's the closed world

*> assumption, then we would have to say that Harry is not included with the
**> adults. However, if we defined another set, Children,
**>
**> Children := { p E R | EXISTSx ( x < 19 && (Age, x) E p ) }
**>
**> Please note that Harry is excluded from Children as well.
**>
**> If we had a rule that says that every person mentioned in R is either a
**> child or an adult, that would be tantamount to requiring that the entry for
**> Harry be rejected at time of insertion.
**>
**> BTW, I see nothing odd about your notation.
*

Huzzah ;)

> NULLS are not needed. Hwever,

*> your proposition R actually contains two propositions: first that the named
**> person exists, and second that the person named with an age has that age.
*