Zulip Chat Archive

Stream: new members

Topic: rat.denumerable


Matt Diamond (Sep 26 2022 at 16:02):

Just curious: is there a reason why rat.denumerable is proved via an equivalence to a subtype instead of just doing of_encodable_of_infinite ℚ directly?

Matt Diamond (Sep 26 2022 at 16:05):

As far as I can tell, the only thing the subtype provides is an easy proof of encodability, but we already have encodable ℚ so it seems unnecessary.

Kyle Miller (Sep 26 2022 at 16:19):

Here's where it was introduced: https://github.com/leanprover-community/mathlib/commit/3ad35223f321e644ef3e16ae9ec5b9383b2baabe

The encodable instance uses very nearly the same subtype, but with a sigma type factored out.

Maybe you want to investigate a creating a denumerable ℚ instance that uses the encodable instance more directly?

Matt Diamond (Sep 26 2022 at 16:20):

I'm just wondering why we don't simply write instance : denumerable ℚ := of_encodable_of_infinite ℚ

Matt Diamond (Sep 26 2022 at 16:21):

are you saying that we want the denumerability encoding to be a bit different than the usual encoding?

Kyle Miller (Sep 26 2022 at 16:23):

No, I'm not meaning to imply anything, other than suggesting you could try simplifying that instance and see whether it breaks anything.

Kyle Miller (Sep 26 2022 at 16:24):

The git commit link also suggests that @Chris Hughes might have an answer.

Chris Hughes (Sep 26 2022 at 16:36):

Matt Diamond said:

I'm just wondering why we don't simply write instance : denumerable ℚ := of_encodable_of_infinite ℚ

I think it's because there was no encodable instance for . I had to prove encodable ℚ inside the proof of denumerable ℚ.

Chris Hughes (Sep 26 2022 at 16:38):

Not sure but there might even be two different encodable instances for at the moment if there's a denumerable to encodable instance.

Matt Diamond (Sep 26 2022 at 16:42):

it looks like the encodable instance for Q was added back in October 2017

Kyle Miller (Sep 26 2022 at 16:42):

It looks like there was an encodable instance at least four years ago, and the denumerable instance was 2-3 years ago

Matt Diamond (Sep 26 2022 at 16:43):

perhaps it was just overlooked

Chris Hughes (Sep 26 2022 at 16:44):

I think I probably overlooked it.

Matt Diamond (Sep 26 2022 at 16:46):

all good


Last updated: Dec 20 2023 at 11:08 UTC