The Picard group of a commutative ring #
This file defines the Picard group CommRing.Pic R
of a commutative ring R
as the type of
invertible R
-modules (in the sense that M
is invertible if there exists another R
-module
N
such that M ⊗[R] N ≃ₗ[R] R
) up to isomorphism, equipped with tensor product as multiplication.
Main definition #
Module.Invertible R M
says that the canonical mapMᵛ ⊗[R] M → R
is an isomorphism. To show thatM
is invertible, it suffices to provide an arbitraryR
-moduleN
and an isomorphismN ⊗[R] M ≃ₗ[R] R
, seeModule.Invertible.right
.
Main results #
An invertible module is finite and projective (provided as instances).
Module.Invertible.free_iff_linearEquiv
: an invertible module is free iff it is isomorphic to the ring, i.e. its class is trivial in the Picard group.
References #
- https://qchu.wordpress.com/2014/10/19/the-picard-groups/
- https://mathoverflow.net/questions/13768/what-is-the-right-definition-of-the-picard-group-of-a-commutative-ring
- https://mathoverflow.net/questions/375725/picard-group-vs-class-group
- [Wei13], https://sites.math.rutgers.edu/~weibel/Kbook/Kbook.I.pdf, Proposition 3.5.
- Stacks: Picard groups of rings
TODO #
Show:
The Picard group of a commutative domain is isomorphic to its ideal class group.
All commutative semi-local rings, in particular Artinian rings, have trivial Picard group.
All unique factorization domains have trivial Picard group.
Invertible modules over a commutative ring have the same cardinality as the ring.
Establish other characterizations of invertible modules, e.g. they are modules that become free of rank one when localized at every prime ideal. See Stacks: Finite projective modules.
Connect to invertible sheaves on
Spec R
. More generally, connect projectiveR
-modules of constant finite rank to locally free sheaves onSpec R
.Exhibit isomorphism with sheaf cohomology
H¹(Spec R, 𝓞ˣ)
.
An R
-module M
is invertible if the canonical map Mᵛ ⊗[R] M → R
is an isomorphism,
where Mᵛ
is the R
-dual of M
.
- bijective : Function.Bijective ⇑(contractLeft R M)
Instances
Promote the canonical map Mᵛ ⊗[R] M → R
to a linear equivalence for invertible M
.
Equations
Instances For
The canonical isomorphism between a module and the result of tensoring it from the left by two mutually dual invertible modules.
Equations
- Module.Invertible.leftCancelEquiv P e = ((TensorProduct.assoc R M N P).symm.trans (LinearEquiv.rTensor P e)).trans (TensorProduct.lid R P)
Instances For
The canonical isomorphism between a module and the result of tensoring it from the right by two mutually dual invertible modules.
Equations
- Module.Invertible.rightCancelEquiv P e = ((TensorProduct.assoc R P M N).trans (LinearEquiv.lTensor P e)).trans (TensorProduct.rid R P)
Instances For
If M is invertible, rTensorHom M
admits an inverse.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If M
is an invertible R
-module, (· ⊗[R] M)
is an auto-equivalence of the category
of R
-modules.
Equations
- Module.Invertible.rTensorEquiv P Q e = { toLinearMap := LinearMap.rTensorHom M, invFun := ⇑(Module.Invertible.rTensorInv P Q e), left_inv := ⋯, right_inv := ⋯ }
Instances For
If there is an R
-isomorphism between M ⊗[R] N
and R
,
the induced map M → Nᵛ
is an isomorphism.
Given M ⊗[R] N ≃ₗ[R] R
, this is the induced isomorphism M ≃ₗ[R] Nᵛ
.
Equations
Instances For
An invertible module is free iff it is isomorphic to the ring, i.e. its class is trivial in the Picard group.
An invertible R
-module embeds into an R
-algebra that R
injects into,
provided A ⊗[R] M
is a free A
-module.
Equations
- Module.Invertible.embAlgebra R M A = ↑(LinearEquiv.restrictScalars R ⋯.some) ∘ₗ LinearMap.rTensor M (Algebra.ofId R A).toLinearMap ∘ₗ ↑(TensorProduct.lid R M).symm
Instances For
An invertible R
-module as a R
-submodule of an R
-algebra.
Equations
Instances For
The Picard group of a commutative ring R consists of the invertible R-modules, up to isomorphism.
Equations
Instances For
Equations
A representative of an element in the Picard group.
Equations
- M.AsModule = ↑(Quotient.out ↑((equivShrink (CategoryTheory.Skeleton (ModuleCat R))ˣ).symm M))
Instances For
Equations
- CommRing.Pic.instCoeSortType R = { coe := CommRing.Pic.AsModule }
The class of an invertible module in the Picard group.
Equations
- One or more equations did not get rendered due to their size.
Instances For
mk R M
is indeed the class of M
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given two invertible R
-submodules in an R
-algebra A
, the R
-linear map from
I ⊗[R] J
to I * J
induced by multiplication is an isomorphism.
Equations
- Submodule.tensorEquivMul S I J = LinearEquiv.ofBijective ((↑I).mulMap' ↑J) ⋯
Instances For
Given an invertible R
-submodule I
in an R
-algebra A
, the R
-linear map
from I ⊗[R] I⁻¹
to R
induced by multiplication is an isomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The group homomorphism from the invertible submodules
in a localization of R
to the Picard group of R
.
Equations
- Submodule.unitsToPic R A S = { toFun := fun (I : (Submodule R A)ˣ) => CommRing.Pic.mk R ↥↑I, map_one' := ⋯, map_mul' := ⋯ }