Theorem: LieIdeal.comap_bracket_eq
File: Mathlib/Algebra/Lie/IdealOperations.lean

tactic: rw [← LieSubmodule.coe_toSubmodule_eq_iff, comap_coeSubmodule,
  LieSubmodule.sup_coe_toSubmodule, f.ker_coeSubmodule, ← Submodule.comap_map_eq,
  LieSubmodule.lieIdeal_oper_eq_linear_span, LieSubmodule.lieIdeal_oper_eq_linear_span,
  LinearMap.map_span]
state_before: R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
⊢ comap f ⁅LieHom.idealRange f ⊓ J₁, LieHom.idealRange f ⊓ J₂⁆ = ⁅comap f J₁, comap f J₂⁆ ⊔ LieHom.ker f

tactic: congr
state_before: R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
⊢ Submodule.comap (↑f) (Submodule.span R {m | ∃ x n, ⁅↑x, ↑n⁆ = m}) =
    Submodule.comap (↑f) (Submodule.span R (↑↑f '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}))

tactic: simp only [LieHom.coe_toLinearMap, Set.mem_setOf_eq]
state_before: case e_p.e_s
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
⊢ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} = ↑↑f '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: ext y
state_before: case e_p.e_s
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
⊢ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} = (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: constructor
state_before: case e_p.e_s.h
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
⊢ y ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} ↔ y ∈ (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: rintro ⟨⟨x₁, hx₁⟩, ⟨x₂, hx₂⟩, hy⟩
state_before: case e_p.e_s.h.mp
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
⊢ y ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} → y ∈ (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: rw [← hy]
state_before: case e_p.e_s.h.mp.intro.mk.intro.mk
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y x₁ : L'
hx₁ : x₁ ∈ LieHom.idealRange f ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ LieHom.idealRange f ⊓ J₂
hy : ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂ }⁆ = y
⊢ y ∈ (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: erw [LieSubmodule.mem_inf, f.mem_idealRange_iff h] at hx₁ hx₂
state_before: case e_p.e_s.h.mp.intro.mk.intro.mk
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y x₁ : L'
hx₁ : x₁ ∈ LieHom.idealRange f ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ LieHom.idealRange f ⊓ J₂
hy : ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂ }⁆ = y
⊢ ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂ }⁆ ∈ (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: obtain ⟨⟨z₁, hz₁⟩, hz₁'⟩ := hx₁
state_before: case e_p.e_s.h.mp.intro.mk.intro.mk
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y x₁ : L'
hx₁✝ : x₁ ∈ LieHom.idealRange f ⊓ J₁
hx₁ : (∃ x, ↑f x = x₁) ∧ x₁ ∈ J₁
x₂ : L'
hx₂✝ : x₂ ∈ LieHom.idealRange f ⊓ J₂
hx₂ : (∃ x, ↑f x = x₂) ∧ x₂ ∈ J₂
hy : ⁅↑{ val := x₁, property := hx₁✝ }, ↑{ val := x₂, property := hx₂✝ }⁆ = y
⊢ ⁅↑{ val := x₁, property := hx₁✝ }, ↑{ val := x₂, property := hx₂✝ }⁆ ∈ (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: rw [← hz₁] at hz₁'
state_before: case e_p.e_s.h.mp.intro.mk.intro.mk.intro.intro
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y x₁ : L'
hx₁ : x₁ ∈ LieHom.idealRange f ⊓ J₁
x₂ : L'
hx₂✝ : x₂ ∈ LieHom.idealRange f ⊓ J₂
hx₂ : (∃ x, ↑f x = x₂) ∧ x₂ ∈ J₂
hy : ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂✝ }⁆ = y
hz₁' : x₁ ∈ J₁
z₁ : L
hz₁ : ↑f z₁ = x₁
⊢ ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂✝ }⁆ ∈ (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: obtain ⟨⟨z₂, hz₂⟩, hz₂'⟩ := hx₂
state_before: case e_p.e_s.h.mp.intro.mk.intro.mk.intro.intro
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y x₁ : L'
hx₁ : x₁ ∈ LieHom.idealRange f ⊓ J₁
x₂ : L'
hx₂✝ : x₂ ∈ LieHom.idealRange f ⊓ J₂
hx₂ : (∃ x, ↑f x = x₂) ∧ x₂ ∈ J₂
hy : ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂✝ }⁆ = y
z₁ : L
hz₁' : ↑f z₁ ∈ J₁
hz₁ : ↑f z₁ = x₁
⊢ ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂✝ }⁆ ∈ (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: rw [← hz₂] at hz₂'
state_before: case e_p.e_s.h.mp.intro.mk.intro.mk.intro.intro.intro.intro
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y x₁ : L'
hx₁ : x₁ ∈ LieHom.idealRange f ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ LieHom.idealRange f ⊓ J₂
hy : ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂ }⁆ = y
z₁ : L
hz₁' : ↑f z₁ ∈ J₁
hz₁ : ↑f z₁ = x₁
hz₂' : x₂ ∈ J₂
z₂ : L
hz₂ : ↑f z₂ = x₂
⊢ ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂ }⁆ ∈ (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: refine ⟨⁅z₁, z₂⁆, ⟨⟨z₁, hz₁'⟩, ⟨z₂, hz₂'⟩, rfl⟩, ?_⟩
state_before: case e_p.e_s.h.mp.intro.mk.intro.mk.intro.intro.intro.intro
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y x₁ : L'
hx₁ : x₁ ∈ LieHom.idealRange f ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ LieHom.idealRange f ⊓ J₂
hy : ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂ }⁆ = y
z₁ : L
hz₁' : ↑f z₁ ∈ J₁
hz₁ : ↑f z₁ = x₁
z₂ : L
hz₂' : ↑f z₂ ∈ J₂
hz₂ : ↑f z₂ = x₂
⊢ ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂ }⁆ ∈ (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: simp only [hz₁, hz₂, Submodule.coe_mk, LieHom.map_lie]
state_before: case e_p.e_s.h.mp.intro.mk.intro.mk.intro.intro.intro.intro
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y x₁ : L'
hx₁ : x₁ ∈ LieHom.idealRange f ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ LieHom.idealRange f ⊓ J₂
hy : ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂ }⁆ = y
z₁ : L
hz₁' : ↑f z₁ ∈ J₁
hz₁ : ↑f z₁ = x₁
z₂ : L
hz₂' : ↑f z₂ ∈ J₂
hz₂ : ↑f z₂ = x₂
⊢ (fun a => ↑f a) ⁅z₁, z₂⁆ = ⁅↑{ val := x₁, property := hx₁ }, ↑{ val := x₂, property := hx₂ }⁆

tactic: rintro ⟨x, ⟨⟨z₁, hz₁⟩, ⟨z₂, hz₂⟩, hx⟩, hy⟩
state_before: case e_p.e_s.h.mpr
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
⊢ y ∈ (fun a => ↑f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m} → y ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: rw [← hy, ← hx]
state_before: case e_p.e_s.h.mpr.intro.intro.intro.mk.intro.mk
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
x : L
hy : (fun a => ↑f a) x = y
z₁ : L
hz₁ : z₁ ∈ comap f J₁
z₂ : L
hz₂ : z₂ ∈ comap f J₂
hx : ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ = x
⊢ y ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: have hz₁' : f z₁ ∈ f.idealRange ⊓ J₁ := by
  rw [LieSubmodule.mem_inf]; exact ⟨f.mem_idealRange, hz₁⟩
state_before: case e_p.e_s.h.mpr.intro.intro.intro.mk.intro.mk
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
x : L
hy : (fun a => ↑f a) x = y
z₁ : L
hz₁ : z₁ ∈ comap f J₁
z₂ : L
hz₂ : z₂ ∈ comap f J₂
hx : ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ = x
⊢ (fun a => ↑f a) ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: have hz₂' : f z₂ ∈ f.idealRange ⊓ J₂ := by
  rw [LieSubmodule.mem_inf]; exact ⟨f.mem_idealRange, hz₂⟩
state_before: case e_p.e_s.h.mpr.intro.intro.intro.mk.intro.mk
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
x : L
hy : (fun a => ↑f a) x = y
z₁ : L
hz₁ : z₁ ∈ comap f J₁
z₂ : L
hz₂ : z₂ ∈ comap f J₂
hx : ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ = x
hz₁' : ↑f z₁ ∈ LieHom.idealRange f ⊓ J₁
⊢ (fun a => ↑f a) ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: use ⟨f z₁, hz₁'⟩, ⟨f z₂, hz₂'⟩
state_before: case e_p.e_s.h.mpr.intro.intro.intro.mk.intro.mk
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
x : L
hy : (fun a => ↑f a) x = y
z₁ : L
hz₁ : z₁ ∈ comap f J₁
z₂ : L
hz₂ : z₂ ∈ comap f J₂
hx : ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ = x
hz₁' : ↑f z₁ ∈ LieHom.idealRange f ⊓ J₁
hz₂' : ↑f z₂ ∈ LieHom.idealRange f ⊓ J₂
⊢ (fun a => ↑f a) ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: simp only [Submodule.coe_mk, LieHom.map_lie]
state_before: case e_p.e_s.h.mpr.intro.intro.intro.mk.intro.mk
R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
x : L
hy : (fun a => ↑f a) x = y
z₁ : L
hz₁ : z₁ ∈ comap f J₁
z₂ : L
hz₂ : z₂ ∈ comap f J₂
hx : ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ = x
hz₁' : ↑f z₁ ∈ LieHom.idealRange f ⊓ J₁
hz₂' : ↑f z₂ ∈ LieHom.idealRange f ⊓ J₂
⊢ ⁅↑{ val := ↑f z₁, property := hz₁' }, ↑{ val := ↑f z₂, property := hz₂' }⁆ =
    (fun a => ↑f a) ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆

tactic: rw [LieSubmodule.mem_inf]
state_before: R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
x : L
hy : (fun a => ↑f a) x = y
z₁ : L
hz₁ : z₁ ∈ comap f J₁
z₂ : L
hz₂ : z₂ ∈ comap f J₂
hx : ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ = x
⊢ ↑f z₁ ∈ LieHom.idealRange f ⊓ J₁

tactic: exact ⟨f.mem_idealRange, hz₁⟩
state_before: R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
x : L
hy : (fun a => ↑f a) x = y
z₁ : L
hz₁ : z₁ ∈ comap f J₁
z₂ : L
hz₂ : z₂ ∈ comap f J₂
hx : ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ = x
⊢ ↑f z₁ ∈ LieHom.idealRange f ∧ ↑f z₁ ∈ J₁

tactic: rw [LieSubmodule.mem_inf]
state_before: R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
x : L
hy : (fun a => ↑f a) x = y
z₁ : L
hz₁ : z₁ ∈ comap f J₁
z₂ : L
hz₂ : z₂ ∈ comap f J₂
hx : ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ = x
hz₁' : ↑f z₁ ∈ LieHom.idealRange f ⊓ J₁
⊢ ↑f z₂ ∈ LieHom.idealRange f ⊓ J₂

tactic: exact ⟨f.mem_idealRange, hz₂⟩
state_before: R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J J₁ J₂ : LieIdeal R L'
h : LieHom.IsIdealMorphism f
y : L'
x : L
hy : (fun a => ↑f a) x = y
z₁ : L
hz₁ : z₁ ∈ comap f J₁
z₂ : L
hz₂ : z₂ ∈ comap f J₂
hx : ⁅↑{ val := z₁, property := hz₁ }, ↑{ val := z₂, property := hz₂ }⁆ = x
hz₁' : ↑f z₁ ∈ LieHom.idealRange f ⊓ J₁
⊢ ↑f z₂ ∈ LieHom.idealRange f ∧ ↑f z₂ ∈ J₂