| Step | Hyp | Ref | Expression | 
						
							| 1 |  | dgradd.1 | ⊢ 𝑀  =  ( deg ‘ 𝐹 ) | 
						
							| 2 |  | dgradd.2 | ⊢ 𝑁  =  ( deg ‘ 𝐺 ) | 
						
							| 3 |  | plyaddcl | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 ) )  →  ( 𝐹  ∘f   +  𝐺 )  ∈  ( Poly ‘ ℂ ) ) | 
						
							| 4 | 3 | 3adant3 | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( 𝐹  ∘f   +  𝐺 )  ∈  ( Poly ‘ ℂ ) ) | 
						
							| 5 |  | dgrcl | ⊢ ( ( 𝐹  ∘f   +  𝐺 )  ∈  ( Poly ‘ ℂ )  →  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) )  ∈  ℕ0 ) | 
						
							| 6 | 4 5 | syl | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) )  ∈  ℕ0 ) | 
						
							| 7 | 6 | nn0red | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) )  ∈  ℝ ) | 
						
							| 8 |  | dgrcl | ⊢ ( 𝐺  ∈  ( Poly ‘ 𝑆 )  →  ( deg ‘ 𝐺 )  ∈  ℕ0 ) | 
						
							| 9 | 2 8 | eqeltrid | ⊢ ( 𝐺  ∈  ( Poly ‘ 𝑆 )  →  𝑁  ∈  ℕ0 ) | 
						
							| 10 | 9 | 3ad2ant2 | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝑁  ∈  ℕ0 ) | 
						
							| 11 | 10 | nn0red | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝑁  ∈  ℝ ) | 
						
							| 12 |  | dgrcl | ⊢ ( 𝐹  ∈  ( Poly ‘ 𝑆 )  →  ( deg ‘ 𝐹 )  ∈  ℕ0 ) | 
						
							| 13 | 1 12 | eqeltrid | ⊢ ( 𝐹  ∈  ( Poly ‘ 𝑆 )  →  𝑀  ∈  ℕ0 ) | 
						
							| 14 | 13 | 3ad2ant1 | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝑀  ∈  ℕ0 ) | 
						
							| 15 | 14 | nn0red | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝑀  ∈  ℝ ) | 
						
							| 16 | 11 15 | ifcld | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  if ( 𝑀  ≤  𝑁 ,  𝑁 ,  𝑀 )  ∈  ℝ ) | 
						
							| 17 | 1 2 | dgradd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 ) )  →  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) )  ≤  if ( 𝑀  ≤  𝑁 ,  𝑁 ,  𝑀 ) ) | 
						
							| 18 | 17 | 3adant3 | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) )  ≤  if ( 𝑀  ≤  𝑁 ,  𝑁 ,  𝑀 ) ) | 
						
							| 19 | 11 | leidd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝑁  ≤  𝑁 ) | 
						
							| 20 |  | simp3 | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝑀  <  𝑁 ) | 
						
							| 21 | 15 11 20 | ltled | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝑀  ≤  𝑁 ) | 
						
							| 22 |  | breq1 | ⊢ ( 𝑁  =  if ( 𝑀  ≤  𝑁 ,  𝑁 ,  𝑀 )  →  ( 𝑁  ≤  𝑁  ↔  if ( 𝑀  ≤  𝑁 ,  𝑁 ,  𝑀 )  ≤  𝑁 ) ) | 
						
							| 23 |  | breq1 | ⊢ ( 𝑀  =  if ( 𝑀  ≤  𝑁 ,  𝑁 ,  𝑀 )  →  ( 𝑀  ≤  𝑁  ↔  if ( 𝑀  ≤  𝑁 ,  𝑁 ,  𝑀 )  ≤  𝑁 ) ) | 
						
							| 24 | 22 23 | ifboth | ⊢ ( ( 𝑁  ≤  𝑁  ∧  𝑀  ≤  𝑁 )  →  if ( 𝑀  ≤  𝑁 ,  𝑁 ,  𝑀 )  ≤  𝑁 ) | 
						
							| 25 | 19 21 24 | syl2anc | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  if ( 𝑀  ≤  𝑁 ,  𝑁 ,  𝑀 )  ≤  𝑁 ) | 
						
							| 26 | 7 16 11 18 25 | letrd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) )  ≤  𝑁 ) | 
						
							| 27 |  | eqid | ⊢ ( coeff ‘ 𝐹 )  =  ( coeff ‘ 𝐹 ) | 
						
							| 28 |  | eqid | ⊢ ( coeff ‘ 𝐺 )  =  ( coeff ‘ 𝐺 ) | 
						
							| 29 | 27 28 | coeadd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 ) )  →  ( coeff ‘ ( 𝐹  ∘f   +  𝐺 ) )  =  ( ( coeff ‘ 𝐹 )  ∘f   +  ( coeff ‘ 𝐺 ) ) ) | 
						
							| 30 | 29 | 3adant3 | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( coeff ‘ ( 𝐹  ∘f   +  𝐺 ) )  =  ( ( coeff ‘ 𝐹 )  ∘f   +  ( coeff ‘ 𝐺 ) ) ) | 
						
							| 31 | 30 | fveq1d | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( ( coeff ‘ ( 𝐹  ∘f   +  𝐺 ) ) ‘ 𝑁 )  =  ( ( ( coeff ‘ 𝐹 )  ∘f   +  ( coeff ‘ 𝐺 ) ) ‘ 𝑁 ) ) | 
						
							| 32 | 27 | coef3 | ⊢ ( 𝐹  ∈  ( Poly ‘ 𝑆 )  →  ( coeff ‘ 𝐹 ) : ℕ0 ⟶ ℂ ) | 
						
							| 33 | 32 | 3ad2ant1 | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( coeff ‘ 𝐹 ) : ℕ0 ⟶ ℂ ) | 
						
							| 34 | 33 | ffnd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( coeff ‘ 𝐹 )  Fn  ℕ0 ) | 
						
							| 35 | 28 | coef3 | ⊢ ( 𝐺  ∈  ( Poly ‘ 𝑆 )  →  ( coeff ‘ 𝐺 ) : ℕ0 ⟶ ℂ ) | 
						
							| 36 | 35 | 3ad2ant2 | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( coeff ‘ 𝐺 ) : ℕ0 ⟶ ℂ ) | 
						
							| 37 | 36 | ffnd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( coeff ‘ 𝐺 )  Fn  ℕ0 ) | 
						
							| 38 |  | nn0ex | ⊢ ℕ0  ∈  V | 
						
							| 39 | 38 | a1i | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ℕ0  ∈  V ) | 
						
							| 40 |  | inidm | ⊢ ( ℕ0  ∩  ℕ0 )  =  ℕ0 | 
						
							| 41 | 15 11 | ltnled | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( 𝑀  <  𝑁  ↔  ¬  𝑁  ≤  𝑀 ) ) | 
						
							| 42 | 20 41 | mpbid | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ¬  𝑁  ≤  𝑀 ) | 
						
							| 43 |  | simp1 | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝐹  ∈  ( Poly ‘ 𝑆 ) ) | 
						
							| 44 | 27 1 | dgrub | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝑁  ∈  ℕ0  ∧  ( ( coeff ‘ 𝐹 ) ‘ 𝑁 )  ≠  0 )  →  𝑁  ≤  𝑀 ) | 
						
							| 45 | 44 | 3expia | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝑁  ∈  ℕ0 )  →  ( ( ( coeff ‘ 𝐹 ) ‘ 𝑁 )  ≠  0  →  𝑁  ≤  𝑀 ) ) | 
						
							| 46 | 43 10 45 | syl2anc | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( ( ( coeff ‘ 𝐹 ) ‘ 𝑁 )  ≠  0  →  𝑁  ≤  𝑀 ) ) | 
						
							| 47 | 46 | necon1bd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( ¬  𝑁  ≤  𝑀  →  ( ( coeff ‘ 𝐹 ) ‘ 𝑁 )  =  0 ) ) | 
						
							| 48 | 42 47 | mpd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( ( coeff ‘ 𝐹 ) ‘ 𝑁 )  =  0 ) | 
						
							| 49 | 48 | adantr | ⊢ ( ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  ∧  𝑁  ∈  ℕ0 )  →  ( ( coeff ‘ 𝐹 ) ‘ 𝑁 )  =  0 ) | 
						
							| 50 |  | eqidd | ⊢ ( ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  ∧  𝑁  ∈  ℕ0 )  →  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 )  =  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 ) ) | 
						
							| 51 | 34 37 39 39 40 49 50 | ofval | ⊢ ( ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  ∧  𝑁  ∈  ℕ0 )  →  ( ( ( coeff ‘ 𝐹 )  ∘f   +  ( coeff ‘ 𝐺 ) ) ‘ 𝑁 )  =  ( 0  +  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 ) ) ) | 
						
							| 52 | 10 51 | mpdan | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( ( ( coeff ‘ 𝐹 )  ∘f   +  ( coeff ‘ 𝐺 ) ) ‘ 𝑁 )  =  ( 0  +  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 ) ) ) | 
						
							| 53 | 36 10 | ffvelcdmd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 )  ∈  ℂ ) | 
						
							| 54 | 53 | addlidd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( 0  +  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 ) )  =  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 ) ) | 
						
							| 55 | 31 52 54 | 3eqtrd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( ( coeff ‘ ( 𝐹  ∘f   +  𝐺 ) ) ‘ 𝑁 )  =  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 ) ) | 
						
							| 56 |  | simp2 | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝐺  ∈  ( Poly ‘ 𝑆 ) ) | 
						
							| 57 |  | 0red | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  0  ∈  ℝ ) | 
						
							| 58 | 14 | nn0ge0d | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  0  ≤  𝑀 ) | 
						
							| 59 | 57 15 11 58 20 | lelttrd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  0  <  𝑁 ) | 
						
							| 60 | 59 | gt0ne0d | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝑁  ≠  0 ) | 
						
							| 61 | 2 28 | dgreq0 | ⊢ ( 𝐺  ∈  ( Poly ‘ 𝑆 )  →  ( 𝐺  =  0𝑝  ↔  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 )  =  0 ) ) | 
						
							| 62 |  | fveq2 | ⊢ ( 𝐺  =  0𝑝  →  ( deg ‘ 𝐺 )  =  ( deg ‘ 0𝑝 ) ) | 
						
							| 63 |  | dgr0 | ⊢ ( deg ‘ 0𝑝 )  =  0 | 
						
							| 64 | 63 | eqcomi | ⊢ 0  =  ( deg ‘ 0𝑝 ) | 
						
							| 65 | 62 2 64 | 3eqtr4g | ⊢ ( 𝐺  =  0𝑝  →  𝑁  =  0 ) | 
						
							| 66 | 61 65 | biimtrrdi | ⊢ ( 𝐺  ∈  ( Poly ‘ 𝑆 )  →  ( ( ( coeff ‘ 𝐺 ) ‘ 𝑁 )  =  0  →  𝑁  =  0 ) ) | 
						
							| 67 | 66 | necon3d | ⊢ ( 𝐺  ∈  ( Poly ‘ 𝑆 )  →  ( 𝑁  ≠  0  →  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 )  ≠  0 ) ) | 
						
							| 68 | 56 60 67 | sylc | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( ( coeff ‘ 𝐺 ) ‘ 𝑁 )  ≠  0 ) | 
						
							| 69 | 55 68 | eqnetrd | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( ( coeff ‘ ( 𝐹  ∘f   +  𝐺 ) ) ‘ 𝑁 )  ≠  0 ) | 
						
							| 70 |  | eqid | ⊢ ( coeff ‘ ( 𝐹  ∘f   +  𝐺 ) )  =  ( coeff ‘ ( 𝐹  ∘f   +  𝐺 ) ) | 
						
							| 71 |  | eqid | ⊢ ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) )  =  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) ) | 
						
							| 72 | 70 71 | dgrub | ⊢ ( ( ( 𝐹  ∘f   +  𝐺 )  ∈  ( Poly ‘ ℂ )  ∧  𝑁  ∈  ℕ0  ∧  ( ( coeff ‘ ( 𝐹  ∘f   +  𝐺 ) ) ‘ 𝑁 )  ≠  0 )  →  𝑁  ≤  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) ) ) | 
						
							| 73 | 4 10 69 72 | syl3anc | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  𝑁  ≤  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) ) ) | 
						
							| 74 | 7 11 | letri3d | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) )  =  𝑁  ↔  ( ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) )  ≤  𝑁  ∧  𝑁  ≤  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) ) ) ) ) | 
						
							| 75 | 26 73 74 | mpbir2and | ⊢ ( ( 𝐹  ∈  ( Poly ‘ 𝑆 )  ∧  𝐺  ∈  ( Poly ‘ 𝑆 )  ∧  𝑀  <  𝑁 )  →  ( deg ‘ ( 𝐹  ∘f   +  𝐺 ) )  =  𝑁 ) |