Theorem: LieAlgebra.ExtendScalars.bracket_lie_self
File: Mathlib/Algebra/Lie/BaseChange.lean

tactic: simp only [bracket_def]
state_before: R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x : A ⊗[R] L
⊢ ⁅x, x⁆ = 0

tactic: refine' x.induction_on _ _ _
state_before: R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x : A ⊗[R] L
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) x) x = 0

tactic: simp only [LinearMap.map_zero, eq_self_iff_true, LinearMap.zero_apply]
state_before: case refine'_1
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x : A ⊗[R] L
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) 0) 0 = 0

tactic: intro a l
state_before: case refine'_2
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x : A ⊗[R] L
⊢ ∀ (x : A) (y : L), ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (x ⊗ₜ[R] y)) (x ⊗ₜ[R] y) = 0

tactic: simp only [bracket'_tmul, TensorProduct.tmul_zero, eq_self_iff_true, lie_self]
state_before: case refine'_2
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x : A ⊗[R] L
a : A
l : L
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a ⊗ₜ[R] l)) (a ⊗ₜ[R] l) = 0

tactic: intro z₁ z₂ h₁ h₂
state_before: case refine'_3
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x : A ⊗[R] L
⊢ ∀ (x y : A ⊗[R] L),
    ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) x) x = 0 →
      ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) y) y = 0 →
        ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (x + y)) (x + y) = 0

tactic: suffices bracket' R A L z₁ z₂ + bracket' R A L z₂ z₁ = 0 by
  rw [LinearMap.map_add, LinearMap.map_add, LinearMap.add_apply, LinearMap.add_apply, h₁, h₂,
    zero_add, add_zero, add_comm, this]
state_before: case refine'_3
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (z₁ + z₂)) (z₁ + z₂) = 0

tactic: refine' z₁.induction_on _ _ _
state_before: case refine'_3
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₂ + ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₁ = 0

tactic: rw [LinearMap.map_add, LinearMap.map_add, LinearMap.add_apply, LinearMap.add_apply, h₁, h₂,
  zero_add, add_zero, add_comm, this]
state_before: R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
this : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₂ + ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₁ = 0
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (z₁ + z₂)) (z₁ + z₂) = 0

tactic: simp only [LinearMap.map_zero, add_zero, LinearMap.zero_apply]
state_before: case refine'_3.refine'_1
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) 0) z₂ + ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) 0 = 0

tactic: intro a₁ l₁
state_before: case refine'_3.refine'_2
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
⊢ ∀ (x : A) (y : L),
    ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (x ⊗ₜ[R] y)) z₂ +
        ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) (x ⊗ₜ[R] y) =
      0

tactic: refine' z₂.induction_on _ _ _
state_before: case refine'_3.refine'_2
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
a₁ : A
l₁ : L
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₁ ⊗ₜ[R] l₁)) z₂ +
      ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) (a₁ ⊗ₜ[R] l₁) =
    0

tactic: simp only [LinearMap.map_zero, add_zero, LinearMap.zero_apply]
state_before: case refine'_3.refine'_2.refine'_1
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
a₁ : A
l₁ : L
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₁ ⊗ₜ[R] l₁)) 0 +
      ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) 0) (a₁ ⊗ₜ[R] l₁) =
    0

tactic: intro a₂ l₂
state_before: case refine'_3.refine'_2.refine'_2
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
a₁ : A
l₁ : L
⊢ ∀ (x : A) (y : L),
    ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₁ ⊗ₜ[R] l₁)) (x ⊗ₜ[R] y) +
        ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (x ⊗ₜ[R] y)) (a₁ ⊗ₜ[R] l₁) =
      0

tactic: simp only [← lie_skew l₂ l₁, mul_comm a₁ a₂, TensorProduct.tmul_neg, bracket'_tmul,
  add_right_neg]
state_before: case refine'_3.refine'_2.refine'_2
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
a₁ : A
l₁ : L
a₂ : A
l₂ : L
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₁ ⊗ₜ[R] l₁)) (a₂ ⊗ₜ[R] l₂) +
      ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₂ ⊗ₜ[R] l₂)) (a₁ ⊗ₜ[R] l₁) =
    0

tactic: intro y₁ y₂ hy₁ hy₂
state_before: case refine'_3.refine'_2.refine'_3
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
a₁ : A
l₁ : L
⊢ ∀ (x y : A ⊗[R] L),
    ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₁ ⊗ₜ[R] l₁)) x +
          ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) x) (a₁ ⊗ₜ[R] l₁) =
        0 →
      ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₁ ⊗ₜ[R] l₁)) y +
            ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) y) (a₁ ⊗ₜ[R] l₁) =
          0 →
        ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₁ ⊗ₜ[R] l₁)) (x + y) +
            ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (x + y)) (a₁ ⊗ₜ[R] l₁) =
          0

tactic: simp only [hy₁, hy₂, add_add_add_comm, add_zero, LinearMap.add_apply, LinearMap.map_add]
state_before: case refine'_3.refine'_2.refine'_3
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
a₁ : A
l₁ : L
y₁ y₂ : A ⊗[R] L
hy₁ :
  ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₁ ⊗ₜ[R] l₁)) y₁ +
      ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) y₁) (a₁ ⊗ₜ[R] l₁) =
    0
hy₂ :
  ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₁ ⊗ₜ[R] l₁)) y₂ +
      ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) y₂) (a₁ ⊗ₜ[R] l₁) =
    0
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (a₁ ⊗ₜ[R] l₁)) (y₁ + y₂) +
      ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (y₁ + y₂)) (a₁ ⊗ₜ[R] l₁) =
    0

tactic: intro y₁ y₂ hy₁ hy₂
state_before: case refine'_3.refine'_3
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
⊢ ∀ (x y : A ⊗[R] L),
    ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) x) z₂ + ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) x = 0 →
      ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) y) z₂ + ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) y = 0 →
        ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (x + y)) z₂ +
            ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) (x + y) =
          0

tactic: simp only [add_add_add_comm, hy₁, hy₂, add_zero, LinearMap.add_apply, LinearMap.map_add]
state_before: case refine'_3.refine'_3
R : Type u
A : Type w
L : Type v
inst✝⁴ : CommRing R
inst✝³ : CommRing A
inst✝² : Algebra R A
inst✝¹ : LieRing L
inst✝ : LieAlgebra R L
x z₁ z₂ : A ⊗[R] L
h₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₁) z₁ = 0
h₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) z₂ = 0
y₁ y₂ : A ⊗[R] L
hy₁ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) y₁) z₂ + ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) y₁ = 0
hy₂ : ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) y₂) z₂ + ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) y₂ = 0
⊢ ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) (y₁ + y₂)) z₂ +
      ↑(↑(LieAlgebra.ExtendScalars.bracket' R A L) z₂) (y₁ + y₂) =
    0