Metamath Proof Explorer


Theorem fprodm1

Description: Separate out the last term in a finite product. (Contributed by Scott Fenton, 16-Dec-2017)

Ref Expression
Hypotheses fprodm1.1 ( 𝜑𝑁 ∈ ( ℤ𝑀 ) )
fprodm1.2 ( ( 𝜑𝑘 ∈ ( 𝑀 ... 𝑁 ) ) → 𝐴 ∈ ℂ )
fprodm1.3 ( 𝑘 = 𝑁𝐴 = 𝐵 )
Assertion fprodm1 ( 𝜑 → ∏ 𝑘 ∈ ( 𝑀 ... 𝑁 ) 𝐴 = ( ∏ 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) 𝐴 · 𝐵 ) )

Proof

Step Hyp Ref Expression
1 fprodm1.1 ( 𝜑𝑁 ∈ ( ℤ𝑀 ) )
2 fprodm1.2 ( ( 𝜑𝑘 ∈ ( 𝑀 ... 𝑁 ) ) → 𝐴 ∈ ℂ )
3 fprodm1.3 ( 𝑘 = 𝑁𝐴 = 𝐵 )
4 fzp1nel ¬ ( ( 𝑁 − 1 ) + 1 ) ∈ ( 𝑀 ... ( 𝑁 − 1 ) )
5 eluzelz ( 𝑁 ∈ ( ℤ𝑀 ) → 𝑁 ∈ ℤ )
6 1 5 syl ( 𝜑𝑁 ∈ ℤ )
7 6 zcnd ( 𝜑𝑁 ∈ ℂ )
8 1cnd ( 𝜑 → 1 ∈ ℂ )
9 7 8 npcand ( 𝜑 → ( ( 𝑁 − 1 ) + 1 ) = 𝑁 )
10 9 eleq1d ( 𝜑 → ( ( ( 𝑁 − 1 ) + 1 ) ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) ↔ 𝑁 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) ) )
11 4 10 mtbii ( 𝜑 → ¬ 𝑁 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) )
12 disjsn ( ( ( 𝑀 ... ( 𝑁 − 1 ) ) ∩ { 𝑁 } ) = ∅ ↔ ¬ 𝑁 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) )
13 11 12 sylibr ( 𝜑 → ( ( 𝑀 ... ( 𝑁 − 1 ) ) ∩ { 𝑁 } ) = ∅ )
14 eluzel2 ( 𝑁 ∈ ( ℤ𝑀 ) → 𝑀 ∈ ℤ )
15 1 14 syl ( 𝜑𝑀 ∈ ℤ )
16 peano2zm ( 𝑀 ∈ ℤ → ( 𝑀 − 1 ) ∈ ℤ )
17 15 16 syl ( 𝜑 → ( 𝑀 − 1 ) ∈ ℤ )
18 15 zcnd ( 𝜑𝑀 ∈ ℂ )
19 18 8 npcand ( 𝜑 → ( ( 𝑀 − 1 ) + 1 ) = 𝑀 )
20 19 fveq2d ( 𝜑 → ( ℤ ‘ ( ( 𝑀 − 1 ) + 1 ) ) = ( ℤ𝑀 ) )
21 1 20 eleqtrrd ( 𝜑𝑁 ∈ ( ℤ ‘ ( ( 𝑀 − 1 ) + 1 ) ) )
22 eluzp1m1 ( ( ( 𝑀 − 1 ) ∈ ℤ ∧ 𝑁 ∈ ( ℤ ‘ ( ( 𝑀 − 1 ) + 1 ) ) ) → ( 𝑁 − 1 ) ∈ ( ℤ ‘ ( 𝑀 − 1 ) ) )
23 17 21 22 syl2anc ( 𝜑 → ( 𝑁 − 1 ) ∈ ( ℤ ‘ ( 𝑀 − 1 ) ) )
24 fzsuc2 ( ( 𝑀 ∈ ℤ ∧ ( 𝑁 − 1 ) ∈ ( ℤ ‘ ( 𝑀 − 1 ) ) ) → ( 𝑀 ... ( ( 𝑁 − 1 ) + 1 ) ) = ( ( 𝑀 ... ( 𝑁 − 1 ) ) ∪ { ( ( 𝑁 − 1 ) + 1 ) } ) )
25 15 23 24 syl2anc ( 𝜑 → ( 𝑀 ... ( ( 𝑁 − 1 ) + 1 ) ) = ( ( 𝑀 ... ( 𝑁 − 1 ) ) ∪ { ( ( 𝑁 − 1 ) + 1 ) } ) )
26 9 oveq2d ( 𝜑 → ( 𝑀 ... ( ( 𝑁 − 1 ) + 1 ) ) = ( 𝑀 ... 𝑁 ) )
27 9 sneqd ( 𝜑 → { ( ( 𝑁 − 1 ) + 1 ) } = { 𝑁 } )
28 27 uneq2d ( 𝜑 → ( ( 𝑀 ... ( 𝑁 − 1 ) ) ∪ { ( ( 𝑁 − 1 ) + 1 ) } ) = ( ( 𝑀 ... ( 𝑁 − 1 ) ) ∪ { 𝑁 } ) )
29 25 26 28 3eqtr3d ( 𝜑 → ( 𝑀 ... 𝑁 ) = ( ( 𝑀 ... ( 𝑁 − 1 ) ) ∪ { 𝑁 } ) )
30 fzfid ( 𝜑 → ( 𝑀 ... 𝑁 ) ∈ Fin )
31 13 29 30 2 fprodsplit ( 𝜑 → ∏ 𝑘 ∈ ( 𝑀 ... 𝑁 ) 𝐴 = ( ∏ 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) 𝐴 · ∏ 𝑘 ∈ { 𝑁 } 𝐴 ) )
32 3 eleq1d ( 𝑘 = 𝑁 → ( 𝐴 ∈ ℂ ↔ 𝐵 ∈ ℂ ) )
33 2 ralrimiva ( 𝜑 → ∀ 𝑘 ∈ ( 𝑀 ... 𝑁 ) 𝐴 ∈ ℂ )
34 eluzfz2 ( 𝑁 ∈ ( ℤ𝑀 ) → 𝑁 ∈ ( 𝑀 ... 𝑁 ) )
35 1 34 syl ( 𝜑𝑁 ∈ ( 𝑀 ... 𝑁 ) )
36 32 33 35 rspcdva ( 𝜑𝐵 ∈ ℂ )
37 3 prodsn ( ( 𝑁 ∈ ( ℤ𝑀 ) ∧ 𝐵 ∈ ℂ ) → ∏ 𝑘 ∈ { 𝑁 } 𝐴 = 𝐵 )
38 1 36 37 syl2anc ( 𝜑 → ∏ 𝑘 ∈ { 𝑁 } 𝐴 = 𝐵 )
39 38 oveq2d ( 𝜑 → ( ∏ 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) 𝐴 · ∏ 𝑘 ∈ { 𝑁 } 𝐴 ) = ( ∏ 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) 𝐴 · 𝐵 ) )
40 31 39 eqtrd ( 𝜑 → ∏ 𝑘 ∈ ( 𝑀 ... 𝑁 ) 𝐴 = ( ∏ 𝑘 ∈ ( 𝑀 ... ( 𝑁 − 1 ) ) 𝐴 · 𝐵 ) )