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

tactic: rw [_root_.convexHull_eq] at hx hy ⊢
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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) s
hy : y ∈ (convexHull R) t
⊢ (x, y) ∈ (convexHull R) (s ×ˢ t)
state_after: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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, (∀ i ∈ t, 0 ≤ w i) ∧ ∑ i ∈ t, w i = 1 ∧ (∀ i ∈ t, z i ∈ s) ∧ t.centerMass w z = x}
hy : y ∈ {x | ∃ ι t_1 w z, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ t) ∧ t_1.centerMass w z = x}
⊢ (x, y) ∈
    {x | ∃ ι t_1 w z, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ s ×ˢ t) ∧ t_1.centerMass w z = x}

tactic: obtain ⟨ι, a, w, S, hw, hw', hS, hSp⟩ := hx
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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, (∀ i ∈ t, 0 ≤ w i) ∧ ∑ i ∈ t, w i = 1 ∧ (∀ i ∈ t, z i ∈ s) ∧ t.centerMass w z = x}
hy : y ∈ {x | ∃ ι t_1 w z, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ t) ∧ t_1.centerMass w z = x}
⊢ (x, y) ∈
    {x | ∃ ι t_1 w z, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ s ×ˢ t) ∧ t_1.centerMass w z = x}
state_after: case intro.intro.intro.intro.intro.intro.intro
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ t) ∧ t_1.centerMass w z = x}
ι : Type
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
⊢ (x, y) ∈
    {x | ∃ ι t_1 w z, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ s ×ˢ t) ∧ t_1.centerMass w z = x}

tactic: obtain ⟨κ, b, v, T, hv, hv', hT, hTp⟩ := hy
state_before: case intro.intro.intro.intro.intro.intro.intro
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ t) ∧ t_1.centerMass w z = x}
ι : Type
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
⊢ (x, y) ∈
    {x | ∃ ι t_1 w z, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ s ×ˢ t) ∧ t_1.centerMass w z = x}
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
⊢ (x, y) ∈
    {x | ∃ ι t_1 w z, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ s ×ˢ t) ∧ t_1.centerMass w z = x}

tactic: have h_sum : ∑ i ∈ a ×ˢ b, w i.fst * v i.snd = 1 := by
  rw [Finset.sum_product, ← hw']
  congr
  ext i
  have : ∑ y ∈ b, w i * v y = ∑ y ∈ 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_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
⊢ (x, y) ∈
    {x | ∃ ι t_1 w z, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ s ×ˢ t) ∧ t_1.centerMass w z = x}
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ (x, y) ∈
    {x | ∃ ι t_1 w z, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ s ×ˢ t) ∧ t_1.centerMass 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_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ (x, y) ∈
    {x | ∃ ι t_1 w z, (∀ i ∈ t_1, 0 ≤ w i) ∧ ∑ i ∈ t_1, w i = 1 ∧ (∀ i ∈ t_1, z i ∈ s ×ˢ t) ∧ t_1.centerMass w z = x}
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_1
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
p : ι × κ
hp : p ∈ a ×ˢ b
⊢ 0 ≤ (fun p => w p.1 * v p.2) p

case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_2
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
p : ι × κ
hp : p ∈ a ×ˢ b
⊢ (fun p => (S p.1, T p.2)) p ∈ s ×ˢ t

case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ((a ×ˢ b).centerMass (fun p => w p.1 * v p.2) fun p => (S p.1, T p.2)) = (x, y)

tactic: ext
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ((a ×ˢ b).centerMass (fun p => w p.1 * v p.2) fun p => (S p.1, T p.2)) = (x, y)
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ((a ×ˢ b).centerMass (fun p => w p.1 * v p.2) fun p => (S p.1, T p.2)).1 = (x, y).1

case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ((a ×ˢ b).centerMass (fun p => w p.1 * v p.2) fun p => (S p.1, T p.2)).2 = (x, y).2

tactic: rw [Finset.sum_product, ← hw']
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
⊢ ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
state_after: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
⊢ ∑ x ∈ a, ∑ y ∈ b, w (x, y).1 * v (x, y).2 = ∑ i ∈ a, w i

tactic: congr
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
⊢ ∑ x ∈ a, ∑ y ∈ b, w (x, y).1 * v (x, y).2 = ∑ i ∈ a, w i
state_after: case e_f
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
⊢ (fun x => ∑ y ∈ b, w (x, y).1 * v (x, y).2) = fun i => w i

tactic: ext i
state_before: case e_f
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
⊢ (fun x => ∑ y ∈ b, w (x, y).1 * v (x, y).2) = fun i => w i
state_after: case e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
⊢ ∑ y ∈ b, w (i, y).1 * v (i, y).2 = w i

tactic: have : ∑ y ∈ b, w i * v y = ∑ y ∈ b, v y * w i := by
  congr
  ext
  simp [mul_comm]
state_before: case e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
⊢ ∑ y ∈ b, w (i, y).1 * v (i, y).2 = w i
state_after: case e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
this : ∑ y ∈ b, w i * v y = ∑ y ∈ b, v y * w i
⊢ ∑ y ∈ b, w (i, y).1 * v (i, y).2 = w i

tactic: rw [this, ← Finset.sum_mul, hv']
state_before: case e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
this : ∑ y ∈ b, w i * v y = ∑ y ∈ b, v y * w i
⊢ ∑ y ∈ b, w (i, y).1 * v (i, y).2 = w i
state_after: case e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
this : ∑ y ∈ b, w i * v y = ∑ y ∈ b, v y * w i
⊢ 1 * w i = w i

tactic: simp
state_before: case e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
this : ∑ y ∈ b, w i * v y = ∑ y ∈ b, v y * w i
⊢ 1 * w i = w i
state_after: no goals

tactic: congr
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
⊢ ∑ y ∈ b, w i * v y = ∑ y ∈ b, v y * w i
state_after: case e_f
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
⊢ (fun y => w i * v y) = fun y => v y * w i

tactic: ext
state_before: case e_f
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
⊢ (fun y => w i * v y) = fun y => v y * w i
state_after: case e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
x✝ : κ
⊢ w i * v x✝ = v x✝ * w i

tactic: simp [mul_comm]
state_before: case e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
i : ι
x✝ : κ
⊢ w i * v x✝ = v x✝ * w i
state_after: no goals

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_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
p : ι × κ
hp : p ∈ a ×ˢ b
⊢ 0 ≤ (fun p => w p.1 * v p.2) p
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_1
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
p : ι × κ
hp : p.1 ∈ a ∧ p.2 ∈ b
⊢ 0 ≤ (fun p => w p.1 * v p.2) 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_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
p : ι × κ
hp : p.1 ∈ a ∧ p.2 ∈ b
⊢ 0 ≤ (fun p => w p.1 * v p.2) p
state_after: no goals

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_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
p : ι × κ
hp : p ∈ a ×ˢ b
⊢ (fun p => (S p.1, T p.2)) p ∈ s ×ˢ t
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_2
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
p : ι × κ
hp : p.1 ∈ a ∧ p.2 ∈ b
⊢ (fun p => (S p.1, T p.2)) 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_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
p : ι × κ
hp : p.1 ∈ a ∧ p.2 ∈ b
⊢ (fun p => (S p.1, T p.2)) p ∈ s ×ˢ t
state_after: no goals

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.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ((a ×ˢ b).centerMass (fun p => w p.1 * v p.2) fun p => (S p.1, T p.2)).1 = (x, y).1
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ (∑ i ∈ a ×ˢ b, (w i.1 * v i.2) • (S i.1, T i.2)).1 = (∑ i ∈ a, w i • S i, y).1

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.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ (∑ i ∈ a ×ˢ b, (w i.1 * v i.2) • (S i.1, T i.2)).1 = (∑ i ∈ a, w i • S i, y).1
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ∑ x ∈ a ×ˢ b, (w x.1 * v x.2) • S x.1 = ∑ i ∈ a, w i • S i

tactic: rw [Finset.sum_product]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ∑ x ∈ a ×ˢ b, (w x.1 * v x.2) • S x.1 = ∑ i ∈ a, w i • S i
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ∑ x ∈ a, ∑ y ∈ b, (w (x, y).1 * v (x, y).2) • S (x, y).1 = ∑ i ∈ 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.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ∑ x ∈ a, ∑ y ∈ b, (w (x, y).1 * v (x, y).2) • S (x, y).1 = ∑ i ∈ a, w i • S i
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a.e_f
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ (fun x => ∑ y ∈ b, (w (x, y).1 * v (x, y).2) • S (x, y).1) = fun i => 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.a.e_f
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ (fun x => ∑ y ∈ b, (w (x, y).1 * v (x, y).2) • S (x, y).1) = fun i => w i • S i
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a.e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
i : ι
⊢ ∑ y ∈ b, (w (i, y).1 * v (i, y).2) • S (i, y).1 = w i • S i

tactic: have : (∑ j ∈ b, (w i * v j) • S i) = ∑ j ∈ 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.a.e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
i : ι
⊢ ∑ y ∈ b, (w (i, y).1 * v (i, y).2) • S (i, y).1 = w i • S i
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a.e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
i : ι
this : ∑ j ∈ b, (w i * v j) • S i = ∑ j ∈ b, v j • w i • S i
⊢ ∑ y ∈ b, (w (i, y).1 * v (i, y).2) • S (i, y).1 = 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.a.e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
i : ι
this : ∑ j ∈ b, (w i * v j) • S i = ∑ j ∈ b, v j • w i • S i
⊢ ∑ y ∈ b, (w (i, y).1 * v (i, y).2) • S (i, y).1 = w i • S i
state_after: no goals

tactic: congr
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
i : ι
⊢ ∑ j ∈ b, (w i * v j) • S i = ∑ j ∈ b, v j • w i • S i
state_after: case e_f
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
i : ι
⊢ (fun j => (w i * v j) • S i) = fun j => v j • w i • S i

tactic: ext
state_before: case e_f
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
i : ι
⊢ (fun j => (w i * v j) • S i) = fun j => v j • w i • S i
state_after: case e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
i : ι
x✝ : κ
⊢ (w i * v x✝) • S i = v x✝ • w i • S i

tactic: rw [mul_smul, smul_comm]
state_before: case e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
i : ι
x✝ : κ
⊢ (w i * v x✝) • S i = v x✝ • w i • S i
state_after: no goals

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.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ((a ×ˢ b).centerMass (fun p => w p.1 * v p.2) fun p => (S p.1, T p.2)).2 = (x, y).2
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ (∑ i ∈ a ×ˢ b, (w i.1 * v i.2) • (S i.1, T i.2)).2 = (x, ∑ i ∈ b, v i • T i).2

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.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ (∑ i ∈ a ×ˢ b, (w i.1 * v i.2) • (S i.1, T i.2)).2 = (x, ∑ i ∈ b, v i • T i).2
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ∑ x ∈ a ×ˢ b, (w x.1 * v x.2) • T x.2 = ∑ i ∈ b, v i • T i

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.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ∑ x ∈ a ×ˢ b, (w x.1 * v x.2) • T x.2 = ∑ i ∈ b, v i • T i
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ∑ y ∈ b, ∑ x ∈ a, (w (x, y).1 * v (x, y).2) • T (x, y).2 = ∑ i ∈ 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.a
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ ∑ y ∈ b, ∑ x ∈ a, (w (x, y).1 * v (x, y).2) • T (x, y).2 = ∑ i ∈ b, v i • T i
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a.e_f
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ (fun y => ∑ x ∈ a, (w (x, y).1 * v (x, y).2) • T (x, y).2) = fun i => 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.a.e_f
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
⊢ (fun y => ∑ x ∈ a, (w (x, y).1 * v (x, y).2) • T (x, y).2) = fun i => v i • T i
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a.e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
j : κ
⊢ ∑ x ∈ a, (w (x, j).1 * v (x, j).2) • T (x, j).2 = v j • T j

tactic: simp_rw [mul_smul]
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a.e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
j : κ
⊢ ∑ x ∈ a, (w (x, j).1 * v (x, j).2) • T (x, j).2 = v j • T j
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_3.a.e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
j : κ
⊢ ∑ x ∈ a, w x • v j • T j = 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.a.e_f.h
R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι✝ : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
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
a : Finset ι
w : ι → R
S : ι → E
hw : ∀ i ∈ a, 0 ≤ w i
hw' : ∑ i ∈ a, w i = 1
hS : ∀ i ∈ a, S i ∈ s
hSp : a.centerMass w S = x
κ : Type
b : Finset κ
v : κ → R
T : κ → F
hv : ∀ i ∈ b, 0 ≤ v i
hv' : ∑ i ∈ b, v i = 1
hT : ∀ i ∈ b, T i ∈ t
hTp : b.centerMass v T = y
h_sum : ∑ i ∈ a ×ˢ b, w i.1 * v i.2 = 1
j : κ
⊢ ∑ x ∈ a, w x • v j • T j = v j • T j
state_after: no goals