Metamath Proof Explorer


Theorem fprod

Description: The value of a product over a nonempty finite set. (Contributed by Scott Fenton, 6-Dec-2017)

Ref Expression
Hypotheses fprod.1 k=FnB=C
fprod.2 φM
fprod.3 φF:1M1-1 ontoA
fprod.4 φkAB
fprod.5 φn1MGn=C
Assertion fprod φkAB=seq1×GM

Proof

Step Hyp Ref Expression
1 fprod.1 k=FnB=C
2 fprod.2 φM
3 fprod.3 φF:1M1-1 ontoA
4 fprod.4 φkAB
5 fprod.5 φn1MGn=C
6 df-prod kAB=ιx|mAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBm
7 fvex seq1×GMV
8 nfcv _jifkAB1
9 nfv kjA
10 nfcsb1v _kj/kB
11 nfcv _k1
12 9 10 11 nfif _kifjAj/kB1
13 eleq1w k=jkAjA
14 csbeq1a k=jB=j/kB
15 13 14 ifbieq1d k=jifkAB1=ifjAj/kB1
16 8 12 15 cbvmpt kifkAB1=jifjAj/kB1
17 4 ralrimiva φkAB
18 10 nfel1 kj/kB
19 14 eleq1d k=jBj/kB
20 18 19 rspc jAkABj/kB
21 17 20 mpan9 φjAj/kB
22 fveq2 n=ifn=fi
23 22 csbeq1d n=ifn/kB=fi/kB
24 csbcow fi/jj/kB=fi/kB
25 23 24 eqtr4di n=ifn/kB=fi/jj/kB
26 25 cbvmptv nfn/kB=ifi/jj/kB
27 16 21 26 prodmo φ*xmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBm
28 f1of F:1M1-1 ontoAF:1MA
29 3 28 syl φF:1MA
30 ovex 1MV
31 fex F:1MA1MVFV
32 29 30 31 sylancl φFV
33 nnuz =1
34 2 33 eleqtrdi φM1
35 elfznn n1Mn
36 fvex GnV
37 5 36 eqeltrrdi φn1MCV
38 eqid nC=nC
39 38 fvmpt2 nCVnCn=C
40 35 37 39 syl2an2 φn1MnCn=C
41 5 40 eqtr4d φn1MGn=nCn
42 41 ralrimiva φn1MGn=nCn
43 nffvmpt1 _nnCk
44 43 nfeq2 nGk=nCk
45 fveq2 n=kGn=Gk
46 fveq2 n=knCn=nCk
47 45 46 eqeq12d n=kGn=nCnGk=nCk
48 44 47 rspc k1Mn1MGn=nCnGk=nCk
49 42 48 mpan9 φk1MGk=nCk
50 34 49 seqfveq φseq1×GM=seq1×nCM
51 3 50 jca φF:1M1-1 ontoAseq1×GM=seq1×nCM
52 f1oeq1 f=Ff:1M1-1 ontoAF:1M1-1 ontoA
53 fveq1 f=Ffn=Fn
54 53 csbeq1d f=Ffn/kB=Fn/kB
55 fvex FnV
56 55 1 csbie Fn/kB=C
57 54 56 eqtrdi f=Ffn/kB=C
58 57 mpteq2dv f=Fnfn/kB=nC
59 58 seqeq3d f=Fseq1×nfn/kB=seq1×nC
60 59 fveq1d f=Fseq1×nfn/kBM=seq1×nCM
61 60 eqeq2d f=Fseq1×GM=seq1×nfn/kBMseq1×GM=seq1×nCM
62 52 61 anbi12d f=Ff:1M1-1 ontoAseq1×GM=seq1×nfn/kBMF:1M1-1 ontoAseq1×GM=seq1×nCM
63 32 51 62 spcedv φff:1M1-1 ontoAseq1×GM=seq1×nfn/kBM
64 oveq2 m=M1m=1M
65 64 f1oeq2d m=Mf:1m1-1 ontoAf:1M1-1 ontoA
66 fveq2 m=Mseq1×nfn/kBm=seq1×nfn/kBM
67 66 eqeq2d m=Mseq1×GM=seq1×nfn/kBmseq1×GM=seq1×nfn/kBM
68 65 67 anbi12d m=Mf:1m1-1 ontoAseq1×GM=seq1×nfn/kBmf:1M1-1 ontoAseq1×GM=seq1×nfn/kBM
69 68 exbidv m=Mff:1m1-1 ontoAseq1×GM=seq1×nfn/kBmff:1M1-1 ontoAseq1×GM=seq1×nfn/kBM
70 69 rspcev Mff:1M1-1 ontoAseq1×GM=seq1×nfn/kBMmff:1m1-1 ontoAseq1×GM=seq1×nfn/kBm
71 2 63 70 syl2anc φmff:1m1-1 ontoAseq1×GM=seq1×nfn/kBm
72 71 olcd φmAmnmyy0seqn×kifkAB1yseqm×kifkAB1seq1×GMmff:1m1-1 ontoAseq1×GM=seq1×nfn/kBm
73 breq2 x=seq1×GMseqm×kifkAB1xseqm×kifkAB1seq1×GM
74 73 3anbi3d x=seq1×GMAmnmyy0seqn×kifkAB1yseqm×kifkAB1xAmnmyy0seqn×kifkAB1yseqm×kifkAB1seq1×GM
75 74 rexbidv x=seq1×GMmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmAmnmyy0seqn×kifkAB1yseqm×kifkAB1seq1×GM
76 eqeq1 x=seq1×GMx=seq1×nfn/kBmseq1×GM=seq1×nfn/kBm
77 76 anbi2d x=seq1×GMf:1m1-1 ontoAx=seq1×nfn/kBmf:1m1-1 ontoAseq1×GM=seq1×nfn/kBm
78 77 exbidv x=seq1×GMff:1m1-1 ontoAx=seq1×nfn/kBmff:1m1-1 ontoAseq1×GM=seq1×nfn/kBm
79 78 rexbidv x=seq1×GMmff:1m1-1 ontoAx=seq1×nfn/kBmmff:1m1-1 ontoAseq1×GM=seq1×nfn/kBm
80 75 79 orbi12d x=seq1×GMmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmmAmnmyy0seqn×kifkAB1yseqm×kifkAB1seq1×GMmff:1m1-1 ontoAseq1×GM=seq1×nfn/kBm
81 80 moi2 seq1×GMV*xmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmmAmnmyy0seqn×kifkAB1yseqm×kifkAB1seq1×GMmff:1m1-1 ontoAseq1×GM=seq1×nfn/kBmx=seq1×GM
82 7 81 mpanl1 *xmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmmAmnmyy0seqn×kifkAB1yseqm×kifkAB1seq1×GMmff:1m1-1 ontoAseq1×GM=seq1×nfn/kBmx=seq1×GM
83 82 ancom2s *xmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmmAmnmyy0seqn×kifkAB1yseqm×kifkAB1seq1×GMmff:1m1-1 ontoAseq1×GM=seq1×nfn/kBmmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmx=seq1×GM
84 83 expr *xmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmmAmnmyy0seqn×kifkAB1yseqm×kifkAB1seq1×GMmff:1m1-1 ontoAseq1×GM=seq1×nfn/kBmmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmx=seq1×GM
85 27 72 84 syl2anc φmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmx=seq1×GM
86 72 80 syl5ibrcom φx=seq1×GMmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBm
87 85 86 impbid φmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmx=seq1×GM
88 87 adantr φseq1×GMVmAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBmx=seq1×GM
89 88 iota5 φseq1×GMVιx|mAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBm=seq1×GM
90 7 89 mpan2 φιx|mAmnmyy0seqn×kifkAB1yseqm×kifkAB1xmff:1m1-1 ontoAx=seq1×nfn/kBm=seq1×GM
91 6 90 eqtrid φkAB=seq1×GM