Zulip Chat Archive

Stream: mathlib4

Topic: Preferred spelling of cancellative semigroups


Eric Wieser (Nov 15 2023 at 16:39):

We currently have docs#LeftCancelSemigroup and docs#RightCancelSemigroup, which extend docs#Semigroup.
We do not have a CancelSemigroup that extends both.

We do however have docs#IsCancelMul, docs#IsLeftCancelMul,and docs#IsRightCancelMul, which are mixins (and so also work for magmas and for semirings)

Eric Wieser (Nov 15 2023 at 16:40):

/poll Which of the following is preferable?

  • Write [CancelSemigroup S], after defining a new CancelSemigroup class and all the boilerplate
  • Write [Semigroup S] [IsCancelMul S]
  • Write [Semigroup S] [IsCancelMul S] and delete the existing (Left|Right)Cancel versions in favor of [Semigroup S] [IsLeftCancelMul S] etc

Eric Wieser (Nov 15 2023 at 16:41):

cc @Yaël Dillies, who has already written all the boilerplate for the first option

Eric Wieser (Nov 15 2023 at 17:03):

I created #8428, which generalizes the existing lemmas about LeftCancelSemigroup to IsLeftCancelMul

Yaël Dillies (Nov 15 2023 at 17:04):

#8429 contains the result where I have to use a hack to juggle between the two spellings.

Jireh Loreaux (Nov 16 2023 at 01:29):

I voted for the last option. I don't think it will matter much, but we should benchmark any PR implementing that option.

Eric Wieser (Nov 23 2023 at 11:15):

It would be great if someone could take a look at #8428 which is a prerequisite for the last option, and for Yael's work

Eric Wieser (Nov 30 2023 at 16:14):

#8748 is one step closer towards the last poll option


Last updated: Dec 20 2023 at 11:08 UTC