## [REBOL] Sameness - an abstract approach.

### From: lmecir::mbox::vol::cz at: 13-Feb-2003 15:21

Hi Romano and all,> I should like to know how you (and the official doc) interpret this point. > Perhaps all this stuff is not clear to me.It may be necessary to understand "the nature" of the values to be able to understand the sameness (or the equality). What are Rebol integers? ================ We may admit, that the following sentence is true: "Rebol integers may reside in computer memory". (Any objections?) Although the above sentence looks too primitive to be useful, it allows us to draw a surprising conclusion: 1) We know, that the computer memory is an abstraction these days - see notions like: "logical memory", "virtual memory". 2) Since the computer memory is an abstracttion, it surely isn't able to contain physical things, that is why Rebol integers are abstractions too. What is an abstraction? ================== I think, that an abstraction is a property, that some physical things have in common. Let's suppose, that two computer registers represent a number 1. We may say, that the number 1 is the property, that these registers have in common - namely the fact, that they both represent the same number - number 1. Now we can ask another question: are Rebol integers the mathematical integers? They have got a lot in common, because mathematical integers are abstractions exactly as Rebol integers. Nevertheless, there is at least one property, that Rebol integers have, which isn't observable for mathematical integers: there is a maximal Rebol integer. Do Rebol integers have a colour? ======================= Some physical things representing Rebol integers may be red, but that doesn't mean, that all physical things able to represent Rebol integers are red. Therefore I think, that Rebol integers don't have a colour property. There is no need to ask Rebol designer to find out. Do Rebol integers have a position? ======================== As an example take a block: b: [1] You may say, that the integer value 1 contained in the block B has got a position 1. Even though you have got the right to say so, I have got the right to ask: Is the position a property of Rebol integers? ============================== These answers came to my mind: 1) The position is a property of Rebol integers. 2) The position isn't a property of Rebol integers. 3) It is undecidable, whether the position is a property of Rebol integers. 4) There is only one man, who can and must be enforced decide, whether the position is a property of Rebol integers and before he decides, no answer can be given. Which answer is correct? ================= Let's use an experiment to find out. First, we can prepare a block C having the length 2 as follows: c: [1 1] Now, let's have a function F defined as follows: f: func [i [integer!]] body I didn't specify the BODY of F, but somebody clever might try to surprise us all. The documentation states (cited freely, any objections?): "we can supply an integer value to the function F as its argument". Let's ask another question: Can F tell, whether it obtained the number 1 with the position 1 in C or the number 1 with the position 2 in C? ========================================================================== I think, that we all agree, that the function F cannot tell. (any surprises?) This means, that if we can take the above cited information for granted, we must come to the conclusion, that "Rebol integers don't have a position", otherwise the position should have been known to F as the property of the integer value supplied as the argument. If this is true, how come, that we can tell, that "number 1 is at the position 1 in C"? =============================================== Because that is the property of C. Summary: there is only one Rebol integer number 1 not having any position at all, while we can have many positions referring to it. Regards -L