Step |
Hyp |
Ref |
Expression |
1 |
|
fprodexp.kph |
|- F/ k ph |
2 |
|
fprodexp.n |
|- ( ph -> N e. NN0 ) |
3 |
|
fprodexp.a |
|- ( ph -> A e. Fin ) |
4 |
|
fprodexp.b |
|- ( ( ph /\ k e. A ) -> B e. CC ) |
5 |
|
prodeq1 |
|- ( x = (/) -> prod_ k e. x ( B ^ N ) = prod_ k e. (/) ( B ^ N ) ) |
6 |
|
prodeq1 |
|- ( x = (/) -> prod_ k e. x B = prod_ k e. (/) B ) |
7 |
6
|
oveq1d |
|- ( x = (/) -> ( prod_ k e. x B ^ N ) = ( prod_ k e. (/) B ^ N ) ) |
8 |
5 7
|
eqeq12d |
|- ( x = (/) -> ( prod_ k e. x ( B ^ N ) = ( prod_ k e. x B ^ N ) <-> prod_ k e. (/) ( B ^ N ) = ( prod_ k e. (/) B ^ N ) ) ) |
9 |
|
prodeq1 |
|- ( x = y -> prod_ k e. x ( B ^ N ) = prod_ k e. y ( B ^ N ) ) |
10 |
|
prodeq1 |
|- ( x = y -> prod_ k e. x B = prod_ k e. y B ) |
11 |
10
|
oveq1d |
|- ( x = y -> ( prod_ k e. x B ^ N ) = ( prod_ k e. y B ^ N ) ) |
12 |
9 11
|
eqeq12d |
|- ( x = y -> ( prod_ k e. x ( B ^ N ) = ( prod_ k e. x B ^ N ) <-> prod_ k e. y ( B ^ N ) = ( prod_ k e. y B ^ N ) ) ) |
13 |
|
prodeq1 |
|- ( x = ( y u. { z } ) -> prod_ k e. x ( B ^ N ) = prod_ k e. ( y u. { z } ) ( B ^ N ) ) |
14 |
|
prodeq1 |
|- ( x = ( y u. { z } ) -> prod_ k e. x B = prod_ k e. ( y u. { z } ) B ) |
15 |
14
|
oveq1d |
|- ( x = ( y u. { z } ) -> ( prod_ k e. x B ^ N ) = ( prod_ k e. ( y u. { z } ) B ^ N ) ) |
16 |
13 15
|
eqeq12d |
|- ( x = ( y u. { z } ) -> ( prod_ k e. x ( B ^ N ) = ( prod_ k e. x B ^ N ) <-> prod_ k e. ( y u. { z } ) ( B ^ N ) = ( prod_ k e. ( y u. { z } ) B ^ N ) ) ) |
17 |
|
prodeq1 |
|- ( x = A -> prod_ k e. x ( B ^ N ) = prod_ k e. A ( B ^ N ) ) |
18 |
|
prodeq1 |
|- ( x = A -> prod_ k e. x B = prod_ k e. A B ) |
19 |
18
|
oveq1d |
|- ( x = A -> ( prod_ k e. x B ^ N ) = ( prod_ k e. A B ^ N ) ) |
20 |
17 19
|
eqeq12d |
|- ( x = A -> ( prod_ k e. x ( B ^ N ) = ( prod_ k e. x B ^ N ) <-> prod_ k e. A ( B ^ N ) = ( prod_ k e. A B ^ N ) ) ) |
21 |
2
|
nn0zd |
|- ( ph -> N e. ZZ ) |
22 |
|
1exp |
|- ( N e. ZZ -> ( 1 ^ N ) = 1 ) |
23 |
21 22
|
syl |
|- ( ph -> ( 1 ^ N ) = 1 ) |
24 |
23
|
eqcomd |
|- ( ph -> 1 = ( 1 ^ N ) ) |
25 |
|
prod0 |
|- prod_ k e. (/) ( B ^ N ) = 1 |
26 |
25
|
a1i |
|- ( ph -> prod_ k e. (/) ( B ^ N ) = 1 ) |
27 |
|
prod0 |
|- prod_ k e. (/) B = 1 |
28 |
27
|
oveq1i |
|- ( prod_ k e. (/) B ^ N ) = ( 1 ^ N ) |
29 |
28
|
a1i |
|- ( ph -> ( prod_ k e. (/) B ^ N ) = ( 1 ^ N ) ) |
30 |
24 26 29
|
3eqtr4d |
|- ( ph -> prod_ k e. (/) ( B ^ N ) = ( prod_ k e. (/) B ^ N ) ) |
31 |
|
nfv |
|- F/ k ( y C_ A /\ z e. ( A \ y ) ) |
32 |
1 31
|
nfan |
|- F/ k ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) |
33 |
3
|
adantr |
|- ( ( ph /\ y C_ A ) -> A e. Fin ) |
34 |
|
simpr |
|- ( ( ph /\ y C_ A ) -> y C_ A ) |
35 |
|
ssfi |
|- ( ( A e. Fin /\ y C_ A ) -> y e. Fin ) |
36 |
33 34 35
|
syl2anc |
|- ( ( ph /\ y C_ A ) -> y e. Fin ) |
37 |
36
|
adantrr |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> y e. Fin ) |
38 |
|
simpll |
|- ( ( ( ph /\ y C_ A ) /\ k e. y ) -> ph ) |
39 |
34
|
sselda |
|- ( ( ( ph /\ y C_ A ) /\ k e. y ) -> k e. A ) |
40 |
38 39 4
|
syl2anc |
|- ( ( ( ph /\ y C_ A ) /\ k e. y ) -> B e. CC ) |
41 |
40
|
adantlrr |
|- ( ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) /\ k e. y ) -> B e. CC ) |
42 |
32 37 41
|
fprodclf |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> prod_ k e. y B e. CC ) |
43 |
|
simpl |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> ph ) |
44 |
|
simprr |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> z e. ( A \ y ) ) |
45 |
44
|
eldifad |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> z e. A ) |
46 |
|
nfv |
|- F/ k z e. A |
47 |
1 46
|
nfan |
|- F/ k ( ph /\ z e. A ) |
48 |
|
nfcsb1v |
|- F/_ k [_ z / k ]_ B |
49 |
48
|
nfel1 |
|- F/ k [_ z / k ]_ B e. CC |
50 |
47 49
|
nfim |
|- F/ k ( ( ph /\ z e. A ) -> [_ z / k ]_ B e. CC ) |
51 |
|
eleq1w |
|- ( k = z -> ( k e. A <-> z e. A ) ) |
52 |
51
|
anbi2d |
|- ( k = z -> ( ( ph /\ k e. A ) <-> ( ph /\ z e. A ) ) ) |
53 |
|
csbeq1a |
|- ( k = z -> B = [_ z / k ]_ B ) |
54 |
53
|
eleq1d |
|- ( k = z -> ( B e. CC <-> [_ z / k ]_ B e. CC ) ) |
55 |
52 54
|
imbi12d |
|- ( k = z -> ( ( ( ph /\ k e. A ) -> B e. CC ) <-> ( ( ph /\ z e. A ) -> [_ z / k ]_ B e. CC ) ) ) |
56 |
50 55 4
|
chvarfv |
|- ( ( ph /\ z e. A ) -> [_ z / k ]_ B e. CC ) |
57 |
43 45 56
|
syl2anc |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> [_ z / k ]_ B e. CC ) |
58 |
2
|
adantr |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> N e. NN0 ) |
59 |
|
mulexp |
|- ( ( prod_ k e. y B e. CC /\ [_ z / k ]_ B e. CC /\ N e. NN0 ) -> ( ( prod_ k e. y B x. [_ z / k ]_ B ) ^ N ) = ( ( prod_ k e. y B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) ) |
60 |
42 57 58 59
|
syl3anc |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> ( ( prod_ k e. y B x. [_ z / k ]_ B ) ^ N ) = ( ( prod_ k e. y B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) ) |
61 |
60
|
eqcomd |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> ( ( prod_ k e. y B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) = ( ( prod_ k e. y B x. [_ z / k ]_ B ) ^ N ) ) |
62 |
61
|
adantr |
|- ( ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) /\ prod_ k e. y ( B ^ N ) = ( prod_ k e. y B ^ N ) ) -> ( ( prod_ k e. y B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) = ( ( prod_ k e. y B x. [_ z / k ]_ B ) ^ N ) ) |
63 |
|
nfcv |
|- F/_ k ^ |
64 |
|
nfcv |
|- F/_ k N |
65 |
48 63 64
|
nfov |
|- F/_ k ( [_ z / k ]_ B ^ N ) |
66 |
44
|
eldifbd |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> -. z e. y ) |
67 |
2
|
ad2antrr |
|- ( ( ( ph /\ y C_ A ) /\ k e. y ) -> N e. NN0 ) |
68 |
40 67
|
expcld |
|- ( ( ( ph /\ y C_ A ) /\ k e. y ) -> ( B ^ N ) e. CC ) |
69 |
68
|
adantlrr |
|- ( ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) /\ k e. y ) -> ( B ^ N ) e. CC ) |
70 |
53
|
oveq1d |
|- ( k = z -> ( B ^ N ) = ( [_ z / k ]_ B ^ N ) ) |
71 |
57 58
|
expcld |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> ( [_ z / k ]_ B ^ N ) e. CC ) |
72 |
32 65 37 44 66 69 70 71
|
fprodsplitsn |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> prod_ k e. ( y u. { z } ) ( B ^ N ) = ( prod_ k e. y ( B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) ) |
73 |
72
|
adantr |
|- ( ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) /\ prod_ k e. y ( B ^ N ) = ( prod_ k e. y B ^ N ) ) -> prod_ k e. ( y u. { z } ) ( B ^ N ) = ( prod_ k e. y ( B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) ) |
74 |
|
oveq1 |
|- ( prod_ k e. y ( B ^ N ) = ( prod_ k e. y B ^ N ) -> ( prod_ k e. y ( B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) = ( ( prod_ k e. y B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) ) |
75 |
74
|
adantl |
|- ( ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) /\ prod_ k e. y ( B ^ N ) = ( prod_ k e. y B ^ N ) ) -> ( prod_ k e. y ( B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) = ( ( prod_ k e. y B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) ) |
76 |
73 75
|
eqtrd |
|- ( ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) /\ prod_ k e. y ( B ^ N ) = ( prod_ k e. y B ^ N ) ) -> prod_ k e. ( y u. { z } ) ( B ^ N ) = ( ( prod_ k e. y B ^ N ) x. ( [_ z / k ]_ B ^ N ) ) ) |
77 |
32 48 37 44 66 41 53 57
|
fprodsplitsn |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> prod_ k e. ( y u. { z } ) B = ( prod_ k e. y B x. [_ z / k ]_ B ) ) |
78 |
77
|
adantr |
|- ( ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) /\ prod_ k e. y ( B ^ N ) = ( prod_ k e. y B ^ N ) ) -> prod_ k e. ( y u. { z } ) B = ( prod_ k e. y B x. [_ z / k ]_ B ) ) |
79 |
78
|
oveq1d |
|- ( ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) /\ prod_ k e. y ( B ^ N ) = ( prod_ k e. y B ^ N ) ) -> ( prod_ k e. ( y u. { z } ) B ^ N ) = ( ( prod_ k e. y B x. [_ z / k ]_ B ) ^ N ) ) |
80 |
62 76 79
|
3eqtr4d |
|- ( ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) /\ prod_ k e. y ( B ^ N ) = ( prod_ k e. y B ^ N ) ) -> prod_ k e. ( y u. { z } ) ( B ^ N ) = ( prod_ k e. ( y u. { z } ) B ^ N ) ) |
81 |
80
|
ex |
|- ( ( ph /\ ( y C_ A /\ z e. ( A \ y ) ) ) -> ( prod_ k e. y ( B ^ N ) = ( prod_ k e. y B ^ N ) -> prod_ k e. ( y u. { z } ) ( B ^ N ) = ( prod_ k e. ( y u. { z } ) B ^ N ) ) ) |
82 |
8 12 16 20 30 81 3
|
findcard2d |
|- ( ph -> prod_ k e. A ( B ^ N ) = ( prod_ k e. A B ^ N ) ) |