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

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Thu, 04 May 2006 23:00:18 GMT
Message-ID: <6Iv6g.3304$A26.86233_at_ursa-nb00s0.nbnet.nb.ca>


Dmitry A. Kazakov wrote:

> On Thu, 04 May 2006 15:12:02 GMT, Bob Badour wrote:
>

>>Dmitry A. Kazakov wrote:
>>
>>>On Tue, 02 May 2006 17:58:44 GMT, Bob Badour wrote:
>>>
>>>>With all due respect, the type 'set' defines values and operations. 
>>>>Without the operations, the 'set' is pretty much useless.
>>>
>>>Any ADT defines values (the domain set) and the operations defined on. ADT
>>>"Set" does it as well.
>>
>>Look, pointing out that one can use sets descriptively hardly comes as a 
>>shock or surprize to those of us who suggest applying set theory and 
>>predicate logic is the appropriate way to handle data management. After 
>>all, if one could not use sets to describe just about anything, they 
>>wouldn't really work for that purpose, now would they?
>>
>>However, neither classes nor objects are a direct application of either 
>>set theory or predicate logic.

>
> I don't know what a "direct application" is. Is functional analysis a
> direct application of?

Sure.

  Types theory is or is not in exactly same sense.
>

Agreed. However, type theory is not the exclusive domain of OO, and OO does it particularly poorly.

>>>>Container libraries are for shit. Give me mathematics over some crappy 
>>>>physical implementation.
>>>
>>>What kind of mathematics you need?
>>
>>Predicate logic. Set theory. Anything else that applies to the problem 
>>at hand.

>
> Fine, abstract data types theory (not to mix with Russell-Whitehead's and
> constructivist's ones) does.
>
>>>1. Problem space? Program objects are not mathematical ones.
>>
>>But relations are. Which is why your original assertions are nonsense.

>
> Should it mean that RM is used to solve set-theoretic problems? Are you
> guys proving continuum hypothesis in SQL, or what? I take my hat off! Alas,
> my customers have money for other problems, and navigate other spaces...

They navigate the spaces RM pilots best.

>>>>A supertype is a superset of values
>>>
>>>This is a common misconception. The domain set of a supertype is not a
>>>subset of the domain set of its subtype.
>>
>>No, it is a superset. I thought I was clear on that.

>
> OK, you share that misconception.

It is not a misconception. All the values of a subtype are necessarily values of the supertype. This makes the supertype a superset of values. All of the operations that apply to values of a supertype also apply to values of the subtype. This makes the supertype have a subset of operations.

Any type theory that gets the above wrong is for shit.

>>>>and a subset of operations.
>>>
>>>Not quite. To be a suprtype means to export operations to the subtype. If
>>>all operations are exported, then they from a proper subset.
>>
>>I don't give a shit about physical implementation details. Correctness 
>>is a completely separate concern. You seem totally oblivious to this 
>>important fact. If we are applying mathematics, then quite clearly a 
>>supertype is a superset of values and a subset of operations.

>
> No, if subsets were considered in place of injective mappings, that
> wouldn't be sufficient to create a powerful enough type system. That's my
> personal opinion, as I said, there is no agreement on the issue.
>
> Anyway, can we agree on that types theory can be formalized? Then we can
> proceed to the next point: both RM and OO are covered by that theory.

So? The RM is a direct application of set theory and predicate logic. OO is not.

If describing OO using sets makes OO an application of set theory, OO is equally an application of swahili since one can describe OO in that language too. This view would render the verb 'to apply' meaningless. I consider that stupid.

Whereas OO is not predicate logic, the RM is predicate logic. Whereas OO is not set theory, the RM is set theory.

A screw is an application of the simple machine known as a ramp. It is not an application of static analysis; although, one can describe some functions of a screw using static analysis.

If you cannot understand such a simple distinction, your problems go a lot deeper than I thought.

>>>> Think about tables of tables and operations
>>>>
>>>>>defined on them. That would be an RM equivalent of generic programming.
>>>>
>>>>Yes, it would. However, you have failed to establish that OO is an 
>>>>application of set theory. At best, you have suggested one can use sets 
>>>>to describe the ad hoc shit the OO disciples promote.
>>>
>>>Which is exactly an application of.
>>
>>OO is not a direct application of set theory.

>
> Yet it is based on that.

Sorry, you will have to do better than make the assertion. Can you point to the set theory Dahl and Nygaard cited in the development of Simula? Since the word 'class' came from Tony Hoare's proposal for type-safe physical pointers, ie. his proposal for a record class in Algol, perhaps you can point to the bibiliography where he cited set theory when choosing the name? I could not find a bibliography or even the text for that article.

On the other hand, Codd's 1970 ACM paper very clearly shows that the RM is set theory and his later work establishes the equivalence between that set theory and predicate calculus.

>>One can apply set theory to describe anything,

>
> This is technically wrong. See Hilbert's program.

What about it? Are you suggesting that limitations to a description make it any less a description? An incomplete description is still a description. In fact, that's one of the reasons I say semantics are in your head.

>>which is why applying it to data management is so 
>>appropriate. Applying set theory to the task of describing some ad hoc 
>>shit doesn't make the ad hoc shit an application of anything.

>
> It is an application of and for the ad-hoc shit. Scatology is a science,

Exactly! And that describes OO to perfection. Received on Fri May 05 2006 - 01:00:18 CEST

Original text of this message