Skip to content

Commit c776b59

Browse files
committed
feat(RingTheory): invertible modules and Picard group (#25337)
1 parent 3ccdf0c commit c776b59

File tree

4 files changed

+547
-1
lines changed

4 files changed

+547
-1
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5569,6 +5569,7 @@ import Mathlib.RingTheory.OrzechProperty
55695569
import Mathlib.RingTheory.Perfection
55705570
import Mathlib.RingTheory.Perfectoid.Untilt
55715571
import Mathlib.RingTheory.PiTensorProduct
5572+
import Mathlib.RingTheory.PicardGroup
55725573
import Mathlib.RingTheory.Polynomial.Basic
55735574
import Mathlib.RingTheory.Polynomial.Bernstein
55745575
import Mathlib.RingTheory.Polynomial.Chebyshev

Mathlib/RingTheory/Finiteness/Cardinality.lean

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ Authors: Johan Commelin
55
-/
66
import Mathlib.LinearAlgebra.Basis.Cardinality
77
import Mathlib.LinearAlgebra.DFinsupp
8-
import Mathlib.LinearAlgebra.StdBasis
98
import Mathlib.LinearAlgebra.Isomorphisms
9+
import Mathlib.LinearAlgebra.StdBasis
1010
import Mathlib.RingTheory.Finiteness.Basic
1111

1212
/-!
@@ -83,3 +83,21 @@ lemma not_finite_of_infinite_basis [Nontrivial R] {ι} [Infinite ι] (b : Basis
8383
end Module
8484

8585
end ModuleAndAlgebra
86+
87+
namespace Module.Finite
88+
89+
universe u
90+
variable (R : Type u) (M : Type*) [Ring R] [AddCommGroup M] [Module R M] [Module.Finite R M]
91+
92+
/-- The kernel of a random surjective linear map from a finite free module
93+
to a given finite module. -/
94+
noncomputable def kerRepr := LinearMap.ker (Finite.exists_fin' R M).choose_spec.choose
95+
96+
/-- A representative of a finite module in the same universe as the ring. -/
97+
protected abbrev repr : Type u := _ ⧸ kerRepr R M
98+
99+
/-- The representative is isomorphic to the original module. -/
100+
noncomputable def reprEquiv : Finite.repr R M ≃ₗ[R] M :=
101+
LinearMap.quotKerEquivOfSurjective _ (Finite.exists_fin' R M).choose_spec.choose_spec
102+
103+
end Module.Finite

0 commit comments

Comments
 (0)