Zulip Chat Archive

Stream: Is there code for X?

Topic: Converting a finset to a list


Eric Wieser (Dec 08 2020 at 16:56):

I want to express the statement:

lemma sign.map_prod {α β : Sort*} [decidable_eq α] [fintype α] :  (f : β  perm α) (s : finset β),
    sign ( x in s, f x) =  x in s, sign (f x)

But I can't, because requires its argument to be commutative, and the one on the LHS is not.
How can I convert s into a list so that I can express the LHS using list.prod?

Reid Barton (Dec 08 2020 at 16:57):

How about starting with a list?

Reid Barton (Dec 08 2020 at 16:57):

Otherwise the product is not well-defined

Eric Wieser (Dec 08 2020 at 16:58):

Well, the lemma is true whichever of the non well-defined definitions you pick

Reid Barton (Dec 08 2020 at 17:00):

but... the lemma has to mean something...

Eric Wieser (Dec 08 2020 at 17:04):

To un-#xy my problem, I'm trying to show that (sigma_congr_right σ).sign = ∏ a, (σ a).sign, and I thought I'd do so by breaking down (sigma_congr_right σ) into a product of function.update 1 a (σ a)

Eric Wieser (Dec 08 2020 at 17:04):

Since the analogous approach worked for the simpler version expressed with sum

Eric Wieser (Dec 08 2020 at 17:05):

But I don't know how to express that product

Reid Barton (Dec 08 2020 at 17:33):

You lost me at function.update... but surely if you want to write a permutation as a product, it has to be a product of a list

Eric Wieser (Dec 08 2020 at 17:33):

The elements in the list all commute

Eric Wieser (Dec 08 2020 at 17:33):

But yes, I guess I could

Eric Wieser (Dec 08 2020 at 17:34):

But then I need to push finset.univ αinto that list

Reid Barton (Dec 08 2020 at 17:34):

docs#equiv.perm.sign_prod_congr_right looks similar except all the permutations are of the same set there

Eric Wieser (Dec 08 2020 at 17:35):

Far from a #mwe, but the sorry in question is here: https://github.com/leanprover-community/mathlib/compare/eric-wieser/sigma_congr_right_sign?expand=1#diff-126733ed2b8b67441355f6f20dbb566366f0dd0844a7d7b6ee5e7c6671c46e68R844

Eric Wieser (Dec 08 2020 at 17:35):

Oh sure enough, that contains the fintype.exists_univ_list α which I needed

Eric Wieser (Dec 08 2020 at 17:44):

Thanks for point me at that, that's enough to get me going.


Last updated: Dec 20 2023 at 11:08 UTC