The tensor product of R-algebras.
We construct the R-algebra structure on A ⊗[R] B
, when A
and B
are both R
-algebras,
and provide the structure isomorphisms
R ⊗[R] A ≃ₐ[R] A
A ⊗[R] R ≃ₐ[R] A
A ⊗[R] B ≃ₐ[R] B ⊗[R] A
The code for
((A ⊗[R] B) ⊗[R] C) ≃ₐ[R] (A ⊗[R] (B ⊗[R] C))
is written and compiles, but takes longer than the-T100000
time limit, so is currently commented out.
(Implementation detail)
The multiplication map on A ⊗[R] B
,
for a fixed pure tensor in the first argument,
as an R
-linear map.
(Implementation detail)
The multiplication map on A ⊗[R] B
,
as an R
-bilinear map.
Equations
- algebra.tensor_product.mul = tensor_product.lift {to_fun := λ (a₁ : A), {to_fun := λ (b₁ : B), algebra.tensor_product.mul_aux a₁ b₁, map_add' := _, map_smul' := _}, map_add' := _, map_smul' := _}
Equations
- algebra.tensor_product.semiring = {add := has_add.add (add_semigroup.to_has_add (tensor_product R A B)), add_assoc := _, zero := 0, zero_add := _, add_zero := _, add_comm := _, mul := λ (a b : tensor_product R A B), ⇑(⇑algebra.tensor_product.mul a) b, mul_assoc := _, one := 1 ⊗ₜ[R] 1, one_mul := _, mul_one := _, zero_mul := _, mul_zero := _, left_distrib := _, right_distrib := _}
The algebra map R →+* (A ⊗[R] B)
giving A ⊗[R] B
the structure of an R
-algebra.
Equations
- algebra.tensor_product.algebra = {to_has_scalar := mul_action.to_has_scalar distrib_mul_action.to_mul_action, to_ring_hom := {to_fun := algebra.tensor_product.tensor_algebra_map.to_fun, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}, commutes' := _, smul_def' := _}
The algebra morphism A →ₐ[R] A ⊗[R] B
sending a
to a ⊗ₜ 1
.
The algebra morphism B →ₐ[R] A ⊗[R] B
sending b
to 1 ⊗ₜ b
.
Equations
- algebra.tensor_product.ring = {add := add_comm_group.add tensor_product.add_comm_group, add_assoc := _, zero := add_comm_group.zero tensor_product.add_comm_group, zero_add := _, add_zero := _, neg := add_comm_group.neg tensor_product.add_comm_group, add_left_neg := _, add_comm := _, mul := semiring.mul algebra.tensor_product.semiring, mul_assoc := _, one := semiring.one algebra.tensor_product.semiring, one_mul := _, mul_one := _, left_distrib := _, right_distrib := _}
Equations
- algebra.tensor_product.comm_ring = {add := ring.add algebra.tensor_product.ring, add_assoc := _, zero := ring.zero algebra.tensor_product.ring, zero_add := _, add_zero := _, neg := ring.neg algebra.tensor_product.ring, add_left_neg := _, add_comm := _, mul := ring.mul algebra.tensor_product.ring, mul_assoc := _, one := ring.one algebra.tensor_product.ring, one_mul := _, mul_one := _, left_distrib := _, right_distrib := _, mul_comm := _}
We now build the structure maps for the symmetric monoidal category of R
-algebras.
Build an algebra morphism from a linear map out of a tensor product, and evidence of multiplicativity on pure tensors.
Build an algebra equivalence from a linear equivalence out of a tensor product, and evidence of multiplicativity on pure tensors.
Build an algebra equivalence from a linear equivalence out of a triple tensor product, and evidence of multiplicativity on pure tensors.
The base ring is a left identity for the tensor product of algebra, up to algebra isomorphism.
Equations
The base ring is a right identity for the tensor product of algebra, up to algebra isomorphism.
Equations
The tensor product of R-algebras is commutative, up to algebra isomorphism.
Equations
The tensor product of a pair of algebra morphisms.
Construct an isomorphism between tensor products of R-algebras from isomorphisms between the tensor factors.
Equations
- algebra.tensor_product.congr f g = alg_equiv.of_alg_hom (algebra.tensor_product.map ↑f ↑g) (algebra.tensor_product.map ↑(f.symm) ↑(g.symm)) _ _