The characteristic predicate of tensor product #
Main definitions #
IsTensorProduct: A predicate onf : M₁ →ₗ[R] M₂ →ₗ[R] Mexpressing thatfrealizesMas the tensor product ofM₁ ⊗[R] M₂. This is defined by requiring the liftM₁ ⊗[R] M₂ → Mto be bijective.IsBaseChange: A predicate on anR-algebraSand a mapf : M →ₗ[R] NwithNbeing anS-module, expressing thatfrealizesNas the base change ofMalongR → S.Algebra.IsPushout: A predicate on the following diagram of scalar towers
asserting that is a pushout diagram (i.e.R → S ↓ ↓ R' → S'S' = S ⊗[R] R')
Main results #
TensorProduct.isBaseChange:S ⊗[R] Mis the base change ofMalongR → S.
Given a bilinear map f : M₁ →ₗ[R] M₂ →ₗ[R] M, IsTensorProduct f means that
M is the tensor product of M₁ and M₂ via f.
This is defined by requiring the lift M₁ ⊗[R] M₂ → M to be bijective.
Equations
Instances For
If M is the tensor product of M₁ and M₂, it is linearly equivalent to M₁ ⊗[R] M₂.
Equations
Instances For
If M is the tensor product of M₁ and M₂, we may lift a bilinear map M₁ →ₗ[R] M₂ →ₗ[R] M'
to a M →ₗ[R] M'.
Equations
Instances For
The tensor product of a pair of linear maps between modules.
Equations
- IsTensorProduct.map hf hg i₁ i₂ = LinearMap.comp (↑(IsTensorProduct.equiv hg)) (LinearMap.comp (TensorProduct.map i₁ i₂) ↑(LinearEquiv.symm (IsTensorProduct.equiv hf)))
Instances For
Given an R-algebra S and an R-module M, an S-module N together with a map
f : M →ₗ[R] N is the base change of M to S if the map S × M → N, (s, m) ↦ s • f m is the
tensor product.
Equations
- IsBaseChange S f = IsTensorProduct (↑R ((LinearMap.flip (Algebra.linearMap S (Module.End S (M →ₗ[R] N)))) f))
Instances For
Suppose f : M →ₗ[R] N is the base change of M along R → S. Then any R-linear map from
M to an S-module factors through f.
Equations
- IsBaseChange.lift h g = let __src := IsTensorProduct.lift h (↑R ((LinearMap.flip (Algebra.linearMap S (Module.End S (M →ₗ[R] Q)))) g)); { toAddHom := __src.toAddHom, map_smul' := ⋯ }
Instances For
The base change of M along R → S is linearly equivalent to S ⊗[R] M.
Equations
- IsBaseChange.equiv h = let __src := IsTensorProduct.equiv h; { toLinearMap := { toAddHom := __src.toAddHom, map_smul' := ⋯ }, invFun := __src.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
A type-class stating that the following diagram of scalar towers
R → S
↓ ↓
R' → S'
is a pushout diagram (i.e. S' = S ⊗[R] R')
- out : IsBaseChange S (AlgHom.toLinearMap (IsScalarTower.toAlgHom R R' S'))
Instances
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
If S' = S ⊗[R] R', then any pair of R-algebra homomorphisms f : S → A and g : R' → A
such that f x and g y commutes for all x, y descends to a (unique) homomorphism S' → A.
Equations
- Algebra.pushoutDesc S' f g hf = let_fun this := ⋯; AlgHom.ofLinearMap (↑R (IsBaseChange.lift ⋯ (AlgHom.toLinearMap g))) ⋯ ⋯