SideChains #
Geometry and verified arithmetic for the Conway–Soifer covering theorem at n = 3.
theorem
ConwaySoifer.Canonical.s_nonOverfull_simplified
{c : ContactCase}
{T : Configuration}
{r s : ℝ}
(H : Canonical c T r s)
(hS : c.isS)
(hs : s ≤ 1 / 10)
(i : Fin 6)
(hi : i ≠ recvOf c)
:
theorem
ConwaySoifer.Canonical.s_corner_mids_simplified
{c : ContactCase}
{T : Configuration}
{r s : ℝ}
(H : Canonical c T r s)
(hS : c.isS)
(hs : s ≤ 1 / 10)
(j : Fin 3)
(hj : c = ContactCase.Sint → j ≠ 0)
(m : Fin 2)
:
theorem
ConwaySoifer.Canonical.centre_far_simplified
{c : ContactCase}
{T : Configuration}
{r s : ℝ}
(H : Canonical c T r s)
(hs : s ≤ 1 / 3)
(i : Fin 6)
(dir : Bool)
{t : ℝ}
(ht0 : 0 < t)
(ht : t ≤ 2 * s)
:
linePoint (vertex i) (sideDirection i dir) t ∉ (T 0).carrier
theorem
ConwaySoifer.Canonical.chain_step_simplified
{c : ContactCase}
{T : Configuration}
{r s : ℝ}
(H : Canonical c T r s)
(hs : s ≤ 1 / 3)
(i : Fin 6)
(dir : Bool)
(hM : rayLen (T (sideIndex i)) (vertex i) (sideDirection i dir) < 2 * s)
(hA : ∀ (j : Fin 3), sideAllowed (sideOf i dir) (cornerIndex j) = true → ∀ p ∈ hexagon, p ∉ (T (cornerIndex j)).carrier)
:
theorem
ConwaySoifer.Canonical.chain_next_simplified
{c : ContactCase}
{T : Configuration}
{r s : ℝ}
(H : Canonical c T r s)
(hs : s ≤ 1 / 3)
(i : Fin 6)
(dir : Bool)
(nb : Fin 6)
(hnb : neighbor i dir = nb)
(hM : rayLen (T (sideIndex i)) (vertex i) (sideDirection i dir) < 2 * s)
(hA : ∀ (j : Fin 3), sideAllowed (sideOf i dir) (cornerIndex j) = true → ∀ p ∈ hexagon, p ∉ (T (cornerIndex j)).carrier)
(hno :
rayLen (T (sideIndex nb)) (vertex nb) (sideDirection nb false) + rayLen (T (sideIndex nb)) (vertex nb) (sideDirection nb true) ≤ r)
:
One step of the chain: the next owner receives at least 1 - M and its own short section
is below M.
theorem
ConwaySoifer.Canonical.sint_chain_simplified
{T : Configuration}
{r s : ℝ}
(H : Canonical ContactCase.Sint T r s)
(hs : s ≤ 1 / 10)
(hno :
∀ (i : Fin 6),
i ≠ 1 →
rayLen (T (sideIndex i)) (vertex i) (sideDirection i false) + rayLen (T (sideIndex i)) (vertex i) (sideDirection i true) ≤ r)
(hA1 : ∀ p ∈ hexagon, p ∉ (T (cornerIndex 1)).carrier)
(hA2 : ∀ p ∈ hexagon, p ∉ (T (cornerIndex 2)).carrier)
:
theorem
ConwaySoifer.Canonical.sext_chain_simplified
{T : Configuration}
{r s : ℝ}
(H : Canonical ContactCase.Sext T r s)
(hs : s ≤ 1 / 10)
(hno :
∀ (i : Fin 6),
i ≠ 5 →
rayLen (T (sideIndex i)) (vertex i) (sideDirection i false) + rayLen (T (sideIndex i)) (vertex i) (sideDirection i true) ≤ r)
(hA0 : ∀ p ∈ hexagon, p ∉ (T (cornerIndex 0)).carrier)
(hA1 : ∀ p ∈ hexagon, p ∉ (T (cornerIndex 1)).carrier)
(hA2 : ∀ p ∈ hexagon, p ∉ (T (cornerIndex 2)).carrier)
(i : Fin 6)
: