Zulip Chat Archive

Stream: general

Topic: Dot notation for ⊆ and ⊂


Yaël Dillies (Jan 11 2022 at 10:04):

We currently have no dot notation relating and because we have no analog of preorder for them. This is very annoying because then you have lemmas like docs#finset.ssubset_of_subset_of_ssubset which take ages to write down. I'm thinking of defining such a thing. Given that it's only used by set and finset, an unbundled relation class should be enough while easy and lightweight.

Are people against the idea? If not, how should it be called? is_preorder is already taken.

Anne Baanen (Jan 11 2022 at 10:11):

ordered_set_like?

Yaël Dillies (Jan 11 2022 at 10:14):

I was thinking of a more general class

class TBD (α : Type*) (r s : α  α  Prop) extends is_preorder α r :=
(right_iff_left_not_left {a b : α} : s a b  r a b  ¬ r b a)

Yaël Dillies (Jan 11 2022 at 10:16):

Or maybe just

class TBD (α : Type*) (r s : α  α  Prop) :=
(right_iff_left_not_left {a b : α} : s a b  r a b  ¬ r b a)

because we're really only needing the interaction. Existing typeclasses already handle each of and alone

Anne Baanen (Jan 11 2022 at 10:28):

I see! So assuming a name like strict_nonstrict_order, the actual dot-notated lemmas you want look like:

lemma has_ssubset.ssubset.subset {S : Type*} [has_subset S] [has_ssubset S] [strict_nonstrict_order () ()]
  {a b : S} (h : a  b) : a  b := _

Right?

Yaël Dillies (Jan 11 2022 at 10:28):

Yes, exactly!

Anne Baanen (Jan 11 2022 at 10:30):

I would definitely remove the extends since you'll get a dangerous instance.

Eric Wieser (Jan 11 2022 at 10:30):

Yaël Dillies said:

I was thinking of a more general class

class TBD (α : Type*) (r s : α  α  Prop) extends is_preorder α r :=
(right_iff_left_not_left {a b : α} : s a b  r a b  ¬ r b a)

The TBD.to_is_preorder this creates is dangerous as is has no way to infer s. So your other suggestion is the right one

Yaël Dillies (Jan 11 2022 at 10:30):

I definitely the extends too :grinning:

Eric Wieser (Jan 11 2022 at 10:30):

I also definitely the extends, simultaneously it seems

Yaël Dillies (Jan 11 2022 at 15:03):

#11381


Last updated: Dec 20 2023 at 11:08 UTC