Metamath Proof Explorer


Theorem coemulhi

Description: The leading coefficient of a product of polynomials. (Contributed by Mario Carneiro, 24-Jul-2014)

Ref Expression
Hypotheses coefv0.1 ⊢ A = coeff ⁡ F
coeadd.2 ⊢ B = coeff ⁡ G
coemulhi.3 ⊢ M = deg ⁡ F
coemulhi.4 ⊢ N = deg ⁡ G
Assertion coemulhi ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → coeff ⁡ F × f G ⁡ M + N = A ⁡ M ⁢ B ⁡ N

Proof

Step Hyp Ref Expression
1 coefv0.1 ⊢ A = coeff ⁡ F
2 coeadd.2 ⊢ B = coeff ⁡ G
3 coemulhi.3 ⊢ M = deg ⁡ F
4 coemulhi.4 ⊢ N = deg ⁡ G
5 dgrcl ⊢ F ∈ Poly ⁡ S → deg ⁡ F ∈ ℕ 0
6 3 5 eqeltrid ⊢ F ∈ Poly ⁡ S → M ∈ ℕ 0
7 dgrcl ⊢ G ∈ Poly ⁡ S → deg ⁡ G ∈ ℕ 0
8 4 7 eqeltrid ⊢ G ∈ Poly ⁡ S → N ∈ ℕ 0
9 nn0addcl ⊢ M ∈ ℕ 0 ∧ N ∈ ℕ 0 → M + N ∈ ℕ 0
10 6 8 9 syl2an ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M + N ∈ ℕ 0
11 1 2 coemul ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ M + N ∈ ℕ 0 → coeff ⁡ F × f G ⁡ M + N = ∑ k = 0 M + N A ⁡ k ⁢ B ⁡ M + N - k
12 10 11 mpd3an3 ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → coeff ⁡ F × f G ⁡ M + N = ∑ k = 0 M + N A ⁡ k ⁢ B ⁡ M + N - k
13 8 adantl ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → N ∈ ℕ 0
14 13 nn0ge0d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → 0 ≤ N
15 6 adantr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M ∈ ℕ 0
16 15 nn0red ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M ∈ ℝ
17 13 nn0red ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → N ∈ ℝ
18 16 17 addge01d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → 0 ≤ N ↔ M ≤ M + N
19 14 18 mpbid ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M ≤ M + N
20 nn0uz ⊢ ℕ 0 = ℤ ≥ 0
21 15 20 eleqtrdi ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M ∈ ℤ ≥ 0
22 10 nn0zd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M + N ∈ ℤ
23 elfz5 ⊢ M ∈ ℤ ≥ 0 ∧ M + N ∈ ℤ → M ∈ 0 … M + N ↔ M ≤ M + N
24 21 22 23 syl2anc ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M ∈ 0 … M + N ↔ M ≤ M + N
25 19 24 mpbird ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M ∈ 0 … M + N
26 25 snssd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M ⊆ 0 … M + N
27 elsni ⊢ k ∈ M → k = M
28 27 adantl ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ M → k = M
29 fveq2 ⊢ k = M → A ⁡ k = A ⁡ M
30 oveq2 ⊢ k = M → M + N - k = M + N - M
31 30 fveq2d ⊢ k = M → B ⁡ M + N - k = B ⁡ M + N - M
32 29 31 oveq12d ⊢ k = M → A ⁡ k ⁢ B ⁡ M + N - k = A ⁡ M ⁢ B ⁡ M + N - M
33 28 32 syl ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ M → A ⁡ k ⁢ B ⁡ M + N - k = A ⁡ M ⁢ B ⁡ M + N - M
34 16 recnd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M ∈ ℂ
35 17 recnd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → N ∈ ℂ
36 34 35 pncan2d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → M + N - M = N
37 36 fveq2d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → B ⁡ M + N - M = B ⁡ N
38 37 oveq2d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → A ⁡ M ⁢ B ⁡ M + N - M = A ⁡ M ⁢ B ⁡ N
39 1 coef3 ⊢ F ∈ Poly ⁡ S → A : ℕ 0 ⟶ ℂ
40 39 adantr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → A : ℕ 0 ⟶ ℂ
41 40 15 ffvelcdmd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → A ⁡ M ∈ ℂ
42 2 coef3 ⊢ G ∈ Poly ⁡ S → B : ℕ 0 ⟶ ℂ
43 42 adantl ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → B : ℕ 0 ⟶ ℂ
44 43 13 ffvelcdmd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → B ⁡ N ∈ ℂ
45 41 44 mulcld ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → A ⁡ M ⁢ B ⁡ N ∈ ℂ
46 38 45 eqeltrd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → A ⁡ M ⁢ B ⁡ M + N - M ∈ ℂ
47 46 adantr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ M → A ⁡ M ⁢ B ⁡ M + N - M ∈ ℂ
48 33 47 eqeltrd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ M → A ⁡ k ⁢ B ⁡ M + N - k ∈ ℂ
49 simpl ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → F ∈ Poly ⁡ S
50 eldifi ⊢ k ∈ 0 … M + N ∖ M → k ∈ 0 … M + N
51 elfznn0 ⊢ k ∈ 0 … M + N → k ∈ ℕ 0
52 50 51 syl ⊢ k ∈ 0 … M + N ∖ M → k ∈ ℕ 0
53 1 3 dgrub ⊢ F ∈ Poly ⁡ S ∧ k ∈ ℕ 0 ∧ A ⁡ k ≠ 0 → k ≤ M
54 53 3expia ⊢ F ∈ Poly ⁡ S ∧ k ∈ ℕ 0 → A ⁡ k ≠ 0 → k ≤ M
55 49 52 54 syl2an ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → A ⁡ k ≠ 0 → k ≤ M
56 55 necon1bd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → ¬ k ≤ M → A ⁡ k = 0
57 56 imp ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ k ≤ M → A ⁡ k = 0
58 57 oveq1d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ k ≤ M → A ⁡ k ⁢ B ⁡ M + N - k = 0 ⋅ B ⁡ M + N - k
59 43 ad2antrr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ k ≤ M → B : ℕ 0 ⟶ ℂ
60 50 ad2antlr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ k ≤ M → k ∈ 0 … M + N
61 fznn0sub ⊢ k ∈ 0 … M + N → M + N - k ∈ ℕ 0
62 60 61 syl ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ k ≤ M → M + N - k ∈ ℕ 0
63 59 62 ffvelcdmd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ k ≤ M → B ⁡ M + N - k ∈ ℂ
64 63 mul02d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ k ≤ M → 0 ⋅ B ⁡ M + N - k = 0
65 58 64 eqtrd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ k ≤ M → A ⁡ k ⁢ B ⁡ M + N - k = 0
66 16 adantr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → M ∈ ℝ
67 50 adantl ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → k ∈ 0 … M + N
68 67 51 syl ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → k ∈ ℕ 0
69 68 nn0red ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → k ∈ ℝ
70 17 adantr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → N ∈ ℝ
71 66 69 70 leadd1d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → M ≤ k ↔ M + N ≤ k + N
72 10 adantr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → M + N ∈ ℕ 0
73 72 nn0red ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → M + N ∈ ℝ
74 73 69 70 lesubadd2d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → M + N - k ≤ N ↔ M + N ≤ k + N
75 71 74 bitr4d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → M ≤ k ↔ M + N - k ≤ N
76 75 notbid ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → ¬ M ≤ k ↔ ¬ M + N - k ≤ N
77 76 biimpa ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ M ≤ k → ¬ M + N - k ≤ N
78 simpr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → G ∈ Poly ⁡ S
79 50 61 syl ⊢ k ∈ 0 … M + N ∖ M → M + N - k ∈ ℕ 0
80 2 4 dgrub ⊢ G ∈ Poly ⁡ S ∧ M + N - k ∈ ℕ 0 ∧ B ⁡ M + N - k ≠ 0 → M + N - k ≤ N
81 80 3expia ⊢ G ∈ Poly ⁡ S ∧ M + N - k ∈ ℕ 0 → B ⁡ M + N - k ≠ 0 → M + N - k ≤ N
82 78 79 81 syl2an ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → B ⁡ M + N - k ≠ 0 → M + N - k ≤ N
83 82 necon1bd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → ¬ M + N - k ≤ N → B ⁡ M + N - k = 0
84 83 imp ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ M + N - k ≤ N → B ⁡ M + N - k = 0
85 77 84 syldan ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ M ≤ k → B ⁡ M + N - k = 0
86 85 oveq2d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ M ≤ k → A ⁡ k ⁢ B ⁡ M + N - k = A ⁡ k ⋅ 0
87 40 ad2antrr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ M ≤ k → A : ℕ 0 ⟶ ℂ
88 52 ad2antlr ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ M ≤ k → k ∈ ℕ 0
89 87 88 ffvelcdmd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ M ≤ k → A ⁡ k ∈ ℂ
90 89 mul01d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ M ≤ k → A ⁡ k ⋅ 0 = 0
91 86 90 eqtrd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M ∧ ¬ M ≤ k → A ⁡ k ⁢ B ⁡ M + N - k = 0
92 eldifsni ⊢ k ∈ 0 … M + N ∖ M → k ≠ M
93 92 adantl ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → k ≠ M
94 69 66 letri3d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → k = M ↔ k ≤ M ∧ M ≤ k
95 94 necon3abid ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → k ≠ M ↔ ¬ k ≤ M ∧ M ≤ k
96 93 95 mpbid ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → ¬ k ≤ M ∧ M ≤ k
97 ianor ⊢ ¬ k ≤ M ∧ M ≤ k ↔ ¬ k ≤ M ∨ ¬ M ≤ k
98 96 97 sylib ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → ¬ k ≤ M ∨ ¬ M ≤ k
99 65 91 98 mpjaodan ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S ∧ k ∈ 0 … M + N ∖ M → A ⁡ k ⁢ B ⁡ M + N - k = 0
100 fzfid ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → 0 … M + N ∈ Fin
101 26 48 99 100 fsumss ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → ∑ k ∈ M A ⁡ k ⁢ B ⁡ M + N - k = ∑ k = 0 M + N A ⁡ k ⁢ B ⁡ M + N - k
102 32 sumsn ⊢ M ∈ ℕ 0 ∧ A ⁡ M ⁢ B ⁡ M + N - M ∈ ℂ → ∑ k ∈ M A ⁡ k ⁢ B ⁡ M + N - k = A ⁡ M ⁢ B ⁡ M + N - M
103 15 46 102 syl2anc ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → ∑ k ∈ M A ⁡ k ⁢ B ⁡ M + N - k = A ⁡ M ⁢ B ⁡ M + N - M
104 103 38 eqtrd ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → ∑ k ∈ M A ⁡ k ⁢ B ⁡ M + N - k = A ⁡ M ⁢ B ⁡ N
105 12 101 104 3eqtr2d ⊢ F ∈ Poly ⁡ S ∧ G ∈ Poly ⁡ S → coeff ⁡ F × f G ⁡ M + N = A ⁡ M ⁢ B ⁡ N