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 : f.IsIdealMorphism
⊢ comap f ⁅f.idealRange ⊓ J₁, f.idealRange ⊓ J₂⁆ = ⁅comap f J₁, comap f J₂⁆ ⊔ f.ker
state_after: 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 : f.IsIdealMorphism
⊢ 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: 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 : f.IsIdealMorphism
⊢ 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}))
state_after: 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 : f.IsIdealMorphism
⊢ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} = ⇑↑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 : f.IsIdealMorphism
⊢ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} = ⇑↑f '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
⊢ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} = (fun a => f a) '' {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 : f.IsIdealMorphism
⊢ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} = (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
y : L'
⊢ y ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} ↔ y ∈ (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 : f.IsIdealMorphism
y : L'
⊢ y ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} ↔ y ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
y : L'
⊢ y ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} → y ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

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 : f.IsIdealMorphism
y : L'
⊢ y ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m} → y ∈ {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 : f.IsIdealMorphism
y : L'
⊢ y ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m} → y ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ f.idealRange ⊓ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ = y
⊢ 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ f.idealRange ⊓ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ = y
⊢ y ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ f.idealRange ⊓ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ = y
⊢ ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ ∈ (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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ f.idealRange ⊓ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ = y
⊢ ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
y x₁ : L'
hx₁✝ : x₁ ∈ f.idealRange ⊓ J₁
hx₁ : (∃ x, f x = x₁) ∧ x₁ ∈ J₁
x₂ : L'
hx₂✝ : x₂ ∈ f.idealRange ⊓ J₂
hx₂ : (∃ x, f x = x₂) ∧ x₂ ∈ J₂
hy : ⁅↑⟨x₁, hx₁✝⟩, ↑⟨x₂, hx₂✝⟩⁆ = y
⊢ ⁅↑⟨x₁, hx₁✝⟩, ↑⟨x₂, 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 : f.IsIdealMorphism
y x₁ : L'
hx₁✝ : x₁ ∈ f.idealRange ⊓ J₁
hx₁ : (∃ x, f x = x₁) ∧ x₁ ∈ J₁
x₂ : L'
hx₂✝ : x₂ ∈ f.idealRange ⊓ J₂
hx₂ : (∃ x, f x = x₂) ∧ x₂ ∈ J₂
hy : ⁅↑⟨x₁, hx₁✝⟩, ↑⟨x₂, hx₂✝⟩⁆ = y
⊢ ⁅↑⟨x₁, hx₁✝⟩, ↑⟨x₂, hx₂✝⟩⁆ ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂✝ : x₂ ∈ f.idealRange ⊓ J₂
hx₂ : (∃ x, f x = x₂) ∧ x₂ ∈ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂✝⟩⁆ = y
hz₁' : x₁ ∈ J₁
z₁ : L
hz₁ : f z₁ = x₁
⊢ ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂✝ : x₂ ∈ f.idealRange ⊓ J₂
hx₂ : (∃ x, f x = x₂) ∧ x₂ ∈ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂✝⟩⁆ = y
hz₁' : x₁ ∈ J₁
z₁ : L
hz₁ : f z₁ = x₁
⊢ ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂✝⟩⁆ ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂✝ : x₂ ∈ f.idealRange ⊓ J₂
hx₂ : (∃ x, f x = x₂) ∧ x₂ ∈ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂✝⟩⁆ = y
z₁ : L
hz₁' : f z₁ ∈ J₁
hz₁ : f z₁ = x₁
⊢ ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂✝ : x₂ ∈ f.idealRange ⊓ J₂
hx₂ : (∃ x, f x = x₂) ∧ x₂ ∈ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂✝⟩⁆ = y
z₁ : L
hz₁' : f z₁ ∈ J₁
hz₁ : f z₁ = x₁
⊢ ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂✝⟩⁆ ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ f.idealRange ⊓ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ = y
z₁ : L
hz₁' : f z₁ ∈ J₁
hz₁ : f z₁ = x₁
hz₂' : x₂ ∈ J₂
z₂ : L
hz₂ : f z₂ = x₂
⊢ ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ f.idealRange ⊓ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ = y
z₁ : L
hz₁' : f z₁ ∈ J₁
hz₁ : f z₁ = x₁
hz₂' : x₂ ∈ J₂
z₂ : L
hz₂ : f z₂ = x₂
⊢ ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ f.idealRange ⊓ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ = y
z₁ : L
hz₁' : f z₁ ∈ J₁
hz₁ : f z₁ = x₁
z₂ : L
hz₂' : f z₂ ∈ J₂
hz₂ : f z₂ = x₂
⊢ ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ f.idealRange ⊓ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ = y
z₁ : L
hz₁' : f z₁ ∈ J₁
hz₁ : f z₁ = x₁
z₂ : L
hz₂' : f z₂ ∈ J₂
hz₂ : f z₂ = x₂
⊢ ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆ ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ f.idealRange ⊓ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, 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₂⁆ = ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆

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 : f.IsIdealMorphism
y x₁ : L'
hx₁ : x₁ ∈ f.idealRange ⊓ J₁
x₂ : L'
hx₂ : x₂ ∈ f.idealRange ⊓ J₂
hy : ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, 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₂⁆ = ⁅↑⟨x₁, hx₁⟩, ↑⟨x₂, hx₂⟩⁆
state_after: no goals

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 : f.IsIdealMorphism
y : L'
⊢ y ∈ (fun a => f a) '' {m | ∃ x n, ⁅↑x, ↑n⁆ = m} → y ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
⊢ 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
⊢ y ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
⊢ (fun a => f a) ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: have hz₁' : f z₁ ∈ f.idealRange ⊓ J₁ := by
  rw [LieSubmodule.mem_inf]; exact ⟨f.mem_idealRange 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
⊢ (fun a => f a) ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
hz₁' : f z₁ ∈ f.idealRange ⊓ J₁
⊢ (fun a => f a) ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: have hz₂' : f z₂ ∈ f.idealRange ⊓ J₂ := by
  rw [LieSubmodule.mem_inf]; exact ⟨f.mem_idealRange 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
hz₁' : f z₁ ∈ f.idealRange ⊓ J₁
⊢ (fun a => f a) ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
hz₁' : f z₁ ∈ f.idealRange ⊓ J₁
hz₂' : f z₂ ∈ f.idealRange ⊓ J₂
⊢ (fun a => f a) ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
hz₁' : f z₁ ∈ f.idealRange ⊓ J₁
hz₂' : f z₂ ∈ f.idealRange ⊓ J₂
⊢ (fun a => f a) ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: case 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
hz₁' : f z₁ ∈ f.idealRange ⊓ J₁
hz₂' : f z₂ ∈ f.idealRange ⊓ J₂
⊢ ⁅↑⟨f z₁, hz₁'⟩, ↑⟨f z₂, hz₂'⟩⁆ = (fun a => f a) ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆

tactic: simp only [Submodule.coe_mk, LieHom.map_lie]
state_before: case 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
hz₁' : f z₁ ∈ f.idealRange ⊓ J₁
hz₂' : f z₂ ∈ f.idealRange ⊓ J₂
⊢ ⁅↑⟨f z₁, hz₁'⟩, ↑⟨f z₂, hz₂'⟩⁆ = (fun a => f a) ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆
state_after: no goals

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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
⊢ f z₁ ∈ f.idealRange ⊓ J₁
state_after: 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
⊢ f z₁ ∈ f.idealRange ∧ f z₁ ∈ J₁

tactic: exact ⟨f.mem_idealRange z₁, 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
⊢ f z₁ ∈ f.idealRange ∧ f z₁ ∈ J₁
state_after: no goals

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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
hz₁' : f z₁ ∈ f.idealRange ⊓ J₁
⊢ f z₂ ∈ f.idealRange ⊓ J₂
state_after: 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
hz₁' : f z₁ ∈ f.idealRange ⊓ J₁
⊢ f z₂ ∈ f.idealRange ∧ f z₂ ∈ J₂

tactic: exact ⟨f.mem_idealRange z₂, 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 : f.IsIdealMorphism
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 : ⁅↑⟨z₁, hz₁⟩, ↑⟨z₂, hz₂⟩⁆ = x
hz₁' : f z₁ ∈ f.idealRange ⊓ J₁
⊢ f z₂ ∈ f.idealRange ∧ f z₂ ∈ J₂
state_after: no goals