# Re: A Simple Notation

From: paul c <toledobythesea_at_oohay.ac>
Date: Thu, 05 Jul 2007 15:08:08 GMT
Message-ID: <sP7ji.89477\$NV3.3893_at_pd7urf2no>

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

p Received on Thu Jul 05 2007 - 17:08:08 CEST

Original text of this message