Theorem: Finset.centroid_mem_convexHull
File: Mathlib/Analysis/Convex/Combination.lean

tactic: rw [s.centroid_eq_centerMass hs]
state_before: R : Type u_2
E : Type u_1
F : Type ?u.155024
ι : Type ?u.155027
ι' : Type ?u.155030
α : Type ?u.155033
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 : Finset E
hs : Finset.Nonempty s
⊢ centroid R s id ∈ ↑(convexHull R).toOrderHom ↑s

tactic: apply s.centerMass_id_mem_convexHull
state_before: R : Type u_2
E : Type u_1
F : Type ?u.155024
ι : Type ?u.155027
ι' : Type ?u.155030
α : Type ?u.155033
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 : Finset E
hs : Finset.Nonempty s
⊢ centerMass s (centroidWeights R s) id ∈ ↑(convexHull R).toOrderHom ↑s

tactic: simp only [inv_nonneg, imp_true_iff, Nat.cast_nonneg, Finset.centroidWeights_apply]
state_before: case hw₀
R : Type u_2
E : Type u_1
F : Type ?u.155024
ι : Type ?u.155027
ι' : Type ?u.155030
α : Type ?u.155033
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 : Finset E
hs : Finset.Nonempty s
⊢ ∀ (i : E), i ∈ s → 0 ≤ centroidWeights R s i

tactic: have hs_card : (s.card : R) ≠ 0 := by simp [Finset.nonempty_iff_ne_empty.mp hs]
state_before: case hws
R : Type u_2
E : Type u_1
F : Type ?u.155024
ι : Type ?u.155027
ι' : Type ?u.155030
α : Type ?u.155033
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 : Finset E
hs : Finset.Nonempty s
⊢ 0 < ∑ i in s, centroidWeights R s i

tactic: simp only [hs_card, Finset.sum_const, nsmul_eq_mul, mul_inv_cancel, Ne.def, not_false_iff,
  Finset.centroidWeights_apply, zero_lt_one]
state_before: case hws
R : Type u_2
E : Type u_1
F : Type ?u.155024
ι : Type ?u.155027
ι' : Type ?u.155030
α : Type ?u.155033
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 : Finset E
hs : Finset.Nonempty s
hs_card : ↑(card s) ≠ 0
⊢ 0 < ∑ i in s, centroidWeights R s i

tactic: simp [Finset.nonempty_iff_ne_empty.mp hs]
state_before: R : Type u_2
E : Type u_1
F : Type ?u.155024
ι : Type ?u.155027
ι' : Type ?u.155030
α : Type ?u.155033
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 : Finset E
hs : Finset.Nonempty s
⊢ ↑(card s) ≠ 0