Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> comp.databases.theory -> Re: The wisdom of the object mentors (Was: Searching OO Associations with RDBMS Persistence Models)
vc wrote:
> [...]
>
>>The third problem is that >>you need "=" for all things as well as literals for all things. It is a can >>of worms.
The problems regarding equality and literals apply equally when one treats functions as object instances as when one treats them as relations so Dmitry basically hoists himself on his own petard.
Equality poses some problems. For instance cos(x-pi/2) = sin(x)
Unless I recall incorrectly, something I read recently about Church and the lambda calculus suggests that evaluating the equality of two arbitrary functions is undecidable.
If one assumes cos and sin are defined on an infinite range, which is impossible to implement on a finite computer, then it would take infinite resources to verify the equality above. If one assumes cos and sin are defined on the same large finite range, the computer will treat the above as unequal due to fact that (x-pi/2) is defined for more values at the negative end of the range than is x and for fewer values at the positive end of the range than is x.
ie. if the range of x is [MIN_X,MAX_X], then the range of (x-pi/2) is [MIN_X-pi/2,MAX_X-pi/2]
>>Especially function literals aren't easy. What is a literal of >>sine?
I gave two above, which I repeat here:
sin(x)
cos(x-pi/2)
Actually, there are potentially several in math depending on whether 'literal' means 1) a terminal symbol in a formal grammar, 2) a notation for representing a value, or 3) an elementary proposition or its negation in logic. One can subsume all three uses under the broad field of mathematics.
http://en.wikipedia.org/wiki/Literal
>>Even if they model uncountable sets?
One might name an uncountable set with some symbol and write expressions using that symbol. However, no finite computer can evaluate all of the elements of such a set.
Once again, that applies equally to functions as object instances as to anything else.
>>. In general, when you want to enforce some >>semantics on the resulting function.
Good question. Perhaps he meant something along the lines of Hoare Logic with pre- and post- conditions? Or does that even matter as much as things like distributivity, transitivity, commutativity, associativity etc. which are not semantics really; although, they are properties one can derive from the semantics of functions?
>>>>Because in this particular case function is a value and values are outside >>>>the language scope.
>>Right. The problem is that mathematical constructs modeled in a >>computational framework might be too large for any finite state machine. So >>an uncountable set of real numbers is replaced by a finite set of >>intervals.
You answered your own question. If two real numbers or unrepresentable rational numbers round to the same representable rational, then the computer will consider them equal. Thus, each representable rational represents an interval of reals or of rationals that will round to it.
>>That's the gibberish in which I am talking. We can't have all >>the table of real-valued functions.
>>The size of this table is aleph-2!
It makes for a better straw man if it is, though.
>>Where you find a hard disk of this size? Fortunately, from all this table, >>today, I need only sine. So I say let sine be denoted as 0x2.
He makes sense. He is attacking a straw man he constructed. It's pointless and unpersuasive, but it is easy enough to see what he is up to.
>>Nevertheless, nothing prevents us to formalize these bastards and use >>mathematical rigour to handle them.