# A != b != c

**URL:** <https://discourse.julialang.org/t/a-b-c/1347>\
**Category:** Internals & Design\
**Tags:** proposal\
**Created:** [January 7, 2017, 3:57pm UTC](https://discourse.julialang.org/t/a-b-c/1347 "2017-01-07T15:57:38Z")\
**Posts on this page:** 1\
**Showing post:** 17

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [January 9, 2017, 8:18pm UTC](https://discourse.julialang.org/t/a-b-c/1347/17 "2017-01-09T20:18:27Z")

</div>

> [@Evizero](#):
>
> Even a \< b \< c does not assume transitivity

It should be in all cases (as logic dictates), the expand you showed, only shows what the current implementations of Julia does.

In case when you do not have transitive, e.g. a \< b \> c, or != or the sneaky ≈ (isapprox), then for the optimizer, should split up and optimize the left and right of it separately.

“so there is nothing (except for sanity) stopping you from defining a non-transitive \<”

Can that possibility be disallowed so the optimizer does not have to consider that case?

---

_[View the full topic](https://discourse.julialang.org/t/a-b-c/1347)._
