Steve Jorgensen wrote:
Chris Angelico wrote:
On Wed, Mar 4, 2020 at 6:04 PM Steve Jorgensen stevej@stevej.name wrote: <snip> https://en.wikipedia.org/wiki/Partially_ordered_set "Partially ordered" means you can compare pairs of elements and find which one comes first. "Totally ordered" means you can compare ANY pair of elements, and you'll always know which comes first. ChrisA Ah. Good to know. I don't think "Partially ordered" actually applies, then, because that still seems to imply that transitivity would apply to comparisons between any given pair of objects. Simply having implementations of all the rich comparison operators does not make that true, however, and in particular, that's not true for sets. If we consider just the sets {1, 2} and {1, 3}, … In [1]: {1, 2} < {1, 3} Out[1]: False
In [2]: {1, 2} >= {1, 3} Out[2]: False
Neither is a subset of the other, so both of those tests return False.
Ah. Maybe I'm arguing against a different point than what you were making then. Just because sets are not partially ordered does not mean that "partially ordered" is not a useful distinction in addition to "totally ordered". In that case, maybe the hierarchy would be something like… * ProtoOrdered (or ProtoOrderable): Orderability is explicit and never inferred. Unordered unless also a subclass of PartiallyOrdered or TotallyOrdered. * * PartiallyOrdered * * * TotallyOrdered An class that does not directly or virtually subclass any of those but implements all the rich comparison operators would be treated as an inferred virtual subclass of `TotallyOrdered`.