Metamath Proof Explorer


Theorem fprodeq0

Description: Any finite product containing a zero term is itself zero. (Contributed by Scott Fenton, 27-Dec-2017)

Ref Expression
Hypotheses fprodeq0.1 𝑍 = ( ℤ𝑀 )
fprodeq0.2 ( 𝜑𝑁𝑍 )
fprodeq0.3 ( ( 𝜑𝑘𝑍 ) → 𝐴 ∈ ℂ )
fprodeq0.4 ( ( 𝜑𝑘 = 𝑁 ) → 𝐴 = 0 )
Assertion fprodeq0 ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ∏ 𝑘 ∈ ( 𝑀 ... 𝐾 ) 𝐴 = 0 )

Proof

Step Hyp Ref Expression
1 fprodeq0.1 𝑍 = ( ℤ𝑀 )
2 fprodeq0.2 ( 𝜑𝑁𝑍 )
3 fprodeq0.3 ( ( 𝜑𝑘𝑍 ) → 𝐴 ∈ ℂ )
4 fprodeq0.4 ( ( 𝜑𝑘 = 𝑁 ) → 𝐴 = 0 )
5 eluzel2 ( 𝐾 ∈ ( ℤ𝑁 ) → 𝑁 ∈ ℤ )
6 5 adantl ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → 𝑁 ∈ ℤ )
7 6 zred ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → 𝑁 ∈ ℝ )
8 7 ltp1d ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → 𝑁 < ( 𝑁 + 1 ) )
9 fzdisj ( 𝑁 < ( 𝑁 + 1 ) → ( ( 𝑀 ... 𝑁 ) ∩ ( ( 𝑁 + 1 ) ... 𝐾 ) ) = ∅ )
10 8 9 syl ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ( ( 𝑀 ... 𝑁 ) ∩ ( ( 𝑁 + 1 ) ... 𝐾 ) ) = ∅ )
11 eluzel2 ( 𝑁 ∈ ( ℤ𝑀 ) → 𝑀 ∈ ℤ )
12 11 1 eleq2s ( 𝑁𝑍𝑀 ∈ ℤ )
13 2 12 syl ( 𝜑𝑀 ∈ ℤ )
14 13 adantr ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → 𝑀 ∈ ℤ )
15 eluzelz ( 𝐾 ∈ ( ℤ𝑁 ) → 𝐾 ∈ ℤ )
16 15 adantl ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → 𝐾 ∈ ℤ )
17 14 16 6 3jca ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ( 𝑀 ∈ ℤ ∧ 𝐾 ∈ ℤ ∧ 𝑁 ∈ ℤ ) )
18 eluzle ( 𝑁 ∈ ( ℤ𝑀 ) → 𝑀𝑁 )
19 18 1 eleq2s ( 𝑁𝑍𝑀𝑁 )
20 2 19 syl ( 𝜑𝑀𝑁 )
21 eluzle ( 𝐾 ∈ ( ℤ𝑁 ) → 𝑁𝐾 )
22 20 21 anim12i ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ( 𝑀𝑁𝑁𝐾 ) )
23 elfz2 ( 𝑁 ∈ ( 𝑀 ... 𝐾 ) ↔ ( ( 𝑀 ∈ ℤ ∧ 𝐾 ∈ ℤ ∧ 𝑁 ∈ ℤ ) ∧ ( 𝑀𝑁𝑁𝐾 ) ) )
24 17 22 23 sylanbrc ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → 𝑁 ∈ ( 𝑀 ... 𝐾 ) )
25 fzsplit ( 𝑁 ∈ ( 𝑀 ... 𝐾 ) → ( 𝑀 ... 𝐾 ) = ( ( 𝑀 ... 𝑁 ) ∪ ( ( 𝑁 + 1 ) ... 𝐾 ) ) )
26 24 25 syl ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ( 𝑀 ... 𝐾 ) = ( ( 𝑀 ... 𝑁 ) ∪ ( ( 𝑁 + 1 ) ... 𝐾 ) ) )
27 fzfid ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ( 𝑀 ... 𝐾 ) ∈ Fin )
28 elfzuz ( 𝑘 ∈ ( 𝑀 ... 𝐾 ) → 𝑘 ∈ ( ℤ𝑀 ) )
29 28 1 eleqtrrdi ( 𝑘 ∈ ( 𝑀 ... 𝐾 ) → 𝑘𝑍 )
30 29 3 sylan2 ( ( 𝜑𝑘 ∈ ( 𝑀 ... 𝐾 ) ) → 𝐴 ∈ ℂ )
31 30 adantlr ( ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) ∧ 𝑘 ∈ ( 𝑀 ... 𝐾 ) ) → 𝐴 ∈ ℂ )
32 10 26 27 31 fprodsplit ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ∏ 𝑘 ∈ ( 𝑀 ... 𝐾 ) 𝐴 = ( ∏ 𝑘 ∈ ( 𝑀 ... 𝑁 ) 𝐴 · ∏ 𝑘 ∈ ( ( 𝑁 + 1 ) ... 𝐾 ) 𝐴 ) )
33 2 1 eleqtrdi ( 𝜑𝑁 ∈ ( ℤ𝑀 ) )
34 elfzuz ( 𝑘 ∈ ( 𝑀 ... 𝑁 ) → 𝑘 ∈ ( ℤ𝑀 ) )
35 34 1 eleqtrrdi ( 𝑘 ∈ ( 𝑀 ... 𝑁 ) → 𝑘𝑍 )
36 35 3 sylan2 ( ( 𝜑𝑘 ∈ ( 𝑀 ... 𝑁 ) ) → 𝐴 ∈ ℂ )
37 33 36 fprodm1s ( 𝜑 → ∏ 𝑘 ∈ ( 𝑀 ... 𝑁 ) 𝐴 = ( ∏ 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) 𝐴 · 𝑁 / 𝑘 𝐴 ) )
38 2 4 csbied ( 𝜑 𝑁 / 𝑘 𝐴 = 0 )
39 38 oveq2d ( 𝜑 → ( ∏ 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) 𝐴 · 𝑁 / 𝑘 𝐴 ) = ( ∏ 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) 𝐴 · 0 ) )
40 fzfid ( 𝜑 → ( 𝑀 ... ( 𝑁 − 1 ) ) ∈ Fin )
41 elfzuz ( 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) → 𝑘 ∈ ( ℤ𝑀 ) )
42 41 1 eleqtrrdi ( 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) → 𝑘𝑍 )
43 42 3 sylan2 ( ( 𝜑𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) ) → 𝐴 ∈ ℂ )
44 40 43 fprodcl ( 𝜑 → ∏ 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) 𝐴 ∈ ℂ )
45 44 mul01d ( 𝜑 → ( ∏ 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) 𝐴 · 0 ) = 0 )
46 37 39 45 3eqtrd ( 𝜑 → ∏ 𝑘 ∈ ( 𝑀 ... 𝑁 ) 𝐴 = 0 )
47 46 adantr ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ∏ 𝑘 ∈ ( 𝑀 ... 𝑁 ) 𝐴 = 0 )
48 47 oveq1d ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ( ∏ 𝑘 ∈ ( 𝑀 ... 𝑁 ) 𝐴 · ∏ 𝑘 ∈ ( ( 𝑁 + 1 ) ... 𝐾 ) 𝐴 ) = ( 0 · ∏ 𝑘 ∈ ( ( 𝑁 + 1 ) ... 𝐾 ) 𝐴 ) )
49 fzfid ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ( ( 𝑁 + 1 ) ... 𝐾 ) ∈ Fin )
50 1 peano2uzs ( 𝑁𝑍 → ( 𝑁 + 1 ) ∈ 𝑍 )
51 2 50 syl ( 𝜑 → ( 𝑁 + 1 ) ∈ 𝑍 )
52 elfzuz ( 𝑘 ∈ ( ( 𝑁 + 1 ) ... 𝐾 ) → 𝑘 ∈ ( ℤ ‘ ( 𝑁 + 1 ) ) )
53 1 uztrn2 ( ( ( 𝑁 + 1 ) ∈ 𝑍𝑘 ∈ ( ℤ ‘ ( 𝑁 + 1 ) ) ) → 𝑘𝑍 )
54 51 52 53 syl2an ( ( 𝜑𝑘 ∈ ( ( 𝑁 + 1 ) ... 𝐾 ) ) → 𝑘𝑍 )
55 54 adantrl ( ( 𝜑 ∧ ( 𝐾 ∈ ( ℤ𝑁 ) ∧ 𝑘 ∈ ( ( 𝑁 + 1 ) ... 𝐾 ) ) ) → 𝑘𝑍 )
56 55 3 syldan ( ( 𝜑 ∧ ( 𝐾 ∈ ( ℤ𝑁 ) ∧ 𝑘 ∈ ( ( 𝑁 + 1 ) ... 𝐾 ) ) ) → 𝐴 ∈ ℂ )
57 56 anassrs ( ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) ∧ 𝑘 ∈ ( ( 𝑁 + 1 ) ... 𝐾 ) ) → 𝐴 ∈ ℂ )
58 49 57 fprodcl ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ∏ 𝑘 ∈ ( ( 𝑁 + 1 ) ... 𝐾 ) 𝐴 ∈ ℂ )
59 58 mul02d ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ( 0 · ∏ 𝑘 ∈ ( ( 𝑁 + 1 ) ... 𝐾 ) 𝐴 ) = 0 )
60 32 48 59 3eqtrd ( ( 𝜑𝐾 ∈ ( ℤ𝑁 ) ) → ∏ 𝑘 ∈ ( 𝑀 ... 𝐾 ) 𝐴 = 0 )