Metamath Proof Explorer


Theorem fprodsplitsn

Description: Separate out a term in a finite product. (Contributed by Glauco Siliprandi, 5-Apr-2020)

Ref Expression
Hypotheses fprodsplitsn.ph 𝑘 𝜑
fprodsplitsn.kd 𝑘 𝐷
fprodsplitsn.a ( 𝜑𝐴 ∈ Fin )
fprodsplitsn.b ( 𝜑𝐵𝑉 )
fprodsplitsn.ba ( 𝜑 → ¬ 𝐵𝐴 )
fprodsplitsn.c ( ( 𝜑𝑘𝐴 ) → 𝐶 ∈ ℂ )
fprodsplitsn.d ( 𝑘 = 𝐵𝐶 = 𝐷 )
fprodsplitsn.dcn ( 𝜑𝐷 ∈ ℂ )
Assertion fprodsplitsn ( 𝜑 → ∏ 𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) 𝐶 = ( ∏ 𝑘𝐴 𝐶 · 𝐷 ) )

Proof

Step Hyp Ref Expression
1 fprodsplitsn.ph 𝑘 𝜑
2 fprodsplitsn.kd 𝑘 𝐷
3 fprodsplitsn.a ( 𝜑𝐴 ∈ Fin )
4 fprodsplitsn.b ( 𝜑𝐵𝑉 )
5 fprodsplitsn.ba ( 𝜑 → ¬ 𝐵𝐴 )
6 fprodsplitsn.c ( ( 𝜑𝑘𝐴 ) → 𝐶 ∈ ℂ )
7 fprodsplitsn.d ( 𝑘 = 𝐵𝐶 = 𝐷 )
8 fprodsplitsn.dcn ( 𝜑𝐷 ∈ ℂ )
9 disjsn ( ( 𝐴 ∩ { 𝐵 } ) = ∅ ↔ ¬ 𝐵𝐴 )
10 5 9 sylibr ( 𝜑 → ( 𝐴 ∩ { 𝐵 } ) = ∅ )
11 eqidd ( 𝜑 → ( 𝐴 ∪ { 𝐵 } ) = ( 𝐴 ∪ { 𝐵 } ) )
12 snfi { 𝐵 } ∈ Fin
13 unfi ( ( 𝐴 ∈ Fin ∧ { 𝐵 } ∈ Fin ) → ( 𝐴 ∪ { 𝐵 } ) ∈ Fin )
14 3 12 13 sylancl ( 𝜑 → ( 𝐴 ∪ { 𝐵 } ) ∈ Fin )
15 6 adantlr ( ( ( 𝜑𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) ) ∧ 𝑘𝐴 ) → 𝐶 ∈ ℂ )
16 elunnel1 ( ( 𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) ∧ ¬ 𝑘𝐴 ) → 𝑘 ∈ { 𝐵 } )
17 elsni ( 𝑘 ∈ { 𝐵 } → 𝑘 = 𝐵 )
18 16 17 syl ( ( 𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) ∧ ¬ 𝑘𝐴 ) → 𝑘 = 𝐵 )
19 18 adantll ( ( ( 𝜑𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) ) ∧ ¬ 𝑘𝐴 ) → 𝑘 = 𝐵 )
20 19 7 syl ( ( ( 𝜑𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) ) ∧ ¬ 𝑘𝐴 ) → 𝐶 = 𝐷 )
21 8 ad2antrr ( ( ( 𝜑𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) ) ∧ ¬ 𝑘𝐴 ) → 𝐷 ∈ ℂ )
22 20 21 eqeltrd ( ( ( 𝜑𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) ) ∧ ¬ 𝑘𝐴 ) → 𝐶 ∈ ℂ )
23 15 22 pm2.61dan ( ( 𝜑𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) ) → 𝐶 ∈ ℂ )
24 1 10 11 14 23 fprodsplitf ( 𝜑 → ∏ 𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) 𝐶 = ( ∏ 𝑘𝐴 𝐶 · ∏ 𝑘 ∈ { 𝐵 } 𝐶 ) )
25 2 7 prodsnf ( ( 𝐵𝑉𝐷 ∈ ℂ ) → ∏ 𝑘 ∈ { 𝐵 } 𝐶 = 𝐷 )
26 4 8 25 syl2anc ( 𝜑 → ∏ 𝑘 ∈ { 𝐵 } 𝐶 = 𝐷 )
27 26 oveq2d ( 𝜑 → ( ∏ 𝑘𝐴 𝐶 · ∏ 𝑘 ∈ { 𝐵 } 𝐶 ) = ( ∏ 𝑘𝐴 𝐶 · 𝐷 ) )
28 24 27 eqtrd ( 𝜑 → ∏ 𝑘 ∈ ( 𝐴 ∪ { 𝐵 } ) 𝐶 = ( ∏ 𝑘𝐴 𝐶 · 𝐷 ) )