[Haskell-cafe] ordNub

Atze van der Ploeg atzeus at gmail.com
Thu Jan 1 15:31:19 UTC 2015

> (That said, I don't understand why this discussion is relevant at all.
> The fact that the ordering exists doesn't mean that one would want to
> declare the Ord instance, like with complex numbers.)

It's not relevant, it's just an intellectual exercise.

For any set with a equality relation there exists a total order relation on
that set consistent with the equality relation. The question is then
whether there exists a set with a computable equality relation such that
there is no computable total order.

I think the following computable function shows that it is always possible
(it chooses an order during queries):

Maintain a table, initially emtpy

As soon as (a <= b) is requested, see if a and b are already in the
table (using
the computatble equality function) , if so, use their ordering in the table.
If an element is not in the table, add it.

Hence the table gives a consistent total order (it depends on which
ordering queries are requested, but that is not relevant?)

2015-01-01 16:06 GMT+01:00 Atze van der Ploeg <atzeus at gmail.com>:

> Nope you're right. Indeed uncompatible with the field structure. Now I'm
> confused :)
> I now understand your question, but do not immediately know the answer.
> Anyone?
> On Jan 1, 2015 4:02 PM, "Tom Ellis" <
> tom-lists-haskell-cafe-2013 at jaguarpaw.co.uk> wrote:
>> On Thu, Jan 01, 2015 at 03:52:26PM +0100, Atze van der Ploeg wrote:
>> > If we do not require that (a <= b) && (a >= b) ==> a == b (where <= is
>> > from the total ordering and == is from the equality relation) then it is
>> > trivial, take the total ordering forall x y.  x <= y that i mentioned
>> > earlier.
>> >
>> > So the compatiblity with equality (you say field structure) is not
>> besides
>> > the point, in fact antisymmetry means that the ordering corresponds to
>> the
>> > equality relation.
>> >
>> > Clear now or did I misunderstand?
>> Here is my proposed equality and ordering on the complex numbers:
>>     data Complex = Complex (Double, Double) deriving (Eq, Ord)
>> Does this violate any of my requested conditions?
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20150101/24371c26/attachment.html>

More information about the Haskell-Cafe mailing list