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

tactic: rw [_root_.convexHull_eq] at hx hy ⊢
state_before: R : Type u_3
E : Type u_2
F : Type u_1
ι : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
hx : x ∈ ↑(convexHull R).toOrderHom s
hy : y ∈ ↑(convexHull R).toOrderHom t
⊢ (x, y) ∈ ↑(convexHull R).toOrderHom (s ×ˢ t)

tactic: obtain ⟨ι : Type u_1, a, w, S, hw, hw', hS, hSp⟩ := hx
state_before: R : Type u_3
E : Type u_2
F : Type u_1
ι : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
hx : x ∈ {x | ∃ ι t w z x_1 x_2 x_3, centerMass t w z = x}
hy : y ∈ {x | ∃ ι t_1 w z x_1 x_2 x_3, centerMass t_1 w z = x}
⊢ (x, y) ∈ {x | ∃ ι t_1 w z x_1 x_2 x_3, centerMass t_1 w z = x}

tactic: obtain ⟨κ : Type u_1, b, v, T, hv, hv', hT, hTp⟩ := hy
state_before: case intro.intro.intro.intro.intro.intro.intro
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
hy : y ∈ {x | ∃ ι t_1 w z x_1 x_2 x_3, centerMass t_1 w z = x}
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
⊢ (x, y) ∈ {x | ∃ ι t_1 w z x_1 x_2 x_3, centerMass t_1 w z = x}

tactic: have h_sum : (∑ i : ι × κ in a ×ˢ b, w i.fst * v i.snd) = 1 := by
  rw [Finset.sum_product, ← hw']
  congr
  ext i
  have : (∑ y : κ in b, w i * v y) = ∑ y : κ in b, v y * w i := by
    congr
    ext
    simp [mul_comm]
  rw [this, ← Finset.sum_mul, hv']
  simp
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
⊢ (x, y) ∈ {x | ∃ ι t_1 w z x_1 x_2 x_3, centerMass t_1 w z = x}

tactic: refine'
  ⟨ι × κ, a ×ˢ b, fun p => w p.1 * v p.2, fun p => (S p.1, T p.2), fun p hp => _, h_sum,
    fun p hp => _, _⟩
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ (x, y) ∈ {x | ∃ ι t_1 w z x_1 x_2 x_3, centerMass t_1 w z = x}

tactic: ext
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ (centerMass (a ×ˢ b) (fun p => w p.fst * v p.snd) fun p => (S p.fst, T p.snd)) = (x, y)

tactic: rw [Finset.sum_product, ← hw']
state_before: R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
⊢ ∑ i in a ×ˢ b, w i.fst * v i.snd = 1

tactic: congr
state_before: R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
⊢ ∑ x in a, ∑ y in b, w (x, y).fst * v (x, y).snd = ∑ i in a, w i

tactic: ext i
state_before: case e_f
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
⊢ (fun x => ∑ y in b, w (x, y).fst * v (x, y).snd) = fun i => w i

tactic: have : (∑ y : κ in b, w i * v y) = ∑ y : κ in b, v y * w i := by
  congr
  ext
  simp [mul_comm]
state_before: case e_f.h
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
i : ι
⊢ ∑ y in b, w (i, y).fst * v (i, y).snd = w i

tactic: rw [this, ← Finset.sum_mul, hv']
state_before: case e_f.h
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
i : ι
this : ∑ y in b, w i * v y = ∑ y in b, v y * w i
⊢ ∑ y in b, w (i, y).fst * v (i, y).snd = w i

tactic: simp
state_before: case e_f.h
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
i : ι
this : ∑ y in b, w i * v y = ∑ y in b, v y * w i
⊢ 1 * w i = w i

tactic: congr
state_before: R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
i : ι
⊢ ∑ y in b, w i * v y = ∑ y in b, v y * w i

tactic: ext
state_before: case e_f
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
i : ι
⊢ (fun y => w i * v y) = fun y => v y * w i

tactic: simp [mul_comm]
state_before: case e_f.h
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
i : ι
x✝ : κ
⊢ w i * v x✝ = v x✝ * w i

tactic: rw [mem_product] at hp
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_1
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
p : ι × κ
hp : p ∈ a ×ˢ b
⊢ 0 ≤ (fun p => w p.fst * v p.snd) p

tactic: exact mul_nonneg (hw p.1 hp.1) (hv p.2 hp.2)
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_1
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
p : ι × κ
hp : p.fst ∈ a ∧ p.snd ∈ b
⊢ 0 ≤ (fun p => w p.fst * v p.snd) p

tactic: rw [mem_product] at hp
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_2
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
p : ι × κ
hp : p ∈ a ×ˢ b
⊢ (fun p => (S p.fst, T p.snd)) p ∈ s ×ˢ t

tactic: exact ⟨hS p.1 hp.1, hT p.2 hp.2⟩
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_2
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
p : ι × κ
hp : p.fst ∈ a ∧ p.snd ∈ b
⊢ (fun p => (S p.fst, T p.snd)) p ∈ s ×ˢ t

tactic: rw [← hSp, Finset.centerMass_eq_of_sum_1 _ _ hw', Finset.centerMass_eq_of_sum_1 _ _ h_sum]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₁
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ (centerMass (a ×ˢ b) (fun p => w p.fst * v p.snd) fun p => (S p.fst, T p.snd)).fst = (x, y).fst

tactic: simp_rw [Prod.fst_sum, Prod.smul_mk]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₁
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ (∑ i in a ×ˢ b, (w i.fst * v i.snd) • (S i.fst, T i.snd)).fst = (∑ i in a, w i • S i, y).fst

tactic: rw [Finset.sum_product]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₁
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ ∑ x in a ×ˢ b, (w x.fst * v x.snd) • S x.fst = ∑ i in a, w i • S i

tactic: congr
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₁
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ ∑ x in a, ∑ y in b, (w (x, y).fst * v (x, y).snd) • S (x, y).fst = ∑ i in a, w i • S i

tactic: ext i
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₁.e_f
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ (fun x => ∑ y in b, (w (x, y).fst * v (x, y).snd) • S (x, y).fst) = fun i => w i • S i

tactic: have : (∑ j : κ in b, (w i * v j) • S i) = ∑ j : κ in b, v j • w i • S i := by
  congr
  ext
  rw [mul_smul, smul_comm]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₁.e_f.h
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
i : ι
⊢ ∑ y in b, (w (i, y).fst * v (i, y).snd) • S (i, y).fst = w i • S i

tactic: rw [this, ← Finset.sum_smul, hv', one_smul]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₁.e_f.h
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
i : ι
this : ∑ j in b, (w i * v j) • S i = ∑ j in b, v j • w i • S i
⊢ ∑ y in b, (w (i, y).fst * v (i, y).snd) • S (i, y).fst = w i • S i

tactic: congr
state_before: R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
i : ι
⊢ ∑ j in b, (w i * v j) • S i = ∑ j in b, v j • w i • S i

tactic: ext
state_before: case e_f
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
i : ι
⊢ (fun j => (w i * v j) • S i) = fun j => v j • w i • S i

tactic: rw [mul_smul, smul_comm]
state_before: case e_f.h
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
i : ι
x✝ : κ
⊢ (w i * v x✝) • S i = v x✝ • w i • S i

tactic: rw [← hTp, Finset.centerMass_eq_of_sum_1 _ _ hv', Finset.centerMass_eq_of_sum_1 _ _ h_sum]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₂
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ (centerMass (a ×ˢ b) (fun p => w p.fst * v p.snd) fun p => (S p.fst, T p.snd)).snd = (x, y).snd

tactic: simp_rw [Prod.snd_sum, Prod.smul_mk]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₂
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ (∑ i in a ×ˢ b, (w i.fst * v i.snd) • (S i.fst, T i.snd)).snd = (x, ∑ i in b, v i • T i).snd

tactic: rw [Finset.sum_product, Finset.sum_comm]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₂
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ ∑ x in a ×ˢ b, (w x.fst * v x.snd) • T x.snd = ∑ i in b, v i • T i

tactic: congr
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₂
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ ∑ y in b, ∑ x in a, (w (x, y).fst * v (x, y).snd) • T (x, y).snd = ∑ i in b, v i • T i

tactic: ext j
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₂.e_f
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
⊢ (fun y => ∑ x in a, (w (x, y).fst * v (x, y).snd) • T (x, y).snd) = fun i => v i • T i

tactic: simp_rw [mul_smul]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₂.e_f.h
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
j : κ
⊢ ∑ x in a, (w (x, j).fst * v (x, j).snd) • T (x, j).snd = v j • T j

tactic: rw [← Finset.sum_smul, hw', one_smul]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine'_3.h₂.e_f.h
R : Type u_3
E : Type u_2
F : Type u_1
ι✝ : Type ?u.246500
ι' : Type ?u.246503
α : Type ?u.246506
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
t : Set F
x : E
y : F
ι : Type u_1
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ (i : ι), i ∈ a → 0 ≤ w i
hw' : ∑ i in a, w i = 1
hS : ∀ (i : ι), i ∈ a → S i ∈ s
hSp : centerMass a w S = x
κ : Type u_1
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ (i : κ), i ∈ b → 0 ≤ v i
hv' : ∑ i in b, v i = 1
hT : ∀ (i : κ), i ∈ b → T i ∈ t
hTp : centerMass b v T = y
h_sum : ∑ i in a ×ˢ b, w i.fst * v i.snd = 1
j : κ
⊢ ∑ x in a, w x • v j • T j = v j • T j