5. The Global Theorem
Suppose V = V_1, \ldots, V_m \subseteq \mathbb{R}^n is a finite sequence of points,
and let \hull V be its convex hull.
If S \in \hull V and w \in \mathbb{R}^n, then
\langle S ,w \rangle \leq \max_i \langle V_i ,w\rangle.
Lean code for Lemma5.1●1 theorem
Associated Lean declarations
-
GlobalTheorem.hull_scalar_prod[complete]
-
GlobalTheorem.hull_scalar_prod[complete]
-
theoremdefined in Noperthedron/Global.leancomplete
theorem GlobalTheorem.hull_scalar_prod {n : ℕ} (V : Finset (GlobalTheorem.E✝ n)) (Vne : V.Nonempty) (S : GlobalTheorem.E✝ n) (hs : S ∈ (convexHull ℝ) ↑V) (w : GlobalTheorem.E✝ n) : inner ℝ w S ≤ (Finset.image (fun x ↦ inner ℝ w x) V).max' ⋯
theorem GlobalTheorem.hull_scalar_prod {n : ℕ} (V : Finset (GlobalTheorem.E✝ n)) (Vne : V.Nonempty) (S : GlobalTheorem.E✝ n) (hs : S ∈ (convexHull ℝ) ↑V) (w : GlobalTheorem.E✝ n) : inner ℝ w S ≤ (Finset.image (fun x ↦ inner ℝ w x) V).max' ⋯
This is a mild generalization of Steininger and Yurkevich (2025), Lemma 18.
Since S \in \hull V, we have
S = \sum_{j=1}^m \lambda_j V_j
for some \lambda_1,\ldots,\lambda_m \in [0,1] with
1 = \sum_{j=1}^m \lambda_j.
Therefore
\langle S ,w \rangle = \left\langle \sum_{j=1}^m \lambda_j V_j ,w \right\rangle
= \sum_{j=1}^m \lambda_j \left\langle V_j ,w \right\rangle
\le \sum_{j=1}^m \lambda_j \max_{i} \langle V_i ,w\rangle
= \max_{i} \langle V_i ,w\rangle \sum_{j=1}^m \lambda_j
= \max_{i} \langle V_i ,w\rangle
$$
as required.
Let S \in \mathbb{R}^3 and w \in \mathbb{R}^2 be unit vectors, and set
f(x_1,x_2,x_3) = \langle R(x_3) M(x_1,x_2)S,w \rangle.
Then for all x_1,x_2,x_3 \in \mathbb{R} and any i,j \in \{1,2,3\} it holds that
\left|\frac{\partial^2 f}{\partial x_i \partial x_j}(x_1,x_2,x_3)\right|\leq 1.
Lean code for Lemma5.2●1 theorem
Associated Lean declarations
-
GlobalTheorem.rotation_partials_bounded[complete]
-
GlobalTheorem.rotation_partials_bounded[complete]
-
theoremdefined in Noperthedron/Global/RotationPartials/SecondPartialInner.leancomplete
theorem GlobalTheorem.rotation_partials_bounded (S : Euc(3)) {w : Euc(2)} (w_unit : ‖w‖ = 1) : GlobalTheorem.mixed_partials_bounded (GlobalTheorem.rotproj_inner_unit S w)
theorem GlobalTheorem.rotation_partials_bounded (S : Euc(3)) {w : Euc(2)} (w_unit : ‖w‖ = 1) : GlobalTheorem.mixed_partials_bounded (GlobalTheorem.rotproj_inner_unit S w)
See polyhedron.without.rupert, Lemma 19.
Let f:\mathbb{R}^n\to \mathbb{R} be a C^2-function and
x_1,\dots,x_n,y_1,\dots,y_n \in \mathbb{R} such that
|x_1-y_1|,\dots,|x_n-y_n|\leq \varepsilon.
If
|\partial_{x_i}\partial_{x_j}f(v)| \leq 1
for all i,j \in \{1,\dots,n\} and all v \in \mathbb{R}^n, then
|f(x_1,\dots,x_n)-f(y_1,\dots,y_n)|\leq
\varepsilon \sum_{i=1}^n |\partial_{x_i} f(x_1,\dots,x_n)| + \frac{n^2}{2}\varepsilon^2.
Lean code for Lemma5.3●1 theorem
Associated Lean declarations
-
theoremdefined in Noperthedron/Global/BoundedPartialsControlDifference.leancomplete
theorem GlobalTheorem.bounded_partials_control_difference {n : ℕ} (f : GlobalTheorem.E✝ n → ℝ) (fc : ContDiff ℝ 2 f) (x y : GlobalTheorem.E✝ n) (ε : ℝ) (hε : 0 ≤ ε) (hdiff : ∀ (i : Fin n), |x.ofLp i - y.ofLp i| ≤ ε) (mpb : GlobalTheorem.mixed_partials_bounded f) : |f x - f y| ≤ ε * ∑ i, |GlobalTheorem.nth_partial i f x| + ↑n ^ 2 / 2 * ε ^ 2
theorem GlobalTheorem.bounded_partials_control_difference {n : ℕ} (f : GlobalTheorem.E✝ n → ℝ) (fc : ContDiff ℝ 2 f) (x y : GlobalTheorem.E✝ n) (ε : ℝ) (hε : 0 ≤ ε) (hdiff : ∀ (i : Fin n), |x.ofLp i - y.ofLp i| ≤ ε) (mpb : GlobalTheorem.mixed_partials_bounded f) : |f x - f y| ≤ ε * ∑ i, |GlobalTheorem.nth_partial i f x| + ↑n ^ 2 / 2 * ε ^ 2
See polyhedron.without.rupert, Lemma 20.
-
GlobalTheorem.rotation_partials_exist[complete] -
GlobalTheorem.rotation_partials_exist_outer[complete] -
GlobalTheorem.partials_helper0[complete] -
GlobalTheorem.partials_helper1[complete] -
GlobalTheorem.partials_helper2[complete] -
GlobalTheorem.partials_helper3[complete] -
GlobalTheorem.partials_helper4[complete]
The partial derivatives of all relevant rotations, projections, and inner products used in the Global Theorem are as expected. Specifically:
-
f^\alpha(\theta,\phi,\alpha) = \langle R'(\alpha) M(\theta, \phi) S, w \rangle -
f^\theta(\theta,\phi,\alpha) = \langle R(\alpha) M^\theta(\theta, \phi) S, w \rangle -
f^\phi(\theta,\phi,\alpha) = \langle R(\alpha) M^\phi(\theta, \phi) S, w \rangle -
g^\theta(\theta,\phi) = \langle M^\theta(\theta, \phi) P, w \rangle -
g^\phi(\theta,\phi) = \langle M^\phi(\theta, \phi) P, w \rangle
where
f(\theta,\phi,\alpha) = \langle R(\alpha) M(\theta,\phi) S / \|S\|, w\rangle
and
g(\theta,\phi) = \langle M(\theta,\phi) P / \|P\|, w\rangle.
Lean code for Lemma5.4●7 theorems
Associated Lean declarations
-
GlobalTheorem.rotation_partials_exist[complete]
-
GlobalTheorem.rotation_partials_exist_outer[complete]
-
GlobalTheorem.partials_helper0[complete]
-
GlobalTheorem.partials_helper1[complete]
-
GlobalTheorem.partials_helper2[complete]
-
GlobalTheorem.partials_helper3[complete]
-
GlobalTheorem.partials_helper4[complete]
-
GlobalTheorem.rotation_partials_exist[complete] -
GlobalTheorem.rotation_partials_exist_outer[complete] -
GlobalTheorem.partials_helper0[complete] -
GlobalTheorem.partials_helper1[complete] -
GlobalTheorem.partials_helper2[complete] -
GlobalTheorem.partials_helper3[complete] -
GlobalTheorem.partials_helper4[complete]
-
theoremdefined in Noperthedron/Global/Definitions.leancomplete
theorem GlobalTheorem.rotation_partials_exist {S : Euc(3)} (S_nonzero : ‖S‖ > 0) {w : Euc(2)} : ContDiff ℝ 2 (GlobalTheorem.rotproj_inner_unit S w)
theorem GlobalTheorem.rotation_partials_exist {S : Euc(3)} (S_nonzero : ‖S‖ > 0) {w : Euc(2)} : ContDiff ℝ 2 (GlobalTheorem.rotproj_inner_unit S w)
-
theoremdefined in Noperthedron/Global/Definitions.leancomplete
theorem GlobalTheorem.rotation_partials_exist_outer {S : Euc(3)} (S_nonzero : ‖S‖ > 0) {w : Euc(2)} : ContDiff ℝ 2 (GlobalTheorem.rotproj_outer_unit S w)
theorem GlobalTheorem.rotation_partials_exist_outer {S : Euc(3)} (S_nonzero : ‖S‖ > 0) {w : Euc(2)} : ContDiff ℝ 2 (GlobalTheorem.rotproj_outer_unit S w)
-
theoremdefined in Noperthedron/Global.leancomplete
theorem GlobalTheorem.partials_helper0 {pbar : Pose ℝ} {ε : ℝ} {ι : Type} [Fintype ι] [Nonempty ι] {poly : GoodPoly ι} (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) : ‖pc.S‖ * GlobalTheorem.nth_partial 0 pc.fu pbar.innerParams = inner ℝ (pbar.rotR' (pbar.rotM₁ pc.S)) pc.w
theorem GlobalTheorem.partials_helper0 {pbar : Pose ℝ} {ε : ℝ} {ι : Type} [Fintype ι] [Nonempty ι] {poly : GoodPoly ι} (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) : ‖pc.S‖ * GlobalTheorem.nth_partial 0 pc.fu pbar.innerParams = inner ℝ (pbar.rotR' (pbar.rotM₁ pc.S)) pc.w
-
theoremdefined in Noperthedron/Global.leancomplete
theorem GlobalTheorem.partials_helper1 {pbar : Pose ℝ} {ε : ℝ} {ι : Type} [Fintype ι] [Nonempty ι] {poly : GoodPoly ι} (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) : ‖pc.S‖ * GlobalTheorem.nth_partial 1 pc.fu pbar.innerParams = inner ℝ (pbar.rotR (pbar.rotM₁θ pc.S)) pc.w
theorem GlobalTheorem.partials_helper1 {pbar : Pose ℝ} {ε : ℝ} {ι : Type} [Fintype ι] [Nonempty ι] {poly : GoodPoly ι} (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) : ‖pc.S‖ * GlobalTheorem.nth_partial 1 pc.fu pbar.innerParams = inner ℝ (pbar.rotR (pbar.rotM₁θ pc.S)) pc.w
-
theoremdefined in Noperthedron/Global.leancomplete
theorem GlobalTheorem.partials_helper2 {pbar : Pose ℝ} {ε : ℝ} {ι : Type} [Fintype ι] [Nonempty ι] {poly : GoodPoly ι} (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) : ‖pc.S‖ * GlobalTheorem.nth_partial 2 pc.fu pbar.innerParams = inner ℝ (pbar.rotR (pbar.rotM₁φ pc.S)) pc.w
theorem GlobalTheorem.partials_helper2 {pbar : Pose ℝ} {ε : ℝ} {ι : Type} [Fintype ι] [Nonempty ι] {poly : GoodPoly ι} (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) : ‖pc.S‖ * GlobalTheorem.nth_partial 2 pc.fu pbar.innerParams = inner ℝ (pbar.rotR (pbar.rotM₁φ pc.S)) pc.w
-
theoremdefined in Noperthedron/Global.leancomplete
theorem GlobalTheorem.partials_helper3 {pbar : Pose ℝ} {ε : ℝ} {ι : Type} [Fintype ι] [Nonempty ι] {poly : GoodPoly ι} (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) (P : Euc(3)) : ‖P‖ * GlobalTheorem.nth_partial 0 (GlobalTheorem.GlobalTheoremPrecondition.fu_outer P pc) pbar.outerParams = inner ℝ (pbar.rotM₂θ P) pc.w
theorem GlobalTheorem.partials_helper3 {pbar : Pose ℝ} {ε : ℝ} {ι : Type} [Fintype ι] [Nonempty ι] {poly : GoodPoly ι} (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) (P : Euc(3)) : ‖P‖ * GlobalTheorem.nth_partial 0 (GlobalTheorem.GlobalTheoremPrecondition.fu_outer P pc) pbar.outerParams = inner ℝ (pbar.rotM₂θ P) pc.w
-
theoremdefined in Noperthedron/Global.leancomplete
theorem GlobalTheorem.partials_helper4 {pbar : Pose ℝ} {ε : ℝ} {ι : Type} [Fintype ι] [Nonempty ι] {poly : GoodPoly ι} (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) (P : Euc(3)) : ‖P‖ * GlobalTheorem.nth_partial 1 (GlobalTheorem.GlobalTheoremPrecondition.fu_outer P pc) pbar.outerParams = inner ℝ (pbar.rotM₂φ P) pc.w
theorem GlobalTheorem.partials_helper4 {pbar : Pose ℝ} {ε : ℝ} {ι : Type} [Fintype ι] [Nonempty ι] {poly : GoodPoly ι} (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) (P : Euc(3)) : ‖P‖ * GlobalTheorem.nth_partial 1 (GlobalTheorem.GlobalTheoremPrecondition.fu_outer P pc) pbar.outerParams = inner ℝ (pbar.rotM₂φ P) pc.w
By basic properties of derivatives.
Let \PPP be a pointsymmetric convex polyhedron with radius \rho =1 and let S \in \PPP.
Further let \thetab_1,\phib_1,\thetab_2,\phib_2,\alphab \in \R and let w\in\R^2 be a unit vector.
Denote \Mib \coloneqq M(\thetab_1, \phib_1), \Miib \coloneqq M(\thetab_2, \phib_2) as well as
\Mib^{\theta} \coloneqq M^\theta(\thetab_1, \phib_1), \Mib^{\phi} \coloneqq M^\phi(\thetab_1, \phib_1)
and analogously for \Miib^{\theta}, \Miib^{\phi}.
Finally set
\begin{align*}
G& \coloneqq \langle R(\alphab) \Mib S,w \rangle - \epsilon\cdot\big(|\langle R'(\alphab) \Mib S,w \rangle|+|\langle R(\alphab) \Mib^\theta S,w \rangle|+|\langle R(\alphab) \Mib^\phi S,w \rangle|\big)- 9\epsilon^2/2,\\
H_P & \coloneqq \langle \Miib P,w \rangle + \epsilon\cdot\big(|\langle \Miib^\theta P,w \rangle|+|\langle \Miib^\varphi P,w \rangle|\big) + 2\epsilon^2, \quad \text{ for } P \in \PPP.
\end{align*}
$$
If G>\max_{P\in \PPP} H_P then there does not exist a solution to Rupert's condition with
(\theta_1,\varphi_1,\theta_2,\varphi_2,\alpha) \in U \coloneqq [\thetab_1\pm\epsilon,\phib_1\pm\epsilon,\thetab_2\pm\epsilon,\phib_2\pm\epsilon,\alphab\pm\epsilon] \subseteq \R^5.
Lean code for Theorem5.5●1 theorem
Associated Lean declarations
-
GlobalTheorem.global_theorem[complete]
-
GlobalTheorem.global_theorem[complete]
-
theoremdefined in Noperthedron/Global.leancomplete
theorem GlobalTheorem.global_theorem {ι : Type} [Fintype ι] [Nonempty ι] (pbar : Pose ℝ) (ε : ℝ) (hε : 0 ≤ ε) (poly : GoodPoly ι) (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) : ¬∃ p ∈ Metric.closedBall pbar ε, RupertPose p poly.hull
theorem GlobalTheorem.global_theorem {ι : Type} [Fintype ι] [Nonempty ι] (pbar : Pose ℝ) (ε : ℝ) (hε : 0 ≤ ε) (poly : GoodPoly ι) (pc : GlobalTheorem.GlobalTheoremPrecondition poly pbar ε) : ¬∃ p ∈ Metric.closedBall pbar ε, RupertPose p poly.hull
The Global Theorem, [SY25] Theorem 17