| Step | Hyp | Ref | Expression | 
						
							| 1 |  | exp0 |  |-  ( B e. CC -> ( B ^ 0 ) = 1 ) | 
						
							| 2 | 1 | eqcomd |  |-  ( B e. CC -> 1 = ( B ^ 0 ) ) | 
						
							| 3 |  | prodeq1 |  |-  ( A = (/) -> prod_ k e. A B = prod_ k e. (/) B ) | 
						
							| 4 |  | prod0 |  |-  prod_ k e. (/) B = 1 | 
						
							| 5 | 3 4 | eqtrdi |  |-  ( A = (/) -> prod_ k e. A B = 1 ) | 
						
							| 6 |  | fveq2 |  |-  ( A = (/) -> ( # ` A ) = ( # ` (/) ) ) | 
						
							| 7 |  | hash0 |  |-  ( # ` (/) ) = 0 | 
						
							| 8 | 6 7 | eqtrdi |  |-  ( A = (/) -> ( # ` A ) = 0 ) | 
						
							| 9 | 8 | oveq2d |  |-  ( A = (/) -> ( B ^ ( # ` A ) ) = ( B ^ 0 ) ) | 
						
							| 10 | 5 9 | eqeq12d |  |-  ( A = (/) -> ( prod_ k e. A B = ( B ^ ( # ` A ) ) <-> 1 = ( B ^ 0 ) ) ) | 
						
							| 11 | 2 10 | syl5ibrcom |  |-  ( B e. CC -> ( A = (/) -> prod_ k e. A B = ( B ^ ( # ` A ) ) ) ) | 
						
							| 12 | 11 | adantl |  |-  ( ( A e. Fin /\ B e. CC ) -> ( A = (/) -> prod_ k e. A B = ( B ^ ( # ` A ) ) ) ) | 
						
							| 13 |  | eqidd |  |-  ( k = ( f ` n ) -> B = B ) | 
						
							| 14 |  | simprl |  |-  ( ( ( A e. Fin /\ B e. CC ) /\ ( ( # ` A ) e. NN /\ f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) -> ( # ` A ) e. NN ) | 
						
							| 15 |  | simprr |  |-  ( ( ( A e. Fin /\ B e. CC ) /\ ( ( # ` A ) e. NN /\ f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) -> f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) | 
						
							| 16 |  | simpllr |  |-  ( ( ( ( A e. Fin /\ B e. CC ) /\ ( ( # ` A ) e. NN /\ f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) /\ k e. A ) -> B e. CC ) | 
						
							| 17 |  | simpllr |  |-  ( ( ( ( A e. Fin /\ B e. CC ) /\ ( ( # ` A ) e. NN /\ f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) /\ n e. ( 1 ... ( # ` A ) ) ) -> B e. CC ) | 
						
							| 18 |  | elfznn |  |-  ( n e. ( 1 ... ( # ` A ) ) -> n e. NN ) | 
						
							| 19 | 18 | adantl |  |-  ( ( ( ( A e. Fin /\ B e. CC ) /\ ( ( # ` A ) e. NN /\ f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) /\ n e. ( 1 ... ( # ` A ) ) ) -> n e. NN ) | 
						
							| 20 |  | fvconst2g |  |-  ( ( B e. CC /\ n e. NN ) -> ( ( NN X. { B } ) ` n ) = B ) | 
						
							| 21 | 17 19 20 | syl2anc |  |-  ( ( ( ( A e. Fin /\ B e. CC ) /\ ( ( # ` A ) e. NN /\ f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) /\ n e. ( 1 ... ( # ` A ) ) ) -> ( ( NN X. { B } ) ` n ) = B ) | 
						
							| 22 | 13 14 15 16 21 | fprod |  |-  ( ( ( A e. Fin /\ B e. CC ) /\ ( ( # ` A ) e. NN /\ f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) -> prod_ k e. A B = ( seq 1 ( x. , ( NN X. { B } ) ) ` ( # ` A ) ) ) | 
						
							| 23 |  | expnnval |  |-  ( ( B e. CC /\ ( # ` A ) e. NN ) -> ( B ^ ( # ` A ) ) = ( seq 1 ( x. , ( NN X. { B } ) ) ` ( # ` A ) ) ) | 
						
							| 24 | 23 | ad2ant2lr |  |-  ( ( ( A e. Fin /\ B e. CC ) /\ ( ( # ` A ) e. NN /\ f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) -> ( B ^ ( # ` A ) ) = ( seq 1 ( x. , ( NN X. { B } ) ) ` ( # ` A ) ) ) | 
						
							| 25 | 22 24 | eqtr4d |  |-  ( ( ( A e. Fin /\ B e. CC ) /\ ( ( # ` A ) e. NN /\ f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) -> prod_ k e. A B = ( B ^ ( # ` A ) ) ) | 
						
							| 26 | 25 | expr |  |-  ( ( ( A e. Fin /\ B e. CC ) /\ ( # ` A ) e. NN ) -> ( f : ( 1 ... ( # ` A ) ) -1-1-onto-> A -> prod_ k e. A B = ( B ^ ( # ` A ) ) ) ) | 
						
							| 27 | 26 | exlimdv |  |-  ( ( ( A e. Fin /\ B e. CC ) /\ ( # ` A ) e. NN ) -> ( E. f f : ( 1 ... ( # ` A ) ) -1-1-onto-> A -> prod_ k e. A B = ( B ^ ( # ` A ) ) ) ) | 
						
							| 28 | 27 | expimpd |  |-  ( ( A e. Fin /\ B e. CC ) -> ( ( ( # ` A ) e. NN /\ E. f f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) -> prod_ k e. A B = ( B ^ ( # ` A ) ) ) ) | 
						
							| 29 |  | fz1f1o |  |-  ( A e. Fin -> ( A = (/) \/ ( ( # ` A ) e. NN /\ E. f f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) ) | 
						
							| 30 | 29 | adantr |  |-  ( ( A e. Fin /\ B e. CC ) -> ( A = (/) \/ ( ( # ` A ) e. NN /\ E. f f : ( 1 ... ( # ` A ) ) -1-1-onto-> A ) ) ) | 
						
							| 31 | 12 28 30 | mpjaod |  |-  ( ( A e. Fin /\ B e. CC ) -> prod_ k e. A B = ( B ^ ( # ` A ) ) ) |