Re: Storing data and code in a Db with LISP-like interface

From: Dmitry A. Kazakov <mailbox_at_dmitry-kazakov.de>
Date: Fri, 5 May 2006 21:02:43 +0200
Message-ID: <1uj550jui4zlm$.6umumfu49c3j$.dlg_at_40tude.net>


On 5 May 2006 09:54:03 -0700, vc wrote:

> Dmitry A. Kazakov wrote:

>> On 5 May 2006 04:18:44 -0700, vc wrote:
>>
>>> Dmitry A. Kazakov wrote:
>>> [...]
>>>>But ADTs have far less problems with set theory as the application
>>>> domain than RM. Trivial examples are:
>>>>
>>>> 1. Power set operation
>>>> 2. Set complement in an infinite universal set
>>>> 3. Infinite sets modeled by finite classes of equivalences
>>>
>>> The paragraph above does make any obvious sense.  Could you elaborate ?
>>
>> Above are set operations. Take SQL, and create power set of a table column,
>> row, table, set of tables.

>
> That's a silly request since it's widely know that ZFC does not state
> *how* to construct a powerset,

Neither it states *how* to construct union or intersection.

> and constructive set theories do not
> even have the powerset axiom (Martin-Lof).

Ah, but to create {A} from a given set A is definitely constructive. Yet, you cannot this either. The problem is not in the number of elements, and sets we consider are finite anyway.

> What about (2) and (3) ?

2. I don't have problems with A - B, because I am not required to present all elements of the set. To some extend I can go non-constructive.

3. I can construct floating-point numbers [intervals with rational bounds], for example. I can do things symbolically. I don't need to present pi as a set to be able to perform some operations on it.

>>Can you create Z in RM?

>
> In RM, Z is a predefined elementary type,

Why do you need elementary types? Set theory does not need them. If you guys claim that 1) set theory is everything one needs, 2) your RM perfectly embodies the theory, then a naive listener (like me) could come a conclusion that 1 & 2 => integers, floats, strings are all constructed using sets.

> there is no need to
> construct it. Besides, can you construct Z *anywhere* ?

Any finite subset of, in any language that supports ADTs.

> "Die ganze
> Zahl schuf der liebe Gott, alles Übrige ist Menschenwerk"

Huh, if Kronecker lived today, he could say that God wrote ten commandments in SQL? (:-))

>> Use the standard
>> procedure to create first 100 naturals:
>>
>> {Ø}, {{Ø}}, {{{Ø}}}, ...

>
> You are confused again, those are not naturals, those are Von Neumann
> numerals.
>
>>> [...]
>>>>  In mathematics you can go either way. Is integer
>>>> number rational? How different pairs (1,1),(6,6) can both be 1?
>>>
>>> You are confused, amigo.  In the secondary school algebra,  one learns
>>> that an integer number ain't no rational.
>>
>> That depends on construction, they could well be. In the secondary school
>> one learns that this does *not* matter.

>
> What does not matter ? What alternative rationals do you have in mind ?

I can add new elements to Z instead of constructing a set of pairs and then choosing subsets there. There is no *the* rationals. You cannot tag numbers with small etiquettes or RFID chips in case somebody could steal them.

The notion of subtyping relation based on subsets of domain sets is counterproductive. I see no reason why a more universal and consistent approach should harm RM in any way. Especially regarding the fact that implicit types conversions are widely used anyway in the languages like SQL. Is "12" 12?

>>> Rationals are the set of
>>> equivalence classes of pairs of integers. The pairs (1,1) and (6,6)
>>> simply belong to the same equivalence class,
>>
>> Welcome in club...

>
> What's that supposed to mean ?
>>> there is no need to use
>>> 'inheritance' or some other OOP mumbo-jumbo when talking anout this
>>> sort of things.
>>
>> That mumbo-jumbo expresses algebraic properties. Integer is a subtype of
>> Rational in the same sense as a ring exists in a field.

>
> So using your favourite OOP mumbo-jumbo, how would you go about
> constructing rationals?

I am free to consider integers a subtype of rationals regardless their construction (=representation.) Important here is only that integer inherits +, -, * which I wish to reuse as well as the programs written for rationals in terms of these operations.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
Received on Fri May 05 2006 - 21:02:43 CEST

Original text of this message