Theorem: convexHull_eq_union_convexHull_finite_subsets
File: Mathlib/Analysis/Convex/Combination.lean

tactic: refine' Subset.antisymm _ _
state_before: R : Type u_2
E : Type u_1
F : Type ?u.239379
ι : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι
c : R
t : Finset ι
w : ι → R
z : ι → E
s : Set E
⊢ ↑(convexHull R).toOrderHom s = ⋃ (t : Finset E) (_ : ↑t ⊆ s), ↑(convexHull R).toOrderHom ↑t

tactic: rw [_root_.convexHull_eq]
state_before: case refine'_1
R : Type u_2
E : Type u_1
F : Type ?u.239379
ι : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι
c : R
t : Finset ι
w : ι → R
z : ι → E
s : Set E
⊢ ↑(convexHull R).toOrderHom s ⊆ ⋃ (t : Finset E) (_ : ↑t ⊆ s), ↑(convexHull R).toOrderHom ↑t

tactic: rintro x ⟨ι : Type u_1, t, w, z, hw₀, hw₁, hz, rfl⟩
state_before: case refine'_1
R : Type u_2
E : Type u_1
F : Type ?u.239379
ι : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι
c : R
t : Finset ι
w : ι → R
z : ι → E
s : Set E
⊢ {x | ∃ ι t w z x_1 x_2 x_3, centerMass t w z = x} ⊆ ⋃ (t : Finset E) (_ : ↑t ⊆ s), ↑(convexHull R).toOrderHom ↑t

tactic: simp only [mem_iUnion]
state_before: case refine'_1.intro.intro.intro.intro.intro.intro.intro
R : Type u_2
E : Type u_1
F : Type ?u.239379
ι✝ : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι✝
c : R
t✝ : Finset ι✝
w✝ : ι✝ → R
z✝ : ι✝ → E
s : Set E
ι : Type u_1
t : Finset ι
w : ι → R
z : ι → E
hw₀ : ∀ (i : ι), i ∈ t → 0 ≤ w i
hw₁ : ∑ i in t, w i = 1
hz : ∀ (i : ι), i ∈ t → z i ∈ s
⊢ centerMass t w z ∈ ⋃ (t : Finset E) (_ : ↑t ⊆ s), ↑(convexHull R).toOrderHom ↑t

tactic: refine' ⟨t.image z, _, _⟩
state_before: case refine'_1.intro.intro.intro.intro.intro.intro.intro
R : Type u_2
E : Type u_1
F : Type ?u.239379
ι✝ : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι✝
c : R
t✝ : Finset ι✝
w✝ : ι✝ → R
z✝ : ι✝ → E
s : Set E
ι : Type u_1
t : Finset ι
w : ι → R
z : ι → E
hw₀ : ∀ (i : ι), i ∈ t → 0 ≤ w i
hw₁ : ∑ i in t, w i = 1
hz : ∀ (i : ι), i ∈ t → z i ∈ s
⊢ ∃ i i_1, centerMass t w z ∈ ↑(convexHull R).toOrderHom ↑i

tactic: rw [coe_image, Set.image_subset_iff]
state_before: case refine'_1.intro.intro.intro.intro.intro.intro.intro.refine'_1
R : Type u_2
E : Type u_1
F : Type ?u.239379
ι✝ : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι✝
c : R
t✝ : Finset ι✝
w✝ : ι✝ → R
z✝ : ι✝ → E
s : Set E
ι : Type u_1
t : Finset ι
w : ι → R
z : ι → E
hw₀ : ∀ (i : ι), i ∈ t → 0 ≤ w i
hw₁ : ∑ i in t, w i = 1
hz : ∀ (i : ι), i ∈ t → z i ∈ s
⊢ ↑(Finset.image z t) ⊆ s

tactic: exact hz
state_before: case refine'_1.intro.intro.intro.intro.intro.intro.intro.refine'_1
R : Type u_2
E : Type u_1
F : Type ?u.239379
ι✝ : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι✝
c : R
t✝ : Finset ι✝
w✝ : ι✝ → R
z✝ : ι✝ → E
s : Set E
ι : Type u_1
t : Finset ι
w : ι → R
z : ι → E
hw₀ : ∀ (i : ι), i ∈ t → 0 ≤ w i
hw₁ : ∑ i in t, w i = 1
hz : ∀ (i : ι), i ∈ t → z i ∈ s
⊢ ↑t ⊆ z ⁻¹' s

tactic: apply t.centerMass_mem_convexHull hw₀
state_before: case refine'_1.intro.intro.intro.intro.intro.intro.intro.refine'_2
R : Type u_2
E : Type u_1
F : Type ?u.239379
ι✝ : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι✝
c : R
t✝ : Finset ι✝
w✝ : ι✝ → R
z✝ : ι✝ → E
s : Set E
ι : Type u_1
t : Finset ι
w : ι → R
z : ι → E
hw₀ : ∀ (i : ι), i ∈ t → 0 ≤ w i
hw₁ : ∑ i in t, w i = 1
hz : ∀ (i : ι), i ∈ t → z i ∈ s
⊢ centerMass t w z ∈ ↑(convexHull R).toOrderHom ↑(Finset.image z t)

tactic: simp only [hw₁, zero_lt_one]
state_before: case refine'_1.intro.intro.intro.intro.intro.intro.intro.refine'_2.hws
R : Type u_2
E : Type u_1
F : Type ?u.239379
ι✝ : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι✝
c : R
t✝ : Finset ι✝
w✝ : ι✝ → R
z✝ : ι✝ → E
s : Set E
ι : Type u_1
t : Finset ι
w : ι → R
z : ι → E
hw₀ : ∀ (i : ι), i ∈ t → 0 ≤ w i
hw₁ : ∑ i in t, w i = 1
hz : ∀ (i : ι), i ∈ t → z i ∈ s
⊢ 0 < ∑ i in t, w i

tactic: exact fun i hi => Finset.mem_coe.2 (Finset.mem_image_of_mem _ hi)
state_before: case refine'_1.intro.intro.intro.intro.intro.intro.intro.refine'_2.hz
R : Type u_2
E : Type u_1
F : Type ?u.239379
ι✝ : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι✝
c : R
t✝ : Finset ι✝
w✝ : ι✝ → R
z✝ : ι✝ → E
s : Set E
ι : Type u_1
t : Finset ι
w : ι → R
z : ι → E
hw₀ : ∀ (i : ι), i ∈ t → 0 ≤ w i
hw₁ : ∑ i in t, w i = 1
hz : ∀ (i : ι), i ∈ t → z i ∈ s
⊢ ∀ (i : ι), i ∈ t → z i ∈ ↑(Finset.image z t)

tactic: exact iUnion_subset fun i => iUnion_subset convexHull_mono
state_before: case refine'_2
R : Type u_2
E : Type u_1
F : Type ?u.239379
ι : Type ?u.239382
ι' : Type ?u.239385
α : Type ?u.239388
inst✝⁷ : LinearOrderedField R
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s✝ : Set E
i j : ι
c : R
t : Finset ι
w : ι → R
z : ι → E
s : Set E
⊢ (⋃ (t : Finset E) (_ : ↑t ⊆ s), ↑(convexHull R).toOrderHom ↑t) ⊆ ↑(convexHull R).toOrderHom s