File: Mathlib/Algebra/Lie/TensorProduct.lean

full_name: TensorProduct.LieModule.hasBracketAux
code: /-- It is useful to define the bracket via this auxiliary function so that we have a type-theoretic
expression of the fact that `L` acts by linear endomorphisms. It simplifies the proofs in
`lieRingModule` below. -/
def hasBracketAux (x : L) : Module.End R (M ⊗[R] N) 
goal: Module.End R (TensorProduct R M N)

full_name: TensorProduct.LieModule.lieRingModule
code: /-- The tensor product of two Lie modules is a Lie ring module. -/
instance lieRingModule : LieRingModule L (M ⊗[R] N) 
goal: LieRingModule L (TensorProduct R M N)

full_name: TensorProduct.LieModule.lieModule
code: /-- The tensor product of two Lie modules is a Lie module. -/
instance lieModule : LieModule R L (M ⊗[R] N) 
goal: LieModule R L (TensorProduct R M N)

full_name: TensorProduct.LieModule.lie_tmul_right
code: @[simp]
theorem lie_tmul_right (x : L) (m : M) (n : N) : ⁅x, m ⊗ₜ[R] n⁆ = ⁅x, m⁆ ⊗ₜ n + m ⊗ₜ ⁅x, n⁆ 
goal: ⁅x, m ⊗ₜ[R] n⁆ = ⁅x, m⁆ ⊗ₜ[R] n + m ⊗ₜ[R] ⁅x, n⁆

full_name: TensorProduct.LieModule.lift
code: /-- The universal property for tensor product of modules of a Lie algebra: the `R`-linear
tensor-hom adjunction is equivariant with respect to the `L` action. -/
def lift : (M →ₗ[R] N →ₗ[R] P) ≃ₗ⁅R,L⁆ M ⊗[R] N →ₗ[R] P 
goal: (M →ₗ[R] N →ₗ[R] P) ≃ₗ⁅R,L⁆ TensorProduct R M N →ₗ[R] P

full_name: TensorProduct.LieModule.lift_apply
code: @[simp]
theorem lift_apply (f : M →ₗ[R] N →ₗ[R] P) (m : M) (n : N) : lift R L M N P f (m ⊗ₜ n) = f m n 
goal: ((TensorProduct.LieModule.lift R L M N P) f) (m ⊗ₜ[R] n) = (f m) n

full_name: TensorProduct.LieModule.liftLie
code: /-- A weaker form of the universal property for tensor product of modules of a Lie algebra.

Note that maps `f` of type `M →ₗ⁅R,L⁆ N →ₗ[R] P` are exactly those `R`-bilinear maps satisfying
`⁅x, f m n⁆ = f ⁅x, m⁆ n + f m ⁅x, n⁆` for all `x, m, n` (see e.g, `LieModuleHom.map_lie₂`). -/
def liftLie : (M →ₗ⁅R,L⁆ N →ₗ[R] P) ≃ₗ[R] M ⊗[R] N →ₗ⁅R,L⁆ P 
goal: (M →ₗ⁅R,L⁆ N →ₗ[R] P) ≃ₗ[R] TensorProduct R M N →ₗ⁅R,L⁆ P

full_name: TensorProduct.LieModule.coe_liftLie_eq_lift_coe
code: @[simp]
theorem coe_liftLie_eq_lift_coe (f : M →ₗ⁅R,L⁆ N →ₗ[R] P) :
    ⇑(liftLie R L M N P f) = lift R L M N P f 
goal: ⇑((TensorProduct.LieModule.liftLie R L M N P) f) = ⇑((TensorProduct.LieModule.lift R L M N P) ↑f)

full_name: TensorProduct.LieModule.liftLie_apply
code: theorem liftLie_apply (f : M →ₗ⁅R,L⁆ N →ₗ[R] P) (m : M) (n : N) :
    liftLie R L M N P f (m ⊗ₜ n) = f m n 
goal: ((TensorProduct.LieModule.liftLie R L M N P) f) (m ⊗ₜ[R] n) = (f m) n

full_name: TensorProduct.LieModule.map
code: /-- A pair of Lie module morphisms `f : M → P` and `g : N → Q`, induce a Lie module morphism:
`M ⊗ N → P ⊗ Q`. -/
nonrec def map (f : M →ₗ⁅R,L⁆ P) (g : N →ₗ⁅R,L⁆ Q) : M ⊗[R] N →ₗ⁅R,L⁆ P ⊗[R] Q 
goal: TensorProduct R M N →ₗ⁅R,L⁆ TensorProduct R P Q

full_name: TensorProduct.LieModule.coe_linearMap_map
code: @[simp]
theorem coe_linearMap_map (f : M →ₗ⁅R,L⁆ P) (g : N →ₗ⁅R,L⁆ Q) :
    (map f g : M ⊗[R] N →ₗ[R] P ⊗[R] Q) = TensorProduct.map (f : M →ₗ[R] P) (g : N →ₗ[R] Q) 
goal: ↑(TensorProduct.LieModule.map f g) = TensorProduct.map ↑f ↑g

full_name: TensorProduct.LieModule.map_tmul
code: @[simp]
nonrec theorem map_tmul (f : M →ₗ⁅R,L⁆ P) (g : N →ₗ⁅R,L⁆ Q) (m : M) (n : N) :
    map f g (m ⊗ₜ n) = f m ⊗ₜ g n 
goal: (TensorProduct.LieModule.map f g) (m ⊗ₜ[R] n) = f m ⊗ₜ[R] g n

full_name: TensorProduct.LieModule.mapIncl
code: /-- Given Lie submodules `M' ⊆ M` and `N' ⊆ N`, this is the natural map: `M' ⊗ N' → M ⊗ N`. -/
def mapIncl (M' : LieSubmodule R L M) (N' : LieSubmodule R L N) : M' ⊗[R] N' →ₗ⁅R,L⁆ M ⊗[R] N 
goal: TensorProduct R ↥↑M' ↥↑N' →ₗ⁅R,L⁆ TensorProduct R M N

full_name: TensorProduct.LieModule.mapIncl_def
code: @[simp]
theorem mapIncl_def (M' : LieSubmodule R L M) (N' : LieSubmodule R L N) :
    mapIncl M' N' = map M'.incl N'.incl 
goal: TensorProduct.LieModule.mapIncl M' N' = TensorProduct.LieModule.map M'.incl N'.incl

full_name: LieModule.toModuleHom
code: /-- The action of the Lie algebra on one of its modules, regarded as a morphism of Lie modules. -/
def toModuleHom : L ⊗[R] M →ₗ⁅R,L⁆ M 
goal: TensorProduct R L M →ₗ⁅R,L⁆ M

full_name: LieModule.toModuleHom_apply
code: @[simp]
theorem toModuleHom_apply (x : L) (m : M) : toModuleHom R L M (x ⊗ₜ m) = ⁅x, m⁆ 
goal: (LieModule.toModuleHom R L M) (x ⊗ₜ[R] m) = ⁅x, m⁆

full_name: LieSubmodule.lieIdeal_oper_eq_tensor_map_range
code: /-- A useful alternative characterisation of Lie ideal operations on Lie submodules.

Given a Lie ideal `I ⊆ L` and a Lie submodule `N ⊆ M`, by tensoring the inclusion maps and then
applying the action of `L` on `M`, we obtain morphism of Lie modules `f : I ⊗ N → L ⊗ M → M`.

This lemma states that `⁅I, N⁆ = range f`. -/
theorem lieIdeal_oper_eq_tensor_map_range :
    ⁅I, N⁆ = ((toModuleHom R L M).comp (mapIncl I N : (↥I) ⊗[R] (↥N) →ₗ⁅R,L⁆ L ⊗[R] M)).range 
goal: ⁅I, N⁆ = ((LieModule.toModuleHom R L M).comp (TensorProduct.LieModule.mapIncl I N)).range