(A-A)-Bimodules #
We define (A-A)-bimodules, where A is a commutative semiring, and show basic properties of them.
noncomputable def
Bimodule.lsmul
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₁)
(y : TensorProduct R H₁ H₂)
:
TensorProduct R H₁ H₂
Equations
- Bimodule.lsmul x y = (TensorProduct.map (LinearMap.mulLeft R x) 1) y
Instances For
noncomputable def
Bimodule.rsmul
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : TensorProduct R H₁ H₂)
(y : H₂)
:
TensorProduct R H₁ H₂
Equations
- Bimodule.rsmul x y = (TensorProduct.map 1 (LinearMap.mulRight R y)) x
Instances For
Equations
- Bimodule.«term_•ₗ_» = Lean.ParserDescr.trailingNode `Bimodule.«term_•ₗ_» 72 72 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " •ₗ ") (Lean.ParserDescr.cat `term 73))
Instances For
Equations
- Bimodule.«term_•ᵣ_» = Lean.ParserDescr.trailingNode `Bimodule.«term_•ᵣ_» 72 72 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " •ᵣ ") (Lean.ParserDescr.cat `term 73))
Instances For
theorem
Bimodule.lsmul_rsmul_assoc
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₁)
(y : H₂)
(a : TensorProduct R H₁ H₂)
:
Bimodule.rsmul (Bimodule.lsmul x a) y = Bimodule.lsmul x (Bimodule.rsmul a y)
theorem
Bimodule.lsmul_zero
{R : Type u_3}
{H₁ : Type u_1}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₁)
:
Bimodule.lsmul x 0 = 0
theorem
Bimodule.zero_lsmul
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : TensorProduct R H₁ H₂)
:
Bimodule.lsmul 0 x = 0
theorem
Bimodule.zero_rsmul
{R : Type u_3}
{H₁ : Type u_1}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₂)
:
Bimodule.rsmul 0 x = 0
theorem
Bimodule.rsmul_zero
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : TensorProduct R H₁ H₂)
:
Bimodule.rsmul x 0 = 0
theorem
Bimodule.lsmul_add
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₁)
(a : TensorProduct R H₁ H₂)
(b : TensorProduct R H₁ H₂)
:
Bimodule.lsmul x (a + b) = Bimodule.lsmul x a + Bimodule.lsmul x b
theorem
Bimodule.add_rsmul
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₂)
(a : TensorProduct R H₁ H₂)
(b : TensorProduct R H₁ H₂)
:
Bimodule.rsmul (a + b) x = Bimodule.rsmul a x + Bimodule.rsmul b x
theorem
Bimodule.lsmul_sum
{R : Type u_2}
{H₁ : Type u_3}
{H₂ : Type u_4}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₁)
{k : Type u_1}
{s : Finset k}
(a : k → TensorProduct R H₁ H₂)
:
Bimodule.lsmul x (∑ i ∈ s, a i) = ∑ i ∈ s, Bimodule.lsmul x (a i)
theorem
Bimodule.sum_rsmul
{R : Type u_2}
{H₁ : Type u_3}
{H₂ : Type u_4}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₂)
{k : Type u_1}
{s : Finset k}
(a : k → TensorProduct R H₁ H₂)
:
Bimodule.rsmul (∑ i ∈ s, a i) x = ∑ i ∈ s, Bimodule.rsmul (a i) x
theorem
Bimodule.one_lsmul
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : TensorProduct R H₁ H₂)
:
Bimodule.lsmul 1 x = x
theorem
Bimodule.rsmul_one
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : TensorProduct R H₁ H₂)
:
Bimodule.rsmul x 1 = x
theorem
Bimodule.lsmul_one
{R : Type u_3}
{H₁ : Type u_1}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₁)
:
Bimodule.lsmul x 1 = x ⊗ₜ[R] 1
theorem
Bimodule.one_rsmul
{R : Type u_3}
{H₁ : Type u_1}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₂)
:
Bimodule.rsmul 1 x = 1 ⊗ₜ[R] x
theorem
Bimodule.lsmul_smul
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(α : R)
(x : H₁)
(a : TensorProduct R H₁ H₂)
:
Bimodule.lsmul x (α • a) = α • Bimodule.lsmul x a
theorem
Bimodule.smul_rsmul
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(α : R)
(x : H₂)
(a : TensorProduct R H₁ H₂)
:
Bimodule.rsmul (α • a) x = α • Bimodule.rsmul a x
theorem
Bimodule.lsmul_lsmul
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₁)
(y : H₁)
(a : TensorProduct R H₁ H₂)
:
Bimodule.lsmul x (Bimodule.lsmul y a) = Bimodule.lsmul (x * y) a
theorem
Bimodule.rsmul_rsmul
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : H₂)
(y : H₂)
(a : TensorProduct R H₁ H₂)
:
Bimodule.rsmul (Bimodule.rsmul a x) y = Bimodule.rsmul a (x * y)
def
LinearMap.IsBimoduleMap
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(P : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂)
:
Equations
- P.IsBimoduleMap = ∀ (x : H₁) (y : H₂) (a : TensorProduct R H₁ H₂), P (Bimodule.rsmul (Bimodule.lsmul x a) y) = Bimodule.rsmul (Bimodule.lsmul x (P a)) y
Instances For
theorem
LinearMap.IsBimoduleMap.lsmul
{R : Type u_1}
{H₁ : Type u_3}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
{P : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂}
(hP : P.IsBimoduleMap)
(x : H₁)
(a : TensorProduct R H₁ H₂)
:
P (Bimodule.lsmul x a) = Bimodule.lsmul x (P a)
theorem
LinearMap.IsBimoduleMap.rsmul
{R : Type u_1}
{H₁ : Type u_3}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
{P : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂}
(hP : P.IsBimoduleMap)
(x : H₂)
(a : TensorProduct R H₁ H₂)
:
P (Bimodule.rsmul a x) = Bimodule.rsmul (P a) x
theorem
LinearMap.IsBimoduleMap.add
{R : Type u_1}
{H₁ : Type u_3}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
{P : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂}
{Q : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂}
(hP : P.IsBimoduleMap)
(hQ : Q.IsBimoduleMap)
:
(P + Q).IsBimoduleMap
theorem
LinearMap.isBimoduleMap.zero
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
:
theorem
LinearMap.IsBimoduleMap.smul
{R : Type u_1}
{H₁ : Type u_3}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
{x : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂}
(hx : x.IsBimoduleMap)
(k : R)
:
(k • x).IsBimoduleMap
theorem
LinearMap.IsBimoduleMap.nsmul
{R : Type u_1}
{H₁ : Type u_3}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
{x : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂}
(hx : x.IsBimoduleMap)
(k : ℕ)
:
(k • x).IsBimoduleMap
def
LinearMap.IsBimoduleMaps
(R : Type u_1)
(H₁ : Type u_2)
(H₂ : Type u_3)
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
:
Submodule R (TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂)
Equations
- LinearMap.IsBimoduleMaps R H₁ H₂ = { carrier := fun (x : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂) => x.IsBimoduleMap, add_mem' := ⋯, zero_mem' := ⋯, smul_mem' := ⋯ }
Instances For
@[simp]
theorem
LinearMap.IsBimoduleMaps.coe_add
{R : Type u_3}
{H₁ : Type u_1}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : ↥(LinearMap.IsBimoduleMaps R H₁ H₂))
(y : ↥(LinearMap.IsBimoduleMaps R H₁ H₂))
:
@[simp]
theorem
LinearMap.IsBimoduleMaps.coe_smul
{R : Type u_3}
{H₁ : Type u_1}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : ↥(LinearMap.IsBimoduleMaps R H₁ H₂))
(r : R)
:
@[simp]
theorem
LinearMap.IsBimoduleMaps.coe_nsmul
{R : Type u_3}
{H₁ : Type u_1}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : ↥(LinearMap.IsBimoduleMaps R H₁ H₂))
(r : ℕ)
:
theorem
LinearMap.isBimoduleMap_iff
{R : Type u_1}
{H₁ : Type u_3}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
{T : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂}
:
T.IsBimoduleMap ↔ ∀ (a : H₁) (b : H₂) (x : H₁) (y : H₂), T ((a * x) ⊗ₜ[R] (y * b)) = Bimodule.rsmul (Bimodule.lsmul a (T (x ⊗ₜ[R] y))) b
theorem
LinearMap.isBimoduleMap_iff_ltensor_lsmul_rtensor_rsmul
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[Field R]
[Ring H₁]
[Ring H₂]
[Algebra R H₁]
[Algebra R H₂]
{x : H₁ →ₗ[R] H₁}
{y : H₂ →ₗ[R] H₂}
:
(TensorProduct.map x y).IsBimoduleMap ↔ TensorProduct.map x y = 0 ∨ x = LinearMap.mulRight R (x 1) ∧ y = LinearMap.mulLeft R (y 1)
theorem
LinearMap.IsBimoduleMap.sum_coe
{R : Type u_4}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
{p : Type u_1}
{s : Finset p}
(x : p → ↥(LinearMap.IsBimoduleMaps R H₁ H₂))
:
↑(∑ i ∈ s, x i) = ∑ i ∈ s, ↑(x i)
theorem
rmulMapLmul_apply_apply
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : TensorProduct R H₁ H₂)
(a : H₁)
(b : H₂)
:
(rmulMapLmul x) (a ⊗ₜ[R] b) = Bimodule.rsmul (Bimodule.lsmul a x) b
theorem
LinearMap.isBimoduleMap_iff'
{R : Type u_1}
{H₁ : Type u_3}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
{f : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂}
:
@[simp]
theorem
rmulMapLmul_apply_one
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : TensorProduct R H₁ H₂)
:
(rmulMapLmul x) 1 = x
@[simp]
theorem
LinearMap.mem_isBimoduleMaps_iff
{R : Type u_1}
{H₁ : Type u_3}
{H₂ : Type u_2}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
{x : TensorProduct R H₁ H₂ →ₗ[R] TensorProduct R H₁ H₂}
:
x ∈ LinearMap.IsBimoduleMaps R H₁ H₂ ↔ x.IsBimoduleMap
theorem
rmulMapLmul_mem_isBimoduleMaps
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : TensorProduct R H₁ H₂)
:
rmulMapLmul x ∈ LinearMap.IsBimoduleMaps R H₁ H₂
noncomputable def
TensorProduct.toIsBimoduleMap
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
:
TensorProduct R H₁ H₂ ≃ₗ[R] ↥(LinearMap.IsBimoduleMaps R H₁ H₂)
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
TensorProduct.toIsBimoduleMap_symm_apply
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : ↥(LinearMap.IsBimoduleMaps R H₁ H₂))
:
TensorProduct.toIsBimoduleMap.symm x = ↑x 1
@[simp]
theorem
TensorProduct.toIsBimoduleMap_apply_coe
{R : Type u_1}
{H₁ : Type u_2}
{H₂ : Type u_3}
[CommSemiring R]
[Semiring H₁]
[Semiring H₂]
[Algebra R H₁]
[Algebra R H₂]
(x : TensorProduct R H₁ H₂)
:
↑(TensorProduct.toIsBimoduleMap x) = rmulMapLmul x