4. Preliminaries
TODO: This whole chapter needs organization, it's just a grab bag of miscellaneous results for now.
4.1. Rupert Sets
The following are equivalent:
-
The convex polyhedron with vertex set
vis Rupert. -
The convex closure of
vis a Rupert set.
Lean code for Theorem4.1.1●1 theorem
Associated Lean declarations
-
rupert_iff_rupert_set[complete]
-
rupert_iff_rupert_set[complete]
-
theoremdefined in Noperthedron/Rupert/Equivalences/RupertEquivRupertSet.leancomplete
theorem rupert_iff_rupert_set (v : Finset Euc(3)) : IsRupert v ↔ IsRupertSet ((convexHull ℝ) ↑v)
theorem rupert_iff_rupert_set (v : Finset Euc(3)) : IsRupert v ↔ IsRupertSet ((convexHull ℝ) ↑v)
TODO: import this from the other repo
4.2. Poses
TODO
-
pose_of_matrix_pose[complete] -
converted_pose_rupert_iff[complete]
Given a pose with zero offset, there exists a 5-parameter pose that is equivalent to it.
Lean code for Theorem4.2.1●2 theorems
Associated Lean declarations
-
pose_of_matrix_pose[complete]
-
converted_pose_rupert_iff[complete]
-
pose_of_matrix_pose[complete] -
converted_pose_rupert_iff[complete]
-
theoremdefined in Noperthedron/ConvertPose.leancomplete
theorem pose_of_matrix_pose (p : MatrixPose) : ∃ δ pp, pp.matrixPoseOfPose = p.zeroOffset.rotateBy δ
theorem pose_of_matrix_pose (p : MatrixPose) : ∃ δ pp, pp.matrixPoseOfPose = p.zeroOffset.rotateBy δ
For any MatrixPose p, after rotating by the right δ, there exists a Pose that equals the rotated zeroOffset.
-
theoremdefined in Noperthedron/ConvertPose.leancomplete
theorem converted_pose_rupert_iff (v : Pose ℝ) (S : Set Euc(3)) : RupertPose v S ↔ RupertPose v.matrixPoseOfPose S
theorem converted_pose_rupert_iff (v : Pose ℝ) (S : Set Euc(3)) : RupertPose v S ↔ RupertPose v.matrixPoseOfPose S
By putting the pose into a canonical form as a Z rotation followed by a Y followed by a Z.
4.3. Pointsymmetry and Rupertness
If a set is point symmetric and convex, then it being Rupert implies it being purely rotationally Rupert.
Lean code for Theorem4.3.1●1 theorem
Associated Lean declarations
-
rupert_implies_rot_rupert[complete]
-
rupert_implies_rot_rupert[complete]
-
theoremdefined in Noperthedron/CommonCenter.leancomplete
theorem rupert_implies_rot_rupert {S : Set Euc(3)} (s_sym : PointSym S) (s_convex : Convex ℝ S) (p : MatrixPose) (r : RupertPose p S) : RupertPose p.zeroOffset S
theorem rupert_implies_rot_rupert {S : Set Euc(3)} (s_sym : PointSym S) (s_convex : Convex ℝ S) (p : MatrixPose) (r : RupertPose p S) : RupertPose p.zeroOffset S
If a set is point symmetric and convex, then it being rupert implies being purely rotationally rupert.
TODO: informalize proof
Suppose S is a finite set of points in \R^n.
The radius of the polyhedron S is r iff
-
there is a vector
v \in Swith\|v\| = r -
all vectors
v \in Shave\|v\| \le r
Lean code for Theorem4.3.2●1 theorem
Associated Lean declarations
-
Polyhedron.radius_iff[complete]
-
Polyhedron.radius_iff[complete]
-
theoremdefined in Noperthedron/Basic.leancomplete
theorem Polyhedron.radius_iff {r : ℝ} {ι X : Type} [Fintype ι] [ne : Nonempty ι] [Norm X] (iv : Polyhedron ι X) : iv.radius = r ↔ (∃ i, ‖iv.v i‖ = r) ∧ ∀ (i : ι), ‖iv.v i‖ ≤ r
theorem Polyhedron.radius_iff {r : ℝ} {ι X : Type} [Fintype ι] [ne : Nonempty ι] [Norm X] (iv : Polyhedron ι X) : iv.radius = r ↔ (∃ i, ‖iv.v i‖ = r) ∧ ∀ (i : ι), ‖iv.v i‖ ≤ r
Immediate from definition.
Pointsymmetrization preserves radius.
Because the reflection of a point about the origin preserves its norm.