Metamath Proof Explorer


Theorem eulerpartlemgu

Description: Lemma for eulerpart : Rewriting the U set for an odd partition Note that interestingly, this proof reuses marypha2lem2 . (Contributed by Thierry Arnoux, 10-Aug-2018)

Ref Expression
Hypotheses eulerpart.p โŠข ๐‘ƒ = { ๐‘“ โˆˆ ( โ„•0 โ†‘m โ„• ) โˆฃ ( ( โ—ก ๐‘“ โ€œ โ„• ) โˆˆ Fin โˆง ฮฃ ๐‘˜ โˆˆ โ„• ( ( ๐‘“ โ€˜ ๐‘˜ ) ยท ๐‘˜ ) = ๐‘ ) }
eulerpart.o โŠข ๐‘‚ = { ๐‘” โˆˆ ๐‘ƒ โˆฃ โˆ€ ๐‘› โˆˆ ( โ—ก ๐‘” โ€œ โ„• ) ยฌ 2 โˆฅ ๐‘› }
eulerpart.d โŠข ๐ท = { ๐‘” โˆˆ ๐‘ƒ โˆฃ โˆ€ ๐‘› โˆˆ โ„• ( ๐‘” โ€˜ ๐‘› ) โ‰ค 1 }
eulerpart.j โŠข ๐ฝ = { ๐‘ง โˆˆ โ„• โˆฃ ยฌ 2 โˆฅ ๐‘ง }
eulerpart.f โŠข ๐น = ( ๐‘ฅ โˆˆ ๐ฝ , ๐‘ฆ โˆˆ โ„•0 โ†ฆ ( ( 2 โ†‘ ๐‘ฆ ) ยท ๐‘ฅ ) )
eulerpart.h โŠข ๐ป = { ๐‘Ÿ โˆˆ ( ( ๐’ซ โ„•0 โˆฉ Fin ) โ†‘m ๐ฝ ) โˆฃ ( ๐‘Ÿ supp โˆ… ) โˆˆ Fin }
eulerpart.m โŠข ๐‘€ = ( ๐‘Ÿ โˆˆ ๐ป โ†ฆ { โŸจ ๐‘ฅ , ๐‘ฆ โŸฉ โˆฃ ( ๐‘ฅ โˆˆ ๐ฝ โˆง ๐‘ฆ โˆˆ ( ๐‘Ÿ โ€˜ ๐‘ฅ ) ) } )
eulerpart.r โŠข ๐‘… = { ๐‘“ โˆฃ ( โ—ก ๐‘“ โ€œ โ„• ) โˆˆ Fin }
eulerpart.t โŠข ๐‘‡ = { ๐‘“ โˆˆ ( โ„•0 โ†‘m โ„• ) โˆฃ ( โ—ก ๐‘“ โ€œ โ„• ) โІ ๐ฝ }
eulerpart.g โŠข ๐บ = ( ๐‘œ โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†ฆ ( ( ๐Ÿญ โ€˜ โ„• ) โ€˜ ( ๐น โ€œ ( ๐‘€ โ€˜ ( bits โˆ˜ ( ๐‘œ โ†พ ๐ฝ ) ) ) ) ) )
eulerpartlemgh.1 โŠข ๐‘ˆ = โˆช ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ( { ๐‘ก } ร— ( bits โ€˜ ( ๐ด โ€˜ ๐‘ก ) ) )
Assertion eulerpartlemgu ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†’ ๐‘ˆ = { โŸจ ๐‘ก , ๐‘› โŸฉ โˆฃ ( ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) โˆง ๐‘› โˆˆ ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) ) } )

Proof

Step Hyp Ref Expression
1 eulerpart.p โŠข ๐‘ƒ = { ๐‘“ โˆˆ ( โ„•0 โ†‘m โ„• ) โˆฃ ( ( โ—ก ๐‘“ โ€œ โ„• ) โˆˆ Fin โˆง ฮฃ ๐‘˜ โˆˆ โ„• ( ( ๐‘“ โ€˜ ๐‘˜ ) ยท ๐‘˜ ) = ๐‘ ) }
2 eulerpart.o โŠข ๐‘‚ = { ๐‘” โˆˆ ๐‘ƒ โˆฃ โˆ€ ๐‘› โˆˆ ( โ—ก ๐‘” โ€œ โ„• ) ยฌ 2 โˆฅ ๐‘› }
3 eulerpart.d โŠข ๐ท = { ๐‘” โˆˆ ๐‘ƒ โˆฃ โˆ€ ๐‘› โˆˆ โ„• ( ๐‘” โ€˜ ๐‘› ) โ‰ค 1 }
4 eulerpart.j โŠข ๐ฝ = { ๐‘ง โˆˆ โ„• โˆฃ ยฌ 2 โˆฅ ๐‘ง }
5 eulerpart.f โŠข ๐น = ( ๐‘ฅ โˆˆ ๐ฝ , ๐‘ฆ โˆˆ โ„•0 โ†ฆ ( ( 2 โ†‘ ๐‘ฆ ) ยท ๐‘ฅ ) )
6 eulerpart.h โŠข ๐ป = { ๐‘Ÿ โˆˆ ( ( ๐’ซ โ„•0 โˆฉ Fin ) โ†‘m ๐ฝ ) โˆฃ ( ๐‘Ÿ supp โˆ… ) โˆˆ Fin }
7 eulerpart.m โŠข ๐‘€ = ( ๐‘Ÿ โˆˆ ๐ป โ†ฆ { โŸจ ๐‘ฅ , ๐‘ฆ โŸฉ โˆฃ ( ๐‘ฅ โˆˆ ๐ฝ โˆง ๐‘ฆ โˆˆ ( ๐‘Ÿ โ€˜ ๐‘ฅ ) ) } )
8 eulerpart.r โŠข ๐‘… = { ๐‘“ โˆฃ ( โ—ก ๐‘“ โ€œ โ„• ) โˆˆ Fin }
9 eulerpart.t โŠข ๐‘‡ = { ๐‘“ โˆˆ ( โ„•0 โ†‘m โ„• ) โˆฃ ( โ—ก ๐‘“ โ€œ โ„• ) โІ ๐ฝ }
10 eulerpart.g โŠข ๐บ = ( ๐‘œ โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†ฆ ( ( ๐Ÿญ โ€˜ โ„• ) โ€˜ ( ๐น โ€œ ( ๐‘€ โ€˜ ( bits โˆ˜ ( ๐‘œ โ†พ ๐ฝ ) ) ) ) ) )
11 eulerpartlemgh.1 โŠข ๐‘ˆ = โˆช ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ( { ๐‘ก } ร— ( bits โ€˜ ( ๐ด โ€˜ ๐‘ก ) ) )
12 1 2 3 4 5 6 7 8 9 eulerpartlemt0 โŠข ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†” ( ๐ด โˆˆ ( โ„•0 โ†‘m โ„• ) โˆง ( โ—ก ๐ด โ€œ โ„• ) โˆˆ Fin โˆง ( โ—ก ๐ด โ€œ โ„• ) โІ ๐ฝ ) )
13 12 simp1bi โŠข ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†’ ๐ด โˆˆ ( โ„•0 โ†‘m โ„• ) )
14 elmapi โŠข ( ๐ด โˆˆ ( โ„•0 โ†‘m โ„• ) โ†’ ๐ด : โ„• โŸถ โ„•0 )
15 13 14 syl โŠข ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†’ ๐ด : โ„• โŸถ โ„•0 )
16 15 adantr โŠข ( ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โˆง ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ) โ†’ ๐ด : โ„• โŸถ โ„•0 )
17 16 ffund โŠข ( ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โˆง ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ) โ†’ Fun ๐ด )
18 inss1 โŠข ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) โІ ( โ—ก ๐ด โ€œ โ„• )
19 cnvimass โŠข ( โ—ก ๐ด โ€œ โ„• ) โІ dom ๐ด
20 19 15 fssdm โŠข ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†’ ( โ—ก ๐ด โ€œ โ„• ) โІ โ„• )
21 18 20 sstrid โŠข ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†’ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) โІ โ„• )
22 21 sselda โŠข ( ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โˆง ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ) โ†’ ๐‘ก โˆˆ โ„• )
23 15 fdmd โŠข ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†’ dom ๐ด = โ„• )
24 23 eleq2d โŠข ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†’ ( ๐‘ก โˆˆ dom ๐ด โ†” ๐‘ก โˆˆ โ„• ) )
25 24 adantr โŠข ( ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โˆง ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ) โ†’ ( ๐‘ก โˆˆ dom ๐ด โ†” ๐‘ก โˆˆ โ„• ) )
26 22 25 mpbird โŠข ( ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โˆง ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ) โ†’ ๐‘ก โˆˆ dom ๐ด )
27 fvco โŠข ( ( Fun ๐ด โˆง ๐‘ก โˆˆ dom ๐ด ) โ†’ ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) = ( bits โ€˜ ( ๐ด โ€˜ ๐‘ก ) ) )
28 17 26 27 syl2anc โŠข ( ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โˆง ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ) โ†’ ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) = ( bits โ€˜ ( ๐ด โ€˜ ๐‘ก ) ) )
29 28 xpeq2d โŠข ( ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โˆง ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ) โ†’ ( { ๐‘ก } ร— ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) ) = ( { ๐‘ก } ร— ( bits โ€˜ ( ๐ด โ€˜ ๐‘ก ) ) ) )
30 29 iuneq2dv โŠข ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†’ โˆช ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ( { ๐‘ก } ร— ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) ) = โˆช ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ( { ๐‘ก } ร— ( bits โ€˜ ( ๐ด โ€˜ ๐‘ก ) ) ) )
31 eqid โŠข โˆช ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ( { ๐‘ก } ร— ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) ) = โˆช ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ( { ๐‘ก } ร— ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) )
32 31 marypha2lem2 โŠข โˆช ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ( { ๐‘ก } ร— ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) ) = { โŸจ ๐‘ก , ๐‘› โŸฉ โˆฃ ( ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) โˆง ๐‘› โˆˆ ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) ) }
33 30 32 eqtr3di โŠข ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†’ โˆช ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) ( { ๐‘ก } ร— ( bits โ€˜ ( ๐ด โ€˜ ๐‘ก ) ) ) = { โŸจ ๐‘ก , ๐‘› โŸฉ โˆฃ ( ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) โˆง ๐‘› โˆˆ ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) ) } )
34 11 33 eqtrid โŠข ( ๐ด โˆˆ ( ๐‘‡ โˆฉ ๐‘… ) โ†’ ๐‘ˆ = { โŸจ ๐‘ก , ๐‘› โŸฉ โˆฃ ( ๐‘ก โˆˆ ( ( โ—ก ๐ด โ€œ โ„• ) โˆฉ ๐ฝ ) โˆง ๐‘› โˆˆ ( ( bits โˆ˜ ๐ด ) โ€˜ ๐‘ก ) ) } )