Theorem: eq_affineCombination_of_mem_affineSpan_of_fintype
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: classical
  obtain ⟨s, w, hw, rfl⟩ := eq_affineCombination_of_mem_affineSpan h
  refine
    ⟨(s : Set ι).indicator w, ?_, Finset.affineCombination_indicator_subset w p s.subset_univ⟩
  simp only [Finset.mem_coe, Set.indicator_apply, ← hw]
  rw [Fintype.sum_extend_by_zero s w]
state_before: ι : Type u_1
k : Type u_2
V : Type u_3
P : Type u_4
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : Fintype ι
p1 : P
p : ι → P
h : p1 ∈ affineSpan k (Set.range p)
⊢ ∃ w, ∑ i : ι, w i = 1 ∧ p1 = (Finset.affineCombination k Finset.univ p) w
state_after: no goals

tactic: obtain ⟨s, w, hw, rfl⟩ := eq_affineCombination_of_mem_affineSpan h
state_before: ι : Type u_1
k : Type u_2
V : Type u_3
P : Type u_4
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : Fintype ι
p1 : P
p : ι → P
h : p1 ∈ affineSpan k (Set.range p)
⊢ ∃ w, ∑ i : ι, w i = 1 ∧ p1 = (Finset.affineCombination k Finset.univ p) w
state_after: case intro.intro.intro
ι : Type u_1
k : Type u_2
V : Type u_3
P : Type u_4
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : Fintype ι
p : ι → P
s : Finset ι
w : ι → k
hw : ∑ i ∈ s, w i = 1
h : (Finset.affineCombination k s p) w ∈ affineSpan k (Set.range p)
⊢ ∃ w_1, ∑ i : ι, w_1 i = 1 ∧ (Finset.affineCombination k s p) w = (Finset.affineCombination k Finset.univ p) w_1

tactic: refine
  ⟨(s : Set ι).indicator w, ?_, Finset.affineCombination_indicator_subset w p s.subset_univ⟩
state_before: case intro.intro.intro
ι : Type u_1
k : Type u_2
V : Type u_3
P : Type u_4
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : Fintype ι
p : ι → P
s : Finset ι
w : ι → k
hw : ∑ i ∈ s, w i = 1
h : (Finset.affineCombination k s p) w ∈ affineSpan k (Set.range p)
⊢ ∃ w_1, ∑ i : ι, w_1 i = 1 ∧ (Finset.affineCombination k s p) w = (Finset.affineCombination k Finset.univ p) w_1
state_after: case intro.intro.intro
ι : Type u_1
k : Type u_2
V : Type u_3
P : Type u_4
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : Fintype ι
p : ι → P
s : Finset ι
w : ι → k
hw : ∑ i ∈ s, w i = 1
h : (Finset.affineCombination k s p) w ∈ affineSpan k (Set.range p)
⊢ ∑ i : ι, (↑s).indicator w i = 1

tactic: simp only [Finset.mem_coe, Set.indicator_apply, ← hw]
state_before: case intro.intro.intro
ι : Type u_1
k : Type u_2
V : Type u_3
P : Type u_4
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : Fintype ι
p : ι → P
s : Finset ι
w : ι → k
hw : ∑ i ∈ s, w i = 1
h : (Finset.affineCombination k s p) w ∈ affineSpan k (Set.range p)
⊢ ∑ i : ι, (↑s).indicator w i = 1
state_after: case intro.intro.intro
ι : Type u_1
k : Type u_2
V : Type u_3
P : Type u_4
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : Fintype ι
p : ι → P
s : Finset ι
w : ι → k
hw : ∑ i ∈ s, w i = 1
h : (Finset.affineCombination k s p) w ∈ affineSpan k (Set.range p)
⊢ (∑ x : ι, if x ∈ s then w x else 0) = ∑ i ∈ s, w i

tactic: rw [Fintype.sum_extend_by_zero s w]
state_before: case intro.intro.intro
ι : Type u_1
k : Type u_2
V : Type u_3
P : Type u_4
inst✝⁴ : Ring k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : Fintype ι
p : ι → P
s : Finset ι
w : ι → k
hw : ∑ i ∈ s, w i = 1
h : (Finset.affineCombination k s p) w ∈ affineSpan k (Set.range p)
⊢ (∑ x : ι, if x ∈ s then w x else 0) = ∑ i ∈ s, w i
state_after: no goals