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*}
Lean code for Theorem8.1●1 theorem, incomplete
Associated Lean declarations
-
exists_solution_table[sorry in proof]
-
exists_solution_table[sorry in proof]
-
theoremdefined in Noperthedron/ComputationalStep.leancontains sorry
theorem Noperthedron.exists_solution_table : ∃ x, True
theorem Noperthedron.exists_solution_table : ∃ x, True
By exhibiting the table and running the validity checking algorithm.
-
Solution.valid_global_imp_no_rupert[complete]
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
-
Solution.valid_local_imp_no_rupert[complete]
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 (tab : Solution.Table) (i : ℕ) (tab_valid : tab.RowsValid) (row : Solution.Row) (row_valid : Solution.Row.ValidIx tab i row) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.Row.valid_imp_not_rupert_ix (tab : Solution.Table) (i : ℕ) (tab_valid : tab.RowsValid) (row : Solution.Row) (row_valid : Solution.Row.ValidIx tab i row) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
-
theoremdefined in Noperthedron/SolutionTable.leancomplete
theorem Noperthedron.Solution.valid_split_imp_no_rupert (tab : Solution.Table) (row : Solution.Row) (htab : tab.RowsValid) (hr : Solution.Row.ValidSplit tab row) (hlt : row.ID < Array.size tab) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.valid_split_imp_no_rupert (tab : Solution.Table) (row : Solution.Row) (htab : tab.RowsValid) (hr : Solution.Row.ValidSplit tab row) (hlt : row.ID < Array.size tab) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
-
theoremdefined in Noperthedron/SolutionTable.leancomplete
theorem Noperthedron.Solution.valid_single_param_split_imp_no_rupert (tab : Solution.Table) (row : Solution.Row) (htab : tab.RowsValid) (hr : Solution.Row.ValidSingleParamSplit tab row) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.valid_single_param_split_imp_no_rupert (tab : Solution.Table) (row : Solution.Row) (htab : tab.RowsValid) (hr : Solution.Row.ValidSingleParamSplit tab row) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
-
theoremdefined in Noperthedron/SolutionTable.leancomplete
theorem Noperthedron.Solution.valid_full_split_imp_no_rupert (tab : Solution.Table) (row : Solution.Row) (htab : tab.RowsValid) (_hgt : row.ID < row.IDfirstChild) (_hlt : row.ID < Array.size tab) (hi : tab.HasIntervals row.IDfirstChild (Solution.cubeFold [Solution.Interval.lower_half, Solution.Interval.upper_half] row.interval [Solution.Param.θ₁, Solution.Param.φ₁, Solution.Param.θ₂, Solution.Param.φ₂, Solution.Param.α])) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.valid_full_split_imp_no_rupert (tab : Solution.Table) (row : Solution.Row) (htab : tab.RowsValid) (_hgt : row.ID < row.IDfirstChild) (_hlt : row.ID < Array.size tab) (hi : tab.HasIntervals row.IDfirstChild (Solution.cubeFold [Solution.Interval.lower_half, Solution.Interval.upper_half] row.interval [Solution.Param.θ₁, Solution.Param.φ₁, Solution.Param.θ₂, Solution.Param.φ₂, Solution.Param.α])) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
-
theoremdefined in Noperthedron/SolutionTable.leancomplete
theorem Noperthedron.Solution.valid_param_split_imp_no_rupert (tab : Solution.Table) (row : Solution.Row) (htab : tab.RowsValid) (p : Solution.Param) (h : Solution.Row.ValidSplitParam tab row p) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.valid_param_split_imp_no_rupert (tab : Solution.Table) (row : Solution.Row) (htab : tab.RowsValid) (p : Solution.Param) (h : Solution.Row.ValidSplitParam tab row p) : ¬∃ q ∈ row.interval.toReal, RupertPose q exactPolyhedron.hull
-
Solution.Row.valid_imp_not_rupert[complete]
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 (tab : Solution.Table) (tab_valid : tab.RowsValid) (hz : 0 < Array.size tab) : ¬∃ q ∈ tab[0].interval.toReal, RupertPose q exactPolyhedron.hull
theorem Noperthedron.Solution.Row.valid_imp_not_rupert (tab : Solution.Table) (tab_valid : tab.RowsValid) (hz : 0 < Array.size tab) : ¬∃ q ∈ tab[0].interval.toReal, RupertPose q exactPolyhedron.hull
Immediate special case of Theorem 8.4.