8. Computational Step
There exists a valid solution table whose zeroth row covers
\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*}
By exhibiting the table and running the validity checking algorithm.
If a global node in the solution tree is valid, then there is no Rupert solution for its interval.
Lean code for Theorem8.2●1 theorem
Associated Lean declarations
-
Solution.valid_global_imp_no_rupert[complete]
-
Solution.valid_global_imp_no_rupert[complete]
-
theoremdefined in Noperthedron/SolutionTable/Global.leancomplete
theorem Noperthedron.Solution.valid_global_imp_no_rupert (row : Solution.Row) (hrow : row.ValidGlobal) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.valid_global_imp_no_rupert (row : Solution.Row) (hrow : row.ValidGlobal) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
If a local node in the solution tree is valid, then there is no Rupert solution for its interval.
Lean code for Theorem8.3●1 theorem
Associated Lean declarations
-
Solution.valid_local_imp_no_rupert[complete]
-
Solution.valid_local_imp_no_rupert[complete]
-
theoremdefined in Noperthedron/SolutionTable/Local.leancomplete
theorem Noperthedron.Solution.valid_local_imp_no_rupert (row : Solution.Row) (hrow : row.ValidLocal) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.valid_local_imp_no_rupert (row : Solution.Row) (hrow : row.ValidLocal) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
-
Solution.Row.valid_imp_not_rupert_ix[complete] -
Solution.valid_split_imp_no_rupert[complete] -
Solution.valid_single_param_split_imp_no_rupert[complete] -
Solution.valid_full_split_imp_no_rupert[complete] -
Solution.valid_param_split_imp_no_rupert[complete]
If we have a valid solution table, and in particular its ith row is valid,
then there is no Rupert solution of the interval of its ith row.
Lean code for Theorem8.4●5 theorems
Associated Lean declarations
-
Solution.Row.valid_imp_not_rupert_ix[complete]
-
Solution.valid_split_imp_no_rupert[complete]
-
Solution.valid_single_param_split_imp_no_rupert[complete]
-
Solution.valid_full_split_imp_no_rupert[complete]
-
Solution.valid_param_split_imp_no_rupert[complete]
-
Solution.Row.valid_imp_not_rupert_ix[complete] -
Solution.valid_split_imp_no_rupert[complete] -
Solution.valid_single_param_split_imp_no_rupert[complete] -
Solution.valid_full_split_imp_no_rupert[complete] -
Solution.valid_param_split_imp_no_rupert[complete]
-
theoremdefined in Noperthedron/SolutionTable.leancomplete
theorem Noperthedron.Solution.Row.valid_imp_not_rupert_ix (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (i : ℕ) (hi : i < size) : ¬∃ q ∈ (get i).interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.Row.valid_imp_not_rupert_ix (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (i : ℕ) (hi : i < size) : ¬∃ q ∈ (get i).interval.toReal, RupertPose q exactPolyhedron.hull
-
theoremdefined in Noperthedron/SolutionTable.leancomplete
theorem Noperthedron.Solution.valid_split_imp_no_rupert (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (row : Solution.Row) (hr : Solution.Row.ValidSplitAt get size row) (hlt : row.ID < size) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.valid_split_imp_no_rupert (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (row : Solution.Row) (hr : Solution.Row.ValidSplitAt get size row) (hlt : row.ID < size) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
-
theoremdefined in Noperthedron/SolutionTable.leancomplete
theorem Noperthedron.Solution.valid_single_param_split_imp_no_rupert (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (row : Solution.Row) (hr : Solution.Row.ValidSingleParamSplitAt get size row) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.valid_single_param_split_imp_no_rupert (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (row : Solution.Row) (hr : Solution.Row.ValidSingleParamSplitAt get size row) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
-
theoremdefined in Noperthedron/SolutionTable.leancomplete
theorem Noperthedron.Solution.valid_full_split_imp_no_rupert (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (row : Solution.Row) (_hgt : row.ID < row.IDfirstChild) (_hlt : row.ID < size) (hi : Solution.HasIntervalsAt get size row.IDfirstChild (Solution.cubeFold [Solution.Interval.lower_half, Solution.Interval.upper_half] row.interval Solution.Param.splitOrder)) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.valid_full_split_imp_no_rupert (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (row : Solution.Row) (_hgt : row.ID < row.IDfirstChild) (_hlt : row.ID < size) (hi : Solution.HasIntervalsAt get size row.IDfirstChild (Solution.cubeFold [Solution.Interval.lower_half, Solution.Interval.upper_half] row.interval Solution.Param.splitOrder)) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
-
theoremdefined in Noperthedron/SolutionTable.leancomplete
theorem Noperthedron.Solution.valid_param_split_imp_no_rupert (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (row : Solution.Row) (p : Solution.Param) (h : Solution.Row.ValidSplitParamAt get size row p) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.valid_param_split_imp_no_rupert (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (row : Solution.Row) (p : Solution.Param) (h : Solution.Row.ValidSplitParamAt get size row p) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
If we have a valid solution table, then there is no Rupert solution of the interval of its zeroth row.
Lean code for Corollary8.5●1 theorem
Associated Lean declarations
-
Solution.Row.valid_imp_not_rupert[complete]
-
Solution.Row.valid_imp_not_rupert[complete]
-
theoremdefined in Noperthedron/SolutionTable.leancomplete
theorem Noperthedron.Solution.Row.valid_imp_not_rupert (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (hz : 0 < size) : ¬∃ q ∈ (get 0).interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.Row.valid_imp_not_rupert (get : ℕ → Solution.Row) (size : ℕ) (rowsValid : Solution.RowsValidAt get size) (hz : 0 < size) : ¬∃ q ∈ (get 0).interval.toReal, RupertPose q exactPolyhedron.hull
Immediate special case of Theorem 8.4.