Metamath Proof Explorer


Theorem basellem4

Description: Lemma for basel . By basellem3 , the expression P ( ( cot x ) ^ 2 ) = sin ( N x ) / ( sin x ) ^ N goes to zero whenever x = n _pi / N for some n e. ( 1 ... M ) , so this function enumerates M distinct roots of a degree- M polynomial, which must therefore be all the roots by fta1 . (Contributed by Mario Carneiro, 28-Jul-2014)

Ref Expression
Hypotheses basel.n 𝑁 = ( ( 2 · 𝑀 ) + 1 )
basel.p 𝑃 = ( 𝑡 ∈ ℂ ↦ Σ 𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑁 C ( 2 · 𝑗 ) ) · ( - 1 ↑ ( 𝑀𝑗 ) ) ) · ( 𝑡𝑗 ) ) )
basel.t 𝑇 = ( 𝑛 ∈ ( 1 ... 𝑀 ) ↦ ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) )
Assertion basellem4 ( 𝑀 ∈ ℕ → 𝑇 : ( 1 ... 𝑀 ) –1-1-onto→ ( 𝑃 “ { 0 } ) )

Proof

Step Hyp Ref Expression
1 basel.n 𝑁 = ( ( 2 · 𝑀 ) + 1 )
2 basel.p 𝑃 = ( 𝑡 ∈ ℂ ↦ Σ 𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑁 C ( 2 · 𝑗 ) ) · ( - 1 ↑ ( 𝑀𝑗 ) ) ) · ( 𝑡𝑗 ) ) )
3 basel.t 𝑇 = ( 𝑛 ∈ ( 1 ... 𝑀 ) ↦ ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) )
4 1 basellem1 ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( ( 𝑛 · π ) / 𝑁 ) ∈ ( 0 (,) ( π / 2 ) ) )
5 tanrpcl ( ( ( 𝑛 · π ) / 𝑁 ) ∈ ( 0 (,) ( π / 2 ) ) → ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ∈ ℝ+ )
6 4 5 syl ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ∈ ℝ+ )
7 2z 2 ∈ ℤ
8 znegcl ( 2 ∈ ℤ → - 2 ∈ ℤ )
9 7 8 ax-mp - 2 ∈ ℤ
10 rpexpcl ( ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ∈ ℝ+ ∧ - 2 ∈ ℤ ) → ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ ℝ+ )
11 6 9 10 sylancl ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ ℝ+ )
12 11 rpcnd ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ ℂ )
13 1 2 basellem3 ( ( 𝑀 ∈ ℕ ∧ ( ( 𝑛 · π ) / 𝑁 ) ∈ ( 0 (,) ( π / 2 ) ) ) → ( 𝑃 ‘ ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ) = ( ( sin ‘ ( 𝑁 · ( ( 𝑛 · π ) / 𝑁 ) ) ) / ( ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ 𝑁 ) ) )
14 4 13 syldan ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( 𝑃 ‘ ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ) = ( ( sin ‘ ( 𝑁 · ( ( 𝑛 · π ) / 𝑁 ) ) ) / ( ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ 𝑁 ) ) )
15 elfzelz ( 𝑛 ∈ ( 1 ... 𝑀 ) → 𝑛 ∈ ℤ )
16 15 adantl ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → 𝑛 ∈ ℤ )
17 16 zred ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → 𝑛 ∈ ℝ )
18 pire π ∈ ℝ
19 remulcl ( ( 𝑛 ∈ ℝ ∧ π ∈ ℝ ) → ( 𝑛 · π ) ∈ ℝ )
20 17 18 19 sylancl ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( 𝑛 · π ) ∈ ℝ )
21 20 recnd ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( 𝑛 · π ) ∈ ℂ )
22 2nn 2 ∈ ℕ
23 nnmulcl ( ( 2 ∈ ℕ ∧ 𝑀 ∈ ℕ ) → ( 2 · 𝑀 ) ∈ ℕ )
24 22 23 mpan ( 𝑀 ∈ ℕ → ( 2 · 𝑀 ) ∈ ℕ )
25 24 peano2nnd ( 𝑀 ∈ ℕ → ( ( 2 · 𝑀 ) + 1 ) ∈ ℕ )
26 1 25 eqeltrid ( 𝑀 ∈ ℕ → 𝑁 ∈ ℕ )
27 26 adantr ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → 𝑁 ∈ ℕ )
28 27 nncnd ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → 𝑁 ∈ ℂ )
29 27 nnne0d ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → 𝑁 ≠ 0 )
30 21 28 29 divcan2d ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( 𝑁 · ( ( 𝑛 · π ) / 𝑁 ) ) = ( 𝑛 · π ) )
31 30 fveq2d ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( sin ‘ ( 𝑁 · ( ( 𝑛 · π ) / 𝑁 ) ) ) = ( sin ‘ ( 𝑛 · π ) ) )
32 sinkpi ( 𝑛 ∈ ℤ → ( sin ‘ ( 𝑛 · π ) ) = 0 )
33 16 32 syl ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( sin ‘ ( 𝑛 · π ) ) = 0 )
34 31 33 eqtrd ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( sin ‘ ( 𝑁 · ( ( 𝑛 · π ) / 𝑁 ) ) ) = 0 )
35 34 oveq1d ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( ( sin ‘ ( 𝑁 · ( ( 𝑛 · π ) / 𝑁 ) ) ) / ( ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ 𝑁 ) ) = ( 0 / ( ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ 𝑁 ) ) )
36 20 27 nndivred ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( ( 𝑛 · π ) / 𝑁 ) ∈ ℝ )
37 36 resincld ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ∈ ℝ )
38 37 recnd ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ∈ ℂ )
39 27 nnnn0d ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → 𝑁 ∈ ℕ0 )
40 38 39 expcld ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ 𝑁 ) ∈ ℂ )
41 sincosq1sgn ( ( ( 𝑛 · π ) / 𝑁 ) ∈ ( 0 (,) ( π / 2 ) ) → ( 0 < ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ∧ 0 < ( cos ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ) )
42 4 41 syl ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( 0 < ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ∧ 0 < ( cos ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ) )
43 42 simpld ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → 0 < ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) )
44 43 gt0ne0d ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ≠ 0 )
45 27 nnzd ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → 𝑁 ∈ ℤ )
46 38 44 45 expne0d ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ 𝑁 ) ≠ 0 )
47 40 46 div0d ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( 0 / ( ( sin ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ 𝑁 ) ) = 0 )
48 14 35 47 3eqtrd ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( 𝑃 ‘ ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ) = 0 )
49 1 2 basellem2 ( 𝑀 ∈ ℕ → ( 𝑃 ∈ ( Poly ‘ ℂ ) ∧ ( deg ‘ 𝑃 ) = 𝑀 ∧ ( coeff ‘ 𝑃 ) = ( 𝑛 ∈ ℕ0 ↦ ( ( 𝑁 C ( 2 · 𝑛 ) ) · ( - 1 ↑ ( 𝑀𝑛 ) ) ) ) ) )
50 49 simp1d ( 𝑀 ∈ ℕ → 𝑃 ∈ ( Poly ‘ ℂ ) )
51 plyf ( 𝑃 ∈ ( Poly ‘ ℂ ) → 𝑃 : ℂ ⟶ ℂ )
52 ffn ( 𝑃 : ℂ ⟶ ℂ → 𝑃 Fn ℂ )
53 50 51 52 3syl ( 𝑀 ∈ ℕ → 𝑃 Fn ℂ )
54 53 adantr ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → 𝑃 Fn ℂ )
55 fniniseg ( 𝑃 Fn ℂ → ( ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ ( 𝑃 “ { 0 } ) ↔ ( ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ ℂ ∧ ( 𝑃 ‘ ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ) = 0 ) ) )
56 54 55 syl ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ ( 𝑃 “ { 0 } ) ↔ ( ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ ℂ ∧ ( 𝑃 ‘ ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ) = 0 ) ) )
57 12 48 56 mpbir2and ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ ( 𝑃 “ { 0 } ) )
58 57 3 fmptd ( 𝑀 ∈ ℕ → 𝑇 : ( 1 ... 𝑀 ) ⟶ ( 𝑃 “ { 0 } ) )
59 fveq2 ( 𝑘 = 𝑚 → ( 𝑇𝑘 ) = ( 𝑇𝑚 ) )
60 fveq2 ( 𝑘 = 𝑥 → ( 𝑇𝑘 ) = ( 𝑇𝑥 ) )
61 fveq2 ( 𝑘 = 𝑦 → ( 𝑇𝑘 ) = ( 𝑇𝑦 ) )
62 15 zred ( 𝑛 ∈ ( 1 ... 𝑀 ) → 𝑛 ∈ ℝ )
63 62 ssriv ( 1 ... 𝑀 ) ⊆ ℝ
64 11 rpred ( ( 𝑀 ∈ ℕ ∧ 𝑛 ∈ ( 1 ... 𝑀 ) ) → ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ ℝ )
65 64 3 fmptd ( 𝑀 ∈ ℕ → 𝑇 : ( 1 ... 𝑀 ) ⟶ ℝ )
66 65 ffvelrnda ( ( 𝑀 ∈ ℕ ∧ 𝑘 ∈ ( 1 ... 𝑀 ) ) → ( 𝑇𝑘 ) ∈ ℝ )
67 simplr ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → 𝑘 < 𝑚 )
68 63 sseli ( 𝑘 ∈ ( 1 ... 𝑀 ) → 𝑘 ∈ ℝ )
69 68 ad2antrl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → 𝑘 ∈ ℝ )
70 63 sseli ( 𝑚 ∈ ( 1 ... 𝑀 ) → 𝑚 ∈ ℝ )
71 70 ad2antll ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → 𝑚 ∈ ℝ )
72 18 a1i ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → π ∈ ℝ )
73 pipos 0 < π
74 73 a1i ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → 0 < π )
75 ltmul1 ( ( 𝑘 ∈ ℝ ∧ 𝑚 ∈ ℝ ∧ ( π ∈ ℝ ∧ 0 < π ) ) → ( 𝑘 < 𝑚 ↔ ( 𝑘 · π ) < ( 𝑚 · π ) ) )
76 69 71 72 74 75 syl112anc ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑘 < 𝑚 ↔ ( 𝑘 · π ) < ( 𝑚 · π ) ) )
77 67 76 mpbid ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑘 · π ) < ( 𝑚 · π ) )
78 remulcl ( ( 𝑘 ∈ ℝ ∧ π ∈ ℝ ) → ( 𝑘 · π ) ∈ ℝ )
79 69 18 78 sylancl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑘 · π ) ∈ ℝ )
80 remulcl ( ( 𝑚 ∈ ℝ ∧ π ∈ ℝ ) → ( 𝑚 · π ) ∈ ℝ )
81 71 18 80 sylancl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑚 · π ) ∈ ℝ )
82 26 ad2antrr ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → 𝑁 ∈ ℕ )
83 82 nnred ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → 𝑁 ∈ ℝ )
84 82 nngt0d ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → 0 < 𝑁 )
85 ltdiv1 ( ( ( 𝑘 · π ) ∈ ℝ ∧ ( 𝑚 · π ) ∈ ℝ ∧ ( 𝑁 ∈ ℝ ∧ 0 < 𝑁 ) ) → ( ( 𝑘 · π ) < ( 𝑚 · π ) ↔ ( ( 𝑘 · π ) / 𝑁 ) < ( ( 𝑚 · π ) / 𝑁 ) ) )
86 79 81 83 84 85 syl112anc ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( 𝑘 · π ) < ( 𝑚 · π ) ↔ ( ( 𝑘 · π ) / 𝑁 ) < ( ( 𝑚 · π ) / 𝑁 ) ) )
87 77 86 mpbid ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( 𝑘 · π ) / 𝑁 ) < ( ( 𝑚 · π ) / 𝑁 ) )
88 neghalfpirx - ( π / 2 ) ∈ ℝ*
89 pirp π ∈ ℝ+
90 rphalfcl ( π ∈ ℝ+ → ( π / 2 ) ∈ ℝ+ )
91 rpge0 ( ( π / 2 ) ∈ ℝ+ → 0 ≤ ( π / 2 ) )
92 89 90 91 mp2b 0 ≤ ( π / 2 )
93 halfpire ( π / 2 ) ∈ ℝ
94 le0neg2 ( ( π / 2 ) ∈ ℝ → ( 0 ≤ ( π / 2 ) ↔ - ( π / 2 ) ≤ 0 ) )
95 93 94 ax-mp ( 0 ≤ ( π / 2 ) ↔ - ( π / 2 ) ≤ 0 )
96 92 95 mpbi - ( π / 2 ) ≤ 0
97 iooss1 ( ( - ( π / 2 ) ∈ ℝ* ∧ - ( π / 2 ) ≤ 0 ) → ( 0 (,) ( π / 2 ) ) ⊆ ( - ( π / 2 ) (,) ( π / 2 ) ) )
98 88 96 97 mp2an ( 0 (,) ( π / 2 ) ) ⊆ ( - ( π / 2 ) (,) ( π / 2 ) )
99 1 basellem1 ( ( 𝑀 ∈ ℕ ∧ 𝑘 ∈ ( 1 ... 𝑀 ) ) → ( ( 𝑘 · π ) / 𝑁 ) ∈ ( 0 (,) ( π / 2 ) ) )
100 99 ad2ant2r ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( 𝑘 · π ) / 𝑁 ) ∈ ( 0 (,) ( π / 2 ) ) )
101 98 100 sselid ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( 𝑘 · π ) / 𝑁 ) ∈ ( - ( π / 2 ) (,) ( π / 2 ) ) )
102 1 basellem1 ( ( 𝑀 ∈ ℕ ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) → ( ( 𝑚 · π ) / 𝑁 ) ∈ ( 0 (,) ( π / 2 ) ) )
103 102 ad2ant2rl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( 𝑚 · π ) / 𝑁 ) ∈ ( 0 (,) ( π / 2 ) ) )
104 98 103 sselid ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( 𝑚 · π ) / 𝑁 ) ∈ ( - ( π / 2 ) (,) ( π / 2 ) ) )
105 tanord ( ( ( ( 𝑘 · π ) / 𝑁 ) ∈ ( - ( π / 2 ) (,) ( π / 2 ) ) ∧ ( ( 𝑚 · π ) / 𝑁 ) ∈ ( - ( π / 2 ) (,) ( π / 2 ) ) ) → ( ( ( 𝑘 · π ) / 𝑁 ) < ( ( 𝑚 · π ) / 𝑁 ) ↔ ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) < ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ) )
106 101 104 105 syl2anc ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( ( 𝑘 · π ) / 𝑁 ) < ( ( 𝑚 · π ) / 𝑁 ) ↔ ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) < ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ) )
107 87 106 mpbid ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) < ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) )
108 tanrpcl ( ( ( 𝑘 · π ) / 𝑁 ) ∈ ( 0 (,) ( π / 2 ) ) → ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ∈ ℝ+ )
109 100 108 syl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ∈ ℝ+ )
110 tanrpcl ( ( ( 𝑚 · π ) / 𝑁 ) ∈ ( 0 (,) ( π / 2 ) ) → ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ∈ ℝ+ )
111 103 110 syl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ∈ ℝ+ )
112 rprege0 ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ∈ ℝ+ → ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ∈ ℝ ∧ 0 ≤ ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ) )
113 rprege0 ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ∈ ℝ+ → ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ∈ ℝ ∧ 0 ≤ ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ) )
114 lt2sq ( ( ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ∈ ℝ ∧ 0 ≤ ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ) ∧ ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ∈ ℝ ∧ 0 ≤ ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ) ) → ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) < ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↔ ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) < ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ) )
115 112 113 114 syl2an ( ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ∈ ℝ+ ∧ ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ∈ ℝ+ ) → ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) < ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↔ ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) < ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ) )
116 109 111 115 syl2anc ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) < ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↔ ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) < ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ) )
117 107 116 mpbid ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) < ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) )
118 rpexpcl ( ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ∈ ℝ+ ∧ 2 ∈ ℤ ) → ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) ∈ ℝ+ )
119 109 7 118 sylancl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) ∈ ℝ+ )
120 rpexpcl ( ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ∈ ℝ+ ∧ 2 ∈ ℤ ) → ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ∈ ℝ+ )
121 111 7 120 sylancl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ∈ ℝ+ )
122 119 121 ltrecd ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) < ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ↔ ( 1 / ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ) < ( 1 / ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) ) ) )
123 117 122 mpbid ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 1 / ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ) < ( 1 / ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) ) )
124 oveq1 ( 𝑛 = 𝑚 → ( 𝑛 · π ) = ( 𝑚 · π ) )
125 124 fvoveq1d ( 𝑛 = 𝑚 → ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) = ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) )
126 125 oveq1d ( 𝑛 = 𝑚 → ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) = ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ - 2 ) )
127 ovex ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ V
128 126 3 127 fvmpt ( 𝑚 ∈ ( 1 ... 𝑀 ) → ( 𝑇𝑚 ) = ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ - 2 ) )
129 128 ad2antll ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑇𝑚 ) = ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ - 2 ) )
130 111 rpcnd ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ∈ ℂ )
131 2nn0 2 ∈ ℕ0
132 expneg ( ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ∈ ℂ ∧ 2 ∈ ℕ0 ) → ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ - 2 ) = ( 1 / ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ) )
133 130 131 132 sylancl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ - 2 ) = ( 1 / ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ) )
134 129 133 eqtrd ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑇𝑚 ) = ( 1 / ( ( tan ‘ ( ( 𝑚 · π ) / 𝑁 ) ) ↑ 2 ) ) )
135 oveq1 ( 𝑛 = 𝑘 → ( 𝑛 · π ) = ( 𝑘 · π ) )
136 135 fvoveq1d ( 𝑛 = 𝑘 → ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) = ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) )
137 136 oveq1d ( 𝑛 = 𝑘 → ( ( tan ‘ ( ( 𝑛 · π ) / 𝑁 ) ) ↑ - 2 ) = ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ - 2 ) )
138 ovex ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ - 2 ) ∈ V
139 137 3 138 fvmpt ( 𝑘 ∈ ( 1 ... 𝑀 ) → ( 𝑇𝑘 ) = ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ - 2 ) )
140 139 ad2antrl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑇𝑘 ) = ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ - 2 ) )
141 109 rpcnd ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ∈ ℂ )
142 expneg ( ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ∈ ℂ ∧ 2 ∈ ℕ0 ) → ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ - 2 ) = ( 1 / ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) ) )
143 141 131 142 sylancl ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ - 2 ) = ( 1 / ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) ) )
144 140 143 eqtrd ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑇𝑘 ) = ( 1 / ( ( tan ‘ ( ( 𝑘 · π ) / 𝑁 ) ) ↑ 2 ) ) )
145 123 134 144 3brtr4d ( ( ( 𝑀 ∈ ℕ ∧ 𝑘 < 𝑚 ) ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑇𝑚 ) < ( 𝑇𝑘 ) )
146 145 an32s ( ( ( 𝑀 ∈ ℕ ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) ∧ 𝑘 < 𝑚 ) → ( 𝑇𝑚 ) < ( 𝑇𝑘 ) )
147 146 ex ( ( 𝑀 ∈ ℕ ∧ ( 𝑘 ∈ ( 1 ... 𝑀 ) ∧ 𝑚 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑘 < 𝑚 → ( 𝑇𝑚 ) < ( 𝑇𝑘 ) ) )
148 59 60 61 63 66 147 eqord2 ( ( 𝑀 ∈ ℕ ∧ ( 𝑥 ∈ ( 1 ... 𝑀 ) ∧ 𝑦 ∈ ( 1 ... 𝑀 ) ) ) → ( 𝑥 = 𝑦 ↔ ( 𝑇𝑥 ) = ( 𝑇𝑦 ) ) )
149 148 biimprd ( ( 𝑀 ∈ ℕ ∧ ( 𝑥 ∈ ( 1 ... 𝑀 ) ∧ 𝑦 ∈ ( 1 ... 𝑀 ) ) ) → ( ( 𝑇𝑥 ) = ( 𝑇𝑦 ) → 𝑥 = 𝑦 ) )
150 149 ralrimivva ( 𝑀 ∈ ℕ → ∀ 𝑥 ∈ ( 1 ... 𝑀 ) ∀ 𝑦 ∈ ( 1 ... 𝑀 ) ( ( 𝑇𝑥 ) = ( 𝑇𝑦 ) → 𝑥 = 𝑦 ) )
151 dff13 ( 𝑇 : ( 1 ... 𝑀 ) –1-1→ ( 𝑃 “ { 0 } ) ↔ ( 𝑇 : ( 1 ... 𝑀 ) ⟶ ( 𝑃 “ { 0 } ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝑀 ) ∀ 𝑦 ∈ ( 1 ... 𝑀 ) ( ( 𝑇𝑥 ) = ( 𝑇𝑦 ) → 𝑥 = 𝑦 ) ) )
152 58 150 151 sylanbrc ( 𝑀 ∈ ℕ → 𝑇 : ( 1 ... 𝑀 ) –1-1→ ( 𝑃 “ { 0 } ) )
153 49 simp2d ( 𝑀 ∈ ℕ → ( deg ‘ 𝑃 ) = 𝑀 )
154 nnne0 ( 𝑀 ∈ ℕ → 𝑀 ≠ 0 )
155 153 154 eqnetrd ( 𝑀 ∈ ℕ → ( deg ‘ 𝑃 ) ≠ 0 )
156 fveq2 ( 𝑃 = 0𝑝 → ( deg ‘ 𝑃 ) = ( deg ‘ 0𝑝 ) )
157 dgr0 ( deg ‘ 0𝑝 ) = 0
158 156 157 eqtrdi ( 𝑃 = 0𝑝 → ( deg ‘ 𝑃 ) = 0 )
159 158 necon3i ( ( deg ‘ 𝑃 ) ≠ 0 → 𝑃 ≠ 0𝑝 )
160 155 159 syl ( 𝑀 ∈ ℕ → 𝑃 ≠ 0𝑝 )
161 eqid ( 𝑃 “ { 0 } ) = ( 𝑃 “ { 0 } )
162 161 fta1 ( ( 𝑃 ∈ ( Poly ‘ ℂ ) ∧ 𝑃 ≠ 0𝑝 ) → ( ( 𝑃 “ { 0 } ) ∈ Fin ∧ ( ♯ ‘ ( 𝑃 “ { 0 } ) ) ≤ ( deg ‘ 𝑃 ) ) )
163 50 160 162 syl2anc ( 𝑀 ∈ ℕ → ( ( 𝑃 “ { 0 } ) ∈ Fin ∧ ( ♯ ‘ ( 𝑃 “ { 0 } ) ) ≤ ( deg ‘ 𝑃 ) ) )
164 163 simpld ( 𝑀 ∈ ℕ → ( 𝑃 “ { 0 } ) ∈ Fin )
165 f1domg ( ( 𝑃 “ { 0 } ) ∈ Fin → ( 𝑇 : ( 1 ... 𝑀 ) –1-1→ ( 𝑃 “ { 0 } ) → ( 1 ... 𝑀 ) ≼ ( 𝑃 “ { 0 } ) ) )
166 164 152 165 sylc ( 𝑀 ∈ ℕ → ( 1 ... 𝑀 ) ≼ ( 𝑃 “ { 0 } ) )
167 163 simprd ( 𝑀 ∈ ℕ → ( ♯ ‘ ( 𝑃 “ { 0 } ) ) ≤ ( deg ‘ 𝑃 ) )
168 nnnn0 ( 𝑀 ∈ ℕ → 𝑀 ∈ ℕ0 )
169 hashfz1 ( 𝑀 ∈ ℕ0 → ( ♯ ‘ ( 1 ... 𝑀 ) ) = 𝑀 )
170 168 169 syl ( 𝑀 ∈ ℕ → ( ♯ ‘ ( 1 ... 𝑀 ) ) = 𝑀 )
171 153 170 eqtr4d ( 𝑀 ∈ ℕ → ( deg ‘ 𝑃 ) = ( ♯ ‘ ( 1 ... 𝑀 ) ) )
172 167 171 breqtrd ( 𝑀 ∈ ℕ → ( ♯ ‘ ( 𝑃 “ { 0 } ) ) ≤ ( ♯ ‘ ( 1 ... 𝑀 ) ) )
173 fzfid ( 𝑀 ∈ ℕ → ( 1 ... 𝑀 ) ∈ Fin )
174 hashdom ( ( ( 𝑃 “ { 0 } ) ∈ Fin ∧ ( 1 ... 𝑀 ) ∈ Fin ) → ( ( ♯ ‘ ( 𝑃 “ { 0 } ) ) ≤ ( ♯ ‘ ( 1 ... 𝑀 ) ) ↔ ( 𝑃 “ { 0 } ) ≼ ( 1 ... 𝑀 ) ) )
175 164 173 174 syl2anc ( 𝑀 ∈ ℕ → ( ( ♯ ‘ ( 𝑃 “ { 0 } ) ) ≤ ( ♯ ‘ ( 1 ... 𝑀 ) ) ↔ ( 𝑃 “ { 0 } ) ≼ ( 1 ... 𝑀 ) ) )
176 172 175 mpbid ( 𝑀 ∈ ℕ → ( 𝑃 “ { 0 } ) ≼ ( 1 ... 𝑀 ) )
177 sbth ( ( ( 1 ... 𝑀 ) ≼ ( 𝑃 “ { 0 } ) ∧ ( 𝑃 “ { 0 } ) ≼ ( 1 ... 𝑀 ) ) → ( 1 ... 𝑀 ) ≈ ( 𝑃 “ { 0 } ) )
178 166 176 177 syl2anc ( 𝑀 ∈ ℕ → ( 1 ... 𝑀 ) ≈ ( 𝑃 “ { 0 } ) )
179 f1finf1o ( ( ( 1 ... 𝑀 ) ≈ ( 𝑃 “ { 0 } ) ∧ ( 𝑃 “ { 0 } ) ∈ Fin ) → ( 𝑇 : ( 1 ... 𝑀 ) –1-1→ ( 𝑃 “ { 0 } ) ↔ 𝑇 : ( 1 ... 𝑀 ) –1-1-onto→ ( 𝑃 “ { 0 } ) ) )
180 178 164 179 syl2anc ( 𝑀 ∈ ℕ → ( 𝑇 : ( 1 ... 𝑀 ) –1-1→ ( 𝑃 “ { 0 } ) ↔ 𝑇 : ( 1 ... 𝑀 ) –1-1-onto→ ( 𝑃 “ { 0 } ) ) )
181 152 180 mpbid ( 𝑀 ∈ ℕ → 𝑇 : ( 1 ... 𝑀 ) –1-1-onto→ ( 𝑃 “ { 0 } ) )