Metamath Proof Explorer


Theorem eulerpart

Description: Euler's theorem on partitions, also known as a special case of Glaisher's theorem. Let P be the set of all partitions of N , represented as multisets of positive integers, which is to say functions from NN to NN0 where the value of the function represents the number of repetitions of an individual element, and the sum of all the elements with repetition equals N . Then the set O of all partitions that only consist of odd numbers and the set D of all partitions which have no repeated elements have the same cardinality. This is Metamath 100 proof #45. (Contributed by Thierry Arnoux, 14-Aug-2018) (Revised by Thierry Arnoux, 1-Sep-2019)

Ref Expression
Hypotheses eulerpart.p P=f0|f-1Finkfkk=N
eulerpart.o O=gP|ng-1¬2n
eulerpart.d D=gP|ngn1
Assertion eulerpart O=D

Proof

Step Hyp Ref Expression
1 eulerpart.p P=f0|f-1Finkfkk=N
2 eulerpart.o O=gP|ng-1¬2n
3 eulerpart.d D=gP|ngn1
4 eqid z|¬2z=z|¬2z
5 oveq2 a=x2ba=2bx
6 oveq2 b=y2b=2y
7 6 oveq1d b=y2bx=2yx
8 5 7 cbvmpov az|¬2z,b02ba=xz|¬2z,y02yx
9 oveq1 r=mrsupp=msupp
10 9 eleq1d r=mrsuppFinmsuppFin
11 10 cbvrabv r𝒫0Finz|¬2z|rsuppFin=m𝒫0Finz|¬2z|msuppFin
12 11 eqcomi m𝒫0Finz|¬2z|msuppFin=r𝒫0Finz|¬2z|rsuppFin
13 fveq1 t=rta=ra
14 13 eleq2d t=rbtabra
15 14 anbi2d t=raz|¬2zbtaaz|¬2zbra
16 15 opabbidv t=rab|az|¬2zbta=ab|az|¬2zbra
17 16 cbvmptv ts𝒫0Finz|¬2z|ssuppFinab|az|¬2zbta=rs𝒫0Finz|¬2z|ssuppFinab|az|¬2zbra
18 oveq1 m=smsupp=ssupp
19 18 eleq1d m=smsuppFinssuppFin
20 19 cbvrabv m𝒫0Finz|¬2z|msuppFin=s𝒫0Finz|¬2z|ssuppFin
21 20 eqcomi s𝒫0Finz|¬2z|ssuppFin=m𝒫0Finz|¬2z|msuppFin
22 simpl a=xb=ya=x
23 22 eleq1d a=xb=yaz|¬2zxz|¬2z
24 simpr a=xb=yb=y
25 22 fveq2d a=xb=yra=rx
26 24 25 eleq12d a=xb=ybrayrx
27 23 26 anbi12d a=xb=yaz|¬2zbraxz|¬2zyrx
28 27 cbvopabv ab|az|¬2zbra=xy|xz|¬2zyrx
29 21 28 mpteq12i rs𝒫0Finz|¬2z|ssuppFinab|az|¬2zbra=rm𝒫0Finz|¬2z|msuppFinxy|xz|¬2zyrx
30 17 29 eqtri ts𝒫0Finz|¬2z|ssuppFinab|az|¬2zbta=rm𝒫0Finz|¬2z|msuppFinxy|xz|¬2zyrx
31 cnveq h=fh-1=f-1
32 31 imaeq1d h=fh-1=f-1
33 32 eleq1d h=fh-1Finf-1Fin
34 33 cbvabv h|h-1Fin=f|f-1Fin
35 32 sseq1d h=fh-1z|¬2zf-1z|¬2z
36 35 cbvrabv h0|h-1z|¬2z=f0|f-1z|¬2z
37 reseq1 o=qoz|¬2z=qz|¬2z
38 37 coeq2d o=qbitsoz|¬2z=bitsqz|¬2z
39 38 fveq2d o=qrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2z=rr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z
40 39 imaeq2d o=qxz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2z=xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z
41 40 fveq2d o=q𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2z=𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z
42 41 cbvmptv oh0|h-1z|¬2zh|h-1Fin𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2z=qh0|h-1z|¬2zh|h-1Fin𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z
43 8 eqcomi xz|¬2z,y02yx=az|¬2z,b02ba
44 43 imaeq1i xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z=az|¬2z,b02barr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z
45 eqid xy|xz|¬2zyrx=xy|xz|¬2zyrx
46 11 45 mpteq12i rr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrx=rm𝒫0Finz|¬2z|msuppFinxy|xz|¬2zyrx
47 fveq1 r=tra=ta
48 47 eleq2d r=tbrabta
49 48 anbi2d r=taz|¬2zbraaz|¬2zbta
50 49 opabbidv r=tab|az|¬2zbra=ab|az|¬2zbta
51 50 cbvmptv rs𝒫0Finz|¬2z|ssuppFinab|az|¬2zbra=ts𝒫0Finz|¬2z|ssuppFinab|az|¬2zbta
52 46 29 51 3eqtr2i rr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrx=ts𝒫0Finz|¬2z|ssuppFinab|az|¬2zbta
53 52 fveq1i rr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z=ts𝒫0Finz|¬2z|ssuppFinab|az|¬2zbtabitsqz|¬2z
54 53 imaeq2i az|¬2z,b02barr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z=az|¬2z,b02bats𝒫0Finz|¬2z|ssuppFinab|az|¬2zbtabitsqz|¬2z
55 44 54 eqtri xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z=az|¬2z,b02bats𝒫0Finz|¬2z|ssuppFinab|az|¬2zbtabitsqz|¬2z
56 55 fveq2i 𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z=𝟙az|¬2z,b02bats𝒫0Finz|¬2z|ssuppFinab|az|¬2zbtabitsqz|¬2z
57 56 mpteq2i qh0|h-1z|¬2zh|h-1Fin𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsqz|¬2z=qh0|h-1z|¬2zh|h-1Fin𝟙az|¬2z,b02bats𝒫0Finz|¬2z|ssuppFinab|az|¬2zbtabitsqz|¬2z
58 42 57 eqtri oh0|h-1z|¬2zh|h-1Fin𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2z=qh0|h-1z|¬2zh|h-1Fin𝟙az|¬2z,b02bats𝒫0Finz|¬2z|ssuppFinab|az|¬2zbtabitsqz|¬2z
59 eqid f0h|h-1Finkfkk=f0h|h-1Finkfkk
60 1 2 3 4 8 12 30 34 36 58 59 eulerpartlemn oh0|h-1z|¬2zh|h-1Fin𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2zO:O1-1 ontoD
61 ovex 0V
62 61 rabex h0|h-1z|¬2zV
63 62 inex1 h0|h-1z|¬2zh|h-1FinV
64 63 mptex oh0|h-1z|¬2zh|h-1Fin𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2zV
65 64 resex oh0|h-1z|¬2zh|h-1Fin𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2zOV
66 f1oeq1 g=oh0|h-1z|¬2zh|h-1Fin𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2zOg:O1-1 ontoDoh0|h-1z|¬2zh|h-1Fin𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2zO:O1-1 ontoD
67 65 66 spcev oh0|h-1z|¬2zh|h-1Fin𝟙xz|¬2z,y02yxrr𝒫0Finz|¬2z|rsuppFinxy|xz|¬2zyrxbitsoz|¬2zO:O1-1 ontoDgg:O1-1 ontoD
68 bren ODgg:O1-1 ontoD
69 hasheni ODO=D
70 68 69 sylbir gg:O1-1 ontoDO=D
71 60 67 70 mp2b O=D