Theorem: le_gauge_of_not_mem
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: rw [starConvex_zero_iff] at hs₀
state_before: 𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
hs₀ : StarConvex ℝ 0 s
hs₂ : Absorbs ℝ s {x}
hx : ¬x ∈ a • s
⊢ a ≤ gauge s x

tactic: obtain ⟨r, hr, h⟩ := hs₂
state_before: 𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
hs₂ : Absorbs ℝ s {x}
hx : ¬x ∈ a • s
⊢ a ≤ gauge s x

tactic: refine' le_csInf ⟨r, hr, singleton_subset_iff.1 <| h _ (Real.norm_of_nonneg hr.le).ge⟩ _
state_before: case intro.intro
𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
hx : ¬x ∈ a • s
r : ℝ
hr : 0 < r
h : ∀ (a : ℝ), r ≤ ‖a‖ → {x} ⊆ a • s
⊢ a ≤ gauge s x

tactic: rintro b ⟨hb, x, hx', rfl⟩
state_before: case intro.intro
𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
hx : ¬x ∈ a • s
r : ℝ
hr : 0 < r
h : ∀ (a : ℝ), r ≤ ‖a‖ → {x} ⊆ a • s
⊢ ∀ (b : ℝ), b ∈ {r | 0 < r ∧ x ∈ r • s} → a ≤ b

tactic: refine' not_lt.1 fun hba => hx _
state_before: case intro.intro.intro.intro.intro
𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
r : ℝ
hr : 0 < r
b : ℝ
hb : 0 < b
x : E
hx' : x ∈ s
hx : ¬(fun x => b • x) x ∈ a • s
h : ∀ (a : ℝ), r ≤ ‖a‖ → {(fun x => b • x) x} ⊆ a • s
⊢ a ≤ b

tactic: have ha := hb.trans hba
state_before: case intro.intro.intro.intro.intro
𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
r : ℝ
hr : 0 < r
b : ℝ
hb : 0 < b
x : E
hx' : x ∈ s
hx : ¬(fun x => b • x) x ∈ a • s
h : ∀ (a : ℝ), r ≤ ‖a‖ → {(fun x => b • x) x} ⊆ a • s
hba : b < a
⊢ (fun x => b • x) x ∈ a • s

tactic: refine' ⟨(a⁻¹ * b) • x, hs₀ hx' (by positivity) _, _⟩
state_before: case intro.intro.intro.intro.intro
𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
r : ℝ
hr : 0 < r
b : ℝ
hb : 0 < b
x : E
hx' : x ∈ s
hx : ¬(fun x => b • x) x ∈ a • s
h : ∀ (a : ℝ), r ≤ ‖a‖ → {(fun x => b • x) x} ⊆ a • s
hba : b < a
ha : 0 < a
⊢ (fun x => b • x) x ∈ a • s

tactic: positivity
state_before: 𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
r : ℝ
hr : 0 < r
b : ℝ
hb : 0 < b
x : E
hx' : x ∈ s
hx : ¬(fun x => b • x) x ∈ a • s
h : ∀ (a : ℝ), r ≤ ‖a‖ → {(fun x => b • x) x} ⊆ a • s
hba : b < a
ha : 0 < a
⊢ 0 ≤ a⁻¹ * b

tactic: rw [← div_eq_inv_mul]
state_before: case intro.intro.intro.intro.intro.refine'_1
𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
r : ℝ
hr : 0 < r
b : ℝ
hb : 0 < b
x : E
hx' : x ∈ s
hx : ¬(fun x => b • x) x ∈ a • s
h : ∀ (a : ℝ), r ≤ ‖a‖ → {(fun x => b • x) x} ⊆ a • s
hba : b < a
ha : 0 < a
⊢ a⁻¹ * b ≤ 1

tactic: exact div_le_one_of_le hba.le ha.le
state_before: case intro.intro.intro.intro.intro.refine'_1
𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
r : ℝ
hr : 0 < r
b : ℝ
hb : 0 < b
x : E
hx' : x ∈ s
hx : ¬(fun x => b • x) x ∈ a • s
h : ∀ (a : ℝ), r ≤ ‖a‖ → {(fun x => b • x) x} ⊆ a • s
hba : b < a
ha : 0 < a
⊢ b / a ≤ 1

tactic: dsimp only
state_before: case intro.intro.intro.intro.intro.refine'_2
𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
r : ℝ
hr : 0 < r
b : ℝ
hb : 0 < b
x : E
hx' : x ∈ s
hx : ¬(fun x => b • x) x ∈ a • s
h : ∀ (a : ℝ), r ≤ ‖a‖ → {(fun x => b • x) x} ⊆ a • s
hba : b < a
ha : 0 < a
⊢ (fun x => a • x) ((a⁻¹ * b) • x) = (fun x => b • x) x

tactic: rw [← mul_smul, mul_inv_cancel_left₀ ha.ne']
state_before: case intro.intro.intro.intro.intro.refine'_2
𝕜 : Type ?u.88359
E : Type u_1
F : Type ?u.88365
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
hs₀ : ∀ ⦃x : E⦄, x ∈ s → ∀ ⦃a : ℝ⦄, 0 ≤ a → a ≤ 1 → a • x ∈ s
r : ℝ
hr : 0 < r
b : ℝ
hb : 0 < b
x : E
hx' : x ∈ s
hx : ¬(fun x => b • x) x ∈ a • s
h : ∀ (a : ℝ), r ≤ ‖a‖ → {(fun x => b • x) x} ⊆ a • s
hba : b < a
ha : 0 < a
⊢ a • (a⁻¹ * b) • x = b • x