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

tactic: refine span_induction h ?_ ?_ ?_ ?_
state_before: R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
⊢ ∃ a, a • y = x

tactic: rintro y (rfl | ⟨⟨_⟩⟩)
state_before: case refine_1
R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
⊢ ∀ (x : M), x ∈ {y} → ∃ a, a • y = x

tactic: exact ⟨1, by simp⟩
state_before: case refine_1.refl
R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
⊢ ∃ a, a • y = y

tactic: simp
state_before: R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
⊢ 1 • y = y

tactic: exact ⟨0, by simp⟩
state_before: case refine_2
R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
⊢ ∃ a, a • y = 0

tactic: simp
state_before: R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
⊢ 0 • y = 0

tactic: rintro _ _ ⟨a, rfl⟩ ⟨b, rfl⟩
state_before: case refine_3
R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
⊢ ∀ (x y_1 : M), (∃ a, a • y = x) → (∃ a, a • y = y_1) → ∃ a, a • y = x + y_1

tactic: exact ⟨a + b, by simp [add_smul]⟩
state_before: case refine_3.intro.intro
R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
a b : R
⊢ ∃ a_1, a_1 • y = a • y + b • y

tactic: simp [add_smul]
state_before: R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
a b : R
⊢ (a + b) • y = a • y + b • y

tactic: rintro a _ ⟨b, rfl⟩
state_before: case refine_4
R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
⊢ ∀ (a : R) (x : M), (∃ a, a • y = x) → ∃ a_2, a_2 • y = a • x

tactic: exact ⟨a * b, by simp [smul_smul]⟩
state_before: case refine_4.intro
R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
a b : R
⊢ ∃ a_1, a_1 • y = a • b • y

tactic: simp [smul_smul]
state_before: R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
h : x ∈ span R {y}
a b : R
⊢ (a * b) • y = a • b • y

tactic: rintro ⟨a, y, rfl⟩
state_before: R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
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₂
s t : Set M
y : M
⊢ (∃ a, a • y = x) → x ∈ span R {y}

tactic: exact smul_mem _ _ (subset_span <| by simp)
state_before: case intro.refl
R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
y : M
a : R
⊢ a • y ∈ span R {y}

tactic: simp
state_before: R : Type u_2
R₂ : Type ?u.115596
K : Type ?u.115599
M : Type u_1
M₂ : Type ?u.115605
V : Type ?u.115608
S : Type ?u.115611
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
p p' : Submodule R M
inst✝² : Semiring R₂
σ₁₂ : R →+* R₂
inst✝¹ : AddCommMonoid M₂
inst✝ : Module R₂ M₂
s t : Set M
y : M
a : R
⊢ y ∈ {y}