# Re: A Simple Notation

Date: Thu, 05 Jul 2007 13:07:47 -0300
Message-ID: <468d173e\$0\$4299\$9a566e8b_at_news.aliant.net>

```> Bob Badour wrote:
>
```

>> David Cressey wrote:
>>
>>> news:468cef93\$0\$4340\$9a566e8b_at_news.aliant.net...
>>>
>>>> David Cressey wrote:
>>>>
>>>>> In Boolean algebra, you could, if you wanted to, express everything by
>>>
>>>
>>>
>>> just
>>>
>>>>> using brackets, as follows:
>>>>>
>>>>> [A B] means NOT (A AND B)
>>>>>
>>>>> This notation can be extended to 3 or more operands, as follows:
>>>>>
>>>>> [A B C] means NOT (A AND B AND C)
>>>>>
>>>>> "AND" is associative, so there's no confusion.
>>>>>
>>>>> You can reduce the notation to 1 operand as follows:
>>>>>
>>>>> [A] means NOT (A)
>>>>>
>>>>> And to zero operands as follows:
>>>>>
>>>>> [] means TRUE
>>>>> [[]] means FALSE
>>>>>
>>>>> You can build up everything else from there. For example,
>>>>>
>>>>> [[A B]] = A AND B
>>>>> [[A] [B]] = A OR B
>>>>>
>>>>> Now my question is, can you do the corresponding thing in the RA,
>>>
>>>
>>>
>>> using
>>>
>>>>> <NOT> and <AND>? I don't see why not.
>>>>>
>>>>> So you would get (for example)
>>>>>
>>>>> [[A B]] = A <AND> B
>>>>> [[A] [B]] = A <OR> B
>>>>>
>>>>> As written text, this notation is rather unwieldy, but you can
>>>
>>>
>>>
>>> represent it
>>>
>>>>> fairly tightly in internal data structures. And its simplicity does
>>>
>>>
>>>
>>> make
>>>
>>>>> some things easier.
>>>>
>>>>
>>>>
>>>> The RA generally replaces NOT with MINUS to avoid dealing with
>>>> open-ended or infinite relations. D&D show a similar approach in the
>>>> version of TTM that I have where they allow open-ended negation. They
>>>> use it to show that function calls are just another sort of relation
>>>> etc. Paul C mentions it here a lot.
>>>>
>>>> Then again, perhaps you refer to the same thing with <AND> and <OR> in
>>>> which case, I simply agree that using [A B] to mean <NOT>(A <AND> B)
>>>> achieves something similar.
>>>
>>>
>>>
>>> The truth is that <AND> and <OR> are new territory for me, and quite
>>> But if the RA really is isomporhic to Bollean Algebra, then I'd like to
>>> leverage what I think I do understand in order to better understand
>>> something else.
>>>
>>> As far as replacing <NOT> with MINUS, something similar is done with 2s
>>> complement integer notation. We represent -1 in the computer as 2^X-1
>>> where X is some number like 32.
>>> My mind is not made up on this score. It's clear that, at
>>> implementation
>>> time, you have to settle for what's finite, as least witihn a certain
>>> limited time frame.
>>
>>
>>
>> I see the problem of NOT as being more than just the infinite. Most
>> actual uses of NOT in human communication have some implicit or
>> explicit universe of discourse. From a computational perspective,
>> unless one makes the universe explicit, which is basically what MINUS
>> does, the result is indeterminate even when finite.
```>
> Just agreeing (I think) - in Codd's RM, "NOT" means complement relative
> to a relation with a specific heading.  For argument's sake, if today's
> giga-byte machines were limited to types of single byte integers, many
> negated results would be tractable.  For the average person (like me!)
> <AND> is not hard to see as inference, <NOT> seems inherent in "DELETE"
> and <OR> seems necessary to "INSERT". Mechanically, we could get rid of
> any two ops if we wanted, but they are helpful at least for our
> intuition.  They are merely devices and remind me that RM
> implementations can only imitate what we think we are modelling whereas
> the mystical school seems to believe that we can echo exactly.  The
> usefulness of the RM approach seems to me to be that when comparing the
> machine result to our own activities there is only one mental
> transformation needed, ie., from "real world" to first-order logic and
> sets - no need to ask whether the machine is wrong assuming it is
> faithful to FOL.

```

In a mathematical sense, the domain of cattle is vast--even infinite. We can talk about hypothetical cows, steers, bulls, calves etc. that never existed and will never exist.

My neighbours operate a feedlot. To my neighbours, the concept of cattle who do not have 3 or more permanent teeth is a very important concept. When discussing this concept with my neighbours, the universe of discourse is always obvious.

If we are talking about my neighbours sorting their cattle, the universe of discourse is the finite set of cattle in their feedlot. If we are talking about the price of cattle, the universe of discourse is the finite set of cattle within a reasonable travelling distance from the market.

In either case, the actual universe of discourse is infinitesimally small compared to the vastness of the mathematical domain of cattle. In both cases, the concept of "NOT 3 or more permanent teeth" is fully understood by all conversants from the context of the discussion.

Even the finite domain in a logical or physical data model of a computer system will generally be much larger than the known universe of discourse. One could argue that including all of the values in the domain that are not in the universe of discourse is not only cost ineffective but simply wrong.

Replacing NOT with MINUS allows one to explicitly state the universe of discourse--including the entire domain when that is the appropriate universe. Received on Thu Jul 05 2007 - 18:07:47 CEST

Original text of this message