Stability of the six-point packing score #
This file controls the score when its parameter or the underlying center distances change.
theorem
LeanPool.Besicovitch.SixPointPacking.score_eq_add_gain
{configuration : SixPointConfiguration}
(packing : SixPointPacking configuration)
{s β : ℝ}
(hs : 0 < s)
(hsβ : s < β)
:
Increasing the score parameter adds an explicit virtual-diameter gain.
theorem
LeanPool.Besicovitch.SixPointPacking.score_mono
{configuration : SixPointConfiguration}
(packing : SixPointPacking configuration)
{s β : ℝ}
(hs : 0 < s)
(hsβ : s < β)
:
The packing score is nondecreasing in its positive parameter.
def
LeanPool.Besicovitch.SixPointPacking.transport
{configuration configuration' : SixPointConfiguration}
(packing : SixPointPacking configuration)
(hdistance :
∀ (i j : ↥packing.support),
i ≠ j →
(↑i).1 = (↑j).1 →
dist (configuration (↑i).1 (↑i).2) (configuration (↑j).1 (↑j).2) ≤ dist (configuration' (↑i).1 (↑i).2) (configuration' (↑j).1 (↑j).2))
:
SixPointPacking configuration'
Transport a packing when every relevant same-color distance can only increase.
Equations
Instances For
@[simp]
theorem
LeanPool.Besicovitch.SixPointPacking.transport_totalRadius
{configuration configuration' : SixPointConfiguration}
(packing : SixPointPacking configuration)
(hdistance :
∀ (i j : ↥packing.support),
i ≠ j →
(↑i).1 = (↑j).1 →
dist (configuration (↑i).1 (↑i).2) (configuration (↑j).1 (↑j).2) ≤ dist (configuration' (↑i).1 (↑i).2) (configuration' (↑j).1 (↑j).2))
:
theorem
LeanPool.Besicovitch.SixPointPacking.transport_virtualDiameter_le_add
{configuration configuration' : SixPointConfiguration}
(packing : SixPointPacking configuration)
(hdistance :
∀ (i j : ↥packing.support),
i ≠ j →
(↑i).1 = (↑j).1 →
dist (configuration (↑i).1 (↑i).2) (configuration (↑j).1 (↑j).2) ≤ dist (configuration' (↑i).1 (↑i).2) (configuration' (↑j).1 (↑j).2))
{eta : ℝ}
(hperturb :
∀ (i j : ↥packing.support),
dist (configuration' (↑i).1 (↑i).2) (configuration' (↑j).1 (↑j).2) ≤ dist (configuration (↑i).1 (↑i).2) (configuration (↑j).1 (↑j).2) + eta)
:
An upper perturbation of all supported distances bounds the transported virtual diameter.
theorem
LeanPool.Besicovitch.SixPointPacking.virtualDiameter_le_transport_add
{configuration configuration' : SixPointConfiguration}
(packing : SixPointPacking configuration)
(hdistance :
∀ (i j : ↥packing.support),
i ≠ j →
(↑i).1 = (↑j).1 →
dist (configuration (↑i).1 (↑i).2) (configuration (↑j).1 (↑j).2) ≤ dist (configuration' (↑i).1 (↑i).2) (configuration' (↑j).1 (↑j).2))
{eta : ℝ}
(hperturb :
∀ (i j : ↥packing.support),
dist (configuration (↑i).1 (↑i).2) (configuration (↑j).1 (↑j).2) ≤ dist (configuration' (↑i).1 (↑i).2) (configuration' (↑j).1 (↑j).2) + eta)
:
A lower perturbation of all supported distances bounds the original virtual diameter.
theorem
LeanPool.Besicovitch.SixPointPacking.abs_transport_virtualDiameter_sub_le
{configuration configuration' : SixPointConfiguration}
(packing : SixPointPacking configuration)
(hdistance :
∀ (i j : ↥packing.support),
i ≠ j →
(↑i).1 = (↑j).1 →
dist (configuration (↑i).1 (↑i).2) (configuration (↑j).1 (↑j).2) ≤ dist (configuration' (↑i).1 (↑i).2) (configuration' (↑j).1 (↑j).2))
{eta : ℝ}
(hperturb :
∀ (i j : ↥packing.support),
|dist (configuration' (↑i).1 (↑i).2) (configuration' (↑j).1 (↑j).2) - dist (configuration (↑i).1 (↑i).2) (configuration (↑j).1 (↑j).2)| ≤ eta)
:
Pairwise center errors bound the change in virtual diameter by the same error.
theorem
LeanPool.Besicovitch.SixPointPacking.score_pos_of_virtualDiameter_error
{configuration configuration' : SixPointConfiguration}
(packing : SixPointPacking configuration)
(packing' : SixPointPacking configuration')
{s β lower eta : ℝ}
(hs : 0 < s)
(hsβ : s < β)
(hscore : 0 ≤ packing.score s)
(hlower_pos : 0 < lower)
(hlower : lower ≤ packing.virtualDiameter)
(htotal : packing'.totalRadius = packing.totalRadius)
(hvirtual : packing'.virtualDiameter ≤ packing.virtualDiameter + eta)
(herror : s * eta < lower * (β - s))
:
A controlled diameter error preserves strict positivity after increasing the parameter.
theorem
LeanPool.Besicovitch.SixPointPacking.transport_score_pos
{configuration configuration' : SixPointConfiguration}
(packing : SixPointPacking configuration)
(hdistance :
∀ (i j : ↥packing.support),
i ≠ j →
(↑i).1 = (↑j).1 →
dist (configuration (↑i).1 (↑i).2) (configuration (↑j).1 (↑j).2) ≤ dist (configuration' (↑i).1 (↑i).2) (configuration' (↑j).1 (↑j).2))
{s β lower eta : ℝ}
(hs : 0 < s)
(hsβ : s < β)
(hscore : 0 ≤ packing.score s)
(hlower_pos : 0 < lower)
(hlower : lower ≤ packing.virtualDiameter)
(herror : s * eta < lower * (β - s))
(hperturb :
∀ (i j : ↥packing.support),
|dist (configuration' (↑i).1 (↑i).2) (configuration' (↑j).1 (↑j).2) - dist (configuration (↑i).1 (↑i).2) (configuration (↑j).1 (↑j).2)| ≤ eta)
:
A transported packing has positive score when its center error is below the score gain.