l3lab/ntp-mathlib huggingface dataset:
theorem LinearIndependent.group_smul {G : Type*} [hG : Group G] [DistribMulAction G R]
    [DistribMulAction G M] [IsScalarTower G R M] [SMulCommClass G R M] {v : ι → M}
    (hv : LinearIndependent R v) (w : ι → G) : LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  intro s g hgs hsum i
  refine' (smul_eq_zero_iff_eq (w i)).1 _
  refine' hv s (fun i => w i • g i) (fun i hi => _) _ i
  · dsimp only
    exact (hgs i hi).symm ▸ smul_zero _
  · rw [← hsum, Finset.sum_congr rfl _]
    

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝¹⁰ : Ring R
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup M'
inst✝⁷ : AddCommGroup M''
inst✝⁶ : Module R M
inst✝⁵ : Module R M'
inst✝⁴ : Module R M''
a b : R
x y : M
G : Type u_8
hG : Group G
inst✝³ : DistribMulAction G R
inst✝² : DistribMulAction G M
inst✝¹ : IsScalarTower G R M
inst✝ : SMulCommClass G R M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → G
s : Finset ι
g : ι → R
hgs : ∀ i ∉ s, g i = 0
hsum : ∑ i in s, g i • (w • v) i = 0
i : ι
⊢ ∀ x ∈ s, (fun i => w i • g i) x • v x = g x • (w • v) x

Next tactic:
intros
theorem LinearIndependent.group_smul {G : Type*} [hG : Group G] [DistribMulAction G R]
    [DistribMulAction G M] [IsScalarTower G R M] [SMulCommClass G R M] {v : ι → M}
    (hv : LinearIndependent R v) (w : ι → G) : LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  intro s g hgs hsum i
  refine' (smul_eq_zero_iff_eq (w i)).1 _
  refine' hv s (fun i => w i • g i) (fun i hi => _) _ i
  · dsimp only
    exact (hgs i hi).symm ▸ smul_zero _
  · rw [← hsum, Finset.sum_congr rfl _]
    intros
    

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝¹⁰ : Ring R
inst✝⁹ : AddCommGroup M
inst✝⁸ : AddCommGroup M'
inst✝⁷ : AddCommGroup M''
inst✝⁶ : Module R M
inst✝⁵ : Module R M'
inst✝⁴ : Module R M''
a b : R
x y : M
G : Type u_8
hG : Group G
inst✝³ : DistribMulAction G R
inst✝² : DistribMulAction G M
inst✝¹ : IsScalarTower G R M
inst✝ : SMulCommClass G R M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → G
s : Finset ι
g : ι → R
hgs : ∀ i ∉ s, g i = 0
hsum : ∑ i in s, g i • (w • v) i = 0
i x✝ : ι
a✝ : x✝ ∈ s
⊢ (fun i => w i • g i) x✝ • v x✝ = g x✝ • (w • v) x✝

Next tactic:
erw [Pi.smul_apply, smul_assoc, smul_comm]
theorem LinearIndependent.units_smul {v : ι → M} (hv : LinearIndependent R v) (w : ι → Rˣ) :
    LinearIndependent R (w • v) := by
  

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
v : ι → M
hv : LinearIndependent R v
w : ι → Rˣ
⊢ LinearIndependent R (w • v)

Next tactic:
rw [linearIndependent_iff''] at hv ⊢
theorem LinearIndependent.units_smul {v : ι → M} (hv : LinearIndependent R v) (w : ι → Rˣ) :
    LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → Rˣ
⊢ ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • (w • v) i = 0 → ∀ (i : ι), g i = 0

Next tactic:
intro s g hgs hsum i
theorem LinearIndependent.units_smul {v : ι → M} (hv : LinearIndependent R v) (w : ι → Rˣ) :
    LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  intro s g hgs hsum i
  

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → Rˣ
s : Finset ι
g : ι → R
hgs : ∀ i ∉ s, g i = 0
hsum : ∑ i in s, g i • (w • v) i = 0
i : ι
⊢ g i = 0

Next tactic:
rw [← (w i).mul_left_eq_zero]
theorem LinearIndependent.units_smul {v : ι → M} (hv : LinearIndependent R v) (w : ι → Rˣ) :
    LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  intro s g hgs hsum i
  rw [← (w i).mul_left_eq_zero]
  

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → Rˣ
s : Finset ι
g : ι → R
hgs : ∀ i ∉ s, g i = 0
hsum : ∑ i in s, g i • (w • v) i = 0
i : ι
⊢ g i * ↑(w i) = 0

Next tactic:
refine' hv s (fun i => g i • (w i : R)) (fun i hi => _) _ i
theorem LinearIndependent.units_smul {v : ι → M} (hv : LinearIndependent R v) (w : ι → Rˣ) :
    LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  intro s g hgs hsum i
  rw [← (w i).mul_left_eq_zero]
  refine' hv s (fun i => g i • (w i : R)) (fun i hi => _) _ i
  · 

Proof state:
case refine'_1
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → Rˣ
s : Finset ι
g : ι → R
hgs : ∀ i ∉ s, g i = 0
hsum : ∑ i in s, g i • (w • v) i = 0
i✝ i : ι
hi : i ∉ s
⊢ (fun i => g i • ↑(w i)) i = 0

Next tactic:
dsimp only
theorem LinearIndependent.units_smul {v : ι → M} (hv : LinearIndependent R v) (w : ι → Rˣ) :
    LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  intro s g hgs hsum i
  rw [← (w i).mul_left_eq_zero]
  refine' hv s (fun i => g i • (w i : R)) (fun i hi => _) _ i
  · dsimp only
    

Proof state:
case refine'_1
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → Rˣ
s : Finset ι
g : ι → R
hgs : ∀ i ∉ s, g i = 0
hsum : ∑ i in s, g i • (w • v) i = 0
i✝ i : ι
hi : i ∉ s
⊢ g i • ↑(w i) = 0

Next tactic:
exact (hgs i hi).symm ▸ zero_smul _ _
theorem LinearIndependent.units_smul {v : ι → M} (hv : LinearIndependent R v) (w : ι → Rˣ) :
    LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  intro s g hgs hsum i
  rw [← (w i).mul_left_eq_zero]
  refine' hv s (fun i => g i • (w i : R)) (fun i hi => _) _ i
  · dsimp only
    exact (hgs i hi).symm ▸ zero_smul _ _
  · 

Proof state:
case refine'_2
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → Rˣ
s : Finset ι
g : ι → R
hgs : ∀ i ∉ s, g i = 0
hsum : ∑ i in s, g i • (w • v) i = 0
i : ι
⊢ ∑ i in s, (fun i => g i • ↑(w i)) i • v i = 0

Next tactic:
rw [← hsum, Finset.sum_congr rfl _]
theorem LinearIndependent.units_smul {v : ι → M} (hv : LinearIndependent R v) (w : ι → Rˣ) :
    LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  intro s g hgs hsum i
  rw [← (w i).mul_left_eq_zero]
  refine' hv s (fun i => g i • (w i : R)) (fun i hi => _) _ i
  · dsimp only
    exact (hgs i hi).symm ▸ zero_smul _ _
  · rw [← hsum, Finset.sum_congr rfl _]
    

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → Rˣ
s : Finset ι
g : ι → R
hgs : ∀ i ∉ s, g i = 0
hsum : ∑ i in s, g i • (w • v) i = 0
i : ι
⊢ ∀ x ∈ s, (fun i => g i • ↑(w i)) x • v x = g x • (w • v) x

Next tactic:
intros
theorem LinearIndependent.units_smul {v : ι → M} (hv : LinearIndependent R v) (w : ι → Rˣ) :
    LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  intro s g hgs hsum i
  rw [← (w i).mul_left_eq_zero]
  refine' hv s (fun i => g i • (w i : R)) (fun i hi => _) _ i
  · dsimp only
    exact (hgs i hi).symm ▸ zero_smul _ _
  · rw [← hsum, Finset.sum_congr rfl _]
    intros
    

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → Rˣ
s : Finset ι
g : ι → R
hgs : ∀ i ∉ s, g i = 0
hsum : ∑ i in s, g i • (w • v) i = 0
i x✝ : ι
a✝ : x✝ ∈ s
⊢ (fun i => g i • ↑(w i)) x✝ • v x✝ = g x✝ • (w • v) x✝

Next tactic:
erw [Pi.smul_apply, smul_assoc]
theorem LinearIndependent.units_smul {v : ι → M} (hv : LinearIndependent R v) (w : ι → Rˣ) :
    LinearIndependent R (w • v) := by
  rw [linearIndependent_iff''] at hv ⊢
  intro s g hgs hsum i
  rw [← (w i).mul_left_eq_zero]
  refine' hv s (fun i => g i • (w i : R)) (fun i hi => _) _ i
  · dsimp only
    exact (hgs i hi).symm ▸ zero_smul _ _
  · rw [← hsum, Finset.sum_congr rfl _]
    intros
    erw [Pi.smul_apply, smul_assoc]
    

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v✝ : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
v : ι → M
hv : ∀ (s : Finset ι) (g : ι → R), (∀ i ∉ s, g i = 0) → ∑ i in s, g i • v i = 0 → ∀ (i : ι), g i = 0
w : ι → Rˣ
s : Finset ι
g : ι → R
hgs : ∀ i ∉ s, g i = 0
hsum : ∑ i in s, g i • (w • v) i = 0
i x✝ : ι
a✝ : x✝ ∈ s
⊢ g x✝ • ↑(w x✝) • v x✝ = g x✝ • w x✝ • v x✝

Next tactic:
rfl
lemma LinearIndependent.eq_of_pair {x y : M} (h : LinearIndependent R ![x, y])
    {s t s' t' : R} (h' : s • x + t • y = s' • x + t' • y) : s = s' ∧ t = t' := by
  

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t s' t' : R
h' : s • x + t • y = s' • x + t' • y
⊢ s = s' ∧ t = t'

Next tactic:
have : (s - s') • x + (t - t') • y = 0 := by
    rw [← sub_eq_zero_of_eq h', ← sub_eq_zero]
    simp only [sub_smul]
    abel
lemma LinearIndependent.eq_of_pair {x y : M} (h : LinearIndependent R ![x, y])
    {s t s' t' : R} (h' : s • x + t • y = s' • x + t' • y) : s = s' ∧ t = t' := by
  have : (s - s') • x + (t - t') • y = 0 := by
    

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t s' t' : R
h' : s • x + t • y = s' • x + t' • y
⊢ (s - s') • x + (t - t') • y = 0

Next tactic:
rw [← sub_eq_zero_of_eq h', ← sub_eq_zero]
lemma LinearIndependent.eq_of_pair {x y : M} (h : LinearIndependent R ![x, y])
    {s t s' t' : R} (h' : s • x + t • y = s' • x + t' • y) : s = s' ∧ t = t' := by
  have : (s - s') • x + (t - t') • y = 0 := by
    rw [← sub_eq_zero_of_eq h', ← sub_eq_zero]
    

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t s' t' : R
h' : s • x + t • y = s' • x + t' • y
⊢ (s - s') • x + (t - t') • y - (s • x + t • y - (s' • x + t' • y)) = 0

Next tactic:
simp only [sub_smul]
lemma LinearIndependent.eq_of_pair {x y : M} (h : LinearIndependent R ![x, y])
    {s t s' t' : R} (h' : s • x + t • y = s' • x + t' • y) : s = s' ∧ t = t' := by
  have : (s - s') • x + (t - t') • y = 0 := by
    rw [← sub_eq_zero_of_eq h', ← sub_eq_zero]
    simp only [sub_smul]
    

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t s' t' : R
h' : s • x + t • y = s' • x + t' • y
⊢ s • x - s' • x + (t • y - t' • y) - (s • x + t • y - (s' • x + t' • y)) = 0

Next tactic:
abel
lemma LinearIndependent.eq_of_pair {x y : M} (h : LinearIndependent R ![x, y])
    {s t s' t' : R} (h' : s • x + t • y = s' • x + t' • y) : s = s' ∧ t = t' := by
  have : (s - s') • x + (t - t') • y = 0 := by
    rw [← sub_eq_zero_of_eq h', ← sub_eq_zero]
    simp only [sub_smul]
    abel
  

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t s' t' : R
h' : s • x + t • y = s' • x + t' • y
this : (s - s') • x + (t - t') • y = 0
⊢ s = s' ∧ t = t'

Next tactic:
simpa [sub_eq_zero] using h.eq_zero_of_pair this
lemma LinearIndependent.eq_zero_of_pair' {x y : M} (h : LinearIndependent R ![x, y])
    {s t : R} (h' : s • x = t • y) : s = 0 ∧ t = 0 := by
  

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t : R
h' : s • x = t • y
⊢ s = 0 ∧ t = 0

Next tactic:
suffices H : s = 0 ∧ 0 = t from ⟨H.1, H.2.symm⟩
lemma LinearIndependent.eq_zero_of_pair' {x y : M} (h : LinearIndependent R ![x, y])
    {s t : R} (h' : s • x = t • y) : s = 0 ∧ t = 0 := by
  suffices H : s = 0 ∧ 0 = t from ⟨H.1, H.2.symm⟩
  

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t : R
h' : s • x = t • y
⊢ s = 0 ∧ 0 = t

Next tactic:
exact h.eq_of_pair (by simpa using h')
lemma LinearIndependent.eq_zero_of_pair' {x y : M} (h : LinearIndependent R ![x, y])
    {s t : R} (h' : s • x = t • y) : s = 0 ∧ t = 0 := by
  suffices H : s = 0 ∧ 0 = t from ⟨H.1, H.2.symm⟩
  exact h.eq_of_pair (by 

Proof state:
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t : R
h' : s • x = t • y
⊢ s • x + 0 • y = 0 • x + t • y

Next tactic:
simpa using h'
/-- If two vectors `x` and `y` are linearly independent, so are their linear combinations
`a x + b y` and `c x + d y` provided the determinant `a * d - b * c` is nonzero. -/
lemma LinearIndependent.linear_combination_pair_of_det_ne_zero {R M : Type*} [CommRing R]
    [NoZeroDivisors R] [AddCommGroup M] [Module R M]
    {x y : M} (h : LinearIndependent R ![x, y])
    {a b c d : R} (h' : a * d - b * c ≠ 0) :
    LinearIndependent R ![a • x + b • y, c • x + d • y] := by
  

Proof state:
ι : Type u'
ι' : Type u_1
R✝ : Type u_2
K : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹⁰ : Ring R✝
inst✝⁹ : AddCommGroup M✝
inst✝⁸ : AddCommGroup M'
inst✝⁷ : AddCommGroup M''
inst✝⁶ : Module R✝ M✝
inst✝⁵ : Module R✝ M'
inst✝⁴ : Module R✝ M''
a✝ b✝ : R✝
x✝ y✝ : M✝
R : Type u_8
M : Type u_9
inst✝³ : CommRing R
inst✝² : NoZeroDivisors R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x y : M
h : LinearIndependent R ![x, y]
a b c d : R
h' : a * d - b * c ≠ 0
⊢ LinearIndependent R ![a • x + b • y, c • x + d • y]

Next tactic:
apply LinearIndependent.pair_iff.2 (fun s t hst ↦ ?_)
/-- If two vectors `x` and `y` are linearly independent, so are their linear combinations
`a x + b y` and `c x + d y` provided the determinant `a * d - b * c` is nonzero. -/
lemma LinearIndependent.linear_combination_pair_of_det_ne_zero {R M : Type*} [CommRing R]
    [NoZeroDivisors R] [AddCommGroup M] [Module R M]
    {x y : M} (h : LinearIndependent R ![x, y])
    {a b c d : R} (h' : a * d - b * c ≠ 0) :
    LinearIndependent R ![a • x + b • y, c • x + d • y] := by
  apply LinearIndependent.pair_iff.2 (fun s t hst ↦ ?_)
  

Proof state:
ι : Type u'
ι' : Type u_1
R✝ : Type u_2
K : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹⁰ : Ring R✝
inst✝⁹ : AddCommGroup M✝
inst✝⁸ : AddCommGroup M'
inst✝⁷ : AddCommGroup M''
inst✝⁶ : Module R✝ M✝
inst✝⁵ : Module R✝ M'
inst✝⁴ : Module R✝ M''
a✝ b✝ : R✝
x✝ y✝ : M✝
R : Type u_8
M : Type u_9
inst✝³ : CommRing R
inst✝² : NoZeroDivisors R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x y : M
h : LinearIndependent R ![x, y]
a b c d : R
h' : a * d - b * c ≠ 0
s t : R
hst : s • (a • x + b • y) + t • (c • x + d • y) = 0
⊢ s = 0 ∧ t = 0

Next tactic:
have H : (s * a + t * c) • x + (s * b + t * d) • y = 0 := by
    convert hst using 1
    simp only [_root_.add_smul, smul_add, smul_smul]
    abel
/-- If two vectors `x` and `y` are linearly independent, so are their linear combinations
`a x + b y` and `c x + d y` provided the determinant `a * d - b * c` is nonzero. -/
lemma LinearIndependent.linear_combination_pair_of_det_ne_zero {R M : Type*} [CommRing R]
    [NoZeroDivisors R] [AddCommGroup M] [Module R M]
    {x y : M} (h : LinearIndependent R ![x, y])
    {a b c d : R} (h' : a * d - b * c ≠ 0) :
    LinearIndependent R ![a • x + b • y, c • x + d • y] := by
  apply LinearIndependent.pair_iff.2 (fun s t hst ↦ ?_)
  have H : (s * a + t * c) • x + (s * b + t * d) • y = 0 := by
    

Proof state:
ι : Type u'
ι' : Type u_1
R✝ : Type u_2
K : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹⁰ : Ring R✝
inst✝⁹ : AddCommGroup M✝
inst✝⁸ : AddCommGroup M'
inst✝⁷ : AddCommGroup M''
inst✝⁶ : Module R✝ M✝
inst✝⁵ : Module R✝ M'
inst✝⁴ : Module R✝ M''
a✝ b✝ : R✝
x✝ y✝ : M✝
R : Type u_8
M : Type u_9
inst✝³ : CommRing R
inst✝² : NoZeroDivisors R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x y : M
h : LinearIndependent R ![x, y]
a b c d : R
h' : a * d - b * c ≠ 0
s t : R
hst : s • (a • x + b • y) + t • (c • x + d • y) = 0
⊢ (s * a + t * c) • x + (s * b + t * d) • y = 0

Next tactic:
convert hst using 1
/-- If two vectors `x` and `y` are linearly independent, so are their linear combinations
`a x + b y` and `c x + d y` provided the determinant `a * d - b * c` is nonzero. -/
lemma LinearIndependent.linear_combination_pair_of_det_ne_zero {R M : Type*} [CommRing R]
    [NoZeroDivisors R] [AddCommGroup M] [Module R M]
    {x y : M} (h : LinearIndependent R ![x, y])
    {a b c d : R} (h' : a * d - b * c ≠ 0) :
    LinearIndependent R ![a • x + b • y, c • x + d • y] := by
  apply LinearIndependent.pair_iff.2 (fun s t hst ↦ ?_)
  have H : (s * a + t * c) • x + (s * b + t * d) • y = 0 := by
    convert hst using 1
    

Proof state:
case h.e'_2
ι : Type u'
ι' : Type u_1
R✝ : Type u_2
K : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹⁰ : Ring R✝
inst✝⁹ : AddCommGroup M✝
inst✝⁸ : AddCommGroup M'
inst✝⁷ : AddCommGroup M''
inst✝⁶ : Module R✝ M✝
inst✝⁵ : Module R✝ M'
inst✝⁴ : Module R✝ M''
a✝ b✝ : R✝
x✝ y✝ : M✝
R : Type u_8
M : Type u_9
inst✝³ : CommRing R
inst✝² : NoZeroDivisors R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x y : M
h : LinearIndependent R ![x, y]
a b c d : R
h' : a * d - b * c ≠ 0
s t : R
hst : s • (a • x + b • y) + t • (c • x + d • y) = 0
⊢ (s * a + t * c) • x + (s * b + t * d) • y = s • (a • x + b • y) + t • (c • x + d • y)

Next tactic:
simp only [_root_.add_smul, smul_add, smul_smul]
/-- If two vectors `x` and `y` are linearly independent, so are their linear combinations
`a x + b y` and `c x + d y` provided the determinant `a * d - b * c` is nonzero. -/
lemma LinearIndependent.linear_combination_pair_of_det_ne_zero {R M : Type*} [CommRing R]
    [NoZeroDivisors R] [AddCommGroup M] [Module R M]
    {x y : M} (h : LinearIndependent R ![x, y])
    {a b c d : R} (h' : a * d - b * c ≠ 0) :
    LinearIndependent R ![a • x + b • y, c • x + d • y] := by
  apply LinearIndependent.pair_iff.2 (fun s t hst ↦ ?_)
  have H : (s * a + t * c) • x + (s * b + t * d) • y = 0 := by
    convert hst using 1
    simp only [_root_.add_smul, smul_add, smul_smul]
    

Proof state:
case h.e'_2
ι : Type u'
ι' : Type u_1
R✝ : Type u_2
K : Type u_3
M✝ : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M✝
inst✝¹⁰ : Ring R✝
inst✝⁹ : AddCommGroup M✝
inst✝⁸ : AddCommGroup M'
inst✝⁷ : AddCommGroup M''
inst✝⁶ : Module R✝ M✝
inst✝⁵ : Module R✝ M'
inst✝⁴ : Module R✝ M''
a✝ b✝ : R✝
x✝ y✝ : M✝
R : Type u_8
M : Type u_9
inst✝³ : CommRing R
inst✝² : NoZeroDivisors R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
x y : M
h : LinearIndependent R ![x, y]
a b c d : R
h' : a * d - b * c ≠ 0
s t : R
hst : s • (a • x + b • y) + t • (c • x + d • y) = 0
⊢ (s * a) • x + (t * c) • x + ((s * b) • y + (t * d) • y) = (s * a) • x + (s * b) • y + ((t * c) • x + (t * d) • y)

Next tactic:
abel