Re: On Formal IS-A definition

From: David BL <davidbl_at_iinet.net.au>
Date: Fri, 7 May 2010 22:11:21 -0700 (PDT)
Message-ID: <6e313c1e-d27e-4663-bf84-f40b58e977c5_at_40g2000pry.googlegroups.com>


On May 7, 9:36 pm, Bob Badour <bbad..._at_pei.sympatico.ca> wrote:
> David BL wrote:
> > On May 7, 9:20 am, Bob Badour <bbad..._at_pei.sympatico.ca> wrote:
>
> >>David BL wrote:
>
> >>>On May 6, 9:10 pm, Bob Badour <bbad..._at_pei.sympatico.ca> wrote:
>
> >>>>If one is interested specifically in subtypes of supertypes, a proper
> >>>>subset of a type with a proper superset of operations is a proper
> >>>>subtype of that type. Thus, circle values are a subtype of ellipse
> >>>>values and ellipse variables are a subtype of circle variables.
>
> >>>There is no subtype relationship between ellipse variables and circle
> >>>variables (in either direction).
>
> >>>Consider a procedure in an imperative language that is passed a
> >>>reference to a circle variable. Most generally the variable can be
> >>>used as an "in-out" parameter, meaning that the variable is both read
> >>>and written by the procedure. An ellipse variable can only be
> >>>substituted for out-parameters.
>
> >>Ellipse variables are a proper subset of the variables where one might
> >>store a circle,
>
> > Elements of sets are values, never variables.
>
> I am unfamiliar with any restrictions on what goes in sets.

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.

You appear to use what is called "Naive Set Theory" which is an informal theory of sets that only uses natural language to describe what they are. It suffers for example from Russell's paradox.

In modern axiomatizations of set theory such as ZFC, elements of sets must be sets.
The axioms imply the existence of the empty set, and the axioms of pairing, union, infinity and power set etc allow for bigger sets to be constructed from smaller ones. The purpose of the axioms is to ensure mathematicians agree on what is and isn't a set. For example there is no axiom that allows for "the set of all sets", and indeed that can be *proven* to not be a set by using the axiom of comprehension to yield Russell's paradox as a proof by contradiction.

In practise mathematicians find it convenient to allow for urelements,  which are elements of sets that are not sets. However that is only meant to be a convenience, and not a suggestion for example that you can pretend that the collection of books on your bookshelf comprise a mathematical set as defined in modern set theory.

>
> > You cannot talk about
> > subset relationships between sets of variables because there is no
> > such thing as a set of variables.
>
> Of course there is. Suppose I have a set of 3 variables and a dog { a,
> b, c, Rosie } ...

No, that is not allowed. A dog is not a value. A variable is not a value.

In logic, a *term* is defined recursively and may contain function symbols and variables. For example in the term

   s(10,x)

s is a function symbol with arity 2, 10 is a function symbol with arity 0 (i.e. a "constant symbol") and x is a variable.

A variable in logic must not be confused with a variable in imperative programs. The purpose of the former is essentially to allow for quantification, and that's what distinguishes FOL from the much simpler propositional logic.

Logicians have a formalised concept of giving meaning to terms - i.e. so that a term denotes a value parameterised in the variables. An interpretation must specify a set called the domain of discourse over which variables range over, and the interpretation of each function symbol is a function of the same arity, defined on tuples over the domain of discourse.

For example, the domain of discourse might be the integers, and interpreation of the term s(10,x) may be the set {10,x} for some given value of the variable x which is assumed to range over the integers. In that case it would be the case that {10,x} is a subset of the integers for each value of x. But that shouldn't be interpreted to mean that sets may contain variables!

> >>It has a proper superset of the operations permitted for
> >>circle variables allowing one to also store a non-circular ellipse values.
>
> >>Saying that one cannot apply circle value operations to ellipse
> >>variables demonstrates nothing more than a confusion between values and
> >>variables. One can apply all circle variable operations to ellipse
> >>variables.
>
> > It's not clear to me what is meant exactly by an "operation" that acts
> > on variables instead of values. I would rather use the term
> > "procedure" to avoid confusion with operators in algebraic systems.
>
> Operation is well-defined both for procedural and declarative languages.
> Operators are symbols that denote operations per the ISO/IEC 2382
> standard vocabularies.

Yes I agree that an operator is a symbol. What exactly does it mean to "denote an operation"? So what does "operation" mean?

I think logicians treat "operator" and "function symbol" as synonyms. I don't know about the word "operation". Do they use it to mean "function"?

I'm not sure what these terms are assumed to mean in imperative languages. I would rather new terms be used rather than hijack the ones used by logicians. For example I think it's important to distinguish between procedures and mathematical functions. Using "operator" to mean a symbol that may denote either seems like it will create a lot of confusion to me. Received on Sat May 08 2010 - 07:11:21 CEST

Original text of this message