Theorem: Submodule.disjoint_span_singleton
File: Mathlib/LinearAlgebra/Span.lean

tactic: refine disjoint_def.trans ⟨fun H hx => H x hx <| subset_span <| mem_singleton x, ?_⟩
state_before: R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
⊢ Disjoint s (span K {x}) ↔ x ∈ s → x = 0
state_after: R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
⊢ (x ∈ s → x = 0) → ∀ x_1 ∈ s, x_1 ∈ span K {x} → x_1 = 0

tactic: intro H y hy hyx
state_before: R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
⊢ (x ∈ s → x = 0) → ∀ x_1 ∈ s, x_1 ∈ span K {x} → x_1 = 0
state_after: R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
H : x ∈ s → x = 0
y : E
hy : y ∈ s
hyx : y ∈ span K {x}
⊢ y = 0

tactic: obtain ⟨c, rfl⟩ := mem_span_singleton.1 hyx
state_before: R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
H : x ∈ s → x = 0
y : E
hy : y ∈ s
hyx : y ∈ span K {x}
⊢ y = 0
state_after: case intro
R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
H : x ∈ s → x = 0
c : K
hy : c • x ∈ s
hyx : c • x ∈ span K {x}
⊢ c • x = 0

tactic: by_cases hc : c = 0
state_before: case intro
R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
H : x ∈ s → x = 0
c : K
hy : c • x ∈ s
hyx : c • x ∈ span K {x}
⊢ c • x = 0
state_after: case pos
R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
H : x ∈ s → x = 0
c : K
hy : c • x ∈ s
hyx : c • x ∈ span K {x}
hc : c = 0
⊢ c • x = 0

case neg
R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
H : x ∈ s → x = 0
c : K
hy : c • x ∈ s
hyx : c • x ∈ span K {x}
hc : ¬c = 0
⊢ c • x = 0

tactic: rw [hc, zero_smul]
state_before: case pos
R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
H : x ∈ s → x = 0
c : K
hy : c • x ∈ s
hyx : c • x ∈ span K {x}
hc : c = 0
⊢ c • x = 0
state_after: no goals

tactic: rw [s.smul_mem_iff hc] at hy
state_before: case neg
R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
H : x ∈ s → x = 0
c : K
hy : c • x ∈ s
hyx : c • x ∈ span K {x}
hc : ¬c = 0
⊢ c • x = 0
state_after: case neg
R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
H : x ∈ s → x = 0
c : K
hy : x ∈ s
hyx : c • x ∈ span K {x}
hc : ¬c = 0
⊢ c • x = 0

tactic: rw [H hy, smul_zero]
state_before: case neg
R : Type u_1
R₂ : Type u_2
K✝ : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝¹⁰ : Semiring R
inst✝⁹ : AddCommMonoid M
inst✝⁸ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁷ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁶ : AddCommMonoid M₂
inst✝⁵ : Module R₂ M₂
F : Type u_8
inst✝⁴ : FunLike F M M₂
inst✝³ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
K : Type u_9
E : Type u_10
inst✝² : DivisionRing K
inst✝¹ : AddCommGroup E
inst✝ : Module K E
s : Submodule K E
x : E
H : x ∈ s → x = 0
c : K
hy : x ∈ s
hyx : c • x ∈ span K {x}
hc : ¬c = 0
⊢ c • x = 0
state_after: no goals