Foundational corpus mapping FC04 Atiyah Macdonald
Status: Sweep II complete. C01–C11 are complete.
Canonical catalogue: FC04 — Atiyah–Macdonald, Introduction to Commutative Algebra.
Pinned project baseline: Mathlib db584cd6d46c92f209a44c0f1c829460d327499d, Lean 4.33.0. Current Mathlib was refreshed 2026-09-06 to 5aedf732b6987e8c26ab3c9ebc855314f82b045f; declarations first appearing after the project pin are reference-port routes, not pinned Mathlib.
Every canonical unit receives exactly one Sweep-II route: mathlib, project-existing, package-import, reference-port, or unmatched. Project source is searched first, followed by pinned/current Mathlib, open/current work, indexed search services, Reservoir/GitHub, and relevant external Lean repositories. External routes record exact revision and compatibility; unmatched rows carry dated scoped negative evidence.
Provenance contract for C01
Chapter 1. Rings and ideals
Provenance contract for C02
Provenance contract for C07
Chapter 7. Noetherian Rings
Provenance contract for C08
Chapter 8. Artin Rings
Provenance contract for C09
Chapter 9. Discrete Valuation Rings and Dedekind Domains
Provenance contract for C10
Chapter 10. Completions
Provenance contract for C11
Chapter 11. Dimension Theory
Chapter 2. Modules
| FC04 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC04-C02-U001 |
exact equivalence of structures | mathlib |
Mathlib/Algebra/Module/End.lean::Module.toAddMonoidEnd; Mathlib/Algebra/Module/Hom.lean::AddMonoid.End.applyModule; Mathlib/Algebra/Module/RingHom.lean::Module.compHom |
P | An A-module gives the source ring homomorphism into additive endomorphisms, and conversely a ring action on the underlying additive group reconstructs the module structure. |
FC04-C02-U002 |
exact comparison bundle | mathlib |
Module; LinearMap.addMonoidHomLequivInt; Module.AEval'; Rep.equivalenceModuleMonoidAlgebra |
P | The pinned APIs realize all source models: ideals/modules, vector spaces, abelian groups as ℤ-modules, polynomial-module actions from an endomorphism, and group-algebra modules as representations. |
FC04-C02-U003 |
exact structure | mathlib |
Mathlib/Algebra/Module/LinearMap/Defs.lean::LinearMap |
P | A bundled linear map preserves addition and scalar multiplication exactly as in the source. |
FC04-C02-U004 |
exact module structure | mathlib |
Mathlib/Algebra/Module/LinearMap/Defs.lean; module instance on M →ₗ[A] N |
P | Pointwise addition and scalar multiplication give Hom_A(M,N) its canonical A-module structure. |
FC04-C02-U005 |
exact constructions | mathlib |
LinearMap.lcomp; LinearMap.compRight |
P | Pre- and postcomposition are bundled linear maps on Hom modules with the source formulas. |
FC04-C02-U006 |
exact equivalence | mathlib |
Mathlib/Algebra/Module/Equiv/Basic.lean::LinearMap.ringLmapEquivSelf |
P | Evaluation at 1 is the linear equivalence Hom_A(A,M) ≃ M, with inverse m ↦ (a ↦ a • m). |
FC04-C02-U007 |
exact structure | mathlib |
Mathlib/Algebra/Module/Submodule/Defs.lean::Submodule |
P | A Submodule A M is exactly an additive subgroup stable under scalar multiplication. |
FC04-C02-U008 |
exact quotient correspondence | mathlib |
Mathlib/LinearAlgebra/Quotient/Basic.lean::Submodule.comapMkQRelIso; Submodule.Quotient |
P | The quotient module is bundled and submodules of M/N correspond order-isomorphically to submodules of M containing N. |
FC04-C02-U009 |
exact construction | mathlib |
Mathlib/Algebra/Module/Submodule/LinearMap.lean::LinearMap.ker |
P | The kernel is the submodule of elements mapped to zero. |
FC04-C02-U010 |
exact construction | mathlib |
Mathlib/Algebra/Module/Submodule/LinearMap.lean::LinearMap.range |
P | The image/range is a submodule with the expected membership characterization. |
FC04-C02-U011 |
exact cokernel comparison | mathlib |
Mathlib/Algebra/Category/ModuleCat/Kernels.lean::ModuleCat.cokernelIsoRangeQuotient; cokernel_π_cokernelIsoRangeQuotient_hom |
P | The categorical cokernel is identified with the target quotient by the image, and the cokernel projection is the quotient map. |
FC04-C02-U012 |
exact induced map and first isomorphism | mathlib |
Submodule.liftQ; Submodule.ker_liftQ; Mathlib/LinearAlgebra/Isomorphisms.lean::LinearMap.quotKerEquivRange |
P | A map killing a submodule factors through the quotient with the expected kernel, and M/ker f ≃ range f gives the first isomorphism theorem. |
FC04-C02-U013 |
exact construction | mathlib |
Submodule.iSup; Submodule.mem_iSup_iff_exists_finsupp; iSup_eq_range_dfinsupp_lsum |
P | The supremum is the least submodule containing the family; membership is represented by a finite-support sum, exactly the source sum of submodules. |
FC04-C02-U014 |
exact lattice structure | mathlib |
Mathlib/Algebra/Module/Submodule/Lattice.lean; Submodule.mem_iInf |
P | Submodules form a complete lattice; infima are intersections and suprema are generated sums. |
FC04-C02-U015 |
exact isomorphism theorems | mathlib |
Mathlib/LinearAlgebra/Isomorphisms.lean::Submodule.quotientInfEquivSupQuotient; Submodule.quotientQuotientEquivQuotient |
P | These are the second/third module isomorphism laws; the remaining displayed form follows by symmetry/relabeling. |
FC04-C02-U016 |
exact construction | mathlib |
ideal action I • N; Submodule.mem_ideal_smul_span_iff_exists_sum |
P | Ideal multiplication on a module is the submodule of finite sums of aᵢ • xᵢ, matching aM. |
FC04-C02-U017 |
exact definition | mathlib |
Mathlib/RingTheory/Ideal/Colon.lean::Submodule.colon; mem_colon; mem_colon_iff_le |
P | The colon ideal consists exactly of scalars sending P into N. |
FC04-C02-U018 |
exact definition | mathlib |
Mathlib/RingTheory/Ideal/Maps.lean::Module.annihilator; Module.mem_annihilator |
P | The annihilator is exactly the ideal of scalars killing every element of the module. |
FC04-C02-U019 |
exact quotient scalar action | mathlib |
Module.isTorsionBySet_iff_subset_annihilator; Module.IsTorsionBySet.module; Module.IsTorsionBySet.mk_smul |
P | If I ≤ Ann(M), Mathlib constructs the A/I-module structure on M, with quotient classes acting through representatives. |
FC04-C02-U020 |
revision-specific external theorem | reference-port |
AxelDlv00/LeanAlgebraicGeometry@f48ddbf1eb13625e8c41acbd549cc4522fb8b79f::MainProjects/Algebraic-Jacobian-Challenge/AlgebraicJacobian/Picard/SchematicSupport.lean::AlgebraicGeometry.faithfulSMul_quotientAnnihilator |
E | Pinned Mathlib has Module.annihilator_eq_bot and the canonical quotient-annihilator action but no packaged quotient-faithfulness theorem. The external theorem proves exactly FaithfulSMul (A/Ann(M)) M; its proof was independently compiled unchanged against P. Source project: Apache-2.0, Lean 4.31.0, Mathlib fabf563a7c95a166b8d7b6efca11c8b4dc9d911f. |
FC04-C02-U021 |
exact construction | mathlib |
cyclic submodule A ∙ x; Submodule.span_range_eq_iSup |
P | A cyclic submodule is the span of one element, and a generating family expresses the module as the supremum/sum of its cyclic submodules. |
FC04-C02-U022 |
exact definition | mathlib |
Mathlib/RingTheory/Finiteness/Defs.lean::Module.Finite; Module.finite_def; Module.Finite.exists_fin |
P | Module.Finite is finite generation of the top submodule, equivalently a finite generating family. |
FC04-C02-U023 |
exact construction | mathlib |
DirectSum; DFinsupp; Mathlib/Algebra/DirectSum/Basic.lean::DirectSum.hasFiniteSupport |
P | The direct sum is the finite-support dependent function module with the canonical inclusions and universal finite-support behavior. |
FC04-C02-U024 |
exact comparison | mathlib |
Pi module structure; DirectSum.linearEquivFunOnFintype; DirectSum.hasFiniteSupport |
P | For finite index sets the direct sum is linearly equivalent to the product; for arbitrary indices direct-sum elements have finite support, distinguishing it from unrestricted products. |
FC04-C02-U025 |
exact decomposition bundle | mathlib |
CompleteOrthogonalIdempotents.single; CompleteOrthogonalIdempotents.bijective_pi; DirectSum.idempotent; DirectSum.decompose_eq_mul_idempotent; DirectSum.completeOrthogonalIdempotents_idempotent |
P | Pinned Mathlib realizes finite product ideals and the equivalent complete orthogonal-idempotent decomposition, including recovery of summands as principal idempotent ideals. |
FC04-C02-U026 |
exact structure | mathlib |
Mathlib/LinearAlgebra/FreeModule/Basic.lean::Module.free_def; Module.Free.chooseBasis; Basis.repr |
P | A free module has a basis and is linearly equivalent to a finitely supported direct sum of copies of the base ring. |
FC04-C02-U027 |
exact finite-free model | mathlib |
Module.Free.ChooseBasisIndex.fintype; Basis.repr; Finsupp.linearEquivFunOnFinite; Basis.empty |
P | Finite free modules identify with A^n; the empty basis gives the zero module at n=0. |
FC04-C02-U028 |
unmatched positive-rank normalization | unmatched |
partial: Module.Finite.exists_fin'; Module.Finite.exists_fin_quot_equiv; Module.Finite.of_surjective |
N | P/H package finite generation exactly as a quotient of A^n, but only for n : ℕ; no checked declaration supplies the source bundle’s explicit n>0 normalization. Targeted current/open/external search found no exported positive-rank wrapper. |
FC04-C02-U029 |
exact stronger theorem | mathlib |
Mathlib/LinearAlgebra/Matrix/Charpoly/LinearMap.lean::LinearMap.exists_monic_and_natDegree_eq_and_coeff_mem_pow_and_aeval_eq_zero |
P | This is the determinant trick and is stronger than the source: the characteristic coefficients lie in the corresponding powers of the ideal. |
FC04-C02-U030 |
exact corollary | mathlib |
Mathlib/RingTheory/Finiteness/Nakayama.lean::Submodule.exists_sub_one_mem_and_smul_eq_zero_of_fg_of_le_smul |
P | From finite generation and M ≤ I • M, it produces an element congruent to 1 modulo I that annihilates the module. |
FC04-C02-U031 |
exact theorem | mathlib |
Mathlib/RingTheory/Nakayama.lean::Submodule.eq_bot_of_le_smul_of_le_jacobson_bot |
P | This is Nakayama in the source form: finite generation plus I ≤ Jac(A) and M = IM forces M=0. |
FC04-C02-U032 |
exact theorem | mathlib |
Mathlib/RingTheory/Nakayama.lean::Submodule.le_of_le_smul_of_le_jacobson_bot |
P | The quotient/submodule Nakayama form specializes to M = IM + N ⇒ M=N. |
FC04-C02-U033 |
exact finite residue-field module | mathlib |
quotient-module instance in Mathlib/Algebra/Module/Torsion/Basic.lean; Module.Finite.of_restrictScalars_finite |
P | For finite M, M/(𝔪M) is finite over A/𝔪; when 𝔪 is maximal this is a finite-dimensional residue-field vector space. |
FC04-C02-U034 |
exact lifting theorem | mathlib |
Mathlib/RingTheory/LocalRing/Module.lean::IsLocalRing.map_mkQ_eq_top; IsLocalRing.span_eq_top_of_tmul_eq_basis |
P | A family whose residue classes span (in particular form a basis of) M/𝔪M lifts to generators of the finite module. |
FC04-C02-U035 |
exact sequence formalism | mathlib |
Mathlib/Algebra/Homology/ExactSequence.lean::ComposableArrows.Exact; ShortComplex.moduleCat_exact_iff_range_eq_ker |
P | Exactness of a module sequence is exactly equality of image and kernel at every consecutive pair. |
FC04-C02-U036 |
exact short-exact formalism and decomposition | mathlib |
Mathlib/Algebra/Homology/ShortComplex/ShortExact.lean::ShortComplex.ShortExact; ShortComplex.Exact.shortExact |
P | ShortExact is exactness plus mono/epi; Exact.shortExact packages each consecutive image/kernel piece into the standard short exact sequence, realizing the formal decomposition used for long exact sequences. |
FC04-C02-U037 |
unmatched converse criterion | unmatched |
partial: Mathlib/LinearAlgebra/LeftExact.lean::LinearMap.exact_lcomp_of_exact_of_surjective; ShortComplex.exact_map_iff_of_faithful |
N | P/H contain the forward Hom-exactness implications and generic faithful-functor reflection, but no checked declaration realizes both source converses detecting right/left exactness from all Hom tests. |
FC04-C02-U038 |
exact six-term sequence | mathlib |
Mathlib/Algebra/Homology/ShortComplex/SnakeLemma.lean::ShortComplex.SnakeInput.composableArrows; SnakeInput.snake_lemma |
P | The snake construction gives the exact six-term sequence from kernels through cokernels for a morphism of short exact sequences. |
FC04-C02-U039 |
exact boundary construction | mathlib |
Mathlib/Algebra/Module/SnakeLemma.lean::SnakeLemma.δ'; SnakeLemma.δ'_eq |
P | The module-level connecting map is characterized by exactly the lift–map–lift–cokernel-class recipe in the source. |
FC04-C02-U040 |
unmatched abstraction | unmatched |
partial: short-exact formalism; finrank additivity theorems | N | No checked P/H or external declaration defines an arbitrary additive function on a class of modules by the short-exact relation λ(M')-λ(M)+λ(M'')=0. |
FC04-C02-U041 |
exact example | mathlib |
Mathlib/Algebra/Exact/Sequence.lean::Module.sum_neg_one_pow_finrank_eq_zero_of_exact |
P | Specializing the finite exact-sequence Euler formula to a short exact sequence gives additivity of vector-space dimension. |
FC04-C02-U042 |
unmatched arbitrary-invariant theorem | unmatched |
partial: Module.sum_neg_one_pow_finrank_eq_zero_of_exact; current Algebra/Homology/EulerCharacteristic.lean |
N | P/H prove the Euler relation for finrank, but no checked theorem derives it for an arbitrary source-style additive invariant λ. |
FC04-C02-U043 |
exact definition | mathlib |
Mathlib/LinearAlgebra/BilinearMap.lean::LinearMap.mk₂; LinearMap.mk₂_apply; IsBilinearMap |
P | These interfaces encode separate A-linearity in the two arguments. |
FC04-C02-U044 |
exact universal property | mathlib |
Mathlib/LinearAlgebra/TensorProduct/Basic.lean::TensorProduct.lift; lift.unique; Mathlib/RingTheory/IsTensorProduct.lean::IsTensorProduct.equiv |
P | The canonical tensor product represents bilinear maps, and IsTensorProduct.equiv gives uniqueness of any other binary universal target up to linear equivalence. |
FC04-C02-U045 |
exact construction | mathlib |
Mathlib/LinearAlgebra/TensorProduct/Defs.lean::TensorProduct.Eqv; TensorProduct.tmul |
P | Mathlib constructs the tensor product as a quotient by the additivity and balancing relations; the implementation uses a free-additive-monoid congruence rather than literally a free-module quotient but realizes the same presentation. |
FC04-C02-U046 |
exact notation and generation | mathlib |
TensorProduct.tmul; TensorProduct.span_tmul_eq_top |
P | Pure tensors are the canonical generators and span the tensor product. |
FC04-C02-U047 |
unmatched concrete example | unmatched |
partial: general tensor/quotient APIs | N | No checked P/H, open-work, or external Lean declaration realizes the source example 2ℤ ⊂ ℤ, N=ℤ/2ℤ with the same pure tensor zero in the ambient tensor product but nonzero in the smaller one. |
FC04-C02-U048 |
exact finite witness theorem | mathlib |
Mathlib/RingTheory/TensorProduct/DirectLimitFG.lean::TensorProduct.exists_of_fg; TensorProduct.eq_zero_of_fg_of_subtype_eq_zero |
P | The direct-limit theorem enlarges a finitely generated submodule until an ambient zero relation already vanishes there; applying it in the two factors gives finitely generated M₀,N₀ carrying the same finite relation. |
FC04-C02-U049 |
exact multi-tensor construction | mathlib |
Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean::PiTensorProduct.tprod; PiTensorProduct.lift |
P | The dependent Pi tensor product represents multilinear maps for an arbitrary index type, stronger than the source finite-arity construction. |
FC04-C02-U050 |
unmatched arbitrary-target characterization | unmatched |
partial: PiTensorProduct.lift; PiTensorProduct.lift.unique |
N | The canonical multi-tensor universal property is formalized, but P/H and targeted external search have no IsPiTensorProduct-type theorem showing every arbitrary universal multilinear target is uniquely isomorphic to it. |
FC04-C02-U051 |
exact canonical isomorphisms | mathlib |
TensorProduct.comm; TensorProduct.assoc; TensorProduct.lid; TensorProduct.rid; TensorProduct.directSumLeft; TensorProduct.directSumRight |
P | Pinned equivalences give symmetry, associativity, unit, and distributivity over direct sums with the expected pure-tensor formulas. |
FC04-C02-U052 |
exact functorial construction | mathlib |
Mathlib/LinearAlgebra/TensorProduct/Map.lean::TensorProduct.map; map_tmul; map_comp |
P | The induced map is exactly x⊗y ↦ f(x)⊗g(y) and is compatible with composition. |
FC04-C02-U053 |
exact construction | mathlib |
Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean::ModuleCat.restrictScalars |
P | Restriction of scalars along a ring map uses the source action a • n = f(a) • n. |
FC04-C02-U054 |
exact theorem | mathlib |
Mathlib/RingTheory/Finiteness/Basic.lean::Module.Finite.trans |
P | Finite over B and B finite over A imply finite over A. |
FC04-C02-U055 |
exact construction | mathlib |
Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean::ModuleCat.extendScalars; ModuleCat.ExtendScalars.smul_tmul |
P | Extension of scalars is B ⊗_A M, and the displayed B-action on pure tensors is exactly the source formula. |
FC04-C02-U056 |
exact theorem | mathlib |
Mathlib/RingTheory/TensorProduct/Finite.lean::Module.Finite.base_change |
P | Finite generation is preserved by extension of scalars. |
FC04-C02-U057 |
exact adjunction | mathlib |
Mathlib/Algebra/Category/ModuleCat/Monoidal/Closed.lean::ModuleCat.monoidalClosedHomEquiv |
P | The closed monoidal Hom equivalence is the tensor–Hom adjunction; tensor symmetry switches to the source ordering. |
FC04-C02-U058 |
exact right-exactness | mathlib |
Mathlib/LinearAlgebra/TensorProduct/RightExactness.lean::LinearMap.lTensor_surjective; lTensor_exact; rTensor_exact; right-hand surjectivity analogue |
P | Tensoring preserves the exact pair and terminal surjection, exactly right exactness. |
FC04-C02-U059 |
exact adjoint exactness consequences | mathlib |
U057; Mathlib/CategoryTheory/Adjunction/Limits.lean::Adjunction.leftAdjoint_preservesColimits; rightAdjoint_preservesLimits; rightExactFunctor_iff; leftExactFunctor_iff |
P | The tensor functor is a left adjoint and Hom is a right adjoint, yielding the source one-sided exactness statements. |
FC04-C02-U060 |
unmatched concrete counterexample | unmatched |
partial: tensor right-exactness and ZMod quotient APIs |
N | No checked P/H, open-work, or external declaration packages the explicit sequence 0→ℤ --×2→ ℤ becoming noninjective after tensoring with ℤ/2ℤ. |
FC04-C02-U061 |
exact equivalent definition | mathlib |
Mathlib/RingTheory/Flat/Basic.lean::Module.Flat.iff_lTensor_exact; iff_rTensor_exact; Mathlib/RingTheory/Flat/CategoryTheory.lean |
P | Although Module.Flat is encoded via injection preservation, pinned theorems prove equivalence with tensor preserving exact sequences, exactly the source definition. |
FC04-C02-U062 |
exact criterion bundle | mathlib |
Module.Flat; Module.Flat.iff_lTensor_preserves_injective_linearMap; iff_rTensor_preserves_injective_linearMap; iff_lTensor_exact; iff_rTensor_exact |
P | The defining FG-submodule test and the global injection/exactness equivalences realize the source flatness criteria, including sufficiency of finitely generated tests. |
FC04-C02-U063 |
exact structure | mathlib |
Mathlib/Algebra/Algebra/Defs.lean::Algebra |
P | An algebra is a ring/semiring equipped with a central structure map, and smul_def' identifies scalar multiplication with multiplication by its image. |
FC04-C02-U064 |
exact comparison bundle | mathlib |
Mathlib/RingTheory/SimpleRing/Basic.lean::RingHom.injective; Mathlib/Algebra/Algebra/Basic.lean::Ring.toIntAlgebra |
P | A field structure map into a nontrivial algebra is injective, and every ring has its canonical ℤ-algebra structure. |
FC04-C02-U065 |
exact structure characterization | mathlib |
Mathlib/Algebra/Algebra/Hom.lean::AlgHom; AlgHomClass.linearMapClass; AlgHom.mk' |
P | An algebra homomorphism is a ring homomorphism commuting with the structure maps; pinned coercions/constructors identify this with A-linearity. |
FC04-C02-U066 |
exact definition | mathlib |
Mathlib/RingTheory/Finiteness/Defs.lean::RingHom.Finite; finite_algebraMap |
P | A ring map is finite exactly when its target is finite as a module over the source. |
FC04-C02-U067 |
exact definition and presentation theorem | mathlib |
Mathlib/RingTheory/FiniteType.lean::Algebra.FiniteType; Algebra.FiniteType.iff_quotient_mvPolynomial'' |
P | Finite type means finitely generated as an algebra and is equivalent to a surjection from a polynomial algebra in finitely many variables. |
FC04-C02-U068 |
exact equivalent encoding | mathlib |
Ring.toIntAlgebra; Algebra.FiniteType ℤ B |
P | The source notion of a finitely generated ring is exactly finite type for the canonical ℤ-algebra structure. |
FC04-C02-U069 |
exact algebra tensor construction | mathlib |
Mathlib/RingTheory/TensorProduct/Basic.lean::Algebra.TensorProduct.one_def; tmul_mul_tmul; includeLeft; includeRight |
P | The tensor product carries the source multiplication and unit and the two canonical algebra maps from its factors. |
Provenance contract for C03
Chapter 3. Rings and Modules of Fractions; Local Properties
Provenance contract for C04
Chapter 4. Primary Decomposition
Provenance contract for C05
Chapter 5. Integral Dependence and Valuations
Provenance contract for C06
Chapter 6. Chain Conditions