The characteristice predicate of tensor product #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Main definitions #
is_tensor_product: 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.is_base_change: A predicate on anR-algebraSand a mapf : M →ₗ[R] NwithNbeing aS-module, expressing thatfrealizesNas the base change ofMalongR → S.algebra.is_pushout: A predicate on the following diagram of scalar towersasserting that is a pushout diagram (i.e.R → S ↓ ↓ R' → S'S' = S ⊗[R] R')
Main results #
tensor_product.is_base_change:S ⊗[R] Mis the base change ofMalongR → S.
Given a bilinear map f : M₁ →ₗ[R] M₂ →ₗ[R] M, is_tensor_product 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
If M is the tensor product of M₁ and M₂, it is linearly equivalent to M₁ ⊗[R] M₂.
Equations
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
- h.lift f' = (tensor_product.lift f').comp h.equiv.symm.to_linear_map
The tensor product of a pair of linear maps between modules.
Equations
- hf.map hg i₁ i₂ = hg.equiv.to_linear_map.comp ((tensor_product.map i₁ i₂).comp hf.equiv.symm.to_linear_map)
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
- is_base_change S f = is_tensor_product (linear_map.restrict_scalars R (⇑((algebra.of_id S (module.End S (M →ₗ[R] N))).to_linear_map.flip) f))
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 thorugh f.
Equations
- h.lift g = {to_fun := (is_tensor_product.lift h (linear_map.restrict_scalars R (⇑((algebra.of_id S (module.End S (M →ₗ[R] Q))).to_linear_map.flip) g))).to_fun, map_add' := _, map_smul' := _}
The base change of M along R → S is linearly equivalent to S ⊗[R] M.
- out : is_base_change S (is_scalar_tower.to_alg_hom R R' S').to_linear_map
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')
Instances of this typeclass
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) homomoprhism S' → A.
Equations
- algebra.pushout_desc S' f g hf = let _inst : module S A := module.comp_hom A f.to_ring_hom in alg_hom.of_linear_map (linear_map.restrict_scalars R (algebra.is_pushout.out.lift g.to_linear_map)) _ _