Theorem: LinearMap.ker_le_iff
File: Mathlib/LinearAlgebra/Basic.lean

tactic: constructor
state_before: R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
⊢ ker f ≤ p ↔ ∃ y, y ∈ range f ∧ ↑f ⁻¹' {y} ⊆ ↑p

tactic: intro h
state_before: case mp
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
⊢ ker f ≤ p → ∃ y, y ∈ range f ∧ ↑f ⁻¹' {y} ⊆ ↑p

tactic: use 0
state_before: case mp
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
h : ker f ≤ p
⊢ ∃ y, y ∈ range f ∧ ↑f ⁻¹' {y} ⊆ ↑p

tactic: rw [← SetLike.mem_coe, range_coe]
state_before: case mp
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
h : ker f ≤ p
⊢ 0 ∈ range f ∧ ↑f ⁻¹' {0} ⊆ ↑p

tactic: exact ⟨⟨0, map_zero f⟩, h⟩
state_before: case mp
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
h : ker f ≤ p
⊢ 0 ∈ Set.range ↑f ∧ ↑f ⁻¹' {0} ⊆ ↑p

tactic: rintro ⟨y, h₁, h₂⟩
state_before: case mpr
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
⊢ (∃ y, y ∈ range f ∧ ↑f ⁻¹' {y} ⊆ ↑p) → ker f ≤ p

tactic: rw [SetLike.le_def]
state_before: case mpr.intro.intro
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₁ : y ∈ range f
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
⊢ ker f ≤ p

tactic: intro z hz
state_before: case mpr.intro.intro
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₁ : y ∈ range f
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
⊢ ∀ ⦃x : M⦄, x ∈ ker f → x ∈ p

tactic: simp only [mem_ker, SetLike.mem_coe] at hz
state_before: case mpr.intro.intro
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₁ : y ∈ range f
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
z : M
hz : z ∈ ker f
⊢ z ∈ p

tactic: rw [← SetLike.mem_coe, range_coe, Set.mem_range] at h₁
state_before: case mpr.intro.intro
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₁ : y ∈ range f
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
z : M
hz : ↑f z = 0
⊢ z ∈ p

tactic: obtain ⟨x, hx⟩ := h₁
state_before: case mpr.intro.intro
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₁ : ∃ y_1, ↑f y_1 = y
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
z : M
hz : ↑f z = 0
⊢ z ∈ p

tactic: have hx' : x ∈ p := h₂ hx
state_before: case mpr.intro.intro.intro
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
z : M
hz : ↑f z = 0
x : M
hx : ↑f x = y
⊢ z ∈ p

tactic: have hxz : z + x ∈ p := by
  apply h₂
  simp [hx, hz]
state_before: case mpr.intro.intro.intro
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
z : M
hz : ↑f z = 0
x : M
hx : ↑f x = y
hx' : x ∈ p
⊢ z ∈ p

tactic: suffices z + x - x ∈ p by simpa only [this, add_sub_cancel]
state_before: case mpr.intro.intro.intro
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
z : M
hz : ↑f z = 0
x : M
hx : ↑f x = y
hx' : x ∈ p
hxz : z + x ∈ p
⊢ z ∈ p

tactic: exact p.sub_mem hxz hx'
state_before: case mpr.intro.intro.intro
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
z : M
hz : ↑f z = 0
x : M
hx : ↑f x = y
hx' : x ∈ p
hxz : z + x ∈ p
⊢ z + x - x ∈ p

tactic: apply h₂
state_before: R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
z : M
hz : ↑f z = 0
x : M
hx : ↑f x = y
hx' : x ∈ p
⊢ z + x ∈ p

tactic: simp [hx, hz]
state_before: case a
R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
z : M
hz : ↑f z = 0
x : M
hx : ↑f x = y
hx' : x ∈ p
⊢ z + x ∈ ↑f ⁻¹' {y}

tactic: simpa only [this, add_sub_cancel]
state_before: R : Type u_1
R₁ : Type ?u.1458730
R₂ : Type u_2
R₃ : Type ?u.1458736
R₄ : Type ?u.1458739
S : Type ?u.1458742
K : Type ?u.1458745
K₂ : Type ?u.1458748
M : Type u_3
M' : Type ?u.1458754
M₁ : Type ?u.1458757
M₂ : Type u_4
M₃ : Type ?u.1458763
M₄ : Type ?u.1458766
N : Type ?u.1458769
N₂ : Type ?u.1458772
ι : Type ?u.1458775
V : Type ?u.1458778
V₂ : Type ?u.1458781
inst✝¹⁰ : Ring R
inst✝⁹ : Ring R₂
inst✝⁸ : Ring R₃
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M₂
inst✝⁵ : AddCommGroup M₃
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_5
sc : SemilinearMapClass F τ₁₂ M M₂
f : F
inst✝ : RingHomSurjective τ₁₂
p : Submodule R M
y : M₂
h₂ : ↑f ⁻¹' {y} ⊆ ↑p
z : M
hz : ↑f z = 0
x : M
hx : ↑f x = y
hx' : x ∈ p
hxz : z + x ∈ p
this : z + x - x ∈ p
⊢ z ∈ p