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_3 u_4)

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

This has notation 𝒜 ᵍ⊗[R] ℬ.

Equations
Instances For

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

    This has notation 𝒜 ᵍ⊗[R] ℬ.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable instance GradedTensorProduct.instAddCommGroupWithOne {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 ℬ] :
      Equations
      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.

      Equations
      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 ℬ] :
        (GradedTensorProduct.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 ℬ] :
        @[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) :
        @[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 𝒜 ℬ) :
        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 : GradedTensorProduct R 𝒜 ℬ →ₗ[R] M⦄ ⦃g : GradedTensorProduct R 𝒜 ℬ →ₗ[R] M⦄ (h : f ∘ₗ ↑(GradedTensorProduct.of R 𝒜 ℬ) = g ∘ₗ ↑(GradedTensorProduct.of R 𝒜 ℬ)) :
        f = g

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

        @[inline, reducible]
        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.

        Equations
        Instances For

          The graded tensor product of two elements of graded rings.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            The graded tensor product of two elements of graded rings.

            Equations
            • One or more equations did not get rendered due to their size.
            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.

              Equations
              • One or more equations did not get rendered due to their size.
              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 ℬ] :
                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 ℬ] :
                noncomputable def GradedTensorProduct.mulHom {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] :

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

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem GradedTensorProduct.mulHom_apply {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] (x : GradedTensorProduct R 𝒜 ℬ) (y : GradedTensorProduct R 𝒜 ℬ) :
                  ((GradedTensorProduct.mulHom 𝒜 ℬ) x) y = (LinearEquiv.symm (GradedTensorProduct.auxEquiv R 𝒜 ℬ)) (((TensorProduct.gradedMul R (fun (x : ι) => ↥(𝒜 x)) fun (x : ι) => ↥(ℬ x)) ((GradedTensorProduct.auxEquiv R 𝒜 ℬ) x)) ((GradedTensorProduct.auxEquiv R 𝒜 ℬ) y))
                  noncomputable instance GradedTensorProduct.instMulGradedTensorProduct {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] :

                  The multipication on the graded tensor product.

                  See GradedTensorProduct.coe_mul_coe for a characterization on pure tensors.

                  Equations
                  theorem GradedTensorProduct.mul_def {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] (x : GradedTensorProduct R 𝒜 ℬ) (y : GradedTensorProduct R 𝒜 ℬ) :
                  x * y = ((GradedTensorProduct.mulHom 𝒜 ℬ) x) y
                  theorem GradedTensorProduct.auxEquiv_mul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] (x : GradedTensorProduct R 𝒜 ℬ) (y : GradedTensorProduct R 𝒜 ℬ) :
                  (GradedTensorProduct.auxEquiv R 𝒜 ℬ) (x * y) = ((TensorProduct.gradedMul R (fun (x : ι) => ↥(𝒜 x)) fun (x : ι) => ↥(ℬ x)) ((GradedTensorProduct.auxEquiv R 𝒜 ℬ) x)) ((GradedTensorProduct.auxEquiv R 𝒜 ℬ) y)
                  noncomputable instance GradedTensorProduct.instMonoid {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] :
                  Equations
                  noncomputable instance GradedTensorProduct.instRing {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] :
                  Equations
                  • One or more equations did not get rendered due to their size.
                  theorem GradedTensorProduct.tmul_coe_mul_coe_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {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 homogenous 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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {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 ι] [Module ι (Additive ℤˣ)] [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) :
                  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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] :

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

                  Equations
                  Instances For
                    @[simp]
                    theorem GradedTensorProduct.includeLeftRingHom_apply {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] (a : A) :
                    noncomputable instance GradedTensorProduct.instAlgebra {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] :
                    Equations
                    theorem GradedTensorProduct.algebraMap_def {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] (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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] :

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

                    Equations
                    Instances For
                      @[simp]
                      theorem GradedTensorProduct.includeLeft_apply {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] (a : A) :
                      noncomputable def GradedTensorProduct.includeRight {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] :

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

                      Equations
                      Instances For
                        @[simp]
                        theorem GradedTensorProduct.includeRight_apply {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] (a : B) :
                        theorem GradedTensorProduct.algebraMap_def' {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] (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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {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 assembed from maps on each component that (anti)commute on pure elements of the corresponding graded algebras.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem GradedTensorProduct.lift_tmul {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {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) :
                          (GradedTensorProduct.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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {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.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            theorem GradedTensorProduct.algHom_ext {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {C : Type u_5} [Ring C] [Algebra R C] ⦃f : GradedTensorProduct R 𝒜 ℬ →ₐ[R] C⦄ ⦃g : GradedTensorProduct R 𝒜 ℬ →ₐ[R] C⦄ (ha : AlgHom.comp f (GradedTensorProduct.includeLeft 𝒜 ℬ) = AlgHom.comp g (GradedTensorProduct.includeLeft 𝒜 ℬ)) (hb : AlgHom.comp f (GradedTensorProduct.includeRight 𝒜 ℬ) = AlgHom.comp g (GradedTensorProduct.includeRight 𝒜 ℬ)) :
                            f = g

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

                            noncomputable def GradedTensorProduct.comm {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] :

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

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              theorem GradedTensorProduct.auxEquiv_comm {R : Type u_1} {ι : Type u_2} {A : Type u_3} {B : Type u_4} [CommSemiring ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] (x : GradedTensorProduct R 𝒜 ℬ) :
                              (GradedTensorProduct.auxEquiv R ℬ 𝒜) ((GradedTensorProduct.comm 𝒜 ℬ) x) = (TensorProduct.gradedComm R (fun (x : ι) => ↥(𝒜 x)) fun (x : ι) => ↥(ℬ x)) ((GradedTensorProduct.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 ι] [Module ι (Additive ℤˣ)] [DecidableEq ι] [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B] (𝒜 : ι → Submodule R A) (ℬ : ι → Submodule R B) [GradedAlgebra 𝒜] [GradedAlgebra ℬ] {i : ι} {j : ι} (a : ↥(𝒜 i)) (b : ↥(ℬ j)) :
                              (GradedTensorProduct.comm 𝒜 ℬ) (↑a ᵍ⊗ₜ[R] ↑b) = (-1) ^ (j * i) • ↑b ᵍ⊗ₜ[R] ↑a