| Step |
Hyp |
Ref |
Expression |
| 1 |
|
fprodeq0.1 |
|- Z = ( ZZ>= ` M ) |
| 2 |
|
fprodeq0.2 |
|- ( ph -> N e. Z ) |
| 3 |
|
fprodeq0.3 |
|- ( ( ph /\ k e. Z ) -> A e. CC ) |
| 4 |
|
fprodeq0.4 |
|- ( ( ph /\ k = N ) -> A = 0 ) |
| 5 |
|
eluzel2 |
|- ( K e. ( ZZ>= ` N ) -> N e. ZZ ) |
| 6 |
5
|
adantl |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> N e. ZZ ) |
| 7 |
6
|
zred |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> N e. RR ) |
| 8 |
7
|
ltp1d |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> N < ( N + 1 ) ) |
| 9 |
|
fzdisj |
|- ( N < ( N + 1 ) -> ( ( M ... N ) i^i ( ( N + 1 ) ... K ) ) = (/) ) |
| 10 |
8 9
|
syl |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> ( ( M ... N ) i^i ( ( N + 1 ) ... K ) ) = (/) ) |
| 11 |
|
eluzel2 |
|- ( N e. ( ZZ>= ` M ) -> M e. ZZ ) |
| 12 |
11 1
|
eleq2s |
|- ( N e. Z -> M e. ZZ ) |
| 13 |
2 12
|
syl |
|- ( ph -> M e. ZZ ) |
| 14 |
13
|
adantr |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> M e. ZZ ) |
| 15 |
|
eluzelz |
|- ( K e. ( ZZ>= ` N ) -> K e. ZZ ) |
| 16 |
15
|
adantl |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> K e. ZZ ) |
| 17 |
14 16 6
|
3jca |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> ( M e. ZZ /\ K e. ZZ /\ N e. ZZ ) ) |
| 18 |
|
eluzle |
|- ( N e. ( ZZ>= ` M ) -> M <_ N ) |
| 19 |
18 1
|
eleq2s |
|- ( N e. Z -> M <_ N ) |
| 20 |
2 19
|
syl |
|- ( ph -> M <_ N ) |
| 21 |
|
eluzle |
|- ( K e. ( ZZ>= ` N ) -> N <_ K ) |
| 22 |
20 21
|
anim12i |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> ( M <_ N /\ N <_ K ) ) |
| 23 |
|
elfz2 |
|- ( N e. ( M ... K ) <-> ( ( M e. ZZ /\ K e. ZZ /\ N e. ZZ ) /\ ( M <_ N /\ N <_ K ) ) ) |
| 24 |
17 22 23
|
sylanbrc |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> N e. ( M ... K ) ) |
| 25 |
|
fzsplit |
|- ( N e. ( M ... K ) -> ( M ... K ) = ( ( M ... N ) u. ( ( N + 1 ) ... K ) ) ) |
| 26 |
24 25
|
syl |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> ( M ... K ) = ( ( M ... N ) u. ( ( N + 1 ) ... K ) ) ) |
| 27 |
|
fzfid |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> ( M ... K ) e. Fin ) |
| 28 |
|
elfzuz |
|- ( k e. ( M ... K ) -> k e. ( ZZ>= ` M ) ) |
| 29 |
28 1
|
eleqtrrdi |
|- ( k e. ( M ... K ) -> k e. Z ) |
| 30 |
29 3
|
sylan2 |
|- ( ( ph /\ k e. ( M ... K ) ) -> A e. CC ) |
| 31 |
30
|
adantlr |
|- ( ( ( ph /\ K e. ( ZZ>= ` N ) ) /\ k e. ( M ... K ) ) -> A e. CC ) |
| 32 |
10 26 27 31
|
fprodsplit |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> prod_ k e. ( M ... K ) A = ( prod_ k e. ( M ... N ) A x. prod_ k e. ( ( N + 1 ) ... K ) A ) ) |
| 33 |
2 1
|
eleqtrdi |
|- ( ph -> N e. ( ZZ>= ` M ) ) |
| 34 |
|
elfzuz |
|- ( k e. ( M ... N ) -> k e. ( ZZ>= ` M ) ) |
| 35 |
34 1
|
eleqtrrdi |
|- ( k e. ( M ... N ) -> k e. Z ) |
| 36 |
35 3
|
sylan2 |
|- ( ( ph /\ k e. ( M ... N ) ) -> A e. CC ) |
| 37 |
33 36
|
fprodm1s |
|- ( ph -> prod_ k e. ( M ... N ) A = ( prod_ k e. ( M ... ( N - 1 ) ) A x. [_ N / k ]_ A ) ) |
| 38 |
2 4
|
csbied |
|- ( ph -> [_ N / k ]_ A = 0 ) |
| 39 |
38
|
oveq2d |
|- ( ph -> ( prod_ k e. ( M ... ( N - 1 ) ) A x. [_ N / k ]_ A ) = ( prod_ k e. ( M ... ( N - 1 ) ) A x. 0 ) ) |
| 40 |
|
fzfid |
|- ( ph -> ( M ... ( N - 1 ) ) e. Fin ) |
| 41 |
|
elfzuz |
|- ( k e. ( M ... ( N - 1 ) ) -> k e. ( ZZ>= ` M ) ) |
| 42 |
41 1
|
eleqtrrdi |
|- ( k e. ( M ... ( N - 1 ) ) -> k e. Z ) |
| 43 |
42 3
|
sylan2 |
|- ( ( ph /\ k e. ( M ... ( N - 1 ) ) ) -> A e. CC ) |
| 44 |
40 43
|
fprodcl |
|- ( ph -> prod_ k e. ( M ... ( N - 1 ) ) A e. CC ) |
| 45 |
44
|
mul01d |
|- ( ph -> ( prod_ k e. ( M ... ( N - 1 ) ) A x. 0 ) = 0 ) |
| 46 |
37 39 45
|
3eqtrd |
|- ( ph -> prod_ k e. ( M ... N ) A = 0 ) |
| 47 |
46
|
adantr |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> prod_ k e. ( M ... N ) A = 0 ) |
| 48 |
47
|
oveq1d |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> ( prod_ k e. ( M ... N ) A x. prod_ k e. ( ( N + 1 ) ... K ) A ) = ( 0 x. prod_ k e. ( ( N + 1 ) ... K ) A ) ) |
| 49 |
|
fzfid |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> ( ( N + 1 ) ... K ) e. Fin ) |
| 50 |
1
|
peano2uzs |
|- ( N e. Z -> ( N + 1 ) e. Z ) |
| 51 |
2 50
|
syl |
|- ( ph -> ( N + 1 ) e. Z ) |
| 52 |
|
elfzuz |
|- ( k e. ( ( N + 1 ) ... K ) -> k e. ( ZZ>= ` ( N + 1 ) ) ) |
| 53 |
1
|
uztrn2 |
|- ( ( ( N + 1 ) e. Z /\ k e. ( ZZ>= ` ( N + 1 ) ) ) -> k e. Z ) |
| 54 |
51 52 53
|
syl2an |
|- ( ( ph /\ k e. ( ( N + 1 ) ... K ) ) -> k e. Z ) |
| 55 |
54
|
adantrl |
|- ( ( ph /\ ( K e. ( ZZ>= ` N ) /\ k e. ( ( N + 1 ) ... K ) ) ) -> k e. Z ) |
| 56 |
55 3
|
syldan |
|- ( ( ph /\ ( K e. ( ZZ>= ` N ) /\ k e. ( ( N + 1 ) ... K ) ) ) -> A e. CC ) |
| 57 |
56
|
anassrs |
|- ( ( ( ph /\ K e. ( ZZ>= ` N ) ) /\ k e. ( ( N + 1 ) ... K ) ) -> A e. CC ) |
| 58 |
49 57
|
fprodcl |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> prod_ k e. ( ( N + 1 ) ... K ) A e. CC ) |
| 59 |
58
|
mul02d |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> ( 0 x. prod_ k e. ( ( N + 1 ) ... K ) A ) = 0 ) |
| 60 |
32 48 59
|
3eqtrd |
|- ( ( ph /\ K e. ( ZZ>= ` N ) ) -> prod_ k e. ( M ... K ) A = 0 ) |