Under CommRingCat
#
In this file we provide basic API for Under R
when R : CommRingCat
. Under R
is
(equivalent to) the category of commutative R
-algebras. For not necessarily commutative
algebras, use AlgebraCat R
instead.
instance
CommRingCat.instCoeSortUnderType
{R : CommRingCat}
:
CoeSort (CategoryTheory.Under R) (Type u)
Equations
- CommRingCat.instCoeSortUnderType = { coe := fun (A : CategoryTheory.Under R) => ↑A.right }
instance
CommRingCat.instAlgebraCarrierRightDiscretePUnit
{R : CommRingCat}
(A : CategoryTheory.Under R)
:
Algebra ↑R ↑A.right
Equations
- CommRingCat.instAlgebraCarrierRightDiscretePUnit A = A.hom.hom.toAlgebra
Turn a morphism in Under R
into an algebra homomorphism.
Equations
- CommRingCat.toAlgHom f = { toRingHom := f.right.hom, commutes' := ⋯ }
Instances For
@[simp]
theorem
CommRingCat.toAlgHom_id
{R : CommRingCat}
(A : CategoryTheory.Under R)
:
CommRingCat.toAlgHom (CategoryTheory.CategoryStruct.id A) = AlgHom.id ↑R ↑A.right
@[simp]
theorem
CommRingCat.toAlgHom_comp
{R : CommRingCat}
{A B C : CategoryTheory.Under R}
(f : A ⟶ B)
(g : B ⟶ C)
:
@[simp]
theorem
CommRingCat.toAlgHom_apply
{R : CommRingCat}
{A B : CategoryTheory.Under R}
(f : A ⟶ B)
(a : ↑A.right)
:
(CommRingCat.toAlgHom f) a = f.right.hom a
Make an object of Under R
from an R
-algebra.
Equations
- R.mkUnder A = CategoryTheory.Under.mk (CommRingCat.ofHom (algebraMap (↑R) A))
Instances For
@[simp]
theorem
CommRingCat.mkUnder_hom
(R : CommRingCat)
(A : Type u)
[CommRing A]
[Algebra (↑R) A]
:
(R.mkUnder A).hom = CommRingCat.ofHom (algebraMap (↑R) A)
theorem
CommRingCat.mkUnder_right
(R : CommRingCat)
(A : Type u)
[CommRing A]
[Algebra (↑R) A]
:
(R.mkUnder A).right = CommRingCat.of A
theorem
CommRingCat.mkUnder_ext
{R : CommRingCat}
{A : Type u}
[CommRing A]
[Algebra (↑R) A]
{B : CategoryTheory.Under R}
{f g : R.mkUnder A ⟶ B}
(h : ∀ (a : A), f.right.hom a = g.right.hom a)
:
f = g
def
AlgHom.toUnder
{R : CommRingCat}
{A B : Type u}
[CommRing A]
[CommRing B]
[Algebra (↑R) A]
[Algebra (↑R) B]
(f : A →ₐ[↑R] B)
:
R.mkUnder A ⟶ R.mkUnder B
Make a morphism in Under R
from an algebra map.
Equations
- f.toUnder = CategoryTheory.Under.homMk (CommRingCat.ofHom f.toRingHom) ⋯
Instances For
def
AlgEquiv.toUnder
{R : CommRingCat}
{A B : Type u}
[CommRing A]
[CommRing B]
[Algebra (↑R) A]
[Algebra (↑R) B]
(f : A ≃ₐ[↑R] B)
:
R.mkUnder A ≅ R.mkUnder B
Make an isomorphism in Under R
from an algebra isomorphism.
Equations
- f.toUnder = { hom := (↑f).toUnder, inv := (↑f.symm).toUnder, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
The base change functor A ↦ S ⊗[R] A
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CommRingCat.tensorProd_map_right
(R S : CommRingCat)
[Algebra ↑R ↑S]
{X✝ Y✝ : CategoryTheory.Under R}
(f : X✝ ⟶ Y✝)
:
((R.tensorProd S).map f).right = CommRingCat.ofHom ↑(Algebra.TensorProduct.map (AlgHom.id ↑S ↑S) (CommRingCat.toAlgHom f))
def
CommRingCat.tensorProdObjIsoPushoutObj
{R : CommRingCat}
(S : CommRingCat)
[Algebra ↑R ↑S]
(A : CategoryTheory.Under R)
:
S.mkUnder (TensorProduct ↑R ↑S ↑A.right) ≅ (CategoryTheory.Under.pushout (CommRingCat.ofHom (algebraMap ↑R ↑S))).obj A
The natural isomorphism S ⊗[R] A ≅ pushout A.hom (algebraMap R S)
in Under S
.
Equations
- CommRingCat.tensorProdObjIsoPushoutObj S A = CategoryTheory.Under.isoMk ⋯.isoPushout ⋯
Instances For
@[simp]
theorem
CommRingCat.pushout_inl_tensorProdObjIsoPushoutObj_inv_right
{R S : CommRingCat}
[Algebra ↑R ↑S]
(A : CategoryTheory.Under R)
:
CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl A.hom (CommRingCat.ofHom (algebraMap ↑R ↑S)))
(CommRingCat.tensorProdObjIsoPushoutObj S A).inv.right = CommRingCat.ofHom Algebra.TensorProduct.includeRight.toRingHom
@[simp]
theorem
CommRingCat.pushout_inl_tensorProdObjIsoPushoutObj_inv_right_assoc
{R S : CommRingCat}
[Algebra ↑R ↑S]
(A : CategoryTheory.Under R)
{Z : CommRingCat}
(h : (S.mkUnder (TensorProduct ↑R ↑S ↑A.right)).right ⟶ Z)
:
CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inl A.hom (CommRingCat.ofHom (algebraMap ↑R ↑S)))
(CategoryTheory.CategoryStruct.comp (CommRingCat.tensorProdObjIsoPushoutObj S A).inv.right h) = CategoryTheory.CategoryStruct.comp (CommRingCat.ofHom Algebra.TensorProduct.includeRight.toRingHom) h
@[simp]
theorem
CommRingCat.pushout_inr_tensorProdObjIsoPushoutObj_inv_right
{R S : CommRingCat}
[Algebra ↑R ↑S]
(A : CategoryTheory.Under R)
:
CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inr A.hom (CommRingCat.ofHom (algebraMap ↑R ↑S)))
(CommRingCat.tensorProdObjIsoPushoutObj S A).inv.right = CommRingCat.ofHom Algebra.TensorProduct.includeLeftRingHom
@[simp]
theorem
CommRingCat.pushout_inr_tensorProdObjIsoPushoutObj_inv_right_assoc
{R S : CommRingCat}
[Algebra ↑R ↑S]
(A : CategoryTheory.Under R)
{Z : CommRingCat}
(h : (S.mkUnder (TensorProduct ↑R ↑S ↑A.right)).right ⟶ Z)
:
CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pushout.inr A.hom (CommRingCat.ofHom (algebraMap ↑R ↑S)))
(CategoryTheory.CategoryStruct.comp (CommRingCat.tensorProdObjIsoPushoutObj S A).inv.right h) = CategoryTheory.CategoryStruct.comp (CommRingCat.ofHom Algebra.TensorProduct.includeLeftRingHom) h
def
CommRingCat.tensorProdIsoPushout
(R S : CommRingCat)
[Algebra ↑R ↑S]
:
R.tensorProd S ≅ CategoryTheory.Under.pushout (CommRingCat.ofHom (algebraMap ↑R ↑S))
A ↦ S ⊗[R] A
is naturally isomorphic to A ↦ pushout A.hom (algebraMap R S)
.
Equations
- R.tensorProdIsoPushout S = CategoryTheory.NatIso.ofComponents (fun (A : CategoryTheory.Under R) => CommRingCat.tensorProdObjIsoPushoutObj S A) ⋯
Instances For
@[simp]
theorem
CommRingCat.tensorProdIsoPushout_app
{R S : CommRingCat}
[Algebra ↑R ↑S]
(A : CategoryTheory.Under R)
:
(R.tensorProdIsoPushout S).app A = CommRingCat.tensorProdObjIsoPushoutObj S A