theorem
SturmHurwitz.h_plus_h''_four_critical_points
(h : ℝ → ℝ)
(hsmooth : ContDiff ℝ ⊤ h)
(hper : ∀ (t : ℝ), h (t + 2 * Real.pi) = h t)
:
∃ (t₁ : ℝ) (t₂ : ℝ) (t₃ : ℝ) (t₄ : ℝ),
0 ≤ t₁ ∧ t₁ < t₂ ∧ t₂ < t₃ ∧ t₃ < t₄ ∧ t₄ < 2 * Real.pi ∧ deriv (fun (t : ℝ) => h t + deriv (deriv h) t) t₁ = 0 ∧ deriv (fun (t : ℝ) => h t + deriv (deriv h) t) t₂ = 0 ∧ deriv (fun (t : ℝ) => h t + deriv (deriv h) t) t₃ = 0 ∧ deriv (fun (t : ℝ) => h t + deriv (deriv h) t) t₄ = 0
theorem
FourVertex.angle_parametrization
(c : ℝ → Fin 2 → ℝ)
(T : ℝ)
(hc : ClosedCurves.IsSimpleClosedCurve c T)
(hpos : ∀ (t : ℝ), ClosedCurves.curvature c t > 0)
:
theorem
FourVertex.four_vertex_from_lemmas
(c : ℝ → Fin 2 → ℝ)
(T : ℝ)
(d : ℝ → Fin 2 → ℝ)
(hc : ClosedCurves.IsSimpleClosedCurve c T)
(hpos : ∀ (t : ℝ), ClosedCurves.curvature c t > 0)
(hsmooth_κ : ContDiff ℝ ⊤ (ClosedCurves.curvature c))
(hd_closed : ClosedCurves.IsClosedCurve d (2 * Real.pi))
(hd_pos : ∀ (t : ℝ), ClosedCurves.curvature d t > 0)
(hd_unit : ∀ (t : ℝ), ‖deriv d t‖⁻¹ • deriv d t = ![Real.cos t, Real.sin t])
(hd_κ : ∀ (t : ℝ), ClosedCurves.curvature d t = ‖deriv d t‖⁻¹)
:
theorem
FourVertex.four_vertex_theorem
(c : ℝ → Fin 2 → ℝ)
(T : ℝ)
(hc : ClosedCurves.IsSimpleClosedCurve c T)
(hpos : ∀ (t : ℝ), ClosedCurves.curvature c t > 0)
(hsmooth_κ : ContDiff ℝ ⊤ (ClosedCurves.curvature c))
: