Documentation

Mathlib.LinearAlgebra.TensorProduct.Graded.Internal

Graded tensor products over graded algebras #

The graded tensor product $A \hat\otimes_R B$ is imbued with a multiplication defined on homogeneous tensors by:

$$(a \otimes b) \cdot (a' \otimes b') = (-1)^{\deg a' \deg b} (a \cdot a') \otimes (b \cdot b')$$

where $A$ and $B$ are algebras graded by , , or ι (or more generally, any index that satisfies Module ι (Additive ℤˣ)).

Main results #

Notation #

References #

Implementation notes #

We cannot put the multiplication on A ⊗[R] B directly as it would conflict with the existing multiplication defined without the $(-1)^{\deg a' \deg b}$ term. Furthermore, the ring A may not have a unique graduation, and so we need the chosen graduation 𝒜 to appear explicitly in the type.

TODO #

noncomputable def GradedTensorProduct (R : Type u_1) {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] :
Type (max u_4 u_3)

A Type synonym for A ⊗[R] B, but with multiplication as TensorProduct.gradedMul.

This has notation 𝒜 ᵍ⊗[R] ℬ.

Instances For
    @[implicit_reducible]
    instance instAddCommGroupWithOneGradedTensorProduct (R : Type u_3) {ι : Type u_4} {A : Type u_1} {B : Type u_2} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] :
    @[implicit_reducible]
    instance instModuleGradedTensorProduct (R : Type u_1) {ι : Type u_4} {A : Type u_2} {B : Type u_3} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] :

    A Type synonym for A ⊗[R] B, but with multiplication as TensorProduct.gradedMul.

    This has notation 𝒜 ᵍ⊗[R] ℬ.

    Instances For
      noncomputable def GradedTensorProduct.of (R : Type u_1) {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] :

      The casting equivalence to move between regular and graded tensor products.

      Instances For
        @[simp]
        theorem GradedTensorProduct.of_one {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] :
        (of R 𝒜 ) 1 = 1
        @[simp]
        theorem GradedTensorProduct.of_symm_one {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] :
        (of R 𝒜 ).symm 1 = 1
        @[simp]
        theorem GradedTensorProduct.of_symm_of {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] (x : TensorProduct R A B) :
        (of R 𝒜 ).symm ((of R 𝒜 ) x) = x
        @[simp]
        theorem GradedTensorProduct.symm_of_of {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] (x : GradedTensorProduct R 𝒜 ) :
        (of R 𝒜 ) ((of R 𝒜 ).symm x) = x
        theorem GradedTensorProduct.hom_ext {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] {M : Type u_5} [AddCommMonoid M] [Module R M] f g : GradedTensorProduct R 𝒜 →ₗ[R] M (h : f ∘ₗ (of R 𝒜 ) = g ∘ₗ (of R 𝒜 )) :
        f = g

        Two linear maps from the graded tensor product agree if they agree on the underlying tensor product.

        theorem GradedTensorProduct.hom_ext_iff {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] {𝒜 : ιSubmodule R A} { : ιSubmodule R B} [GradedAlgebra 𝒜] [GradedAlgebra ] {M : Type u_5} [AddCommMonoid M] [Module R M] {f g : GradedTensorProduct R 𝒜 →ₗ[R] M} :
        f = g f ∘ₗ (of R 𝒜 ) = g ∘ₗ (of R 𝒜 )
        @[reducible, inline]
        noncomputable abbrev GradedTensorProduct.tmul (R : Type u_1) {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] {𝒜 : ιSubmodule R A} { : ιSubmodule R B} [GradedAlgebra 𝒜] [GradedAlgebra ] (a : A) (b : B) :

        The graded tensor product of two elements of graded rings.

        Instances For

          The graded tensor product of two elements of graded rings.

          Instances For

            The graded tensor product of two elements of graded rings.

            Instances For
              noncomputable def GradedTensorProduct.auxEquiv (R : Type u_1) {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] :
              GradedTensorProduct R 𝒜 ≃ₗ[R] TensorProduct R (DirectSum ι fun (i : ι) => (𝒜 i)) (DirectSum ι fun (i : ι) => ( i))

              An auxiliary construction to move between the graded tensor product of internally-graded objects and the tensor product of direct sums.

              Instances For
                theorem GradedTensorProduct.auxEquiv_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] (a : A) (b : B) :
                theorem GradedTensorProduct.auxEquiv_one {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] :
                (auxEquiv R 𝒜 ) 1 = 1
                theorem GradedTensorProduct.auxEquiv_symm_one {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] :
                (auxEquiv R 𝒜 ).symm 1 = 1
                noncomputable def GradedTensorProduct.mulHom {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] :

                Auxiliary construction used to build the Mul instance and get distributivity of + and \smul.

                Instances For
                  theorem GradedTensorProduct.mulHom_apply {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] (x y : GradedTensorProduct R 𝒜 ) :
                  ((mulHom 𝒜 ) x) y = (auxEquiv R 𝒜 ).symm (((TensorProduct.gradedMul R (fun (x : ι) => (𝒜 x)) fun (x : ι) => ( x)) ((auxEquiv R 𝒜 ) x)) ((auxEquiv R 𝒜 ) y))
                  @[implicit_reducible]
                  noncomputable instance GradedTensorProduct.instMul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] :

                  The multiplication on the graded tensor product.

                  See GradedTensorProduct.coe_mul_coe for a characterization on pure tensors.

                  theorem GradedTensorProduct.mul_def {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] (x y : GradedTensorProduct R 𝒜 ) :
                  x * y = ((mulHom 𝒜 ) x) y
                  theorem GradedTensorProduct.auxEquiv_mul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] (x y : GradedTensorProduct R 𝒜 ) :
                  (auxEquiv R 𝒜 ) (x * y) = ((TensorProduct.gradedMul R (fun (x : ι) => (𝒜 x)) fun (x : ι) => ( x)) ((auxEquiv R 𝒜 ) x)) ((auxEquiv R 𝒜 ) y)
                  @[implicit_reducible]
                  noncomputable instance GradedTensorProduct.instMonoid {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] :
                  @[implicit_reducible]
                  noncomputable instance GradedTensorProduct.instRing {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] :
                  theorem GradedTensorProduct.tmul_coe_mul_coe_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {j₁ i₂ : ι} (a₁ : A) (b₁ : ( j₁)) (a₂ : (𝒜 i₂)) (b₂ : B) :
                  a₁ ᵍ⊗ₜ[R] b₁ * a₂ ᵍ⊗ₜ[R] b₂ = (-1) ^ (j₁ * i₂) (a₁ * a₂) ᵍ⊗ₜ[R] (b₁ * b₂)

                  The characterization of this multiplication on partially homogeneous elements.

                  theorem GradedTensorProduct.tmul_zero_coe_mul_coe_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {i₂ : ι} (a₁ : A) (b₁ : ( 0)) (a₂ : (𝒜 i₂)) (b₂ : B) :
                  a₁ ᵍ⊗ₜ[R] b₁ * a₂ ᵍ⊗ₜ[R] b₂ = (a₁ * a₂) ᵍ⊗ₜ[R] (b₁ * b₂)

                  A special case for when b₁ has grade 0.

                  theorem GradedTensorProduct.tmul_coe_mul_zero_coe_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {j₁ : ι} (a₁ : A) (b₁ : ( j₁)) (a₂ : (𝒜 0)) (b₂ : B) :
                  a₁ ᵍ⊗ₜ[R] b₁ * a₂ ᵍ⊗ₜ[R] b₂ = (a₁ * a₂) ᵍ⊗ₜ[R] (b₁ * b₂)

                  A special case for when a₂ has grade 0.

                  theorem GradedTensorProduct.tmul_one_mul_coe_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {i₂ : ι} (a₁ : A) (a₂ : (𝒜 i₂)) (b₂ : B) :
                  a₁ ᵍ⊗ₜ[R] 1 * a₂ ᵍ⊗ₜ[R] b₂ = (a₁ * a₂) ᵍ⊗ₜ[R] b₂
                  theorem GradedTensorProduct.tmul_coe_mul_one_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {j₁ : ι} (a₁ : A) (b₁ : ( j₁)) (b₂ : B) :
                  a₁ ᵍ⊗ₜ[R] b₁ * 1 ᵍ⊗ₜ[R] b₂ = a₁ ᵍ⊗ₜ[R] (b₁ * b₂)
                  theorem GradedTensorProduct.tmul_one_mul_one_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] (a₁ : A) (b₂ : B) :
                  a₁ ᵍ⊗ₜ[R] 1 * 1 ᵍ⊗ₜ[R] b₂ = a₁ ᵍ⊗ₜ[R] b₂
                  noncomputable def GradedTensorProduct.includeLeftRingHom {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] :

                  The ring morphism A →+* A ⊗[R] B sending a to a ⊗ₜ 1.

                  Instances For
                    @[simp]
                    theorem GradedTensorProduct.includeLeftRingHom_apply {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] (a : A) :
                    (includeLeftRingHom 𝒜 ) a = a ᵍ⊗ₜ[R] 1
                    @[implicit_reducible]
                    noncomputable instance GradedTensorProduct.instAlgebra {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] :
                    theorem GradedTensorProduct.algebraMap_def {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] (r : R) :
                    (algebraMap R (GradedTensorProduct R 𝒜 )) r = (algebraMap R A) r ᵍ⊗ₜ[R] 1
                    theorem GradedTensorProduct.tmul_algebraMap_mul_coe_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {i₂ : ι} (a₁ : A) (r : R) (a₂ : (𝒜 i₂)) (b₂ : B) :
                    a₁ ᵍ⊗ₜ[R] (algebraMap R B) r * a₂ ᵍ⊗ₜ[R] b₂ = (a₁ * a₂) ᵍ⊗ₜ[R] ((algebraMap R B) r * b₂)
                    theorem GradedTensorProduct.tmul_coe_mul_algebraMap_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {j₁ : ι} (a₁ : A) (b₁ : ( j₁)) (r : R) (b₂ : B) :
                    a₁ ᵍ⊗ₜ[R] b₁ * (algebraMap R A) r ᵍ⊗ₜ[R] b₂ = (a₁ * (algebraMap R A) r) ᵍ⊗ₜ[R] (b₁ * b₂)
                    noncomputable def GradedTensorProduct.includeLeft {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] :

                    The algebra morphism A →ₐ[R] A ⊗[R] B sending a to a ⊗ₜ 1.

                    Instances For
                      @[simp]
                      theorem GradedTensorProduct.includeLeft_apply {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] (a : A) :
                      (includeLeft 𝒜 ) a = a ᵍ⊗ₜ[R] 1
                      noncomputable def GradedTensorProduct.includeRight {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] :

                      The algebra morphism B →ₐ[R] A ⊗[R] B sending b to 1 ⊗ₜ b.

                      Instances For
                        @[simp]
                        theorem GradedTensorProduct.includeRight_apply {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] (a : B) :
                        (includeRight 𝒜 ) a = 1 ᵍ⊗ₜ[R] a
                        theorem GradedTensorProduct.algebraMap_def' {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] (r : R) :
                        (algebraMap R (GradedTensorProduct R 𝒜 )) r = 1 ᵍ⊗ₜ[R] (algebraMap R B) r
                        noncomputable def GradedTensorProduct.lift {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {C : Type u_5} [Ring C] [Algebra R C] (f : A →ₐ[R] C) (g : B →ₐ[R] C) (h_anti_commutes : ∀ ⦃i j : ι⦄ (a : (𝒜 i)) (b : ( j)), f a * g b = (-1) ^ (j * i) (g b * f a)) :

                        The forwards direction of the universal property; an algebra morphism out of the graded tensor product can be assembled from maps on each component that (anti)commute on pure elements of the corresponding graded algebras.

                        Instances For
                          @[simp]
                          theorem GradedTensorProduct.lift_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {C : Type u_5} [Ring C] [Algebra R C] (f : A →ₐ[R] C) (g : B →ₐ[R] C) (h_anti_commutes : ∀ ⦃i j : ι⦄ (a : (𝒜 i)) (b : ( j)), f a * g b = (-1) ^ (j * i) (g b * f a)) (a : A) (b : B) :
                          (lift 𝒜 f g h_anti_commutes) (a ᵍ⊗ₜ[R] b) = f a * g b
                          noncomputable def GradedTensorProduct.liftEquiv {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {C : Type u_5} [Ring C] [Algebra R C] :
                          { fg : (A →ₐ[R] C) × (B →ₐ[R] C) // ∀ ⦃i j : ι⦄ (a : (𝒜 i)) (b : ( j)), fg.1 a * fg.2 b = (-1) ^ (j * i) (fg.2 b * fg.1 a) } (GradedTensorProduct R 𝒜 →ₐ[R] C)

                          The universal property of the graded tensor product; every algebra morphism uniquely factors as a pair of algebra morphisms that anticommute with respect to the grading.

                          Instances For
                            theorem GradedTensorProduct.algHom_ext {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {C : Type u_5} [Ring C] [Algebra R C] f g : GradedTensorProduct R 𝒜 →ₐ[R] C (ha : f.comp (includeLeft 𝒜 ) = g.comp (includeLeft 𝒜 )) (hb : f.comp (includeRight 𝒜 ) = g.comp (includeRight 𝒜 )) :
                            f = g

                            Two algebra morphism from the graded tensor product agree if their compositions with the left and right inclusions agree.

                            theorem GradedTensorProduct.algHom_ext_iff {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] {𝒜 : ιSubmodule R A} { : ιSubmodule R B} [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {C : Type u_5} [Ring C] [Algebra R C] {f g : GradedTensorProduct R 𝒜 →ₐ[R] C} :
                            f = g f.comp (includeLeft 𝒜 ) = g.comp (includeLeft 𝒜 ) f.comp (includeRight 𝒜 ) = g.comp (includeRight 𝒜 )
                            noncomputable def GradedTensorProduct.comm {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] :

                            The non-trivial symmetric braiding, sending $a \otimes b$ to $(-1)^{\deg a' \deg b} (b \otimes a)$.

                            Instances For
                              theorem GradedTensorProduct.auxEquiv_comm {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] (x : GradedTensorProduct R 𝒜 ) :
                              (auxEquiv R 𝒜) ((comm 𝒜 ) x) = (TensorProduct.gradedComm R (fun (x : ι) => (𝒜 x)) fun (x : ι) => ( x)) ((auxEquiv R 𝒜 ) x)
                              @[simp]
                              theorem GradedTensorProduct.comm_coe_tmul_coe {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ιSubmodule R A) ( : ιSubmodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ] [Module ι (Additive ˣ)] {i j : ι} (a : (𝒜 i)) (b : ( j)) :
                              (comm 𝒜 ) (a ᵍ⊗ₜ[R] b) = (-1) ^ (j * i) b ᵍ⊗ₜ[R] a