Zulip Chat Archive

Stream: new members

Topic: How to convert finset N to list N


Rui Liu (Dec 09 2020 at 23:20):

Given s: finset N, I want to get a list of sorted values, how do I do that? I tried s.sort nat.lt but that doesn't work.

Adam Topaz (Dec 09 2020 at 23:20):

I think there's a docs#finset.to_list ?

Eric Wieser (Dec 09 2020 at 23:21):

I think it was more an exists_list

Kevin Buzzard (Dec 09 2020 at 23:21):

There's docs#finset.sort

Adam Topaz (Dec 09 2020 at 23:23):

I guess F.1.1 or something like that should spit out some list

Rob Lewis (Dec 09 2020 at 23:23):

You need to sort by a total relation, try nat.le. Best written as

import data.finset
example (s : finset ) : list  := s.sort ()

Adam Topaz (Dec 09 2020 at 23:23):

where F is a finset

Rui Liu (Dec 09 2020 at 23:24):

Oh shit, nat.le works whereas nat.lt doesn't work? Why is that so?

Kevin Buzzard (Dec 09 2020 at 23:24):

If you look at the docs it says it wants a total order

Adam Topaz (Dec 09 2020 at 23:25):

There's also a docs#multiset.to_list so you can do F.1.to_list

Kevin Buzzard (Dec 09 2020 at 23:25):

you can just click through to see the definitions. is_total means docs#is_total which is true for \le but not \lt

Rui Liu (Dec 09 2020 at 23:26):

Oh, since we don't have x < x in both direction, < is not a total order, whereas <= is!

Rui Liu (Dec 09 2020 at 23:26):

Thanks!

Kevin Buzzard (Dec 09 2020 at 23:27):

Right

Adam Topaz (Dec 09 2020 at 23:28):

(Oh, I just read that you wanted it sorted, sorry! If you don't care about sorting for some reason, you can convert to a multiset then to a list.)


Last updated: Dec 20 2023 at 11:08 UTC