Zulip Chat Archive

Stream: Is there code for X?

Topic: complete_linear_ordered_add_comm_monoid


Yaël Dillies (Sep 05 2021 at 21:28):

Is there such a thing as a typeclass for complete linear orders which are also monoids? like linear_ordered_add_comm_monoid but with Sup and Inf.

Yakov Pechersky (Sep 05 2021 at 22:43):

I wish we had it. We don't. Closest thing I've seen is (conditionally_)complete_linear_order together with add_comm_monoid. There needs to be some refactoring of the architecture that marries the order hierarchy with the algebra hierarchy.

Kevin Buzzard (Sep 05 2021 at 22:45):

Is this not what @Damiano Testa embarked upon recently?

Yakov Pechersky (Sep 05 2021 at 22:48):

Do you mean that add_comm_monoid together with some contra|covariant_class (+) (<=) gets us most of the way there?

Kevin Buzzard (Sep 05 2021 at 23:02):

I guess I don't know what Yael wants the relationship between <= and + to be here. Presumably he wants more than [complete_linear_order X] [add_comm_monoid X].

Yakov Pechersky (Sep 05 2021 at 23:05):

You're right. ordered_add_comm_monoid is just add_comm_monoid, partial_order, and the covariant (+) (<=) and contravariant (+) (<).

Yakov Pechersky (Sep 05 2021 at 23:06):

So linear_ordered_add_comm_monoid should be constructable from the relevant pieces. Does that imply if one has complete_linear_order add_comm_monoid and the right contra/covariant_class, then the laws about Sup and Inf will work?

Yaël Dillies (Sep 06 2021 at 06:40):

Most likely, yes. But it would surely be better to have it as a class rather than calling the bare covariant_class.

Yakov Pechersky (Sep 06 2021 at 06:46):

Having it as its own class results is an X^N explosion, of partial/linear/conditionally_/complete_ x add_comm_monoid/semiring/ring/field x optionally with_top and/or with_bot. We can have all 16 or more. But there must be a better way. (This is also ignoring the comm_ part of the hierarchy.)


Last updated: Dec 20 2023 at 11:08 UTC