Theorem: balanced_convexHull_of_balanced
File: Mathlib/Analysis/LocallyConvex/Basic.lean

tactic: suffices Convex ℝ { x | ∀ a : 𝕜, ‖a‖ ≤ 1 → a • x ∈ convexHull ℝ s } by
  rw [balanced_iff_smul_mem] at hs⊢
  refine' fun a ha x hx => convexHull_min _ this hx a ha
  exact fun y hy a ha => subset_convexHull ℝ s (hs ha hy)
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.218973
E : Type u_2
ι : Sort ?u.218979
κ : ι → Sort ?u.218984
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
s : Set E
inst✝¹ : Module ℝ E
inst✝ : SMulCommClass ℝ 𝕜 E
hs : Balanced 𝕜 s
⊢ Balanced 𝕜 (↑(convexHull ℝ).toOrderHom s)

tactic: intro x hx y hy u v hu hv huv a ha
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.218973
E : Type u_2
ι : Sort ?u.218979
κ : ι → Sort ?u.218984
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
s : Set E
inst✝¹ : Module ℝ E
inst✝ : SMulCommClass ℝ 𝕜 E
hs : Balanced 𝕜 s
⊢ Convex ℝ {x | ∀ (a : 𝕜), ‖a‖ ≤ 1 → a • x ∈ ↑(convexHull ℝ).toOrderHom s}

tactic: simp only [smul_add, ← smul_comm]
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.218973
E : Type u_2
ι : Sort ?u.218979
κ : ι → Sort ?u.218984
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
s : Set E
inst✝¹ : Module ℝ E
inst✝ : SMulCommClass ℝ 𝕜 E
hs : Balanced 𝕜 s
x : E
hx : x ∈ {x | ∀ (a : 𝕜), ‖a‖ ≤ 1 → a • x ∈ ↑(convexHull ℝ).toOrderHom s}
y : E
hy : y ∈ {x | ∀ (a : 𝕜), ‖a‖ ≤ 1 → a • x ∈ ↑(convexHull ℝ).toOrderHom s}
u v : ℝ
hu : 0 ≤ u
hv : 0 ≤ v
huv : u + v = 1
a : 𝕜
ha : ‖a‖ ≤ 1
⊢ a • (u • x + v • y) ∈ ↑(convexHull ℝ).toOrderHom s

tactic: exact convex_convexHull ℝ s (hx a ha) (hy a ha) hu hv huv
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.218973
E : Type u_2
ι : Sort ?u.218979
κ : ι → Sort ?u.218984
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
s : Set E
inst✝¹ : Module ℝ E
inst✝ : SMulCommClass ℝ 𝕜 E
hs : Balanced 𝕜 s
x : E
hx : x ∈ {x | ∀ (a : 𝕜), ‖a‖ ≤ 1 → a • x ∈ ↑(convexHull ℝ).toOrderHom s}
y : E
hy : y ∈ {x | ∀ (a : 𝕜), ‖a‖ ≤ 1 → a • x ∈ ↑(convexHull ℝ).toOrderHom s}
u v : ℝ
hu : 0 ≤ u
hv : 0 ≤ v
huv : u + v = 1
a : 𝕜
ha : ‖a‖ ≤ 1
⊢ u • a • x + v • a • y ∈ ↑(convexHull ℝ).toOrderHom s

tactic: rw [balanced_iff_smul_mem] at hs⊢
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.218973
E : Type u_2
ι : Sort ?u.218979
κ : ι → Sort ?u.218984
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
s : Set E
inst✝¹ : Module ℝ E
inst✝ : SMulCommClass ℝ 𝕜 E
hs : Balanced 𝕜 s
this : Convex ℝ {x | ∀ (a : 𝕜), ‖a‖ ≤ 1 → a • x ∈ ↑(convexHull ℝ).toOrderHom s}
⊢ Balanced 𝕜 (↑(convexHull ℝ).toOrderHom s)

tactic: refine' fun a ha x hx => convexHull_min _ this hx a ha
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.218973
E : Type u_2
ι : Sort ?u.218979
κ : ι → Sort ?u.218984
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
s : Set E
inst✝¹ : Module ℝ E
inst✝ : SMulCommClass ℝ 𝕜 E
hs : ∀ ⦃a : 𝕜⦄, ‖a‖ ≤ 1 → ∀ ⦃x : E⦄, x ∈ s → a • x ∈ s
this : Convex ℝ {x | ∀ (a : 𝕜), ‖a‖ ≤ 1 → a • x ∈ ↑(convexHull ℝ).toOrderHom s}
⊢ ∀ ⦃a : 𝕜⦄, ‖a‖ ≤ 1 → ∀ ⦃x : E⦄, x ∈ ↑(convexHull ℝ).toOrderHom s → a • x ∈ ↑(convexHull ℝ).toOrderHom s

tactic: exact fun y hy a ha => subset_convexHull ℝ s (hs ha hy)
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.218973
E : Type u_2
ι : Sort ?u.218979
κ : ι → Sort ?u.218984
inst✝⁴ : NontriviallyNormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
s : Set E
inst✝¹ : Module ℝ E
inst✝ : SMulCommClass ℝ 𝕜 E
hs : ∀ ⦃a : 𝕜⦄, ‖a‖ ≤ 1 → ∀ ⦃x : E⦄, x ∈ s → a • x ∈ s
this : Convex ℝ {x | ∀ (a : 𝕜), ‖a‖ ≤ 1 → a • x ∈ ↑(convexHull ℝ).toOrderHom s}
a : 𝕜
ha : ‖a‖ ≤ 1
x : E
hx : x ∈ ↑(convexHull ℝ).toOrderHom s
⊢ s ⊆ {x | ∀ (a : 𝕜), ‖a‖ ≤ 1 → a • x ∈ ↑(convexHull ℝ).toOrderHom s}