Metamath Proof Explorer


Theorem plyaddlem

Description: Lemma for plyadd . (Contributed by Mario Carneiro, 21-Jul-2014)

Ref Expression
Hypotheses plyadd.1 ( 𝜑𝐹 ∈ ( Poly ‘ 𝑆 ) )
plyadd.2 ( 𝜑𝐺 ∈ ( Poly ‘ 𝑆 ) )
plyadd.3 ( ( 𝜑 ∧ ( 𝑥𝑆𝑦𝑆 ) ) → ( 𝑥 + 𝑦 ) ∈ 𝑆 )
plyadd.m ( 𝜑𝑀 ∈ ℕ0 )
plyadd.n ( 𝜑𝑁 ∈ ℕ0 )
plyadd.a ( 𝜑𝐴 ∈ ( ( 𝑆 ∪ { 0 } ) ↑m0 ) )
plyadd.b ( 𝜑𝐵 ∈ ( ( 𝑆 ∪ { 0 } ) ↑m0 ) )
plyadd.a2 ( 𝜑 → ( 𝐴 “ ( ℤ ‘ ( 𝑀 + 1 ) ) ) = { 0 } )
plyadd.b2 ( 𝜑 → ( 𝐵 “ ( ℤ ‘ ( 𝑁 + 1 ) ) ) = { 0 } )
plyadd.f ( 𝜑𝐹 = ( 𝑧 ∈ ℂ ↦ Σ 𝑘 ∈ ( 0 ... 𝑀 ) ( ( 𝐴𝑘 ) · ( 𝑧𝑘 ) ) ) )
plyadd.g ( 𝜑𝐺 = ( 𝑧 ∈ ℂ ↦ Σ 𝑘 ∈ ( 0 ... 𝑁 ) ( ( 𝐵𝑘 ) · ( 𝑧𝑘 ) ) ) )
Assertion plyaddlem ( 𝜑 → ( 𝐹f + 𝐺 ) ∈ ( Poly ‘ 𝑆 ) )

Proof

Step Hyp Ref Expression
1 plyadd.1 ( 𝜑𝐹 ∈ ( Poly ‘ 𝑆 ) )
2 plyadd.2 ( 𝜑𝐺 ∈ ( Poly ‘ 𝑆 ) )
3 plyadd.3 ( ( 𝜑 ∧ ( 𝑥𝑆𝑦𝑆 ) ) → ( 𝑥 + 𝑦 ) ∈ 𝑆 )
4 plyadd.m ( 𝜑𝑀 ∈ ℕ0 )
5 plyadd.n ( 𝜑𝑁 ∈ ℕ0 )
6 plyadd.a ( 𝜑𝐴 ∈ ( ( 𝑆 ∪ { 0 } ) ↑m0 ) )
7 plyadd.b ( 𝜑𝐵 ∈ ( ( 𝑆 ∪ { 0 } ) ↑m0 ) )
8 plyadd.a2 ( 𝜑 → ( 𝐴 “ ( ℤ ‘ ( 𝑀 + 1 ) ) ) = { 0 } )
9 plyadd.b2 ( 𝜑 → ( 𝐵 “ ( ℤ ‘ ( 𝑁 + 1 ) ) ) = { 0 } )
10 plyadd.f ( 𝜑𝐹 = ( 𝑧 ∈ ℂ ↦ Σ 𝑘 ∈ ( 0 ... 𝑀 ) ( ( 𝐴𝑘 ) · ( 𝑧𝑘 ) ) ) )
11 plyadd.g ( 𝜑𝐺 = ( 𝑧 ∈ ℂ ↦ Σ 𝑘 ∈ ( 0 ... 𝑁 ) ( ( 𝐵𝑘 ) · ( 𝑧𝑘 ) ) ) )
12 plybss ( 𝐹 ∈ ( Poly ‘ 𝑆 ) → 𝑆 ⊆ ℂ )
13 1 12 syl ( 𝜑𝑆 ⊆ ℂ )
14 0cnd ( 𝜑 → 0 ∈ ℂ )
15 14 snssd ( 𝜑 → { 0 } ⊆ ℂ )
16 13 15 unssd ( 𝜑 → ( 𝑆 ∪ { 0 } ) ⊆ ℂ )
17 cnex ℂ ∈ V
18 ssexg ( ( ( 𝑆 ∪ { 0 } ) ⊆ ℂ ∧ ℂ ∈ V ) → ( 𝑆 ∪ { 0 } ) ∈ V )
19 16 17 18 sylancl ( 𝜑 → ( 𝑆 ∪ { 0 } ) ∈ V )
20 nn0ex 0 ∈ V
21 elmapg ( ( ( 𝑆 ∪ { 0 } ) ∈ V ∧ ℕ0 ∈ V ) → ( 𝐴 ∈ ( ( 𝑆 ∪ { 0 } ) ↑m0 ) ↔ 𝐴 : ℕ0 ⟶ ( 𝑆 ∪ { 0 } ) ) )
22 19 20 21 sylancl ( 𝜑 → ( 𝐴 ∈ ( ( 𝑆 ∪ { 0 } ) ↑m0 ) ↔ 𝐴 : ℕ0 ⟶ ( 𝑆 ∪ { 0 } ) ) )
23 6 22 mpbid ( 𝜑𝐴 : ℕ0 ⟶ ( 𝑆 ∪ { 0 } ) )
24 23 16 fssd ( 𝜑𝐴 : ℕ0 ⟶ ℂ )
25 elmapg ( ( ( 𝑆 ∪ { 0 } ) ∈ V ∧ ℕ0 ∈ V ) → ( 𝐵 ∈ ( ( 𝑆 ∪ { 0 } ) ↑m0 ) ↔ 𝐵 : ℕ0 ⟶ ( 𝑆 ∪ { 0 } ) ) )
26 19 20 25 sylancl ( 𝜑 → ( 𝐵 ∈ ( ( 𝑆 ∪ { 0 } ) ↑m0 ) ↔ 𝐵 : ℕ0 ⟶ ( 𝑆 ∪ { 0 } ) ) )
27 7 26 mpbid ( 𝜑𝐵 : ℕ0 ⟶ ( 𝑆 ∪ { 0 } ) )
28 27 16 fssd ( 𝜑𝐵 : ℕ0 ⟶ ℂ )
29 1 2 4 5 24 28 8 9 10 11 plyaddlem1 ( 𝜑 → ( 𝐹f + 𝐺 ) = ( 𝑧 ∈ ℂ ↦ Σ 𝑘 ∈ ( 0 ... if ( 𝑀𝑁 , 𝑁 , 𝑀 ) ) ( ( ( 𝐴f + 𝐵 ) ‘ 𝑘 ) · ( 𝑧𝑘 ) ) ) )
30 5 4 ifcld ( 𝜑 → if ( 𝑀𝑁 , 𝑁 , 𝑀 ) ∈ ℕ0 )
31 eqid ( 𝑆 ∪ { 0 } ) = ( 𝑆 ∪ { 0 } )
32 13 31 3 un0addcl ( ( 𝜑 ∧ ( 𝑥 ∈ ( 𝑆 ∪ { 0 } ) ∧ 𝑦 ∈ ( 𝑆 ∪ { 0 } ) ) ) → ( 𝑥 + 𝑦 ) ∈ ( 𝑆 ∪ { 0 } ) )
33 20 a1i ( 𝜑 → ℕ0 ∈ V )
34 inidm ( ℕ0 ∩ ℕ0 ) = ℕ0
35 32 23 27 33 33 34 off ( 𝜑 → ( 𝐴f + 𝐵 ) : ℕ0 ⟶ ( 𝑆 ∪ { 0 } ) )
36 elfznn0 ( 𝑘 ∈ ( 0 ... if ( 𝑀𝑁 , 𝑁 , 𝑀 ) ) → 𝑘 ∈ ℕ0 )
37 ffvelrn ( ( ( 𝐴f + 𝐵 ) : ℕ0 ⟶ ( 𝑆 ∪ { 0 } ) ∧ 𝑘 ∈ ℕ0 ) → ( ( 𝐴f + 𝐵 ) ‘ 𝑘 ) ∈ ( 𝑆 ∪ { 0 } ) )
38 35 36 37 syl2an ( ( 𝜑𝑘 ∈ ( 0 ... if ( 𝑀𝑁 , 𝑁 , 𝑀 ) ) ) → ( ( 𝐴f + 𝐵 ) ‘ 𝑘 ) ∈ ( 𝑆 ∪ { 0 } ) )
39 16 30 38 elplyd ( 𝜑 → ( 𝑧 ∈ ℂ ↦ Σ 𝑘 ∈ ( 0 ... if ( 𝑀𝑁 , 𝑁 , 𝑀 ) ) ( ( ( 𝐴f + 𝐵 ) ‘ 𝑘 ) · ( 𝑧𝑘 ) ) ) ∈ ( Poly ‘ ( 𝑆 ∪ { 0 } ) ) )
40 29 39 eqeltrd ( 𝜑 → ( 𝐹f + 𝐺 ) ∈ ( Poly ‘ ( 𝑆 ∪ { 0 } ) ) )
41 plyun0 ( Poly ‘ ( 𝑆 ∪ { 0 } ) ) = ( Poly ‘ 𝑆 )
42 40 41 eleqtrdi ( 𝜑 → ( 𝐹f + 𝐺 ) ∈ ( Poly ‘ 𝑆 ) )