Re: On Formal IS-A definition

From: David BL <davidbl_at_iinet.net.au>
Date: Tue, 11 May 2010 22:53:56 -0700 (PDT)
Message-ID: <3c944c41-cc46-45c7-9c16-412c6c22f6a3_at_g39g2000pri.googlegroups.com>


On May 11, 10:27 pm, Keith H Duggar <dug..._at_alum.mit.edu> wrote:
> On May 11, 6:02 am, David BL <davi..._at_iinet.net.au> wrote:
> > On May 11, 11:00 am, Keith H Duggar <dug..._at_alum.mit.edu> wrote:
> > > On May 10, 7:29 pm, David BL <davi..._at_iinet.net.au> wrote:
> > > > On May 10, 2:06 pm, Keith H Duggar <dug..._at_alum.mit.edu> wrote:
> > > > > On May 8, 9:44 pm, David BL <davi..._at_iinet.net.au> wrote:
> > > > > > On May 9, 2:34 am, Nilone <rea..._at_gmail.com> wrote:
> > > > > > > On May 8, 7:11 am, David BL <davi..._at_iinet.net.au> wrote:

>
> > > > > > > > Values are immutable. Variables accessed by imperative programs are
> > > > > > > > usually mutable. Sets are values. If a set contained a variable then
> > > > > > > > it wouldn't be immutable.
>
> > > > > > > We can generalize values and variables to elements of domains, where a
> > > > > > > value is any element of a domain while a variable is an element of a
> > > > > > > domain for which a homomorphism to another domain is defined.
> > > > > > > Assigning to a variable would reduce to modification of the
> > > > > > > homomorphism, so sets containing variables would not be modified by
> > > > > > > assignment to a variable.
>
> > > > > Mathematically there is no "modification" or "mutation" nor
> > > > > any such anthropomorphic passage of time sense. A variable is a
> > > > > symbol. That symbol might have a binding. That binding is also a
> > > > > relation whose key is the variable symbol and in the case of an
> > > > > imperative interpretation if the variable is "mutable" also the
> > > > > "time" or "program counter" or similar is part of the key. For
> > > > > example the variable X might have the following binding relation
>
> > > > > S T V
> > > > > X 0 0
> > > > > X 1 0
> > > > > X 2 5
> > > > > X 3 5
> > > > > ...
>
> > > > > where S is the variable symbol, T is the "time", and V is the
> > > > > bound value. But note that nothing "changes" at T=2 from this meta
> > > > > perspective of math where "time" is just yet-another dimension.
>
> > > > > > Wrong. You can't modify a homomorphism just like you can't modify a
> > > > > > number or a set. Homomorphisms are values and are therefore
> > > > > > immutable. You have invented a homomorphism variable to hold a
> > > > > > homomorphism value. What you claimed were variables were just values
> > > > > > intended to act as inputs to a homomorphism function.
>
> > > > > Except his error is irrelevant. Variables are symbols and are
> > > > > representable by sets. Their bindings (regardless of extent ie
> > > > > dependence on "time") can be represented by relations which are
> > > > > sets just as their interpretations are relations which are sets.
>
> > > > I haven't seen a variable yet. All you have provided are symbol
> > > > values and relation values. I'll agree there's a variable when I see
> > > > one! There needs to be an imperative statement, a quantification in
> > > > a formula, a lambda expression, an integral etc.
>
> > > I almost don't have time to refute these inane flimflam
> > > "objections". But this one is so lame and easy as to nearly
> > > answer itself:
>
> > > var X = 0 ;
> > > var Y = 5 ;
> > > X = Y ;
> > > Y = 0 ;
>
> > I have no idea what point you think you've made.
>
> I have written down a set of imperative statements for logic's
> sake!

I never said otherwise

>If you cannot understand something as simple as the above
> then you cannot understand anything let alone lambda calculus,
> FOL, nor any other form of writing. I have to conclude at this
> point that you are just being obtuse for the sake of "saving
> face" or trolling or some other lameness.

No, I was asking what point you are trying to make. You appear to be foolishly or intentionally misinterpreting me. You previously said my objection was "lame". I was only trying to understand what we were actually arguing about.

> > Now there are some variables associated with that imperative
> > code when it executes on some computational machine.
>
> Wrong. There are variables in that code irrespective of any
> reference to any computation machine. Now we see that you are
> confusing implementation (abstract or physical) of evaluation
> with the expressions they evaluate.

It is a matter of definition. I prefer to consider variables to "exist at run time". I agree that it's common and reasonable to also call symbols in the source code "variables". Obviously there are important differences.

I used to prefer the latter terminology, but after coming to this newsgroup / reading C.Date's book I can see that the latter is more useful for database theory discussions (which normally doesn't care about how symbols are used in the source code written in some imperative language).

I once brought up the following C++ example on this newsgroup.

   int* p = new int;

A C++ programmer would only call p a variable because a variable is by definition a symbol in the source code. Indeed I was told that the C+ + standard is quite specific on this matter. In any case I was flamed by Bob and his friends by taking this position.

Bob's said that actually there are two variables involved. A pointer on the frame, and an int variable allocated on the heap. In his eyes any other point of view was stupid. Since that time I have generally used Bob's (i.e. Date's) definition of a variable: A variable exists in time and space and at a given time holds a particular value.

> > If you were thinking implicitly about this executing machine
> > when making your previous assertions we agree there are variables.
>
> LOL. No, I wasn't thinking implicitly about an "executing machine"
> because unlike you I'm not confusing expressions with evaluation.
>
> > However I got the impression you were claiming there were
> > variables irrespective of the computational machine.
>
> Yes that is what I claim and have claimed again.
> > That is ludicrous given that they are intimately tied to the
> > state of the computational machine.
>
> They are only so intimately tied in your confused brain. You are
> pulling in yet more distractions from the facts at hand:
>
> 1) a variable is a symbol ...
> 2) there are sets of symbols
> 3) there are sets of variables because they are symbols
>
> Now it's as if you have even forgotten about FOL variables that
> you ranted so much about. Are FOL variables "intimately tied to
> the state of the computational machine"?? Of course not! No
> more and no less that are the variables of any abstract syntax
> such as the above.

You appear very confused. There are three different uses of the term "variable" that have been used:

-  FOL variables which are used to express quantification in logic
-  symbols which are called variables in source code
-  variables in computational machines that hold values

 I suggest we henceforth only discuss FOL variables to avoid further mistakes.

> > > which exactly reflects the binding relation above. Do you
> > > still not comprehend? { X, Y } is a set of variables. For
> > > gods sake just google "set of variables" and see that the
> > > world of mathematics is replete with this concept.
>
> > Some people say "set of variables" when what they actually mean is a
> > set of symbols, and there is an intention for those symbols to be used
> > as variables (e.g. a summation index).
>
> What part of "a variable is a symbol" do you not understand?

Do you really want to start a long discussion on what "is a" means?

> > In order to appeal to authority we need a respected logician or set
> > theorist who will comment on whether variables really can appear in
> > mathematical sets. The question would have to be posed carefully
> > because it is unusual to consider variables to be part of one's
> > "ontology".
>
> LOL "really can appear". The only thing unusual are your
> bizarre attempts to redefine the word "variable" to contradict
> generations of mathematics and computer science. Actually, it
> is not so unusual. It happens all the time when people let pride
> get in the way of rationality and refuse to admit they were
> mistaken. You are singularly susceptible to that fault lately.

I'm not redefining it at all. I'm pointing out that you read too much into "is a".

> How about this for a coupe de grace, Stanford is world renown
> as one of the top universities for philosophy, mathematics,
> logic, epistemology, etc related fields. And they maintain
> one of the most accurate, detailed, and comprehensive online
> "encyclopedias" of logic. Read the following:
>
> http://plato.stanford.edu/entries/algebra/#Free
> http://plato.stanford.edu/entries/logic-combinatory/#3.1
> http://plato.stanford.edu/entries/consequence-algebraic/#2

> as just a few examples of the "set of variables" concept and
> that exact language used at by this world renown institution.
> Now, your head is chopped off. It is time to bow out, man up
> and just admit you were mistaken and stop wasting time.
>
> > Your whole argument depends on the meaning of "is a" in the natural
> > language sentence "a variable is a symbol". I hate to break the
> > news, but you should be aware that "is a" is a big can of worms.
>
> *sigh* this is getting sad. It is not a can of worms in this
> case, it is the simple "subset" meaning of "is a". Variables
> are a subset of symbols.

I was hoping not to get into a discussion about "is a". I'll assume you claim a variable is a kind of symbol and nothing more than a kind of symbol. [Compare this to CIRCLE is-a ELLIPSE where the analogy holds and "downcasts" can make sense versus COLOURED-RECTANGLE is-a RECTANGLE where it doesn't. We cannot treat a rectangle as a coloured rectangle because we don't know what the colour is].

So here's a set of symbols

{0,1,a,b,foo,x,u}

which ones are variables? What is the defining characteristic? I suggest it is only a matter of convenience to say, in some context, that {0,1,a,b,foo} shall designate a set of symbols to be used as function symbols, and {x,u} shall designate a set of symbols to be used as variables. Within the context of the expression {x,u}, these aren't and cannot be variables. Otherwise that wouldn't be a ground term and have an interpretation as a particular set. If you only comment on one point in this post, please make it that one!

Would you agree there isn't some absolute and universal determination of what symbols must be used for variables? In other words, do you agree that the designation of whether a symbol happens to represent a variable depends on a *context*?

> And by the way, as far as I can see
> you are alone in your inability to comprehend "a variable is
> a symbol ..."
> http://mathworld.wolfram.com/Variable.html

<quote>
"A variable is a symbol on whose value a function, polynomial, etc., depends."
</quote>

Q: If a variable is a kind of symbol and nothing but a symbol, how can it have a value (c.f. "... whose value ...").

> http://en.wikipedia.org/wiki/Variable_(mathematics)

<quote>
"A variable is a symbol that stands for a value that may vary;" ...
"Varying, in the context of mathematical variables, does not mean change in the course of time, but rather dependence on the context in which the variable is used."
</quote>

Q: If a variable is a kind of symbol and nothing but a symbol, how can it "stand for a value"?

Q: If a variable is a kind of symbol and nothing but a symbol, what is meant by *the* context in which it is used?

> http://plato.stanford.edu/entries/pm-notation/#2

<quote>
... the variable x is bound ...

... a detailed example involving quantified variables will prove to be instructive.
</quote>

Q: If a variable is a symbol and nothing but a symbol, what does it mean to say the variable is "bound"?

Q: If a variable is a symbol and nothing but a symbol, what is a "quantified variable"?

> > Evidently you place more importance on your vague intuition
> > of "is a" than the ridiculous outcome that necessarily follows
> > your kind of faulty reasoning : i.e. that a variable is a value,
> > and variables never change.
>
> Evidently you place little importance on the consensus of the
> entire educated community and value only your own ignorant
> opinions and cannot emotionally bear to admit a simple mistake
> (in which there is no shame by the way).

I agree there is no shame and I often make mistakes. You're claim that I "cannot emotionally bear to admit a simple mistake" is pure guesswork on your part. In actual fact I believe I'm correct. Comments like that reveal more about yourself than me (i.e. that you state supposition as fact). You also spend a lot of time appealing to authority without presenting or even outlining a convincing argument. Indeed in your first post you even revealed confusion between variables and function symbols of arity 0, which leaves me wondering whether you understand the Stanford material you reference. Received on Wed May 12 2010 - 07:53:56 CEST

Original text of this message