Rupert Counterexample

5. The Global Theorem🔗

Lemma5.1
uses 0used by 1L∃∀N

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.11 theorem
  • theoremdefined in Noperthedron/Global.lean
    complete
    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'
          
Proof for Lemma 5.1
uses 0

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.

Lemma5.2
Group: Derivative bounds and approximation control for rotated projections. (2)
Group member previews
Preview
Lemma 5.3
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0used by 1L∃∀N

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.21 theorem
  • 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)
Proof for Lemma 5.2
uses 0

See polyhedron.without.rupert, Lemma 19.

Lemma5.3
Group: Derivative bounds and approximation control for rotated projections. (2)
Group member previews
Preview
Lemma 5.2
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0used by 1L∃∀N

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.31 theorem
  • theorem GlobalTheorem.bounded_partials_control_difference {n : }
      (f : GlobalTheorem.E✝ n  ) (fc : ContDiff  2 f)
      (x y : GlobalTheorem.E✝ n) (ε : ) ( : 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) (ε : )
      ( : 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
Proof for Lemma 5.3
uses 0

See polyhedron.without.rupert, Lemma 20.

Lemma5.4
Group: Derivative bounds and approximation control for rotated projections. (2)
Group member previews
Preview
Lemma 5.2
Loading preview
Group member preview content is loaded from the rendered-fragment cache.
uses 0used by 1L∃∀N

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.47 theorems
  • complete
    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)
  • complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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
Proof for Lemma 5.4
uses 0

By basic properties of derivatives.

Theorem5.5
uses 0used by 1L∃∀N

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.51 theorem
  • theoremdefined in Noperthedron/Global.lean
    complete
    theorem GlobalTheorem.global_theorem {ι : Type} [Fintype ι] [Nonempty ι]
      (pbar : Pose ) (ε : ) ( : 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 )
      (ε : ) ( : 0  ε) (poly : GoodPoly ι)
      (pc :
        GlobalTheorem.GlobalTheoremPrecondition
          poly pbar ε) :
      ¬ p  Metric.closedBall pbar ε,
          RupertPose p poly.hull
    The Global Theorem, [SY25] Theorem 17
    
Proof for Theorem 5.5
Proof uses 4
Proof dependency previews
Preview
Lemma 5.1
Loading preview
Proof dependency preview content is loaded from the rendered-fragment cache.

See polyhedron.without.rupert, Section 4.2.