Theorem: Set.Finite.convexHull_eq_image
File: Mathlib/Analysis/Convex/Combination.lean

tactic: rw [← @convexHull_basis_eq_stdSimplex _ _ _ hs.fintype, ← LinearMap.convexHull_image,
  ← Set.range_comp]
state_before: R : Type u_2
E : Type u_1
F : Type ?u.439502
ι : Type ?u.439505
ι' : Type ?u.439508
α : Type ?u.439511
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
inst✝ : Fintype ι
f : ι → R
s : Set E
hs : Set.Finite s
⊢ ↑(convexHull R).toOrderHom s = ↑(∑ x : ↑s, LinearMap.smulRight (LinearMap.proj x) ↑x) '' stdSimplex R ↑s

tactic: simp_rw [Function.comp]
state_before: R : Type u_2
E : Type u_1
F : Type ?u.439502
ι : Type ?u.439505
ι' : Type ?u.439508
α : Type ?u.439511
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
inst✝ : Fintype ι
f : ι → R
s : Set E
hs : Set.Finite s
⊢ ↑(convexHull R).toOrderHom s =
    ↑(convexHull R).toOrderHom
      (range (↑(∑ x : ↑s, LinearMap.smulRight (LinearMap.proj x) ↑x) ∘ fun i j => if i = j then 1 else 0))

tactic: apply congr_arg
state_before: R : Type u_2
E : Type u_1
F : Type ?u.439502
ι : Type ?u.439505
ι' : Type ?u.439508
α : Type ?u.439511
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
inst✝ : Fintype ι
f : ι → R
s : Set E
hs : Set.Finite s
⊢ ↑(convexHull R).toOrderHom s =
    ↑(convexHull R).toOrderHom
      (range fun x => ↑(∑ x : ↑s, LinearMap.smulRight (LinearMap.proj x) ↑x) fun j => if x = j then 1 else 0)

tactic: convert Subtype.range_coe.symm
state_before: case h
R : Type u_2
E : Type u_1
F : Type ?u.439502
ι : Type ?u.439505
ι' : Type ?u.439508
α : Type ?u.439511
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
inst✝ : Fintype ι
f : ι → R
s : Set E
hs : Set.Finite s
⊢ s = range fun x => ↑(∑ x : ↑s, LinearMap.smulRight (LinearMap.proj x) ↑x) fun j => if x = j then 1 else 0

tactic: simp [LinearMap.sum_apply, ite_smul _ (1 : R), Finset.filter_eq,
  @Finset.mem_univ _ hs.fintype _]
state_before: case h.e'_3.h.e'_3.h
R : Type u_2
E : Type u_1
F : Type ?u.439502
ι : Type ?u.439505
ι' : Type ?u.439508
α : Type ?u.439511
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
inst✝ : Fintype ι
f : ι → R
s : Set E
hs : Set.Finite s
x✝ : ↑s
⊢ (↑(∑ x : ↑s, LinearMap.smulRight (LinearMap.proj x) ↑x) fun j => if x✝ = j then 1 else 0) = ↑x✝