Theorem: LinearIndependent.pair_iff'
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: rw [LinearIndependent.pair_iff]
state_before: ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
⊢ LinearIndependent K ![x, y] ↔ ∀ (a : K), a • x ≠ y
state_after: ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
⊢ (∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0) ↔ ∀ (a : K), a • x ≠ y

tactic: constructor
state_before: ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
⊢ (∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0) ↔ ∀ (a : K), a • x ≠ y
state_after: case mp
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
⊢ (∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0) → ∀ (a : K), a • x ≠ y

case mpr
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
⊢ (∀ (a : K), a • x ≠ y) → ∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0

tactic: intro H a ha
state_before: case mp
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
⊢ (∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0) → ∀ (a : K), a • x ≠ y
state_after: case mp
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0
a : K
ha : a • x = y
⊢ False

tactic: have := (H a (-1) (by simpa [← sub_eq_add_neg, sub_eq_zero])).2
state_before: case mp
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0
a : K
ha : a • x = y
⊢ False
state_after: case mp
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0
a : K
ha : a • x = y
this : -1 = 0
⊢ False

tactic: simp only [neg_eq_zero, one_ne_zero] at this
state_before: case mp
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0
a : K
ha : a • x = y
this : -1 = 0
⊢ False
state_after: no goals

tactic: simpa [← sub_eq_add_neg, sub_eq_zero]
state_before: ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0
a : K
ha : a • x = y
⊢ a • x + -1 • y = 0
state_after: no goals

tactic: intro H s t hst
state_before: case mpr
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
⊢ (∀ (a : K), a • x ≠ y) → ∀ (s t : K), s • x + t • y = 0 → s = 0 ∧ t = 0
state_after: case mpr
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s✝ t✝ : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (a : K), a • x ≠ y
s t : K
hst : s • x + t • y = 0
⊢ s = 0 ∧ t = 0

tactic: by_cases ht : t = 0
state_before: case mpr
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s✝ t✝ : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (a : K), a • x ≠ y
s t : K
hst : s • x + t • y = 0
⊢ s = 0 ∧ t = 0
state_after: case pos
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s✝ t✝ : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (a : K), a • x ≠ y
s t : K
hst : s • x + t • y = 0
ht : t = 0
⊢ s = 0 ∧ t = 0

case neg
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s✝ t✝ : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (a : K), a • x ≠ y
s t : K
hst : s • x + t • y = 0
ht : ¬t = 0
⊢ s = 0 ∧ t = 0

tactic: simp only [smul_add, smul_smul, inv_mul_cancel ht, one_smul, smul_zero] at hst
state_before: case neg
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s✝ t✝ : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (a : K), a • x ≠ y
s t : K
ht : ¬t = 0
hst : t⁻¹ • (s • x + t • y) = t⁻¹ • 0
⊢ s = 0 ∧ t = 0
state_after: case neg
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s✝ t✝ : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (a : K), a • x ≠ y
s t : K
ht : ¬t = 0
hst : (t⁻¹ * s) • x + y = 0
⊢ s = 0 ∧ t = 0

tactic: cases H (-(t⁻¹ * s)) (by rwa [neg_smul, neg_eq_iff_eq_neg, eq_neg_iff_add_eq_zero])
state_before: case neg
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s✝ t✝ : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (a : K), a • x ≠ y
s t : K
ht : ¬t = 0
hst : (t⁻¹ * s) • x + y = 0
⊢ s = 0 ∧ t = 0
state_after: no goals

tactic: exact ⟨by simpa [ht, hx] using hst, ht⟩
state_before: case pos
ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s✝ t✝ : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (a : K), a • x ≠ y
s t : K
hst : s • x + t • y = 0
ht : t = 0
⊢ s = 0 ∧ t = 0
state_after: no goals

tactic: simpa [ht, hx] using hst
state_before: ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s✝ t✝ : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (a : K), a • x ≠ y
s t : K
hst : s • x + t • y = 0
ht : t = 0
⊢ s = 0
state_after: no goals

tactic: rwa [neg_smul, neg_eq_iff_eq_neg, eq_neg_iff_add_eq_zero]
state_before: ι : 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
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s✝ t✝ : Set V
x✝ y✝ z x y : V
hx : x ≠ 0
H : ∀ (a : K), a • x ≠ y
s t : K
ht : ¬t = 0
hst : (t⁻¹ * s) • x + y = 0
⊢ -(t⁻¹ * s) • x = y
state_after: no goals