Metamath Proof Explorer


Theorem dgrlt

Description: Two ways to say that the degree of F is strictly less than N . (Contributed by Mario Carneiro, 25-Jul-2014)

Ref Expression
Hypotheses dgreq0.1 ⊢ N = deg ⁡ F
dgreq0.2 ⊢ A = coeff ⁡ F
Assertion dgrlt ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 → F = 0 𝑝 ∨ N < M ↔ N ≤ M ∧ A ⁡ M = 0

Proof

Step Hyp Ref Expression
1 dgreq0.1 ⊢ N = deg ⁡ F
2 dgreq0.2 ⊢ A = coeff ⁡ F
3 simpr ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → F = 0 𝑝
4 3 fveq2d ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → deg ⁡ F = deg ⁡ 0 𝑝
5 dgr0 ⊢ deg ⁡ 0 𝑝 = 0
6 5 eqcomi ⊢ 0 = deg ⁡ 0 𝑝
7 4 1 6 3eqtr4g ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → N = 0
8 nn0ge0 ⊢ M ∈ ℕ 0 → 0 ≤ M
9 8 ad2antlr ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → 0 ≤ M
10 7 9 eqbrtrd ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → N ≤ M
11 3 fveq2d ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → coeff ⁡ F = coeff ⁡ 0 𝑝
12 coe0 ⊢ coeff ⁡ 0 𝑝 = ℕ 0 × 0
13 12 eqcomi ⊢ ℕ 0 × 0 = coeff ⁡ 0 𝑝
14 11 2 13 3eqtr4g ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → A = ℕ 0 × 0
15 14 fveq1d ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → A ⁡ M = ℕ 0 × 0 ⁡ M
16 c0ex ⊢ 0 ∈ V
17 16 fvconst2 ⊢ M ∈ ℕ 0 → ℕ 0 × 0 ⁡ M = 0
18 17 ad2antlr ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → ℕ 0 × 0 ⁡ M = 0
19 15 18 eqtrd ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → A ⁡ M = 0
20 10 19 jca ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 → N ≤ M ∧ A ⁡ M = 0
21 dgrcl ⊢ F ∈ Poly ⁡ S → deg ⁡ F ∈ ℕ 0
22 1 21 eqeltrid ⊢ F ∈ Poly ⁡ S → N ∈ ℕ 0
23 22 nn0red ⊢ F ∈ Poly ⁡ S → N ∈ ℝ
24 nn0re ⊢ M ∈ ℕ 0 → M ∈ ℝ
25 ltle ⊢ N ∈ ℝ ∧ M ∈ ℝ → N < M → N ≤ M
26 23 24 25 syl2an ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 → N < M → N ≤ M
27 26 imp ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N < M → N ≤ M
28 2 1 dgrub ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ A ⁡ M ≠ 0 → M ≤ N
29 28 3expia ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 → A ⁡ M ≠ 0 → M ≤ N
30 lenlt ⊢ M ∈ ℝ ∧ N ∈ ℝ → M ≤ N ↔ ¬ N < M
31 24 23 30 syl2anr ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 → M ≤ N ↔ ¬ N < M
32 29 31 sylibd ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 → A ⁡ M ≠ 0 → ¬ N < M
33 32 necon4ad ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 → N < M → A ⁡ M = 0
34 33 imp ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N < M → A ⁡ M = 0
35 27 34 jca ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N < M → N ≤ M ∧ A ⁡ M = 0
36 20 35 jaodan ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ F = 0 𝑝 ∨ N < M → N ≤ M ∧ A ⁡ M = 0
37 leloe ⊢ N ∈ ℝ ∧ M ∈ ℝ → N ≤ M ↔ N < M ∨ N = M
38 23 24 37 syl2an ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 → N ≤ M ↔ N < M ∨ N = M
39 38 biimpa ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N ≤ M → N < M ∨ N = M
40 39 adantrr ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N ≤ M ∧ A ⁡ M = 0 → N < M ∨ N = M
41 fveq2 ⊢ N = M → A ⁡ N = A ⁡ M
42 1 2 dgreq0 ⊢ F ∈ Poly ⁡ S → F = 0 𝑝 ↔ A ⁡ N = 0
43 42 ad2antrr ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N ≤ M ∧ A ⁡ M = 0 → F = 0 𝑝 ↔ A ⁡ N = 0
44 simprr ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N ≤ M ∧ A ⁡ M = 0 → A ⁡ M = 0
45 44 eqeq2d ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N ≤ M ∧ A ⁡ M = 0 → A ⁡ N = A ⁡ M ↔ A ⁡ N = 0
46 43 45 bitr4d ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N ≤ M ∧ A ⁡ M = 0 → F = 0 𝑝 ↔ A ⁡ N = A ⁡ M
47 41 46 imbitrrid ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N ≤ M ∧ A ⁡ M = 0 → N = M → F = 0 𝑝
48 47 orim2d ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N ≤ M ∧ A ⁡ M = 0 → N < M ∨ N = M → N < M ∨ F = 0 𝑝
49 40 48 mpd ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N ≤ M ∧ A ⁡ M = 0 → N < M ∨ F = 0 𝑝
50 49 orcomd ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 ∧ N ≤ M ∧ A ⁡ M = 0 → F = 0 𝑝 ∨ N < M
51 36 50 impbida ⊢ F ∈ Poly ⁡ S ∧ M ∈ ℕ 0 → F = 0 𝑝 ∨ N < M ↔ N ≤ M ∧ A ⁡ M = 0