Zulip Chat Archive

Stream: maths

Topic: equivalence between bounded integers and nat


Filippo A. E. Nuccio (Jan 08 2022 at 22:06):

I am wondering if mathlib has the equivalence (N : ℤ) : ℕ ≃ {x : ℤ // N ≤ x} := analogous to the equivalence between and {x // x ∉ finset.range N} provided by docs#not_mem_range_equiv.

Yaël Dillies (Jan 08 2022 at 22:14):

There are many ways to provide it, one of the most general being going through docs#succ_archimedean following the TODO I left at the top of the file.

Yaël Dillies (Jan 08 2022 at 22:15):

Of course, if you want that concrete equivalence decorated with something else than order properties, ignore my stuff :smile:

Filippo A. E. Nuccio (Jan 08 2022 at 22:50):

Thanks! I have a proof, but I was just wondering if I was fooling around for nothing. Your link does not work for me, but I'll have a look. Got it!

Yaël Dillies (Jan 08 2022 at 22:50):

Arf, docs#is_succ_archimedean, sorry

Yury G. Kudryashov (Jan 09 2022 at 19:20):

I think that we should use explicit formulas for this equivalence.

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

@Filippo A. E. Nuccio, we actually have something very similar already: docs#finset.not_mem_range_equiv. It's only once in mathlib so feel free to make it nicer!

Filippo A. E. Nuccio (Jan 11 2022 at 10:33):

@Yaël Dillies Yes, thanks! That was the thing I was starting with when I realized by finset was not a finset nat. I already have a generalized version, so I will soon PR something.


Last updated: Dec 20 2023 at 11:08 UTC