3. Bounding Rotations
-
Bounding.Rx_norm_one[complete] -
Bounding.Ry_norm_one[complete] -
Bounding.Rz_norm_one[complete] -
Bounding.rotR_norm_one[complete] -
Bounding.rotM_norm_one[complete] -
Bounding.rotR'_norm_one[complete] -
Bounding.rotMθ_norm_le_one[complete] -
Bounding.rotMφ_norm_le_one[complete]
For any \alpha, \theta,\varphi \in \mathbb{R} and a \in \{x,y,z\} one has
\| R(\alpha)\| = \| R_a(\alpha)\| =\| M(\theta, \phi)\| = 1.
Lean code for Lemma3.1●8 theorems
Associated Lean declarations
-
Bounding.Rx_norm_one[complete]
-
Bounding.Ry_norm_one[complete]
-
Bounding.Rz_norm_one[complete]
-
Bounding.rotR_norm_one[complete]
-
Bounding.rotM_norm_one[complete]
-
Bounding.rotR'_norm_one[complete]
-
Bounding.rotMθ_norm_le_one[complete]
-
Bounding.rotMφ_norm_le_one[complete]
-
Bounding.Rx_norm_one[complete] -
Bounding.Ry_norm_one[complete] -
Bounding.Rz_norm_one[complete] -
Bounding.rotR_norm_one[complete] -
Bounding.rotM_norm_one[complete] -
Bounding.rotR'_norm_one[complete] -
Bounding.rotMθ_norm_le_one[complete] -
Bounding.rotMφ_norm_le_one[complete]
-
theoremdefined in Noperthedron/Bounding/OpNorm.leancomplete
theorem Bounding.Rx_norm_one (α : ℝ) : ‖RxL α‖ = 1
theorem Bounding.Rx_norm_one (α : ℝ) : ‖RxL α‖ = 1
-
theoremdefined in Noperthedron/Bounding/OpNorm.leancomplete
theorem Bounding.Ry_norm_one (α : ℝ) : ‖RyL α‖ = 1
theorem Bounding.Ry_norm_one (α : ℝ) : ‖RyL α‖ = 1
-
theoremdefined in Noperthedron/Bounding/OpNorm.leancomplete
theorem Bounding.Rz_norm_one (α : ℝ) : ‖RzL α‖ = 1
theorem Bounding.Rz_norm_one (α : ℝ) : ‖RzL α‖ = 1
-
theoremdefined in Noperthedron/Bounding/OpNorm.leancomplete
theorem Bounding.rotR_norm_one (α : ℝ) : ‖rotR α‖ = 1
theorem Bounding.rotR_norm_one (α : ℝ) : ‖rotR α‖ = 1
-
theoremdefined in Noperthedron/Bounding/OpNorm.leancomplete
theorem Bounding.rotM_norm_one (θ φ : ℝ) : ‖rotM θ φ‖ = 1
theorem Bounding.rotM_norm_one (θ φ : ℝ) : ‖rotM θ φ‖ = 1
-
theoremdefined in Noperthedron/Bounding/OpNorm.leancomplete
theorem Bounding.rotR'_norm_one (α : ℝ) : ‖rotR' α‖ = 1
theorem Bounding.rotR'_norm_one (α : ℝ) : ‖rotR' α‖ = 1
-
theoremdefined in Noperthedron/Bounding/OpNorm.leancomplete
theorem Bounding.rotMθ_norm_le_one (θ φ : ℝ) : ‖rotMθ θ φ‖ ≤ 1
theorem Bounding.rotMθ_norm_le_one (θ φ : ℝ) : ‖rotMθ θ φ‖ ≤ 1
-
theoremdefined in Noperthedron/Bounding/OpNorm.leancomplete
theorem Bounding.rotMφ_norm_le_one (θ φ : ℝ) : ‖rotMφ θ φ‖ ≤ 1
theorem Bounding.rotMφ_norm_le_one (θ φ : ℝ) : ‖rotMφ θ φ‖ ≤ 1
See polyhedron.without.rupert, Lemma 9.
Lean code for code:lem:RaRalpha
Associated Lean declarations
-
bp_Rx_norm_one[complete]
-
bp_Ry_norm_one[complete]
-
bp_Rz_norm_one[complete]
-
bp_rotR_norm_one[complete]
-
bp_rotM_norm_one[complete]
-
bp_Rx_norm_one[complete] -
bp_Ry_norm_one[complete] -
bp_Rz_norm_one[complete] -
bp_rotR_norm_one[complete] -
bp_rotM_norm_one[complete]
theorem bp_Rx_norm_one (α : ℝ) : ‖RxL α‖ = 1 := α:ℝ⊢ ‖RxL α‖ = 1
All goals completed! 🐙
theorem bp_Ry_norm_one (α : ℝ) : ‖RyL α‖ = 1 := α:ℝ⊢ ‖RyL α‖ = 1
All goals completed! 🐙
theorem bp_Rz_norm_one (α : ℝ) : ‖RzL α‖ = 1 := α:ℝ⊢ ‖RzL α‖ = 1
All goals completed! 🐙
theorem bp_rotR_norm_one (α : ℝ) : ‖rotR α‖ = 1 := α:ℝ⊢ ‖rotR α‖ = 1
All goals completed! 🐙
theorem bp_rotM_norm_one (θ φ : ℝ) : ‖rotM θ φ‖ = 1 := θ:ℝφ:ℝ⊢ ‖rotM θ φ‖ = 1
All goals completed! 🐙
-
Bounding.norm_rotR_sub_rotR_lt[complete] -
Bounding.norm_RxL_sub_RxL_eq[complete] -
Bounding.norm_RyL_sub_RyL_eq[complete] -
Bounding.norm_RzL_sub_RzL_eq[complete]
Let \epsilon>0, |\alpha-\alphab|\leq\varepsilon and a \in \{x,y,z\} then
\|R_a(\alpha)-R_a({\alphab})\|=\|R(\alpha)-R(\alphab)\| < \varepsilon.
Lean code for Lemma3.2●4 theorems
Associated Lean declarations
-
Bounding.norm_rotR_sub_rotR_lt[complete]
-
Bounding.norm_RxL_sub_RxL_eq[complete]
-
Bounding.norm_RyL_sub_RyL_eq[complete]
-
Bounding.norm_RzL_sub_RzL_eq[complete]
-
Bounding.norm_rotR_sub_rotR_lt[complete] -
Bounding.norm_RxL_sub_RxL_eq[complete] -
Bounding.norm_RyL_sub_RyL_eq[complete] -
Bounding.norm_RzL_sub_RzL_eq[complete]
-
theoremdefined in Noperthedron/Bounding/BoundingUtil.leancomplete
theorem Bounding.norm_rotR_sub_rotR_lt {ε α α_ : ℝ} (hε : 0 < ε) (hα : |α - α_| ≤ ε) : ‖rotR α - rotR α_‖ < ε
theorem Bounding.norm_rotR_sub_rotR_lt {ε α α_ : ℝ} (hε : 0 < ε) (hα : |α - α_| ≤ ε) : ‖rotR α - rotR α_‖ < ε
-
theoremdefined in Noperthedron/Bounding/BoundingUtil.leancomplete
theorem Bounding.norm_RxL_sub_RxL_eq {α α_ : ℝ} : ‖RxL α - RxL α_‖ = ‖rotR α - rotR α_‖
theorem Bounding.norm_RxL_sub_RxL_eq {α α_ : ℝ} : ‖RxL α - RxL α_‖ = ‖rotR α - rotR α_‖
-
theoremdefined in Noperthedron/Bounding/BoundingUtil.leancomplete
theorem Bounding.norm_RyL_sub_RyL_eq {α α_ : ℝ} : ‖RyL α - RyL α_‖ = ‖rotR α - rotR α_‖
theorem Bounding.norm_RyL_sub_RyL_eq {α α_ : ℝ} : ‖RyL α - RyL α_‖ = ‖rotR α - rotR α_‖
-
theoremdefined in Noperthedron/Bounding/BoundingUtil.leancomplete
theorem Bounding.norm_RzL_sub_RzL_eq {α α_ : ℝ} : ‖RzL α - RzL α_‖ = ‖rotR α - rotR α_‖
theorem Bounding.norm_RzL_sub_RzL_eq {α α_ : ℝ} : ‖RzL α - RzL α_‖ = ‖rotR α - rotR α_‖
See polyhedron.without.rupert, Lemma 10.
Lean code for code:lem:RaRa
Associated Lean declarations
-
bp_norm_rotR_sub_rotR_lt[complete]
-
bp_norm_RxL_sub_RxL_eq[complete]
-
bp_norm_RyL_sub_RyL_eq[complete]
-
bp_norm_RzL_sub_RzL_eq[complete]
-
bp_norm_rotR_sub_rotR_lt[complete] -
bp_norm_RxL_sub_RxL_eq[complete] -
bp_norm_RyL_sub_RyL_eq[complete] -
bp_norm_RzL_sub_RzL_eq[complete]
theorem bp_norm_rotR_sub_rotR_lt {ε α α_ : ℝ} (hε : 0 < ε) (hα : |α - α_| ≤ ε) :
‖rotR α - rotR α_‖ < ε := ε:ℝα:ℝα_:ℝhε:0 < εhα:|α - α_| ≤ ε⊢ ‖rotR α - rotR α_‖ < ε
All goals completed! 🐙
theorem bp_norm_RxL_sub_RxL_eq {α α_ : ℝ} :
‖RxL α - RxL α_‖ = ‖rotR α - rotR α_‖ := α:ℝα_:ℝ⊢ ‖RxL α - RxL α_‖ = ‖rotR α - rotR α_‖
All goals completed! 🐙
theorem bp_norm_RyL_sub_RyL_eq {α α_ : ℝ} :
‖RyL α - RyL α_‖ = ‖rotR α - rotR α_‖ := α:ℝα_:ℝ⊢ ‖RyL α - RyL α_‖ = ‖rotR α - rotR α_‖
All goals completed! 🐙
theorem bp_norm_RzL_sub_RzL_eq {α α_ : ℝ} :
‖RzL α - RzL α_‖ = ‖rotR α - rotR α_‖ := α:ℝα_:ℝ⊢ ‖RzL α - RzL α_‖ = ‖rotR α - rotR α_‖
All goals completed! 🐙
-
Bounding.lemma12[complete] -
Bounding.lemma12_lt_of_ne[complete]
For any \alpha,\beta\in \mathbb{R} one has
\|R_x(\alpha)R_y(\beta)-\mathrm{id}\| \leq \sqrt{\alpha^2+\beta^2}
with strict inequality unless \alpha = \beta = 0.
Lean code for Lemma3.3●2 theorems
Associated Lean declarations
-
Bounding.lemma12[complete]
-
Bounding.lemma12_lt_of_ne[complete]
-
Bounding.lemma12[complete] -
Bounding.lemma12_lt_of_ne[complete]
-
theoremdefined in Noperthedron/Bounding/SmallConsecutiveRotations.leancomplete
theorem Bounding.lemma12 {d d' : Fin 3} {α β : ℝ} (d_ne_d' : d ≠ d') : ‖(rot3 d) α ∘SL (rot3 d') β - 1‖ ≤ √(α ^ 2 + β ^ 2)
theorem Bounding.lemma12 {d d' : Fin 3} {α β : ℝ} (d_ne_d' : d ≠ d') : ‖(rot3 d) α ∘SL (rot3 d') β - 1‖ ≤ √(α ^ 2 + β ^ 2)
-
theoremdefined in Noperthedron/Bounding/SmallConsecutiveRotations.leancomplete
theorem Bounding.lemma12_lt_of_ne {d d' : Fin 3} {α β : ℝ} (d_ne_d' : d ≠ d') (h : ¬(α = 0 ∧ β = 0)) : ‖(rot3 d) α ∘SL (rot3 d') β - 1‖ < √(α ^ 2 + β ^ 2)
theorem Bounding.lemma12_lt_of_ne {d d' : Fin 3} {α β : ℝ} (d_ne_d' : d ≠ d') (h : ¬(α = 0 ∧ β = 0)) : ‖(rot3 d) α ∘SL (rot3 d') β - 1‖ < √(α ^ 2 + β ^ 2)
The bound of `lemma12` is strict unless both angles vanish.
The composition R_d(\alpha)R_{d'}(\beta) is a rotation, i.e. conjugate
to some R_z(\gamma) by an isometry, which gives
\|R_d(\alpha)R_{d'}(\beta)-\mathrm{id}\|^2 = 2(1-\cos\gamma)
= 3 - \mathrm{tr}(R_d(\alpha)R_{d'}(\beta))
= 3 - (\cos\alpha + \cos\beta + \cos\alpha\cos\beta).
Writing the right hand side as
2(1-\cos\alpha) + 2(1-\cos\beta) - (1-\cos\alpha)(1-\cos\beta)
and using 2(1-\cos x) \leq x^2 (with equality only at x = 0)
yields the bound and the equality condition.
This is a direct route to polyhedron.without.rupert, Lemma 12,
that avoids the Jensen-inequality argument of Lemma 11 and the
doubling induction.
Lean code for code:lem:RxRy
Associated Lean declarations
-
bp_lemma12[complete]
-
bp_lemma12_lt_of_ne[complete]
-
bp_lemma12[complete] -
bp_lemma12_lt_of_ne[complete]
theorem bp_lemma12 {d d' : Fin 3} {α β : ℝ} (hd : d ≠ d') :
‖rot3 d α ∘L rot3 d' β - 1‖ ≤ √(α ^ 2 + β ^ 2) := d:Fin 3d':Fin 3α:ℝβ:ℝhd:d ≠ d'⊢ ‖(rot3 d) α ∘SL (rot3 d') β - 1‖ ≤ √(α ^ 2 + β ^ 2)
All goals completed! 🐙
theorem bp_lemma12_lt_of_ne {d d' : Fin 3} {α β : ℝ} (hd : d ≠ d')
(h : ¬ (α = 0 ∧ β = 0)) :
‖rot3 d α ∘L rot3 d' β - 1‖ < √(α ^ 2 + β ^ 2) := d:Fin 3d':Fin 3α:ℝβ:ℝhd:d ≠ d'h:¬(α = 0 ∧ β = 0)⊢ ‖(rot3 d) α ∘SL (rot3 d') β - 1‖ < √(α ^ 2 + β ^ 2)
All goals completed! 🐙
-
Bounding.norm_M_sub_lt[complete] -
Bounding.norm_X_sub_lt[complete]
Let \epsilon>0 and |\theta-\thetab|,|\varphi-\phib| \leq \varepsilon then
\|M(\theta, \phi)-M(\thetab,\phib)\|, \|X(\theta, \varphi)-X(\thetab,\phib)\| < \sqrt{2}\varepsilon.
Lean code for Lemma3.4●2 theorems
Associated Lean declarations
-
Bounding.norm_M_sub_lt[complete]
-
Bounding.norm_X_sub_lt[complete]
-
Bounding.norm_M_sub_lt[complete] -
Bounding.norm_X_sub_lt[complete]
-
theoremdefined in Noperthedron/Bounding.leancomplete
theorem Bounding.norm_M_sub_lt {ε θ θ_ φ φ_ : ℝ} (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) : ‖rotM θ φ - rotM θ_ φ_‖ < √2 * ε
theorem Bounding.norm_M_sub_lt {ε θ θ_ φ φ_ : ℝ} (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) : ‖rotM θ φ - rotM θ_ φ_‖ < √2 * ε
First half of [SY25] Lemma 13.
-
theoremdefined in Noperthedron/Bounding.leancomplete
theorem Bounding.norm_X_sub_lt {ε θ θ_ φ φ_ : ℝ} (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) : ‖vecX θ φ - vecX θ_ φ_‖ < √2 * ε
theorem Bounding.norm_X_sub_lt {ε θ θ_ φ φ_ : ℝ} (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) : ‖vecX θ φ - vecX θ_ φ_‖ < √2 * ε
Second half of [SY25] Lemma 13.
See polyhedron.without.rupert, Lemma 13.
Lean code for code:lem:sqrt2
Associated Lean declarations
-
bp_norm_M_sub_lt[complete]
-
bp_norm_X_sub_lt[complete]
-
bp_norm_M_sub_lt[complete] -
bp_norm_X_sub_lt[complete]
theorem bp_norm_M_sub_lt {ε θ θ_ φ φ_ : ℝ} (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) :
‖rotM θ φ - rotM θ_ φ_‖ < √2 * ε := ε:ℝθ:ℝθ_:ℝφ:ℝφ_:ℝhε:0 < εhθ:|θ - θ_| ≤ εhφ:|φ - φ_| ≤ ε⊢ ‖rotM θ φ - rotM θ_ φ_‖ < √2 * ε
All goals completed! 🐙
theorem bp_norm_X_sub_lt {ε θ θ_ φ φ_ : ℝ} (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) :
‖vecX θ φ - vecX θ_ φ_‖ < √2 * ε := ε:ℝθ:ℝθ_:ℝφ:ℝφ_:ℝhε:0 < εhθ:|θ - θ_| ≤ εhφ:|φ - φ_| ≤ ε⊢ ‖vecX θ φ - vecX θ_ φ_‖ < √2 * ε
All goals completed! 🐙
Let P \in \mathbb{R}^3 with \|P\| \leq 1. Further, let \epsilon>0 and
\thetab,\phib, \theta, \phi \in \mathbb{R} such that
|\thetab-\theta|, |\phib - \phi| \leq \epsilon.
If
\langle X(\thetab,\phib),P \rangle>\sqrt{2}\varepsilon
then
\langle X(\theta, \phi),P \rangle>0.
Lean code for Lemma3.5●1 theorem
Associated Lean declarations
-
Bounding.XPgt0[complete]
-
Bounding.XPgt0[complete]
-
theoremdefined in Noperthedron/Bounding.leancomplete
theorem Bounding.XPgt0 {P : Euc(3)} {ε θ θ_ φ φ_ : ℝ} (hP : ‖P‖ ≤ 1) (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) (hX : √2 * ε < ⟪vecX θ_ φ_, P⟫) : 0 < ⟪vecX θ φ, P⟫
theorem Bounding.XPgt0 {P : Euc(3)} {ε θ θ_ φ φ_ : ℝ} (hP : ‖P‖ ≤ 1) (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) (hX : √2 * ε < ⟪vecX θ_ φ_, P⟫) : 0 < ⟪vecX θ φ, P⟫
[SY25] Lemma 14
See polyhedron.without.rupert, Lemma 14.
Lean code for code:lem:XPgt0
Associated Lean declarations
-
bp_XPgt0[complete]
-
bp_XPgt0[complete]
theorem bp_XPgt0 {P : ℝ³} {ε θ θ_ φ φ_ : ℝ} (hP : ‖P‖ ≤ 1) (hε : 0 < ε)
(hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε)
(hX : √2 * ε < ⟪vecX θ_ φ_, P⟫) :
0 < ⟪vecX θ φ, P⟫ := P:Euc(3)ε:ℝθ:ℝθ_:ℝφ:ℝφ_:ℝhP:‖P‖ ≤ 1hε:0 < εhθ:|θ - θ_| ≤ εhφ:|φ - φ_| ≤ εhX:√2 * ε < ⟪vecX θ_ φ_, P⟫⊢ 0 < ⟪vecX θ φ, P⟫
All goals completed! 🐙
Let P \in \mathbb{R}^3 with \|P\| \leq 1. Further, let \epsilon, r>0 and
\thetab,\phib, \theta, \phi \in \mathbb{R} such that
|\thetab-\theta|, |\phib - \phi| \leq \epsilon.
If
\| M(\thetab,\phib) P \| > r + \sqrt{2}\varepsilon
then
\| M(\theta,\phi) P \| > r.
Lean code for Lemma3.6●1 theorem
Associated Lean declarations
-
Bounding.norm_M_apply_gt[complete]
-
Bounding.norm_M_apply_gt[complete]
-
theoremdefined in Noperthedron/Bounding.leancomplete
theorem Bounding.norm_M_apply_gt {ε r θ θ_ φ φ_ : ℝ} {P : Euc(3)} (hP : ‖P‖ ≤ 1) (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) (hM : r + √2 * ε < ‖(rotM θ_ φ_) P‖) : r < ‖(rotM θ φ) P‖
theorem Bounding.norm_M_apply_gt {ε r θ θ_ φ φ_ : ℝ} {P : Euc(3)} (hP : ‖P‖ ≤ 1) (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) (hM : r + √2 * ε < ‖(rotM θ_ φ_) P‖) : r < ‖(rotM θ φ) P‖
[SY25] Lemma 15
See polyhedron.without.rupert, Lemma 15. Corrigendum: the triangle inquality only implies greater than or equal to.
Lean code for code:lem:MPgtr
Associated Lean declarations
-
bp_norm_M_apply_gt[complete]
-
bp_norm_M_apply_gt[complete]
theorem bp_norm_M_apply_gt {ε r θ θ_ φ φ_ : ℝ} {P : ℝ³} (hP : ‖P‖ ≤ 1) (hε : 0 < ε)
(hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε)
(hM : r + √2 * ε < ‖rotM θ_ φ_ P‖) :
r < ‖rotM θ φ P‖ := ε:ℝr:ℝθ:ℝθ_:ℝφ:ℝφ_:ℝP:Euc(3)hP:‖P‖ ≤ 1hε:0 < εhθ:|θ - θ_| ≤ εhφ:|φ - φ_| ≤ εhM:r + √2 * ε < ‖(rotM θ_ φ_) P‖⊢ r < ‖(rotM θ φ) P‖
All goals completed! 🐙
Let \epsilon>0 and
|\theta-\thetab|,|\varphi-\phib|,|\alpha-\alphab|\leq\varepsilon then
\|R(\alpha) M(\theta, \phi)-R(\alphab)M(\thetab,\phib)\| < \sqrt{5} \varepsilon.
Lean code for Lemma3.7●1 theorem
Associated Lean declarations
-
Bounding.norm_RM_sub_RM_le[complete]
-
Bounding.norm_RM_sub_RM_le[complete]
-
theoremdefined in Noperthedron/Bounding.leancomplete
theorem Bounding.norm_RM_sub_RM_le {ε θ θ_ φ φ_ α α_ : ℝ} (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) (hα : |α - α_| ≤ ε) : ‖rotprojRM θ φ α - rotprojRM θ_ φ_ α_‖ < √5 * ε
theorem Bounding.norm_RM_sub_RM_le {ε θ θ_ φ φ_ α α_ : ℝ} (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε) (hα : |α - α_| ≤ ε) : ‖rotprojRM θ φ α - rotprojRM θ_ φ_ α_‖ < √5 * ε
[SY25] Lemma 16
Write R_z and R_y for rotations about the third and second axes. After
dropping the norm-one projection and canceling common rotations, it suffices
to bound
\|R_z(\alpha-\alphab)R_y(\phi)-R_y(\phib)R_z(\theta-\thetab)\|.
Insert the ordinary midpoint \Phi=(\phi+\phib)/2. On each side, the two
angle changes are bounded by \varepsilon and \varepsilon/2.
Lemma 3.3, applied after canceling common rotations, bounds each
difference strictly by
\sqrt{\varepsilon^2+(\varepsilon/2)^2}=\sqrt{5}\varepsilon/2.
If both angle changes vanish, strictness follows from \varepsilon>0;
otherwise it follows from the strictness condition in that lemma. The triangle
inequality gives the result. The weighted intermediate angle used in
polyhedron.without.rupert, Lemma 16, is not needed for this uniform bound.
Lean code for code:lem:sqrt5
Associated Lean declarations
-
bp_norm_RM_sub_RM_le[complete]
-
bp_norm_RM_sub_RM_le[complete]
theorem bp_norm_RM_sub_RM_le {ε θ θ_ φ φ_ α α_ : ℝ} (hε : 0 < ε) (hθ : |θ - θ_| ≤ ε) (hφ : |φ - φ_| ≤ ε)
(hα : |α - α_| ≤ ε) :
‖rotprojRM θ φ α - rotprojRM θ_ φ_ α_‖ < √5 * ε := ε:ℝθ:ℝθ_:ℝφ:ℝφ_:ℝα:ℝα_:ℝhε:0 < εhθ:|θ - θ_| ≤ εhφ:|φ - φ_| ≤ εhα:|α - α_| ≤ ε⊢ ‖rotprojRM θ φ α - rotprojRM θ_ φ_ α_‖ < √5 * ε
All goals completed! 🐙