# True == 1 weirdness

Steven D'Aprano steve at pearwood.info
Fri Sep 18 15:14:52 CEST 2015

```On Fri, 18 Sep 2015 10:47 pm, Random832 wrote:

> On Fri, Sep 18, 2015, at 08:30, Steven D'Aprano wrote:
>> On Fri, 18 Sep 2015 07:26 am, Random832 wrote:
>>
>> > I don't even think chaining should
>> > work for all *actual* comparison operations.
>>
>> I don't see why. Mathematicians chain comparisons all the time. If the
>> language implements the same semantics as mathematicians already use, why
>> do you dislike that?
>
> Please provide a citation for this claim.

Really? You're disputing that chained comparisons are a standard maths
notation?

https://en.wikipedia.org/wiki/Inequality_(mathematics)#Chained_notation

Mathworld, for example, says:

Solutions to the inequality |x-a|<b consist of the set {x:-b<x-a<b},
or equivalently {x:a-b<x<a+b}.

http://mathworld.wolfram.com/Inequality.html

>> Only if the comparisons are transitive, which they may not be.
>
> My *entire point* is that it *shouldn't be used* for non-transitive
> comparisons!!!

And my point is that there is no good reason for such a restriction, even if
it were technically possible to enforce (which it is not).

The mathematical chained notation doesn't rely on, or imply, transitivity.
Given a < b < c, *if* the operator is transitive, then AND ONLY THEN can
you conclude that a < c, but that's not implied by the chaining. It happens
to be true for real numbers, but it isn't necessarily true.

--
Steven

```