awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
linarith : 1 - δ / 4 < 1 - δ → 4 / 4 = 1
linarith₁ : 1 - δ / 4 < 1 - δ → HMul.hMul (α := ℝ) 1 4 = 4
linarith₂ : 1 - δ / 4 < 1 - δ → GT.gt (α := ℝ) 4 0
linarith₃ : 1 - δ / 4 < 1 - δ → HMul.hMul (α := ℝ) 4 1 - 1 * δ - (HMul.hMul (α := ℝ) 4 1 - 4 * δ) + 3 * (0 - δ) = 0
linarith₄ : 1 - δ / 4 < 1 - δ → GT.gt (α := ℝ) 3 0
⊢ 1 - δ ≤ 1 - δ / 4

Tactic:
linarith only [δnonneg]
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
⊢ 1 - δ ≤ 1 - δ / 4

Tactic:
have J : 1 - δ ≤ 1 - δ / 4 := by linarith only [δnonneg]
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
rw : (1 - δ / 4) * τ ≤ 1
⊢ 1 - δ / 4 ≤ τ⁻¹

Tactic:
rw [inv_eq_one_div, le_div_iff₀ τpos]

Premises used: inv_eq_one_div, le_div_iff₀
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
⊢ (1 - δ / 4) * τ ≤ 1

Tactic:
I
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
⊢ (1 - δ / 4) * τ ≤ 1

Tactic:
exact I
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
⊢ 1 - δ / 4 ≤ τ⁻¹

Tactic:
have K : 1 - δ / 4 ≤ τ⁻¹ := by rw [inv_eq_one_div, le_div_iff₀ τpos]; exact I
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
L : τ⁻¹ ≤ ‖a.c i - a.c j‖
linarith : ‖a.c i - a.c j‖ < 1 - δ → 4 / 4 = 1
linarith₁ : ‖a.c i - a.c j‖ < 1 - δ → HMul.hMul (α := ℝ) 1 4 = 4
linarith₂ : ‖a.c i - a.c j‖ < 1 - δ → GT.gt (α := ℝ) 4 0
linarith₃ : ‖a.c i - a.c j‖ < 1 - δ → 4 / 4 = 1
linarith₄ : ‖a.c i - a.c j‖ < 1 - δ → HMul.hMul (α := ℝ) 1 4 = 4
linarith₅ : ‖a.c i - a.c j‖ < 1 - δ → GT.gt (α := ℝ) 4 0
linarith₆ :
  ‖a.c i - a.c j‖ < 1 - δ →
    4 * (‖a.c i - a.c j‖ - (1 - δ)) + (HMul.hMul (α := ℝ) 4 1 - 4 * δ - (HMul.hMul (α := ℝ) 4 1 - 1 * δ)) +
          (HMul.hMul (α := ℝ) 4 1 - 1 * δ - 4 * τ⁻¹) +
        4 * (1 * τ⁻¹ - 1 * ‖a.c i - a.c j‖) =
      0
linarith₇ linarith₈ : ‖a.c i - a.c j‖ < 1 - δ → GT.gt (α := ℝ) 4 0
⊢ 1 - δ ≤ ‖a.c i - a.c j‖

Tactic:
linarith only [J, K, L]
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
suffices : τ⁻¹ ≤ ‖a.c i - a.c j‖
⊢ 1 - δ ≤ ‖a.c i - a.c j‖

Tactic:
suffices L : τ⁻¹ ≤ ‖a.c i - a.c j‖ by linarith only [J, K, L]
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
k : Fin N.succ
rw : a.r (last N) ≤ τ * a.r k
⊢ τ⁻¹ ≤ a.r k

Tactic:
rw [inv_eq_one_div, div_le_iff₀ τpos, ← lastr, mul_comm]

Premises used: div_le_iff₀, inv_eq_one_div, mul_comm
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
k : Fin N.succ
⊢ a.r (last N) ≤ τ * a.r k

Tactic:
a.hlast' k hτ

Premises used: Besicovitch.SatelliteConfig.hlast'
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
k : Fin N.succ
⊢ a.r (last N) ≤ τ * a.r k

Tactic:
exact a.hlast' k hτ

Premises used: Besicovitch.SatelliteConfig.hlast'
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
⊢ ∀ (k : Fin N.succ), τ⁻¹ ≤ a.r k

Tactic:
have hτ' : ∀ k, τ⁻¹ ≤ a.r k := by
    intro k
    rw [inv_eq_one_div, div_le_iff₀ τpos, ← lastr, mul_comm]
    exact a.hlast' k hτ
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
hτ' : ∀ (k : Fin N.succ), τ⁻¹ ≤ a.r k
inl : ∀ (H : a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i), τ⁻¹ ≤ ‖a.c i - a.c j‖
inr : ∀ (H : a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j), τ⁻¹ ≤ ‖a.c i - a.c j‖
⊢ τ⁻¹ ≤ ‖a.c i - a.c j‖

Tactic:
rcases ah inej with (H | H)
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
hτ' : ∀ (k : Fin N.succ), τ⁻¹ ≤ a.r k
H : a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i
apply : τ⁻¹ ≤ a.r i
⊢ τ⁻¹ ≤ ‖a.c i - a.c j‖

Tactic:
apply le_trans _ H.1

Premises used: And.left, le_trans
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
hτ' : ∀ (k : Fin N.succ), τ⁻¹ ≤ a.r k
H : a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i
⊢ τ⁻¹ ≤ a.r i

Tactic:
hτ' i
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
hτ' : ∀ (k : Fin N.succ), τ⁻¹ ≤ a.r k
H : a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i
⊢ τ⁻¹ ≤ a.r i

Tactic:
exact hτ' i
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
hτ' : ∀ (k : Fin N.succ), τ⁻¹ ≤ a.r k
H : a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
inr : τ⁻¹ ≤ ‖a.c j - a.c i‖
⊢ τ⁻¹ ≤ ‖a.c i - a.c j‖

Tactic:
rw [norm_sub_rev]

Premises used: norm_sub_rev
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
hτ' : ∀ (k : Fin N.succ), τ⁻¹ ≤ a.r k
H : a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
apply : τ⁻¹ ≤ a.r j
⊢ τ⁻¹ ≤ ‖a.c j - a.c i‖

Tactic:
apply le_trans _ H.1

Premises used: And.left, le_trans
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
hτ' : ∀ (k : Fin N.succ), τ⁻¹ ≤ a.r k
H : a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
⊢ τ⁻¹ ≤ a.r j

Tactic:
hτ' j
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
τpos : 0 < τ
I : (1 - δ / 4) * τ ≤ 1
J : 1 - δ ≤ 1 - δ / 4
K : 1 - δ / 4 ≤ τ⁻¹
hτ' : ∀ (k : Fin N.succ), τ⁻¹ ≤ a.r k
H : a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
⊢ τ⁻¹ ≤ a.r j

Tactic:
exact hτ' j
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
⊢ Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j

Tactic:
simpa only [dist_eq_norm] using a.h

Premises used: dist_eq_norm, Besicovitch.SatelliteConfig.h
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
⊢ Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j

Tactic:
have ah :
      Pairwise fun i j => a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨
        a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j := by
    simpa only [dist_eq_norm] using a.h
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
linarith : δ < 0 → 4 / 4 = 1
linarith₁ : δ < 0 → HMul.hMul (α := ℝ) 1 4 = 4
linarith₂ : δ < 0 → GT.gt (α := ℝ) 4 0
linarith₃ : δ < 0 → δ - 0 + 4 * (1 - τ) + (4 * τ - (HMul.hMul (α := ℝ) 4 1 + 1 * δ)) = 0
linarith₄ : δ < 0 → GT.gt (α := ℝ) 4 0
⊢ 0 ≤ δ

Tactic:
linarith only [hτ, hδ1]
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
⊢ 0 ≤ δ

Tactic:
have δnonneg : 0 ≤ δ := by linarith only [hτ, hδ1]
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
linarith : 1 - δ / 4 < 0 → 4 / 4 = 1
linarith₁ : 1 - δ / 4 < 0 → HMul.hMul (α := ℝ) 1 4 = 4
linarith₂ : 1 - δ / 4 < 0 → GT.gt (α := ℝ) 4 0
linarith₃ :
  1 - δ / 4 < 0 → HMul.hMul (α := ℝ) 3 (-1) + (HMul.hMul (α := ℝ) 4 1 - 1 * δ - HMul.hMul (α := ℝ) 4 0) + (δ - 1) = 0
linarith₄ : 1 - δ / 4 < 0 → GT.gt (α := ℝ) 3 0
⊢ 0 ≤ 1 - δ / 4

Tactic:
linarith only [hδ2]
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
⊢ 0 ≤ 1 - δ / 4

Tactic:
have D : 0 ≤ 1 - δ / 4 := by linarith only [hδ2]
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
⊢ ‖a.c j‖ ≤ a.r j + 1

Tactic:
simpa only [lastc, lastr, dist_zero_right] using a.inter' j

Premises used: Besicovitch.SatelliteConfig.inter', dist_zero_right
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
⊢ ‖a.c j‖ ≤ a.r j + 1

Tactic:
have hcrj : ‖a.c j‖ ≤ a.r j + 1 := by simpa only [lastc, lastr, dist_zero_right] using a.inter' j
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
hcrj : ‖a.c j‖ ≤ a.r j + 1
inl : ∀ (H : i < last N), a.r i ≤ 2
inr : ∀ (H : last N ≤ i), a.r i ≤ 2
⊢ a.r i ≤ 2

Tactic:
rcases lt_or_ge i (last N) with (H | H)

Premises used: Fin.last, lt_or_ge
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
hcrj : ‖a.c j‖ ≤ a.r j + 1
H : i < last N
inl : dist (a.c i) (a.c (last N)) ≤ 2
⊢ a.r i ≤ 2

Tactic:
apply (a.hlast i H).1.trans

Premises used: Besicovitch.SatelliteConfig.hlast, And.left, LE.le.trans
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
hcrj : ‖a.c j‖ ≤ a.r j + 1
H : i < last N
⊢ dist (a.c i) (a.c (last N)) ≤ 2

Tactic:
simpa only [dist_eq_norm, lastc, sub_zero] using hi

Premises used: dist_eq_norm, sub_zero
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
hcrj : ‖a.c j‖ ≤ a.r j + 1
H : last N ≤ i
⊢ i = last N

Tactic:
have : i = last N := top_le_iff.1 H
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
hcrj : ‖a.c j‖ ≤ a.r j + 1
H : last N ≤ i
this : i = last N
inr : LE.le (α := ℝ) 1 2
⊢ a.r i ≤ 2

Tactic:
rw [this, lastr]
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
hcrj : ‖a.c j‖ ≤ a.r j + 1
H : last N ≤ i
this : i = last N
⊢ LE.le (α := ℝ) 1 2

Tactic:
one_le_two

Premises used: one_le_two
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
hcrj : ‖a.c j‖ ≤ a.r j + 1
H : last N ≤ i
this : i = last N
⊢ LE.le (α := ℝ) 1 2

Tactic:
exact one_le_two

Premises used: one_le_two
-- Module: Mathlib.MeasureTheory.Covering.BesicovitchVectorSpace
Goal:
E : Type u_1
inst : NormedAddCommGroup E
inst_1 : NormedSpace ℝ E
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
lastc : a.c (last N) = 0
lastr : a.r (last N) = 1
hτ : 1 ≤ τ
δ : ℝ
hδ1 : τ ≤ 1 + δ / 4
hδ2 : δ ≤ 1
i j : Fin N.succ
inej : i ≠ j
hi : ‖a.c i‖ ≤ 2
hj : 2 < ‖a.c j‖
ah :
  Pairwise fun (i j : Fin N.succ) ↦
    a.r i ≤ ‖a.c i - a.c j‖ ∧ a.r j ≤ τ * a.r i ∨ a.r j ≤ ‖a.c j - a.c i‖ ∧ a.r i ≤ τ * a.r j
δnonneg : 0 ≤ δ
D : 0 ≤ 1 - δ / 4
hcrj : ‖a.c j‖ ≤ a.r j + 1
⊢ a.r i ≤ 2

Tactic:
have I : a.r i ≤ 2 := by
    rcases lt_or_ge i (last N) with (H | H)
    · apply (a.hlast i H).1.trans
      simpa only [dist_eq_norm, lastc, sub_zero] using hi
    · have : i = last N := top_le_iff.1 H
      rw [this, lastr]
      exact one_le_two