This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
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 ) ) 𝐴 · 𝐵 ) ) |
| 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 ) ) 𝐴 · 𝐵 ) ) |