Step |
Hyp |
Ref |
Expression |
1 |
|
fproddvdsd.f |
|- ( ph -> A e. Fin ) |
2 |
|
fproddvdsd.s |
|- ( ph -> A C_ ZZ ) |
3 |
|
f1oi |
|- ( _I |` ZZ ) : ZZ -1-1-onto-> ZZ |
4 |
|
f1of |
|- ( ( _I |` ZZ ) : ZZ -1-1-onto-> ZZ -> ( _I |` ZZ ) : ZZ --> ZZ ) |
5 |
3 4
|
mp1i |
|- ( ph -> ( _I |` ZZ ) : ZZ --> ZZ ) |
6 |
1 2 5
|
fprodfvdvdsd |
|- ( ph -> A. x e. A ( ( _I |` ZZ ) ` x ) || prod_ k e. A ( ( _I |` ZZ ) ` k ) ) |
7 |
2
|
sselda |
|- ( ( ph /\ x e. A ) -> x e. ZZ ) |
8 |
|
fvresi |
|- ( x e. ZZ -> ( ( _I |` ZZ ) ` x ) = x ) |
9 |
7 8
|
syl |
|- ( ( ph /\ x e. A ) -> ( ( _I |` ZZ ) ` x ) = x ) |
10 |
9
|
eqcomd |
|- ( ( ph /\ x e. A ) -> x = ( ( _I |` ZZ ) ` x ) ) |
11 |
2
|
sseld |
|- ( ph -> ( k e. A -> k e. ZZ ) ) |
12 |
11
|
adantr |
|- ( ( ph /\ x e. A ) -> ( k e. A -> k e. ZZ ) ) |
13 |
12
|
imp |
|- ( ( ( ph /\ x e. A ) /\ k e. A ) -> k e. ZZ ) |
14 |
|
fvresi |
|- ( k e. ZZ -> ( ( _I |` ZZ ) ` k ) = k ) |
15 |
13 14
|
syl |
|- ( ( ( ph /\ x e. A ) /\ k e. A ) -> ( ( _I |` ZZ ) ` k ) = k ) |
16 |
15
|
eqcomd |
|- ( ( ( ph /\ x e. A ) /\ k e. A ) -> k = ( ( _I |` ZZ ) ` k ) ) |
17 |
16
|
prodeq2dv |
|- ( ( ph /\ x e. A ) -> prod_ k e. A k = prod_ k e. A ( ( _I |` ZZ ) ` k ) ) |
18 |
10 17
|
breq12d |
|- ( ( ph /\ x e. A ) -> ( x || prod_ k e. A k <-> ( ( _I |` ZZ ) ` x ) || prod_ k e. A ( ( _I |` ZZ ) ` k ) ) ) |
19 |
18
|
ralbidva |
|- ( ph -> ( A. x e. A x || prod_ k e. A k <-> A. x e. A ( ( _I |` ZZ ) ` x ) || prod_ k e. A ( ( _I |` ZZ ) ` k ) ) ) |
20 |
6 19
|
mpbird |
|- ( ph -> A. x e. A x || prod_ k e. A k ) |