2. The Noperthedron
2.1. Definition of the Noperthedron
We define three points C_1,C_2,C_3\in \mathbb{Q}^3.
C_1\coloneqq
\frac{1}{259375205}
\begin{pmatrix}
{152024884} \\ 0 \\ {210152163}
\end{pmatrix},
\qquad
C_2\coloneqq \frac{1}{10^{10}}
\begin{pmatrix}
6632738028 \\ 6106948881 \\ 3980949609
\end{pmatrix},
C_3\coloneqq
\frac{1}{10^{10}}
\begin{pmatrix}
8193990033 \\ 5298215096 \\ 1230614493
\end{pmatrix}.
-
Noperthedron.c1_norm_one[complete] -
Noperthedron.c2_norm_bound[complete] -
Noperthedron.c3_norm_bound[complete]
\| C_1 \| = 1,
{98 \over 100} < \| C_2 \| < {99 \over 100}, and
{98 \over 100} < \| C_3 \| < {99 \over 100}.
Lean code for Lemma2.1.1●3 theorems
Associated Lean declarations
-
Noperthedron.c1_norm_one[complete]
-
Noperthedron.c2_norm_bound[complete]
-
Noperthedron.c3_norm_bound[complete]
-
Noperthedron.c1_norm_one[complete] -
Noperthedron.c2_norm_bound[complete] -
Noperthedron.c3_norm_bound[complete]
-
theoremdefined in Noperthedron/Vertices/Exact.leancomplete
theorem Noperthedron.c1_norm_one : ‖C1R‖ = 1
theorem Noperthedron.c1_norm_one : ‖C1R‖ = 1
-
theoremdefined in Noperthedron/Vertices/Exact.leancomplete
theorem Noperthedron.c2_norm_bound : ‖C2R‖ ∈ Set.Ioo (98 / 100) (99 / 100)
theorem Noperthedron.c2_norm_bound : ‖C2R‖ ∈ Set.Ioo (98 / 100) (99 / 100)
-
theoremdefined in Noperthedron/Vertices/Exact.leancomplete
theorem Noperthedron.c3_norm_bound : ‖C3R‖ ∈ Set.Ioo (98 / 100) (99 / 100)
theorem Noperthedron.c3_norm_bound : ‖C3R‖ ∈ Set.Ioo (98 / 100) (99 / 100)
Trivial arithmetic.
Rotations about the x, y, z axes R_x,R_y,R_z: \mathbb{R}\to \mathbb{R}^{3\times 3}
are defined in the usual way:
R_x(\alpha)\coloneqq
\begin{pmatrix}
1 & 0 & 0\\
0 & \cos\alpha & -\sin\alpha\\
0 & \sin\alpha & \cos\alpha
\end{pmatrix},
\hspace{1cm}
R_y(\alpha)\coloneqq
\begin{pmatrix}
\cos\alpha & 0 & -\sin\alpha\\
0 & 1 & 0\\
\sin\alpha & 0 & \cos\alpha
\end{pmatrix},
R_z(\alpha)\coloneqq
\begin{pmatrix}
\cos\alpha & -\sin\alpha &0\\
\sin\alpha & \cos\alpha &0\\
0 & 0 & 1
\end{pmatrix}.
We define a 30-element set C_{30}
\mathcal{C}_{30} \coloneqq \left\{(-1)^\ell R_z\left(\frac{2\pi k}{15}\right) \colon k=0,\dots,14; \ell=0,1\right\}.
of rotations.
We write \mathcal{C}_{30} \cdot P = \{c P \,\text{ for } \, c \in \mathcal{C}_{30}\} for the orbit of P under the action of \mathcal{C}_{30}.
The Noperthedron is the polyhedron given by the vertex set
\mathcal{C}_{30} \cdot C_1 \cup \mathcal{C}_{30} \cdot C_2 \cup \mathcal{C}_{30} \cdot C_3.
Lean code for Definition2.1.2●1 definition
Associated Lean declarations
-
Noperthedron.exactVertex[complete]
-
Noperthedron.exactVertex[complete]
-
defdefined in Noperthedron/Vertices/Exact.leancomplete
def Noperthedron.exactVertex (idx : VertexIndex) : Euc(3)
def Noperthedron.exactVertex (idx : VertexIndex) : Euc(3)
-
Noperthedron.exactVertex_norm_le_one[complete]
The norm of any vertex in the Noperthedron is no more than 1.
Lean code for Lemma2.1.3●1 theorem
Associated Lean declarations
-
Noperthedron.exactVertex_norm_le_one[complete]
-
Noperthedron.exactVertex_norm_le_one[complete]
-
theoremdefined in Noperthedron/Vertices/Exact.leancomplete
theorem Noperthedron.exactVertex_norm_le_one (j : VertexIndex) : ‖exactVertex j‖ ≤ 1
theorem Noperthedron.exactVertex_norm_le_one (j : VertexIndex) : ‖exactVertex j‖ ≤ 1
Evident from definitions.
A set S \subseteq \R^3 is point-symmetric if x \in S implies -x \in S.
Lean code for Definition2.1.4●1 definition
Associated Lean declarations
-
PointSym[complete]
-
PointSym[complete]
-
defdefined in Noperthedron/PointSym.leancomplete
def PointSym {n : ℕ} (A : Set Euc(n)) : Prop
def PointSym {n : ℕ} (A : Set Euc(n)) : Prop
The noperthedron is point-symmetric.
Lean code for Lemma2.1.5●1 theorem
Associated Lean declarations
-
Noperthedron.exactPoly_point_symmetric[complete]
-
Noperthedron.exactPoly_point_symmetric[complete]
-
theoremdefined in Noperthedron/Vertices/Exact.leancomplete
theorem Noperthedron.exactPoly_point_symmetric : PointSym exactPoly.hull
theorem Noperthedron.exactPoly_point_symmetric : PointSym exactPoly.hull
The noperthedron is pointsymmetric.
Follows directly from the definition of the exact vertex set.
2.2. Refined Rupert's property for the Noperthedron
-
Noperthedron.Tightening.lemma7_1[complete] -
Noperthedron.Tightening.lemma7_2[complete] -
Noperthedron.Tightening.lemma7_3[complete]
Let \PPP = \NOP, then for all \theta, \varphi, \alpha \in \R, the following three identities hold (as sets):
\begin{align*}
M({\theta+2\pi/15,\varphi})\cdot \PPP &=M(\theta, \phi) \cdot \PPP,\\
R(\alpha+\pi)M(\theta, \phi) \cdot \PPP &=R(\alpha)M(\theta, \phi) \cdot \PPP,\\
\begin{pmatrix}
1&0\\
0&-1
\end{pmatrix}
M(\theta, \phi) \cdot \PPP&=
M({\theta+\pi/15,\pi-\varphi}) \cdot \PPP.
\end{align*}
Lean code for Lemma2.2.1●3 theorems
Associated Lean declarations
-
Noperthedron.Tightening.lemma7_1[complete]
-
Noperthedron.Tightening.lemma7_2[complete]
-
Noperthedron.Tightening.lemma7_3[complete]
-
Noperthedron.Tightening.lemma7_1[complete] -
Noperthedron.Tightening.lemma7_2[complete] -
Noperthedron.Tightening.lemma7_3[complete]
-
theoremdefined in Noperthedron/Tightening.leancomplete
theorem Noperthedron.Tightening.lemma7_1 (θ φ : ℝ) : ⇑(rotM (θ + 2 / 15 * Real.pi) φ) '' exactPolyhedron.hull = ⇑(rotM θ φ) '' exactPolyhedron.hull
theorem Noperthedron.Tightening.lemma7_1 (θ φ : ℝ) : ⇑(rotM (θ + 2 / 15 * Real.pi) φ) '' exactPolyhedron.hull = ⇑(rotM θ φ) '' exactPolyhedron.hull
-
theoremdefined in Noperthedron/Tightening.leancomplete
theorem Noperthedron.Tightening.lemma7_2 (θ φ α : ℝ) : ⇑(rotR (α + Real.pi)) ∘ ⇑(rotM θ φ) '' exactPolyhedron.hull = ⇑(rotR α) ∘ ⇑(rotM θ φ) '' exactPolyhedron.hull
theorem Noperthedron.Tightening.lemma7_2 (θ φ α : ℝ) : ⇑(rotR (α + Real.pi)) ∘ ⇑(rotM θ φ) '' exactPolyhedron.hull = ⇑(rotR α) ∘ ⇑(rotM θ φ) '' exactPolyhedron.hull
-
theoremdefined in Noperthedron/Tightening.leancomplete
theorem Noperthedron.Tightening.lemma7_3 (θ φ : ℝ) : ⇑(flip_y ∘SL rotM θ φ) '' exactPolyhedron.hull = ⇑(rotM (θ + Real.pi / 15) (Real.pi - φ)) '' exactPolyhedron.hull
theorem Noperthedron.Tightening.lemma7_3 (θ φ : ℝ) : ⇑(flip_y ∘SL rotM θ φ) '' exactPolyhedron.hull = ⇑(rotM (θ + Real.pi / 15) (Real.pi - φ)) '' exactPolyhedron.hull
See polyhedron.without.rupert, Lemma 7.
If the noperthedron is Rupert, then there exists a solution with
\begin{align*}
\theta_1,\theta_2&\in[0,2\pi/15] \subset [0,0.42], \\
\varphi_1&\in [0,\pi] \subset [0,3.15],\\
\varphi_2&\in [0,\pi/2] \subset [0,1.58],\\
\alpha &\in [-\pi/2,\pi/2] \subset [-1.58,1.58].
\end{align*}
Lean code for Corollary2.2.2●1 theorem
Associated Lean declarations
-
theoremdefined in Noperthedron/Tightening.leancomplete
theorem Noperthedron.Tightening.rupert_tightening (p : Pose ℝ) (r : RupertPose p exactPolyhedron.hull) : ∃ p', tightInterval.contains p' ∧ RupertPose p' exactPolyhedron.hull
theorem Noperthedron.Tightening.rupert_tightening (p : Pose ℝ) (r : RupertPose p exactPolyhedron.hull) : ∃ p', tightInterval.contains p' ∧ RupertPose p' exactPolyhedron.hull
See polyhedron.without.rupert, Lemma 8.