# LSP all over again

Date: 25 Oct 2006 09:36:26 -0700

Message-ID: <1161794186.732920.216160_at_h48g2000cwc.googlegroups.com>

Difficult to follow the old tread in GG (not to mention the wrong title!)

Marshall wrote:

> On Oct 24, 9:04 am, "Aloha Kakuikanu" <aloha.kakuik..._at_yahoo.com>

*> wrote:
**> >
**> > with diagonals as equivalence classes...
**>
**> And, furthermore, an adaptation of Euclid's algorithm that we could
**> call, with perfect accuracy and more than a trace of humor,
**> Greatest Common Subtrahend, that we could use to normalize
**> the (nat, nat) pairs such that at least one of the nats was zero,
**> in *exactly* the same way as we use Greatest Common Divisor
**> to normalize the (int, int) pairs that make a rational to be relatively
**> prime. (In fact, if we're feeling particularly ambitious, we can
**> define a *single* normalizing algorithm and parameterize it with
**> either the Predecessor relation or the Subtraction relation as
**> the inverses of the iterated {successor, sum} that constructed
**> the sets in the first place.)
*

You aren't serious, are you?. Greatest Common Divizor/Multiple are essentially min and max operators on the power sequences. E.g.

12 = 2^2*3^1 = sequence(2,1,0,0,...) 45 = 2^0*3^2*5^1 = sequence(0,2,1,0,...) GCD(12,45) = sequence(0,1,0,0,...)

How do you decompose a number into a sequence with addition/subtraction operation?

> Tossing out the reals for the much-easier-to-handle rationals,

*> (which are identically useful for the purposes of arguing the
**> construction argument,) we have to ask, if we assume the
**> naturals (and the successor function) and construct the integers
**> from that, such that there is an integer two constructed as
**> (2,0), (or, more descriptively, "(2-0)"), and then construct
**> the rationals from pairs of integers, such that we have
**> a two in the form of (2,1) or more descriptively (2/1),
**> vs. alternatively assume the integers and construct
**> the rationals from the integers such that we have a rational
**> (2/1) built out of assumed integers instead of
**> constructed-from-naturals integers, who gives a damn
**> anyway? (I *dare* you to diagram that sentence.)
**> There is no meaningful difference between the two;
**> they are alternate, equivalent constructions. Do
**> we now have, like, nine different kinds of two? No.
**> There's Only One Two, which is exactly the slogan
**> of a local TV news channel from years ago.
*

I grant you have one abstract class for each Naturals, Integers, Rationals, etc. Multiple implementation classes. Why do you want to establish subclass relation between abstract classes in such a way that conforms to the abused subset inclusion intuition but breaks LSP? Again, the classes are abstract, so that we don't know what is the ground set of the elements of each type. Therefore we can't draw the subset relationship. It is the operation set that allows us to say that one guy inherits the others properties (whether there is any practical benefit in such an idea is another question).

> If we're going to try to say that these various twos are

*> all different in anything *except* their construction, then
**> I'd say we're in a heap o' trouble, hoss. If you define
**> various rational arithmetic functions + - *, they're all going
**> to give the same answers for calculations done with two
**> either way, so what was the point again? And when we
**> come to the case of divide, they *won't* produce the same
**> answer, which shows that they weren't the same function
**> in the first place, so we have different functions and that
**> way we get the same answer again anyway.
*

Why? You can establish equality between two objects of different implementation classes, can't you? Received on Wed Oct 25 2006 - 18:36:26 CEST