Foundational corpus mapping FC01 Dummit Foote
Foundational corpus mapping FC01 Dummit Foote
Foundational corpus mapping FC01 Dummit Foote
Foundational corpus mapping FC01 Dummit Foote
Foundational corpus mapping FC01 Dummit Foote
FC01 — Dummit–Foote mapping
Status: Sweep II complete for FC01. All 1,234 stable catalogue IDs have one explicit route verdict.
Provenance contract
- Project search: repository sources outside
.lake,.agents, and.git; no project-owned replacement for the C00 substrate notions was found. Existing project uses are not counted as owned formalizations. - Pinned Mathlib: C00–C05 declaration types were checked with
lake env leanat.lake/packages/mathlib@915159e569989ee5b74673bb4a4ddaa022e7b356. Before the C06 audit the repository pin advanced to Mathlibv4.32.0, commit81a5d257c8e410db227a6665ed08f64fea08e997; C06 declaration types were checked against that pinned checkout. - Current Mathlib:
leanprover-community/mathlib4current-default-branch search/fetch on 2026-09-05. The C00/C01 search exposed commitfe6e3cde435e82b2407df2760cbac392694c9e64; the C02–C04 refresh exposed7974e751bece493b6ff508039423ca9fa2452fa8as the latest inspected default-branch commit. The relevant C02–C04 interfaces below were rechecked against that current tree. - exact match means the same assertion/interface up to harmless packaging or notation; broad match means the concept exists, often more generally, but not through the exact textbook interface; partial match / wrong interface means a substantive clause/interface is missing; unmatched after search is reserved for an exhausted search.
C00 — Preliminaries
| FC01 ID | Verdict | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|
FC01-C00-U001 |
broad match | Set α := α → Prop; set-builder syntax {x | p x} |
pinned/current set core | |
FC01-C00-U002 |
broad match | Cardinal.mk, Set.encard, Set.ncard, Fintype.card |
Mathlib/SetTheory/Cardinal/*, Mathlib/Data/Set/Card.lean |
Mathlib distinguishes arbitrary cardinality, extended-natural set cardinality, finite set cardinality, and finite-type cardinality instead of one overloaded | |FC01-C00-U003| exact match |Set.prod (s : Set α) (t : Set β) : Set (α × β); product typeα × β| [Mathlib/Data/Set/Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Set/Prod.html) | Exact Cartesian product for subsets and underlying types. | |FC01-C00-U004| broad match |Int,Rat,Real,Complex; order predicates/subtypes for positivity | Lean core + Mathlib numeric types | The standard number systems are first-class types; positivity is expressed by order predicates rather than one bundled notation declaration. | |FC01-C00-U005| broad match | function typeα → β, application, composition | Lean core; [Mathlib/Logic/Function/Basic.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Logic/Function/Basic.html) | The textbook function conventions are native language structure rather than a theorem. | |FC01-C00-U006| broad match | typed total functionsf : α → β| Lean core | “Well-defined function” is enforced by typing/definition elaboration; there is no separate predicate matching the prose convention. | |FC01-C00-U007| exact match | [Set.image](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Set.image#doc), [Set.preimage](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Set.preimage#doc); fibre{x |
C01 — Introduction to Groups
Project search found no project-owned C01 replacement: the repository imports/uses Mathlib group structures, but does not redeclare the chapter’s elementary group theory. Pinned declaration checks used the group, permutation, presented-group, finite-field, general-linear-group, and action modules; current-upstream searches confirm the same principal interfaces (DihedralGroup, cycle-factor decomposition, MulAction.toPermHom, and Cayley’s theorem). The only external-package verdicts below are called out explicitly.
| FC01 ID | Verdict | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|
FC01-C01-U001 |
broad match | Mul α; raw operation α → α → α |
Lean core / pinned Mathlib algebra hierarchy | A binary operation is native data; Mul bundles the multiplicative notation but imposes no axioms. |
FC01-C01-U002 |
exact match | Group G |
Lean core / Mathlib algebra hierarchy | Exact group structure: multiplication, identity, inverse, associativity and inverse laws. |
FC01-C01-U003 |
exact match | additive-group instances on Int, Rat, Real, Complex |
Lean core + Mathlib numeric instances | Exact standard additive groups. |
FC01-C01-U004 |
exact match | product Group (A × B) / Prod.instGroup |
Mathlib product instances | Componentwise multiplication, identity and inverse give the exact direct-product group. |
FC01-C01-U005 |
exact match | group axioms plus inv_inv, mul_inv_rev, identity/inverse uniqueness lemmas |
Mathlib group core | All listed basic identities are direct consequences already exposed in the generic group API. |
FC01-C01-U006 |
broad match | multiplicative Group / additive AddGroup hierarchies and notation |
Lean core / Mathlib algebra hierarchy | Mathlib formalizes the two notational conventions as parallel typeclass hierarchies rather than one prose convention. |
FC01-C01-U007 |
exact match | mul_left_cancel, mul_right_cancel, inverse-multiplication equivalences |
Mathlib group core | Exact unique-solvability/cancellation content for equations in a group. |
FC01-C01-U008 |
broad match | orderOf : G → ℕ |
Mathlib/GroupTheory/OrderOfElement.lean |
Same order invariant, but Mathlib represents infinite order by 0 instead of a separate symbol such as ∞. |
FC01-C01-U009 |
broad match | finite group multiplication function plus Fintype enumeration |
group/Fintype core | A multiplication table is derivable data for a finite group; Mathlib has no separate multiplication-table object matching the textbook display convention. |
FC01-C01-U010 |
exact match | DihedralGroup n; DihedralGroup.card, DihedralGroup.nat_card |
pinned/current Mathlib/GroupTheory/SpecificGroups/Dihedral.lean |
Exact dihedral group of order 2*n for positive finite n. |
FC01-C01-U011 |
exact match | DihedralGroup.r, DihedralGroup.sr, r_one_pow_n, sr_mul_self, r_mul_sr, sr_mul_r |
pinned/current dihedral file | The rotation/reflection normal forms and defining multiplication relations are exposed directly. |
FC01-C01-U012 |
exact match | Subgroup.closure S; criterion Subgroup.closure S = ⊤ |
Mathlib subgroup API | Exact notion of a subset generating a group. |
FC01-C01-U013 |
broad match | relators in FreeGroup α; PresentedGroup relation sets |
Mathlib/GroupTheory/PresentedGroup.lean |
A relation among generators is represented as a relator word in the free group; this is a more structural interface than the informal equation notation. |
FC01-C01-U014 |
exact match | PresentedGroup rels |
pinned/current Mathlib/GroupTheory/PresentedGroup.lean |
Exact generators-and-relations quotient construction. |
FC01-C01-U015 |
broad match | DihedralGroup n together with PresentedGroup and the dihedral defining relations |
pinned/current dihedral + presented-group files | Both sides of the textbook dihedral presentation are formalized, but no pinned/current public declaration identifying that specific presentation with DihedralGroup n was found. |
FC01-C01-U016 |
broad match | PresentedGroup; quotient of FreeGroup by relation closure |
pinned/current presented-group API | The collapse phenomena in the examples are expressible through the presentation quotient, but the individual textbook example calculations are not named declarations. |
FC01-C01-U017 |
exact match | Equiv.Perm Ω; Fintype.card_perm |
pinned/current permutation API | Exact symmetric group on a type; for finite Ω, cardinality is the factorial of Fintype.card Ω. |
FC01-C01-U018 |
exact match | Equiv.Perm.IsCycle; cycleOf; concrete-cycle/list API |
Mathlib/GroupTheory/Perm/Cycle/* |
Exact notion of a permutation cycle, with structural rather than parenthesized-cycle representation. |
FC01-C01-U019 |
exact match | Equiv.Perm.cycleFactorsFinset |
pinned/current Mathlib/GroupTheory/Perm/Cycle/Factors.lean |
Gives the canonical finite set of disjoint nontrivial cycle factors of a finite-support permutation. |
FC01-C01-U020 |
exact match | Equiv.Perm.Disjoint; disjoint-support characterizations |
pinned/current permutation-support API | Exact disjointness notion for permutations/cycles. |
FC01-C01-U021 |
broad match | multiplication/composition on Equiv.Perm |
Lean/Mathlib permutation group interface | Function-composition order is fixed by the library’s multiplication convention; the textbook “right-to-left” instruction is a notation convention, not a separate theorem. |
FC01-C01-U022 |
exact match | Equiv.Perm.Disjoint.commute |
pinned/current Mathlib/GroupTheory/Perm/Support.lean |
Exact theorem that disjoint permutations, hence disjoint cycles, commute. |
FC01-C01-U023 |
exact match | Equiv.Perm.toList_pow_apply_eq_rotate; SameCycle.toList_isRotated |
pinned Mathlib/GroupTheory/Perm/Cycle/Concrete.lean; current cycle API |
Exact invariance of a cycle under cyclic rotation, expressed through the canonical list representation. |
FC01-C01-U024 |
exact match | cycleFactorsFinset_eq_finset; cycleFactorsFinset_injective |
pinned/current cycle-factors file | Exact existence/uniqueness characterization of the disjoint-cycle factorization. |
FC01-C01-U025 |
exact match | Equiv.Perm.lcm_cycleType |
pinned/current Mathlib/GroupTheory/Perm/Cycle/Type.lean |
Exact formula: the lcm of cycle lengths is orderOf σ. |
FC01-C01-U026 |
broad match | finite field as [Field F] [Fintype F] / FiniteField namespace |
pinned/current finite-field API | Mathlib uses typeclasses rather than a special notation object F_q; finite-field cardinality is tracked separately. |
FC01-C01-U027 |
exact match | unit group Fˣ for a field F |
Mathlib units/group-with-zero API | In a field, the multiplicative group of nonzero elements is exactly the unit group. |
FC01-C01-U028 |
exact match | Matrix.GeneralLinearGroup n F / notation GL |
pinned/current general-linear-group API | Exact group of invertible matrices. |
FC01-C01-U029 |
exact match | FiniteField.card, FiniteField.card', FiniteField.isPrimePow_card |
pinned/current Mathlib/FieldTheory/Finite/Basic.lean |
Exact theorem that the cardinality of a finite field is a positive power of its prime characteristic. |
FC01-C01-U030 |
exact match | Matrix.card_GL_field |
pinned/current Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean |
Exact product formula | |FC01-C01-U031| exact match |QuaternionGroup 2; [QuaternionGroup.card](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=QuaternionGroup.card#doc) | pinned/current [Mathlib/GroupTheory/SpecificGroups/Quaternion.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/SpecificGroups/Quaternion.html) |QuaternionGroup 2has cardinality8and is the textbook quaternion group. | |FC01-C01-U032| exact match |MonoidHom(with group source/target) | Mathlib homomorphism hierarchy | Exact multiplicative group-homomorphism interface. | |FC01-C01-U033| exact match |MulEquiv| Mathlib equivalence hierarchy | Exact group isomorphism interface. | |FC01-C01-U034| exact match | [MulEquiv.refl](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=MulEquiv.refl#doc),.symm,.trans| Mathlib equivalence hierarchy | These operations prove that group isomorphism is an equivalence relation. | |FC01-C01-U035| broad match |Real.expOrderIso : ℝ ≃o Set.Ioi 0together with [Real.exp_add](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Real.exp_add#doc) | pinned/current [Mathlib/Analysis/SpecialFunctions/Exp.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/SpecialFunctions/Exp.html) | Mathlib has the bijection onto positive reals and the multiplicativity law, but the searched API does not package this exact additive-to-multiplicative map as a singleMulEquiv. | |FC01-C01-U036| exact match | [Equiv.permCongr](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Equiv.permCongr#doc); [Fintype.card_perm](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Fintype.card_perm#doc); [Nat.factorial_inj](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Nat.factorial_inj#doc), [Nat.factorial_inj’](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Nat.factorial_inj'#doc) | pinned/current equivalence/permutation/factorial APIs | A base-set equivalence conjugates permutation groups, and finite cardinal equality of symmetric groups recovers the base cardinality (outside the trivial factorial edge cases handled by the theorem hypotheses). | |FC01-C01-U037| broad match | [Smallgroups.GAP_Classifications.GAP_1_to_10.Order6.classification](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Smallgroups.GAP_Classifications.GAP_1_to_10.Order6.classification#doc) | external packagelixiang90/smallgroups,Smallgroups/GAP_Classifications/GAP_1_to_10/Order6.lean| Reusable complete classification: every group of order6is isomorphic to one of two representatives, cyclicC₆orDihedralGroup 3. Converting the latter representative to the textbookS₃uses the separateD₆ ≅ S₃identification. | |FC01-C01-U038| exact match |MulEquivpreservation lemmas for identity, multiplication, inverse, powers, element order; cardinal equivalence via its underlyingEquiv| Mathlib equivalence/order-of-element APIs | The listed basic isomorphism invariants are all functorially preserved by a multiplicative equivalence. | |FC01-C01-U039| exact match | [PresentedGroup.toGroup](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=PresentedGroup.toGroup#doc), [PresentedGroup.toGroup.of](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=PresentedGroup.toGroup.of#doc), [PresentedGroup.toGroup.unique](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=PresentedGroup.toGroup.unique#doc); [MulEquiv.ofBijective](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=MulEquiv.ofBijective#doc) | pinned/current presented-group and equivalence APIs | Exact universal property for extending generator images satisfying relators; a bijective resulting homomorphism packages as an isomorphism. | |FC01-C01-U040| partial match / wrong interface | privateorder72_d3_to_perm3 : DihedralGroup 3 →* Equiv.Perm (Fin 3)inlixiang90/smallgroups; no public reusable equivalence found | pinned/current Mathlib search + external GitHub/package search | The construction exists inside external formalization work but is private there; benchmark repositories also contain the statement. No searched public reusable declaration provides the textbookD₆ ≅ S₃isomorphism directly. | |FC01-C01-U041| exact match |MulAction G A| pinned/current Mathlib action hierarchy | Exact left group-action axioms. | |FC01-C01-U042| broad match |MulAction.toPermHom : G →* Equiv.Perm A; action constructors such as [MulAction.ofEndHom](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=MulAction.ofEndHom#doc) | pinned/current [Mathlib/Algebra/Group/Action/End.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Action/End.html) | Every action gives the permutation representation exactly; the converse is supported by constructors but not packaged as one named bijection between action structures and homomorphisms. | |FC01-C01-U043| broad match | right multiplication/right actions via the opposite-group/right-scalar-action interfaces | Mathlib group-action hierarchy | Right actions are formalized through the standard opposite/right-action encoding rather than a separate mirrorMulActionstructure. | |FC01-C01-U044| exact match | trivialSMul/MulActioninstance | Mathlib action instances | Exact trivial action. | |FC01-C01-U045| exact match |FaithfulSMul; [MulAction.toPerm_injective](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=MulAction.toPerm_injective#doc) | pinned/current [Mathlib/Algebra/Group/Action/Basic.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Action/Basic.html) | Exact faithfulness criterion: the associated permutation representation is injective. | |FC01-C01-U046| exact match | natural action ofEquiv.Perm AonA| Mathlib permutation/action instances | Exact symmetric-group action on the underlying set. | |FC01-C01-U047| broad match |DihedralGroup nplus its rotation/reflection normal form and generic [MulAction.toPermHom](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=MulAction.toPermHom#doc)/Cayley embedding | pinned/current dihedral + action APIs | The faithful action on the vertices of a regularn-gon is the intended semantics ofDihedralGroup, but no searched dedicated public vertex-action declaration was found. | |FC01-C01-U048| exact match | regular leftMulAction G G; [MulAction.toPerm_injective](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=MulAction.toPerm_injective#doc); [Equiv.Perm.subgroupOfMulAction](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Equiv.Perm.subgroupOfMulAction#doc) | pinned/current [Mathlib/GroupTheory/Perm/Subgroup.lean`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/Perm/Subgroup.html) |
C02 — Subgroups
Project search found no project-owned replacement for the elementary subgroup theory in C02. Pinned declaration checks were compiled successfully at 915159e569989ee5b74673bb4a4ddaa022e7b356 using explicit subgroup, action, cyclic, dihedral, permutation-closure, Klein-four, and order-cover imports. Current-upstream searches at 7974e751bece493b6ff508039423ca9fa2452fa8 retain the principal interfaces used below; a broad open-PR search found no C02-specific replacement or stronger pending interface.
External search included the direct Dummit–Foote formalization jhanschoo/texts_lean@7a6ccd2f6b306cf4fbebe66fd2f218c6af4220ed (MIT). Its C02 files are useful statement-level cross-checks, but the two geometric action examples in §2.2 are explicitly TODO, many §2.3/§2.4 theorem statements are admitted with sorry, and §2.5 is entirely TODO; those are not counted as reusable proved declarations. Targeted searches of the source atlas, atlas-lean, and broader GitHub Lean repositories found no exact formalization of the D8 vertex/opposite-pair actions, the listed complete small-group subgroup lattices, or the D16 join/intersection calculation. Qiuzhen-CFSG/CFSG@96b2a02085dc678f3e0a97b334c31ada599c55fd (Apache-2.0) does provide reusable even-dihedral reflection-centralizer infrastructure, recorded at U040.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C02-U001 |
exact match | mathlib |
Subgroup G; carrier/identity/multiplication/inverse closure fields |
pinned/current subgroup core | Exact bundled subgroup structure. |
FC01-C02-U002 |
exact match | mathlib |
⊥ : Subgroup G; ⊤ : Subgroup G; Subgroup.topEquiv |
pinned/current subgroup lattice/core | Exact trivial and whole-group subgroups. |
FC01-C02-U003 |
broad match | mathlib |
Subgroup.ofDiv; Subgroup.closure_toSubmonoid_of_finite |
pinned/current subgroup + order-of-element APIs | Subgroup.ofDiv is the exact nonempty one-step criterion using x * y⁻¹; the finite multiplication-only criterion follows from finite-group closure machinery but is not packaged as the same one-step subset theorem. |
FC01-C02-U004 |
exact match | mathlib |
Subgroup.centralizer; Subgroup.mem_centralizer_iff |
pinned/current Mathlib/GroupTheory/Subgroup/Centralizer.lean |
Exact centralizer of an arbitrary subset. |
FC01-C02-U005 |
exact match | mathlib |
Subgroup.centralizer {x}; Subgroup.mem_centralizer_singleton_iff |
pinned/current centralizer API | Exact centralizer of a single element, with singleton packaging instead of dedicated C_G(x) notation. |
FC01-C02-U006 |
exact match | mathlib |
Subgroup.center G; Subgroup.mem_center_iff; Subgroup.centralizer_univ |
pinned/current centralizer API | Exact center and its identification with the centralizer of the whole group. |
FC01-C02-U007 |
exact match | mathlib |
ConjAct; pointwise scalar action on Set G; ConjAct.toConjAct_smul |
pinned/current conjugation + pointwise-set APIs | The conjugate subset is exactly the pointwise conjugation action; element action is g * a * g⁻¹. |
FC01-C02-U008 |
exact match | mathlib |
Subgroup.normalizer; Subgroup.mem_set_normalizer_iff |
pinned/current subgroup core | Exact normalizer of an arbitrary subset by conjugation invariance. |
FC01-C02-U009 |
exact match | mathlib |
MulAction.stabilizer; MulAction.mem_stabilizer_iff |
pinned/current group-action API | Exact point stabilizer. |
FC01-C02-U010 |
exact match | mathlib |
(MulAction.toPermHom G X).ker; MulAction.fixingSubgroup G Set.univ; MulAction.mem_fixingSubgroup_iff |
pinned/current action/fixing-subgroup APIs | Exact action kernel: elements fixing every point form the kernel subgroup. |
FC01-C02-U011 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/GitHub search; texts_lean@7a6ccd2… marks Example 2.2.1 TODO |
No searched proved declaration gives the concrete D8 vertex action together with order-two vertex stabilizers and trivial kernel. Generic action/stabilizer APIs alone do not discharge this example. |
FC01-C02-U012 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/GitHub search; texts_lean@7a6ccd2… marks Example 2.2.2 TODO |
No searched proved declaration gives the D8 action on opposite vertex-pairs and its four-element kernel/equality with a point stabilizer. |
FC01-C02-U013 |
broad match | mathlib |
conjugation MulAction on Set G; MulAction.stabilizer; Subgroup.mem_set_normalizer_iff; Subgroup.conjAct_pointwise_smul_iff |
pinned/current conjugation, pointwise, and normalizer APIs | The powerset action and normalizer-as-stabilizer statement are directly expressible; the named stabilizer equivalence found upstream is specialized to subgroup points rather than arbitrary subsets. |
FC01-C02-U014 |
partial match / wrong interface | mathlib |
Subgroup.centralizer_le_normalizer; Subgroup.normalizerMonoidHom; Subgroup.normalizerMonoidHom_ker |
pinned/current centralizer API | The inclusion C_G(A) ≤ N_G(A) is generic, but the packaged conjugation homomorphism and kernel theorem require A to be a subgroup, whereas the source statement allows an arbitrary subset. |
FC01-C02-U015 |
broad match | mathlib |
Subgroup.center; Subgroup.mem_center_iff; conjugation action; MulAction.toPermHom.ker |
pinned/current center/conjugation/action APIs | The center is propositionally the kernel of the conjugation permutation representation, but no searched public declaration packages this exact kernel equality. |
FC01-C02-U016 |
exact match | mathlib |
IsCyclic; Subgroup.zpowers; Subgroup.mem_zpowers_iff; Subgroup.zpowers_eq_closure |
pinned/current cyclic/subgroup APIs | Exact cyclic group and cyclic subgroup generated by one element, with integer-power membership. |
FC01-C02-U017 |
exact match | mathlib |
pow_mod_orderOf; zpow_mod_orderOf |
pinned/current Mathlib/GroupTheory/OrderOfElement.lean |
Exact reduction of exponents modulo finite element order, using Mathlib’s convention orderOf x = 0 for infinite order. |
FC01-C02-U018 |
exact match | mathlib |
Nat.card_zpowers; injective_zpow_iff_not_isOfFinOrder; finite power-range lemmas |
pinned/current order-of-element API | Exact equality between element order and cardinality of its cyclic subgroup; integer powers are injective precisely in the infinite-order case. |
FC01-C02-U019 |
exact match | mathlib |
pow_gcd_eq_one; orderOf_dvd_iff_zpow_eq_one; orderOf_dvd_of_pow_eq_one |
pinned/current integer-gcd + order-of-element APIs | Exact gcd-of-exponents and divisibility-by-order statements. |
FC01-C02-U020 |
exact match | mathlib |
mulEquivOfCyclicCardEq; intCyclicMulEquiv |
pinned/current Mathlib/GroupTheory/SpecificGroups/Cyclic.lean |
Cyclic groups of equal cardinality are isomorphic; an infinite cyclic group is explicitly equivalent to Multiplicative ℤ. |
FC01-C02-U021 |
exact match | mathlib |
ZMod.instIsAddCyclic; Nat.card_zmod; cyclic equivalences with ZMod n |
pinned/current cyclic + ZMod APIs | Exact finite cyclic model ℤ/nℤ, with additive cyclicity and cardinality n; the infinite model is supplied by the integer cyclic equivalence. |
FC01-C02-U022 |
exact match | mathlib |
orderOf_pow; orderOf_pow'; orderOf_pow_of_dvd |
pinned/current order-of-element API | Exact order-of-a-power formula, again with 0 representing infinite order. |
FC01-C02-U023 |
exact match | mathlib |
mem_zpowers_zpow_iff; mem_zpowers_pow_iff; IsCyclic.card_orderOf_eq_totient |
pinned/current order/cyclic APIs | Exact coprimality criterion for a power to generate the same cyclic subgroup and the Euler-totient count of generators in the finite cyclic case. |
FC01-C02-U024 |
exact match | mathlib |
Subgroup.isCyclic_of_le; Subgroup.le_zpowers_iff; cyclic subgroup equality/order/cardinality lemmas |
pinned/current cyclic APIs | The theorem suite directly classifies every subgroup of a cyclic group as generated by a power, and supplies the finite/infinite order formulas needed for the source’s uniqueness and divisor cases. |
FC01-C02-U025 |
exact match | mathlib |
complete-lattice structure on Subgroup G; Subgroup.mem_iInf |
pinned/current subgroup lattice API | Arbitrary intersections are subgroups; Mathlib is stronger because the empty intersection is also represented as ⊤. |
FC01-C02-U026 |
exact match | mathlib |
Subgroup.closure; Subgroup.subset_closure; Subgroup.closure_le |
pinned/current subgroup lattice API | Exact subgroup generated by a subset as the least subgroup containing it, equivalently the subgroup infimum/intersection construction. |
FC01-C02-U027 |
exact match | mathlib |
Subgroup.closure_toSubmonoid; Submonoid.closure_eq_image_prod; Submonoid.exists_list_of_mem_closure |
pinned/current subgroup/submonoid closure APIs | After replacing S by S ∪ S⁻¹, membership is exactly finite products of generators and inverses. |
FC01-C02-U028 |
exact match | mathlib |
Subgroup.closure_toSubmonoid plus submonoid finite-word characterization |
pinned/current closure APIs | Identifies the finite-word construction with Subgroup.closure S, hence with the subgroup generated by S. |
FC01-C02-U029 |
broad match | mathlib |
Subgroup.mem_closure_range_iff; Subgroup.mem_closure_range_iff_of_fintype; Subgroup.mem_closure_iff_of_fintype |
pinned/current Mathlib/Algebra/Group/Subgroup/Finsupp.lean |
The abelian integer-exponent normal form is exact. No searched single declaration packages the source’s accompanying finite-cardinality bound by the product of generator orders. |
FC01-C02-U030 |
broad match | mathlib |
DihedralGroup n; DihedralGroup.sr_mul_self; DihedralGroup.r_mul_sr; DihedralGroup.sr_mul_r; DihedralGroup.nat_card |
pinned/current dihedral API | The two involutions, their product rotation, defining relations, and order 2n are formalized, but no searched public declaration states that the two specified reflections generate all of DihedralGroup n. |
FC01-C02-U031 |
exact match | mathlib |
Equiv.Perm.closure_cycle_adjacent_swap |
pinned/current Mathlib/GroupTheory/Perm/Closure.lean |
A full-support cycle together with an adjacent transposition generates the full symmetric group, exactly the textbook generating set after relabeling. |
FC01-C02-U032 |
broad match | mathlib |
partial/complete order on Subgroup G; generic CovBy; covBy_iff_Ioo_eq |
pinned/current subgroup lattice + Mathlib/Order/Cover.lean |
Inclusion and the cover relation are exact; a Hasse diagram itself is a display convention rather than a bundled Mathlib object. |
FC01-C02-U033 |
exact match | mathlib |
subgroup ⊓, ⊔; Subgroup.sup_eq_closure |
pinned/current subgroup lattice API | Exact meet as intersection and join as the least subgroup containing both subgroups. |
FC01-C02-U034 |
partial match / wrong interface | mathlib |
MulEquiv.mapSubgroup : Subgroup G ≃o Subgroup H |
pinned/current Mathlib/Algebra/Group/Subgroup/Map.lean |
An isomorphism induces an order isomorphism of subgroup lattices exactly. No searched reusable theorem/example supplies the source’s converse-failure assertion that nonisomorphic groups can have isomorphic subgroup lattices. |
FC01-C02-U035 |
broad match | mathlib |
cyclic-subgroup classification via Subgroup.le_zpowers_iff, order/cardinality formulas |
pinned/current cyclic APIs | These declarations recover the divisor-indexed subgroup lattice of a finite cyclic group, but no searched public order isomorphism packages the entire subgroup lattice directly as the divisor lattice. |
FC01-C02-U036 |
exact match | mathlib |
IsKleinFour; IsKleinFour.mul_self; IsKleinFour.not_isCyclic; instance on ZMod 2 × ZMod 2 |
pinned/current Mathlib/GroupTheory/SpecificGroups/KleinFour.lean |
Exact Klein-four structure: four elements, every nonidentity element has order two, and the group is not cyclic. |
FC01-C02-U037 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/GitHub search; texts_lean@7a6ccd2… §2.5 is TODO |
No searched proved source records the complete subgroup-lattice diagrams for all of S₃, D₈, Q₈, and D₁₆ as required by this source unit. |
FC01-C02-U038 |
broad match | mathlib |
subgroup order plus generic CovBy |
pinned/current order API | Formal order theory distinguishes arbitrary comparability from the cover relation exactly; the convention that omitted intermediate vertices make a drawn line non-covering is diagram metadata, not a theorem interface. |
FC01-C02-U039 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/GitHub search; direct Dummit–Foote §2.5 TODO | No searched proved declaration gives the concrete D₁₆ join/intersection identities for the indicated subgroups. Generic ⊓/⊔ and dihedral APIs are insufficient to count as this example. |
FC01-C02-U040 |
partial match / wrong interface | reference-port |
Mathlib centralizer/dihedral APIs; GorensteinWalter.card_centralizer_reflection_dihedral_even_le_four |
Qiuzhen-CFSG/CFSG@96b2a02085dc678f3e0a97b334c31ada599c55fd, Apache-2.0; pinned/current Mathlib |
The external theorem proves a reusable four-element upper bound for reflection centralizers in even dihedral groups, but no searched declaration gives the exact D₈ equality C_D8(s)=⟨s,r²⟩; a small specialization/completion would still be required. |
C03 — Quotients, Isomorphism Theorems, Composition Series, and Alternating Groups
Project search again found no project-owned elementary group-theory replacement. A pinned declaration audit compiled successfully at 915159e569989ee5b74673bb4a4ddaa022e7b356 with explicit kernel, coset/index, quotient, Sylow, group-extension, solvable, cyclic, alternating, sign/cycle-type, and Jordan–Hölder imports. Current-upstream inspection at 7974e751bece493b6ff508039423ca9fa2452fa8 retains the principal interfaces used below and still contains the Mathlib TODO for a subgroup JordanHolderLattice instance. Loogle, LeanSearch, Reservoir, source-atlas, current/open GitHub, and broad GitHub Lean searches were included for the concrete-example and theorem gaps.
External source checks: jhanschoo/texts_lean@7a6ccd2f6b306cf4fbebe66fd2f218c6af4220ed (MIT; https://github.com/jhanschoo/texts_lean) directly tracks Dummit–Foote C03 but leaves several §3.2–§3.4 results admitted/TODO and has no C03.5 file. yawara/odd-order@82e8b66fe80a2eb9f0c6568bf288186086af73af (Apache-2.0; https://github.com/yawara/odd-order) supplies proved Feit–Thompson and Hall-theorem infrastructure used at U043/U046. rjwalters/lean-genius@f9c62750e76180f15c7bd6c5759be320d7feffdc contains a 0-sorry subgroup Jordan–Hölder instance and uniqueness theorem, but no repository license was found in the inspected tree, so it is search evidence only and is not classified reference-port. The searched TauCetiProject/TauCetiRoadmap@64b1d0240921750aa46a898269ed40cd42beda4c CFSG material is statement/roadmap scaffolding, not a proof.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C03-U001 |
exact match | mathlib |
MonoidHom.ker |
pinned/current subgroup-kernel API | Exact kernel subgroup of a group homomorphism. |
FC01-C03-U002 |
exact match | mathlib |
homomorphism map-one/map-inverse/map-zpow laws; MonoidHom.ker; MonoidHom.range |
pinned/current homomorphism + subgroup APIs | All five stated properties are generic homomorphism laws or bundled kernel/range subgroups. |
FC01-C03-U003 |
broad match | mathlib |
MonoidHom.fiberEquivKer; G ⧸ K; quotient multiplication |
pinned/current kernel + quotient APIs | Mathlib constructs the quotient from a coset equivalence relation rather than literally as the set of fibers of a chosen homomorphism; fiberEquivKer supplies the exact fiber-to-kernel bridge. |
FC01-C03-U004 |
exact match | mathlib |
MonoidHom.fiberEquivKer; left/right coset equivalences for a kernel |
pinned/current kernel/coset APIs | A nonempty fiber is exactly a translate of the kernel; normality of a kernel identifies left and right translates. |
FC01-C03-U005 |
exact match | mathlib |
left/right pointwise multiplication of a subgroup by a singleton; left/right coset equivalences | pinned/current coset + pointwise APIs | Exact left and right cosets; representatives are elements of the corresponding quotient class. |
FC01-C03-U006 |
exact match | mathlib |
additive pointwise cosets and additive quotient analogues generated by to_additive |
pinned/current additive subgroup/coset APIs | Exact additive notation/operations for translates of additive subgroups. |
FC01-C03-U007 |
exact match | mathlib |
kernel normality; QuotientGroup.mk'; quotient multiplication; Subgroup.normal_iff_eq_cosets |
pinned/current quotient/coset APIs | The kernel quotient has well-defined multiplication and coincident left/right cosets exactly as stated. |
FC01-C03-U008 |
broad match | mathlib |
QuotientGroup.mk'; quotient coercion/notation; quotient multiplication |
pinned/current quotient API | The quotient and multiplication are exact, but the overbar typography is a textbook notation convention rather than a dedicated Lean interface. |
FC01-C03-U009 |
exact match | mathlib |
constant/trivial homomorphism; kernel ⊤; quotient by ⊤ |
pinned/current homomorphism/quotient APIs | The trivial homomorphism has whole-group kernel and its quotient is subsingleton/trivial. |
FC01-C03-U010 |
broad match | mathlib |
AddMonoidHom.fst; additive product kernel analogue of MonoidHom.ker_fst; fiber/coset API |
pinned/current product-homomorphism + kernel APIs | The projection and y-axis kernel are generic product declarations. The geometric phrase “affine vertical line” is not packaged as the same group-theoretic declaration. |
FC01-C03-U011 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + Loogle/LeanSearch/Reservoir/GitHub search; direct Dummit–Foote source does not provide a proved reusable instance | No searched proved declaration packages the displayed QuaternionGroup 2 → V₄ surjection, kernel {±1}, and resulting quotient equivalence. |
FC01-C03-U012 |
exact match | mathlib |
quotient/coset equivalence relation; QuotientGroup.leftRel_apply; coset-equality lemmas |
pinned/current coset API | Exact partition/equality criterion for cosets, up to orientation of the equivalent difference term. |
FC01-C03-U013 |
exact match | mathlib |
Subgroup.Normal; quotient-group instance; conjugation criterion; quotient multiplication |
pinned/current subgroup/quotient APIs | Normality is exactly the condition needed by the quotient group construction, and its conjugation criterion matches the source condition. |
FC01-C03-U014 |
exact match | mathlib |
ConjAct; Subgroup.normalizer; Subgroup.Normal |
pinned/current conjugation/subgroup APIs | Exact conjugate element/subgroup, normalizer membership, and normal-subgroup predicate. |
FC01-C03-U015 |
exact match | mathlib |
Subgroup.normalizer_eq_top_iff; Subgroup.normal_iff_eq_cosets; normal conjugation criteria; quotient group instance |
pinned/current subgroup/coset/quotient APIs | The stated normality characterizations are all available; the quotient-group clause is represented through the normality-dependent group instance. |
FC01-C03-U016 |
exact match | mathlib |
normality of MonoidHom.ker; QuotientGroup.ker_mk' |
pinned/current kernel/quotient APIs | Every kernel is normal and every normal subgroup is the kernel of its natural quotient map. |
FC01-C03-U017 |
exact match | mathlib |
QuotientGroup.mk'; subgroup comap along the quotient map |
pinned/current quotient/subgroup-map APIs | Exact natural projection and complete preimage construction. |
FC01-C03-U018 |
exact match | mathlib |
Subgroup.card_subgroup_dvd_card; Subgroup.card_mul_index; quotient/coset cardinality |
pinned/current Mathlib/GroupTheory/Index.lean + coset-cardinality API |
Exact finite Lagrange divisibility and coset-count formula. |
FC01-C03-U019 |
partial match / wrong interface | mathlib |
Subgroup.index H := Nat.card (G ⧸ H) |
pinned/current Mathlib/GroupTheory/Index.lean |
The source index may be an infinite cardinal. Mathlib’s Subgroup.index is a natural number and evaluates to 0 when the coset type is infinite, so it does not preserve the textbook cardinal-valued interface. |
FC01-C03-U020 |
exact match | mathlib |
orderOf_dvd_card; pow_orderOf_eq_one |
pinned/current order-of-element API | Exact finite-order divisibility and the resulting group-cardinality power identity. |
FC01-C03-U021 |
exact match | mathlib |
isCyclic_of_prime_card; zmodCyclicMulEquiv |
pinned/current cyclic-group API | Exact prime-order cyclicity and equivalence with the cyclic group of that order. |
FC01-C03-U022 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + Loogle/LeanSearch/Reservoir/GitHub search | Normal-subgroup APIs make counterexamples expressible, but no searched proved reusable declaration supplies the section’s concrete nontransitivity example. |
FC01-C03-U023 |
broad match | mathlib |
IsSimpleGroup |
pinned/current Mathlib/GroupTheory/Subgroup/Simple.lean |
Mathlib builds nontriviality into IsSimpleGroup; this source unit deliberately postpones that convention until §3.4. |
FC01-C03-U024 |
exact match | mathlib |
exists_prime_orderOf_dvd_card |
pinned/current order-of-element API | Exact Cauchy theorem for finite groups. |
FC01-C03-U025 |
exact match | mathlib |
Sylow.exists_subgroup_card_pow_prime |
pinned/current Mathlib/GroupTheory/Sylow.lean |
Exact Sylow-existence statement, in the stronger divisor-of-cardinality form. |
FC01-C03-U026 |
exact match | mathlib |
pointwise set product of subgroup carriers | pinned/current Mathlib/Algebra/Group/Subgroup/Pointwise.lean |
Exact set product of two subgroup carriers. |
FC01-C03-U027 |
broad match | mathlib |
card_mul_eq_card_subgroup_mul_card_quotient; coset/cardinality equivalences |
pinned/current coset-cardinality API | Mathlib has the finite cardinality engine for subgroup set products, but no searched declaration packages the exact quotient formula by the intersection cardinality in one theorem. |
FC01-C03-U028 |
broad match | mathlib |
pointwise subgroup products; closure criteria; set_mul_normalizer_comm |
pinned/current pointwise subgroup API; direct Dummit–Foote Lean source leaves the exact proposition admitted | Both directions are derivable from the available closure/commutation interfaces, but no searched canonical theorem states exactly that the carrier product is a subgroup iff the two set products commute. |
FC01-C03-U029 |
exact match | mathlib |
Subgroup.coe_mul_of_left_le_normalizer_right; Subgroup.set_mul_normalizer_comm; Subgroup.le_normalizer_of_normal |
pinned/current pointwise/normalizer APIs | Exact normalizer criterion; normality supplies the special case. |
FC01-C03-U030 |
exact match | mathlib |
subset relation into Subgroup.normalizer or Subgroup.centralizer |
pinned/current subgroup APIs | The textbook terminology is exactly the corresponding subset inclusion. |
FC01-C03-U031 |
partial match / wrong interface | mathlib |
quotient/coset type notation G ⧸ H for arbitrary H : Subgroup G |
pinned/current quotient-group API | Mathlib forms the left-coset quotient type for a nonnormal subgroup and adds a group structure only under normality; the source convention refuses quotient notation itself for nonnormal H. |
FC01-C03-U032 |
exact match | mathlib |
QuotientGroup.quotientKerEquivRange |
pinned/current quotient API | Exact first isomorphism theorem, with kernel normality already built into the construction. |
FC01-C03-U033 |
partial match / wrong interface | mathlib |
kernel-injectivity lemmas; Subgroup.index_ker |
pinned/current kernel/index APIs | Injectivity iff trivial kernel is exact. The index/range equality uses Mathlib’s natural-valued index, so the source’s cardinal/index interpretation is not preserved for infinite groups. |
FC01-C03-U034 |
exact match | mathlib |
QuotientGroup.quotientInfEquivProdNormalizerQuotient; relative-normality helpers |
pinned/current quotient + subgroup-normalizer APIs | Exact Noether/diamond isomorphism theorem under the source normalizer hypothesis. |
FC01-C03-U035 |
exact match | mathlib |
QuotientGroup.quotientQuotientEquivQuotient |
pinned/current quotient API | Exact third isomorphism theorem. |
FC01-C03-U036 |
broad match | mathlib |
QuotientGroup.comapMk'OrderIso; quotient subgroup map/comap, normality and relative-index lemmas |
pinned/current quotient/subgroup-map/index APIs | The subgroup correspondence, order, meet/join, and normality clauses are exact. Mathlib’s named index transport uses the same natural-valued index convention as U019, so the source’s arbitrary-cardinal index clause is not exposed through the exact textbook interface. |
FC01-C03-U037 |
exact match | mathlib |
QuotientGroup.lift; QuotientGroup.lift_mk'; quotient extensionality/uniqueness |
pinned/current quotient API | Exact universal factorization through a quotient. |
FC01-C03-U038 |
exact match | mathlib |
exists_prime_orderOf_dvd_card specialized to a commutative group |
pinned/current order-of-element API | The general Cauchy theorem is stronger than this abelian specialization. |
FC01-C03-U039 |
exact match | mathlib |
IsSimpleGroup |
pinned/current Mathlib/GroupTheory/Subgroup/Simple.lean |
Exact full definition: nontrivial group and only trivial/whole normal subgroups. |
FC01-C03-U040 |
partial match / wrong interface | mathlib |
generic CompositionSeries; JordanHolderLattice; group quotient/simple-group APIs |
pinned/current Mathlib/Order/JordanHolder.lean; external rjwalters/lean-genius@f9c6275… confirms a subgroup instance is possible but no repository license was found |
Mathlib has the abstract series carrier but explicitly lacks the subgroup JordanHolderLattice instance needed to identify maximal steps with simple group quotients. The unlicensed external proof is evidence only, not a reusable route. |
FC01-C03-U041 |
partial match / wrong interface | mathlib |
CompositionSeries.jordan_holder |
pinned/current Mathlib/Order/JordanHolder.lean; external rjwalters/lean-genius@f9c6275… proves subgroup uniqueness with 0 sorries but no repository license was found |
The generic uniqueness theorem is proved, but pinned/current Mathlib lacks the subgroup instance and a group-specific existence theorem for finite groups. The searched external proof covers uniqueness after supplying the instance, not the full source existence-plus-uniqueness statement. |
FC01-C03-U042 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + Loogle/LeanSearch/Reservoir/GitHub search; TauCetiProject/TauCetiRoadmap@64b1d02… supplies target/scaffolding only, not a proof |
No acceptable searched Lean implementation proves the classification of finite simple groups into the stated families/sporadics. |
FC01-C03-U043 |
broad match | reference-port |
OddOrder.feitThompson; Mathlib IsSimpleGroup.comm_iff_isSolvable, IsSimpleGroup.isCyclic, IsSimpleGroup.prime_card |
yawara/odd-order@82e8b66fe80a2eb9f0c6568bf288186086af73af, OddOrder/FeitThompson.lean, Apache-2.0; Mathlib pinned/current |
The external theorem proves finite odd-order groups solvable. For a simple group, Mathlib identifies solvability with commutativity and classifies simple commutative groups as cyclic of prime order; a short adapter yields the exact recorded consequence. |
FC01-C03-U044 |
broad match | mathlib |
GroupExtension N E G; GroupExtension.Equiv; split-extension/semidirect-product interfaces |
pinned/current Mathlib/GroupTheory/GroupExtension/* |
Mathlib exactly packages short exact group extensions and equivalence of extensions; the source unit is the broader classification problem “find all such middle groups”, not a single solved theorem. |
FC01-C03-U045 |
broad match | mathlib |
Group.IsSolvable; derived series |
pinned/current Mathlib/GroupTheory/Solvable.lean |
Same solvability property, but Mathlib takes termination of the derived series as the interface rather than existence of an arbitrary normal series with abelian factors. |
FC01-C03-U046 |
broad match | reference-port |
OddOrder.Isaacs.Ch03.hall_E_exists; OddOrder.Isaacs.Ch07.isSolvable_of_pcomplement_exists |
yawara/odd-order@82e8b66fe80a2eb9f0c6568bf288186086af73af, Apache-2.0; OddOrder/Isaacs/Ch03_SplitExtensions/Basic.lean and OddOrder/Isaacs/Ch07_ThompsonSubgroup/ForwardFromCh03.lean |
The external development proves Hall-subgroup existence for finite solvable groups and Hall’s converse from all prime complements. Translating between its prime-set Hall formulation and the source’s coprime-divisor formulation is an arithmetic adapter, not new group theory. |
FC01-C03-U047 |
exact match | mathlib |
Equiv.Perm.swap; Equiv.Perm.IsSwap |
pinned/current permutation API | Exact transposition/2-cycle notion. |
FC01-C03-U048 |
exact match | mathlib |
Equiv.Perm.swapFactors; Equiv.Perm.swap_induction_on |
pinned/current Mathlib/GroupTheory/Perm/Sign.lean |
Every finite permutation is a product of swaps, which is exactly generation by transpositions. |
FC01-C03-U049 |
partial match / wrong interface | mathlib |
Equiv.Perm.sign |
pinned/current permutation-sign API plus Loogle/LeanSearch/GitHub search | Mathlib has the same sign character but does not construct it through the Vandermonde polynomial identity σ(Δ)=ε(σ)Δ; no searched reusable Vandermonde-sign declaration was found. |
FC01-C03-U050 |
exact match | mathlib |
Equiv.Perm.sign; alternatingGroup; sign-equality predicates |
pinned/current permutation-sign/alternating APIs | Exact sign values and even/odd parity semantics, with evenness also represented as membership in the alternating group. |
FC01-C03-U051 |
exact match | mathlib |
Equiv.Perm.sign : Equiv.Perm α →* Units ℤ |
pinned/current Mathlib/GroupTheory/Perm/Sign.lean |
Exact sign group homomorphism into the two units {±1}. |
FC01-C03-U052 |
exact match | mathlib |
Equiv.Perm.sign_swap; Equiv.Perm.sign_surjective |
pinned/current sign API | Exact oddness of transpositions and surjectivity on a nontrivial finite underlying type. |
FC01-C03-U053 |
exact match | mathlib |
alternatingGroup; alternatingGroup_eq_sign_ker |
pinned/current Mathlib/GroupTheory/SpecificGroups/Alternating.lean |
Exact alternating group as the kernel/even-permutation subgroup. |
FC01-C03-U054 |
exact match | mathlib |
QuotientGroup.quotientKerEquivRange for sign; alternatingGroup.index_eq_two; nat_card_alternatingGroup |
pinned/current quotient + alternating APIs | The quotient-by-kernel equivalence gives the {±1} quotient; index two and half-factorial cardinality are exposed directly. |
FC01-C03-U055 |
exact match | mathlib |
Equiv.Perm.sign_prod_list_swap; Equiv.Perm.prod_list_swap_mem_alternatingGroup_iff_even_length |
pinned/current sign API | The sign is (-1) to the number of transpositions, so parity is independent of the chosen factorization. |
FC01-C03-U056 |
exact match | mathlib |
Equiv.Perm.sign_of_cycleType and cycle-type parity lemmas |
pinned/current cycle-type/sign API | Exact sign formula from cycle type, equivalent to parity of the number of even-length disjoint cycles. |
FC01-C03-U057 |
broad match | mathlib |
alternatingGroup.eq_bot_of_card_le_two; alternatingGroup.isCyclic_of_card_le_three; nat_card_alternatingGroup; cyclic-group classification; A4/Klein-four API |
pinned/current alternating + cyclic APIs | The A1/A2/A3 identifications and A4 cardinality are covered. No searched canonical declaration identifies A4 with the rotational symmetry group of a regular tetrahedron. |
C04 — Group Actions, Conjugacy, Automorphisms, and Sylow Theory
Project search found no project-owned replacement for C04. The pinned interface audit compiled successfully at 915159e569989ee5b74673bb4a4ddaa022e7b356 with explicit module, class-equation, finite-abelian, fixing-subgroup, quotient-action, index-normality, p-group, permutation-conjugacy/cycle-type, alternating-simplicity, Sylow, and ZMod-unit imports. Current-upstream checks at 7974e751bece493b6ff508039423ca9fa2452fa8 confirm the normal-core, least-prime-index, cycle-type-conjugacy, and Sylow-normalizer declarations used below. Broad source-atlas, Loogle/LeanSearch/Reservoir, current/open GitHub, and GitHub Lean searches were used for the automorphism and small-order classification units.
External reusable results materially change three late-C04 routes. yawara/odd-order@82e8b66fe80a2eb9f0c6568bf288186086af73af (Apache-2.0; https://github.com/yawara/odd-order) proves the full order-p²q normal-Sylow theorem in OddOrder/Isaacs/Ch01_Sylow/Theorem131.lean. ImperialCollegeLondon/FLT@8ec873aab84b21c4faaef849d5afd56ef79f684d (Apache-2.0; https://github.com/ImperialCollegeLondon/FLT) proves simple_60_is_A5 in FLT/Slop/PGL2/FiniteSubgroups/RecognitionA5.lean. lixiang90/smallgroups@ac10670581519957a3e3a7c8e1eae0ec44406954 contains the exact n₅ = 6 → simple theorem for order 60, but no repository license was found; it is retained only as a non-copyable reference/structure pointer, with licensed FLT results used as corroborating nearby infrastructure.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C04-U001 |
exact match | mathlib |
MulAction.toPermHom; MulAction.stabilizer; MulAction.fixingSubgroup; kernel triviality / faithful-action API |
pinned/current action API | Exact kernel, point stabilizer, and faithful-action semantics for a group action. |
FC01-C04-U002 |
broad match | mathlib |
MulAction.toPermHom; MulAction.fixingSubgroup_iUnion; kernel normality; quotient-by-kernel action machinery |
pinned/current action/fixing-subgroup/quotient APIs | The kernel is the permutation-representation kernel and the intersection of point-fixing subgroups; normality and faithful quotient action are derivable. No searched single declaration bundles all clauses in the textbook form. |
FC01-C04-U003 |
broad match | mathlib |
MulAction.toPermHom; MulAction.ofEndHom and action constructors from permutation-valued homomorphisms |
pinned/current action API | Both directions of the action/permutation-homomorphism correspondence are canonical, but no searched public Equiv packages the source’s literal bijection of structures. |
FC01-C04-U004 |
exact match | mathlib |
group homomorphisms G →* Equiv.Perm A; MulAction.toPermHom |
pinned/current action/permutation API | Exact permutation representation and the representation afforded by an action. |
FC01-C04-U005 |
exact match | mathlib |
MulAction.orbitRel; MulAction.orbitEquivQuotientStabilizer |
pinned/current Mathlib/GroupTheory/GroupAction/Quotient.lean |
The orbit relation is an equivalence relation and each orbit is genuinely equivalent to the coset type by the stabilizer, giving the source cardinal equality without relying on Mathlib’s natural-valued Subgroup.index. |
FC01-C04-U006 |
exact match | mathlib |
MulAction.orbit; IsPretransitive; orbit relation API |
pinned/current group-action API | Exact orbit and transitivity notions. |
FC01-C04-U007 |
broad match | mathlib |
Equiv.Perm.cycleFactorsFinset; cycle-factor support/disjointness/decomposition lemmas; cyclic action/orbit API |
pinned/current permutation-cycle + action APIs | Mathlib gives canonical disjoint cycle factors with support and uniqueness properties. No searched single theorem identifies those supports with the orbits of ⟨σ⟩ in exactly the source packaging. |
FC01-C04-U008 |
broad match | mathlib |
Subgroup (Equiv.Perm A) plus inherited natural permutation action |
pinned/current subgroup/permutation API | The mathematical object and its natural orbits are immediate from existing structures; “permutation group” is a terminology convention rather than a distinct bundled type. |
FC01-C04-U009 |
exact match | mathlib |
quotient/coset type G ⧸ H; MulAction.isPretransitive_quotient; quotient scalar-action formulas |
pinned/current quotient-action API | Exact left action of G on left cosets by multiplication. |
FC01-C04-U010 |
exact match | mathlib |
MulAction.isPretransitive_quotient; quotient stabilizer lemmas; Subgroup.normalCore_eq_ker; Subgroup.normal_le_normalCore |
pinned/current quotient-action + subgroup core APIs | The coset action is transitive, its base-coset stabilizer is H, and its kernel is H.normalCore, which is exactly the largest normal subgroup contained in H. |
FC01-C04-U011 |
exact match | mathlib |
regular action; MulAction.toPerm_injective; Equiv.Perm.subgroupOfMulAction |
pinned/current permutation-subgroup API | Exact Cayley embedding, already independently matched at C01-U048. |
FC01-C04-U012 |
broad match | mathlib |
regular left MulAction G G; MulAction.toPermHom |
pinned/current action API | The representation is exact; “left regular representation” is the textbook name for this generic regular action rather than a separately named declaration. |
FC01-C04-U013 |
exact match | mathlib |
Subgroup.normal_of_index_eq_minFac_card |
pinned/current Mathlib/GroupTheory/IndexNormal.lean |
Exact theorem: a subgroup whose index is the least prime divisor of the finite group order is normal. |
FC01-C04-U014 |
exact match | mathlib |
ConjAct; conjugation orbits / ConjClasses |
pinned/current conjugation-action API | Exact element conjugacy and conjugacy classes as orbits. |
FC01-C04-U015 |
exact match | mathlib |
pointwise ConjAct action on Set G |
pinned/current conjugation + pointwise-set APIs | Exact conjugation action on arbitrary subsets. |
FC01-C04-U016 |
broad match | mathlib |
MulAction.orbitEquivQuotientStabilizer; normalizer/centralizer as stabilizers; ConjAct.stabilizer_eq_centralizer |
pinned/current quotient-action/normalizer/centralizer APIs | The orbit-stabilizer equivalence gives both cardinal formulas. The element case is packaged directly; the arbitrary-subset normalizer-as-stabilizer route is assembled from generic pointwise conjugation rather than one named theorem. |
FC01-C04-U017 |
exact match | mathlib |
Group.nat_card_center_add_sum_card_noncenter_eq_card; Group.sum_card_conj_classes_eq_card |
pinned/current Mathlib/GroupTheory/ClassEquation.lean |
Exact finite class equation, including the separation of central singleton classes. |
FC01-C04-U018 |
exact match | mathlib |
IsPGroup.center_nontrivial |
pinned/current Mathlib/GroupTheory/PGroup.lean |
Exact nontrivial-center theorem for finite nontrivial p-groups. |
FC01-C04-U019 |
broad match | mathlib |
IsPGroup.isMulCommutative_of_card_eq_prime_sq; CommGroup.equiv_prod_multiplicative_zmod_of_finite |
pinned/current p-group + finite-abelian classification APIs | Abelianness at order p² is direct. The two isomorphism types follow from the general finite-abelian classification plus arithmetic specialization, but no searched one-line p² classification theorem packages the exact dichotomy. |
FC01-C04-U020 |
exact match | mathlib |
Equiv.Perm.cycleFactorsFinset_conj; support-under-conjugation lemmas |
pinned/current permutation-cycle API | Conjugation transports each cycle factor by relabeling its entries, exactly the source rule. |
FC01-C04-U021 |
partial match / wrong interface | mathlib |
Equiv.Perm.cycleType : Multiset ℕ; partition APIs |
pinned/current Mathlib/GroupTheory/Perm/Cycle/Type.lean |
Mathlib deliberately records only nontrivial cycles: cycleType 1 = 0 and every listed cycle length is at least 2. The source cycle type includes fixed 1-cycles, so the interfaces are not identical. |
FC01-C04-U022 |
broad match | mathlib |
Equiv.Perm.isConj_iff_cycleType_eq |
pinned/current cycle-type API, rechecked at 7974e751… |
Conjugacy iff equality of Mathlib cycle type is exact on a fixed finite set. Turning this into the source’s indexing by partitions of all n, including 1-parts, requires restoring the omitted fixed points. |
FC01-C04-U023 |
exact match | mathlib |
alternatingGroup.isSimpleGroup specialized to Fin 5 |
pinned/current Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean |
Exact simplicity of A₅. |
FC01-C04-U024 |
broad match | mathlib |
right actions encoded through opposite-group/right-scalar-action interfaces; MulOpposite.op / unop |
pinned/current action hierarchy | The right-action law is represented by the standard opposite-group encoding rather than a separate mirror MulAction structure; the conjugation convention is equivalent after inversion. |
FC01-C04-U025 |
broad match | mathlib |
right-conjugation via the opposite/right-action encoding and ordinary ConjAct after inversion |
pinned/current conjugation/action APIs | The operation is expressible exactly, but the superscript notation a^g = g⁻¹ag is a source convention rather than Mathlib’s canonical conjugation interface. |
FC01-C04-U026 |
exact match | mathlib |
MulAut G |
pinned/current Mathlib/Algebra/Group/End.lean |
Exact automorphism group under composition. |
FC01-C04-U027 |
exact match | mathlib |
MulAut.conjNormal : G →* MulAut H for normal H |
pinned/current conjugation/automorphism API | Exact restriction of conjugation to a normal subgroup, assembled as a homomorphism into its automorphism group. |
FC01-C04-U028 |
exact match | mathlib |
MulAut.conj; MulEquiv.mapSubgroup; order/cardinality preservation under equivalence |
pinned/current automorphism/subgroup-map APIs | Conjugation is an isomorphism on a conjugate subgroup and preserves element/subgroup order exactly. |
FC01-C04-U029 |
broad match | mathlib |
Subgroup.normalizerMonoidHom; Subgroup.normalizerMonoidHom_ker; QuotientGroup.quotientKerEquivRange; MulAut.conj |
pinned/current normalizer/quotient/automorphism APIs | For H, the normalizer action has kernel the centralizer, so the first-isomorphism theorem gives the required embedding in Aut(H). The G/Z(G) specialization is derivable, but no searched declaration packages ker (MulAut.conj) = Z(G) directly. |
FC01-C04-U030 |
broad match | mathlib |
MulAut.conj : G →* MulAut G and its range subgroup |
pinned/current automorphism API | Every conjugation automorphism is formalized exactly. No searched named Inn(G) subgroup/interface packages the range as the textbook inner-automorphism group. |
FC01-C04-U031 |
exact match | mathlib |
Subgroup.Characteristic; Subgroup.characteristic_iff_map_eq |
pinned/current characteristic-subgroup API | Exact characteristic subgroup definition under all automorphisms. |
FC01-C04-U032 |
broad match | mathlib |
Subgroup.normal_of_characteristic; ConjAct.normal_of_characteristic_of_normal; subgroup-cardinality/equivalence APIs |
pinned/current characteristic/conjugation APIs | Characteristic implies normal, and characteristic-in-normal implies normal-in-the-whole-group are direct. Uniqueness at a given order implies characteristic by a short automorphism/cardinality argument, but no searched named theorem packages that middle clause. |
FC01-C04-U033 |
exact match | mathlib |
IsCyclic.mulAutEquivUnits; ZMod.card_units_eq_totient |
pinned/current cyclic automorphism + ZMod unit APIs | Exact automorphism group of a finite cyclic group as units modulo n, with abelianness and cardinality φ(n). |
FC01-C04-U034 |
partial match / wrong interface | mathlib |
IsCyclic.mulAutEquivUnits; ZMod.isCyclic_units_of_prime_pow; ZMod.isCyclic_units_two_pow_iff; linear/general-linear APIs |
pinned/current cyclic-unit and linear-group APIs plus project/source-atlas/GitHub search | The cyclic-prime-power unit-group behavior and elementary-abelian linear framework exist, but no searched canonical Mathlib suite supplies the stated decompositions together with Aut(S_n), the exceptional S₆ case, Aut(D₈), and Aut(Q₈) as one reusable family of results. |
FC01-C04-U035 |
broad match | mathlib |
AddCommGroup.zmodModule; Module.natCard_eq_pow_finrank; ZMod finite-field structure for prime p; Klein-four API |
pinned/current Mathlib/Algebra/Module/ZMod.lean + finite-dimensional cardinality APIs |
An abelian group killed by p canonically becomes a ZMod p-module and its finite cardinality is p^finrank, exactly yielding the vector-space structure. Mathlib has no separate bundled “elementary abelian group” predicate matching the textbook terminology. |
FC01-C04-U036 |
exact match | mathlib |
IsPGroup; Sylow p G; Sylow.card_eq_multiplicity |
pinned/current p-group/Sylow APIs | Exact p-group, p-subgroup, and Sylow p-subgroup notions, with Sylow p G the type of Sylow subgroups. |
FC01-C04-U037 |
exact match | mathlib |
Sylow.nonempty; Sylow containment/conjugacy action; card_sylow_modEq_one; Sylow.card_eq_index_normalizer; Sylow.card_dvd_index |
pinned/current Mathlib/GroupTheory/Sylow.lean |
The full Sylow existence, containment, conjugacy, congruence, normalizer-index, and divisibility package matches the source theorem. |
FC01-C04-U038 |
exact match | mathlib |
IsPGroup.inf_normalizer_sylow |
pinned/current Sylow API, rechecked at 7974e751… |
Exact identity Q ∩ N_G(P) = Q ∩ P for a p-subgroup Q and Sylow subgroup P. |
FC01-C04-U039 |
broad match | mathlib |
Sylow.normal_of_subsingleton; Sylow.characteristic_of_subsingleton; Sylow.characteristic_of_normal; p-group closure/containment APIs |
pinned/current Sylow/p-group APIs | Uniqueness, normality, and characteristicity are mutually linked by direct declarations. The final characterization through every subgroup generated by p-power-order elements is derivable from p-group machinery but was not found as the same packaged equivalence. |
FC01-C04-U040 |
exact match | reference-port |
OddOrder.Isaacs.Ch01.sylow_normal_of_card_eq_sq_mul_prime_lt; OddOrder.Isaacs.Ch01.sylow_normal_of_card_eq_sq_mul_prime_gt; order-12 helper |
yawara/odd-order@82e8b66fe80a2eb9f0c6568bf288186086af73af, OddOrder/Isaacs/Ch01_Sylow/Theorem131.lean, Apache-2.0 |
The external development explicitly formalizes Isaacs Thm. 1.31: a group of order p²q has a normal Sylow subgroup, splitting by the two prime orderings and handling the exceptional order-12 counting branch. |
FC01-C04-U041 |
broad match | reference-port |
isSimpleGroup_of_card_60_of_card_sylow_5_eq_six; order-60 Sylow-counting infrastructure |
lixiang90/smallgroups@ac10670581519957a3e3a7c8e1eae0ec44406954, Smallgroups/UsefulTheorems/Order60/A5.lean; no repository license found in the inspected tree; licensed corroborating order-60 machinery in ImperialCollegeLondon/FLT@8ec873a… |
The external theorem proves the n₅ = 6 form exactly; Sylow arithmetic converts “more than one” to n₅ = 6. Because no license was found for smallgroups, its code is reference evidence only and must not be copied; the licensed FLT development supplies independent nearby machinery. |
FC01-C04-U042 |
exact match | mathlib |
alternatingGroup.isSimpleGroup specialized to Fin 5; Sylow API |
pinned/current alternating/Sylow APIs | The resulting assertion A₅ simple is already canonical Mathlib; the source’s second Sylow-based proof route is not a distinct theorem interface. |
FC01-C04-U043 |
exact match | reference-port |
simple_60_is_A5 |
ImperialCollegeLondon/FLT@8ec873aab84b21c4faaef849d5afd56ef79f684d, FLT/Slop/PGL2/FiniteSubgroups/RecognitionA5.lean, Apache-2.0 |
Exact theorem: a finite simple group of cardinality 60 is multiplicatively equivalent to alternatingGroup (Fin 5). |
FC01-C04-U044 |
exact match | mathlib |
alternatingGroup.isSimpleGroup |
pinned/current Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean |
Exact simplicity of A_n for finite underlying sets of cardinality at least 5, hence for every n ≥ 5. |
C05 — Direct and Semidirect Products and Abelian Groups
Project search found no project-owned replacement for C05. A pinned declaration audit compiled successfully at 915159e569989ee5b74673bb4a4ddaa022e7b356 with product/subgroup finite-generation, commutator/abelianization, complement, finite-abelian, group-extension, semidirect-product, cyclic, dihedral, and quaternion imports. The decisive Mathlib boundary is the finite-abelian structure theorem: existence of free and finite cyclic/prime-power decompositions is present, but the searched pinned/current APIs do not expose Dummit–Foote’s unique divisibility-chain invariant factors, elementary-divisor uniqueness, or the induced partition/classification bijections.
External search found two licensed sources with substantive reusable mathematics: Vilin97/lean-pool@e3c8ad9b67d0b4e4dca5528678b6c3af13a123b3 (Apache-2.0; https://github.com/Vilin97/lean-pool) proves the full order-pq existence/uniqueness/semidirect classification, and tilemachosvassias/LeanDring@dd595c0a0aacc39bea5edc578527d4d779d44b4e (Apache-2.0; https://github.com/tilemachosvassias/LeanDring) supplies a concrete Heisenberg group of cardinality p³. lixiang90/smallgroups@ac10670581519957a3e3a7c8e1eae0ec44406954 contains proved order-by-order classifications through the small orders used here, including exact order-12 and order-30 classification theorems, but no repository license was found; its rows below are therefore non-copyable reference evidence only. No searched source proved the complete odd-p³ five-type classification, the holomorph normalizer theorem, or the order-96 commutator-width example.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C05-U001 |
exact match | mathlib |
dependent function/product group instances; Prod.instGroup |
pinned/current product-group hierarchy | Finite and countable direct products are instances of the general dependent product group with coordinatewise multiplication. |
FC01-C05-U002 |
exact match | mathlib |
product-group multiplication is coordinatewise | pinned/current product/Pi group hierarchy | Exact multiplicative convention for abstract direct products. |
FC01-C05-U003 |
exact match | mathlib |
Cardinal.mk_pi; Cardinal.prod_eq_of_fintype; Nat.card_pi |
pinned/current cardinal + product APIs | Cardinal-valued product size gives the finite order formula and preserves the infinite-factor case. |
FC01-C05-U004 |
broad match | mathlib |
MonoidHom.mulSingle; coordinate projections; MonoidHom.ker_fst; MonoidHom.ker_snd; QuotientGroup.quotientKerEquivRange |
pinned/current product-homomorphism + quotient APIs | Coordinate embeddings/projections are canonical and quotient removal follows by first isomorphism; the n-ary statement is assembled rather than one declaration. |
FC01-C05-U005 |
exact match | mathlib |
Group.FG; Group.fg_iff_subgroup_fg |
pinned/current finite-generation API | Exact finite-generation predicate by a finite generating set. |
FC01-C05-U006 |
broad match | mathlib |
finite powers/products of Multiplicative ℤ; free-abelian-group APIs |
pinned/current finite/free-abelian APIs | ℤ^r and r=0 are canonical products; the source phrase “free abelian of rank r” is mainly terminology here. |
FC01-C05-U007 |
partial match / wrong interface | mathlib |
CommGroup.equiv_free_prod_prod_multiplicative_zmod |
pinned/current Mathlib/GroupTheory/FiniteAbelian/Basic.lean |
Mathlib proves decomposition existence but the searched API lacks the source’s unique divisibility-chain invariant factors and uniqueness of all parameters. |
FC01-C05-U008 |
partial match / wrong interface | mathlib |
free-rank data implicit in equiv_free_prod_prod_multiplicative_zmod |
pinned/current finite-abelian API | A free summand count exists existentially, but no canonical invariant-factor object/uniqueness theorem supplies the named free rank and invariant factors. |
FC01-C05-U009 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/Loogle/LeanSearch/Reservoir/GitHub search | No searched canonical declaration packages “finite abelian group of type (n₁,…,nₛ)” because the invariant-factor data itself is not bundled. |
FC01-C05-U010 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + external invariant-factor search | No searched proved reusable theorem gives the stated bijection between order-n finite-abelian isomorphism classes and unique divisibility-chain factor lists. |
FC01-C05-U011 |
broad match | mathlib |
finite-abelian decomposition; cyclic-product coprimality lemmas | pinned/current finite-abelian + cyclic APIs | Squarefree order forces one factor in each primary component and their coprime product is cyclic; no searched one-line theorem packages the corollary. |
FC01-C05-U012 |
partial match / wrong interface | mathlib |
CommGroup.equiv_prod_multiplicative_zmod_of_finite; prime-power cyclic decomposition |
pinned/current finite-abelian API | Existence of prime-power cyclic factors is formalized, but uniqueness of the primary factors and exponent partition data is not exposed. |
FC01-C05-U013 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + external invariant-factor search | No searched declaration bundles the prime-power factors as uniquely defined elementary divisors. |
FC01-C05-U014 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + external invariant-factor search | No searched proved reusable theorem indexes abelian groups of order p^α by partitions of α; this depends on the missing uniqueness data. |
FC01-C05-U015 |
exact match | mathlib |
Group.isCyclic_prod_iff; coprime_card_of_isCyclic_prod; cyclic-group equivalences |
pinned/current cyclic API | Finite cyclic products are cyclic exactly under the coprimality condition, yielding the source equivalence. |
FC01-C05-U016 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + external invariant-factor search | No canonical invariant-factor/elementary-divisor data was found from which to formalize the source conversion algorithm. |
FC01-C05-U017 |
partial match / wrong interface | mathlib |
Monoid.exponent; IsCyclic.exponent_eq_card; finite-abelian decomposition |
pinned/current exponent + finite-abelian APIs | The group exponent is present; the source rank as number of invariant factors depends on missing invariant-factor packaging. |
FC01-C05-U018 |
broad match | reference-port |
order-by-order classification theorems for 7–20 | lixiang90/smallgroups@ac10670581519957a3e3a7c8e1eae0ec44406954; no repository license found |
The external tree proves the requested small-order classifications, but its code is non-copyable absent a license and the source unit is a consolidated table. |
FC01-C05-U019 |
broad match | reference-port |
order-12 classification including ℤ/3 ⋊_{-1} ℤ/4 |
lixiang90/smallgroups@ac106705…, Order4P_12.lean; no repository license found |
Exact isomorphism type is present externally, but not the source presentation as the same theorem. |
FC01-C05-U020 |
broad match | reference-port |
order-18 classification including the elementary-abelian semidirect type | lixiang90/smallgroups@ac106705…, Order18.lean; no repository license found |
The relevant type occurs in the classification, but the displayed presentation is not a searched reusable theorem. |
FC01-C05-U021 |
broad match | reference-port |
order-20 classification including nontrivial C₅ ⋊ C₄ |
lixiang90/smallgroups@ac106705…, Order20.lean; no repository license found |
The group type is formalized externally; the exact source presentation is not separately packaged. |
FC01-C05-U022 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/GitHub search; order-20 classification checked | No searched proved declaration packages F₂₀ with both the stated presentation and explicit permutation generators in S₅. |
FC01-C05-U023 |
exact match | mathlib |
commutatorElement; Subgroup.commutator; _root_.commutator |
pinned/current commutator API | Exact element commutator, subgroup commutator, and derived subgroup. |
FC01-C05-U024 |
exact match | mathlib |
commutator identities; Subgroup.commutator_characteristic; Subgroup.Normal.quotient_commutative_iff_commutator_le; Abelianization.lift |
pinned/current commutator + abelianization APIs | Normality, characteristicity, abelian quotient, and universal factorization clauses are all directly available. |
FC01-C05-U025 |
exact match | mathlib |
Abelianization; Abelianization.of; Abelianization.ker_of; Abelianization.lift_unique |
pinned/current abelianization API | Exact canonical maximal abelian quotient and universal property. |
FC01-C05-U026 |
partial match / wrong interface | mathlib |
commutator_eq_bot_iff; dihedral/quaternion APIs |
pinned/current commutator + specific-group APIs; external search | Abelian iff trivial commutator is exact; no searched canonical declarations give the collected D₈, Q₈, and general D₂n derived-subgroup formulas. |
FC01-C05-U027 |
broad match | mathlib |
subgroup multiplication fibers; Subgroup.IsComplement'.existsUnique; cardinal product/intersection machinery |
pinned/current complement/coset APIs | The trivial-intersection uniqueness case is packaged by complementarity; constant fiber cardinality card(H∩K) is derivable but not found as one named theorem. |
FC01-C05-U028 |
exact match | mathlib |
Subgroup.isComplement'_of_disjoint_and_mul_eq_univ; SemidirectProduct.mulEquivSubgroup; SemidirectProduct.mulEquivProd |
pinned/current complement + semidirect APIs | With both factors normal the conjugation action is trivial, and the complement equivalence reduces exactly to a direct product. |
FC01-C05-U029 |
broad match | mathlib |
Subgroup.IsComplement'; SemidirectProduct.mulEquivProd |
pinned/current complement/semidirect APIs | Internal/external structures are exact; the distinction is textbook terminology. |
FC01-C05-U030 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/GitHub search | No searched proved reusable declaration gives D₄n ≃ D₂n × C₂ for odd n in the source indexing convention. |
FC01-C05-U031 |
exact match | mathlib |
SemidirectProduct; SemidirectProduct.inl; inr; rightHom; range_inl_eq_ker_rightHom; SemidirectProduct.card |
pinned/current semidirect API | Exact construction, factor embeddings, normal first factor, conjugation action, and cardinality. |
FC01-C05-U032 |
exact match | mathlib |
SemidirectProduct notation N ⋊[φ] G |
pinned/current semidirect API | Exact definition and notation. |
FC01-C05-U033 |
exact match | mathlib |
SemidirectProduct.mulEquivProd; semidirect multiplication/conjugation formulas |
pinned/current semidirect API | Trivial action is explicitly equivalent to the direct product; the other source equivalences follow directly. |
FC01-C05-U034 |
broad match | mathlib |
inversion semidirect product; DihedralGroup; infinite cyclic/dihedral APIs |
pinned/current semidirect + dihedral APIs | Construction is directly expressible and cyclic specializations have the expected models; no single declaration packages all finite/infinite identifications. |
FC01-C05-U035 |
broad match | mathlib |
QuaternionGroup n and defining multiplication/order relations |
pinned/current quaternion API | Mathlib has the generalized quaternion family with requisite relations/orders, but not the source quotient/presentation theorem as the same interface. |
FC01-C05-U036 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/Loogle/LeanSearch/Reservoir/GitHub search | H ⋊ Aut(H) is expressible, but no searched Lean source packages the holomorph with Hol(V₄) ≃ S₄ and the regular-normalizer theorem. |
FC01-C05-U037 |
broad match | reference-port |
OrderPQ.nonempty_mulEquiv_semidirectProduct_of_card_eq_prime_mul_prime_of_not_isCyclic; existence criterion |
Vilin97/lean-pool@e3c8ad9b67d0b4e4dca5528678b6c3af13a123b3, Apache-2.0 |
Licensed development constructs/classifies the noncyclic order-pq semidirect product; the p=2 dihedral identification is a short specialization. |
FC01-C05-U038 |
broad match | reference-port |
Heis p; card_heis |
tilemachosvassias/LeanDring@dd595c0a0aacc39bea5edc578527d4d779d44b4e, Apache-2.0 |
A licensed concrete Heisenberg group of cardinality p³ is formalized; matching the exact semidirect action/presentation needs an adapter. |
FC01-C05-U039 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/GitHub search | No searched proved source establishes the exact second order-p³ model together with its order-p² element and nonisomorphism from the Heisenberg model. |
FC01-C05-U040 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/GitHub search | No searched proved Lean source contains the specific order-96 semidirect product and an element of the derived subgroup outside commutatorSet. |
FC01-C05-U041 |
exact match | mathlib |
SemidirectProduct.mulEquivSubgroup; Subgroup.isComplement'_of_disjoint_and_mul_eq_univ |
pinned/current semidirect + complement APIs | Exact internal semidirect-product recognition under normality, trivial intersection, and product exhaustion. |
FC01-C05-U042 |
exact match | mathlib |
Subgroup.IsComplement'; IsComplement'.sup_eq_top; IsComplement'.disjoint |
pinned/current complement API | Exact complement condition, with bijective multiplication and join/disjoint formulations. |
FC01-C05-U043 |
exact match | reference-port |
OrderPQ.nonempty_mulEquiv_semidirectProduct_of_card_eq_prime_mul_prime; exists_card_eq_prime_mul_prime_and_not_isCyclic_iff; uniqueness theorem |
Vilin97/lean-pool@e3c8ad9b67d0b4e4dca5528678b6c3af13a123b3, Apache-2.0 |
Exact order-pq semidirect classification, divisibility criterion, and uniqueness of the noncyclic type. |
FC01-C05-U044 |
exact match | reference-port |
order-30 classification theorem |
lixiang90/smallgroups@ac10670581519957a3e3a7c8e1eae0ec44406954, Order30.lean; no repository license found |
The theorem lists exactly the four source isomorphism types; non-copyable unless licensing is clarified. |
FC01-C05-U045 |
exact match | reference-port |
order-12 classification; fourP_12_classification |
lixiang90/smallgroups@ac10670581519957a3e3a7c8e1eae0ec44406954, Order12.lean / Order4P_12.lean; no repository license found |
The theorem exhausts the five order-12 types, including cyclic/direct-product, semidirect, dihedral, and alternating cases. |
FC01-C05-U046 |
partial match / wrong interface | reference-port |
Mathlib finite-abelian existence; licensed Heis p; generic semidirect construction |
pinned/current Mathlib + tilemachosvassias/LeanDring@dd595c0…, Apache-2.0; broad GitHub search |
Three abelian models and representatives of two nonabelian constructions are available, but no searched theorem proves exhaustion and pairwise nonisomorphism of exactly five groups for every odd prime. |
C06 — Further Topics in Group Theory
Project search found no project-owned C06 replacement. During this tranche the repository’s pinned Mathlib checkout had advanced to v4.32.0 at 81a5d257c8e410db227a6665ed08f64fea08e997; the C06 declaration audit compiled successfully there with explicit nilpotent/Sylow/solvable, projective-geometry, free-group, presentation, and finite-presentation imports. Current-default-branch search was refreshed against leanprover-community/mathlib4@7974e751bece493b6ff508039423ca9fa2452fa8; the relevant projectivization/action interfaces remain present there.
External search materially narrows the deep finite-group gaps. ianklatzco/odd-order-lean@5cf07626edf04b2db9ea03fde77a08ec009c6feb (Apache-2.0) contains the proved theorem burnside_solvable; its repository records the only permitted source sorry at the separate odd-order theorem, not in the Burnside development. yawara/odd-order@82e8b66fe80a2eb9f0c6568bf288186086af73af (Apache-2.0; source tree recorded sorry-free as of 2026-08-07) contains OddOrder.Isaacs.Ch07.isSolvable_of_pcomplement_exists and the proved Feit–Thompson theorem feitThompson. No searched source supplied Thompson’s two-generator solvability criterion, the Chapter-6 Sylow large-intersection lemma, the detailed simple-order-168 structure theorem, the group-derived Fano incidence construction, or the uniqueness theorem for the simple group of order 168.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C06-U001 |
exact match | mathlib |
IsCoatom on Subgroup G |
pinned/current lattice + subgroup APIs | A coatom of the subgroup lattice is exactly a proper subgroup maximal below ⊤, i.e. the source definition of maximal subgroup. |
FC01-C06-U002 |
partial match / wrong interface | mathlib |
IsPGroup.bot_lt_center; Group.normalizerCondition_of_isNilpotent; NormalizerCondition.normal_of_coatom; Sylow.exists_subgroup_card_pow_prime_le |
pinned/current PGroup.lean, Nilpotent.lean, Sylow.lean |
Nontrivial center, proper-normalizer growth, maximal-subgroup normality, and prescribed p-power subgroup existence are available, but the searched API does not supply the omnibus theorem’s stronger clauses that every nontrivial normal H meets the center nontrivially and that each prescribed-order subgroup inside H can be chosen normal in the ambient p-group. |
FC01-C06-U003 |
exact match | mathlib |
Subgroup.upperCentralSeries; upperCentralSeriesStep_eq_comap_center; upperCentralSeries_zero; upperCentralSeries_one |
pinned/current Mathlib/GroupTheory/Nilpotent.lean |
Exact recursively defined upper central series, with successor obtained from the quotient center and the expected first terms. |
FC01-C06-U004 |
exact match | mathlib |
Group.IsNilpotent; Group.nilpotencyClass; Subgroup.upperCentralSeries_eq_top_iff_nilpotencyClass_le |
pinned/current nilpotent API | Nilpotence is exactly finite termination of the upper central series, and nilpotencyClass is the least terminating index. |
FC01-C06-U005 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/Loogle/LeanSearch/Reservoir/GitHub search | No searched group-theory API defines the hypercenter/hypernilpotent notion obtained from the non-finitely terminating upper central series; current Mathlib’s upper central series is ℕ-indexed and its nilpotent interface is finite-termination based. |
FC01-C06-U006 |
partial match / wrong interface | mathlib |
IsPGroup.isNilpotent; Group.nilpotencyClass |
pinned/current nilpotent + p-group APIs | Every finite p-group is directly proved nilpotent, but no searched declaration gives the source’s sharp class bound nilpotencyClass P ≤ a - 1 from | |FC01-C06-U007| exact match |mathlib| [Group.isNilpotent_of_finite_tfae](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Group.isNilpotent_of_finite_tfae#doc); [Sylow.directProductOfNormal](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Sylow.directProductOfNormal#doc) | pinned/current [Mathlib/GroupTheory/Nilpotent.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/Nilpotent.html), [Sylow.lean](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Sylow.lean#doc) | Mathlib's TFAE is essentially the source theorem and is stronger: it includes nilpotence, the normalizer condition, normal maximal subgroups, normal Sylows, and an explicit multiplicative equivalence with the product of Sylows. | |FC01-C06-U008| exact match |mathlib| [CommGroup.isNilpotent](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=CommGroup.isNilpotent#doc); [Group.isNilpotent_of_finite_tfae](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Group.isNilpotent_of_finite_tfae#doc); [Sylow.directProductOfNormal](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Sylow.directProductOfNormal#doc) | pinned/current nilpotent/Sylow APIs | A commutative group is nilpotent, and the finite nilpotence equivalence yields exactly the direct product of its Sylow subgroups. | |FC01-C06-U009| broad match |mathlib|isCyclic_of_card_pow_eq_one_le; order-of/divisibility APIs | pinned/current cyclic + element-order APIs | Mathlib proves cyclicity under the stronger-looking bound for every positiven; the source's divisor-only hypothesis reduces to it by replacingnwithgcd(n, |
FC01-C06-U010 |
exact match | mathlib |
Sylow.normalizer_sup_eq_top; subgroup index/cardinality divisibility API |
pinned/current Mathlib/GroupTheory/Sylow.lean, Index.lean |
normalizer_sup_eq_top is the Frattini argument H ⊔ N_G(P)=⊤ under exactly the normal-subgroup/Sylow hypotheses; standard index/cardinality lemmas give the accompanying divisibility of | |FC01-C06-U011| exact match |mathlib| [Group.isNilpotent_of_finite_tfae](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Group.isNilpotent_of_finite_tfae#doc) | pinned/current nilpotent API | One of the TFAE clauses is exactly that every coatom/maximal subgroup is normal. | |FC01-C06-U012| exact match |mathlib| [Subgroup.lowerCentralSeries](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Subgroup.lowerCentralSeries#doc);lowerCentralSeries_succ| pinned/current nilpotent API | Exact lower central series recursion by subgroup commutators. | |FC01-C06-U013| exact match |mathlib| [Subgroup.isNilpotent_iff_lowerCentralSeries](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Subgroup.isNilpotent_iff_lowerCentralSeries#doc); [Subgroup.lowerCentralSeries_eq_bot_iff_nilpotencyClass_le](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Subgroup.lowerCentralSeries_eq_bot_iff_nilpotencyClass_le#doc); [Subgroup.lowerCentralSeries_length_eq_nilpotencyClass](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Subgroup.lowerCentralSeries_length_eq_nilpotencyClass#doc) | pinned/current nilpotent API | Exact termination criterion and least-index/class identification; Mathlib also proves equality of the upper- and lower-series termination lengths throughnilpotencyClass. | |FC01-C06-U014| exact match |mathlib|derivedSeries;derivedSeries_succ| pinned/current [Mathlib/GroupTheory/Solvable.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/Solvable.html) | Exact derived-series construction by iterated commutator subgroup. | |FC01-C06-U015| exact match |mathlib| [Group.IsSolvable](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Group.IsSolvable#doc);isSolvable_def| pinned/current solvable API |IsSolvable Gis defined by existence of an index where the derived series is⊥, exactly the source criterion. | |FC01-C06-U016| unmatched after search |unmatched| — | project + pinned/current Mathlib + current-upstream/GitHub search | GroupIsSolvableandderivedSeriesexist, but no searched group-theory declaration packages the least terminating index as a solvable/derived length. The similarly named MathlibderivedLengthbelongs to Lie algebras, not groups. | |FC01-C06-U017| exact match |mathlib|subgroup_solvable_of_solvable;solvable_of_surjective;solvable_quotient_of_solvable;solvable_of_ker_le_range| pinned/current solvable API | Subgroups, surjective images/quotients, and extensions are all directly supported;solvable_of_ker_le_rangeis a more general kernel/range formulation of the source extension clause. | |FC01-C06-U018| partial match / wrong interface |reference-port|burnside_solvable; [OddOrder.Isaacs.Ch07.isSolvable_of_pcomplement_exists](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=OddOrder.Isaacs.Ch07.isSolvable_of_pcomplement_exists#doc);feitThompson|ianklatzco/odd-order-lean@5cf07626edf04b2db9ea03fde77a08ec009c6feb, Apache-2.0;yawara/odd-order@82e8b66fe80a2eb9f0c6568bf288186086af73af, Apache-2.0 | Three of the four collected deep solvability results have licensed proved Lean implementations: Burnsidep^a q^b, Hall's all-p-complements criterion, and Feit–Thompson. No searched theorem-level Lean source proved Thompson's criterion that solvability of every two-generated subgroup forces solvability of the whole finite group. | |FC01-C06-U019| broad match |mathlib| [Subgroup.IsComplement’](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Subgroup.IsComplement'#doc);Sylow; subgroup cardinality/index and coprimality APIs | pinned/current complement + Sylow + index APIs | A p-complement is directly expressible as a subgroup complementary to a Sylow p-subgroup, equivalently by the source order/index conditions, but Mathlib does not expose a dedicated non-normalpComplementpredicate under that name. | |FC01-C06-U020| broad match |mathlib|alternatingGroup_eq_sign_ker; [alternatingGroup.index_eq_two](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=alternatingGroup.index_eq_two#doc); Sylow and normalizer/cardinality APIs | pinned/current alternating + Sylow APIs | Restricting the sign homomorphism toGgives the index-2 obstruction, while odd-p Sylow transfer across the index-2 alternating subgroup and the normalizer-cardinality relation follow from generic Sylow/index machinery; the paired proposition is not packaged as one declaration. | |FC01-C06-U021| unmatched after search |unmatched| — | project + pinned/current Mathlib + odd-order/CFSG + broad GitHub search | Generic Sylow intersection and normalizer machinery is available, but no searched proved declaration gives the specific congruence hypothesisn_p(G) ≢ 1 mod p²and concludes existence of two Sylows with index-p intersection. | |FC01-C06-U022| exact match |reference-port|burnside_solvable; [IsSimpleGroup.comm_iff_isSolvable](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSimpleGroup.comm_iff_isSolvable#doc) |ianklatzco/odd-order-lean@5cf07626edf04b2db9ea03fde77a08ec009c6feb, Apache-2.0 + pinned/current Mathlib | Since1053 = 3^4 · 13, the proved Burnside theorem makes every group of that order solvable; Mathlib then forces a simple solvable group to be commutative, so a composite-order simple group is impossible. This proves the source assertion by a stronger route than Lemma 13. | |FC01-C06-U023| unmatched after search |unmatched| — | project + pinned/current Mathlib +Qiuzhen-CFSG/CFSG@96b2a02085dc678f3e0a97b334c31ada599c55fd+ broad GitHub search | Sylow, alternating, dihedral, and Klein-four substrate APIs exist, and CFSG contains nearby order-168 arithmetic in specialized hypotheses, but no searched proved theorem packages the detailed simple-order-168 Sylow counts/types, conjugacy classes, maximal subgroups, embeddings, andS₄normalizers stated here. | |FC01-C06-U024| unmatched after search |unmatched| — | project + pinned/current Mathlib + CFSG/odd-order/GitHub search | No searched declaration constructs the seven-point/seven-line incidence geometry from the two Klein-four conjugacy classes of a hypothetical simple group of order 168 or proves the required incidence axioms. | |FC01-C06-U025| broad match |mathlib| [Configuration.ProjectivePlane](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Configuration.ProjectivePlane#doc); [Configuration.ProjectivePlane.order](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Configuration.ProjectivePlane.order#doc); [Configuration.ProjectivePlane.card_points](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Configuration.ProjectivePlane.card_points#doc); [Configuration.ofField](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Configuration.ofField#doc) projective-plane instance | pinned/current [Mathlib/Combinatorics/Configuration.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Combinatorics/Configuration.html) + projectivization cardinality API | Mathlib has a general projective-plane incidence class and the explicit projective plane onℙ K (Fin 3 → K); specializing toK = F₂yields the seven-point order-2 plane. There is no searched namedFanoPlaneobject/uniqueness interface. | |FC01-C06-U026| unmatched after search |unmatched| — | project + pinned/current Mathlib + current-upstream/GitHub search | The configuration library supplies incidence structures but no searched structure/predicate for simultaneous point/line permutations preserving incidence, so the source's Fano-plane automorphism notion is not already packaged. | |FC01-C06-U027| partial match / wrong interface |mathlib| [Projectivization.equivSubmodule](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Projectivization.equivSubmodule#doc); [Projectivization.card](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Projectivization.card#doc); [Matrix.card_GL_field](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Matrix.card_GL_field#doc); [Projectivization.SL_mulAction_ker](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Projectivization.SL_mulAction_ker#doc); [Matrix.ProjectiveSpecialLinearGroup.toPermHom_injective](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Matrix.ProjectiveSpecialLinearGroup.toPermHom_injective#doc) | pinned/current projectivization, matrix-group, and configuration APIs | Mathlib supplies projective points as one-dimensional subspaces, the projective-plane model, the general-linear cardinal formula (specializing to 168), and a faithful projective special-linear action. The exact source interface—1-dimensional points and 2-dimensional lines with oneGL₃(F₂)incidence-automorphism action—is not packaged; overF₂the scalar/determinant identifications and line action require adapters. | |FC01-C06-U028| unmatched after search |unmatched| — | project + pinned/current Mathlib + CFSG/small-groups/GitHub search | No searched proved Lean theorem establishes uniqueness of a simple group of order 168, identifies it withGL₃(F₂), and identifies that group with the full automorphism group of the Fano plane. | |FC01-C06-U029| broad match |mathlib|FreeGroupword implementation onList (α × Bool); [FreeGroup.invRev](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.invRev#doc) | pinned/current [Mathlib/GroupTheory/FreeGroup/Basic.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/FreeGroup/Basic.html) | Mathlib represents a generator/formal-inverse letter by(α × Bool)and uses the empty word for identity rather than adjoining a literal1letter; this is an equivalent lower-level encoding of the source alphabet. | |FC01-C06-U030| broad match |mathlib| lists in theFreeGroupconstruction | pinned/current free-group basic API | Finite lists of signed generators replace the source's eventually-1infinite sequences; the represented finite-word data are equivalent, but the carrier interface is different. | |FC01-C06-U031| broad match |mathlib| [FreeGroup.IsReduced](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.IsReduced#doc); [FreeGroup.isReduced_iff_not_step](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.isReduced_iff_not_step#doc); [FreeGroup.Red.Step](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.Red.Step#doc) | pinned/current free-group reduction API |IsReducedexactly excludes adjacent inverse cancellation on finite signed-generator lists. The source's trailing-1convention disappears because Mathlib uses genuinely finite lists. | |FC01-C06-U032| broad match |mathlib|FreeGroup; [FreeGroup.mk](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.mk#doc); [FreeGroup.of](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.of#doc); [FreeGroup.of_injective](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.of_injective#doc) | pinned/current free-group basic API | Generators embed injectively and the empty-generator case is trivial, but Mathlib definesFreeGroup αas a quotient of words by reduction rather than literally the subtype/set of reduced words. | |FC01-C06-U033| broad match |mathlib| [FreeGroup.Red.Step](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.Red.Step#doc); [FreeGroup.Red.church_rosser](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.Red.church_rosser#doc); quotient multiplication by list concatenation | pinned/current free-group reduction API | Concatenation and cancellation are formalized through the confluent reduction relation and quotient multiplication, not by the source's explicit maximal-cancellation case formula on canonical reduced representatives. | |FC01-C06-U034| broad match |mathlib| group instance onFreeGroup α; reduction/quotient multiplication | pinned/current free-group basic API | The resulting free-word object is directly a group, but through the quotient-of-words construction rather than the source's set-of-reduced-words carrier. | |FC01-C06-U035| exact match |mathlib| [FreeGroup.lift](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.lift#doc); [FreeGroup.lift_apply_of](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.lift_apply_of#doc); [FreeGroup.lift_unique](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.lift_unique#doc) | pinned/current free-group basic API | Exact universal property: every function on generators extends uniquely to a group homomorphism. | |FC01-C06-U036| exact match |mathlib| [FreeGroupBasis.repr](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroupBasis.repr#doc); [FreeGroupBasis.repr_apply_coe](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroupBasis.repr_apply_coe#doc); [FreeGroupBasis.ext_hom](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroupBasis.ext_hom#doc); [FreeGroup.freeGroupCongr](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroup.freeGroupCongr#doc) | pinned/current [Mathlib/GroupTheory/FreeGroup/IsFreeGroup.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/FreeGroup/IsFreeGroup.html) | A free basis carries an explicit multiplicative equivalence with a canonical free group, fixes the basis generators, and homomorphisms are determined by their values on the basis, giving the source's unique isomorphism fixingS. | |FC01-C06-U037| partial match / wrong interface |mathlib|FreeGroupBasis; [FreeGroupBasis.ofFreeGroup](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FreeGroupBasis.ofFreeGroup#doc);IsFreeGroup; [IsFreeGroup.Generators](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsFreeGroup.Generators#doc) | pinned/current free-group basis API | Free bases and the predicate “group is free” are first-class. No searched group-theory API defines the rank as the cardinality of a free basis or proves basis-cardinality invariance, so the source's rank component is missing. | |FC01-C06-U038| exact match |mathlib|subgroupIsFreeOfIsFree| pinned/current [Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/FreeGroup/NielsenSchreier.html) | Exact Nielsen–Schreier theorem: every subgroup of a free group is free. | |FC01-C06-U039| exact match |mathlib|PresentedGroup; [PresentedGroup.mk_eq_one_iff](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=PresentedGroup.mk_eq_one_iff#doc); [PresentedGroup.toGroup](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=PresentedGroup.toGroup#doc); [Group.IsFinitelyPresented](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Group.IsFinitelyPresented#doc); [Group.IsFinitelyPresented.exists_mulEquiv_presentedGroup](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Group.IsFinitelyPresented.exists_mulEquiv_presentedGroup#doc) | pinned/current presented/finitely-presented group APIs |PresentedGroup relsis the free group modulo the normal closure of the relation set, and finite presentability is packaged by finitely many free generators and finitely normally generated kernel. | |FC01-C06-U040| broad match |mathlib|PresentedGroup; relation words as elements ofFreeGroup; quotient relation API | pinned/current presented-group API | The semantics of generators and equations are exact, but Dummit–Foote's angle-bracket display syntax and the shorthandw₁=w₂are notation conventions rather than Mathlib notation. | |FC01-C06-U041| exact match |mathlib|[Finite G] : Group.IsFinitelyPresented G| pinned/current [Mathlib/GroupTheory/FinitelyPresentedGroup.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/GroupTheory/FinitelyPresentedGroup.html) | Mathlib directly provides finite presentability for every finite group; the multiplication-table construction is a proof route, not an interface gap. | |FC01-C06-U042| broad match |mathlib| [PresentedGroup.toGroup](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=PresentedGroup.toGroup#doc); [PresentedGroup.toGroup.unique](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=PresentedGroup.toGroup.unique#doc); finite-cardinality bijectivity lemmas | pinned/current presented-group + finite-cardinality APIs | Relations true inG` give the induced homomorphism from the presented group; generator surjectivity plus the source cardinal upper bound forces equal finite cardinalities and hence bijectivity. The recognition criterion is assembled from generic APIs rather than exposed as one named theorem. |
C07 — Introduction to Rings
Project search found no project-owned C07 replacement. The declaration audit was compiled against the repository’s pinned Mathlib v4.32.0 checkout at 81a5d257c8e410db227a6665ed08f64fea08e997, with explicit imports for non-unital rings/subrings, two-sided ideals and ring congruences, quaternions, quadratic/Pell/number-field units, polynomials, matrices, monoid algebras, ideals, localization, rational functions, CRT, and units of products.
The source convention that a ring need not have an identity is material here. Accordingly, NonUnitalRing, NonUnitalCommRing, NonUnitalRingHom, NonUnitalRingEquiv, NonUnitalSubring, and TwoSidedIdeal are used for the source’s base notions; Mathlib Ring, RingHom, and ordinary commutative Ideal are not silently substituted where that would strengthen the source interface.
External search found one directly reusable modern source for the group-ring rows: TauCetiProject/TauCeti@d6214142a5e6403ba4f977246f1fc16418d561e4, TauCeti/Algebra/MonoidAlgebra/Exactness.lean, Apache-2.0, defines TauCeti.MonoidAlgebra.augmentation and proves ker_augmentation_eq_span. A legacy Lean-3 source, lean-forward/class-group-and-mordell-equation@baba2049f3bfe4d2cc184f8205997333e7c58638, contains the exact quadratic-ring-of-integers split in src/number_theory/quad_ring/basic.lean, but no repository license could be verified and the interface is Lean-3-era, so it is evidence only and not a reusable route. No searched licensed current Lean source supplied the integral-quaternion subring example, the full imaginary-quadratic unit lists, the explicit full unit group of ℤ[√2], the fixed-row/fixed-column one-sided matrix ideals, or the nonprincipality of (2,X) ⊂ ℤ[X].
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C07-U001 |
exact match | mathlib |
NonUnitalRing; NonUnitalCommRing; Ring |
pinned/current algebra hierarchy | Mathlib splits the source definition exactly: NonUnitalRing is the base ring, NonUnitalCommRing adds commutativity, and Ring adds an identity. |
FC01-C07-U002 |
exact match | mathlib |
additive/multiplicative notation for ring structures | pinned/current algebra core | Juxtaposition, 0, and unary negation are the standard operations of the corresponding ring structures. |
FC01-C07-U003 |
exact match | mathlib |
DivisionRing; Field |
pinned/current field hierarchy | These are exactly the source notions: a nontrivial unital ring with inverses for nonzero elements, with Field the commutative specialization. |
FC01-C07-U004 |
broad match | mathlib |
NonUnitalRing structure construction; subsingleton/zero-ring instances |
pinned/current algebra core | Zero multiplication on an arbitrary additive commutative group is immediately expressible by a structure instance and the one-element specialization is the zero ring, but no searched named constructor packages this textbook example. |
FC01-C07-U005 |
exact match | mathlib |
Quaternion ℝ; quaternion basis/multiplication; Quaternion.normSq; division-ring instance |
pinned/current Mathlib/Algebra/Quaternion.lean |
Mathlib’s real quaternions have the displayed basis relations, norm-square, conjugation/inverse formula, and a division-ring instance; this is the source construction rather than an abstract surrogate. |
FC01-C07-U006 |
exact match | mathlib |
Pi/product non-unital/ring instances | pinned/current algebra Pi/product instances | Pointwise addition and multiplication on X → A give exactly the function ring, with commutativity and identity inherited pointwise from A. |
FC01-C07-U007 |
broad match | mathlib |
CompactlySupportedContinuousMap; CompactlySupportedContinuousMap.continuousMapEquiv |
pinned/current Mathlib/Topology/ContinuousMap/CompactlySupported.lean |
C_c(ℝ,ℝ) carries the intended pointwise non-unital commutative ring. Mathlib uses topological compact support rather than the source’s elementary “vanishes outside a bounded interval”; on ℝ these agree by Heine–Borel. |
FC01-C07-U008 |
exact match | mathlib |
generic ring simp lemmas (zero_mul, mul_zero, neg_mul, mul_neg, neg_mul_neg, uniqueness of 1) |
pinned/current algebra core | All listed identities are primitive generic ring consequences already exposed by the core API. |
FC01-C07-U009 |
broad match | mathlib |
IsUnit; Units; left/right regularity and nonZeroDivisors APIs |
pinned/current ring/group-with-zero APIs | Units and the unit group are first-class. The source’s two-sided zero-divisor predicate is represented through failure of left/right regularity rather than one bundled predicate with exactly the source disjunction. |
FC01-C07-U010 |
exact match | mathlib |
ZMod.isUnit_iff_coprime; ZMod field instances for prime modulus; finite-ring/unit APIs |
pinned/current Data/ZMod/Basic.lean, Algebra/Field/ZMod.lean |
The unit/coprimality criterion is direct; the nonzero-nonunit zero-divisor and field/primality consequences follow from the finite ZMod n multiplication API without changing the mathematical statement. |
FC01-C07-U011 |
broad match | mathlib |
AdjoinRoot; Algebra.IsQuadraticExtension; quadratic-adjoin/inverse machinery |
pinned/current field-theory APIs | Mathlib has the canonical degree-two/adjoin-root infrastructure from which ℚ(√D) and the conjugate-over-norm inverse are obtained, but no searched public type is literally the source set {a+b√D} with that display as its primary interface. |
FC01-C07-U012 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + current/external GitHub search | No searched declaration packages the unique squarefree part of an arbitrary nonsquare rational together with the canonical equality/isomorphism ℚ(√D)=ℚ(√D′). Arithmetic squarefree-factor APIs exist, but not this quadratic-field comparison. |
FC01-C07-U013 |
exact match | mathlib |
IsDomain together with CommRing/Nontrivial |
pinned/current ring hierarchy | This is exactly the source unital commutative no-zero-divisor notion. |
FC01-C07-U014 |
exact match | mathlib |
regular-element cancellation; IsDomain cancellation instances |
pinned/current algebra core | Cancellation by a regular element and cancellation by nonzero elements in a domain are generic consequences of the relevant cancellation/regularity classes. |
FC01-C07-U015 |
exact match | mathlib |
Finite.isDomain_to_isField |
pinned/current Mathlib/RingTheory/LittleWedderburn.lean |
Direct theorem: a finite integral domain carries a field structure. |
FC01-C07-U016 |
exact match | mathlib |
littleWedderburn; Finite.divisionRing_to_field |
pinned/current Mathlib/RingTheory/LittleWedderburn.lean |
Direct formalization of Wedderburn’s little theorem. |
FC01-C07-U017 |
exact match | mathlib |
NonUnitalSubring; non-unital subring closure/extensionality APIs |
pinned/current Mathlib/RingTheory/NonUnitalSubring/Basic.lean |
NonUnitalSubring is exactly the source subring convention: additive subgroup plus multiplication closure, without requiring the ambient identity. |
FC01-C07-U018 |
partial match / wrong interface | mathlib |
Quaternion ℝ; Quaternion ℚ; NonUnitalSubring |
pinned/current quaternion/subring APIs + external search | Hamilton quaternions are fully formalized, but no searched declaration defines the Lipschitz/integral quaternion subring ℤ+ℤi+ℤj+ℤk or proves that it is not a division ring. |
FC01-C07-U019 |
exact match | mathlib |
FractionRing; IsFractionRing; injective algebra map for domains |
pinned/current localization/fraction-ring APIs | The fraction-ring construction gives an embedding of every integral domain in a field, while a unital subring of a field inherits the domain property. |
FC01-C07-U020 |
partial match / wrong interface | mathlib |
NumberField.RingOfIntegers; quadratic-extension infrastructure |
pinned/current number-field APIs; legacy Lean-3 lean-forward/class-group-and-mordell-equation@baba2049… is evidence only |
Current Mathlib has the general ring of integers but no searched current declaration giving the source’s explicit quadratic integral basis split by D mod 4. A legacy Lean-3 proof has exactly this split, but its repository license was not verifiable and its API is incompatible. |
FC01-C07-U021 |
partial match / wrong interface | mathlib |
Zsqrtd.norm; Zsqrtd.norm_def; Algebra.norm on number fields |
pinned/current NumberTheory/Zsqrtd, number-field norm APIs |
The formula a²-Db² and multiplicativity are direct on ℤ√D, and the general field norm exists on the full ring of integers; the displayed 1,ω formula for the D≡1 mod 4 integral basis is not packaged. |
FC01-C07-U022 |
exact match | mathlib |
NumberField.isUnit_iff_norm; Zsqrtd.isUnit_iff_norm_isUnit |
pinned/current number-field/Zsqrtd APIs | For algebraic integers, unit status is characterized by the integer norm being a unit, i.e. ±1; this is the source criterion. |
FC01-C07-U023 |
partial match / wrong interface | mathlib |
Pell.Solution₁; Pell.is_pell_solution_iff_mem_unitary; Zsqrtd.isUnit_iff_norm_isUnit |
pinned/current Pell/Zsqrtd APIs | Mathlib literally identifies norm-one ℤ√D units with Pell solutions and handles norm ±1 units, but the source’s comparison with the full quadratic ring of integers in the D≡1 mod 4 basis needs an adapter not present in the searched API. |
FC01-C07-U024 |
partial match / wrong interface | mathlib |
Gaussian/quadratic integer and number-field roots-of-unity/unit APIs | pinned/current number-theory APIs + external search | The ambient rings and general unit/roots-of-unity machinery exist, but no searched theorem gives exactly the four Gaussian units, six Eisenstein-type units for D=-3, and ±1 for all remaining negative quadratic cases in one reusable interface. |
FC01-C07-U025 |
partial match / wrong interface | mathlib |
NumberField.Units.rank; NumberField.Units.exist_unique_eq_mul_prod; Pell fundamental-unit API |
pinned/current Dirichlet/Pell APIs + external search | Dirichlet’s unit theorem proves rank one, hence infinitely many units, for real quadratic fields after specialization. No searched declaration identifies 1+√2 as the fundamental generator and proves the full ±(1+√2)^n classification. |
FC01-C07-U026 |
exact match | mathlib |
Polynomial; Polynomial.degree; leadingCoeff; Polynomial.Monic |
pinned/current polynomial core | Exact formal polynomial construction and the source degree/leading-coefficient/monic notions. |
FC01-C07-U027 |
exact match | mathlib |
polynomial add/mul; coefficient convolution lemmas | pinned/current polynomial core | Polynomial multiplication is the finite coefficient convolution stated by the source, with the full ring instance already constructed. |
FC01-C07-U028 |
exact match | mathlib |
Polynomial.C; injectivity of constants; commutative/ring instances |
pinned/current polynomial core | Constants embed as a subring and polynomial commutativity/identity are inherited exactly from the coefficient ring. |
FC01-C07-U029 |
exact match | mathlib |
Polynomial.degree_mul; Polynomial.isUnit_iff; domain instance |
pinned/current polynomial degree/units APIs | All three clauses are direct: degree additivity over a domain, units exactly constant units, and preservation of the domain property. |
FC01-C07-U030 |
exact match | mathlib |
Matrix; matrix ring instance; Matrix.mul_apply |
pinned/current matrix core | Exact n×n matrix ring with componentwise addition and the displayed finite-sum multiplication law. |
FC01-C07-U031 |
broad match | mathlib |
matrix units/standard-basis matrices and generic matrix multiplication | pinned/current matrix APIs | The standard matrix-unit witnesses prove noncommutativity and zero divisors for n≥2; the searched API supplies the construction rather than one named theorem with the source’s bundled conclusion. |
FC01-C07-U032 |
exact match | mathlib |
Matrix.scalar; scalar-matrix algebra map; Matrix.GeneralLinearGroup |
pinned/current matrix/general-linear-group APIs | Scalar matrices and their centrality over a commutative coefficient ring are standard API, and GL n R is precisely the unit group of the matrix ring. |
FC01-C07-U033 |
broad match | mathlib |
Matrix.BlockTriangular; matrix closure lemmas |
pinned/current matrix block/triangular APIs | Upper-triangularity is first-class and preserved by the ring operations, but no searched dedicated subring object has the exact textbook carrier as its public interface. |
FC01-C07-U034 |
exact match | mathlib |
MonoidAlgebra R G; single; coefficient and multiplication APIs |
pinned/current monoid-algebra APIs | MonoidAlgebra R G is the group ring construction, and is more general because finite support permits arbitrary groups rather than only finite G. |
FC01-C07-U035 |
exact match | mathlib |
MonoidAlgebra.single; scalar/algebra maps |
pinned/current monoid-algebra APIs | single 1 a is the coefficient scalar and single g 1 the basis group element, with simplification lemmas implementing the source identifications. |
FC01-C07-U036 |
broad match | mathlib |
monoid-algebra ring instances; single_commute_single; algebra map; basis-element units |
pinned/current monoid-algebra APIs | Ring structure, central scalar embedding, and the embedding of G into units are directly available. Commutativity from abelian G is an instance; the converse is assembled from injectivity of basis elements rather than exposed as the source biconditional. |
FC01-C07-U037 |
broad match | mathlib |
MonoidAlgebra.single; finite-support sums; element-order API |
pinned/current monoid-algebra + group-order APIs | The displayed factorization (1-g)(1+⋯+g^{m-1})=0 is directly expressible and proved by the generic geometric-sum machinery, but no searched named theorem packages this concrete zero-divisor result for every nontrivial finite group ring. |
FC01-C07-U038 |
exact match | mathlib |
MonoidAlgebra over ℤ/ℚ; MonoidAlgebra.mapDomainRingHom; subgroup inclusion |
pinned/current monoid-algebra APIs | Integral/rational group rings are literal specializations, and an injective subgroup homomorphism induces the required injective group-ring map. |
FC01-C07-U039 |
broad match | mathlib |
MonoidAlgebra ℝ (QuaternionGroup ...); quaternion division-ring API; U037 route |
pinned/current group-ring/quaternion APIs | The two objects are distinct by the source witnesses—basis group -1 is not additive -1, and the group ring has zero divisors while ℍ is a division ring—but no searched named comparison theorem packages the example. |
FC01-C07-U040 |
exact match | mathlib |
NonUnitalRingHom; TwoSidedIdeal.ker |
pinned/current non-unital hom/two-sided-ideal APIs | NonUnitalRingHom preserves exactly addition and multiplication, not 1, matching the source convention; its kernel is available as a two-sided ideal. |
FC01-C07-U041 |
broad match | mathlib |
NonUnitalRingEquiv / RingEquiv notation |
pinned/current ring-equivalence APIs | Ring isomorphisms are first-class equivalences, but Lean notation is ≃ₙ+*/≃+* rather than the source’s overloaded ≅ convention. |
FC01-C07-U042 |
exact match | mathlib |
Polynomial.constantCoeff; Polynomial.ker_constantCoeff |
pinned/current polynomial ideal API | Constant-term evaluation is surjective and its kernel is exactly the ideal generated by X, i.e. the polynomials with zero constant term. |
FC01-C07-U043 |
exact match | mathlib |
NonUnitalRingHom.range; TwoSidedIdeal.ker; TwoSidedIdeal.mem_ker |
pinned/current non-unital subring/two-sided-ideal APIs | The image is a non-unital subring and the kernel is exactly a two-sided ideal, matching all source closure clauses without imposing preservation of 1. |
FC01-C07-U044 |
exact match | mathlib |
TwoSidedIdeal.ringCon; TwoSidedIdeal.rel_iff; RingCon.Quotient |
pinned/current two-sided-ideal/ring-congruence APIs | A two-sided ideal determines the congruence x~y ↔︎ x-y∈I; quotient classes are additive cosets and the quotient carries the induced non-unital ring operations. |
FC01-C07-U045 |
exact match | mathlib |
TwoSidedIdeal.ringCon.Quotient |
pinned/current ring-congruence quotient API | This is exactly the quotient ring by the kernel ideal at the carrier/operation level. |
FC01-C07-U046 |
exact match | mathlib |
Ideal (left ideals); opposite/right-ideal transport; TwoSidedIdeal |
pinned/current ideal/two-sided-ideal APIs | Mathlib explicitly treats ordinary noncommutative Ideal as a left ideal, obtains right ideals through the opposite ring, and has TwoSidedIdeal for the source default ideal. |
FC01-C07-U047 |
exact match | mathlib |
TwoSidedIdeal membership/closure; commutative ideal equivalence |
pinned/current two-sided-ideal/ideal APIs | The additive and two-sided absorption criterion is the structure itself; in commutative rings the left/right/two-sided distinctions collapse. |
FC01-C07-U048 |
broad match | mathlib |
TwoSidedIdeal.ringCon; non-unital quotient instances; TwoSidedIdeal.orderIsoRingCon |
pinned/current congruence/two-sided-ideal APIs | Every two-sided ideal yields exactly the quotient ring, and ideals are order-isomorphic to ring congruences. The converse phrased specifically as “well-defined coset multiplication implies idealhood” is encoded structurally rather than as one named theorem. |
FC01-C07-U049 |
exact match | mathlib |
RingCon.Quotient from TwoSidedIdeal.ringCon |
pinned/current quotient API | Exact quotient-ring object for a two-sided ideal, including non-unital rings. |
FC01-C07-U050 |
partial match / wrong interface | mathlib |
RingHom.quotientKerEquivRange; RingCon.quotientKerEquivRangeS; non-unital quotient/range substrate |
pinned/current quotient/congruence APIs | The first isomorphism theorem is bundled for unital RingHom; the source allows arbitrary NonUnitalRingHom. The non-unital kernel, range, and quotient objects exist, but no searched bundled non-unital first-isomorphism equivalence connects them. |
FC01-C07-U051 |
partial match / wrong interface | mathlib |
RingCon.mk'; TwoSidedIdeal.ker_ringCon_mk'; quotient carrier/surjectivity |
pinned/current congruence/two-sided-ideal APIs | For unital rings, the natural projection and exact kernel theorem are direct. The source statement is for its possibly non-unital rings; no searched bundled NonUnitalRingHom projection theorem has that full interface. |
FC01-C07-U052 |
broad match | mathlib |
quotient coercion/Ideal.Quotient.mk/RingCon.toQuotient |
pinned/current quotient APIs | Quotient classes and the expected addition/multiplication simp lemmas are exact; the overbar notation itself is textbook presentation rather than Lean notation. |
FC01-C07-U053 |
exact match | mathlib |
⊤, ⊥, properness in the ideal/two-sided-ideal lattices |
pinned/current lattice APIs | Proper means not top and the zero ideal is bottom, exactly the source definitions. |
FC01-C07-U054 |
exact match | mathlib |
ZMod; canonical cast/reduction ring homomorphism |
pinned/current Data/ZMod APIs |
ℤ → ZMod n is the canonical quotient/reduction map, with the expected kernel and quotient interpretation. |
FC01-C07-U055 |
exact match | mathlib |
Pi.evalRingHom; evaluation surjectivity; kernel + first-isomorphism APIs |
pinned/current Pi/ring-hom APIs | Coordinate evaluation on a function ring is a surjective homomorphism; its kernel is exactly the functions vanishing at that point, yielding the stated quotient isomorphism. |
FC01-C07-U056 |
broad match | mathlib |
Matrix.map; quotient coefficient map; generic kernel/first-isomorphism APIs |
pinned/current matrix + quotient APIs | Entrywise quotient is the exact map and its kernel is the matrices with all entries in J; the resulting matrix-quotient equivalence is assembled from generic matrix extensionality and first isomorphism rather than exposed as one named theorem. |
FC01-C07-U057 |
exact match | reference-port |
TauCeti.MonoidAlgebra.augmentation; generic first-isomorphism API |
TauCetiProject/TauCeti@d6214142a5e6403ba4f977246f1fc16418d561e4, TauCeti/Algebra/MonoidAlgebra/Exactness.lean, Apache-2.0 |
Tau Ceti defines exactly the coefficient-sum augmentation on a monoid algebra and its kernel; it is modern Mathlib-based Lean and directly reusable by port/import. Surjectivity is immediate from singleton coefficients. |
FC01-C07-U058 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + current/external GitHub search | Matrix support predicates and one-sided-ideal infrastructure exist, but no searched declaration constructs the fixed-column left ideal and fixed-row right ideal and proves the stated failure of the opposite ideal condition. |
FC01-C07-U059 |
exact match | mathlib |
Polynomial.mapRingHom; ZMod reduction hom |
pinned/current polynomial/ZMod APIs | Mapping coefficients along ℤ → ZMod p is literally the source coefficientwise reduction homomorphism. |
FC01-C07-U060 |
partial match / wrong interface | mathlib |
quotient maps/equivalences; ideal map/comap correspondence; RingEquiv.idealComapOrderIso |
pinned/current ideal quotient/maps APIs | The standard second/third/correspondence isomorphism machinery is available for the unital Ideal/RingHom interfaces. The source theorem is stated for its general rings and two-sided ideals/subrings; no single searched API covers all three clauses at that non-unital/noncommutative interface. |
FC01-C07-U061 |
partial match / wrong interface | mathlib |
Ideal sup/mul/pow; Ideal.mul_eq_inf_of_isCoprime; two-sided-ideal lattice |
pinned/current ideal/two-sided-ideal APIs | Sum, product, powers, least-upper-bound behavior, and IJ≤I∩J are standard for Mathlib ideals, but the most developed multiplicative ideal API is the unital Ideal interface; the source default is a possibly non-unital two-sided ideal. |
FC01-C07-U062 |
exact match | mathlib |
TwoSidedIdeal.span; TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure_nonunital; Ideal.span |
pinned/current TwoSidedIdeal/Operations.lean |
The smallest two-sided ideal containing a set is first-class even for non-unital rings, with an explicit closure formula covering the source’s finite sums of ra, ar, and rar′; principal/finitely generated specializations are direct. |
FC01-C07-U063 |
broad match | mathlib |
TwoSidedIdeal.span; Ideal.span |
pinned/current ideal APIs | Generated ideals are exact objects, while parenthesized (a_1,…,a_n) is textbook notation rather than Mathlib syntax. |
FC01-C07-U064 |
broad match | mathlib |
Ideal.span; opposite-ring ideal transport; TwoSidedIdeal.span; non-unital span closure theorem |
pinned/current ideal/two-sided-ideal APIs | Left, right, and two-sided generated ideals are all representable, and TwoSidedIdeal.mem_span_iff_mem_addSubgroup_closure_nonunital gives the non-unital two-sided closure. The source’s terse RA/AR/RAR notation is not a single bundled constructor family. |
FC01-C07-U065 |
exact match | mathlib |
Ideal.mem_span_singleton; Ideal.span_singleton_le_span_singleton |
pinned/current ideal span API | In a commutative ring, singleton ideal membership is divisibility and inclusion of principal ideals reverses divisibility exactly as in the source. |
FC01-C07-U066 |
exact match | mathlib |
integer ideal classification; Ideal.span_singleton_toAddSubgroup_eq_zmultiples; gcd/span lemmas |
pinned/current Ideal/Int.lean, Ideal/Operations.lean |
Integer ideals are principal, inclusion is divisibility, and the ideal generated by two integers is controlled by their gcd. |
FC01-C07-U067 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + exact GitHub search for (2,X) nonprincipal |
Mathlib supplies all needed polynomial/ideal/UFD substrate, but no searched proved declaration states that (2,X) ⊂ ℤ[X] is nonprincipal. Search hits were expository/non-Lean or different multivariate examples. |
FC01-C07-U068 |
broad match | reference-port |
TauCeti.MonoidAlgebra.ker_augmentation_eq_span |
TauCetiProject/TauCeti@d6214142a5e6403ba4f977246f1fc16418d561e4, Apache-2.0 |
The external theorem proves exactly that the augmentation ideal is generated by all single g 1 - 1. For a cyclic group, reducing that generating set to the single generator a-1 is a short adapter using the geometric-factorization identity, not a separately packaged theorem. |
FC01-C07-U069 |
exact match | mathlib |
ideal top/unit lemmas; Ideal.isField_iff_maximal_bot |
pinned/current ideal/maximal APIs | Containing a unit is equivalent to being top, and the commutative field criterion by absence of nontrivial ideals is directly formalized. |
FC01-C07-U070 |
broad match | mathlib |
TwoSidedIdeal.ker_eq_bot; simple-field/division-ring ideal facts |
pinned/current two-sided-ideal/simple-ring APIs | The source uses non-unital homomorphisms. A nonzero map from a field has non-top kernel, and simplicity forces that kernel to bottom, giving injectivity; Mathlib’s direct RingHom.injective theorem is for the stronger unital interface, so the source version is assembled from the non-unital kernel API. |
FC01-C07-U071 |
exact match | mathlib |
IsSimpleRing; DivisionRing.isSimpleRing; matrix simple-ring instance |
pinned/current RingTheory/SimpleRing APIs |
IsSimpleRing is defined for NonUnitalNonAssocRing by having exactly bottom/top two-sided ideals; division rings and full matrix rings over fields have the required instances. |
FC01-C07-U072 |
exact match | mathlib |
IsCoatom on the two-sided-ideal lattice; Ideal.IsMaximal in the commutative interface |
pinned/current lattice/maximal-ideal APIs | Maximality is precisely being a coatom in the ideal lattice; Mathlib’s commutative Ideal.IsMaximal is the specialized named predicate. |
FC01-C07-U073 |
partial match / wrong interface | mathlib |
Ideal.exists_le_maximal; generic Zorn/coatom machinery |
pinned/current Ideal/Maximal.lean, order/Zorn APIs |
The theorem is direct for ordinary unital Ideal, but the source default is a two-sided ideal in a possibly noncommutative ring. No searched TwoSidedIdeal coatomic/maximal-containment theorem packages that full source interface. |
FC01-C07-U074 |
exact match | mathlib |
Ideal.Quotient.maximal_ideal_iff_isField_quotient |
pinned/current ideal quotient API | Exact commutative maximal-ideal/quotient-field equivalence. |
FC01-C07-U075 |
exact match | mathlib |
Ideal.IsPrime; Ideal.isPrime_iff |
pinned/current prime-ideal API | Exact source definition of a prime ideal in a commutative ring. |
FC01-C07-U076 |
exact match | mathlib |
Ideal.Quotient.isDomain_iff_prime |
pinned/current ideal quotient API | Direct prime-quotient-domain equivalence. |
FC01-C07-U077 |
exact match | mathlib |
bottom-prime / IsDomain equivalences |
pinned/current prime/domain API | The zero ideal is prime exactly when the commutative unital ring is a domain. |
FC01-C07-U078 |
exact match | mathlib |
Ideal.IsMaximal.isPrime |
pinned/current Ideal/Maximal.lean |
Direct theorem that every maximal ideal is prime. |
FC01-C07-U079 |
exact match | mathlib |
Localization; IsLocalization; IsLocalization.lift; IsLocalization.lift_unique |
pinned/current localization API | IsLocalization is the universal property stated by the source and is more general; injectivity follows under the source hypothesis that denominators are non-zero-divisors, and the all-nonzero specialization is a fraction field. |
FC01-C07-U080 |
broad match | mathlib |
Localization quotient relation; IsLocalization.eq_iff_exists |
pinned/current localization definitions | Mathlib uses the general localization equivalence allowing an auxiliary denominator annihilator. Under the source regular-denominator hypothesis this collapses to re=sd, so the source relation is the regular special case. |
FC01-C07-U081 |
exact match | mathlib |
localization addition/multiplication; IsLocalization.mk' |
pinned/current localization API | Fraction addition and multiplication have exactly the displayed numerator/denominator formulas and are proved well defined. |
FC01-C07-U082 |
exact match | mathlib |
IsLocalization.injective; denominator-unit and fraction-representation theorems |
pinned/current localization API | Under D ≤ nonZeroDivisors R, the algebra map is injective; denominators become units and every localization element is a numerator times an inverse denominator. |
FC01-C07-U083 |
exact match | mathlib |
Localization; FractionRing; IsFractionRing |
pinned/current localization/fraction-ring APIs | D⁻¹R is the localization; specializing to nonzero elements of a domain gives the fraction field. |
FC01-C07-U084 |
exact match | mathlib |
IntermediateField.adjoin |
pinned/current field-theory subfield API | IntermediateField.adjoin is exactly the least subfield containing the specified subset. |
FC01-C07-U085 |
exact match | mathlib |
IsFractionRing.algEquiv; IsFractionRing.lift; IsFractionRing.lift_unique |
pinned/current fraction-ring API | Fraction fields are unique up to the unique extension fixing the embedded domain, giving exactly the source “smallest generated field” comparison. |
FC01-C07-U086 |
partial match / wrong interface | mathlib |
RatFunc; RatFunc.toFractionRingRingEquiv; IsFractionRing |
pinned/current FieldTheory/RatFunc + fraction-ring APIs |
For a field F, RatFunc F is explicitly the fraction field of F[X]. No searched declaration directly identifies the fraction field of R[X] with that of Frac(R)[X] for an arbitrary domain R, so the first clause needs an adapter. |
FC01-C07-U087 |
exact match | mathlib |
Localization.Away |
pinned/current Localization/Away API |
Localization.Away d is precisely localization at the powers of one element, i.e. R[1/d]; under the source regularity hypothesis the embedding is injective. |
FC01-C07-U088 |
exact match | mathlib |
product/Pi ring instances | pinned/current algebra product APIs | Direct products carry exactly the componentwise ring operations of the source. |
FC01-C07-U089 |
broad match | mathlib |
product/Pi homomorphism constructors and coordinate projections | pinned/current ring-hom/product APIs | A map into a product is multiplicative/additive exactly coordinatewise. The unital RingHom constructor is bundled; for the source’s non-unital hom convention the same statement is assembled componentwise from NonUnitalRingHom. |
FC01-C07-U090 |
exact match | mathlib |
Ideal.IsCoprime; IsCoprime.sup_eq |
pinned/current ideal API | Pairwise/comaximal means exactly that the ideal supremum is top, i.e. A+B=R. |
FC01-C07-U091 |
exact match | mathlib |
ideal multiplication; finite products; singleton-span product lemmas | pinned/current ideal operations | The finite-sum-of-products ideal product and its principal-ideal specialization are direct parts of the ideal multiplication API. |
FC01-C07-U092 |
exact match | mathlib |
Ideal.quotientInfRingEquivPiQuotient; Ideal.prod_eq_iInf_of_pairwise_isCoprime; Ideal.quotientMulEquivQuotientProd |
pinned/current ideal quotient/operations APIs | Mathlib proves the canonical CRT map, pairwise-coprime surjectivity, equality of product and intersection, and the quotient/product ring equivalence exactly. |
FC01-C07-U093 |
exact match | mathlib |
ZMod.chineseRemainder |
pinned/current Data/ZMod/Basic.lean |
Direct ring equivalence ZMod (m*n) ≃+* ZMod m × ZMod n under coprimality, with the same simultaneous-congruence content. |
FC01-C07-U094 |
exact match | mathlib |
prodUnits; Prod.isUnit_iff; Units.map along CRT equivalence |
pinned/current product/unit APIs | Units of a product are multiplicatively equivalent to the product of unit groups, and CRT transports that equivalence to ZMod. |
FC01-C07-U095 |
exact match | mathlib |
ZMod.prodEquivPi; ZMod.card_units_eq_totient; Nat.totient_mul |
pinned/current Data/ZMod/QuotientRing.lean, totient APIs |
Mathlib has the prime-factor product ring equivalence, and unit-cardinality/totient theorems give the unit-group decomposition and multiplicativity of Euler’s φ. |
C08 — Euclidean Domains, Principal Ideal Domains, and Unique Factorization Domains
Project search found no project-owned C08 replacement. The local declaration audit was compiled against the repository’s pinned Mathlib v4.32.0 checkout at 81a5d257c8e410db227a6665ed08f64fea08e997, with explicit Euclidean-domain, polynomial, Gaussian-integer, discrete-valuation-ring, principal-ideal, unique-factorization, Dedekind-domain, class-group, and sum-of-two-squares interfaces.
Two external Lean 4 developments close several textbook-example gaps. franv314/non-euclidean-pid@087a99dc84ea7f0f70f614556f02111df63dd103 (MIT; no searched sorry) formalizes the ring ℤ[(1+√-19)/2], a universal-side-divisor obstruction to Euclideanity, a Dedekind–Hasse-style descent relation, and the resulting PID/non-Euclidean example; it pins an older Mathlib (31af98b7…), so it is recorded as a reference-port rather than a direct package import. WangFrankie/QuadraticNumberFields@8943a27707b9b6059811b6f741ea84957ae1be25 (Apache-2.0; Mathlib v4.30.0-rc2) contains sorry-free concrete files Examples/SqrtNeg5/Ideals.lean and Examples/SqrtNeg5/ClassNumber.lean proving the standard ℤ[√-5] ideal factorizations, a nonprincipal prime ideal, its principal square, and class number two. That repository also contains explicitly placeholder files elsewhere; none of those admitted declarations are counted here.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C08-U001 |
broad match | mathlib |
ordinary functions R → ℕ/R → ℤ plus positivity predicates |
pinned/current core arithmetic | The source’s “norm” is only data—a nonnegative integer-valued function vanishing at zero—so it is directly expressible. Mathlib does not bundle this particular weak notion under a dedicated Euclidean-domain norm type. |
FC01-C08-U002 |
partial match / wrong interface | mathlib |
EuclideanDomain; EuclideanDomain.quotient; EuclideanDomain.remainder; EuclideanDomain.remainder_lt |
pinned/current Mathlib/Algebra/EuclideanDomain |
Mathlib packages exactly the division algorithm and termination, but uses an arbitrary well-founded remainder relation rather than requiring existence of a ℤ_{≥0}-valued norm. The mathematical capability is stronger; the defining interface differs. |
FC01-C08-U003 |
exact match | mathlib |
EuclideanDomain.quotient; EuclideanDomain.remainder; quotient_mul_add_remainder_eq |
pinned/current Euclidean-domain API | Quotient and remainder are first-class operations satisfying the source decomposition. |
FC01-C08-U004 |
broad match | mathlib |
EuclideanDomain.gcd; EuclideanDomain.xgcd; remainder_lt; well-founded recursion |
pinned/current Euclidean-domain API | The repeated-division algorithm and forced termination are the implementation of gcd/xgcd. Termination is by the generalized well-founded remainder relation rather than a numeric norm. |
FC01-C08-U005 |
exact match | mathlib |
Field.toEuclideanDomain |
pinned/current Algebra/EuclideanDomain/Field.lean |
Every field receives the Euclidean-domain structure directly, with zero remainder division. |
FC01-C08-U006 |
broad match | mathlib |
Int.euclideanDomain; integer quotient/remainder APIs |
pinned/current integer Euclidean-domain API | ℤ is directly Euclidean. Mathlib fixes a canonical Euclidean quotient/remainder convention, whereas the source additionally records nonuniqueness under the weaker absolute-value inequality. |
FC01-C08-U007 |
exact match | mathlib |
Polynomial.instEuclideanDomain; IsField.of_isPrincipalIdealRing_polynomial; EuclideanDomain.to_principal_ideal_domain |
pinned/current polynomial/PID APIs | Polynomial rings over fields are Euclidean; conversely Euclidean R[X] would be principal, and the direct principal-polynomial theorem forces R to be a field. |
FC01-C08-U008 |
exact match | mathlib |
GaussianInt.instEuclideanDomain; GaussianInt.norm_mod_lt; GaussianInt.natAbs_norm_mod_lt |
pinned/current NumberTheory/Zsqrtd/GaussianInt.lean |
Gaussian integers have the norm-Euclidean structure and the strong rounding remainder bound used by the source. |
FC01-C08-U009 |
broad match | mathlib |
Valuation; Valuation.IsRankOneDiscrete; integer/value-group valuation APIs |
pinned/current valuation APIs | Mathlib’s valuation interface is multiplicative and value-group based rather than literally a surjective additive homomorphism Kˣ → ℤ, but rank-one discrete valuations encode the same discrete valuation data after the standard order/group equivalence. |
FC01-C08-U010 |
broad match | mathlib |
Valuation.integer; Valuation.valuationSubring_isDiscreteValuationRing; IsDiscreteValuationRing |
pinned/current valuation/DVR APIs | The valuation subring and its DVR theorem are direct. Mathlib’s bundled IsDiscreteValuationRing is characterized internally by local/PID conditions rather than defined only as a valuation ring of the fraction field. |
FC01-C08-U011 |
exact match | mathlib |
IsDiscreteValuationRing.toEuclideanDomain |
pinned/current RingTheory/DiscreteValuationRing/Basic.lean |
Direct theorem: every DVR has a Euclidean-domain structure. |
FC01-C08-U012 |
partial match / wrong interface | mathlib |
EuclideanDomain.to_principal_ideal_domain |
pinned/current principal-ideal-domain API | The principal-ideal conclusion is direct. The stronger source statement that an arbitrary minimal numeric norm element generates the ideal is not expressible from Mathlib’s generalized well-founded Euclidean relation without choosing such a norm. |
FC01-C08-U013 |
broad match | mathlib |
Polynomial.instEuclideanDomain; IsField.of_isPrincipalIdealRing_polynomial; EuclideanDomain.to_principal_ideal_domain |
pinned/current polynomial/PID APIs | ℚ[X] is directly Euclidean, and ℤ[X] cannot be Euclidean because Euclidean implies principal while principal R[X] forces R to be a field. This proves the source comparison without formalizing its particular (2,X) witness. |
FC01-C08-U014 |
broad match | reference-port |
QuadraticNumberFields.Examples.SqrtNeg5.not_isPrincipal_P; Mathlib Euclidean→PID |
WangFrankie/QuadraticNumberFields@8943a277…, Examples/SqrtNeg5/ClassNumber.lean, Apache-2.0 |
The external proof supplies a concrete nonprincipal ideal in ℤ[√-5], hence the ring is not Euclidean. Its witness is (2,1+√-5) in the maximal-order model rather than the source’s (3,2+√-5). |
FC01-C08-U015 |
exact match | mathlib |
divisibility; Associated; gcd/GCD-monoid predicates |
pinned/current divisibility/GCD APIs | Divisibility, common divisors, gcds, and association by units are the standard multiplicative interfaces. |
FC01-C08-U016 |
broad match | mathlib |
Ideal.span; Ideal.mem_span_singleton; principal-ideal divisibility equivalences |
pinned/current ideal APIs | Equality (a,b)=(d) translates exactly into the universal divisibility property of d; the proposition is assembled from span/divisibility lemmas rather than exposed under the textbook name. |
FC01-C08-U017 |
exact match | mathlib |
IsBezout |
pinned/current Bézout-domain API | IsBezout is exactly the domain condition that every finitely generated, hence every two-generated, ideal is principal. |
FC01-C08-U018 |
exact match | mathlib |
Associated; equality of singleton spans/principal ideals |
pinned/current associated/principal-ideal APIs | Equality of principal ideals in a domain is equivalent to association, giving uniqueness of gcds up to a unit. |
FC01-C08-U019 |
exact match | mathlib |
EuclideanDomain.gcd; EuclideanDomain.xgcd; EuclideanDomain.gcd_eq_gcd_ab |
pinned/current Euclidean-domain API | The computed gcd is produced by Euclidean recursion and the extended algorithm gives the Bézout linear combination exactly. |
FC01-C08-U020 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + current/external GitHub search | No searched theorem bounds integer Euclidean-algorithm division steps by five times the number of decimal digits (Lamé-style complexity) or packages the corresponding logarithmic step estimate. |
FC01-C08-U021 |
partial match / wrong interface | mathlib |
Int.gcd_eq_gcd_ab; divisibility and linear-combination APIs |
pinned/current Data/Int/GCD.lean |
Mathlib supplies Bézout coefficients and the solvability criterion, but no searched declaration gives the complete one-parameter classification of all integer solutions x=x₀+m(b/d), y=y₀-m(a/d). |
FC01-C08-U022 |
exact match | mathlib |
Int.gcd_dvd_iff |
pinned/current Data/Int/GCD.lean |
This theorem is exactly gcd(a,b) ∣ N ↔︎ ∃ x y, N = ax+by, modulo harmless term ordering/sign conventions. |
FC01-C08-U023 |
exact match | reference-port |
is_universal_side_divisor |
franv314/non-euclidean-pid@087a99dc…, NonEuclideanPid/NotEuclidean.lean, MIT |
The external definition is the source notion: a nonzero nonunit u for which every residue class modulo u has representative 0 or a unit. |
FC01-C08-U024 |
exact match | reference-port |
euclidean_domain_has_usd |
franv314/non-euclidean-pid@087a99dc…, NonEuclideanPid/NotEuclidean.lean, MIT |
Direct formalization of the universal-side-divisor obstruction for any nonfield Euclidean domain. |
FC01-C08-U025 |
exact match | reference-port |
R; no_usd_in_R; R_no_ed |
franv314/non-euclidean-pid@087a99dc…, RingConstruction.lean, NotEuclidean.lean, Proof.lean, MIT |
R is explicitly ℤ[(1+√-19)/2]; the development proves it has no universal side divisor and therefore admits no compatible Euclidean-domain structure. |
FC01-C08-U026 |
exact match | mathlib |
[IsDomain R] [IsPrincipalIdealRing R] |
pinned/current principal-ideal-domain API | Mathlib represents the source PID notion by the conjunction of an integral-domain instance and IsPrincipalIdealRing. |
FC01-C08-U027 |
exact match | mathlib |
EuclideanDomain.to_principal_ideal_domain |
pinned/current PID API | Direct theorem that every Euclidean domain is a principal ideal domain. |
FC01-C08-U028 |
broad match | reference-port |
not_isPrincipal_P; span_two_eq_P_sq; isPrincipal_P0_sq; concrete ideal factorizations |
WangFrankie/QuadraticNumberFields@8943a277…, Examples/SqrtNeg5/ClassNumber.lean, Examples/SqrtNeg5/Ideals.lean, Apache-2.0 |
The external development proves ℤ[√-5] has a nonprincipal prime ideal and that its square is principal, exactly establishing non-PID behavior and the source’s “nonprincipal ideals can multiply to principal” phenomenon. Its chosen nonprincipal ideal differs from the source’s displayed (3,1+√-5) witness. |
FC01-C08-U029 |
exact match | reference-port |
R_pid; R_no_ed |
franv314/non-euclidean-pid@087a99dc…, NonEuclideanPid/Proof.lean, MIT |
The development’s final instances/theorem state precisely that ℤ[(1+√-19)/2] is a PID and is not Euclidean. |
FC01-C08-U030 |
exact match | mathlib |
IsBezout.gcd; IsBezout.gcd_eq_sum; associated-gcd uniqueness |
pinned/current Bézout/PID APIs | PID gives Bézout gcds, the displayed linear combination, and uniqueness up to associates. |
FC01-C08-U031 |
exact match | mathlib |
Ideal.isPrime_iff_of_isPrincipalIdealRing; principal-domain maximal-ideal lemmas |
pinned/current PID/maximal-ideal APIs | A nonzero prime ideal in a principal ideal domain is maximal; this is directly packaged in the principal-ideal theory. |
FC01-C08-U032 |
exact match | mathlib |
IsField.of_isPrincipalIdealRing_polynomial |
pinned/current RingTheory/Polynomial/Basic.lean |
Direct theorem: if R[X] is principal, then R is a field; the Euclidean case follows from U027. |
FC01-C08-U033 |
broad match | reference-port |
DedekindHasseDomain; dh_rel_on_r |
franv314/non-euclidean-pid@087a99dc…, NonEuclideanPid/PrincipalIdeal.lean, MIT |
The external class formalizes the same descending-linear-combination criterion using an arbitrary well-founded relation; its concrete √-19 instance orders by complex norm-square. It is equivalent in purpose but not literally a positive integer-valued norm structure. |
FC01-C08-U034 |
partial match / wrong interface | reference-port |
dedekind_hasse_domain_implies_pid |
franv314/non-euclidean-pid@087a99dc…, NonEuclideanPid/PrincipalIdeal.lean, MIT |
The difficult direction “Dedekind–Hasse descent ⇒ PID” is proved. No searched declaration supplies the source converse that every PID admits such a norm; that later construction is also the missing content of U049. |
FC01-C08-U035 |
exact match | reference-port |
R_dh_domain; R_pid; R_no_ed |
franv314/non-euclidean-pid@087a99dc…, PrincipalIdeal.lean, Proof.lean, MIT |
The positive norm-square descent for the exact √-19 ring is formalized and used to prove PID while the universal-side-divisor argument proves non-Euclideanity. |
FC01-C08-U036 |
exact match | mathlib |
Irreducible; Prime; Associated; Ideal.span_singleton_prime |
pinned/current factorization/ideal APIs | These are precisely the source notions and their principal-ideal characterization. |
FC01-C08-U037 |
exact match | mathlib |
Prime.irreducible |
pinned/current factorization API | Direct generic theorem that prime elements are irreducible. |
FC01-C08-U038 |
partial match / wrong interface | reference-port |
factorization_of_three; isPrime_span_three_one_plus_sqrtd; isPrime_span_three_one_minus_sqrtd; Zsqrtd norm substrate |
WangFrankie/QuadraticNumberFields@8943a277…, Examples/SqrtNeg5/Ideals.lean, Apache-2.0 |
The external file formalizes the relevant 3-ideal splitting and enough arithmetic to witness failure of primality, but no searched proved declaration states the source’s exact element theorem that 3 itself is irreducible yet not prime. |
FC01-C08-U039 |
exact match | mathlib |
UniqueFactorizationMonoid.irreducible_iff_prime; IsPrincipalIdealRing.to_uniqueFactorizationMonoid |
pinned/current PID/UFD APIs | A PID is a UFD in Mathlib, and in a UFD irreducible and prime are equivalent; together these give the source proposition directly. |
FC01-C08-U040 |
exact match | mathlib |
UniqueFactorizationMonoid; normalized-factor uniqueness APIs |
pinned/current unique-factorization API | UniqueFactorizationMonoid packages existence of irreducible factorizations and uniqueness up to units/order; with IsDomain this is the source UFD notion. |
FC01-C08-U041 |
exact match | mathlib |
field instances for UniqueFactorizationMonoid |
pinned/current factorization hierarchy | Fields receive the vacuous unique-factorization instance exactly as in the source. |
FC01-C08-U042 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + current/external GitHub search | No searched proved Lean source defines the subring ℤ[2i] and proves the displayed two nonassociate irreducible factorizations of 4, or otherwise proves that this ring is not a UFD. |
FC01-C08-U043 |
broad match | reference-port |
not_isPrincipal_P; classNumber_eq_two; IsPrincipalIdealRing.of_isDedekindDomain_of_uniqueFactorizationMonoid |
WangFrankie/QuadraticNumberFields@8943a277…, Examples/SqrtNeg5/ClassNumber.lean, Apache-2.0 + pinned/current Mathlib |
The external development proves a nonprincipal ideal/class number two in the Dedekind domain ℤ[√-5]; Mathlib proves every Dedekind UFD is a PID, so this rigorously implies non-UFD. The exact element identity 6=2·3=(1+√-5)(1-√-5) as two irreducible factorizations is not the formal route used. |
FC01-C08-U044 |
exact match | mathlib |
Ideal.uniqueFactorizationMonoid; ring-of-integers IsDedekindDomain instance |
pinned/current RingTheory/DedekindDomain/Ideal/Basic.lean, number-field APIs |
Nonzero ideals of a Dedekind domain have unique prime-ideal factorization; quadratic rings of integers are number-field rings of integers and hence are covered directly. |
FC01-C08-U045 |
exact match | mathlib |
UniqueFactorizationMonoid.irreducible_iff_prime |
pinned/current UFD API | Direct UFD equivalence of irreducible and prime elements. |
FC01-C08-U046 |
exact match | mathlib |
UniqueFactorizationMonoid.toGCDMonoid; normalized-factor multiplicity APIs |
pinned/current UFD/GCD/multiplicity APIs | The canonical gcd in a UFD is computed from normalized prime factors with minimum multiplicities, exactly the source formula up to normalization by units. |
FC01-C08-U047 |
exact match | mathlib |
IsPrincipalIdealRing.to_uniqueFactorizationMonoid; EuclideanDomain.to_principal_ideal_domain |
pinned/current PID/UFD APIs | Direct hierarchy: PID implies UFD, and Euclidean implies PID. |
FC01-C08-U048 |
exact match | mathlib |
integer UniqueFactorizationMonoid instance |
pinned/current integer factorization API | ℤ is directly a UFD, formalizing the Fundamental Theorem of Arithmetic. |
FC01-C08-U049 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + current/external Lean search | No searched theorem constructs, for an arbitrary PID, the specific multiplicative Dedekind–Hasse norm N(a)=2^{Ω(a)} from irreducible-factor count. Mathlib supplies factor counts, but no Dedekind–Hasse norm notion to receive this construction. |
FC01-C08-U050 |
broad match | mathlib |
algebraic norm multiplicativity; NumberField.isUnit_iff_norm; Prime.irreducible in ℤ |
pinned/current number-field/quadratic-integer APIs | The source criterion is a short generic adapter: a factorization of α factors its integer norm; primality of abs (N α) forces one factor norm to be a unit, hence one factor is a unit. No searched declaration packages this exact quadratic criterion under one theorem name. |
FC01-C08-U051 |
broad match | mathlib |
Nat.Prime.sq_add_sq; GaussianInt.prime_iff_mod_four_eq_three_of_nat_prime; Gaussian norm/factorization APIs |
pinned/current SumTwoSquares.lean, Zsqrtd/QuadraticReciprocity.lean |
The prime sum-of-two-squares existence theorem, Gaussian norm factorization, the special prime 2, and the p≡3 mod 4 inert/prime criterion are all formalized. The source’s full pattern is assembled from these APIs rather than one theorem. |
FC01-C08-U052 |
exact match | mathlib |
ZMod.exists_sq_eq_neg_one_iff; prime/mod-four APIs |
pinned/current NumberTheory/LegendreSymbol/Basic.lean |
For prime p, divisibility of some n²+1 is exactly existence of a square root of -1 modulo p; Mathlib’s theorem gives precisely the p=2 or p≡1 mod 4 criterion after the standard odd-prime split. |
FC01-C08-U053 |
partial match / wrong interface | mathlib |
Nat.Prime.sq_add_sq; Gaussian prime/mod-four APIs |
pinned/current sum-two-squares/Gaussian APIs | Existence for primes and the Gaussian irreducible classes are supported by the factorization/mod-four machinery. No searched declaration proves the source’s uniqueness of the integer representation up to swapping and signs, so the composite row is not fully covered. |
FC01-C08-U054 |
partial match / wrong interface | mathlib |
Nat.eq_sq_add_sq_iff |
pinned/current Mathlib/NumberTheory/SumTwoSquares.lean |
Mathlib directly proves the complete existence characterization: every q≡3 mod 4 occurs to even exponent. No searched theorem gives the additional count 4∏(a_i+1) of ordered signed representations. |
FC01-C08-U055 |
broad match | mathlib |
field→Euclidean, Euclidean→PID, PID→UFD, domain hierarchy; polynomial-UFD and polynomial-PID criterion | pinned/current hierarchy + the two external example developments above | All inclusions and witnesses can be reconstructed: ℤ is Euclidean but not a field; the proved √-19 ring is PID non-Euclidean; ℤ[X] is UFD but cannot be PID because principal R[X] forces R field; the proved nonprincipal ideal in Dedekind ℤ[√-5] plus “Dedekind UFD ⇒ PID” gives a domain non-UFD. The source packages this as one comparison rather than a single Lean declaration. |
C09 — Polynomial Rings
Project search found one C09-specific owner: LeanCategories/Algebra/Polynomial.lean defines the leading-term ideal and a finite IsGroebnerBasis predicate, adapted under Apache-2.0 from WuProver. The ordinary polynomial, multivariate-polynomial, quotient, irreducibility, Noetherian, root, monomial-order, and ideal operations are otherwise supplied by Mathlib rather than duplicated locally.
The pinned declaration audit uses Mathlib v4.32.0 at 81a5d257c8e410db227a6665ed08f64fea08e997; current upstream master was checked on 2026-09-05 at 7974e751bece493b6ff508039423ca9fa2452fa8. The targeted current/pinned search covered polynomial and multivariate polynomial quotients, Euclidean division, Gauss lemma/UFD transfer, irreducibility criteria, roots, cyclic unit groups, Noetherian polynomial rings, monomial orders, and the current multivariate Gröbner primitives. google-deepmind/formal-conjectures@230782e37bbf5aa0cab03874e876626beacac009 and the local reference corpus were also searched for the concrete examples and missing Gröbner/elimination statements.
For the Gröbner-theory tranche, WuProver/groebner_proj@42910339be485d279407382576e767223898c543 (Apache-2.0) proves finite Gröbner-basis existence, unique remainders, Buchberger’s criterion, minimal/reduced bases, reduction of a minimal basis, and uniqueness of the reduced basis. That revision targets Lean v4.29.0-rc8, so it is recorded as a reference-port, not a direct package import into this v4.32.0 repository. Its current WIP head 96a41217cef0acb131780e0103c037367f362857 and WuProver/GroebnerTactic@1cbbc7122e52e757ba6502f450a3cfd1df243b26 were checked separately: the latter delegates Gröbner computation to SageMath/SymPy and kernel-checks certificates, but neither searched development supplies a formal Buchberger iteration/termination theorem or an elimination theorem.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C09-U001 |
exact match | mathlib |
Polynomial; Polynomial.C; Polynomial.X; coefficient/degree APIs |
pinned/current polynomial API | The univariate polynomial ring and its coefficient, degree, leading-coefficient, and evaluation operations are first-class. |
FC01-C09-U002 |
exact match | mathlib |
Polynomial.degree_mul; Polynomial.isUnit_iff |
pinned/current polynomial degree/unit API | Over a domain, degree is additive on nonzero products and polynomial units are exactly constant units, giving the source domain/unit statements directly. |
FC01-C09-U003 |
exact match | mathlib |
RatFunc; FractionRing; IsFractionRing |
pinned/current FieldTheory/RatFunc/Basic.lean |
RatFunc is explicitly exposed through the IsFractionRing API as the fraction field of a polynomial ring. |
FC01-C09-U004 |
exact match | mathlib |
Ideal.polynomialQuotientEquivQuotientPolynomial; Ideal.quotientEquivQuotientMvPolynomial |
pinned/current RingTheory/Polynomial/Quotient.lean |
The quotient of a polynomial ring by the coefficientwise extension of an ideal is directly equivalent to the polynomial ring over the quotient. |
FC01-C09-U005 |
broad match | mathlib |
polynomial quotient equivalences; quotientSpanXSubCAlgEquiv; maximal-ideal/quotient-field API |
pinned/current quotient/maximal-ideal API | The source warning and the contrast between extending a maximal ideal and adjoining X are reconstructed from the explicit quotient equivalences. No one declaration packages the full comparison. |
FC01-C09-U006 |
broad match | mathlib |
Polynomial.map; quotient coefficient map; ZMod |
pinned/current polynomial/quotient API | Coefficient reduction modulo n is the ordinary polynomial map induced by ℤ → ZMod n; the source notation is an immediate specialization. |
FC01-C09-U007 |
exact match | mathlib |
MvPolynomial (Fin n) R; finite-support exponent representation |
pinned/current MvPolynomial API |
Finite multivariable polynomial rings are represented directly, with monomials indexed by finitely supported exponent vectors. |
FC01-C09-U008 |
exact match | mathlib |
MvPolynomial.monomial; totalDegree; IsHomogeneous; homogeneousComponent |
pinned/current multivariate grading API | Monomials, multidegrees/total degree, homogeneous polynomials, and homogeneous components are directly formalized. |
FC01-C09-U009 |
exact match | mathlib |
MvPolynomial σ R |
pinned/current MvPolynomial API |
The variable type is arbitrary while each polynomial has finite support, exactly covering polynomial rings in an arbitrary set of variables. |
FC01-C09-U010 |
exact match | mathlib |
domain instances; MvPolynomial.totalDegree_mul_of_isDomain; MvPolynomial.isUnit_iff_eq_C_of_isReduced |
pinned/current multivariate domain/unit API | Polynomial rings over domains remain domains; total degree is additive on products and, since domains are reduced, units are exactly constant units. |
FC01-C09-U011 |
exact match | mathlib |
Polynomial.instEuclideanDomain; field-division API |
pinned/current Algebra/Polynomial/FieldDivision.lean |
A univariate polynomial ring over a field carries the Euclidean algorithm and quotient/remainder operations directly. |
FC01-C09-U012 |
exact match | mathlib |
Polynomial.instEuclideanDomain; Euclidean→PID→UFD instances |
pinned/current domain hierarchy | F[X] is Euclidean, hence principal and factorial, matching the source implication chain. |
FC01-C09-U013 |
broad match | mathlib |
IsField.of_isPrincipalIdealRing_polynomial; MvPolynomial.finSuccEquiv |
pinned/current polynomial/PID API | If R[X] is principal then R is a field; applying this to R=ℚ[X] proves ℚ[X,Y] is not a PID. The source’s specific (X,Y) witness is not a dedicated declaration. |
FC01-C09-U014 |
exact match | mathlib |
Polynomial.map_div; Polynomial.map_mod; Polynomial.gcd_map |
pinned/current Algebra/Polynomial/FieldDivision.lean |
Quotient, remainder, and gcd commute with field embeddings exactly as required for extension of the coefficient field. |
FC01-C09-U015 |
broad match | mathlib |
IsIntegrallyClosed.eq_map_mul_C_of_dvd; primitive/content normalization API |
pinned/current RingTheory/Polynomial/GaussLemma.lean |
Gauss’s factor-lifting statement is formalized in normalized form: factors over a fraction field can be rescaled to descend to the coefficient ring. The source’s arbitrary scalar-factor phrasing is assembled from this and content normalization. |
FC01-C09-U016 |
exact match | mathlib |
Polynomial.IsPrimitive.irreducible_iff_irreducible_map_fraction_map |
pinned/current RingTheory/Polynomial/GaussLemma.lean |
Primitive irreducibility over a GCD/UFD domain is equivalent to irreducibility after mapping to a fraction field. |
FC01-C09-U017 |
partial match / wrong interface | mathlib |
Polynomial.uniqueFactorizationMonoid |
pinned/current RingTheory/Polynomial/UniqueFactorization.lean |
Mathlib directly proves R UFD ⇒ R[X] UFD. No searched pinned/current theorem provides the converse R[X] UFD ⇒ R UFD, so the source iff is only half covered. |
FC01-C09-U018 |
exact match | mathlib |
MvPolynomial.uniqueFactorizationMonoid |
pinned/current RingTheory/Polynomial/UniqueFactorization.lean |
The arbitrary-variable polynomial ring over a UFD is directly a UFD, stronger than the finite-variable induction in the text. |
FC01-C09-U019 |
broad match | mathlib |
integer UFD instance; Polynomial.uniqueFactorizationMonoid; IsField.of_isPrincipalIdealRing_polynomial |
pinned/current UFD/PID API | ℤ[X] is directly a UFD and cannot be a PID because principal R[X] forces R to be a field. |
FC01-C09-U020 |
exact match | mathlib |
Polynomial.Monic.irreducible_of_monic |
pinned/current Algebra/Polynomial/Monic.lean |
For monic polynomials the theorem reduces irreducibility to absence of nontrivial monic factorizations, exactly the source criterion. |
FC01-C09-U021 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + reference corpus search | No searched declaration defines the concrete subring ℤ[2i] and proves the source’s X²+1 factorization/irreducibility pathology there. Generic subring and polynomial APIs do not supply this example. |
FC01-C09-U022 |
exact match | mathlib |
Polynomial.dvd_iff_isRoot; X_sub_C |
pinned/current roots/divisibility API | A scalar is a root exactly when the corresponding linear factor divides the polynomial. |
FC01-C09-U023 |
exact match | mathlib |
Polynomial.Monic.irreducible_iff_roots_eq_zero_of_degree_le_three |
pinned/current Algebra/Polynomial/SpecificDegree.lean |
For monic degree two or three polynomials, irreducibility is characterized by absence of roots; normalization covers the nonmonic field case. |
FC01-C09-U024 |
exact match | mathlib |
IsFractionRing.num_dvd_of_isRoot; IsFractionRing.den_dvd_of_isRoot |
pinned/current RingTheory/Polynomial/RationalRoot.lean |
The numerator and denominator divisibility clauses of the rational-root theorem are formalized directly over a fraction ring. |
FC01-C09-U025 |
broad match | mathlib |
Polynomial.Monic.irreducible_of_monic; Polynomial.Monic.map; Polynomial.Monic.natDegree_map; Polynomial.map_mul |
pinned/current monic/map API | The source allows any proper quotient ideal, whose quotient need not be a domain. The named Monic.irreducible_of_irreducible_map covers the prime-ideal/domain-target case; the stated general criterion is instead a short adapter: a nontrivial monic factorization maps to nonconstant monic factors of the same degrees in the nontrivial quotient. |
FC01-C09-U026 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + FormalConjectures/reference-corpus search | The source records the concrete counterexamples X⁴+1 and X⁴−72X²+4, irreducible over ℤ but reducible after all indicated reductions. No searched Lean development proves these exact examples. |
FC01-C09-U027 |
exact match | mathlib |
Polynomial.irreducible_of_eisenstein_criterion; Polynomial.IsEisensteinAt.irreducible |
pinned/current Eisenstein API | The prime-ideal Eisenstein–Schönemann criterion is formalized directly, with the primitive/generalized variants needed over domains. |
FC01-C09-U028 |
broad match | mathlib |
Eisenstein criterion; Polynomial.IsPrimitive.Int.irreducible_iff_irreducible_map_cast |
pinned/current Eisenstein/Gauss API | Specializing Eisenstein to a prime integer gives irreducibility in ℤ[X]; the primitive cast theorem then gives the ℚ[X] conclusion. |
FC01-C09-U029 |
broad match | mathlib |
Eisenstein criterion; Polynomial.monic_X_pow_sub_C |
pinned/current Eisenstein/polynomial API | X^n-C a satisfies Eisenstein immediately when p ∣ a but p² ∤ a; no separate searched declaration packages this elementary corollary. |
FC01-C09-U030 |
broad match | mathlib |
dvd_comp_X_add_C_iff; comp_X_add_C_ne_zero_iff; Eisenstein criterion |
pinned/current polynomial-composition/Eisenstein API | Translation by X+C a is invertible at the divisibility level, so factorization and irreducibility transfer. Together with Eisenstein this reconstructs the X⁴+1 argument, though the concrete coefficient computation is not a named theorem. |
FC01-C09-U031 |
exact match | mathlib |
Polynomial.cyclotomic.irreducible; cyclotomic_comp_X_add_one_isEisensteinAt |
pinned/current cyclotomic/Eisenstein API | Mathlib proves irreducibility of every positive cyclotomic polynomial and separately formalizes the prime cyclotomic translation as Eisenstein, stronger than the source prime case. |
FC01-C09-U032 |
broad match | mathlib |
Polynomial.irreducible_of_eisenstein_criterion; principal prime ideal (X) in k[X] |
pinned/current Eisenstein/PID API | Applying the generic criterion in the coefficient ring k[X] proves Y^n-X irreducible. The source example is a direct specialization rather than a named theorem. |
FC01-C09-U033 |
exact match | mathlib |
Irreducible.isMaximal_span_singleton; quotient-field/maximal-ideal equivalence |
pinned/current RingTheory/PrincipalIdealDomain.lean + ideal quotient API |
In the PID F[X], irreducibles generate maximal ideals, and maximality is equivalent to the quotient being a field; conversely every maximal ideal is principal. |
FC01-C09-U034 |
broad match | mathlib |
ideal Chinese remainder equivalence; polynomial principal ideals; factorization API | pinned/current CRT/UFD API | Distinct irreducible powers are pairwise comaximal and the general ideal CRT gives the product decomposition. The displayed factorization is assembled from these standard interfaces. |
FC01-C09-U035 |
exact match | mathlib |
Polynomial.rootMultiplicity; Polynomial.pow_rootMultiplicity_dvd |
pinned/current roots API | Root multiplicity is directly defined as the largest power of X-C a dividing the polynomial. |
FC01-C09-U036 |
exact match | mathlib |
Polynomial.card_roots; Polynomial.card_roots' |
pinned/current Algebra/Polynomial/Roots.lean |
The multiset of roots, hence roots counted with multiplicity, has cardinality at most the polynomial degree. |
FC01-C09-U037 |
exact match | mathlib |
isCyclic_of_subgroup_isDomain |
pinned/current integral-domain/group API | Every finite subgroup of the multiplicative group of a domain is cyclic, directly covering the theorem for finite subgroups of a field. |
FC01-C09-U038 |
exact match | mathlib |
ZMod.isCyclic_units_prime |
pinned/current RingTheory/ZMod/UnitsCyclic.lean |
The multiplicative group of a finite prime field is directly proved cyclic. |
FC01-C09-U039 |
partial match / wrong interface | mathlib |
ZMod.isCyclic_units_of_prime_pow; ZMod.isCyclic_units_two_pow_iff; ZMod.orderOf_five; CRT/product-unit equivalences |
pinned/current RingTheory/ZMod/UnitsCyclic.lean |
Odd prime powers and the cyclicity obstruction at powers of two are direct, and 5 has the needed order. No searched declaration packages the full source decomposition (ℤ/2^αℤ)ˣ ≅ C₂ × C_{2^{α-2}} for α≥3, so the composite structure theorem is not fully covered. |
FC01-C09-U040 |
exact match | mathlib |
IsCyclic.mulAutMulEquiv; IsCyclic.card_mulAut |
pinned/current cyclic-group automorphism API | Automorphisms of a cyclic group are identified with units modulo its order; the prime-order consequence combines directly with U038. |
FC01-C09-U041 |
exact match | mathlib |
isNoetherianRing_iff_ideal_fg |
pinned/current RingTheory/Noetherian/Defs.lean |
The Noetherian condition is directly equivalent to every ideal being finitely generated. |
FC01-C09-U042 |
exact match | mathlib |
Polynomial.isNoetherianRing |
pinned/current RingTheory/Polynomial/Basic.lean |
Hilbert’s basis theorem is a direct theorem/instance: a polynomial ring over a Noetherian ring is Noetherian. |
FC01-C09-U043 |
exact match | mathlib |
MvPolynomial.isNoetherianRing |
pinned/current RingTheory/Polynomial/Basic.lean |
A multivariate polynomial ring in finitely many variables over a Noetherian ring, hence over a field, is directly Noetherian; therefore all ideals are finitely generated. |
FC01-C09-U044 |
exact match | mathlib |
MonomialOrder.lex |
pinned/current Data/Finsupp/MonomialOrder.lean |
Lexicographic monomial order is provided directly; variable-orientation conventions are controlled by the ordering on the index type rather than hard-coded variable names. |
FC01-C09-U045 |
exact match | mathlib |
MonomialOrder |
pinned/current monomial-order API | The bundled structure supplies a well-founded total order compatible with exponent addition and with zero least, matching the source axioms. |
FC01-C09-U046 |
exact match | mathlib |
MonomialOrder order/addition lemmas |
pinned/current monomial-order API | The source consequences—well-ordering, positivity of nonzero monomials, and translation compatibility—are structural lemmas of the monomial order. |
FC01-C09-U047 |
exact match | mathlib |
MonomialOrder.degree; leadingTerm; leadingCoeff; degree_mul; leadingCoeff_mul |
pinned/current multivariate monomial-order API | Leading multidegree, coefficient, term, and their product laws are direct declarations. |
FC01-C09-U048 |
exact match | project-existing |
Mathlib.Tactic.Groebner.MonomialOrder.leadingTermIdeal |
project LeanCategories/Algebra/Polynomial.lean, adapted from WuProver |
The local owner defines exactly the ideal generated by leading terms of all members of an ideal. |
FC01-C09-U049 |
exact match | mathlib |
MvPolynomial.mem_ideal_span_monomial_image; MvPolynomial.mem_ideal_span_monomial_image_iff_dvd |
pinned/current RingTheory/MvPolynomial/Ideal.lean |
Membership in a monomial ideal is characterized directly by divisibility by one of the generating monomials. |
FC01-C09-U050 |
partial match / wrong interface | project-existing |
leadingTermIdeal; Ideal.span_mono; leading-term image/span API |
project + pinned/current ideal API | The inclusion from generator leading terms into LT(I) is immediate in the local interface. The source additionally records that the inclusion may be strict; no searched declaration supplies its concrete strictness witness. |
FC01-C09-U051 |
broad match | project-existing |
Mathlib.Tactic.Groebner.MonomialOrder.IsGroebnerBasis; IsGroebnerBasis.eq_span |
project LeanCategories/Algebra/Polynomial.lean |
The local predicate exactly equates the leading-term ideal with the span of basis leading terms and requires finiteness/subset membership. Generation of I is recovered by eq_span under unit leading coefficients rather than stored as a defining field; over a field this matches the textbook notion. |
FC01-C09-U052 |
broad match | mathlib |
MonomialOrder.div; MonomialOrder.div_set; MonomialOrder.IsRemainder |
pinned/current RingTheory/MvPolynomial/Groebner.lean |
Multivariate division supplies quotients/remainders, degree control, nondivisibility of remainder terms, and a well-founded termination proof. Its divisor-selection interface is indexed/choice based rather than the source’s deterministic ‘first divisor in an ordered list’ algorithm, so the mathematical output theorem matches but the algorithmic interface does not literally coincide. |
FC01-C09-U053 |
exact match | reference-port |
MonomialOrder.IsGroebnerBasis.existsUnique_isRemainder; remainder-membership criterion |
WuProver/groebner_proj@42910339…, Apache-2.0 |
For a Gröbner basis with unit leading coefficients, every polynomial has a unique IsRemainder; the same development identifies zero remainder with ideal membership, exactly giving canonical normal forms. |
FC01-C09-U054 |
exact match | reference-port |
Gröbner-basis existence; IsGroebnerBasis.eq_span; leading-term criterion |
WuProver/groebner_proj@42910339…, Apache-2.0 |
The reference proves finite Gröbner bases exist and that equality of the leading-term span forces generation of the original ideal under unit leading coefficients. |
FC01-C09-U055 |
exact match | mathlib |
MonomialOrder.sPolynomial; sPolynomial_mem_ideal |
pinned/current RingTheory/MvPolynomial/MonomialOrder.lean |
The S-polynomial is defined by the lcm of leading exponent vectors and cancels the leading terms exactly as in the source. |
FC01-C09-U056 |
broad match | reference-port |
MonomialOrder.sPolynomial_decomposition'; sPolynomial_decomposition_of_degree_sum_smul_le |
WuProver/groebner_proj@42910339…, Apache-2.0 |
The reference proves the stronger finite-set cancellation statement: a same-degree linear combination whose degree drops decomposes into S-polynomials. The source’s successive-pair formula is a specialized presentation of this span statement. |
FC01-C09-U057 |
broad match | reference-port |
MonomialOrder.IsRemainder; division relations |
WuProver/groebner_proj@42910339…, Apache-2.0 |
The mathematical remainder relation is explicit and reusable, but the source’s order-dependent notation f ≡ r mod G is not itself a bundled notation/interface. |
FC01-C09-U058 |
exact match | reference-port |
isGroebnerBasis_iff_isRemainder_sPolynomial_zero |
WuProver/groebner_proj@42910339…, Apache-2.0 |
This is Buchberger’s criterion: a basis is Gröbner exactly when every pairwise S-polynomial has zero remainder. |
FC01-C09-U059 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + WuProver theorem/tactic + FormalConjectures search | The searched theorem library proves Buchberger’s criterion and existence but does not construct the iterative append-nonzero-remainders algorithm and prove its termination. GroebnerTactic performs external computation and certificate checking, which is not this theorem. |
FC01-C09-U060 |
exact match | reference-port |
IsGroebnerBasis.IsMinimal; IsMinimal.degree_image_eq_of_isMinimal; minimalization lemmas |
WuProver/groebner_proj@42910339…, Apache-2.0 |
Minimality is monicity plus pairwise nondivisibility; the reference constructs minimal bases and proves any two minimal bases have the same image of leading multidegrees, giving the source uniqueness of number/leading terms. |
FC01-C09-U061 |
exact match | reference-port |
IsGroebnerBasis.IsReduced; IsReduced.isMinimal |
WuProver/groebner_proj@42910339…, Apache-2.0 |
Reduced Gröbner bases are defined by monic leading terms and the required nondivisibility of all other terms, and reduced implies minimal directly. |
FC01-C09-U062 |
exact match | reference-port |
IsReduced.isReduced_image_isRemainder_of_IsMinimal; IsReduced.exists_of_isGroebnerBasis |
WuProver/groebner_proj@42910339…, Apache-2.0 |
The reference implements the source construction: from a minimal basis replace each generator by a remainder modulo the other generators (after monic normalization) and proves the resulting basis is reduced. |
FC01-C09-U063 |
exact match | reference-port |
IsReduced.uniqueExists; IsReduced.uniqueExists_of_isGroebnerBasis |
WuProver/groebner_proj@42910339…, Apache-2.0 |
For every ideal over a field and fixed monomial order, the reference proves existence and uniqueness of a reduced Gröbner basis; this is slightly stronger than the source’s nonzero-ideal statement. |
FC01-C09-U064 |
broad match | reference-port |
IsReduced.uniqueExists; IsGroebnerBasis.eq_span |
WuProver/groebner_proj@42910339…, Apache-2.0 |
Equality of ideals iff equality of their unique reduced bases is an immediate adapter from uniqueness plus the fact that a Gröbner basis spans its ideal. No separate searched corollary carries the textbook statement verbatim. |
FC01-C09-U065 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + WuProver + FormalConjectures/reference-corpus search | No searched declaration computes the source’s two displayed ideals and proves that both have reduced basis {X+Y, Y⁴−Y³−1}. General Gröbner infrastructure does not constitute this concrete calculation. |
FC01-C09-U066 |
exact match | mathlib |
MvPolynomial.zeroLocus_span |
pinned/current multivariate-polynomial ideal API | The zero locus of the ideal spanned by a set of polynomials is exactly their common zero locus, so changing generating sets leaves the solution set unchanged. |
FC01-C09-U067 |
broad match | mathlib |
Ideal.comap; MvPolynomial.rename; variable-subring embeddings |
pinned/current ideal/map/multivariate API | The source’s elimination-ideal construction is represented as contraction/comap along the inclusion of the retained-variable polynomial subring. Mathlib does not bundle the textbook l-th elimination-ideal terminology. |
FC01-C09-U068 |
broad match | mathlib |
Ideal.comap; polynomial-variable inclusion/rename |
pinned/current ideal map/comap API | I_l = I ∩ F[x_{l+1},…,x_n] is exactly the contraction of I to the retained-variable subring; the interface is categorical rather than an indexed eliminationIdeal l definition. |
FC01-C09-U069 |
unmatched after search | unmatched |
— | project + pinned Mathlib + current-upstream Mathlib + WuProver + FormalConjectures search | No searched declaration proves the Elimination Theorem that the retained-variable members of a lex Gröbner basis form a Gröbner basis of the contracted/elimination ideal. |
FC01-C09-U070 |
exact match | mathlib |
Ideal.span_union; Ideal.span_mul_span' |
pinned/current ideal span/product API | Sums of generated ideals are generated by the union, and products are generated by pairwise products, exactly the source formulas. |
FC01-C09-U071 |
partial match / wrong interface | mathlib |
ideal sup/inf; Ideal.map/comap; polynomial evaluation and variable inclusion |
pinned/current ideal/polynomial API | The algebra needed for I ∩ J = (tI+(1-t)J) ∩ F[x_1,…,x_n] is available through ideal operations and evaluation at t=0,1, but no searched declaration packages this identity. Its advertised Gröbner computation further depends on the unmatched elimination theorem U069, so the composite row is not fully covered. |
C10 — Introduction to Module Theory
Project search found no custom owner that supersedes the standard module interfaces: LeanCategories/Modules/Mathlib.lean, Framed.lean, and Presented.lean wrap or refine Mathlib’s ModuleCat, free-module, projective, and presentation APIs rather than replacing the underlying theory. The pinned declaration audit uses Mathlib v4.32.0 at 81a5d257c8e410db227a6665ed08f64fea08e997; current upstream master was checked on 2026-09-05 at 7974e751bece493b6ff508039423ca9fa2452fa8 for the material hypothesis boundaries.
Two source/interface boundaries control the verdicts. First, Dummit–Foote U001 explicitly permits a base ring without 1, while Mathlib’s ordinary Module starts from a unital Semiring/Ring; the later ordinary module theory is therefore matched only after the source imposes the usual unital convention. Second, §§10.4–10.5 deliberately develop tensor products and flatness for right/left modules over arbitrary noncommutative rings. Pinned and current Mathlib’s ordinary TensorProduct still has a commutative base-ring interface, and RingTheory/Flat/Basic.lean explicitly records noncommutative flatness as future generalization. The commutative specializations map strongly; the genuinely balanced right/left/bimodule statements are recorded as interface gaps rather than silently commutativized.
The module-theoretic Hom/projective/injective side has a different boundary. Mathlib’s projective lifting/direct-summand equivalences, injective extension property, Baer criterion, and enough-projectives/enough-injectives infrastructure are available over general module categories. Its dedicated linear-map theorem LinearAlgebra.LeftExact is phrased over a commutative ring because the Hom sets are themselves treated as modules; Dummit–Foote’s U065/U071 statements only need exactness of the underlying abelian groups over an arbitrary ring, so those rows use the general ModuleCat/abelian-category interface where possible and do not infer a commutativity hypothesis into the source.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C10-U001 |
partial match / wrong interface | mathlib |
Module |
pinned/current Algebra/Module/Defs.lean |
Mathlib’s ordinary module structure gives the source axioms once the ring is unital, but its base is a Semiring/Ring with 1; the source explicitly begins more generally with rings not assumed unital. |
FC01-C10-U002 |
broad match | mathlib |
Module; MulOpposite; Module.compHom |
pinned/current module/opposite-ring API | Left modules are the native interface; right modules are represented as modules over the opposite ring, and commutative rings identify the two actions. This is mathematically equivalent to the source convention but not a separate RightModule class. |
FC01-C10-U003 |
exact match | mathlib |
Module; Submodule |
pinned/current module API | A module over a field is exactly the library’s vector-space interface, and its submodules are the linear subspaces. |
FC01-C10-U004 |
exact match | mathlib |
Submodule |
pinned/current Algebra/Module/Submodule API |
The bundled Submodule stores additive closure and scalar closure and supplies the corresponding membership lemmas directly. |
FC01-C10-U005 |
exact match | mathlib |
Fin n → R; Pi.basisFun; Module.Free |
pinned/current free-module/basis API | The coordinate module R^n is free with its canonical coordinate basis, giving rank n in the source setting. |
FC01-C10-U006 |
exact match | mathlib |
Module.IsTorsionBySet.module; Module.quotientAnnihilator |
pinned/current Algebra/Module/Torsion/Basic.lean |
If a two-sided ideal annihilates the module, IsTorsionBySet.module constructs exactly the induced module structure over the quotient ring. |
FC01-C10-U007 |
exact match | mathlib |
AddCommGroup.toIntModule; AddCommGroup.uniqueIntModule; AddSubgroup.toIntSubmodule |
pinned/current integer-module and submodule-lattice API | Abelian groups carry the unique ℤ-module structure, and additive subgroups correspond order-isomorphically to ℤ-submodules. |
FC01-C10-U008 |
broad match | mathlib |
Module.AEval; Module.AEval'; LinearEquiv.ofAEval; X_smul_of |
pinned/current Algebra/Polynomial/Module/AEval.lean |
The library constructs the F[X]-module from an endomorphism by evaluation and identifies X-action with that endomorphism. An arbitrary compatible polynomial-module structure is recovered via the ofAEval interface rather than a single bundled structure equivalence. |
FC01-C10-U009 |
exact match | mathlib |
Module.AEval.mapSubmodule |
pinned/current polynomial-module invariant-submodule API | There is an explicit order isomorphism between invariant F-submodules for the endomorphism and F[X]-submodules of the associated polynomial module. |
FC01-C10-U010 |
broad match | mathlib |
Submodule; Submodule.mk; closure lemmas |
pinned/current submodule API | The source one-line nonempty-and-x+r y criterion is an immediate adapter to the bundled zero/add/scalar closure fields, but no searched declaration packages this exact compressed criterion. |
FC01-C10-U011 |
exact match | mathlib |
Algebra |
pinned/current algebra API | Algebra R A encodes the unital central structure map from a commutative base and the resulting scalar action. |
FC01-C10-U012 |
exact match | mathlib |
AlgHom; AlgEquiv |
pinned/current algebra morphism API | Algebra homomorphisms and algebra equivalences preserve the base algebra map and the ring structure exactly as in the source. |
FC01-C10-U013 |
exact match | mathlib |
LinearMap; LinearEquiv; LinearMap.ker; LinearMap.range |
pinned/current linear-map API | Module homomorphisms, isomorphisms, kernels, ranges, and Hom sets are directly bundled. |
FC01-C10-U014 |
exact match | mathlib |
LinearMap |
pinned/current linear-map API | Over a field, the module-homomorphism structure is precisely the usual linear-map structure. |
FC01-C10-U015 |
exact match | mathlib |
integer linear-map/additive-hom equivalences | pinned/current integer-module API | ℤ-linearity is forced by additivity, so additive group homomorphisms and ℤ-linear maps are identified by the standard conversion API. |
FC01-C10-U016 |
exact match | mathlib |
LinearMap; LinearMap.comp; Module.End |
pinned/current linear-map/end API | Hom has its additive-group structure, gains the expected module structure over a commutative base, composition is linear, and endomorphisms form a unital ring/algebra. |
FC01-C10-U017 |
exact match | mathlib |
Module.End |
pinned/current module-endomorphism API | Module.End R M is exactly the endomorphism ring Hom_R(M,M). |
FC01-C10-U018 |
exact match | mathlib |
Submodule.Quotient; Submodule.mkQ; Submodule.ker_mkQ |
pinned/current quotient-module API | The quotient module, its scalar action, and the natural projection with kernel the chosen submodule are direct. |
FC01-C10-U019 |
exact match | mathlib |
Submodule.sup |
pinned/current submodule lattice API | The lattice supremum is the sum of two submodules and is characterized as the least submodule containing both. |
FC01-C10-U020 |
exact match | mathlib |
LinearMap.quotKerEquivRange; LinearMap.quotientInfEquivSupQuotient; Submodule.quotientQuotientEquivQuotient; quotient-submodule order isomorphism |
pinned/current LinearAlgebra/Isomorphisms.lean and quotient lattice API |
The first three module isomorphism theorems are named linear equivalences, while the fourth is the order/lattice correspondence for submodules above the quotient kernel. |
FC01-C10-U021 |
exact match | mathlib |
Submodule.span; Submodule.FG; Module.Finite |
pinned/current span/finiteness API | Generated, finitely generated, and cyclic submodules are represented directly by span and finite/singleton generation predicates. |
FC01-C10-U022 |
exact match | mathlib |
Submodule.spanRank; Submodule.spanFinrank; exists_span_set_card_eq_spanRank |
pinned/current Algebra/Module/SpanRankOperations.lean |
The span-rank API is explicitly the minimum cardinality of a generating set and provides a generating set attaining it; the finite version matches the source convention. |
FC01-C10-U023 |
exact match | mathlib |
finite Pi; DirectSum.linearEquivFunOnFintype |
pinned/current direct-sum API | For a finite family, direct product and direct sum are canonically linearly equivalent, matching the source identification. |
FC01-C10-U024 |
broad match | mathlib |
DirectSum.IsInternal; iSupIndep; DirectSum.linearEquivFunOnFintype |
pinned/current internal-direct-sum API | Mathlib packages the source uniqueness/intersection criteria as independence plus spanning for a family of submodules and obtains the internal direct-sum equivalence. The family interface is more general than the source finite indexing. |
FC01-C10-U025 |
exact match | mathlib |
Basis; Module.Free; Module.rank |
pinned/current free-module API | A basis is exactly unique finite linear expansion, Module.Free means existence of such a basis, and rank is the basis-cardinality invariant in the appropriate commutative setting. |
FC01-C10-U026 |
exact match | mathlib |
Finsupp; Finsupp.lift; Finsupp.linearCombination |
pinned/current finitely-supported/free-module API | A →₀ R is the free module on A; Finsupp.lift/linear combination is its universal extension map, and finite A gives the usual coordinate module. |
FC01-C10-U027 |
exact match | mathlib |
Basis.repr; Finsupp; free-module universal property |
pinned/current basis/Finsupp API | A basis identifies any free module with the canonical finitely-supported free module, and the universal property gives uniqueness of the isomorphism fixing generators. |
FC01-C10-U028 |
exact match | mathlib |
integer module on Finsupp; finite coordinate equivalence |
pinned/current free-module/integer-module API | Specializing the free-module construction to ℤ gives the free abelian group on the same basis and ℤ^n for a finite basis. |
FC01-C10-U029 |
exact match | mathlib |
Module.compHom; ModuleCat.restrictScalars |
pinned/current change-of-rings API | Restriction of scalars along a unital ring homomorphism is directly implemented. |
FC01-C10-U030 |
partial match / wrong interface | mathlib |
ModuleCat.extendScalars; AlgebraTensorModule |
pinned/current change-of-rings/tensor API | Mathlib has scalar extension by tensor product for commutative-base algebra towers, but the source constructs S ⊗_R N for a possibly noncommutative subring inclusion. That general balanced interface is absent. |
FC01-C10-U031 |
partial match / wrong interface | mathlib |
scalar-extension unit; TensorProduct.tmul |
pinned/current change-of-rings/tensor API | The canonical n ↦ 1 ⊗ n map exists in the commutative scalar-extension interface; the source states it in the preceding noncommutative setting. |
FC01-C10-U032 |
partial match / wrong interface | mathlib |
extend/restrict-scalars adjunction | pinned/current Algebra/Category/ModuleCat/ChangeOfRings.lean |
Mathlib formalizes the Hom universal property as the scalar-extension/restriction adjunction in its commutative-base setting. The source’s arbitrary subring version is more general. |
FC01-C10-U033 |
partial match / wrong interface | mathlib |
scalar-extension unit and adjunction | pinned/current change-of-rings API | The commutative scalar-extension machinery supplies the canonical unit and its kernel, but no searched declaration packages the source’s largest-quotient-embeddable theorem, and the source is again noncommutative. |
FC01-C10-U034 |
broad match | mathlib |
Representation.ind; Rep.indFunctor; Rep.indResAdjunction |
pinned/current RepresentationTheory/Induced.lean |
The induced representation and induction–restriction adjunction are direct. Mathlib realizes induction as coinvariants of k[G] ⊗_k A, equivalent to the classical group-ring relative tensor construction, rather than exposing kG ⊗_{kH} N as the primary object. |
FC01-C10-U035 |
partial match / wrong interface | mathlib |
TensorProduct |
pinned/current tensor API | The source defines the balanced tensor product of a right and a left module over an arbitrary ring. Ordinary Mathlib TensorProduct still assumes a commutative base and does not expose this general right/left construction. |
FC01-C10-U036 |
partial match / wrong interface | mathlib |
TensorProduct.lift; bilinear-map API |
pinned/current tensor universal-property API | The balanced-map universal property is present for Mathlib’s commutative tensor product, but not at the source’s arbitrary right/left-module generality. |
FC01-C10-U037 |
partial match / wrong interface | mathlib |
TensorProduct.lift; liftAddHom |
pinned/current tensor API | The universal factorization through tensor products is formalized in the commutative interface; current source comments explicitly note that a genuine right-action generalization is not yet implemented. |
FC01-C10-U038 |
partial match / wrong interface | mathlib |
TensorProduct.ext; TensorProduct.lift.unique |
pinned/current tensor API | Uniqueness from values on pure tensors is direct under Mathlib’s hypotheses, but the source theorem is for arbitrary balanced right/left tensor products. |
FC01-C10-U039 |
broad match | mathlib |
opposite-ring modules; SMulCommClass; IsScalarTower |
pinned/current scalar-action API | An (S,R)-bimodule is expressible as commuting left S and right R actions, with the right action encoded over Rᵐᵒᵖ. The encoding is structural rather than a dedicated Bimodule type. |
FC01-C10-U040 |
partial match / wrong interface | mathlib |
AlgebraTensorModule; scalar-tower tensor actions |
pinned/current tensor-tower API | Standard commutative bimodules and induced scalar actions on tensor products are supported, but the source’s arbitrary (S,R)-bimodule tensor action depends on the missing noncommutative balanced tensor product. |
FC01-C10-U041 |
exact match | mathlib |
LinearMap.mk₂; BilinearMap; TensorProduct.lift |
pinned/current bilinear/tensor API | Over the source’s explicitly commutative ring, bilinear maps are directly bundled and are exactly the maps consumed by the tensor universal property. |
FC01-C10-U042 |
exact match | mathlib |
TensorProduct; TensorProduct.mk; TensorProduct.lift |
pinned/current tensor API | The commutative module tensor product and its bilinear universal property match the source exactly. |
FC01-C10-U043 |
partial match / wrong interface | mathlib |
TensorProduct.map |
pinned/current tensor-map API | Tensoring two homomorphisms is direct for the commutative tensor interface, including the source’s commutative special case; the preceding arbitrary right/left and bimodule statement is more general than Mathlib’s interface. |
FC01-C10-U044 |
partial match / wrong interface | mathlib |
TensorProduct.assoc; AlgebraTensorModule.assoc |
pinned/current tensor associator API | Associativity is direct for commutative bases and algebra towers, but the source permits mixed arbitrary rings and bimodules M_R, _R N_T, _T L. |
FC01-C10-U045 |
exact match | mathlib |
TensorProduct.assoc |
pinned/current tensor associator API | Under the source’s explicit commutativity hypothesis, the canonical associativity isomorphism is direct. |
FC01-C10-U046 |
broad match | mathlib |
PiTensorProduct; TensorPower; TensorProduct.assoc |
pinned/current pi-tensor/tensor-power API | Mathlib provides an n-ary tensor product and binary associators. This is stronger than fixing one parenthesization, although the relationship to every iterated binary bracketing is assembled from these interfaces rather than one theorem. |
FC01-C10-U047 |
exact match | mathlib |
PiTensorProduct.tprod; PiTensorProduct.lift; PiTensorProduct.lift.unique |
pinned/current LinearAlgebra/PiTensorProduct/Basic.lean |
The n-multilinear universal property is precisely the defining PiTensorProduct.lift equivalence. |
FC01-C10-U048 |
partial match / wrong interface | mathlib |
tensor/direct-sum distribution; PiTensorProduct.DirectSum |
pinned/current tensor/direct-sum API | Distribution over sums is formalized in the commutative tensor family, but the source first states it for arbitrary right/left modules and bimodule scalar actions. |
FC01-C10-U049 |
partial match / wrong interface | mathlib |
scalar extension of free modules; ModuleCat.extendScalars |
pinned/current change-of-rings/free-module API | Scalar extension preserves the expected free basis in the commutative change-of-rings interface. The source unit belongs to the more general noncommutative scalar-extension construction U030. |
FC01-C10-U050 |
exact match | mathlib |
Module.Basis.tensorProduct; tensor-product basis API |
pinned/current tensor-basis API | For finite free modules over a commutative ring, pure tensors of basis elements form the product basis and give rank st. |
FC01-C10-U051 |
exact match | mathlib |
TensorProduct.comm |
pinned/current tensor symmetry API | The swap m ⊗ n ↦ n ⊗ m is the canonical linear equivalence under exactly the source’s commutative hypotheses. |
FC01-C10-U052 |
exact match | mathlib |
Algebra.TensorProduct |
pinned/current algebra tensor-product API | Tensor products of algebras over a commutative base carry the stated multiplication and algebra structure directly. |
FC01-C10-U053 |
exact match | mathlib |
Function.Exact; linear-map exactness lemmas |
pinned/current exactness API | Exactness is represented as range equals kernel, with standard zero-map consequences for injectivity and surjectivity. |
FC01-C10-U054 |
exact match | mathlib |
Function.Exact; ShortComplex.Exact |
pinned/current exact-sequence API | Exact pairs and exact sequences/short complexes are directly formalized. |
FC01-C10-U055 |
exact match | mathlib |
zero-map exactness/injective/surjective equivalences | pinned/current exactness API | Exactness of 0 → A → B is equivalent to injectivity and exactness of B → C → 0 to surjectivity. |
FC01-C10-U056 |
exact match | mathlib |
ShortComplex.ShortExact; Function.Exact |
pinned/current short-exact API | A short exact sequence packages the injective left map, surjective right map, and middle exactness exactly as in the source. |
FC01-C10-U057 |
exact match | mathlib |
ShortComplex.ShortExact |
pinned/current homological short-complex API | The source’s short-exact-sequence object is a standard library notion. |
FC01-C10-U058 |
broad match | mathlib |
ShortComplex.Hom; short-complex isomorphisms |
pinned/current homological short-complex API | Morphisms and isomorphisms of short complexes are directly bundled. The source’s additional named equivalence relation for fixed end terms is the specialization requiring identity endpoint maps rather than a separate primitive. |
FC01-C10-U059 |
exact match | mathlib |
Algebra/FiveLemma; module four/five-lemma injective/surjective/bijective variants |
pinned/current Algebra/FiveLemma.lean |
The library proves the module diagram lemmas giving injectivity, surjectivity, and hence bijectivity of the middle vertical map from the endpoint hypotheses; these specialize exactly to the Short Five Lemma. |
FC01-C10-U060 |
exact match | mathlib |
Function.Exact.split_tfae; GroupExtension.Splitting; Splitting.semidirectProductMulEquiv |
pinned/current exactness and group-extension API | Module splitting is equivalent to a direct-sum complement, while a split group extension is directly identified with the associated semidirect product. Both halves of the source definition are represented. |
FC01-C10-U061 |
exact match | mathlib |
Function.Exact.split_tfae; GroupExtension.Splitting |
pinned/current split-exact/group-extension API | For modules, a section of the surjection is one of the equivalent splitting conditions; for groups, Splitting is literally a homomorphic section of the extension projection. |
FC01-C10-U062 |
broad match | mathlib |
Function.RightInverse; GroupExtension.Section; GroupExtension.Splitting |
pinned/current function/group-extension API | The set-theoretic notion of section is RightInverse, while the homomorphic group version is a named Splitting; the source terminology is represented across these generic interfaces rather than one module-specific structure. |
FC01-C10-U063 |
broad match | mathlib |
Function.Exact.split_tfae; direct-sum decomposition; group split-extension/normal-complement API |
pinned/current exactness/group-extension API | The module retraction criterion is one of the split-exact equivalences. The group retraction/direct-product version is reconstructed from the kernel/retraction decomposition; the split-extension API itself is oriented around sections and semidirect products. |
FC01-C10-U064 |
exact match | mathlib |
LinearMap.comp; composition injectivity lemmas |
pinned/current linear-map API | Postcomposition induces the Hom map, and injectivity of the original map implies injectivity after postcomposition exactly as stated. |
FC01-C10-U065 |
broad match | mathlib |
ModuleCat.abelian; preadditiveCoyonedaObj; preservesLimits_preadditiveCoyonedaObj; LinearMap.exact_lcomp_of_exact_of_surjective in the commutative specialization |
pinned/current module-category and left-exactness API | The Hom functor is left exact in the abelian category of modules over an arbitrary ring, giving the source abelian-group statement. The dedicated linear-map theorem is a commutative-ring specialization because it additionally equips Hom with scalar structure. |
FC01-C10-U066 |
exact match | mathlib |
linear-map product/sum equivalences | pinned/current linear-map/direct-sum API | Hom out of or into a finite direct sum decomposes as the corresponding finite product/direct sum of Hom groups. |
FC01-C10-U067 |
exact match | mathlib |
Module.Projective; projective_lifting_property; Projective.iff_split |
pinned/current Algebra/Module/Projective.lean |
The lifting property and direct-summand-of-free characterization are proved equivalent and give the source four projectivity conditions. |
FC01-C10-U068 |
exact match | mathlib |
Module.Projective |
pinned/current projective-module API | The library’s projective-module predicate is precisely the equivalent lifting/splitting notion used in the source. |
FC01-C10-U069 |
exact match | mathlib |
Projective.of_free; Module.Finite.exists_comp_eq_id_of_projective; ModuleCat.enoughProjectives |
pinned/current projective/finiteness/category API | Free modules are projective, finite projectives split off finite free modules, every module admits a projective epimorphism, and the categorical Hom functor records the functorial statement. |
FC01-C10-U070 |
broad match | mathlib |
preadditiveCoyonedaObj; preservesLimits_preadditiveCoyonedaObj; projective_iff_preservesEpimorphisms_preadditiveCoyonedaObj |
pinned/current preadditive Yoneda/projective API | Left exactness is the general Hom property, while exactness is equivalent to surjective lifting, i.e. projectivity. The theorem is assembled across the general category and explicit projective interfaces rather than one arbitrary-ring linear-map declaration. |
FC01-C10-U071 |
broad match | mathlib |
ModuleCat.abelian; preadditiveYonedaObj; preservesLimits_preadditiveYonedaObj; LinearMap.exact_lcomp_of_exact_of_surjective |
pinned/current module-category/preadditive-Yoneda API | Contravariant Hom is left exact for arbitrary module categories; the dedicated linear-map theorem directly supplies the commutative specialization and the lifting interpretation. |
FC01-C10-U072 |
exact match | mathlib |
Module.Injective; Module.Injective.extension_property; injective-object splitting |
pinned/current Algebra/Module/Injective.lean |
The extension property and splitting of every embedding of the module are the standard equivalent injective conditions represented by the library. |
FC01-C10-U073 |
exact match | mathlib |
Module.Injective; contravariant Hom functor |
pinned/current injective/module-category API | Injectivity is directly defined through the extension property, and precomposition gives the contravariant Hom functor. |
FC01-C10-U074 |
broad match | mathlib |
preadditiveYonedaObj; preservesLimits_preadditiveYonedaObj; injective_iff_preservesEpimorphisms_preadditiveYonedaObj |
pinned/current preadditive Yoneda/injective API | Contravariant Hom is left exact generally, and exactness is equivalent to extension across monomorphisms, i.e. injectivity. The arbitrary-ring statement is obtained through the categorical interface. |
FC01-C10-U075 |
partial match / wrong interface | mathlib |
Module.Baer.iff_injective; Module.Baer.of_divisible |
pinned/current injective/Baer API | Baer’s criterion is exact and divisibility supplies the ℤ injective direction. Targeted pinned/current search did not find the full PID characterization injective ↔︎ rQ=Q, its converse divisibility theorem in this generality, or closure of injectives under quotients over a PID, so the composite source proposition is only partially covered. |
FC01-C10-U076 |
exact match | mathlib |
AddCommGrpCat.enoughInjectives; ModuleCat over ℤ enough injectives |
pinned/current Algebra/Category/Grp/EnoughInjectives.lean and ModuleCat/EnoughInjectives.lean |
Every abelian group/ℤ-module admits a monomorphism into an injective object directly. |
FC01-C10-U077 |
exact match | mathlib |
ModuleCat.enoughInjectives |
pinned/current Algebra/Category/ModuleCat/EnoughInjectives.lean |
The category of modules over an arbitrary unital ring has enough injectives, exactly giving an embedding of every module into an injective module. |
FC01-C10-U078 |
partial match / wrong interface | mathlib |
tensor right-exactness API | pinned/current LinearAlgebra/TensorProduct/RightExactness.lean |
Mathlib proves right exactness for its commutative tensor product, but the source theorem is for an arbitrary right R-module tensored with arbitrary left R-modules, including an (S,R)-bimodule target action. |
FC01-C10-U079 |
partial match / wrong interface | mathlib |
Module.Flat; Flat.lTensor_preserves_injective_linearMap; Flat.rTensor_preserves_injective_linearMap |
pinned/current RingTheory/Flat/Basic.lean |
The equivalence between flatness and preservation of injections/short exact sequences is present for commutative base rings; the source defines flat right modules over arbitrary rings. |
FC01-C10-U080 |
partial match / wrong interface | mathlib |
Module.Flat; tensor right-exactness |
pinned/current flat/tensor API | The library has the same flatness notion and right-exact tensor behavior only in its commutative module interface; the source’s right-module definition is more general. |
FC01-C10-U081 |
partial match / wrong interface | mathlib |
Flat.lTensor_exact; Flat.rTensor_exact; Flat.iff_lTensor_exact; Flat.iff_rTensor_exact |
pinned/current flat API | Exactness iff flatness is proved directly for the commutative tensor functors, but not for the source’s arbitrary right-module/bimodule functor. |
FC01-C10-U082 |
partial match / wrong interface | mathlib |
Module.Flat.of_free; Module.Flat.of_projective |
pinned/current flat API | Free and projective modules are directly proved flat under Mathlib’s commutative-base flatness interface. The source corollary occurs in the general noncommutative right-module setting. |
FC01-C10-U083 |
partial match / wrong interface | mathlib |
TensorProduct.curry; TensorProduct.uncurry; AlgebraTensorModule.curry; ModuleCat monoidal closed structure |
pinned/current tensor-Hom API | Tensor–Hom adjunction/currying is directly formalized for commutative bases and algebra towers. The source theorem allows arbitrary rings with a right module and an (R,S)-bimodule, which the ordinary tensor interface does not express. |
FC01-C10-U084 |
exact match | mathlib |
Module.Projective.tensorProduct |
pinned/current Algebra/Module/Projective.lean |
Under the source’s explicit commutativity hypothesis, the tensor product of projective modules has a direct projective instance. |
C11 — Vector Spaces
Project search found no C11-specific replacement for the standard linear-algebra owners. LeanCategories/Algebra/FreeAlgebras.lean wraps Mathlib’s symmetric/exterior algebra constructions functorially, but the declaration-level mathematics in this chapter is primarily Mathlib. The pinned audit uses Mathlib v4.32.0 at 81a5d257c8e410db227a6665ed08f64fea08e997; current upstream master was checked on 2026-09-05 at 7974e751bece493b6ff508039423ca9fa2452fa8 where a missing bridge could plausibly have appeared.
The first four sections map unusually closely: basis extension, cardinal/finite dimension, matrix representation and Kronecker products, algebraic duality including the infinite-dimensional Erdős–Kaplansky inequality, and determinant/cofactor/adjugate theory all have direct library owners. The main interface gaps occur in §11.5. Mathlib separately formalizes tensor algebras, symmetric algebras, symmetric tensor powers, exterior algebras, exterior powers, permutation reindexing, and alternatization. It does not currently expose a generic quotient-grading theorem matching U054, nor the textbook identification, when k! is invertible, of symmetric/exterior quotient powers with the fixed/sign submodules inside the tensor power. Those missing bridges are not inferred from the adjacent APIs.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C11-U001 |
exact match | mathlib |
LinearIndependent; Module.Basis; Basis.span_eq |
pinned/current basis API | Linear independence and a basis as an indexed linearly independent spanning family are direct; reindexing records the source’s ordering data. |
FC01-C11-U002 |
broad match | mathlib |
Basis.extendLe; finite spanning/basis API |
pinned/current Basis/VectorSpace.lean |
A finite spanning family contains a basis, so minimality under deletion forces independence. The source’s minimal-spanning-set formulation is a short adapter rather than a named theorem. |
FC01-C11-U003 |
exact match | mathlib |
Module.Basis.extendLe |
pinned/current Basis/VectorSpace.lean |
extendLe constructs a basis contained in any spanning set, directly giving a basis contained in a finite spanning set. |
FC01-C11-U004 |
broad match | mathlib |
Module.Basis.extend; sumExtend; basis reindexing |
pinned/current basis-extension API | Mathlib directly extends an independent family to a basis. The source’s ordered successive replacement theorem is recoverable from extension plus finite-cardinality arguments, but no searched declaration packages that replacement sequence verbatim. |
FC01-C11-U005 |
exact match | mathlib |
Module.finrank; linear-independent/span cardinal bounds |
pinned/current finite-dimension API | Independent finite families have cardinal at most finrank, spanning families at least finrank, so all finite bases have the same cardinality. |
FC01-C11-U006 |
exact match | mathlib |
FiniteDimensional; Module.finrank; Module.rank |
pinned/current dimension API | Finite dimensionality and dimension are direct library notions; rank supplies the cardinal-valued generalization. |
FC01-C11-U007 |
exact match | mathlib |
Module.Basis.extend; Module.Basis.sumExtend |
pinned/current Basis/VectorSpace.lean |
Every linearly independent family extends to a basis, including the finite-dimensional specialization. |
FC01-C11-U008 |
exact match | mathlib |
Basis.equivFun; LinearEquiv.ofEq; basis reindexing |
pinned/current basis equivalence API | A finite basis identifies an n-dimensional space with Fin n → F; equal-dimensional spaces are linearly equivalent after reindexing bases. |
FC01-C11-U009 |
exact match | mathlib |
Submodule.rank_quotient_add_rank |
pinned/current dimension/quotient API | The cardinal dimension formula for a subspace and quotient is formalized at arbitrary rank, not only finite dimension. |
FC01-C11-U010 |
exact match | mathlib |
LinearMap.rank_range_add_rank_ker; finite finrank specialization |
pinned/current rank-nullity API | Rank-nullity is a direct theorem, including the cardinal-valued arbitrary-dimensional form. |
FC01-C11-U011 |
broad match | mathlib |
finite-dimensional injective/surjective equivalences; LinearEquiv.ofBijective; Basis.map |
pinned/current finite-dimensional linear-map API | Equal finite dimensions make injectivity, surjectivity, and bijectivity equivalent; an isomorphism maps a basis to a basis. The source bundles these into one proposition rather than one library theorem. |
FC01-C11-U012 |
broad match | mathlib |
LinearMap.ker; LinearMap.range; Module.finrank |
pinned/current linear-map API | Nullity and rank are the dimensions of kernel and range. The source word nonsingular is terminology rather than a distinct Mathlib predicate. |
FC01-C11-U013 |
exact match | mathlib |
LinearMap.toMatrix; LinearMap.toMatrix_apply |
pinned/current matrix representation API | The representing matrix is defined from the target-basis coordinates of the images of source-basis vectors exactly as in the source. |
FC01-C11-U014 |
exact match | mathlib |
LinearMap.toMatrix |
pinned/current matrix representation API | Representation of a linear map relative to two chosen bases is a direct construction. |
FC01-C11-U015 |
exact match | mathlib |
LinearMap.toMatrix; LinearMap.toMatrixEquiv |
pinned/current matrix/linear-map API | The Hom space is linearly equivalent to the matrix space after bases are fixed. |
FC01-C11-U016 |
exact match | mathlib |
Module.finrank_linearMap |
pinned/current FreeModule/Finite/Matrix.lean |
The dimension of V →ₗ[F] W is the product of the source and target dimensions. |
FC01-C11-U017 |
broad match | mathlib |
Matrix.toLin; LinearMap.toMatrix; Matrix.rank; kernel/injectivity API |
pinned/current matrix-rank API | Nonsingularity of a representing matrix is equivalent to injectivity of the corresponding square linear map. The source row also introduces composition notation, so no single declaration carries the whole row. |
FC01-C11-U018 |
exact match | mathlib |
LinearMap.toMatrix_comp |
pinned/current matrix representation API | Matrix multiplication represents composition directly. |
FC01-C11-U019 |
exact match | mathlib |
matrix semiring/ring instances; Matrix.isUnit_iff_isUnit_det |
pinned/current matrix algebra API | Associativity/distributivity are structural instances and a square matrix over a field is invertible exactly when its determinant is a unit/nonzero. |
FC01-C11-U020 |
exact match | mathlib |
LinearMap.toMatrixAlgEquiv; Matrix.GeneralLinearGroup; Matrix.card_GL_field |
pinned/current endomorphism/GL API | Endomorphisms are algebra-equivalent to square matrices, units give the general linear group, and the finite-field order formula is a named theorem. |
FC01-C11-U021 |
exact match | mathlib |
Matrix.rank; rank_eq_finrank_span_row; column-span rank API |
pinned/current Matrix/Rank.lean |
Matrix rank is identified with the dimension of the row and column spans and with the range dimension of the corresponding linear map. |
FC01-C11-U022 |
broad match | mathlib |
Matrix.IsSimilar; Basis.toMatrix; change-of-basis formulas |
pinned/current matrix/basis API | Similarity and change-of-basis matrices are direct. The source packages the coordinate-vector and conjugacy formulas together; Mathlib exposes them through the basis/toMatrix interfaces. |
FC01-C11-U023 |
exact match | mathlib |
change-of-basis toMatrix composition formulas |
pinned/current matrix/basis API | Changing the basis of an endomorphism conjugates its matrix by the transition matrix. |
FC01-C11-U024 |
broad match | mathlib |
scalar extension; Module.Basis.tensorProduct |
pinned/current tensor-basis/change-of-scalars API | Base extension of a finite-dimensional space has basis 1 ⊗ v_i; this is obtained by tensoring the one-element basis of the scalar field with the given basis. No separate declaration is named after this source corollary. |
FC01-C11-U025 |
exact match | mathlib |
Module.Basis.tensorProduct; tensor finrank formula |
pinned/current tensor-basis/dimension API | Pure tensors of basis elements form the tensor-product basis, giving dimension mn. |
FC01-C11-U026 |
exact match | mathlib |
Matrix.kronecker |
pinned/current matrix Kronecker-product API | The block/product entry formula is the direct definition of the Kronecker product. |
FC01-C11-U027 |
exact match | mathlib |
TensorProduct.toMatrix_map; Matrix.kronecker |
pinned/current tensor-product matrix API | The matrix of a tensor product of linear maps is the Kronecker product of the two representing matrices. |
FC01-C11-U028 |
exact match | mathlib |
Module.Dual; Module.Basis.dualBasis |
pinned/current dual-space API | The algebraic dual and coordinate dual basis are direct constructions. |
FC01-C11-U029 |
exact match | mathlib |
Module.Basis.dualBasis; Module.Dual.finrank_eq |
pinned/current dual finite-dimension API | The dual basis is a basis and finite-dimensional duals have the same dimension as the original space. |
FC01-C11-U030 |
exact match | mathlib |
Module.rank_lt_rank_dual; rank_dual_eq_card_dual_of_aleph0_le_rank |
pinned/current Dimension/ErdosKaplansky.lean |
The infinite-dimensional dual has strictly larger dimension; Mathlib proves the stronger Erdős–Kaplansky cardinal statement. |
FC01-C11-U031 |
exact match | mathlib |
Module.Dual; Module.Dual.eval; finite dual-rank theorem; Erdős–Kaplansky |
pinned/current dual API | The double dual is direct, has equal finite dimension, and the infinite-dimensional cardinal inequalities follow by applying the dual-rank theorem twice. |
FC01-C11-U032 |
exact match | mathlib |
Module.Dual.eval; Module.Dual.evalEquiv |
pinned/current dual evaluation API | Evaluation gives the natural injection into the double dual and becomes a linear equivalence in finite dimension. |
FC01-C11-U033 |
exact match | mathlib |
LinearMap.dualMap |
pinned/current dual-map API | The dual map is precomposition with the original linear map exactly as in the source. |
FC01-C11-U034 |
exact match | mathlib |
dual-basis matrix/transpose lemmas; Matrix.transpose |
pinned/current dual/matrix API | Relative to dual bases the matrix of the dual map is the transpose of the original matrix. |
FC01-C11-U035 |
exact match | mathlib |
Matrix.rank_transpose; row/column rank theorems |
pinned/current matrix-rank API | Transpose preserves rank, yielding equality of row and column rank directly. |
FC01-C11-U036 |
broad match | mathlib |
MultilinearMap; AlternatingMap; domain-permutation congruence |
pinned/current multilinear/alternating API | Multilinear and alternating maps are bundled directly. Symmetry is expressed through equality under domain permutations rather than a single general SymmetricMultilinearMap structure. |
FC01-C11-U037 |
exact match | mathlib |
AlternatingMap.map_perm; repeated-variable and update lemmas |
pinned/current LinearAlgebra/Alternating/Basic.lean |
Permutation by its sign, vanishing on repeated arguments, and elementary-column/row invariance are direct alternating-map lemmas. |
FC01-C11-U038 |
broad match | mathlib |
alternating multilinearity; Matrix.det_apply; determinant alternating map |
pinned/current alternating/determinant API | Expanding a change of vectors by multilinearity and alternation yields the determinant factor. Mathlib contains the determinant as an alternatization and the Leibniz formula, but no searched theorem packages this exact general change-of-family identity. |
FC01-C11-U039 |
broad match | mathlib |
Matrix.det; determinant alternating-map construction |
pinned/current Matrix/Determinant/Basic.lean |
The determinant is constructed canonically and proved alternating/multilinear, although Mathlib’s primary definition is not literally the source’s uniqueness-definition presentation. |
FC01-C11-U040 |
broad match | mathlib |
Matrix.det |
pinned/current determinant API | Determinant of a list/family of column vectors is represented by forming the corresponding matrix and applying Matrix.det; the textbook notation is not a separate object. |
FC01-C11-U041 |
exact match | mathlib |
determinant uniqueness; Matrix.det_apply |
pinned/current determinant API | The normalized alternating multilinear determinant is unique and the Leibniz permutation formula is explicit. |
FC01-C11-U042 |
exact match | mathlib |
row/column alternating properties; Matrix.det_transpose |
pinned/current determinant API | Determinant is multilinear/alternating in rows as well as columns and is invariant under transpose. |
FC01-C11-U043 |
exact match | mathlib |
Matrix.cramer; Cramer-rule lemmas |
pinned/current matrix adjugate/Cramer API | Cramer’s rule is formalized directly. |
FC01-C11-U044 |
exact match | mathlib |
det_eq_zero_of_not_linearIndependent_rows; linearIndependent_rows_of_det_ne_zero; column analogues |
pinned/current determinant API | Over a field/domain, determinant is nonzero exactly when rows and columns are linearly independent. |
FC01-C11-U045 |
exact match | mathlib |
Matrix.det_mul |
pinned/current determinant API | Multiplicativity of determinant is direct. |
FC01-C11-U046 |
exact match | mathlib |
Matrix.submatrix; Matrix.cofactor; Matrix.adjugate |
pinned/current minor/cofactor API | Minors, cofactors, and the adjugate are direct matrix constructions. |
FC01-C11-U047 |
exact match | mathlib |
Matrix.det_succ_row; det_succ_column; det_eq_sum_mul_adjugate_row |
pinned/current determinant/adjugate API | Laplace cofactor expansion along a chosen row or column is directly formalized. |
FC01-C11-U048 |
exact match | mathlib |
Matrix.mul_adjugate; adjugate_mul; isUnit_iff_isUnit_det; nonsing_inv_apply |
pinned/current adjugate/nonsingular-inverse API | The adjugate identities, invertibility criterion, and inverse formula are direct theorems. |
FC01-C11-U049 |
exact match | mathlib |
TensorPower; TensorAlgebra.equivDirectSum; tensor-algebra multiplication |
pinned/current TensorAlgebra/ToTensorPower.lean |
Tensor algebra is algebra-equivalent to the direct sum of tensor powers, and multiplication concatenates degrees as in the source. |
FC01-C11-U050 |
exact match | mathlib |
TensorAlgebra.ι; TensorAlgebra.lift; TensorAlgebra.gradedAlgebra; equivDirectSum |
pinned/current tensor-algebra API | Inclusion of the module, grading, and the free associative algebra universal property are direct. |
FC01-C11-U051 |
exact match | mathlib |
TensorAlgebra |
pinned/current tensor-algebra API | The named tensor algebra object is a standard Mathlib construction. |
FC01-C11-U052 |
exact match | mathlib |
PiTensorProduct.basis; tensor-power basis; tensor finrank |
pinned/current tensor-power/basis API | Pure tensors of basis elements form the tensor-power basis, giving dimension n^k for a finite n-basis. |
FC01-C11-U053 |
exact match | mathlib |
GradedRing; SetLike.GradedMonoid; homogeneous elements; Ideal.IsHomogeneous |
pinned/current graded-ring API | Graded rings, homogeneous pieces/elements, homogeneous ideals, and degree-respecting maps are native notions. |
FC01-C11-U054 |
unmatched after search | unmatched |
— | project + pinned Mathlib + current-upstream Mathlib search | No searched declaration gives the general theorem that a quotient by a homogeneous ideal inherits the stated grading with degree piece S_k / I_k. Specific quotient constructions later in the library build their gradings independently. |
FC01-C11-U055 |
partial match / wrong interface | mathlib |
SymmetricAlgebra; SymmetricPower; SymmetricAlgebra.ι; quotient relations |
pinned/current symmetric algebra/power API | Mathlib has the tensor-algebra commutative quotient and separately the permutation quotient defining each symmetric tensor power. It does not identify SymmetricPower as the homogeneous component of a graded SymmetricAlgebra, so the source’s combined graded construction is only partially represented. |
FC01-C11-U056 |
exact match | mathlib |
SymmetricPower; SymmetricPower.lift; SymmetricAlgebra.lift |
pinned/current symmetric power/algebra API | The quotient by permutation relations and its symmetric-multilinear universal property are direct, as is the symmetric algebra’s free commutative-algebra universal property. |
FC01-C11-U057 |
partial match / wrong interface | mathlib |
SymmetricAlgebra.equivMvPolynomial; Module.Basis.symmetricAlgebra; SymmetricPower |
pinned/current symmetric-algebra basis API | For a based finite free module the full symmetric algebra is explicitly equivalent to a multivariate polynomial ring and has the monomial basis. The missing homogeneous-component bridge to SymmetricPower prevents the complete source statement, including its degree-k identification, from being one verified interface. |
FC01-C11-U058 |
exact match | mathlib |
ExteriorAlgebra; ExteriorAlgebra.gradedAlgebra; ExteriorAlgebra.exteriorPower |
pinned/current exterior-algebra grading API | The exterior algebra is the alternating quotient and is graded with its degree-k submodule explicitly exposed as the exterior power. |
FC01-C11-U059 |
exact match | mathlib |
ExteriorAlgebra.ι; ExteriorAlgebra.ιMulti; wedge multiplication |
pinned/current exterior-algebra API | Wedge products are the algebra products of the degree-one generators; repeated factors vanish through the alternating relation. |
FC01-C11-U060 |
exact match | mathlib |
exteriorPower.presentation; exteriorPower.alternatingMapLinearEquiv; ιMulti |
pinned/current exterior-power API | The tensor quotient presentation and universal equivalence between alternating maps and maps out of the exterior power are direct. |
FC01-C11-U061 |
exact match | mathlib |
Module.Basis.exteriorPower; exteriorPower.finrank_eq |
pinned/current ExteriorPower/Basis.lean |
Increasing wedges of basis vectors form a basis and the dimension is the binomial coefficient. |
FC01-C11-U062 |
broad match | mathlib |
exteriorPower.map; top exterior basis; determinant pairing/matrix API |
pinned/current exterior-power/determinant API | The induced top exterior-power map and one-dimensional top wedge are formalized, and its scalar is computed from the determinant by the basis/pairing API. No searched declaration states the source formula ⋀^n φ = det(φ) as a single theorem. |
FC01-C11-U063 |
broad match | mathlib |
PiTensorProduct.reindex; submodule intersections/eigenspaces |
pinned/current tensor-power/permutation API | Permutations act on tensor powers by canonical reindexing, so fixed and sign-eigenspace submodules define symmetric and alternating tensors. Mathlib does not bundle these two submodules under the textbook names. |
FC01-C11-U064 |
broad match | mathlib |
SymmetricPower.domDomCongr_tprod; AlternatingMap.map_perm; exterior-power universal property |
pinned/current symmetric/exterior quotient API | The symmetric quotient kills permutation differences and the exterior quotient transforms pure wedges by permutation sign. The source phrases these as actions on quotient-power elements rather than the library’s quotient/universal-property equations. |
FC01-C11-U065 |
broad match | mathlib |
PiTensorProduct.reindex; finite sums; MultilinearMap.alternatization |
pinned/current tensor/alternating API | The signed permutation sum is exactly Mathlib’s alternatization at multilinear-map level; ordinary symmetrization of tensor elements is readily formed from permutation reindexing but is not a searched named tensor-power map. |
FC01-C11-U066 |
unmatched after search | unmatched |
— | project + pinned Mathlib + current-upstream Mathlib search | No searched declaration proves that, when k! is a unit, normalized symmetrization identifies the symmetric quotient power with the permutation-fixed tensor submodule and normalized alternatization identifies the exterior quotient power with the sign submodule. |
FC01-C11-U067 |
unmatched after search | unmatched |
— | project + pinned Mathlib + current-upstream Mathlib search | The equivalent realization of exterior power as the alternating tensor submodule, together with multiplication as tensor product followed by normalized alternating projection, depends on the missing U066 comparison and is not separately formalized in the searched interfaces. |
C12 — Modules over Principal Ideal Domains
Project search found two C12-specific owners. LeanCategories/Algebra/CanonicalForms.lean defines the Dummit–Foote companion-matrix convention, ordered divisibility-chain InvariantFactorData, and the associated block-diagonal rational-canonical matrix. LeanCategories/Algebra/JordanCanonical.lean defines Jordan blocks, block data, matrix similarity, and Jordan-form predicates; its module documentation explicitly records that it proves no existence, uniqueness, or classification theorem. The pinned audit uses Mathlib v4.32.0 at 81a5d257c8e410db227a6665ed08f64fea08e997; the recorded current-upstream audit and a fresh 2026-09-05 GitHub search were also checked for canonical-form or invariant-factor bridges.
The PID infrastructure is stronger than a name search suggests. Mathlib directly proves Noetherianity of PIDs, finite torsion-free PID modules are free, Smith diagonal bases for submodules of finite free modules, elementary prime-power decomposition of finitely generated PID modules, and primary decomposition for torsion modules. The decisive mismatch is normalization and uniqueness: Module.Basis.SmithNormalForm stores diagonal coefficients but no divisibility chain, and Module.equiv_free_prod_directSum is an elementary-divisor existence theorem rather than the source’s unique invariant-factor classification. The same boundary propagates into rational and Jordan canonical forms: eigenvalue, determinant, characteristic/minimal-polynomial, matrix-operation, and semisimplicity APIs are substantial, but no searched declaration supplies the rational- or Jordan-canonical existence/uniqueness theorems. Mathlib’s LinearAlgebra/Semisimple.lean still lists the diagonalizability bridge as a TODO, so squarefree-minimal-polynomial results are not promoted to the source diagonalization criterion.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C12-U001 |
exact match | mathlib |
IsNoetherian; IsNoetherianRing; opposite-ring module interface |
pinned/current RingTheory/Noetherian/Defs.lean |
Mathlib’s own documentation identifies IsNoetherian R M as the left-Noetherian notion for noncommutative rings; right-Noetherianity is the corresponding left-module notion over the opposite ring. |
FC01-C12-U002 |
exact match | mathlib |
isNoetherian_def; set_has_maximal_iff_noetherian; monotone_stabilizes_iff_noetherian |
pinned/current Noetherian API | Finite generation of every submodule, maximal elements in nonempty families of submodules, and stabilization of ascending chains are directly equivalent formulations. |
FC01-C12-U003 |
exact match | mathlib |
PrincipalIdealRing.isNoetherianRing; set_has_maximal_iff_noetherian |
pinned/current PID/Noetherian API | A PID is directly given a Noetherian-ring instance, and the maximal-ideal-family clause follows from the exact Noetherian equivalence. |
FC01-C12-U004 |
broad match | mathlib |
Module.exists_nontrivial_relation_of_finrank_lt_card; Module.finrank_eq_card_basis |
pinned/current finite-rank API | A finite family larger than the finite rank admits a nontrivial linear relation. The source fixes an ordered n+1-tuple, while the library theorem is phrased through finite families/finsets. |
FC01-C12-U005 |
exact match | mathlib |
Module.torsion; Module.IsTorsionFree; isTorsionFree_iff_torsion_eq_bot |
pinned/current Algebra/Module/Torsion/Basic.lean |
The torsion submodule and torsion-free condition are direct library notions; submodules of the torsion submodule are torsion by closure. |
FC01-C12-U006 |
exact match | mathlib |
Module.annihilator; annihilator membership API |
pinned/current torsion/annihilator API | The annihilator is exactly the ideal of scalars killing every element of the module/submodule. |
FC01-C12-U007 |
broad match | mathlib |
Module.rank; le_rank_iff; submodule-rank monotonicity; vector-space basis API |
pinned/current dimension API | Cardinal rank is characterized by linearly independent families and specializes to vector-space dimension; submodule rank is bounded by ambient free rank. The source’s warning and exercise examples of nonfree torsion-free modules over general domains are explanatory rather than a single library declaration. |
FC01-C12-U008 |
partial match / wrong interface | mathlib |
Submodule.smithNormalForm; Module.Basis.SmithNormalForm; Submodule.smithNormalFormBotBasis_def |
pinned/current LinearAlgebra/FreeModule/PID.lean |
Mathlib gives free bases of the submodule and ambient module with diagonal inclusion coefficients and the rank bound. The Smith-normal-form structure does not impose the source normalization a₁ ∣ a₂ ∣ ... ∣ a_m, so the composite theorem is not exact. |
FC01-C12-U009 |
partial match / wrong interface | mathlib |
Module.equiv_free_prod_directSum; Module.free_iff_isTorsionFree; Module.torsion; Module.annihilator |
pinned/current PID structure-theorem API | Free-plus-cyclic-prime-power decomposition and the finite torsion-free iff free clause are direct. The source’s divisibility-chain invariant factors, identification of the largest invariant factor, and consequent annihilator formula are not packaged by this elementary-divisor interface. |
FC01-C12-U010 |
partial match / wrong interface | mathlib |
Module.rank; PID decomposition data |
pinned/current dimension/PID API | The free rank has a direct rank invariant, but no searched canonical object stores the source’s invariant-factor list up to associates. |
FC01-C12-U011 |
partial match / wrong interface | mathlib |
Module.equiv_free_prod_directSum; Module.equiv_directSum_of_isTorsion |
pinned/current Algebra/Module/PID.lean |
Existence of a free summand plus cyclic quotients by prime powers is exactly formalized. The same source row also records uniqueness of those elementary-divisor ideals, which is not exposed by the searched API. |
FC01-C12-U012 |
partial match / wrong interface | mathlib |
Ideal.primaryComponent; iSup_primaryComponent_eq_top; iSupIndep_primaryComponent |
pinned/current Algebra/Module/Torsion/PrimaryComponent.lean |
Grouping a torsion module by prime-primary components is directly formalized, in fact over Dedekind domains. The named elementary-divisor list and its uniqueness remain absent. |
FC01-C12-U013 |
broad match | mathlib |
Ideal.primaryComponent; primaryComponent_mem; iSup_primaryComponent_eq_top; iSupIndep_primaryComponent; Module.equiv_directSum_of_isTorsion |
pinned/current primary/PID API | Mathlib gives the primary submodules, their independent supremum decomposition, and finite prime-power cyclic decomposition. The source’s presentation from one chosen factorization of Ann(M) and the exact annihilator exponent of each displayed component are assembled consequences rather than one declaration. |
FC01-C12-U014 |
exact match | mathlib |
Ideal.primaryComponent |
pinned/current primary-component API | The p-primary component is a direct library construction consisting of elements annihilated by a power of the prime ideal. |
FC01-C12-U015 |
broad match | mathlib |
Ideal.piQuotEquiv; Submodule.quotientPi; quotient-by-smul and cyclic-quotient APIs |
pinned/current quotient-module API | Quotients commute with finite products and the free/cyclic cases reduce to ideal-quotient calculations, yielding the three displayed mod-p isomorphisms. No searched declaration packages all three cases as this lemma. |
FC01-C12-U016 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + external invariant-factor search | No searched proved declaration classifies finitely generated PID modules by unique free rank plus invariant factors or, equivalently, unique elementary divisors. Existing PID decomposition theorems are existential. |
FC01-C12-U017 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + external invariant-factor search | No searched declaration formalizes the conversion algorithm between divisibility-chain invariant factors and the ordered prime-power elementary-divisor multiset. |
FC01-C12-U018 |
partial match / wrong interface | mathlib |
CommGroup.equiv_free_prod_prod_multiplicative_zmod; finite-abelian decomposition API |
pinned/current GroupTheory/FiniteAbelian/Basic.lean |
The finitely generated abelian-group decomposition exists, but as already recorded in C05 the searched API does not expose the source’s uniqueness/invariant-factor classification. |
FC01-C12-U019 |
broad match | mathlib |
Module.AEval; Module.AEval'; LinearEquiv.ofAEval; PID module decomposition |
pinned/current polynomial-module/PID API | An endomorphism induces the F[X]-module structure with X acting as the endomorphism, and intertwining equivalences transport that module structure. The canonical-form data require the missing normalized classification bridge. |
FC01-C12-U020 |
exact match | mathlib |
Module.End.eigenspace; Module.End.HasEigenvector; Module.End.HasEigenvalue; mem_eigenspace_iff |
pinned/current eigenspace API | Eigenvalues, eigenvectors, and eigenspaces of linear endomorphisms are direct notions; matrix statements follow through Matrix.toLin. |
FC01-C12-U021 |
exact match | mathlib |
LinearMap.det; LinearMap.det_toMatrix; LinearMap.det_toMatrix_eq_det_toMatrix |
pinned/current determinant API | The determinant of an endomorphism is basis-independent and equals the determinant of every representing matrix. |
FC01-C12-U022 |
exact match | mathlib |
Module.End.hasEigenvalue_iff_isRoot_charpoly; LinearMap.det_eq_zero_iff_ker_ne_bot; eigenspace_def |
pinned/current eigenspace/charpoly/determinant API | Eigenvalue, nontrivial kernel of T-λI, singularity, and vanishing determinant/characteristic polynomial are directly equivalent through these interfaces. |
FC01-C12-U023 |
exact match | mathlib |
LinearMap.charpoly; Matrix.charpoly; LinearMap.charpoly_toMatrix |
pinned/current characteristic-polynomial API | Characteristic polynomials are direct matrix and endomorphism constructions and are invariant under passage to a representing matrix. |
FC01-C12-U024 |
exact match | mathlib |
minpoly; Matrix.minpoly_toLin; minpoly.ker_aeval_eq_span_minpoly |
pinned/current minimal-polynomial API | The minimal polynomial is the monic generator of the evaluation kernel/annihilator and the matrix/linear-map versions agree. |
FC01-C12-U025 |
partial match / wrong interface | mathlib |
minpoly.ker_aeval_eq_span_minpoly; PID annihilator API |
pinned/current minpoly/PID API | The minimal polynomial is exactly the generator of the F[X]-module annihilator. Identifying it as the largest invariant factor and proving all invariant factors divide it depends on the missing invariant-factor package. |
FC01-C12-U026 |
broad match | project-existing |
LeanCategories.Algebra.companionMatrix; companionMatrix_apply_subdiagonal; Module.AEval |
project LeanCategories/Algebra/CanonicalForms.lean + pinned polynomial-module API |
The project owns exactly the source companion-matrix convention, while Mathlib owns the X-action module dictionary. The basis-level bridge from each cyclic quotient to the displayed companion block is not packaged as one theorem. |
FC01-C12-U027 |
exact match | project-existing |
LeanCategories.Algebra.InvariantFactorData; rationalCanonicalMatrix |
project LeanCategories/Algebra/CanonicalForms.lean |
Ordered monic nonconstant factors with the divisibility chain and their block-diagonal companion matrix are exactly the definition-level rational-canonical data used in the source. |
FC01-C12-U028 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/current GitHub search | The project intentionally has only rational-canonical data, and no searched source proves existence of a rational-canonical basis together with uniqueness of the divisibility-chain blocks. |
FC01-C12-U029 |
partial match / wrong interface | mathlib |
Module.AEval; LinearEquiv.ofAEval; linear-equivalence conjugacy API |
pinned/current polynomial-module API | Similar/intertwining endomorphisms correspond to equivalent induced F[X]-modules through the AEval interface. The equivalence with equality of rational canonical form depends on the missing classification theorem. |
FC01-C12-U030 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/current GitHub search | No searched declaration proves that every matrix is similar to a unique rational canonical matrix. The project supplies only the target data/construction. |
FC01-C12-U031 |
partial match / wrong interface | project-existing |
LeanCategories.Algebra.InvariantFactorData; rationalCanonicalMatrix |
project canonical-form data | The project can name the factors of already supplied rational-canonical data, but there is no extraction assigning such invariant factors canonically to an arbitrary matrix. |
FC01-C12-U032 |
partial match / wrong interface | project-existing |
LeanCategories.Algebra.SimilarMatrices; InvariantFactorData; rationalCanonicalMatrix |
project canonical-form/Jordan similarity data | Matrix similarity is represented directly and rational-canonical data are represented directly, but the classification theorem similar ↔︎ same rational canonical form is not proved. |
FC01-C12-U033 |
partial match / wrong interface | mathlib |
LinearMap.charpoly_baseChange; base-change determinant/linear-map API |
pinned/current LinearAlgebra/Charpoly/BaseChange.lean |
Characteristic polynomial is proved stable under scalar extension. The source also asserts base-field invariance of minimal polynomial/invariant factors/rational form and descent of similarity; no searched declaration supplies that full package. |
FC01-C12-U034 |
partial match / wrong interface | project-existing |
LeanCategories.Algebra.companionMatrix; Matrix.charpoly_fromBlocks_zero₁₂; Matrix.charpoly_fromBlocks_zero₂₁ |
project companion data + pinned/current block-charpoly API | Characteristic polynomial multiplies across block-diagonal sums. No searched theorem proves that the project’s Dummit–Foote companion matrix has characteristic polynomial equal to its defining polynomial, so the first half remains an unproved bridge. |
FC01-C12-U035 |
partial match / wrong interface | mathlib |
LinearMap.aeval_self_charpoly; LinearMap.minpoly_dvd_charpoly; matrix analogues |
pinned/current charpoly/minpoly API | Cayley–Hamilton and minpoly ∣ charpoly are direct. The product-of-invariant-factors formula and charpoly ∣ minpoly^N/same-root conclusion were not found independently of the missing invariant-factor classification. |
FC01-C12-U036 |
exact match | mathlib |
Matrix.swap; Matrix.transvection; diagonal/unit row-column scaling |
pinned/current matrix elementary-operation API | Row/column interchange, adding a multiple of another row/column, and multiplication by units are directly represented by invertible elementary matrices over F[X]. |
FC01-C12-U037 |
partial match / wrong interface | mathlib |
Submodule.smithNormalForm; Module.Basis.SmithNormalForm; Matrix.swap; Matrix.transvection |
pinned/current PID/elementary-matrix API | Mathlib supplies Smith diagonal bases for submodule inclusions and the elementary row/column operations. It does not expose the source matrix theorem for X I-A with monic divisibility-normalized diagonal entries identified as matrix invariant factors. |
FC01-C12-U038 |
partial match / wrong interface | project-existing |
LeanCategories.Algebra.JordanBlock; JordanMatrix; JordanMatrix.matrix |
project LeanCategories/Algebra/JordanCanonical.lean |
Jordan blocks and their block-diagonal assembly are exact project objects. The source row additionally derives the blocks uniquely from elementary divisors, which depends on the missing PID uniqueness/Jordan classification theorem. |
FC01-C12-U039 |
exact match | project-existing |
LeanCategories.Algebra.JordanMatrix; IsJordanMatrix; IsJordanCanonicalInBasis |
project LeanCategories/Algebra/JordanCanonical.lean |
A block-diagonal matrix of Jordan blocks and a linear map represented by such a matrix in a chosen basis are directly represented. |
FC01-C12-U040 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/current GitHub search | The local Jordan file explicitly proves no existence, uniqueness, or classification theorem, and no searched external/current Mathlib declaration supplies the linear-transformation Jordan canonical-form theorem. |
FC01-C12-U041 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + source-atlas/current GitHub search | No searched declaration proves that every split square matrix is similar to a Jordan matrix uniquely up to block permutation. |
FC01-C12-U042 |
partial match / wrong interface | project-existing |
LeanCategories.Algebra.SimilarMatrices; JordanBlock; diagonal-matrix/charpoly/permutation API |
project + pinned/current matrix API | Similarity and diagonal matrices are available, and permuting a diagonal basis gives the forward family of similarities. Declaring every similar diagonal matrix to be the Jordan canonical form and proving the converse classification of diagonal matrices depends on the missing Jordan uniqueness theorem. |
FC01-C12-U043 |
partial match / wrong interface | mathlib |
Module.End.isSemisimple_of_squarefree_aeval_eq_zero; Module.End.IsSemisimple.minpoly_squarefree; eigenspace API |
pinned/current LinearAlgebra/Semisimple.lean |
Squarefree minimal polynomial is equivalent to the available semisimplicity direction in finite dimension, but Mathlib does not identify this with diagonalizability under the source splitting hypothesis; the file explicitly lists the needed semisimple/diagonalizable bridge as TODO. |
C13 — Field Theory
Project search found one C13-specific file, LeanCategories/Algebra/Concrete/FieldExtensions.lean, but it is categorical wrapping only: its module documentation says the carrier predicates are Mathlib’s standard field-extension predicates and that the file introduces no field-extension data. The mathematical mappings therefore remain in Mathlib unless an external implementation supplies a missing interface. The pinned audit uses Mathlib v4.32.0 at 81a5d257c8e410db227a6665ed08f64fea08e997; the current default branch was rechecked on 2026-09-05 at 7974e751bece493b6ff508039423ca9fa2452fa8.
Field-extension, minimal-polynomial, finite-generation, compositum, splitting-field, algebraic-closure, separability, finite-field, and cyclotomic infrastructure is already extensive. The main pinned-Mathlib gaps are narrower: no searched theorem classifies every characteristic-not-two quadratic extension as F(√D), and no searched theorem gives the textbook splitting-field bound [E:F] ≤ n!. Mathlib’s own KummerExtension.lean still records the missing degree-two Kummer/quadratic bridge.
For §13.3, a fresh external search found wwylele/Compass (https://github.com/wwylele/Compass), Apache-2.0, commit c1c3df7fead49c56dab02dc6cedebcdf8d82739d (2026-08-29). It formalizes straightedge-and-compass constructibility, constructible closure as iterated quadratic extensions, the power-of-two degree obstruction, angle-trisection impossibility, and cube-doubling impossibility. Its toolchain is Lean v4.34.0-rc1 with Mathlib commit 4ac22c7efcf253ec41e1b469f381b4ab68ca2646, so against this repository’s pinned v4.32 environment it is recorded as reference-port, not package-import. No squaring-the-circle theorem was found in that repository or the fresh external search.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C13-U001 |
exact match | mathlib |
ringChar; CharP |
pinned/current characteristic API | The characteristic is the least positive natural whose scalar image is zero, with 0 for characteristic zero; Mathlib packages this through ringChar and CharP. |
FC01-C13-U002 |
exact match | mathlib |
CharP.char_is_prime_or_zero; CharP.cast_eq_zero_iff; CharP.cast_eq_zero |
pinned/current Algebra/CharP API |
For a field the characteristic is zero or prime, and in positive characteristic p the scalar p acts as zero on every element. |
FC01-C13-U003 |
exact match | mathlib |
Subfield.bot_eq_of_charZero; Subfield.bot_eq_of_zMod_algebra |
pinned/current FieldTheory/PrimeField.lean |
The smallest subfield is the image of ℚ in characteristic zero and the image of ZMod p in characteristic p, exactly the source prime-subfield classification. |
FC01-C13-U004 |
exact match | mathlib |
Algebra; Module; algebraMap |
Lean/Mathlib algebra-module interface | A field extension is represented by an algebra structure, and the extension field is automatically a vector space/module over the base field. |
FC01-C13-U005 |
exact match | mathlib |
Module.rank; Module.finrank; FiniteDimensional |
pinned/current dimension API | Extension degree is module rank/cardinal rank, with finrank for finite-dimensional extensions and FiniteDimensional expressing finiteness. |
FC01-C13-U006 |
broad match | mathlib |
RingHom.injective; AlgHom.injective |
pinned/current field-hom API | Mathlib’s unital field-hom interfaces are automatically injective. The source also permits the identically-zero nonunital convention, which is not represented by RingHom/AlgHom, so the mathematical nonzero case is exact but the interface is broader/different. |
FC01-C13-U007 |
exact match | mathlib |
AdjoinRoot; AdjoinRoot.root; irreducible-field instance |
pinned/current RingTheory/AdjoinRoot.lean |
For irreducible p, AdjoinRoot p is a field extension in which the distinguished root satisfies p(root)=0. |
FC01-C13-U008 |
exact match | mathlib |
AdjoinRoot.powerBasis; finrank_quotient_span_eq_natDegree |
pinned/current adjoin-root API | The quotient by an irreducible degree-n polynomial has the power basis 1, θ, …, θ^(n-1) and dimension n. |
FC01-C13-U009 |
exact match | mathlib |
AdjoinRoot.modByMonicHom; AdjoinRoot.modByMonicHom_mk; AdjoinRoot.mk_eq_mk |
pinned/current adjoin-root normal-form API | Every quotient class has its polynomial remainder representative modulo the monic defining polynomial, and equality is exactly congruence modulo that polynomial. |
FC01-C13-U010 |
exact match | mathlib |
IntermediateField.adjoin; IntermediateField.adjoin_le_iff |
pinned/current intermediate-field adjoin API | adjoin F S is exactly the least intermediate field containing the specified generators. |
FC01-C13-U011 |
exact match | mathlib |
IntermediateField.adjoin; notation F⟮x⟯; IntermediateField.adjoin_univ |
pinned/current simple-extension API | A simple extension is directly represented by adjoining a singleton; the notation and top-generation statement match the source primitive-element convention. |
FC01-C13-U012 |
exact match | mathlib |
IntermediateField.adjoinRootEquivAdjoin; adjoinRootEquivAdjoin_apply_root |
pinned/current IntermediateField/Adjoin/Basic.lean |
For algebraic α, the quotient by its minimal polynomial is algebra-equivalent to F⟮α⟯, carrying the quotient root to α. |
FC01-C13-U013 |
exact match | mathlib |
IntermediateField.adjoin.powerBasis; IntermediateField.adjoin.finrank |
pinned/current simple-extension power-basis API | The power basis gives unique expressions in powers 1, α, …, α^(n-1) and identifies n with the minimal-polynomial degree. |
FC01-C13-U014 |
broad match | mathlib |
IntermediateField.algEquiv; IntermediateField.exists_algHom_of_adjoin_splits_of_aeval; IsAdjoinRoot.algEquiv |
pinned/current simple-extension/extension API | Mathlib has uniqueness of adjoining a root of the same polynomial and extension of embeddings sending a generator to a chosen root. The source packages these with a base-field isomorphism and mapped polynomial in one theorem rather than the library’s fixed-base interfaces. |
FC01-C13-U015 |
exact match | mathlib |
IsAlgebraic; Transcendental; Algebra.IsAlgebraic |
pinned/current algebraicity API | Elementwise algebraic/transcendental predicates and the property that every element of an extension is algebraic are direct library notions. |
FC01-C13-U016 |
exact match | mathlib |
minpoly; minpoly.monic; minpoly.irreducible; minpoly.dvd; minpoly.unique |
pinned/current minpoly API | The minimal polynomial is uniquely monic irreducible and divides every polynomial annihilating the element. |
FC01-C13-U017 |
exact match | mathlib |
minpoly.dvd_map_of_isScalarTower |
pinned/current minpoly tower API | The minimal polynomial after enlarging the base field divides the coefficient-mapped minimal polynomial over the smaller base. |
FC01-C13-U018 |
exact match | mathlib |
minpoly; Polynomial.natDegree; IntermediateField.adjoin.finrank |
pinned/current minpoly/dimension API | The minimal polynomial and its degree are direct, and its degree is identified with the degree of the generated simple extension. |
FC01-C13-U019 |
exact match | mathlib |
IntermediateField.adjoinRootEquivAdjoin; IntermediateField.adjoin.finrank |
pinned/current simple-extension API | F⟮α⟯ is the quotient by the minimal polynomial and its extension degree is exactly that polynomial’s degree. |
FC01-C13-U020 |
exact match | mathlib |
IntermediateField.adjoin.finiteDimensional; IntermediateField.adjoin.finrank; IsAlgebraic.of_finite |
pinned/current simple-extension API | An algebraic element gives a finite simple extension of degree its minimal-polynomial degree; conversely finite dimensionality makes every element algebraic. |
FC01-C13-U021 |
exact match | mathlib |
Algebra.IsAlgebraic.of_finite; IsAlgebraic.of_finite |
pinned/current algebraicity API | Every finite-dimensional field extension is algebraic, both as an extension property and elementwise. |
FC01-C13-U022 |
partial match / wrong interface | mathlib |
Algebra.IsQuadraticExtension; IsQuadraticExtension.finrank_eq_two; Kummer square-root interfaces |
pinned/current quadratic/Kummer API | Degree-two extensions are directly recognized, and Kummer machinery handles adjoining square roots under suitable hypotheses. Mathlib does not prove the source classification in characteristic not two that every quadratic extension is F(√D) for a nonsquare D; KummerExtension.lean explicitly records the missing degree-two bridge. |
FC01-C13-U023 |
partial match / wrong interface | mathlib |
Algebra.IsQuadraticExtension; IsQuadraticExtension.finrank_eq_two |
pinned/current quadratic-extension API | The terminology and degree-two predicate are exact, but the source row also includes the square-root normal form and its converse, which remain missing as a general classification theorem. |
FC01-C13-U024 |
exact match | mathlib |
Module.finrank_mul_finrank; Module.rank_mul_rank |
pinned/current tower-dimension API | The finite tower law and its cardinal-rank analogue are direct; Mathlib’s rank theorem covers the infinite-dimensional form as well. |
FC01-C13-U025 |
exact match | mathlib |
IntermediateField.finrank_dvd_of_le_right; IntermediateField.finrank_dvd_of_le_left |
pinned/current intermediate-field finite-dimensional API | For finite towers, the degree of an intermediate extension divides the total degree exactly as in the source. |
FC01-C13-U026 |
exact match | mathlib |
IntermediateField.FG; IntermediateField.fg_def; fg_adjoin_finset |
pinned/current finitely-generated field API | Finite generation is exactly existence of a finite generating set under intermediate-field adjoin. |
FC01-C13-U027 |
exact match | mathlib |
IntermediateField.adjoin_adjoin_left |
pinned/current adjoin tower API | Successive adjoining identifies F(α,β) with adjoining β over F(α); Mathlib states the corresponding adjoin identities. |
FC01-C13-U028 |
broad match | mathlib |
Algebra.finite_of_fg_of_isAlgebraic; Algebra.IsAlgebraic.of_finite; IntermediateField.adjoin.finrank; Module.finrank_mul_finrank |
pinned/current finite-generation/algebraicity API | Mathlib proves finite generation plus algebraicity implies module finiteness and the converse follows from finite-dimensional bases; repeated simple-extension tower laws give the source product bound. The combined iff and displayed bound are assembled rather than one declaration. |
FC01-C13-U029 |
exact match | mathlib |
IsAlgebraic.add; IsAlgebraic.sub; IsAlgebraic.mul; IsAlgebraic.inv |
pinned/current algebraic-element closure API | Algebraic elements are closed under the field operations, including inversion of a nonzero algebraic element. |
FC01-C13-U030 |
exact match | mathlib |
algebraicClosure; mem_algebraicClosure_iff |
pinned/current FieldTheory/AlgebraicClosure.lean |
The algebraic elements of an overfield are bundled exactly as an intermediate field, with membership equivalent to algebraicity. |
FC01-C13-U031 |
exact match | mathlib |
IsAlgebraic.trans; Algebra.IsAlgebraic tower instances |
pinned/current algebraicity transitivity API | Algebraicity is transitive in field towers, matching the source theorem. |
FC01-C13-U032 |
exact match | mathlib |
intermediate-field supremum ⊔; iSup; IntermediateField.adjoin |
pinned/current intermediate-field lattice API | The compositum is exactly the least upper bound/supremum of the participating intermediate fields. |
FC01-C13-U033 |
broad match | mathlib |
IntermediateField.finrank_sup_le; IntermediateField.LinearDisjoint.linearIndependent_mul; IntermediateField.LinearDisjoint.finrank_sup; of_finrank_sup |
pinned/current compositum/linear-disjointness API | The product degree bound, spanning by pairwise products, and equality criterion are all formalized through the stronger linear-disjointness interface. The source states these as one compositum proposition rather than through that predicate. |
FC01-C13-U034 |
exact match | mathlib |
IntermediateField.LinearDisjoint.of_finrank_coprime; IntermediateField.LinearDisjoint.finrank_sup |
pinned/current linear-disjointness API | Coprime finite degrees imply linear disjointness, and linear disjointness gives compositum degree equal to the product, exactly yielding the source corollary. |
FC01-C13-U035 |
exact match | reference-port |
constructibleClosure; mem_constructibleClosure_of_sq_mem; EuclideanGeometry.constructiblePoint_iff_mem_constructibleClosure |
Compass/ConstructibleNumber.lean; Compass/Equivalence.lean; wwylele/Compass c1c3df7fead49c56dab02dc6cedebcdf8d82739d, Apache-2.0, Lean 4.34.0-rc1 / Mathlib 4ac22c7efcf253ec41e1b469f381b4ab68ca2646 |
The external development defines constructible closure as the union of iterated quadratic extensions, proves closure under square roots, and proves equivalence with geometric straightedge-and-compass constructibility. It is semantically exact but not directly import-compatible with the project pin. |
FC01-C13-U036 |
exact match | reference-port |
isPowerOfTwo_finrank_adjoin_of_mem_constructibleClosure |
Compass/ConstructibleNumber.lean; wwylele/Compass c1c3df7fead49c56dab02dc6cedebcdf8d82739d, Apache-2.0 |
The theorem states exactly that a constructible element generates an extension whose finite degree is a power of two. |
FC01-C13-U037 |
partial match / wrong interface | reference-port |
EuclideanGeometry.not_exist_angle_trisection; EuclideanGeometry.not_exist_doubling_cube |
Compass/Wiedijk8.lean; wwylele/Compass c1c3df7fead49c56dab02dc6cedebcdf8d82739d + fresh 2026-09-05 external search |
The external Lean development proves impossibility of arbitrary angle trisection and cube doubling. No theorem for squaring the circle was found, so the source’s three-problem bundle is only partial. |
FC01-C13-U038 |
exact match | mathlib |
Polynomial.IsSplittingField; Polynomial.IsSplittingField.splits; Polynomial.IsSplittingField.adjoin_rootSet |
pinned/current splitting-field API | The splitting condition and minimal generation by the polynomial roots are exactly the library’s splitting-field predicate. |
FC01-C13-U039 |
exact match | mathlib |
Polynomial.SplittingField; Polynomial.SplittingField.isSplittingField |
pinned/current SplittingField/Construction.lean |
Mathlib constructs a splitting field for every polynomial and installs the exact splitting-field instance. |
FC01-C13-U040 |
broad match | mathlib |
Normal; Normal.exists_isSplittingField; Normal.of_isSplittingField |
pinned/current normal-extension API | Mathlib defines normality as algebraicity plus splitting of every minimal polynomial and proves finite normal extensions are splitting fields of a polynomial. The source’s arbitrary “splitting field of a collection” presentation is equivalent mathematics but not the exposed interface. |
FC01-C13-U041 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh 2026-09-05 GitHub search | Splitting fields are constructed and proved finite-dimensional, but no searched declaration proves the source bound [E:F] ≤ n! for a degree-n polynomial. |
FC01-C13-U042 |
exact match | mathlib |
IsCyclotomicExtension.isSplittingField_X_pow_sub_one; rootsOfUnity.isCyclic |
pinned/current cyclotomic/roots-of-unity API | Cyclotomic extensions are exactly splitting fields of X^n-1, and the group of nth roots of unity is cyclic. |
FC01-C13-U043 |
exact match | mathlib |
IsPrimitiveRoot; primitiveRoots; IsPrimitiveRoot.card_primitiveRoots |
pinned/current primitive-roots API | Primitive nth roots are direct objects and, when one exists, their number is Euler’s totient φ(n). |
FC01-C13-U044 |
exact match | mathlib |
CyclotomicField; IsCyclotomicExtension.finrank; cyclotomic.irreducible_rat; Nat.totient_prime |
pinned/current cyclotomic-field API | The rational cyclotomic field has degree φ(n); for prime p this specializes to p-1, covering the source definition and example. |
FC01-C13-U045 |
broad match | mathlib |
isSplittingField_X_pow_sub_C_of_root_adjoin_eq_top; Algebra.adjoin_root_eq_top_of_isSplittingField; cyclotomic primitive-root API |
pinned/current FieldTheory/KummerExtension.lean + cyclotomic API |
Mathlib proves the general Kummer statement that, once the needed roots of unity are present, adjoining one nth root gives the splitting field of X^n-a. The source’s concrete X^p-2 splitting field over ℚ requires assembling this over the cyclotomic intermediate field rather than invoking one exact theorem. |
FC01-C13-U046 |
broad match | mathlib |
IntermediateField.exists_algHom_of_adjoin_splits; exists_algHom_of_adjoin_splits_of_aeval; IsAlgClosure.equivOfEquiv |
pinned/current extension-embedding API | The extension lemma supplies embeddings after prescribing a base embedding and compatible roots, and algebraic closures can transport base-field equivalences. A single theorem extending an arbitrary base-field isomorphism to the two specified splitting fields was not found. |
FC01-C13-U047 |
exact match | mathlib |
Polynomial.IsSplittingField.algEquiv; Polynomial.SplittingField.algEquiv |
pinned/current splitting-field construction API | Any splitting field is algebra-equivalent over the base to the canonical splitting field, hence any two splitting fields are isomorphic over the base. |
FC01-C13-U048 |
exact match | mathlib |
IsAlgClosure; isAlgClosure_iff |
pinned/current algebraic-closure API | An algebraic closure is exactly an algebraic extension whose top field is algebraically closed. |
FC01-C13-U049 |
exact match | mathlib |
IsAlgClosed |
pinned/current algebraically-closed field API | Algebraic closedness is a direct library property: nonconstant polynomials have roots / polynomials split. |
FC01-C13-U050 |
exact match | mathlib |
IsAlgClosure.isAlgClosed |
pinned/current algebraic-closure API | Being an algebraic closure directly supplies algebraic closedness of the extension field. |
FC01-C13-U051 |
exact match | mathlib |
AlgebraicClosure; AlgebraicClosure.isAlgClosed |
pinned/current IsAlgClosed/AlgebraicClosure.lean |
Mathlib constructs an algebraic closure of every field and proves it algebraically closed. |
FC01-C13-U052 |
exact match | mathlib |
algebraicClosure; algebraicClosure.isAlgClosure; IsAlgClosure.equiv |
pinned/current relative/algebraic-closure API | Inside an algebraically closed overfield, the algebraic elements form an algebraic closure; any two algebraic closures are algebra-equivalent over the base. |
FC01-C13-U053 |
exact match | mathlib |
Complex.isAlgClosed |
pinned/current Analysis/Complex/Polynomial/Basic.lean |
The Fundamental Theorem of Algebra is exposed as the algebraically-closed instance for ℂ. |
FC01-C13-U054 |
broad match | mathlib |
algebraicClosure; mem_algebraicClosure_iff; Complex.isAlgClosed |
pinned/current relative algebraic-closure API | For any subfield embedded in ℂ, its algebraic elements in ℂ form an algebraic closure. The familiar field of algebraic numbers over ℚ inside ℂ is represented by this relative intermediate field rather than a dedicated named Qbar type in this interface. |
FC01-C13-U055 |
exact match | mathlib |
Polynomial.Separable |
pinned/current separability API | A polynomial is separable exactly through the library’s no-repeated-roots/coprimality predicate. |
FC01-C13-U056 |
exact match | mathlib |
Polynomial.derivative; Polynomial.derivative_add; Polynomial.derivative_mul |
pinned/current polynomial derivative API | Formal derivative and the sum/product rules are direct. |
FC01-C13-U057 |
exact match | mathlib |
Polynomial.separable_def; repeated-root/derivative API |
pinned/current FieldTheory/Separable.lean |
Separability is defined by coprimality with the derivative, equivalent to having no repeated roots; the repeated-root criterion is directly supported by the roots/derivative API. |
FC01-C13-U058 |
broad match | mathlib |
Irreducible.separable; Separable.squarefree; polynomial factorization API |
pinned/current separability/UFD polynomial API | Irreducibles over characteristic zero are directly separable and separable polynomials are squarefree. The source’s explicit “product of distinct irreducibles” factorization formulation is an assembled UFD consequence rather than one matching declaration. |
FC01-C13-U059 |
exact match | mathlib |
frobenius; frobenius_inj; field-hom injectivity |
pinned/current Frobenius API | The characteristic-p Frobenius is a ring homomorphism and is injective on fields/domains. |
FC01-C13-U060 |
exact match | mathlib |
frobenius; FiniteField.frobeniusAlgHom |
pinned/current Frobenius/finite-field API | The Frobenius endomorphism x ↦ x^p is directly represented, including an algebra-hom version for finite fields. |
FC01-C13-U061 |
exact match | mathlib |
PerfectField.ofFinite; PerfectField.toPerfectRing; PerfectRing.surjective_frobenius; FiniteField.frobeniusAlgEquiv |
pinned/current perfect/finite-field API | Finite fields are perfect, so Frobenius is bijective; equivalently every element has a pth root. |
FC01-C13-U062 |
exact match | mathlib |
PerfectField.ofFinite; PerfectField.separable_of_irreducible |
pinned/current perfect-field API | Every finite field is perfect and therefore every irreducible polynomial over it is separable. |
FC01-C13-U063 |
broad match | mathlib |
PerfectField; PerfectRing; PerfectField.ofCharZero; PerfectField.toPerfectRing |
pinned/current FieldTheory/Perfect.lean |
Mathlib splits the textbook definition across PerfectField (irreducibles separable) and PerfectRing (Frobenius bijective in positive characteristic), with equivalence instances and characteristic-zero perfection. The mathematics is the same but the primitive interface differs. |
FC01-C13-U064 |
exact match | mathlib |
GaloisField; GaloisField.card; GaloisField.algEquivGaloisField; FiniteField.algEquivOfCardEq |
pinned/current FieldTheory/Finite/GaloisField.lean |
GaloisField p n is constructed as the splitting field of X^(p^n)-X, has cardinality p^n, and finite fields with that cardinality are unique up to algebra equivalence. |
FC01-C13-U065 |
exact match | mathlib |
Polynomial.exists_separable_of_irreducible; Polynomial.unique_separable_of_irreducible |
pinned/current separability API | In positive characteristic an irreducible polynomial has a unique presentation as a Frobenius expansion of a separable polynomial, exactly the source p_sep(X^(p^k)) statement. |
FC01-C13-U066 |
partial match / wrong interface | mathlib |
Polynomial.natSepDegree; Irreducible.natSepDegree_dvd_natDegree; HasSeparableContraction.natSepDegree_eq |
pinned/current FieldTheory/SeparableDegree.lean |
Mathlib defines and computes polynomial separable degree and proves it divides the ordinary degree, with the quotient encoded through separable-contraction/Frobenius-exponent data. No searched primitive polynomial “inseparable degree” object states the source product deg = sepdeg · insepdeg in that interface. |
FC01-C13-U067 |
exact match | mathlib |
IsSeparable; Algebra.IsSeparable |
pinned/current separable-extension API | Element separability and the property that every element of an extension is separable are direct library predicates. |
FC01-C13-U068 |
exact match | mathlib |
perfect-field algebraic-extension Algebra.IsSeparable instance |
pinned/current FieldTheory/Perfect.lean |
Mathlib proves the stronger statement that every algebraic extension of a perfect field is separable; the source finite-extension result is immediate. |
FC01-C13-U069 |
exact match | mathlib |
rootsOfUnity; rootsOfUnity.isCyclic; rootsOfUnity_le_of_dvd; IsPrimitiveRoot.card_primitiveRoots |
pinned/current roots-of-unity API | The nth roots of unity form a cyclic group, inclusions follow divisibility of exponents, and primitive roots are counted by φ(n). |
FC01-C13-U070 |
exact match | mathlib |
Polynomial.cyclotomic; Polynomial.prod_cyclotomic_eq_X_pow_sub_one; Polynomial.natDegree_cyclotomic |
pinned/current cyclotomic-polynomial API | Cyclotomic polynomials are defined with the exact factorization of X^n-1 over divisors and degree φ(n). |
FC01-C13-U071 |
exact match | mathlib |
Polynomial.cyclotomic.monic; Polynomial.natDegree_cyclotomic |
pinned/current cyclotomic-polynomial API | Φ_n is monic over ℤ and has degree φ(n) exactly as in the source. |
FC01-C13-U072 |
exact match | mathlib |
Polynomial.cyclotomic.irreducible_rat; Polynomial.cyclotomic.monic; Polynomial.natDegree_cyclotomic |
pinned/current cyclotomic roots API | Cyclotomic polynomials are irreducible over ℚ; monicity/integrality and degree are direct companion results. |
FC01-C13-U073 |
exact match | mathlib |
IsCyclotomicExtension.finrank; Polynomial.cyclotomic.irreducible_rat |
pinned/current cyclotomic-extension API | The degree of a rational cyclotomic extension is the degree of the irreducible cyclotomic polynomial, hence exactly φ(n). |
C14 — Galois Theory
Project search found no C14-specific theorem layer beyond the existing categorical field-extension wrappers, so the primary route is Mathlib. The pinned audit uses Mathlib v4.32.0 at 81a5d257c8e410db227a6665ed08f64fea08e997; current upstream was rechecked at 7974e751bece493b6ff508039423ca9fa2452fa8. Finite Galois correspondence, fixed fields, finite fields, Galois closures, Kummer cyclic extensions, transcendence bases, inseparability degrees, and infinite Galois correspondence are all substantial and are mapped declaration-by-declaration rather than by topic name.
Fresh external search also found four relevant newer Lean developments. TauCeti supplies concrete multiquadratic results for Q(sqrt 2,sqrt 3); wwylele/Compass supplies Gauss–Wantzel; xroblot/SKW proves Kronecker–Weber; and CBirkbeck/AINTLIB proves the conjugacy-class Chebotarev density theorem. Each targets a newer Lean/Mathlib revision than this repository, so these are recorded as reference-port, not package-import. The external search did not close the source’s x^8-2/quasidihedral examples, Gaussian periods, discriminant/alternating-group criteria, quartic resolvent, converse solvability-by-radicals theorem, Hilbert irreducibility statement, or the full polynomial-factorization formulation of Chebotarev.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C14-U001 |
exact match | mathlib |
AlgEquiv; Gal |
pinned Mathlib v4.32.0 | Field automorphisms and base-fixing automorphisms are direct algebra-equivalence objects. |
FC01-C14-U002 |
exact match | mathlib |
Gal; group structure on AlgEquiv |
pinned Mathlib v4.32.0 | The automorphisms fixing the base form exactly the composition group used for Gal(K/F). |
FC01-C14-U003 |
exact match | mathlib |
Gal; Subgroup |
pinned Mathlib v4.32.0 | The automorphism group and its subgroups are native group-theoretic objects. |
FC01-C14-U004 |
exact match | mathlib |
minpoly.map_root |
pinned Mathlib v4.32.0 | An algebra embedding fixing the base sends an algebraic element to another root of its minimal polynomial. |
FC01-C14-U005 |
exact match | mathlib |
FixedPoints.subfield |
pinned Mathlib v4.32.0 | Fixed points of a group of field automorphisms are bundled as a subfield. |
FC01-C14-U006 |
exact match | mathlib |
IntermediateField.fixedField |
pinned Mathlib v4.32.0 | The fixed field of a subgroup of Gal(E/F) is a direct intermediate-field construction. |
FC01-C14-U007 |
exact match | mathlib |
IntermediateField.fixingSubgroup_le; IntermediateField.fixedField_le |
pinned Mathlib v4.32.0 | The field/subgroup assignments are antitone exactly as in the source. |
FC01-C14-U008 |
broad match | mathlib |
AlgEquiv.card_le; IsGalois.card_aut_eq_finrank; IsGalois.of_separable_splitting_field |
pinned Mathlib v4.32.0 | The automorphism bound, equality in the Galois case, and separable-splitting-field criterion are direct, but the source packages the splitting-field inequality/equality criterion in one statement. |
FC01-C14-U009 |
broad match | mathlib |
IsGalois; IsGalois.card_aut_eq_finrank; IsGalois.of_card_aut_eq_finrank |
pinned Mathlib v4.32.0 | Mathlib takes normal plus separable as the primitive IsGalois interface and proves the finite automorphism-cardinality characterization used as the textbook definition. |
FC01-C14-U010 |
exact match | mathlib |
IsGalois.of_separable_splitting_field |
pinned Mathlib v4.32.0 | A separable splitting field is directly proved Galois. |
FC01-C14-U011 |
exact match | mathlib |
Polynomial.Gal |
pinned Mathlib v4.32.0 | Mathlib defines the Galois group of a polynomial through its canonical splitting field. |
FC01-C14-U012 |
exact match | mathlib |
FiniteField.frobeniusAlgEquiv; FiniteField.frobeniusAlgHom |
pinned Mathlib v4.32.0 | The Frobenius automorphism on finite fields is a direct algebra automorphism with the source power formula. |
FC01-C14-U013 |
exact match | mathlib |
MonoidHom |
pinned Mathlib v4.32.0 | A multiplicative character is exactly a monoid homomorphism into the unit group. |
FC01-C14-U014 |
exact match | mathlib |
LinearIndependent |
pinned Mathlib v4.32.0 | Linear independence of characters as functions is the standard linear-independence predicate. |
FC01-C14-U015 |
exact match | mathlib |
MonoidHom.linearIndependent |
pinned Mathlib v4.32.0 | Distinct multiplicative characters into a field are linearly independent. |
FC01-C14-U016 |
broad match | mathlib |
RingHom.injective; AlgHom.injective |
pinned Mathlib v4.32.0 | Lean field embeddings are unital homomorphisms and therefore injective; injectivity is a theorem rather than an extra field in the source definition. |
FC01-C14-U017 |
exact match | mathlib |
distinct_embeddings |
pinned Mathlib v4.32.0 | Distinct field embeddings are linearly independent as functions. |
FC01-C14-U018 |
exact match | mathlib |
FixedPoints.finrank_eq_card |
pinned Mathlib v4.32.0 | For a finite automorphism group, the extension over its fixed field has degree equal to the group cardinality. |
FC01-C14-U019 |
broad match | mathlib |
AlgEquiv.card_le; IsGalois.of_card_aut_eq_finrank; IsGalois.tfae |
pinned Mathlib v4.32.0 | The automorphism bound and equality/Galois/fixed-field characterizations are present, split across the fixed-field and Galois APIs. |
FC01-C14-U020 |
exact match | mathlib |
FixedPoints.finrank_eq_card; IsGaloisGroup.fixedPoints_eq_bot |
pinned Mathlib v4.32.0 | A finite automorphism subgroup is recovered as the full Galois group over its fixed field, with the expected degree. |
FC01-C14-U021 |
exact match | mathlib |
IsGalois.intermediateFieldEquivSubgroup |
pinned Mathlib v4.32.0 | The finite Galois correspondence is an order isomorphism, hence distinct subgroups have distinct fixed fields. |
FC01-C14-U022 |
exact match | mathlib |
isGalois_iff; IsGalois.tfae |
pinned Mathlib v4.32.0 | Finite Galois, normal plus separable, separable splitting-field, and irreducible-root splitting characterizations are direct. |
FC01-C14-U023 |
broad match | mathlib |
Normal.minpoly_eq_iff_mem_orbit; IsGalois.tfae |
pinned Mathlib v4.32.0 | Galois conjugates are identified through automorphism orbits and minimal polynomials, while the four source characterizations are supplied by the Galois equivalence package. |
FC01-C14-U024 |
exact match | mathlib |
IsGalois.intermediateFieldEquivSubgroup; IsGalois.card_fixingSubgroup_eq_finrank; IsGalois.normalAutEquivQuotient |
pinned Mathlib v4.32.0 | The full finite Fundamental Theorem is formalized as the order-reversing field/subgroup equivalence with degree/index and normal-quotient consequences. |
FC01-C14-U025 |
partial match / wrong interface | reference-port |
TauCeti.Multiquadratic.card_aut_adjoin_sqrt_two_three; card_quadratic_intermediateField_adjoin_sqrt_two_three |
TauCeti 8c652111c7207cd18f0b1f12fc9d698875109d90, Apache-2.0, Lean 4.34.0-rc2 / Mathlib 5fcc665… |
TauCeti formalizes the Q(sqrt 2,sqrt 3) degree/Galois-cardinality and quadratic-subfield structure. The paired Q(cuberoot 2,rho) worked correspondence from the source is not present, so the row is only partial and requires a port. |
FC01-C14-U026 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | Generic primitive-element theory is available, but no searched declaration formalizes the concrete Q(sqrt 2 + sqrt 3) primitive-element example with its conjugates and minimal polynomial. |
FC01-C14-U027 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean source works out the splitting field and nonabelian Galois group of x^8 - 2. |
FC01-C14-U028 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean source identifies Gal(Q(2^(1/8), i)/Q) with the stated quasidihedral presentation or develops the comparison with the dihedral group of order 16. |
FC01-C14-U029 |
exact match | mathlib |
GaloisField; GaloisField.card |
pinned Mathlib v4.32.0 | GaloisField p n is the canonical field of cardinality p^n, unique up to algebra equivalence. |
FC01-C14-U030 |
broad match | mathlib |
FiniteField.isSplittingField_sub; FiniteField.galoisGroupEquiv; FiniteField.finrank_dvd_iff; FiniteField.algEquivOfCardEq |
pinned Mathlib v4.32.0 | The splitting-field description, cyclic Frobenius Galois group, uniqueness, and subfield/divisor classification are all formalized, but distributed across the finite-field API rather than one proposition. |
FC01-C14-U031 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched theorem formalizes the concrete fact that the irreducible integer polynomial x^4+1 becomes reducible modulo every prime. |
FC01-C14-U032 |
broad match | mathlib |
Field.exists_primitive_element; GaloisField; FiniteField.algEquivOfCardEq |
pinned Mathlib v4.32.0 | Finite fields are finite separable extensions and hence simple; the source conclusion that irreducibles of every positive degree exist follows by taking a primitive element and its minimal polynomial, rather than from one dedicated declaration. |
FC01-C14-U033 |
partial match / wrong interface | mathlib |
Irreducible.natDegree_dvd_of_dvd_X_pow_card_pow_sub_X; FiniteField.splits_X_pow_card_sub_X |
pinned Mathlib v4.32.0 | Mathlib has the exact divisibility criterion for irreducible factors of X^(q^n)-X and its splitting over the finite field, but no searched declaration states the source product over all distinct irreducibles of degrees dividing n. |
FC01-C14-U034 |
exact match | mathlib |
ArithmeticFunction.moebius; ArithmeticFunction.moebius_apply_of_squarefree; ArithmeticFunction.moebius_eq_zero_of_not_squarefree |
pinned Mathlib v4.32.0 | The Möbius function and the squarefree/sign formulas are direct. |
FC01-C14-U035 |
broad match | mathlib |
IsGalois.sup_right; IntermediateField.restrictRestrictAlgEquivMapHom |
pinned Mathlib v4.32.0 | Base-changing a Galois extension to a compositum is Galois and the restriction map realizes the comparison with the intersection; the source packages the resulting subgroup/isomorphism as one theorem. |
FC01-C14-U036 |
broad match | mathlib |
IntermediateField.LinearDisjoint.finrank_sup; IntermediateField.LinearDisjoint.iff_inf_eq_bot |
pinned Mathlib v4.32.0 | The degree formula is supplied through the stronger linear-disjointness/intersection interface; the displayed quotient formula is assembled rather than a single theorem. |
FC01-C14-U037 |
partial match / wrong interface | mathlib |
normal_inf; normal_sup; IsGalois.sup_right; restriction homomorphisms |
pinned/current Galois and normal-extension APIs | Intersections and composita of Galois extensions are supported, but no searched declaration packages the Galois group of the composite as the source fiber product of pairs with equal restrictions. |
FC01-C14-U038 |
partial match / wrong interface | mathlib |
IntermediateField.LinearDisjoint.of_inf_eq_bot; IntermediateField.restrictRestrictAlgEquivMapHom; IsGalois.intermediateFieldEquivSubgroup |
pinned Mathlib v4.32.0 | Trivial intersection gives linear disjointness and the expected restriction behavior. The complete direct-product isomorphism together with its converse field decomposition is not exposed as one matching theorem. |
FC01-C14-U039 |
exact match | mathlib |
normalClosure; IsNormalClosure; Galois closure instances |
pinned Mathlib v4.32.0 | The minimal normal/Galois closure of a finite separable extension is a direct construction with the required minimality. |
FC01-C14-U040 |
exact match | mathlib |
normalClosure; IsNormalClosure |
pinned Mathlib v4.32.0 | The Galois/normal closure is directly named and characterized by the expected minimality property. |
FC01-C14-U041 |
exact match | mathlib |
Field.exists_primitive_element_iff_finite_intermediateField |
pinned Mathlib v4.32.0 | A finite extension has a primitive element exactly when it has finitely many intermediate fields. |
FC01-C14-U042 |
exact match | mathlib |
Field.exists_primitive_element; PerfectField.ofCharZero |
pinned Mathlib v4.32.0 | Finite separable extensions have primitive elements; characteristic-zero fields are perfect, giving the stated characteristic-zero corollary. |
FC01-C14-U043 |
exact match | mathlib |
NumberField.IsCyclotomicExtension.autEquivZMod |
pinned Mathlib v4.32.0 | The rational cyclotomic Galois group is directly identified with (ZMod n)^x. |
FC01-C14-U044 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean development formalizes the source Gaussian-period construction and its Galois consequences. |
FC01-C14-U045 |
partial match / wrong interface | mathlib |
NumberField.IsCyclotomicExtension.autEquivZMod; IsCyclotomicExtension.isGalois |
pinned Mathlib v4.32.0 | Cyclotomic Galois groups and the modular-unit description are direct, but the source prime-power intersection/compositum formulas and CRT decomposition are not packaged in a matching field theorem. |
FC01-C14-U046 |
partial match / wrong interface | mathlib |
IsAbelianGalois; IsAbelianGalois.tower_bot; IsAbelianGalois.tower_top; IsCyclotomicExtension.isAbelianGalois |
pinned Mathlib v4.32.0 | The abelian-Galois notion and its tower/cyclotomic preservation results are direct. The source row also announces realization of arbitrary finite abelian groups, which is not supplied by these interfaces. |
FC01-C14-U047 |
partial match / wrong interface | mathlib |
NumberField.IsCyclotomicExtension.autEquivZMod; IsGalois.intermediateFieldEquivSubgroup |
pinned + current Mathlib (7974e751…) |
Cyclotomic Galois groups plus the Galois correspondence supply the mechanism for taking subfields/quotients, but no searched declaration constructs a rational Galois extension for an arbitrary finite abelian group. |
FC01-C14-U048 |
exact match | reference-port |
kronecker_weber in SKW/KroneckerWeber/KroneckerWeber.lean |
xroblot/SKW 3c8b2c9589b5a790f07ee7faf0b5ccfbe4005d10, Lean 4.33.0-rc1 / Mathlib c7e4bc625eceee28a62a2c852148eb4c14cef1d8 |
The external theorem states exactly that every finite abelian number-field extension of Q embeds into a cyclotomic field. Its newer toolchain makes this a reference port rather than a direct import. |
FC01-C14-U049 |
broad match | mathlib |
Nat.fermatNumber; primality predicate Nat.Prime |
pinned Mathlib v4.32.0 | Mathlib has Fermat numbers and the prime predicate, so the source definition is immediate, but it is not wrapped as a dedicated FermatPrime object. |
FC01-C14-U050 |
exact match | reference-port |
EuclideanGeometry.constructible_polygon in Compass/Polygon.lean |
wwylele/Compass c1c3df7fead49c56dab02dc6cedebcdf8d82739d, Apache-2.0, Lean 4.34.0-rc1 / Mathlib 4ac22c7… |
The external theorem is exactly Gauss–Wantzel: constructibility of the regular n-gon iff n is a power of two times a product of distinct Fermat primes. |
FC01-C14-U051 |
exact match | mathlib |
MvPolynomial.esymm |
pinned Mathlib v4.32.0 | Elementary symmetric polynomials are direct multivariate-polynomial objects. |
FC01-C14-U052 |
broad match | mathlib |
MvPolynomial; Polynomial |
pinned Mathlib v4.32.0 | The generic product prod (X-x_i) and its coefficients are readily expressed, but the textbook generic-polynomial package is not a single named object. |
FC01-C14-U053 |
partial match / wrong interface | mathlib |
MvPolynomial.esymmAlgHom_surjective |
pinned Mathlib v4.32.0 | Mathlib proves the fundamental theorem for symmetric polynomials. The source fixed-field statement is about the rational-function field and requires passing to fractions and the S_n fixed field, which is not supplied by this theorem. |
FC01-C14-U054 |
partial match / wrong interface | mathlib |
MvPolynomial.IsSymmetric |
pinned Mathlib v4.32.0 | Polynomial symmetry under variable permutations is direct; no matching multivariate rational-function symmetry predicate was found. |
FC01-C14-U055 |
partial match / wrong interface | mathlib |
MvPolynomial.esymmAlgHom_surjective; MvPolynomial.esymmAlgEquiv |
pinned Mathlib v4.32.0 | Every symmetric polynomial is an elementary-symmetric polynomial expression, but the source theorem concerns symmetric rational functions and a rational-function fixed field. |
FC01-C14-U056 |
partial match / wrong interface | mathlib |
Polynomial.Gal; Polynomial.Splits.surjective_toPermHom_of_iSup_inertia_eq_top |
pinned + current Mathlib (7974e751…) |
Mathlib has polynomial Galois groups and the pinned Morse-polynomial criterion forcing the full symmetric permutation action, but its own TODO still lacks the number-field specialization/examples needed for the source generic-polynomial S_n theorem. |
FC01-C14-U057 |
partial match / wrong interface | mathlib |
Polynomial.discr; permutation/sign group APIs |
pinned + current Mathlib (7974e751…) |
Polynomial discriminants exist, but no searched theorem identifies the alternating subgroup as the stabilizer of a square root of the root-product discriminant in the source setup. |
FC01-C14-U058 |
partial match / wrong interface | mathlib |
Polynomial.discr; resultant/derivative API |
pinned + current Mathlib (7974e751…) |
The discriminant is defined through the resultant and low-degree formulas are available, but no searched declaration supplies the full roots/symmetry/zero-iff-repeated-roots package of the source proposition. |
FC01-C14-U059 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean theorem proves in characteristic not two that a permutation lies in A_n exactly when it fixes the chosen square root of the discriminant. |
FC01-C14-U060 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean theorem proves Gal(f) <= A_n iff the discriminant is a square in the base field. |
FC01-C14-U061 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean implementation of the quartic resolvent cubic or its Galois-group criterion was found. |
FC01-C14-U062 |
exact match | mathlib |
Complex.isAlgClosed |
pinned Mathlib v4.32.0 | The Fundamental Theorem of Algebra is exposed as algebraic closedness of C. |
FC01-C14-U063 |
exact match | mathlib |
IsCyclic; Gal |
pinned Mathlib v4.32.0 | A cyclic extension is directly the condition that its Galois group is cyclic. |
FC01-C14-U064 |
broad match | mathlib |
isCyclic_of_isSplittingField_X_pow_sub_C; isCyclic_tfae |
pinned Mathlib v4.32.0 | Kummer theory proves cyclicity for extensions generated by an nth root when the required roots of unity are present. The source degree-divisibility formulation uses an arbitrary exponent n, while the strongest packaged equivalence is indexed by the extension degree. |
FC01-C14-U065 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean implementation of the Lagrange resolvent construction used in the source proof was found. |
FC01-C14-U066 |
exact match | mathlib |
exists_root_adjoin_eq_top_of_isCyclic; isCyclic_tfae |
pinned Mathlib v4.32.0 | A finite cyclic extension containing the required roots of unity is generated by an element whose degree-th power lies in the base, exactly the source converse. |
FC01-C14-U067 |
partial match / wrong interface | mathlib |
Kummer cyclic-extension API in FieldTheory/KummerExtension.lean |
pinned + current Mathlib (7974e751…) |
Cyclic Kummer extensions are well developed, but no searched theorem gives the full finite-abelian exponent-n classification by finitely generated subgroups of F^x/(F^x)^n. |
FC01-C14-U068 |
broad match | mathlib |
solvableByRad; IsSolvableByRad |
pinned Mathlib v4.32.0 | Mathlib directly defines the radical closure and inductive solvability by radicals. The source uses an explicit tower/root-extension presentation rather than the closure interface. |
FC01-C14-U069 |
partial match / wrong interface | mathlib |
solvableByRad; radical induction in FieldTheory/AbelRuffini.lean |
pinned + current Mathlib (7974e751…) |
The implementation adjoins radicals inductively and proves Galois-group solvability, but no exported theorem packages a containing Galois root extension with a tower of cyclic stages as in the source. |
FC01-C14-U070 |
partial match / wrong interface | mathlib |
isSolvable_gal_minpoly; isSolvable_gal_of_irreducible |
pinned + current Mathlib (7974e751…) |
Mathlib proves the forward implication “solvable by radicals implies solvable Galois group.” Its module documentation explicitly does not prove the converse, so the source iff is only partial. |
FC01-C14-U071 |
partial match / wrong interface | mathlib |
isSolvable_gal_of_irreducible; archived Abel–Ruffini existence result |
pinned + current Mathlib (7974e751…) |
The library formalizes the obstruction direction and an archived existence of an algebraic number not solvable by radicals, but not the source theorem that the general polynomial of every degree n >= 5 is not solvable by radicals. |
FC01-C14-U072 |
partial match / wrong interface | reference-port |
Frobenius and unramified-prime infrastructure in AINTLIB Chebotarev project | CBirkbeck/AINTLIB 160e446617a2168c34c95bbe7a76c4105b392434, Apache-2.0, Lean 4.34.0-rc2 / Mathlib e4b72ca… |
The external development formalizes Frobenius classes for unramified primes of number fields, but no searched theorem gives the source polynomial-reduction Galois-group embedding at a good rational prime. |
FC01-C14-U073 |
partial match / wrong interface | reference-port |
Frobenius/residue-degree infrastructure in AINTLIB Chebotarev project | CBirkbeck/AINTLIB 160e446617a2168c34c95bbe7a76c4105b392434, Apache-2.0 |
The arithmetic Frobenius side is formalized, but the source dictionary from factor degrees of a reduced polynomial to permutation cycle type was not found. |
FC01-C14-U074 |
partial match / wrong interface | mathlib |
Polynomial.Splits.surjective_toPermHom_of_iSup_inertia_eq_top |
pinned + current Mathlib (7974e751…) |
The Morse-polynomial theorem gives a strong criterion for symmetric Galois action, but the file TODO explicitly lacks the number-field specialization and does not prove infinitely many integer polynomials with Galois group S_n. |
FC01-C14-U075 |
partial match / wrong interface | reference-port |
Chebotarev.chebotarev_density in projects/Chebotarev/CebotarevDensity/Main.lean |
CBirkbeck/AINTLIB 160e446617a2168c34c95bbe7a76c4105b392434, Apache-2.0, Lean 4.34.0-rc2 / Mathlib e4b72ca… |
The full conjugacy-class Chebotarev density theorem is formalized. The source row states the polynomial factorization-pattern corollary, and the factorization-to-cycle-type bridge was not found in the external development, so this is a partial reference port. |
FC01-C14-U076 |
exact match | mathlib |
AlgebraicIndependent; IsTranscendenceBasis |
pinned Mathlib v4.32.0 | Algebraic independence and transcendence bases are direct library notions. |
FC01-C14-U077 |
exact match | mathlib |
exists_isTranscendenceBasis; IsTranscendenceBasis.cardinalMk_eq_trdeg |
pinned Mathlib v4.32.0 | Transcendence bases exist and every basis has cardinality equal to the transcendence degree. |
FC01-C14-U078 |
broad match | mathlib |
trdeg; trdeg_eq_zero_iff; IsTranscendenceBasis.isAlgebraic |
pinned Mathlib v4.32.0 | Transcendence degree and the algebraic iff trdeg-zero theorem are direct. The source’s function-field terminology is descriptive rather than a single matching structure. |
FC01-C14-U079 |
broad match | mathlib |
IsTranscendenceBasis.isAlgebraic; finite-generation/finite-extension APIs |
pinned Mathlib v4.32.0 | A transcendence basis makes the extension algebraic over the generated rational subfield, and finite generation makes that algebraic extension finite; Mathlib does not expose the source function-field definition as one dedicated predicate here. |
FC01-C14-U080 |
partial match / wrong interface | mathlib |
IsTranscendenceBasis; IntermediateField.adjoin |
pinned + current Mathlib (7974e751…) |
Pure transcendence can be expressed as a transcendence basis whose adjoin is top, but no searched dedicated IsPurelyTranscendental interface packages the source definition and its examples/Castelnuovo discussion. |
FC01-C14-U081 |
exact match | mathlib |
RatFunc.Luroth.algEquiv; RatFunc.Luroth.finrank_eq_max_natDegree |
pinned Mathlib v4.32.0 | Lüroth’s theorem and the exact degree formula for a rational function are direct. |
FC01-C14-U082 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean formalization of the stated Hilbert irreducibility/specialization theorem was found. |
FC01-C14-U083 |
partial match / wrong interface | mathlib |
Polynomial.Splits.surjective_toPermHom_of_iSup_inertia_eq_top |
pinned + current Mathlib (7974e751…) |
Pinned Mathlib has a conditional Morse-polynomial symmetric-group theorem, but explicitly lacks the number-field specialization needed to prove that S_n occurs over Q for every n. |
FC01-C14-U084 |
exact match | mathlib |
IsPurelyInseparable; isPurelyInseparable_iff; IsPurelyInseparable.minpoly_eq_X_pow_sub_C |
pinned Mathlib v4.32.0 | The definition and equivalent power/minimal-polynomial characterizations of purely inseparable extensions are direct. |
FC01-C14-U085 |
exact match | mathlib |
IntermediateField.isSeparable_sup; isPurelyInseparable_sup |
pinned Mathlib v4.32.0 | Composita of two separable intermediate fields remain separable, and composita of purely inseparable ones remain purely inseparable. |
FC01-C14-U086 |
exact match | mathlib |
separableClosure; separableClosure.isSeparable; separableClosure.isPurelyInseparable; separableClosure_le_iff; Field.sepDegree_mul_insepDegree |
pinned Mathlib v4.32.0 | The unique maximal separable subextension, purely-inseparable top extension, separable/inseparable degrees, and product formula are all direct. |
FC01-C14-U087 |
exact match | mathlib |
Field.sepDegree; Field.insepDegree; Field.sepDegree_mul_insepDegree |
pinned Mathlib v4.32.0 | The source notation is represented by the separable/inseparable degree definitions with their product equal to ordinary rank. |
FC01-C14-U088 |
exact match | mathlib |
Field.sepDegree_mul_sepDegree_of_isAlgebraic; Field.insepDegree_mul_insepDegree_of_isAlgebraic; IntermediateField.finSepDegree_adjoin_simple_eq_natSepDegree |
pinned Mathlib v4.32.0 | Both degree tower laws are direct, and for a simple algebraic extension the finite separable degree is identified with the minimal polynomial’s separable degree. |
FC01-C14-U089 |
exact match | mathlib |
exists_isTranscendenceBasis_and_isSeparable_of_perfectField |
pinned Mathlib v4.32.0 | A finitely generated extension of a perfect field admits a separating transcendence basis exactly as in the source. |
FC01-C14-U090 |
exact match | mathlib |
normal_iff; normal_iff_forall_fieldRange_eq; Normal.splits |
pinned Mathlib v4.32.0 | Normality is equivalent to minimal-polynomial splitting and, inside an algebraic closure, to invariance under every base-field embedding. |
FC01-C14-U091 |
partial match / wrong interface | mathlib |
separableClosure; perfectClosure; separableClosure_inf_perfectClosure |
pinned + current Mathlib (7974e751…) |
Mathlib has the separable and purely-inseparable closure machinery and proves their intersection is the base. Neither pinned nor current Mathlib exposes the source finite-separable-degree theorem that their compositum is all of E. |
FC01-C14-U092 |
broad match | mathlib |
IsGalois; Gal |
pinned Mathlib v4.32.0 | The arbitrary-extension definition “algebraic, normal, separable” and its automorphism group are direct. The source row also includes a specific infinite multiquadratic example and cardinality discussion not packaged by this interface. |
FC01-C14-U093 |
broad match | mathlib |
InfiniteGalois.IntermediateFieldEquivClosedSubgroup; InfiniteGalois.normal_iff_isGalois; krullTopology |
pinned Mathlib v4.32.0 | The Krull topology and closed-subgroup/intermediate-field duality, including the normal/Galois condition, are direct. The source row additionally discusses the absolute Galois group of a finite field as topologically generated by Frobenius, which is not part of this single correspondence API. |
C15 — Commutative Rings and Algebraic Geometry
Project search found two C15-owned interfaces already present: LeanCategories.Algebra.Ideal.IsPrimaryDecomposition with isolated/embedded-prime vocabulary, and AffineVarietyDimension on prime-spectrum points. The remaining direct coverage is primarily Mathlib. The pinned audit uses Mathlib v4.32.0 at 81a5d257c8e410db227a6665ed08f64fea08e997; current upstream was rechecked at 7974e751bece493b6ff508039423ca9fa2452fa8.
The chapter crosses two distinct geometric interfaces and they are not conflated here. Mathlib has MvPolynomial.zeroLocus/vanishingIdeal and the Nullstellensatz, but it does not provide the textbook’s full elementary category of affine algebraic sets with polynomial maps and coordinate rings. By contrast, the later prime-spectrum and affine-scheme material has a substantial first-class implementation: Zariski topology, principal opens, localization, structure sheaf, stalks, and the affine-scheme/commutative-ring anti-equivalence. Fresh external search did not close the concrete quadratic-ring-of-integers formula or the Gröbner elimination/radical-membership examples.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C15-U001 |
exact match | mathlib |
IsNoetherian; isNoetherian_iff; monotone_stabilizes_iff_noetherian |
pinned Mathlib v4.32.0 | The ACC/stabilization definition of a Noetherian module is direct; applied to the regular module it gives the ring notion used in the source. |
FC01-C15-U002 |
exact match | mathlib |
isNoetherian_quotient; isNoetherianRing_of_surjective |
pinned Mathlib v4.32.0 | Quotients and surjective images of Noetherian rings are direct theorems. |
FC01-C15-U003 |
exact match | mathlib |
isNoetherianRing_iff_ideal_fg; set_has_maximal_iff_noetherian |
pinned Mathlib v4.32.0 | The finitely-generated-ideal and maximal-condition characterizations are direct equivalents of Noetherianity. |
FC01-C15-U004 |
exact match | mathlib |
Polynomial.isNoetherianRing |
pinned Mathlib v4.32.0 | Hilbert basis for one polynomial variable is exposed as the Noetherian-ring instance for R[X]. |
FC01-C15-U005 |
exact match | mathlib |
MvPolynomial.isNoetherianRing |
pinned Mathlib v4.32.0 | Finite-variable multivariate polynomial rings over a Noetherian coefficient ring are Noetherian; fields are the source special case. |
FC01-C15-U006 |
exact match | mathlib |
Algebra.FiniteType; AlgHom |
pinned Mathlib v4.32.0 | Finite-type algebras and base-preserving algebra homomorphisms are direct library notions. |
FC01-C15-U007 |
exact match | mathlib |
Algebra.FiniteType.iff_quotient_mvPolynomial; Algebra.FiniteType.isNoetherianRing |
pinned Mathlib v4.32.0 | Finite type is characterized by a quotient of a finite-variable polynomial algebra, with the Noetherian consequence formalized directly. |
FC01-C15-U008 |
partial match / wrong interface | mathlib |
MvPolynomial; MvPolynomial.aeval |
pinned Mathlib v4.32.0 | Multivariate polynomials and evaluation are direct, but the source identifies the polynomial ring with polynomial functions on affine space over an infinite field; no searched bundled polynomial-function equivalence exposes that exact interface. |
FC01-C15-U009 |
exact match | mathlib |
MvPolynomial.zeroLocus |
pinned Mathlib v4.32.0 | The common zero set of a set of multivariate polynomials is a direct construction. |
FC01-C15-U010 |
broad match | mathlib |
MvPolynomial.zeroLocus; MvPolynomial.zeroLocus_span |
pinned Mathlib v4.32.0 | Hypersurfaces are represented by the zero locus of a singleton/principal ideal, but there is no separate hypersurface structure at this layer. |
FC01-C15-U011 |
broad match | mathlib |
MvPolynomial.vanishingIdeal; Ideal.Quotient |
pinned Mathlib v4.32.0 | The vanishing ideal is direct and the coordinate ring is assembled as its quotient; the source packages the pair as named affine-geometry data. |
FC01-C15-U012 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched pinned/current or external Lean interface bundles polynomial maps between affine algebraic sets with the source regular-map and isomorphism definitions. |
FC01-C15-U013 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean theorem gives the source contravariant bijection between polynomial maps of affine algebraic sets and homomorphisms of their coordinate rings. |
FC01-C15-U014 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | The elementary pullback-of-regular-functions criterion and its point-maximal-ideal compatibility were not found as a theorem for affine algebraic sets. |
FC01-C15-U015 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | Mathlib and the searched Gröbner developments supply Gröbner infrastructure, but no theorem matches this elimination-kernel/image proposition. |
FC01-C15-U016 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched declaration states the source reduced-Gröbner-basis criterion for surjectivity in the displayed graph/elimination form. |
FC01-C15-U017 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean theorem computes the source minimal polynomial by the specified reduced Gröbner elimination procedure. |
FC01-C15-U018 |
exact match | mathlib |
Ideal.radical; nilradical; Ideal.IsRadical |
pinned Mathlib v4.32.0 | Radical, nilradical, and radical-ideal notions are direct. |
FC01-C15-U019 |
broad match | mathlib |
Ideal.radical; nilradical; IsReduced |
pinned Mathlib v4.32.0 | The quotient/nilradical and reducedness characterizations are available in the ideal/reduced-ring API, though the source packages them as one proposition. |
FC01-C15-U020 |
exact match | mathlib |
Ideal.radical_eq_sInf; PrimeSpectrum.nilradical_eq_iInf |
pinned Mathlib v4.32.0 | Radicals and the nilradical are identified with intersections of prime ideals exactly as in the source. |
FC01-C15-U021 |
exact match | mathlib |
Ideal.IsPrime.radical; Ideal.IsMaximal.isPrime |
pinned Mathlib v4.32.0 | Prime ideals are radical, and maximal ideals are prime in the commutative setting. |
FC01-C15-U022 |
exact match | mathlib |
Ideal.exists_radical_pow_le_of_fg; IsNoetherianRing.isNilpotent_nilradical |
pinned Mathlib v4.32.0 | Finite generation gives a power of the radical inside the ideal; Noetherianity gives the stated nilpotence corollary. |
FC01-C15-U023 |
exact match | mathlib |
MvPolynomial.vanishingIdeal_zeroLocus_eq_radical |
pinned Mathlib v4.32.0 | This is the strong Hilbert Nullstellensatz in exactly the source ideal/zero-locus form. |
FC01-C15-U024 |
exact match | mathlib |
TopologicalSpace.ofClosed |
pinned Mathlib v4.32.0 | A topology can be specified by its closed sets satisfying the usual axioms, exactly the abstract definition used before the affine specialization. |
FC01-C15-U025 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | The zero-locus operations are present on affine point space, but no searched pinned/current declaration installs the source affine-space Zariski topology on k^n as such. |
FC01-C15-U026 |
exact match | mathlib |
closure; Dense |
pinned Mathlib v4.32.0 | Topological closure and density are direct generic notions. |
FC01-C15-U027 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | Without the elementary affine-space Zariski topology, the source formula cl(A)=Z(I(A)) is not exposed on that point-space interface. |
FC01-C15-U028 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched affine-algebraic-set morphism layer supplies the source image-closure/kernel and dense-image/injectivity equivalences. |
FC01-C15-U029 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched theorem formalizes the displayed implicitization algorithm by elimination Gröbner bases. |
FC01-C15-U030 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched Lean source contains the concrete affine projection example showing that a morphism image need not be Zariski closed. |
FC01-C15-U031 |
partial match / wrong interface | mathlib |
IsIrreducible; PrimeSpectrum.isIrreducible_zeroLocus_iff |
pinned Mathlib v4.32.0 | Irreducibility and the prime-ideal criterion are formalized for Zariski closed subsets of Spec; the source uses elementary affine algebraic sets. |
FC01-C15-U032 |
partial match / wrong interface | mathlib |
PrimeSpectrum.isIrreducible_zeroLocus_iff; irreducibleComponents |
pinned Mathlib v4.32.0 | The prime/irreducible correspondence and irreducible-component machinery exist for Spec, but not as the source elementary affine-set theorem. |
FC01-C15-U033 |
broad match | mathlib |
Ideal.IsPrime; Ideal.Quotient |
pinned Mathlib v4.32.0 | The algebraic kernel is direct: quotient by a prime ideal is a domain. The source phrases this through the coordinate ring of an affine variety, whose bundled interface is absent. |
FC01-C15-U034 |
partial match / wrong interface | project-existing |
AffineVarietyDimension; trdeg; FractionRing |
project source at current HEAD | The project defines affine-variety dimension on prime-spectrum points and Mathlib supplies transcendence degree/fraction fields; this is not the source bundled irreducible affine-set function-field interface. |
FC01-C15-U035 |
exact match | mathlib |
Ideal.IsPrimary |
pinned Mathlib v4.32.0 | Primary ideals are direct. |
FC01-C15-U036 |
exact match | mathlib |
Ideal.isPrimary_iff; Ideal.IsPrimary.isPrime_radical |
pinned Mathlib v4.32.0 | The zero-divisor/nilpotence criterion and primeness of the radical are direct primary-ideal results. |
FC01-C15-U037 |
exact match | mathlib |
IsAssociatedPrime.eq_radical; Ideal.IsPrimary.isPrime_radical |
pinned Mathlib v4.32.0 | The prime associated to a primary component is exactly its radical. |
FC01-C15-U038 |
exact match | project-existing |
LeanCategories.Algebra.Ideal.IsPrimaryDecomposition; primaryDecompositionPrimes |
project source at current HEAD | The project already owns the textbook-style finite primary-decomposition predicate and its set of associated radicals. |
FC01-C15-U039 |
broad match | mathlib |
InfIrred; InfIrred.isPrimary |
pinned Mathlib v4.32.0 | Infimum-irreducibility is the library formulation of irreducibility of an ideal under intersections; in a Noetherian/Lasker setting such components are primary. |
FC01-C15-U040 |
broad match | mathlib |
InfIrred.isPrimary; Submodule.isLasker |
pinned Mathlib v4.32.0 | The Lasker infrastructure proves the existence mechanism by decomposing into infimum-irreducible, hence primary, submodules; the source packages the ideal-specialized argument. |
FC01-C15-U041 |
exact match | mathlib |
Submodule.IsLasker.exists_isMinimalPrimaryDecomposition; Submodule.IsMinimalPrimaryDecomposition.image_radical_eq_associatedPrimes; Submodule.IsMinimalPrimaryDecomposition.comap_localized₀_eq_iInf |
pinned Mathlib v4.32.0 | Mathlib contains the existence theorem, uniqueness of the associated radicals, and localization formula isolating the minimal-primary components, matching the two uniqueness clauses of the source theorem. |
FC01-C15-U042 |
exact match | project-existing |
LeanCategories.Algebra.Ideal.isolatedPrime; LeanCategories.Algebra.Ideal.embeddedPrime; Submodule.associatedPrimes |
project source at current HEAD | The project already exposes the source isolated/embedded terminology over Mathlib associated-prime data. |
FC01-C15-U043 |
broad match | mathlib |
Ideal.minimalPrimes; Ideal.radical_eq_sInf; Submodule.associatedPrimes |
pinned Mathlib v4.32.0 | Minimal primes and radical-as-intersection are direct; the source packages several containment/product consequences in one proposition. |
FC01-C15-U044 |
exact match | mathlib |
IsIntegral; Algebra.IsIntegral; integralClosure; IsIntegrallyClosed; IsIntegralClosure |
pinned Mathlib v4.32.0 | Integrality, integral extensions, integral closure, integrally closed domains, and normalization at the ring level are direct notions. |
FC01-C15-U045 |
broad match | mathlib |
IsIntegral; Algebra.IsIntegral |
pinned Mathlib v4.32.0 | Mathlib has the standard finite-generation/module-finiteness characterizations of integral elements; the source presents the three equivalent forms in one proposition. |
FC01-C15-U046 |
exact match | mathlib |
IsIntegral.add; IsIntegral.sub; IsIntegral.mul; Algebra.IsIntegral.trans |
pinned Mathlib v4.32.0 | Closure of integral elements under ring operations and transitivity of integrality are direct. |
FC01-C15-U047 |
exact match | mathlib |
IsIntegrallyClosed; integralClosure |
pinned Mathlib v4.32.0 | The integral closure is integrally closed in the relevant fraction/field setting. |
FC01-C15-U048 |
exact match | mathlib |
Ideal.map; Ideal.comap |
pinned Mathlib v4.32.0 | Extension and contraction of ideals are direct map/comap constructions. |
FC01-C15-U049 |
broad match | mathlib |
Ideal.LiesOver; Ideal.GoingUp; Ideal.GoingDown; Ideal.isMaximal_of_isIntegral_of_isMaximal_comap |
pinned Mathlib v4.32.0 | Lying over, maximal-ideal behavior, going up, and going down are all formalized; the exact hypotheses are distributed across the integral-closure APIs rather than one source proposition. |
FC01-C15-U050 |
broad match | mathlib |
Ideal.LiesOver; Algebra.FiniteType |
pinned Mathlib v4.32.0 | Lying-over plus finiteness machinery gives the finite nonempty fiber over a maximal ideal in the source setting, but no single searched theorem has exactly the displayed cardinality statement. |
FC01-C15-U051 |
exact match | mathlib |
NumberField.RingOfIntegers; IsIntegral |
pinned Mathlib v4.32.0 | Algebraic integers and the ring of integers of a number field are direct. |
FC01-C15-U052 |
broad match | mathlib |
NumberField.RingOfIntegers; Rat.ringOfIntegersEquiv; minpoly |
pinned Mathlib v4.32.0 | The rational ring-of-integers identification is direct and the minimal-polynomial criterion is supported by the integral/minpoly API; the source packages both together. |
FC01-C15-U053 |
broad match | mathlib |
IsIntegralClosure.isNoetherianRing; IsIntegralClosure.module_free; RingOfIntegers.rank; NumberField.basis |
pinned Mathlib v4.32.0 | Noetherianity, freeness, rank equal to field degree, and basis infrastructure for rings of integers are formalized, while the source lattice/denominator discussion is assembled from them. |
FC01-C15-U054 |
broad match | mathlib |
NumberField.integralBasis; Ideal.isMaximal_of_isIntegral_of_isMaximal_comap |
pinned Mathlib v4.32.0 | Integral bases are direct and prime/maximal behavior in finite integral extensions is available; the source combines these with finiteness of primes above a rational prime. |
FC01-C15-U055 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched pinned/current Mathlib or external Lean development states the quadratic-field ring-of-integers formula split by the squarefree discriminant modulo four. |
FC01-C15-U056 |
exact match | mathlib |
IsPrimitiveRoot.adjoinEquivRingOfIntegers; IsPrimitiveRoot.integralPowerBasis |
pinned Mathlib v4.32.0 | For cyclotomic fields the ring of integers and its integral power basis are formalized directly. |
FC01-C15-U057 |
exact match | mathlib |
AlgebraicIndependent |
pinned Mathlib v4.32.0 | Algebraic independence is direct. |
FC01-C15-U058 |
exact match | mathlib |
Algebra.exists_integral_inj_algHom_of_fg; Algebra.exists_finite_inj_algHom_of_fg |
pinned Mathlib v4.32.0 | Noether normalization is exposed as an injective polynomial-algebra map over which the finite-type algebra is integral/finite. |
FC01-C15-U059 |
exact match | mathlib |
MvPolynomial.isMaximal_iff_eq_vanishingIdeal_singleton; MvPolynomial.eq_vanishingIdeal_singleton_of_isMaximal |
pinned Mathlib v4.32.0 | The weak Nullstellensatz is direct: maximal ideals are point ideals over an algebraically closed field, yielding a common zero for every proper ideal. |
FC01-C15-U060 |
exact match | mathlib |
MvPolynomial.vanishingIdeal_zeroLocus_eq_radical |
pinned Mathlib v4.32.0 | The strong Nullstellensatz is exactly this declaration. |
FC01-C15-U061 |
broad match | mathlib |
MvPolynomial.vanishingIdeal_zeroLocus_eq_radical |
pinned Mathlib v4.32.0 | The algebraic-closure variant follows from the same strong theorem after scalar extension; it is not separately packaged in the source notation. |
FC01-C15-U062 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | Rabinowitsch-style reasoning appears inside proofs/tactics, but no searched exported theorem matches the source adjoin-an-extra-variable membership equivalence. |
FC01-C15-U063 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched theorem gives the source Gröbner-basis radical-membership criterion. |
FC01-C15-U064 |
exact match | mathlib |
Localization; IsLocalization; IsLocalization.lift |
pinned Mathlib v4.32.0 | Localization and its universal property are direct. |
FC01-C15-U065 |
broad match | mathlib |
IsLocalization; IsLocalization.eq_iff_exists |
pinned Mathlib v4.32.0 | The localization equality/kernel machinery directly yields the stated kernel and zero-ring criteria, though the source bundles them as one proposition. |
FC01-C15-U066 |
exact match | mathlib |
Localization; IsLocalization |
pinned Mathlib v4.32.0 | The fraction-pair construction is represented by the canonical localization type together with the IsLocalization specification. |
FC01-C15-U067 |
exact match | mathlib |
Localization.AtPrime; IsLocalization.AtPrime |
pinned Mathlib v4.32.0 | Localization at the complement of a prime ideal is direct. |
FC01-C15-U068 |
exact match | mathlib |
Ideal.map; Ideal.comap; IsLocalization.map_under |
pinned Mathlib v4.32.0 | Extension and contraction through a localization are direct map/under operations. |
FC01-C15-U069 |
broad match | mathlib |
IsLocalization.orderIsoOfPrime; IsLocalization.AtPrime.orderIsoOfPrime; IsLocalization.map_radical |
pinned Mathlib v4.32.0 | Ideal/prime correspondence and radical compatibility are direct; Noetherian/Artinian preservation is supplied separately by localization finiteness results. |
FC01-C15-U070 |
partial match / wrong interface | mathlib |
IsLocalization.under_map_of_isPrimary_disjoint; IsLocalization.map_under |
pinned Mathlib v4.32.0 | The contraction of an extended ideal realizes the localization saturation operation, but no searched dedicated ideal-saturation object packages the source definition and formulas. |
FC01-C15-U071 |
partial match / wrong interface | mathlib |
IsLocalization.orderIsoOfPrime; FractionRing |
pinned Mathlib v4.32.0 | Prime contraction/extension through the fraction-field localization is available, but the source polynomial-ring criterion is stated in a specialized computational presentation not exposed as one theorem. |
FC01-C15-U072 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched theorem formalizes the source localization-plus-elimination computation of the contracted ideal from the fraction-field polynomial ring. |
FC01-C15-U073 |
exact match | mathlib |
LocalizedModule; IsLocalizedModule |
pinned Mathlib v4.32.0 | Module localization is a direct construction/specification. |
FC01-C15-U074 |
exact match | mathlib |
IsLocalizedModule; IsLocalizedModule.map |
pinned Mathlib v4.32.0 | The universal/functorial module-localization interface is direct. |
FC01-C15-U075 |
exact match | mathlib |
LocalizedModule.equivTensorProduct |
pinned Mathlib v4.32.0 | Localization of a module is directly identified with extension of scalars by the localized ring. |
FC01-C15-U076 |
broad match | mathlib |
IsLocalization.map_inf; IsLocalization.map_radical; LocalizedModule.equivTensorProduct |
pinned Mathlib v4.32.0 | Localization compatibility with ideal/module operations is formalized across the localization APIs; the source collects sums, intersections, quotients, radicals, primary ideals, and modules in one list. |
FC01-C15-U077 |
exact match | mathlib |
Submodule.IsMinimalPrimaryDecomposition.comap_localized₀_eq_iInf |
pinned Mathlib v4.32.0 | The localization formula for a minimal primary decomposition is a direct Lasker declaration. |
FC01-C15-U078 |
exact match | mathlib |
Submodule.IsMinimalPrimaryDecomposition.comap_localized₀_eq_iInf; Submodule.IsMinimalPrimaryDecomposition.image_radical_eq_associatedPrimes |
pinned Mathlib v4.32.0 | The localization reconstruction isolates minimal associated-prime components and supplies the source uniqueness statement for isolated components. |
FC01-C15-U079 |
exact match | mathlib |
IsLocalRing; IsLocalRing.maximalIdeal; IsLocalRing.maximal_ideal_unique |
pinned Mathlib v4.32.0 | Local rings and uniqueness of the maximal ideal are direct. |
FC01-C15-U080 |
broad match | mathlib |
IsLocalRing; IsLocalRing.maximalIdeal |
pinned Mathlib v4.32.0 | The standard nonunit/maximal-ideal/unit-of-one-plus-maximal-ideal characterizations are part of the local-ring API, though not a single declaration under the source numbering. |
FC01-C15-U081 |
broad match | mathlib |
Localization.AtPrime; IsLocalization.AtPrime.isLocalRing; IsLocalization.AtPrime.orderIsoOfPrime; Ideal.ResidueField |
pinned Mathlib v4.32.0 | The local-ring structure, residue field, and prime correspondence of R_P are direct; the source additionally packages several quotient/power consequences. |
FC01-C15-U082 |
broad match | mathlib |
LocalizedModule; IsLocalizedModule |
pinned Mathlib v4.32.0 | Module localization and the criterion that denominators outside the prime kill localized elements are direct consequences of the localized-module specification. |
FC01-C15-U083 |
broad match | mathlib |
Module.rank; FractionRing; IsLocalization.rank_eq |
pinned Mathlib v4.32.0 | Module rank and the equality with dimension after passage to the fraction field are formalized through the localization dimension API. |
FC01-C15-U084 |
exact match | mathlib |
Module.eq_zero_of_localization_maximal; eq_zero_of_localization |
pinned Mathlib v4.32.0 | Vanishing can be checked after localization at all maximal ideals, hence also all primes, exactly as in the source local criterion. |
FC01-C15-U085 |
partial match / wrong interface | mathlib |
IsLocalization.AtPrime.faithfulSMul; eq_zero_of_localization |
pinned Mathlib v4.32.0 | The local-global injectivity machinery is present, but no searched declaration states the source literal intersection identity R = ∩ R_P inside the fraction field. |
FC01-C15-U086 |
broad match | mathlib |
IsIntegrallyClosed.of_localization; IsIntegrallyClosed.of_localization_maximal |
pinned Mathlib v4.32.0 | Mathlib proves the nontrivial local-to-global direction for integral closedness at prime or maximal localizations; preservation under localization supplies the converse. |
FC01-C15-U087 |
broad match | mathlib |
Ideal.LiesOver; Ideal.GoingUp |
pinned Mathlib v4.32.0 | The source corollary is a direct lying-over/going-up consequence in the integral-extension API. |
FC01-C15-U088 |
partial match / wrong interface | mathlib |
Localization.AtPrime; FractionRing |
pinned Mathlib v4.32.0 | The algebra of fractions regular at a prime is modeled by localization, but there is no searched elementary affine-variety rational-function object with the source pointwise notation. |
FC01-C15-U089 |
partial match / wrong interface | mathlib |
Localization.AtPrime; Ideal.ResidueField |
pinned Mathlib v4.32.0 | The coordinate-ring localization and residue-field algebra are direct, but the source bundles them as the local ring of an elementary affine variety at a point. |
FC01-C15-U090 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search | No searched theorem on the elementary affine-variety interface states that rational functions regular at every point are exactly global coordinate-ring functions. |
FC01-C15-U091 |
exact match | mathlib |
IsLocalHom |
pinned Mathlib v4.32.0 | Local homomorphisms are direct. |
FC01-C15-U092 |
partial match / wrong interface | mathlib |
Derivation; KaehlerDifferential |
pinned Mathlib v4.32.0 | Derivations and Kähler differentials provide the intrinsic tangent/cotangent algebra, but no searched theorem packages the source Jacobian-defined tangent space of an elementary affine variety. |
FC01-C15-U093 |
broad match | mathlib |
CotangentSpace; IsRegularLocalRing.iff_finrank_cotangentSpace |
pinned Mathlib v4.32.0 | The cotangent space is the maximal-ideal quotient by its square, and the regular-local criterion computes its dimension; the source additionally names the dual tangent space explicitly. |
FC01-C15-U094 |
partial match / wrong interface | mathlib |
isRegularLocalRing_iff; IsRegularLocalRing.iff_finrank_cotangentSpace; IsRegularRing |
pinned Mathlib v4.32.0 | The regular-local/cotangent-dimension equivalence is direct, but the source also identifies it with elementary affine-variety nonsingularity and a Jacobian rank criterion, which is not the same bundled interface. |
FC01-C15-U095 |
partial match / wrong interface | mathlib |
AlgebraicGeometry.Scheme.Hom.normalization; AlgebraicGeometry.Scheme.Hom.fromNormalization |
pinned Mathlib v4.32.0 | Mathlib constructs relative scheme normalization with an integral map and universal property; the source theorem is the more specialized finite nonsingular normalization of an irreducible affine curve. |
FC01-C15-U096 |
exact match | mathlib |
PrimeSpectrum; MaximalSpectrum |
pinned Mathlib v4.32.0 | Prime and maximal spectra are direct types. |
FC01-C15-U097 |
broad match | mathlib |
Ideal.Quotient.mk; PrimeSpectrum.asIdeal |
pinned Mathlib v4.32.0 | A prime-spectrum point is an ideal and reduction modulo that ideal is the canonical quotient map; the source packages this as the function f(P). |
FC01-C15-U098 |
exact match | mathlib |
PrimeSpectrum.zeroLocus; PrimeSpectrum.vanishingIdeal; PrimeSpectrum.zeroLocus_vanishingIdeal_eq_closure |
pinned Mathlib v4.32.0 | The Z/I Galois connection and closure identities on Spec are direct. |
FC01-C15-U099 |
exact match | mathlib |
PrimeSpectrum.zariskiTopology; PrimeSpectrum.closure_singleton; PrimeSpectrum.isClosed_singleton_iff_isMaximal |
pinned Mathlib v4.32.0 | The Zariski topology, closure of a point, and closed-point/maximal-ideal criterion are direct. |
FC01-C15-U100 |
exact match | mathlib |
PrimeSpectrum.isClosed_singleton_iff_isMaximal; PrimeSpectrum.isIrreducible_zeroLocus_iff |
pinned Mathlib v4.32.0 | Closed points correspond to maximals and irreducible closed zero loci correspond to prime radicals. |
FC01-C15-U101 |
exact match | mathlib |
PrimeSpectrum.zeroLocus_vanishingIdeal_eq_closure; PrimeSpectrum.isIrreducible_zeroLocus_iff; PrimeSpectrum.isClosed_singleton_iff_isMaximal |
pinned Mathlib v4.32.0 | The closed/radical, closed-point/maximal, and irreducible/prime correspondences are all direct on Spec. |
FC01-C15-U102 |
broad match | mathlib |
PrimeSpectrum; PrimeSpectrum.closure_singleton; PrimeSpectrum.isClosed_singleton_iff_isMaximal |
pinned Mathlib v4.32.0 | The generic-point and closed-point behavior needed for Spec Z follows directly from the spectrum topology plus the prime/maximal structure of Z, but no dedicated source-style worked example is packaged. |
FC01-C15-U103 |
partial match / wrong interface | mathlib |
MaximalSpectrum; MvPolynomial.isMaximal_iff_eq_vanishingIdeal_singleton |
pinned Mathlib v4.32.0 | Maximal spectra and the Nullstellensatz recover closed points over an algebraically closed field, but the source identifies an elementary affine set with the maximal spectrum of its coordinate algebra. |
FC01-C15-U104 |
partial match / wrong interface | mathlib |
AlgebraicGeometry.AffineScheme.equivCommRingCat; MvPolynomial.vanishingIdeal_zeroLocus_eq_radical |
pinned Mathlib v4.32.0 | Affine schemes are anti-equivalent to all commutative rings and Nullstellensatz controls radical ideals, but the source category is reduced finite-type algebras versus elementary affine algebraic sets; that restricted equivalence is not separately formalized. |
FC01-C15-U105 |
exact match | mathlib |
PrimeSpectrum.comap; PrimeSpectrum.continuous_comap |
pinned Mathlib v4.32.0 | A ring homomorphism induces the contravariant continuous map on prime spectra directly. |
FC01-C15-U106 |
exact match | mathlib |
PrimeSpectrum.basicOpen |
pinned Mathlib v4.32.0 | Principal/basic opens are direct. |
FC01-C15-U107 |
broad match | mathlib |
PrimeSpectrum.basicOpen_mul; PrimeSpectrum.basicOpen_eq_bot_iff; PrimeSpectrum.isTopologicalBasis_basic_opens; PrimeSpectrum.isCompact_basicOpen; PrimeSpectrum.localization_away_comap_range |
pinned Mathlib v4.32.0 | The principal-open identities, basis theorem, quasi-compactness, and localization comparison are all direct, distributed across the spectrum topology API. |
FC01-C15-U108 |
exact match | mathlib |
AlgebraicGeometry.Spec.structureSheaf |
pinned Mathlib v4.32.0 | The structure sheaf on Spec is constructed from the localization presheaf, implementing local fractions on opens. |
FC01-C15-U109 |
exact match | mathlib |
AlgebraicGeometry.Spec.structureSheaf; AlgebraicGeometry.Spec.globalSectionsIso |
pinned Mathlib v4.32.0 | The structure sheaf and its global-sections identification are direct. |
FC01-C15-U110 |
broad match | mathlib |
AlgebraicGeometry.Spec.globalSectionsIso; PrimeSpectrum.localization_away_comap_range |
pinned Mathlib v4.32.0 | Global sections of Spec R recover R, and the basic-open localization comparison underlies the O(D(f)) ≅ R_f statement; the two facts are exposed in different layers. |
FC01-C15-U111 |
broad match | mathlib |
Presheaf.stalk; AlgebraicGeometry.Spec.stalkIso |
pinned Mathlib v4.32.0 | Stalks are defined by the standard colimit construction and the spectrum stalk is identified with the corresponding localization. |
FC01-C15-U112 |
exact match | mathlib |
AlgebraicGeometry.Spec.stalkIso; Localization.AtPrime; IsLocalization.AtPrime.isLocalRing |
pinned Mathlib v4.32.0 | The stalk at a prime is directly isomorphic to the localization R_P, which is local. |
FC01-C15-U113 |
partial match / wrong interface | mathlib |
IsRegularRing; IsRegularLocalRing; Localization.AtPrime |
pinned Mathlib v4.32.0 | Regularity of a ring is defined by regular-local localizations at all primes, but the source calls the corresponding point smooth/nonsingular; that geometric smooth-point equivalence is not the same exported interface. |
FC01-C15-U114 |
exact match | mathlib |
AlgebraicGeometry.Scheme.Spec; AlgebraicGeometry.Spec.structureSheaf |
pinned Mathlib v4.32.0 | The affine scheme attached to a ring is exactly Spec equipped with its structure sheaf. |
FC01-C15-U115 |
exact match | mathlib |
AlgebraicGeometry.Scheme.Hom.continuous; AlgebraicGeometry.Scheme.Hom.stalkMap |
pinned Mathlib v4.32.0 | Scheme morphisms carry the underlying continuous map and induced local maps on stalks, matching the source locally-ringed-space data. |
FC01-C15-U116 |
exact match | mathlib |
AlgebraicGeometry.Spec.homEquiv; AlgebraicGeometry.AffineScheme.equivCommRingCat |
pinned Mathlib v4.32.0 | Morphisms between affine schemes are contravariantly equivalent to ring homomorphisms; the affine-scheme/commutative-ring anti-equivalence is direct. |
C16 — Artinian Rings, Discrete Valuation Rings, and Dedekind Domains
Project search found an owned fractional-ideal/class-group wrapper in LeanCategories.Algebra.FractionalIdeals, while the main algebraic coverage is in Mathlib’s Artinian/Jacobson, DVR, fractional-ideal, class-group, Dedekind-domain, and module files. The pinned audit uses Mathlib v4.32.0 at 81a5d257c8e410db227a6665ed08f64fea08e997; current upstream was rechecked at 7974e751bece493b6ff508039423ca9fa2452fa8.
The last three module-structure units require a strict interface distinction. Mathlib proves the prime-power decomposition of finitely generated torsion modules over a Dedekind domain and has enough general flat/projective machinery to derive the finitely-generated torsion-free/projective equivalence, but the searched library does not expose the full Steinitz free-plus-ideal classification or its direct-sum law.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C16-U001 |
exact match | mathlib |
ringKrullDim; ringKrullDim_eq_zero_of_field; IsPrincipalIdealRing.ringKrullDim_eq_one |
pinned Mathlib v4.32.0 | Krull dimension is the height of prime-ideal chains; the field and nonfield-PID dimensions are direct library results. |
FC01-C16-U002 |
exact match | mathlib |
Ring.jacobson |
pinned Mathlib v4.32.0 | The Jacobson radical is a direct ideal construction. |
FC01-C16-U003 |
broad match | mathlib |
Ideal.radical_le_jacobson; Ideal.mem_jacobson_bot; Submodule.FG.eq_bot_of_le_jacobson_smul |
pinned Mathlib v4.32.0 | The nilradical inclusion, unit characterization, and Nakayama lemma are direct; the source packages them as one proposition. |
FC01-C16-U004 |
exact match | mathlib |
IsArtinian; IsArtinianRing; isArtinian_iff; isArtinianRing_iff |
pinned Mathlib v4.32.0 | Artinian modules and rings are direct descending-chain/well-founded notions; quotients inherit the property. |
FC01-C16-U005 |
exact match | mathlib |
set_has_minimal_iff_artinian |
pinned Mathlib v4.32.0 | The minimal-condition characterization is direct. |
FC01-C16-U006 |
broad match | mathlib |
IsArtinianRing.setOf_isMaximal_finite; IsArtinianRing.quotNilradicalEquivPi; IsArtinianRing.isPrime_iff_isMaximal; IsArtinianRing.isNilpotent_jacobson_bot; IsArtinianRing.jacobson_eq_radical; IsArtinianRing.tfae |
pinned Mathlib v4.32.0 | Mathlib formalizes the finite spectrum, semisimple quotient, prime=maximal, nilpotent radical, and Artinian-to-Noetherian structure; the finite-product-of-local-rings statement is distributed across these results. |
FC01-C16-U007 |
exact match | mathlib |
isArtinianRing_iff_isNoetherianRing_krullDimLE_zero |
pinned Mathlib v4.32.0 | This is exactly the Noetherian plus Krull-dimension-zero characterization. |
FC01-C16-U008 |
broad match | mathlib |
Valuation; IsDiscreteValuationRing; IsDiscreteValuationRing.addVal |
pinned Mathlib v4.32.0 | Valuations and DVRs are direct, but Mathlib defines a DVR algebraically as a nonfield local PID and derives its canonical discrete additive valuation. |
FC01-C16-U009 |
exact match | mathlib |
IsDiscreteValuationRing.eq_unit_mul_pow_irreducible; IsDiscreteValuationRing.ideal_eq_span_pow_irreducible |
pinned Mathlib v4.32.0 | Every nonzero element is a unit times a power of a uniformizer/irreducible and every nonzero ideal is the corresponding power. |
FC01-C16-U010 |
broad match | mathlib |
Irreducible; IsDiscreteValuationRing.eq_unit_mul_pow_irreducible |
pinned Mathlib v4.32.0 | Mathlib deliberately uses irreducible elements as uniformizers instead of introducing a separate uniformizer type. |
FC01-C16-U011 |
broad match | mathlib |
IsDiscreteValuationRing.ringKrullDim_eq_one; IsDiscreteValuationRing.ideal_eq_span_pow_irreducible; IsDiscreteValuationRing.TFAE |
pinned Mathlib v4.32.0 | Integrally closedness/valuation-ring behavior, the two-point prime spectrum, dimension one, and power-of-maximal-ideal structure follow from the DVR TFAE and basic API. |
FC01-C16-U012 |
exact match | mathlib |
IsDiscreteValuationRing.TFAE; tfae_of_isNoetherianRing_of_isLocalRing_of_isDomain |
pinned Mathlib v4.32.0 | The pinned TFAE contains the local PID, valuation-ring, Dedekind/integrally-closed, principal maximal ideal, cotangent-dimension, and power-of-maximal-ideal characterizations. |
FC01-C16-U013 |
broad match | mathlib |
IsLocalization.AtPrime.isDiscreteValuationRing_of_dedekind_domain; IsDiscreteValuationRing.TFAE |
pinned Mathlib v4.32.0 | Localization at a height-one prime of a Dedekind domain is directly a DVR; the source theorem has the more local hypothesis of a minimal nonzero prime in an arbitrary Noetherian integrally closed domain. |
FC01-C16-U014 |
exact match | mathlib |
PadicInt.instIsDiscreteValuationRing; PadicInt.maximalIdeal_eq_span_p; PadicInt.ideal_eq_span_pow_p; PadicInt.isFractionRing; PadicInt.unitCoeff_spec |
pinned Mathlib v4.32.0 | The p-adic integers are a DVR with uniformizer p, fraction field the p-adic numbers, and explicit unit-times-power decomposition. |
FC01-C16-U015 |
broad match | mathlib |
Valuation.Completion |
pinned + current Mathlib (7974e751…) |
Mathlib constructs completion of a field with respect to a valuation and equips it with the extended valued-field structure; the source states the discrete-valuation extension in classical notation. |
FC01-C16-U016 |
exact match | mathlib |
FractionalIdeal; IsFractional; FractionalIdeal.isNoetherian_iff |
pinned Mathlib v4.32.0 | Fractional ideals and the Noetherian/finite-generation criterion are direct. |
FC01-C16-U017 |
exact match | mathlib |
FractionalIdeal.spanSingleton |
pinned Mathlib v4.32.0 | Principal fractional ideals are direct. |
FC01-C16-U018 |
exact match | project-existing |
LeanCategories.Algebra.FractionalIdeals.InvertibleFractionalIdeal |
project source at current HEAD | The project already exposes invertible fractional ideals explicitly as units of the fractional-ideal monoid. |
FC01-C16-U019 |
exact match | mathlib |
FractionalIdeal.inv_of_ne_zero; FractionalIdeal.mem_inv_iff; FractionalIdeal.mul_inv_cancel_iff_isUnit; FractionalIdeal.fg_of_isUnit |
pinned Mathlib v4.32.0 | Inverse fractional ideals, the colon-style membership formula, invertibility criterion, finite generation, and multiplicative unit structure are direct. |
FC01-C16-U020 |
exact match | project-existing |
LeanCategories.Algebra.FractionalIdeals.idealClass; LeanCategories.Algebra.FractionalIdeals.idealClass_eq_one_iff |
project source at current HEAD | The project owns the map from invertible fractional ideals to ClassGroup and the trivial-class iff principal theorem; Mathlib supplies the underlying class group. |
FC01-C16-U021 |
partial match / wrong interface | mathlib |
Submodule.projective_of_isUnit; Module.Invertible.instProjective |
pinned + current Mathlib (7974e751…) |
Invertible fractional ideals are projective directly. The converse for an arbitrary nonzero fractional ideal is not exposed by the searched pinned/current API under the source hypotheses. |
FC01-C16-U022 |
broad match | mathlib |
isDedekindDomain_iff_isDedekindDomainInv; IsDiscreteValuationRing.TFAE |
pinned Mathlib v4.32.0 | Every nonzero fractional ideal is invertible exactly for Dedekind domains, and the local nonfield Dedekind condition is equivalent to DVR. |
FC01-C16-U023 |
partial match / wrong interface | mathlib |
IsDiscreteValuationRing.TFAE; IsRegularLocalRing |
pinned Mathlib v4.32.0 | DVR/regular-local dimension-one algebra is formalized, but no searched elementary affine-curve point interface identifies nonsingularity at a point with that local-ring condition. |
FC01-C16-U024 |
partial match / wrong interface | mathlib |
IsDiscreteValuationRing.addVal; Localization.AtPrime |
pinned Mathlib v4.32.0 | The valuation/order algebra exists on the local fraction field, but the source packages it as the zero/pole order of a rational function on an affine curve point. |
FC01-C16-U025 |
partial match / wrong interface | mathlib |
IsIntegrallyClosed; IsRegularRing; AlgebraicGeometry.Scheme.Hom.normalization |
pinned + current Mathlib (7974e751…) |
Integral closedness, regularity, and scheme normalization are formalized, but the searched interface does not give the source elementary affine-curve smooth iff integrally-closed-coordinate-ring theorem. |
FC01-C16-U026 |
exact match | mathlib |
IsDedekindDomain; isDedekindDomain_iff |
pinned Mathlib v4.32.0 | Dedekind domains are directly defined as Noetherian integrally closed domains of Krull dimension at most one. |
FC01-C16-U027 |
exact match | mathlib |
IsPrincipalIdealRing.isDedekindDomain; NumberField.RingOfIntegers.instIsDedekindDomain |
pinned + current Mathlib (7974e751…) |
PIDs are Dedekind and the ring of integers of a number field has a direct Dedekind-domain instance. |
FC01-C16-U028 |
broad match | mathlib |
IsDiscreteValuationRing.TFAE; isDedekindDomain_iff_isDedekindDomainInv; Ideal.finprod_heightOneSpectrum_factorization |
pinned Mathlib v4.32.0 | The local-DVR, invertible-fractional-ideal, projective/invertible-ideal infrastructure, and unique prime-ideal factorization characterizations are formalized across the Dedekind API. |
FC01-C16-U029 |
exact match | mathlib |
Ideal.finprod_heightOneSpectrum_factorization |
pinned Mathlib v4.32.0 | Unique prime-ideal factorization in a Dedekind domain is direct. |
FC01-C16-U030 |
exact match | mathlib |
Ideal.dvd_iff_le |
pinned Mathlib v4.32.0 | In the ideal factorization monoid, divisibility is exactly reverse inclusion. |
FC01-C16-U031 |
exact match | mathlib |
Ideal.multiplicity_sup |
pinned Mathlib v4.32.0 | The exponent of a prime in the sum/supremum of ideals is the minimum of the two exponents, giving the ideal gcd formula. |
FC01-C16-U032 |
broad match | mathlib |
Ideal.dvd_iff_le; Ideal.multiplicity_sup; Ideal.factorization |
pinned Mathlib v4.32.0 | Containment/divisibility and arithmetic of prime exponents are direct; the source collects the coordinatewise statements and coprimality criterion. |
FC01-C16-U033 |
exact match | mathlib |
IsDedekindDomain.quotientEquivPiFactors |
pinned Mathlib v4.32.0 | This is the Chinese remainder decomposition of a Dedekind quotient into its prime-power factors. |
FC01-C16-U034 |
broad match | mathlib |
IsDedekindDomain.exists_sup_span_eq; IsDedekindDomain.exists_eq_span_pair; ClassGroup.mk0_surjective |
pinned Mathlib v4.32.0 | Mathlib directly proves two-generation and the class-group representative machinery from which the coprime/principal auxiliary-ideal statements follow; the source groups several corollaries together. |
FC01-C16-U035 |
exact match | mathlib |
IsPrincipalIdealRing.of_isDedekindDomain_of_uniqueFactorizationMonoid; ClassGroup.card_classGroup_eq_one_iff |
pinned Mathlib v4.32.0 | For a Dedekind domain, UFD and trivial class group/class number one characterize being a PID. |
FC01-C16-U036 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | No searched pinned/current Mathlib or external Lean interface states the Steinitz classification of fractional ideals up to module isomorphism together with the direct-sum multiplication law. |
FC01-C16-U037 |
partial match / wrong interface | mathlib |
Submodule.exists_isInternal_prime_power_torsion |
pinned + current Mathlib (7974e751…) |
Mathlib proves the prime-power internal decomposition of the finitely generated torsion part, but the source full structure theorem R^(n-1) ⊠ I ⊕ torsion and its uniqueness data were not found. |
FC01-C16-U038 |
broad match | mathlib |
IsDedekindDomain.flat_iff_torsion_eq_bot; Module.finitePresentation_of_finite; Module.Flat.projective_of_finitePresentation; Module.Flat.of_projective; Module.Flat.isTorsionFree |
pinned + current Mathlib (7974e751…) |
For finitely generated modules, Dedekind torsion-free implies flat, Noetherianity upgrades finite to finitely presented, and finitely presented flat implies projective; the converse follows because projective modules are flat and hence torsion-free. |
C17 — Introduction to Homological Algebra and Group Cohomology
Project search found useful surrounding infrastructure but no project-owned replacement for the chapter’s main Ext/Tor/group-cohomology interfaces. The pinned audit uses Mathlib v4.32.0 at 81a5d257c8e410db227a6665ed08f64fea08e997; current upstream was rechecked at 7974e751bece493b6ff508039423ca9fa2452fa8.
Mathlib’s coverage is sharply nonuniform. Complexes, projective/injective resolutions, Ext, ordinary group cohomology, the bar resolution, low-degree H¹/H² cocycle interfaces, Shapiro, finite cyclic cohomology, Hilbert 90, and Schur–Zassenhaus have substantial first-class APIs. Tor is present as a derived functor but its own documentation still lacks the comparison between deriving tensor in the two variables and the flatness/Tor characterizations used in the source. Continuous cohomology has a first-class topological-representation construction and functoriality, while its current TODOs still include comparison with ordinary cohomology for discrete groups and a general long exact sequence. Finally, Mathlib’s group-extension file explicitly leaves the H¹-complements and H²-extension classifications unfinished, and its Brauer-group file currently defines only the quotient setoid/type while listing the tensor-product group law and field functoriality as TODOs. Fresh external search does, however, close much of the field-theoretic tail: Whysoserioushah/BrauerGroup at immutable revision fbb4a349e85f66c02b2ccccd80516eec0d5d1818 (Apache-2.0; Lean v4.34.0-rc2, Mathlib be629e7a…) constructs crossed products, develops splitting and Wedderburn theory, proves the Brauer group law and scalar-extension functoriality, defines relative Brauer groups, and proves the finite-Galois equivalence Br(K/F) ≃ H²(G,Kˣ). It is therefore recorded as a reference-port, not a package import.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C17-U001 |
exact match | mathlib |
HomologicalComplex; HomologicalComplex.homology |
pinned Mathlib v4.32.0 | Chain/cochain complexes and their homology are direct categorical objects with the same kernel/image construction. |
FC01-C17-U002 |
exact match | mathlib |
HomologicalComplex.Hom |
pinned Mathlib v4.32.0 | A morphism of complexes is exactly a degreewise family commuting with differentials. |
FC01-C17-U003 |
exact match | mathlib |
HomologicalComplex.homologyMap |
pinned Mathlib v4.32.0 | A chain/cochain map induces the corresponding map on homology. |
FC01-C17-U004 |
exact match | mathlib |
CategoryTheory.ShortComplex.ShortExact |
pinned Mathlib v4.32.0 | A short exact sequence in the abelian category of complexes is the categorical form of degreewise short exactness. |
FC01-C17-U005 |
exact match | mathlib |
CategoryTheory.ShortComplex.ShortExact.δ; CategoryTheory.ShortComplex.ShortExact.homology_exact₁; CategoryTheory.ShortComplex.ShortExact.homology_exact₂; CategoryTheory.ShortComplex.ShortExact.homology_exact₃ |
pinned Mathlib v4.32.0 | The homology-sequence API gives the connecting maps and the three repeating exactness statements forming the long exact sequence. |
FC01-C17-U006 |
exact match | mathlib |
CategoryTheory.ShortComplex.ShortExact.δ |
pinned Mathlib v4.32.0 | The connecting homomorphism in the long exact homology/cohomology sequence is a direct construction. |
FC01-C17-U007 |
exact match | mathlib |
CategoryTheory.ProjectiveResolution; CategoryTheory.projectiveResolution |
pinned Mathlib v4.32.0 | Projective resolutions and their existence in categories with enough projectives are direct; ModuleCat has enough projectives. |
FC01-C17-U008 |
exact match | mathlib |
CategoryTheory.Abelian.Ext; CategoryTheory.ProjectiveResolution.extEquivCohomologyClass |
pinned + current Mathlib (7974e751…) |
Ext is defined intrinsically in the derived category and is identified with cohomology of Hom from a projective resolution. |
FC01-C17-U009 |
exact match | mathlib |
CategoryTheory.Abelian.Ext.homEquiv₀ |
pinned + current Mathlib (7974e751…) |
Degree-zero Ext is directly identified with Hom. |
FC01-C17-U010 |
exact match | mathlib |
CategoryTheory.ProjectiveResolution.lift; CategoryTheory.ProjectiveResolution.lift_commutes |
pinned Mathlib v4.32.0 | Maps lift to projective resolutions and the lift commutes with the augmentations. |
FC01-C17-U011 |
broad match | mathlib |
CategoryTheory.ProjectiveResolution.lift; CategoryTheory.ProjectiveResolution.liftHomotopy; CategoryTheory.Abelian.Ext.precomp |
pinned + current Mathlib (7974e751…) |
Lift existence, homotopy uniqueness, and contravariant Ext functoriality supply the source statement, but are packaged separately. |
FC01-C17-U012 |
exact match | mathlib |
CategoryTheory.ProjectiveResolution.homotopyEquiv; CategoryTheory.ProjectiveResolution.extEquivCohomologyClass |
pinned + current Mathlib (7974e751…) |
Ext is intrinsic and the projective-resolution computation is canonically independent of the chosen resolution. |
FC01-C17-U013 |
broad match | mathlib |
CategoryTheory.ProjectiveResolution; CategoryTheory.ShortComplex.ShortExact |
pinned + current Mathlib (7974e751…) |
Mathlib has the projective-resolution and short-exact infrastructure used by the horseshoe/simultaneous-resolution argument, but the source’s displayed degreewise direct-sum resolution is not a single matching exported declaration. |
FC01-C17-U014 |
exact match | mathlib |
CategoryTheory.Abelian.Ext.contravariantSequence; CategoryTheory.Abelian.Ext.contravariantSequence_exact |
pinned + current Mathlib (7974e751…) |
The contravariant long exact Ext sequence attached to a short exact sequence is directly formalized. |
FC01-C17-U015 |
exact match | mathlib |
CategoryTheory.injective_iff_subsingleton_ext_one; CategoryTheory.HasInjectiveDimensionLT.subsingleton |
pinned + current Mathlib (7974e751…) |
Injectivity is characterized by vanishing Ext¹, and finite injective dimension gives the higher-degree vanishing package. |
FC01-C17-U016 |
exact match | mathlib |
CategoryTheory.Abelian.Ext |
pinned + current Mathlib (7974e751…) |
Ext is implemented as the derived Hom bifunctor, matching the right-derived-functor convention up to the library’s intrinsic derived-category presentation. |
FC01-C17-U017 |
exact match | mathlib |
CategoryTheory.Abelian.Ext.covariantSequence; CategoryTheory.Abelian.Ext.covariantSequence_exact |
pinned + current Mathlib (7974e751…) |
The covariant long exact Ext sequence in the second variable is directly formalized. |
FC01-C17-U018 |
exact match | mathlib |
CategoryTheory.projective_iff_subsingleton_ext_one; CategoryTheory.HasProjectiveDimensionLT.subsingleton |
pinned + current Mathlib (7974e751…) |
Projectivity is characterized by vanishing Ext¹, with higher Ext vanishing supplied by projective dimension. |
FC01-C17-U019 |
exact match | mathlib |
CategoryTheory.ProjectiveResolution.extEquivCohomologyClass; CategoryTheory.InjectiveResolution.extEquivCohomologyClass |
pinned + current Mathlib (7974e751…) |
The same intrinsic Ext group is computed from projective resolutions of the first variable or injective resolutions of the second. |
FC01-C17-U020 |
partial match / wrong interface | mathlib |
CategoryTheory.ShortComplex.ShortExact.extClass; CategoryTheory.Abelian.Ext |
pinned + current Mathlib (7974e751…) |
A short exact sequence yields its Ext¹ class, but no searched theorem gives the source bijection between Ext¹ and equivalence classes of module extensions. |
FC01-C17-U021 |
broad match | mathlib |
CategoryTheory.Tor |
pinned + current Mathlib (7974e751…) |
Tor is directly defined as the left-derived tensor functor, though not by the source’s explicit quotient of a tensorized projective resolution. |
FC01-C17-U022 |
partial match / wrong interface | mathlib |
CategoryTheory.Tor |
pinned + current Mathlib (7974e751…) |
Degree-zero derived tensor is expected to recover tensor product, but no searched exported declaration packages the source Tor₀ ≅ tensor statement in the module interface. |
FC01-C17-U023 |
broad match | mathlib |
CategoryTheory.Tor |
pinned + current Mathlib (7974e751…) |
Functoriality and resolution independence are intrinsic to the derived-functor construction; the source packages them with the elementary projective-resolution definition. |
FC01-C17-U024 |
partial match / wrong interface | mathlib |
CategoryTheory.Tor |
pinned + current Mathlib (7974e751…) |
Generic derived-functor/homology-sequence machinery underlies a Tor long exact sequence, but no searched Tor-specific exported sequence matches the displayed module statement. |
FC01-C17-U025 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | No searched declaration characterizes flat modules by vanishing of Tor₁ or all positive Tor groups; the pinned flatness file explicitly leaves the Tor relationship as future work. |
FC01-C17-U026 |
partial match / wrong interface | mathlib |
CategoryTheory.Tor; CategoryTheory.Tor' |
pinned + current Mathlib (7974e751…) |
Mathlib derives tensor in either variable as Tor and Tor', but its Tor documentation explicitly says the natural isomorphism between them has not yet been proved. |
FC01-C17-U027 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | No searched Lean theorem identifies Tor₁(A,B) over the integers with the Tor of the torsion subgroups of both arguments. |
FC01-C17-U028 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | No searched theorem states the source abelian-group criterion torsion-free A iff Tor₁(A,B)=0 for all B, despite separate flat/torsion-free infrastructure. |
FC01-C17-U029 |
broad match | mathlib |
Rep; Representation; Representation.asAlgebraHom_def |
pinned Mathlib v4.32.0 | A G-module is represented as a linear group action; Mathlib intentionally uses Rep rather than installing a module over the group algebra, while exposing the corresponding algebra-hom construction. |
FC01-C17-U030 |
exact match | mathlib |
Representation.invariants |
pinned Mathlib v4.32.0 | The fixed submodule of a representation is the direct invariant-submodule construction. |
FC01-C17-U031 |
broad match | mathlib |
groupCohomology.H0Iso; Representation.invariants |
pinned Mathlib v4.32.0 | Mathlib identifies H⁰ with invariants; the textbook’s separate Hom_{ZG}(Z,A) presentation is absorbed into the derived/representation interface. |
FC01-C17-U032 |
exact match | mathlib |
Rep.standardResolution; Rep.barResolution |
pinned Mathlib v4.32.0 | Both standard and bar projective resolutions of the trivial representation are explicit library constructions. |
FC01-C17-U033 |
exact match | mathlib |
groupCohomology.inhomogeneousCochains |
pinned Mathlib v4.32.0 | The nth inhomogeneous cochain object is exactly the function module (Fin n → G) → A. |
FC01-C17-U034 |
exact match | mathlib |
groupCohomology.inhomogeneousCochains.d |
pinned Mathlib v4.32.0 | The inhomogeneous differential is defined by the same alternating group-cohomology formula. |
FC01-C17-U035 |
exact match | mathlib |
groupCohomology.cocycles; groupCohomology.cocycles₁; groupCohomology.cocycles₂; groupCohomology.coboundaries₁; groupCohomology.coboundaries₂ |
pinned Mathlib v4.32.0 | Cocycles and low-degree coboundaries are direct kernel/image objects with specialized degree-one and degree-two interfaces. |
FC01-C17-U036 |
exact match | mathlib |
groupCohomology; groupCohomology.groupCohomologyIsoExt; groupCohomology.H0Iso |
pinned Mathlib v4.32.0 | Group cohomology is the homology of inhomogeneous cochains, is identified with Ext of the trivial representation, and degree zero is invariants. |
FC01-C17-U037 |
exact match | mathlib |
Rep.FiniteCyclicGroup.groupCohomologyIso₀; Rep.FiniteCyclicGroup.groupCohomologyIsoOdd; Rep.FiniteCyclicGroup.groupCohomologyIsoEven |
pinned Mathlib v4.32.0 | The cohomology of a finite cyclic group is computed explicitly in degree zero, odd, and even positive degrees. |
FC01-C17-U038 |
broad match | mathlib |
groupCohomology.cocycles; groupCohomology |
pinned Mathlib v4.32.0 | If scalar multiplication by m vanishes on the coefficient representation, the induced subquotients inherit that annihilation; no dedicated theorem bundles all three source assertions. |
FC01-C17-U039 |
exact match | mathlib |
groupCohomology.δ; groupCohomology.map_cochainsFunctor_shortExact; groupCohomology.mapShortComplex₁_exact; groupCohomology.mapShortComplex₂_exact; groupCohomology.mapShortComplex₃_exact |
pinned Mathlib v4.32.0 | A short exact sequence of representations induces the standard long exact group-cohomology sequence with connecting morphisms. |
FC01-C17-U040 |
broad match | mathlib |
groupCohomology |
pinned Mathlib v4.32.0 | Cohomological triviality is expressible as vanishing of all positive group-cohomology objects, but no dedicated source-style predicate was found. |
FC01-C17-U041 |
broad match | mathlib |
CategoryTheory.ShortComplex.ShortExact.δIso; groupCohomology.δ |
pinned Mathlib v4.32.0 | Dimension shifting follows from the long exact sequence when the middle cohomology groups vanish; the general connecting-map isomorphism is direct, but the source corollary is not separately named. |
FC01-C17-U042 |
exact match | mathlib |
Rep.coind; Rep.coind' |
pinned Mathlib v4.32.0 | The source’s Hom_{ZH}(ZG,A) construction is the coinduced representation (despite its textbook naming as induced). |
FC01-C17-U043 |
exact match | mathlib |
groupCohomology.coindIso |
pinned Mathlib v4.32.0 | Shapiro’s lemma for coinduced representations is a direct isomorphism on group cohomology. |
FC01-C17-U044 |
broad match | mathlib |
groupCohomology.coindIso |
pinned Mathlib v4.32.0 | Shapiro reduces cohomology of coinduction from the trivial subgroup to cohomology of the trivial group, giving positive-degree vanishing; the corollary is not separately packaged. |
FC01-C17-U045 |
broad match | mathlib |
groupCohomology.coindIso; CategoryTheory.ShortComplex.ShortExact.δIso |
pinned Mathlib v4.32.0 | The textbook dimension-shift through the coinduced quotient is assembled from Shapiro vanishing and the connecting isomorphism rather than exposed as one theorem. |
FC01-C17-U046 |
exact match | mathlib |
groupCohomology.cochainsMap; groupCohomology.map |
pinned Mathlib v4.32.0 | Compatible group and coefficient maps induce cochain maps and the resulting contravariant maps on cohomology. |
FC01-C17-U047 |
exact match | mathlib |
groupCohomology.resNatTrans |
pinned Mathlib v4.32.0 | Restriction in group cohomology is a direct natural transformation. |
FC01-C17-U048 |
exact match | mathlib |
groupCohomology.infNatTrans; groupCohomology.H1InfRes; groupCohomology.H1InfRes_exact |
pinned Mathlib v4.32.0 | Inflation is direct, with a specialized exact inflation-restriction sequence in degree one. |
FC01-C17-U049 |
partial match / wrong interface | mathlib |
MonoidHom.transfer; groupHomology.coresNatTrans |
pinned + current Mathlib (7974e751…) |
Mathlib has ordinary group transfer and homological corestriction, but no searched cohomological corestriction map of the source type. |
FC01-C17-U050 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | No searched cohomological corestriction theorem proves Cor ∘ Res = [G:H]; the available coresNatTrans is for group homology, not cohomology. |
FC01-C17-U051 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | No searched theorem states that the order of a finite group annihilates every positive-degree group-cohomology group. |
FC01-C17-U052 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | The source torsion corollary depends on finite-group annihilation; no matching exported group-cohomology theorem was found. |
FC01-C17-U053 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | No searched theorem gives the coprime group-order/coefficient-exponent vanishing criterion in all positive degrees. |
FC01-C17-U054 |
partial match / wrong interface | mathlib |
TopRep; TopRep.coind₁ |
pinned + current Mathlib (7974e751…) |
Mathlib has continuous topological representations, but no searched declaration packages the textbook discrete-profinite-module/open-stabilizer equivalences. |
FC01-C17-U055 |
partial match / wrong interface | mathlib |
continuousCohomology; TopRep.homogeneousCochains; ContinuousCohomology.map; ContinuousCohomology.zeroIso |
pinned + current Mathlib (7974e751…) |
Continuous cohomology and functoriality are implemented for topological representations, but current Mathlib explicitly still lacks the comparison with ordinary cohomology for discrete groups and a general long exact sequence. |
FC01-C17-U056 |
exact match | mathlib |
groupCohomology.H1; groupCohomology.H1Iso; groupCohomology.cocycles₁; groupCohomology.coboundaries₁ |
pinned Mathlib v4.32.0 | The low-degree API presents H¹ as 1-cocycles modulo 1-coboundaries, exactly the crossed-homomorphism quotient. |
FC01-C17-U057 |
exact match | mathlib |
groupCohomology.H1ofAutOnUnitsUnique; groupCohomology.isMulCoboundary₁_of_isMulCocycle₁_of_aut_to_units |
pinned Mathlib v4.32.0 | Noether’s form of Hilbert 90 is directly formalized as triviality of H¹ on multiplicative units. |
FC01-C17-U058 |
partial match / wrong interface | mathlib |
groupCohomology.H1IsoOfIsTrivial; ContinuousCohomology.zeroIso |
pinned + current Mathlib (7974e751…) |
The ordinary trivial-action identification H¹ ≅ Hom is direct. Continuous cohomology currently has only degree-zero specialized API, so the profinite/continuous parallel is not yet exposed. |
FC01-C17-U059 |
partial match / wrong interface | mathlib |
groupCohomology.H1ofAutOnUnitsUnique; isCyclic_tfae |
pinned + current Mathlib (7974e751…) |
Hilbert 90 and Kummer extension theory are formalized, but no searched theorem packages the source Kummer exact sequence/power-class reformulation as a cohomological statement. |
FC01-C17-U060 |
partial match / wrong interface | mathlib |
MonoidHom.transfer; groupHomology.coresNatTrans |
pinned + current Mathlib (7974e751…) |
Ordinary transfer and homological corestriction exist, but the source comparison with cohomological corestriction cannot be stated using a missing cohomological Cor map. |
FC01-C17-U061 |
exact match | mathlib |
legendreSym |
pinned Mathlib v4.32.0 | The Legendre symbol is a direct arithmetic-function construction. |
FC01-C17-U062 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | No searched declaration bundles the stability automorphism group of a normal series with the source quotient/centralizer description. |
FC01-C17-U063 |
partial match / wrong interface | mathlib |
SemidirectProduct.toGroupExtension; GroupExtension.Splitting; groupCohomology.cocycles₁ |
pinned + current Mathlib (7974e751…) |
Semidirect extensions, splittings, and 1-cocycles exist, but Mathlib explicitly leaves the H¹/splitting-conjugacy correspondence for future work. |
FC01-C17-U064 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | The identification of H¹ classes with outer stability automorphisms of the semidirect product is not present in the searched group-extension/cohomology APIs. |
FC01-C17-U065 |
partial match / wrong interface | mathlib |
SemidirectProduct.toGroupExtension; GroupExtension.Splitting; GroupExtension.IsConj |
pinned + current Mathlib (7974e751…) |
Complements/splittings and their conjugacy relation are modeled, but the bijection from cocycles and H¹ conjugacy classes is explicitly listed as unfinished. |
FC01-C17-U066 |
partial match / wrong interface | mathlib |
GroupExtension.IsConj; groupCohomology.H1 |
pinned + current Mathlib (7974e751…) |
The two sides of the criterion are formalized separately, but their equivalence is exactly part of the unfinished H¹/splittings correspondence. |
FC01-C17-U067 |
broad match | mathlib |
Subgroup.exists_right_complement'_of_coprime; Subgroup.exists_left_complement'_of_coprime |
pinned + current Mathlib (7974e751…) |
Schur-Zassenhaus supplies existence of complements under the coprimality hypothesis; the source’s stronger conjugacy-of-all-complements conclusion was not found in the current exported theorem list. |
FC01-C17-U068 |
broad match | mathlib |
GroupExtension.Section; GroupExtension.surjInvRightHom |
pinned + current Mathlib (7974e751…) |
Sections of a group extension and a chosen section are direct; the textbook additionally normalizes the chosen set-theoretic section at the identity. |
FC01-C17-U069 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | No searched group-extension declaration defines the factor set attached to a section. |
FC01-C17-U070 |
partial match / wrong interface | mathlib |
groupCohomology.cocycles₂; groupCohomology.IsMulCocycle₂; GroupExtension |
pinned + current Mathlib (7974e751…) |
Normalized 2-cocycle infrastructure and group extensions exist, but the explicit cocycle-twisted group E_f construction is not present. |
FC01-C17-U071 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | Mathlib explicitly lists the bijection between group-extension equivalence classes and H² as TODO, including the split-zero correspondence. |
FC01-C17-U072 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | The all-extensions-split iff H² vanishes criterion depends on the still-unformalized H² classification. |
FC01-C17-U073 |
broad match | mathlib |
Subgroup.exists_right_complement'_of_coprime |
pinned + current Mathlib (7974e751…) |
The coprime finite extension splits by Schur-Zassenhaus directly, although not through the source’s H²-vanishing route. |
FC01-C17-U074 |
exact match | mathlib |
Subgroup.exists_right_complement'_of_coprime; Subgroup.exists_left_complement'_of_coprime |
pinned Mathlib v4.32.0 | This is the Schur-Zassenhaus complement-existence theorem. |
FC01-C17-U075 |
unmatched after search | unmatched |
— | project + pinned/current Mathlib + fresh external search (2026-09-05) | No searched Lean development computes the order-eight group extensions via H²(C₂×C₂, Z/2Z) as in the source example. |
FC01-C17-U076 |
exact match | reference-port |
CrossProductAlgebra; CrossProductAlgebra.incl; CrossProductAlgebra.of; CrossProductAlgebra.of_mul_of; CrossProductAlgebra.of_conj |
Whysoserioushah/BrauerGroup fbb4a349e85f66c02b2ccccd80516eec0d5d1818, Apache-2.0, Lean v4.34.0-rc2 / Mathlib be629e7a…; downstream-validated through 30a58f7 |
The external development constructs exactly the crossed-product algebra attached to a Galois 2-cocycle, with the coefficient-field inclusion, distinguished group basis units, and the source twisted multiplication/conjugation laws. |
FC01-C17-U077 |
exact match | reference-port |
CrossProductAlgebra.dim_eq_sq; CrossProductAlgebra.asCSA |
Whysoserioushah/BrauerGroup fbb4a349e85f66c02b2ccccd80516eec0d5d1818, Apache-2.0, Lean v4.34.0-rc2 / Mathlib be629e7a…; downstream-validated through 30a58f7 |
The crossed product has dimension [K:F]^2 and is bundled as a central simple F-algebra; the file proves centrality and simplicity before defining asCSA. |
FC01-C17-U078 |
partial match / wrong interface | reference-port |
RelativeBrGroup.fromSnd; RelativeBrGroup.fromSnd_wd; RelativeBrGroup.isoSnd |
Whysoserioushah/BrauerGroup fbb4a349e85f66c02b2ccccd80516eec0d5d1818, Apache-2.0, Lean v4.34.0-rc2 / Mathlib be629e7a…; downstream-validated through 30a58f7 |
The construction descends a cohomology class to a well-defined relative Brauer class and the final H² equivalence is independent of the cocycle representative. The source makes the stronger representative-level statement that cohomologous cocycles give directly isomorphic crossed-product algebras; that explicit algebra isomorphism was not located. |
FC01-C17-U079 |
partial match / wrong interface | reference-port |
RelativeBrGroup.isoSnd; RelativeBrGroup.fromSnd |
Whysoserioushah/BrauerGroup fbb4a349e85f66c02b2ccccd80516eec0d5d1818, Apache-2.0, Lean v4.34.0-rc2 / Mathlib be629e7a…; downstream-validated through 30a58f7 |
The trivial H² class corresponds to the identity relative Brauer class through the proved equivalence, so its crossed product is Brauer-equivalent to a matrix algebra. The direct algebra equivalence from the trivial crossed product to M_n(F) appears only in commented development and is not an exported theorem. |
FC01-C17-U080 |
exact match | mathlib |
Subalgebra.centralizer; MulOpposite |
pinned Mathlib v4.32.0 | Algebra centralizers and opposite algebras are direct constructions. |
FC01-C17-U081 |
broad match | reference-port |
isSplit; CSA_iff_exist_split; BrauerGroup.split_iff |
Whysoserioushah/BrauerGroup fbb4a349e85f66c02b2ccccd80516eec0d5d1818, Apache-2.0, Lean v4.34.0-rc2 / Mathlib be629e7a…; downstream-validated through 30a58f7 |
The external project directly defines splitting by scalar extension to a matrix algebra, proves existence of a finite-dimensional splitting field for every finite-dimensional central simple algebra, and identifies splitting with triviality after Brauer base change. The textbook row also packages maximal-subfield and division-part consequences not all exposed as one theorem. |
FC01-C17-U082 |
exact match | reference-port |
Wedderburn_Artin_algebra_version; Wedderburn_Artin_uniqueness₀; IsBrauerEquivalent.exists_common_division_algebra |
Whysoserioushah/BrauerGroup fbb4a349e85f66c02b2ccccd80516eec0d5d1818, Apache-2.0, Lean v4.34.0-rc2 / Mathlib be629e7a…; downstream-validated through 30a58f7 |
Finite-dimensional simple algebras are matrix algebras over division algebras, the division-algebra part is unique in the required stabilized sense, and Brauer-equivalent CSAs admit a common division-algebra representative. |
FC01-C17-U083 |
exact match | reference-port |
IsBrauerEquivalent; BrauerGroup; BrauerGroup.Bruaer_Group; BrauerGroup.IsAbelBrauer |
Whysoserioushah/BrauerGroup fbb4a349e85f66c02b2ccccd80516eec0d5d1818, Apache-2.0, Lean v4.34.0-rc2 / Mathlib be629e7a…; downstream-validated through 30a58f7 |
Matrix-stable similarity is the Brauer equivalence relation, tensor product gives multiplication on classes, matrix algebras give the identity, opposite algebras give inverses, and the resulting quotient is proved a commutative group. |
FC01-C17-U084 |
exact match | reference-port |
BrauerGroup; BrauerGroup.IsAbelBrauer; BrauerGroupHom.BaseChange; BrauerGroupHom.baseChange_idem; BrauerGroupHom.Br |
Whysoserioushah/BrauerGroup fbb4a349e85f66c02b2ccccd80516eec0d5d1818, Apache-2.0, Lean v4.34.0-rc2 / Mathlib be629e7a…; downstream-validated through 30a58f7 |
The Brauer group, scalar-extension homomorphism, composition law, and functor from fields to commutative groups are all implemented directly. |
FC01-C17-U085 |
exact match | reference-port |
RelativeBrGroup; BrauerGroup.split_iff; mem_relativeBrGroup |
Whysoserioushah/BrauerGroup fbb4a349e85f66c02b2ccccd80516eec0d5d1818, Apache-2.0, Lean v4.34.0-rc2 / Mathlib be629e7a…; downstream-validated through 30a58f7 |
The relative Brauer group is defined exactly as the kernel of scalar extension, and membership is equivalent to the extension field splitting the central simple algebra. |
FC01-C17-U086 |
broad match | reference-port |
RelativeBrGroup.toSnd; RelativeBrGroup.fromSnd; RelativeBrGroup.toSnd_fromSnd; RelativeBrGroup.fromSnd_toSnd; RelativeBrGroup.isoSnd; CrossProductAlgebra.asCSA; CrossProductAlgebra.dim_eq_sq |
Whysoserioushah/BrauerGroup fbb4a349e85f66c02b2ccccd80516eec0d5d1818, Apache-2.0, Lean v4.34.0-rc2 / Mathlib be629e7a…; downstream-validated through 30a58f7 |
The central cohomological statement is formalized: for a finite Galois extension, relative Brauer classes and H²(G,Kˣ) are additively equivalent, and the inverse map is represented by the crossed-product algebra of a cocycle. This covers the classification and group-isomorphism core of the source theorem; the row also collects further division-algebra and global-union consequences not all packaged by these declarations. |
C18 — Representations and characters
C18 was audited against repository HEAD’s pinned Mathlib revision 81a5d257c8e410db227a6665ed08f64fea08e997 (Lean v4.32.0) and rechecked against current upstream Mathlib at 69fe4f49ffbc9580a2c3ae6d29591ef6d1d4131e. The local worktree’s newer Mathlib checkout was used only as a supplementary search surface because its dependency files are unrelated dirty work. Project-source and local-mirror searches found no stronger project-owned C18 implementation.
The main external reference found in the broad Lean search is TauCetiProject/TauCeti at immutable revision d7bf8387e88bbf5f262414f5e112d480b24b2519, Apache-2.0. That revision uses Lean v4.34.0-rc2 and Mathlib 5fcc6656691ed31965746c369f41fa75e567ac9d, so its declarations are recorded as reference-port, not package-import. In particular its character-table development supplies the completeness, column orthogonality, degree-divisibility, primitive-central-idempotent, permutation-character, and character-value interfaces absent from pinned/current Mathlib.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C18-U001 |
broad match | mathlib | Representation; Representation.asGroupHom; LinearMap.toMatrix; MonoidAlgebra; Module.finrank |
pinned Mathlib 81a5d257…; current Mathlib 69fe4f49… rechecked |
Mathlib has the representation, group-hom, matrix-coordinate, group-algebra, and dimension infrastructure. The textbook’s single packaged definition also names faithfulness and degree; those are assembled from standard predicates/dimension rather than one representation record. |
FC01-C18-U002 |
exact match | mathlib | Rep.equivalenceModuleMonoidAlgebra; Representation.asModule; Representation.ofModule |
pinned Mathlib 81a5d257… |
This is exactly the representation/left-k[G]-module equivalence, including both object-level conversions and the categorical equivalence. |
FC01-C18-U003 |
exact match | mathlib | Subrepresentation.subrepresentationSubmoduleOrderIso |
pinned Mathlib 81a5d257… |
The order isomorphism identifies invariant subrepresentations with k[G]-submodules of the associated module. |
FC01-C18-U004 |
broad match | mathlib | Representation.leftRegular; Representation.ofMulAction_single; Representation.asAlgebraHom_ofMulAction_smul_eq_mul; Representation.ofMulActionSelfAsModuleEquiv |
pinned Mathlib 81a5d257…; current Mathlib rechecked |
The left regular action, its action on basis elements, and identification with the natural group-algebra module are explicit. Faithfulness is immediate from the basis action but no dedicated leftRegular faithfulness theorem surfaced. |
FC01-C18-U005 |
partial match / wrong interface | mathlib | Representation.ofMulAction; Representation.trivial; Finsupp/MonoidAlgebra permutation-module infrastructure |
pinned Mathlib 81a5d257…; current Mathlib rechecked |
Arbitrary permutation representations are present, hence the natural S_n permutation module is constructible. The distinguished equal-coordinate trivial line and the exact textbook decomposition are not packaged under this interface. |
FC01-C18-U006 |
partial match / wrong interface | mathlib | Representation.ofMulAction; Finsupp.linearCombination; LinearMap.ker |
pinned Mathlib 81a5d257…; current Mathlib rechecked |
The coordinate-sum map and its kernel can be built directly on the permutation module, but no named augmentation map/subrepresentation for the natural permutation representation surfaced. |
FC01-C18-U007 |
partial match / wrong interface | mathlib | Representation.leftRegular_norm_eq_zero_iff; Representation.ker_leftRegular_norm_eq; MonoidAlgebra.sum_coeff_single |
pinned Mathlib 81a5d257…; current Mathlib rechecked |
Pinned Mathlib exposes the coefficient-sum kernel in the regular representation and the norm element machinery, but no named group-algebra augmentation ideal or trace ideal matching the textbook pair was found. |
FC01-C18-U008 |
broad match | mathlib | Rep.equivalenceModuleMonoidAlgebra; Representation.Equiv.conj_apply_self; LinearMap.toMatrix; Basis.toMatrix |
pinned Mathlib 81a5d257… |
Module isomorphism/equivalence of representations is explicit, and Equiv.conj_apply_self gives conjugacy of the action operators. Simultaneous matrix conjugacy is obtained after choosing bases rather than exposed as one theorem. |
FC01-C18-U009 |
broad match | mathlib | Representation.IsIrreducible; irreducible_iff_isSimpleModule_asModule; IsSimpleModule; IsSemisimpleModule; Representation.IsSemisimpleRepresentation; isSemisimpleRepresentation_iff_isSemisimpleModule_asModule |
pinned Mathlib 81a5d257… |
Simple/irreducible and completely reducible/semisimple notions and their representation-module translations are present. The textbook also groups indecomposable terminology and constituent language, which are not all one API. |
FC01-C18-U010 |
exact match | mathlib | MonoidAlgebra.Submodule.exists_isCompl |
pinned Mathlib 81a5d257… |
This is Maschke’s complement theorem: every invariant k[G]-submodule has an invariant complement when | |FC01-C18-U011| exact match | mathlib | [IsSemisimpleRing.isSemisimpleModule](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleRing.isSemisimpleModule#doc); [IsSemisimpleModule.exists_linearEquiv_fin_dfinsupp](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleModule.exists_linearEquiv_fin_dfinsupp#doc); MaschkeIsSemisimpleRing k[G]instance | pinned Mathlib81a5d257…| Maschke makesk[G]semisimple; every module is then semisimple, and a finitely generated semisimple module admits a finite direct-sum decomposition into simple modules. | |FC01-C18-U012| broad match | mathlib | [Representation.IsSemisimpleRepresentation](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Representation.IsSemisimpleRepresentation#doc); [IsSemisimpleModule.exists_linearEquiv_fin_dfinsupp](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleModule.exists_linearEquiv_fin_dfinsupp#doc); [Representation.directSum](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Representation.directSum#doc); [LinearMap.toMatrix](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=LinearMap.toMatrix#doc) | pinned Mathlib81a5d257…| Complete reducibility into irreducible summands is available. The textbook's explicit simultaneous block-diagonal matrix normal form is a consequence after bases are chosen, not a single theorem. | |FC01-C18-U013| broad match | mathlib | [IsSemisimpleRing.exists_ringEquiv_pi_matrix_divisionRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleRing.exists_ringEquiv_pi_matrix_divisionRing#doc); [IsSemisimpleRing.exists_algEquiv_pi_matrix_divisionRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleRing.exists_algEquiv_pi_matrix_divisionRing#doc); [Module.injective_of_isSemisimpleRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Module.injective_of_isSemisimpleRing#doc); [Module.projective_of_isSemisimpleRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Module.projective_of_isSemisimpleRing#doc); [IsSemisimpleModule.exists_linearEquiv_dfinsupp](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleModule.exists_linearEquiv_dfinsupp#doc) | pinned Mathlib81a5d257…; current Mathlib rechecked | Mathlib has the Wedderburn-Artin product-of-matrix-rings structure and the semisimple/projective/injective/simple-sum consequences. The textbook's long equivalence package, orthogonal-idempotent presentation, and uniqueness clauses are distributed across several declarations rather than one TFAE. | |FC01-C18-U014| broad match | mathlib |IsSemisimpleModule;IsSemisimpleRing;IsArtinianRing; [IsSimpleRing.isSemisimpleRing_iff_isArtinianRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSimpleRing.isSemisimpleRing_iff_isArtinianRing#doc) | pinned Mathlib81a5d257…| The semisimple and descending-chain/Artinian conditions are represented directly, but the textbook's chosen definition combining semisimplicity with the minimum condition is not Mathlib's definitional interface. | |FC01-C18-U015| broad match | mathlib | [IsSemisimpleRing.exists_ringEquiv_pi_matrix_divisionRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleRing.exists_ringEquiv_pi_matrix_divisionRing#doc); [IsSemisimpleModule.exists_linearEquiv_dfinsupp](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleModule.exists_linearEquiv_dfinsupp#doc) | pinned Mathlib81a5d257…| The component/decomposition theory follows from the Wedderburn-Artin and simple-summand APIs. The book's terminology for components is not the library's primary interface. | |FC01-C18-U016| exact match | mathlib | MaschkeIsSemisimpleModule k[G] VandIsSemisimpleRing k[G]instances in [Mathlib.RepresentationTheory.Maschke](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Mathlib.RepresentationTheory.Maschke#doc) | pinned Mathlib81a5d257…| This is exactly semisimplicity of a finite group algebra when the characteristic does not divide the group order. | |FC01-C18-U017| partial match / wrong interface | mathlib |IsIdempotentElem;OrthogonalIdempotents;CompleteOrthogonalIdempotents; [IsSemisimpleRing.ideal_eq_span_idempotent](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleRing.ideal_eq_span_idempotent#doc) | pinned Mathlib81a5d257…; current Mathlib69fe4f49…rechecked | Idempotents, orthogonality, complete systems, and idempotent-generated ideals are formalized. No generic primitive/primitive-central-idempotent predicate matching the textbook definitions surfaced in pinned or current Mathlib. | |FC01-C18-U018| partial match / wrong interface | mathlib | [IsSimpleRing.matrix](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSimpleRing.matrix#doc); [IsSimpleRing.exists_ringEquiv_matrix_divisionRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSimpleRing.exists_ringEquiv_matrix_divisionRing#doc); [IsSimpleRing.isSemisimpleRing_iff_isArtinianRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSimpleRing.isSemisimpleRing_iff_isArtinianRing#doc) | pinned Mathlib81a5d257…; current Mathlib rechecked | Matrix rings over division rings are covered as simple rings and by Wedderburn-Artin. The bundled textbook example additionally names the scalar center, standard primitive idempotents, their simple left ideals, and the regular-module decomposition; those exact interfaces were not found together. | |FC01-C18-U019| exact match | mathlib | [LinearMap.injective_or_eq_zero](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=LinearMap.injective_or_eq_zero#doc); [LinearMap.bijective_or_eq_zero](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=LinearMap.bijective_or_eq_zero#doc); [Module.End.instDivisionRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Module.End.instDivisionRing#doc); [Representation.IsIrreducible.injective_or_eq_zero](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Representation.IsIrreducible.injective_or_eq_zero#doc); [Representation.IsIrreducible.algebraMap_intertwiningMap_bijective_of_isAlgClosed](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Representation.IsIrreducible.algebraMap_intertwiningMap_bijective_of_isAlgClosed#doc) | pinned Mathlib81a5d257…| These are Schur's lemma in the simple-module and irreducible-representation forms, including the algebraically closed scalar-endomorphism consequence. | |FC01-C18-U020| broad match | mathlib | [IsSemisimpleRing.exists_ringEquiv_pi_matrix_divisionRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleRing.exists_ringEquiv_pi_matrix_divisionRing#doc); [IsSemisimpleRing.exists_linearEquiv_ideal_of_isSimpleModule](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleRing.exists_linearEquiv_ideal_of_isSimpleModule#doc); [IsSemisimpleRing.ideal_eq_span_idempotent](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleRing.ideal_eq_span_idempotent#doc) | pinned Mathlib81a5d257…; current Mathlib rechecked | The product-of-matrix-rings decomposition and classification of simple modules through simple ideals are present. The textbook's explicit primitive-central-idempotents for each factor are not a generic named Mathlib interface. | |FC01-C18-U021| exact match | reference-port | [TauCeti.nonempty_algEquiv_self_of_finiteDimensional_divisionRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=TauCeti.nonempty_algEquiv_self_of_finiteDimensional_divisionRing#doc); alias [TauCeti.algEquiv_self_of_finiteDimensional_divisionRing](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=TauCeti.algEquiv_self_of_finiteDimensional_divisionRing#doc) | TauCetid7bf8387…, Apache-2.0, Leanv4.34.0-rc2, Mathlib5fcc6656…; pinned Mathlib has the surrounding algebraically-closed Wedderburn interface | TauCeti states exactly that a finite-dimensional division algebra over an algebraically closed field is algebra-equivalent to the base field. It is a port candidate because its toolchain is ahead of the project pin. | |FC01-C18-U022| broad match | reference-port | Mathlib [IsSemisimpleRing.exists_algEquiv_pi_matrix_of_isAlgClosed](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=IsSemisimpleRing.exists_algEquiv_pi_matrix_of_isAlgClosed#doc); TauCeticard_irreducibleCharacters;sum_characterDegree_sq_eq_card;basisIrreducibleCharacter| pinned Mathlib81a5d257…; TauCetid7bf8387…, Apache-2.0 | Together these give the complex group-algebra matrix-block decomposition, irreducible dimensions, sum-of-squares formula, and equality between irreducible-character count and conjugacy-class count. They are separate structural interfaces rather than one theorem mirroring the textbook paragraph. | |FC01-C18-U023| partial match / wrong interface | reference-port | Mathlib [Representation.IsIrreducible.finrank_eq_one_of_isMulCommutative](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Representation.IsIrreducible.finrank_eq_one_of_isMulCommutative#doc); TauCeticard_irreducibleCharacters;sum_characterDegree_sq_eq_card| pinned/current Mathlib searched; TauCetid7bf8387…; broad GitHub Lean search rechecked | The abelian irreducibles-are-one-dimensional clause and, via TauCeti's complete character enumeration, the finite abelian count are covered. No direct owner was found for the full bundled row, especially#degree-one irreducibles= |
FC01-C18-U024 |
exact match | reference-port | TauCeti.Representation.finrank_dvd_card; TauCeti.FDRep.finrank_dvd_card; TauCeti.characterDegree_dvd_card |
TauCeti d7bf8387…, Apache-2.0; current Mathlib 69fe4f49… negative check |
TauCeti states exactly that the degree of an irreducible finite-group representation/character in characteristic zero divides the group order. No corresponding current Mathlib declaration surfaced. |
FC01-C18-U025 |
exact match | reference-port | TauCeti.ClassFunction; TauCeti.ClassFunction.mem_iff; TauCeti.ClassFunction.ofCharacter; Mathlib Representation.character |
TauCeti d7bf8387…, Apache-2.0; pinned Mathlib 81a5d257… |
TauCeti packages class functions as conjugacy-invariant functions and proves that a representation character is one; Mathlib supplies the underlying character definition. |
FC01-C18-U026 |
broad match | mathlib | Representation.trivial; Representation.character; LinearMap.trace_id; Representation.char_one |
pinned Mathlib 81a5d257…; current Mathlib rechecked |
The trivial representation and character/trace interfaces make the principal character identically 1 on a one-dimensional space. No dedicated named principalCharacter theorem surfaced. |
FC01-C18-U027 |
exact match | reference-port | TauCeti.char_ofMulAction; TauCeti.char_ind_trivial |
TauCeti d7bf8387…, Apache-2.0 |
The permutation character is exactly the number of fixed points, and the induced-trivial/coset version is exactly the G/H formula. |
FC01-C18-U028 |
broad match | reference-port | Mathlib Representation.leftRegular; TauCeti char_ofMulAction |
pinned Mathlib 81a5d257…; TauCeti d7bf8387…, Apache-2.0 |
Applying TauCeti’s fixed-point formula to Mathlib’s left regular action gives the regular character (| |FC01-C18-U029| exact match | reference-port | [TauCeti.Representation.characterSum](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=TauCeti.Representation.characterSum#doc); [TauCeti.Representation.characterSum_eq_sum](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=TauCeti.Representation.characterSum_eq_sum#doc); [TauCeti.Representation.primitiveCentralIdempotent](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=TauCeti.Representation.primitiveCentralIdempotent#doc); [TauCeti.Representation.primitiveCentralIdempotent_eq_of_nonempty_equiv](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=TauCeti.Representation.primitiveCentralIdempotent_eq_of_nonempty_equiv#doc) | TauCetid7bf8387…, Apache-2.0; current Mathlib negative check | TauCeti defines the primitive central idempotent attached to an irreducible character by the textbook character-sum formula and proves its central/idempotent/orthogonality properties. | |FC01-C18-U030| exact match | reference-port | TauCeti character-value root-of-unity decomposition inCharacterTable/Values.lean; [TauCeti.Representation.conj_char](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=TauCeti.Representation.conj_char#doc); [TauCeti.conj_characterTable](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=TauCeti.conj_characterTable#doc) | TauCetid7bf8387…, Apache-2.0; pinned Mathlib supplieschar_dual| TauCeti proves character values are sums of roots of unity for finite-order elements and that overℂ, conjugation sendsχ(g)toχ(g⁻¹). | |FC01-C18-U031| exact match | reference-port | Mathlib [Representation.char_orthonormal](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Representation.char_orthonormal#doc); [FDRep.char_orthonormal](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FDRep.char_orthonormal#doc); TauCeti [ClassFunction.linearIndependent_ofCharacter](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=ClassFunction.linearIndependent_ofCharacter#doc); [ClassFunction.mem_span_range_ofCharacter](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=ClassFunction.mem_span_range_ofCharacter#doc); [ClassFunction.exists_linearCombination_character](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=ClassFunction.exists_linearCombination_character#doc);basisIrreducibleCharacter| pinned Mathlib81a5d257…; TauCetid7bf8387…, Apache-2.0 | Mathlib supplies first orthogonality; TauCeti proves completeness and packages irreducible characters as a basis of class functions, including the expansion interface. | |FC01-C18-U032| exact match | reference-port | [TauCeti.ClassFunction.card_conjClass_mul_sum_char_mul_char_inv](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=TauCeti.ClassFunction.card_conjClass_mul_sum_char_mul_char_inv#doc); TauCeti character-table column-orthogonality theorems | TauCetid7bf8387…, Apache-2.0; current Mathlib negative check | This is the second/column orthogonality relation, absent from the audited Mathlib character API but explicit in TauCeti. | |FC01-C18-U033| broad match | reference-port | Mathlib [FDRep.simple_iff_char_is_norm_one](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FDRep.simple_iff_char_is_norm_one#doc); TauCeti [ClassFunction.characterPairing_apply](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=ClassFunction.characterPairing_apply#doc); [ClassFunction.characterPairing_ofFDRep_self](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=ClassFunction.characterPairing_ofFDRep_self#doc); [ClassFunction.sum_eq_sum_conjClasses](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=ClassFunction.sum_eq_sum_conjClasses#doc) | pinned Mathlib81a5d257…; TauCetid7bf8387…, Apache-2.0 | The norm-one irreducibility criterion is direct in Mathlib; TauCeti packages the normalized character norm/pairing and rewrites group sums conjugacy-class by conjugacy-class. The textbook combines these forms in one row rather than one library theorem. | |FC01-C18-U034| exact match | mathlib | [Representation.char_tensor](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Representation.char_tensor#doc); [FDRep.char_tensor](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=FDRep.char_tensor#doc) | pinned Mathlib81a5d257…` |
C19 — Character theory applications
C19 was audited in canonical source order against repository HEAD’s pinned Mathlib revision 81a5d257c8e410db227a6665ed08f64fea08e997 (Lean v4.32.0), with project-source searches first and current/open external sources checked only after the pinned surface. No project-owned C19 implementation was found. The concrete character-table rows were also checked against current TauCeti; no formal S4, A4, or S5 table owner surfaced in the audited Mathlib/project/TauCeti/odd-order/local-source-atlas surfaces as of 2026-09-05.
Two external references supply most of the non-Mathlib coverage. ianklatzco/odd-order-lean at immutable revision 5cf07626edf04b2db9ea03fde77a08ec009c6feb is Apache-2.0, uses Lean v4.32.0-rc1 and Mathlib 360da6fa66c1273b76b6b2d8c5666fd5ac2e3b56, and contains the Burnside, character-arithmetic, Hall, induction, virtual-character, and Frobenius-system interfaces below. TauCetiProject/TauCeti at immutable revision d7bf8387e88bbf5f262414f5e112d480b24b2519 is Apache-2.0, uses Lean v4.34.0-rc2 and Mathlib 5fcc6656691ed31965746c369f41fa75e567ac9d, and contains the executable character tables and the newer finite-dimensional induction / exceptional-character APIs. Both are therefore recorded as reference-port, not package-import.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-C19-U001 |
broad match | reference-port | TauCeti.characterTable; TauCeti.IsCharacterTableSpec; TauCeti.characterTable_unique_rows; TauCeti.IsCharacterTableSpec.exists_perm_eq |
TauCeti d7bf8387…, RepresentationTheory/CharacterTable/{Table,Specification}.lean, Apache-2.0 |
TauCeti has the square irreducible-character-by-conjugacy-class table and a specification/uniqueness API. Its columns are canonically indexed by bundled conjugacy classes, so the textbook’s arbitrary row-and-column ordering is represented by a stronger canonical interface rather than literally by a two-sided permutation theorem. |
FC01-C19-U002 |
exact match | reference-port | TauCeti.cyclicTwoCharacterTable; TauCeti.isCharacterTableSpec_cyclicTwo |
TauCeti d7bf8387…, RepresentationTheory/CharacterTable/Dixon/Rational/CyclicTwo.lean, Apache-2.0 |
The displayed C₂ table is explicit and certified as the character table. |
FC01-C19-U003 |
exact match | reference-port | TauCeti.cyclicThreeCharacterTable; TauCeti.isCharacterTableSpec_cyclicThree |
TauCeti d7bf8387…, RepresentationTheory/CharacterTable/Dixon/Cyclotomic/CyclicThree.lean, Apache-2.0 |
The displayed cyclotomic C₃ table is explicit and certified. |
FC01-C19-U004 |
partial match / wrong interface | reference-port | TauCeti.dihedralGroupThreeCharacterTable; TauCeti.isCharacterTableSpec_dihedralGroupThree |
TauCeti d7bf8387…, RepresentationTheory/CharacterTable/Dixon/Rational/Dihedral/Three.lean, Apache-2.0 |
This is the correct order-six dihedral table and the file identifies DihedralGroup 3 with the classical S₃ example, but no audited declaration transports the certified table across a formal group equivalence to Equiv.Perm (Fin 3). |
FC01-C19-U005 |
exact match | reference-port | TauCeti.dihedralGroupFourCharacterTable; TauCeti.isCharacterTableSpec_dihedralGroupFour |
TauCeti d7bf8387…, RepresentationTheory/CharacterTable/Dixon/Rational/Dihedral/Four.lean, Apache-2.0 |
The order-eight dihedral (D₈) table is explicit and certified. |
FC01-C19-U006 |
exact match | reference-port | TauCeti.quaternionGroupTwoCharacterTable; TauCeti.isCharacterTableSpec_quaternionGroupTwo |
TauCeti d7bf8387…, RepresentationTheory/CharacterTable/Dixon/Rational/QuaternionEight.lean, Apache-2.0 |
The Q₈ table is explicit and certified. |
FC01-C19-U007 |
partial match / wrong interface | reference-port | dihedralGroupFourCharacterTable; quaternionGroupTwoCharacterTable; general Frobenius-Schur realizability API |
TauCeti d7bf8387…, the two Dixon rational table files plus CharacterTable/FrobeniusSchur/Realizability.lean, Apache-2.0 |
The two certified displayed matrices are the same classical matrix, and TauCeti has the general real/quaternionic Frobenius-Schur machinery. No public theorem equating the two tables across their different index types or computing the specific real-vs-quaternionic degree-two representations surfaced. |
FC01-C19-U008 |
unmatched | unmatched | no formal S₄ character-table owner found |
Pinned/current Mathlib, project, TauCeti d7bf8387…, odd-order 5cf07626…, local source atlas searched 2026-09-05 |
Generic character-table infrastructure does not count as the textbook’s explicit S₄ table. |
FC01-C19-U009 |
unmatched | unmatched | no formal A₄ character-table owner found |
Same audited surfaces, 2026-09-05 | No explicit certified A₄ table surfaced. |
FC01-C19-U010 |
unmatched | unmatched | no formal S₅ character-table owner found |
Same audited surfaces, 2026-09-05 | No explicit certified S₅ table surfaced. |
FC01-C19-U011 |
exact match | reference-port | burnside_solvable |
odd-order 5cf07626…, OddOrder/Mathlib/RepresentationTheory/Burnside.lean, Apache-2.0 |
This states Burnside’s theorem exactly: a finite group of order p^a q^b for primes p,q is solvable. |
FC01-C19-U012 |
exact match | mathlib | IsIntegral; RingHom.IsIntegralElem |
pinned Mathlib 81a5d257…, Mathlib/RingTheory/IntegralClosure/IsIntegral/Defs.lean |
IsIntegral ℤ α is definitionally the existence of a monic integer polynomial vanishing at α, exactly the algebraic-integer definition used here. |
FC01-C19-U013 |
broad match | mathlib | IsIntegral.of_aeval_monic; isIntegral_iff_isIntegral_closure_finite; IsIntegral.add; IsIntegral.mul; integral-closure / integrally-closed APIs |
pinned Mathlib 81a5d257…, Mathlib/RingTheory/IntegralClosure/** |
Mathlib formalizes the monic/minimal-polynomial and finite-module characterizations in the general integral-extension language and proves closure under ring operations. The rational-algebraic-integer-is-integer clause is available through the integral closure of ℤ in ℚ, but the textbook’s five-part proposition is distributed rather than one bundled theorem. |
FC01-C19-U014 |
exact match | reference-port | Irr.isIntegral_apply |
odd-order 5cf07626…, OddOrder/Mathlib/RepresentationTheory/CharacterArith.lean, Apache-2.0 |
Every irreducible character value is integral over ℤ; arbitrary character values then follow by sums of irreducibles. |
FC01-C19-U015 |
exact match | reference-port | Irr.omega; Irr.omega_eq; Irr.isIntegral_omega |
odd-order 5cf07626…, CharacterArith.lean, Apache-2.0 |
The central-character value is defined and proved equal to | |FC01-C19-U016| exact match | reference-port | [Irr.exists_degree_dvd_card](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Irr.exists_degree_dvd_card#doc) | odd-order5cf07626…, [CharacterArith.lean](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=CharacterArith.lean#doc), Apache-2.0 | It produces the irreducible degree together with the divisibilityχ(1) ∣ |
FC01-C19-U017 |
partial match / wrong interface | reference-port | Irr.eq_zero_or_norm_eq; Module.End.eq_smul_one_of_trace_eq_mul_finrank |
odd-order 5cf07626…, Burnside.lean / CharacterArith.lean, Apache-2.0 |
The public API gives the coprime class-size/degree dichotomy and the generic finite-order endomorphism scalar criterion. The file’s direct lemma extracting the scalar action from the norm-equality branch is private, so the textbook statement is not exposed as one reusable public declaration. |
FC01-C19-U018 |
exact match | reference-port | not_isSimpleGroup_of_conjClasses_card_eq_prime_pow |
odd-order 5cf07626…, Burnside.lean, Apache-2.0 |
For a nonabelian finite simple group, a nonidentity conjugacy class cannot have prime-power cardinality; this is precisely the contrapositive form of the textbook lemma. |
FC01-C19-U019 |
broad match | reference-port | odd-order Subgroup.IsHall; Subgroup.IsHall.coprime; pinned Mathlib Subgroup.IsComplement', Subgroup.IsComplement |
odd-order 5cf07626…, OddOrder/Mathlib/GroupTheory/Hall.lean; pinned Mathlib 81a5d257…, Mathlib/GroupTheory/Complement.lean |
Hall subgroups are packaged by prime support and proved to have coprime order/index; complement is the standard product-plus-trivial-intersection notion. The textbook puts both definitions in one paragraph, while the interfaces live separately. |
FC01-C19-U020 |
partial match / wrong interface | reference-port | Subgroup.exists_isHall; Subgroup.isHall_conj; Mathlib complement/Schur-Zassenhaus APIs |
odd-order 5cf07626…, Hall.lean; pinned Mathlib 81a5d257… |
The audited source proves P. Hall’s forward theorem for solvable groups (existence/conjugacy/covering of Hall subgroups), but no declaration was found for the textbook converse criterion that complements to every Sylow subgroup force solvability. |
FC01-C19-U021 |
broad match | mathlib | exists_prime_orderOf_dvd_card'; Sylow.exists_subgroup_card_pow_prime |
pinned Mathlib 81a5d257…, Mathlib/GroupTheory/{Perm/Cycle/Type,Sylow}.lean |
Mathlib proves the stronger fact without solvability: any prime divisor of a nontrivial finite group order yields an element/subgroup of the corresponding prime-power order. The source lemma follows directly. |
FC01-C19-U022 |
partial match / wrong interface | mathlib | Subgroup.card_dvd_of_le; Subgroup.disjoint_of_coprime_natCard; Subgroup.IsComplement'.card_mul; Subgroup.index_mul_card |
pinned Mathlib 81a5d257…, Mathlib/GroupTheory/{Index,Complement}.lean |
The subgroup-cardinality, coprimality, and product/complement ingredients needed for the lemma are formalized, but no theorem with the source’s hypothesis distributing the full prime-primary factors between H and K and its exact G=HK, | |FC01-C19-U023| exact match | reference-port | Mathlib [Representation.ind](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Representation.ind#doc); [Rep.ind](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Rep.ind#doc); TauCeti [ClassFunction.ind](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=ClassFunction.ind#doc);indClassFun_ofFDRep_character; [ClassFunction.ind_ofFDRep](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=ClassFunction.ind_ofFDRep#doc) | pinned Mathlib81a5d257…,RepresentationTheory/Induced.lean; TauCetid7bf8387…,RepresentationTheory/Induction/{ClassFunction,Character}.lean, Apache-2.0 | Mathlib constructs the induced representation from the subgroup algebra tensor/coinvariant model; TauCeti identifies the induced class function exactly with the character of the induced finite-dimensional representation. | |FC01-C19-U024| broad match | reference-port | Mathlib [Representation.ind_mk](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Representation.ind_mk#doc); TauCetiRep.indSubtypeEquivPi_ρ_apply; [Rep.finrank_ind](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Rep.finrank_ind#doc);finrank_indFDRep| pinned Mathlib81a5d257…; TauCetid7bf8387…,Induction/FiniteDimensional.lean, Apache-2.0 | The coset-coordinate action and exact dimension formula[G:H]·dim Vare explicit. The textbook's chosen basis and literal block-matrix statement are not packaged as a matrix theorem, so this is broader structural coverage rather than an exact declaration match. | |FC01-C19-U025| exact match | reference-port | [ClassFunction.ind_apply](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=ClassFunction.ind_apply#doc); [ClassFunction.ind_mem_supportedOn_conjugatesOfSet](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=ClassFunction.ind_mem_supportedOn_conjugatesOfSet#doc); TauCeticharacter_indFDRep_sum_quotient| odd-order5cf07626…,RepresentationTheory/Induced.lean; TauCetid7bf8387…,Induction/Character.lean, Apache-2.0 | The induced-character formula is explicit, and the support theorem states exactly that induction vanishes off the union of conjugacy classes meeting the subgroup support; the normal-subgroup zero-off-Hclause is its immediate specialization. | |FC01-C19-U026| partial match / wrong interface | reference-port | [TauCeti.IsFrobeniusComplement](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=TauCeti.IsFrobeniusComplement#doc);IsTISubgroup;frobeniusKernel;frobeniusKernelSubgroup;frobeniusKernelSubgroup_normal| TauCetid7bf8387…,GroupTheory/{TrivialIntersection,FrobeniusKernel}.leanandRepresentationTheory/FrobeniusGroup.lean, Apache-2.0 | TauCeti formalizes the general Frobenius-complement/kernel condition and proves Frobenius's theorem. It does not package this row's later specialized hypotheses |
FC01-C19-U027 |
partial match / wrong interface | reference-port | frobeniusKernelSubgroup; frobeniusKernel_isComplement'; odd-order Irr.frobeniusInd; Irr.exists_coe_eq_frobeniusInd |
TauCeti d7bf8387…; odd-order 5cf07626…, OddOrder/Mathlib/GroupTheory/FrobeniusKernel.lean, Apache-2.0 |
The semidirect/Frobenius-kernel structure and induction of nonprincipal complement characters to irreducible characters are formalized generally. No audited theorem gives the full special q^a p package: conjugacy-class enumeration, G'=Q, exactly p linear characters, degree-p characters, and count (q^a-1)/p. |
FC01-C19-U028 |
broad match | reference-port | linearity of ClassFunction.ind; ClassFunction.ind_indNested; ClassFunction.IsVirtualChar.ind |
odd-order 5cf07626…, RepresentationTheory/{Induced,CharacterTransfer,VirtualChar}.lean, Apache-2.0 |
Induction is additive/linear, transitive through nested subgroups, and extends to the virtual-character lattice. These are the source proposition’s three structural clauses, distributed across declarations. |
FC01-C19-U029 |
exact match | reference-port | ClassFunction.VirtualChar; ClassFunction.IsVirtualChar; ClassFunction.isVirtualChar_iff_mem_virtualCharIrr; ClassFunction.IsVirtualChar.ind |
odd-order 5cf07626…, VirtualChar.lean, Apache-2.0 |
Virtual/generalized characters are exactly the integral lattice generated by irreducible characters, and induction preserves that lattice. |
FC01-C19-U030 |
broad match | reference-port | ClassFunction.ind; ClassFunction.indNested |
odd-order 5cf07626…, Induced.lean / CharacterTransfer.lean, Apache-2.0 |
The mathematical operation denoted μ* in the textbook is present exactly; the star notation itself is source-local notation and is not reproduced. |
FC01-C19-U031 |
broad match | reference-port | ClassFunction.cfInner_ind_ind_of_malnormal; Irr.sub_smul_one_apply_one; Irr.frobeniusInd_apply_of_mem_frobeniusKernelSet; TauCeti isometry_ind_of_isTISet |
odd-order 5cf07626…, GroupTheory/FrobeniusKernel.lean; TauCeti d7bf8387…, Induction/TrivialIntersection.lean, Apache-2.0 |
The exact mechanism of Lemma 15 is formalized generally: corrected differences vanish at 1, induction from a TI/malnormal subgroup is an isometry, and the resulting functions have the required kernel-set support behavior. The source’s particular N_i,Q_i family is not a bundled specialization. |
FC01-C19-U032 |
partial match / wrong interface | reference-port | Irr.frobeniusInd_isVirtualChar; Irr.cfInner_frobeniusInd_self; Irr.exists_coe_eq_frobeniusInd; TauCeti ClassFunction.indExtend_mem_irreducibleCharacters; indExtend_injective |
odd-order 5cf07626…, GroupTheory/FrobeniusKernel.lean; TauCeti d7bf8387…, Induction/ExceptionalCharacter.lean, Apache-2.0 |
Both references construct the irreducible exceptional characters attached to nonprincipal complement characters and prove injectivity/irreducibility. No public declaration with the source’s simultaneous common-sign equation ψ₁*−ψⱼ*=ε(χ₁−χⱼ) for the whole indexed family surfaced. |
FC01-C19-U033 |
broad match | reference-port | Irr.frobeniusInd; Irr.exists_coe_eq_frobeniusInd; TauCeti.ClassFunction.indExtend; indExtend_mem_irreducibleCharacters |
odd-order 5cf07626…; TauCeti d7bf8387…, Apache-2.0 |
These are the classical exceptional-character constructions the source names: irreducible characters of G canonically attached, up to the source’s indexing conventions, to irreducibles of a Frobenius/TI complement. No dedicated ExceptionalCharacter subtype is introduced. |
FC01-C19-U034 |
unmatched | unmatched | no theorem for disjointness of exceptional-character sets attached to distinct Q_i found |
Pinned/current Mathlib, project, odd-order 5cf07626…, TauCeti d7bf8387…, local source atlas searched 2026-09-05 |
The available APIs prove injectivity for one complement and construct its exceptional characters, but not the cross-subgroup disjointness assertion of Lemma 17. |
Appendix I — Cartesian Products and Zorn’s Lemma
Appendix I was audited in canonical source order against repository main’s current pinned Mathlib revision db584cd6d46c92f209a44c0f1c829460d327499d (v4.33.0). The public Mathlib source was checked declaration-by-declaration for dependent products, cardinal products, partial orders/chains, Zorn’s lemma, classical choice, and the well-ordering theorem. The malformed catalogue text for FC01-AI-U006 was source-reconstructed as the cardinality formula for an indexed Cartesian product and repaired without changing its stable ID. The external exercise-solution source gkikola/sol-dummit-foote@354e7df324bf4ff5ce5106d881154cd09490161e was checked as a secondary source; its Appendix I file contains the reindexing exercise but is not a theorem owner.
A broad Lean search for the source’s final ZF-equivalence theorem found suii00/lean-experiments@3338840a3f5868ea9d25dd48b49c9abab01499bc, but its purported reverse implications ignore the Zorn/well-ordering hypotheses and invoke Lean’s ambient classical choice. It therefore does not formalize equivalence over ZF and is not credited as an exact or reference-port match.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-AI-U001 |
broad match | mathlib |
dependent family α : ι → Type*; Set.pi |
Mathlib db584cd6…, v4.33.0 |
Lean represents an indexed family directly as a function out of the index type. This is the same data as the source’s indexing-set convention, without a separate indexing-family record. |
FC01-AI-U002 |
broad match | mathlib |
dependent functions ∀ i, α i; Set.pi; Classical.axiomOfChoice; Classical.choose |
Mathlib db584cd6…, v4.33.0 |
A choice function is represented by a dependent function/section selecting one element in each fiber. The source packages it as a set-valued function into the union of the family, so the interface is structurally equivalent but not literally the same type. |
FC01-AI-U003 |
partial match / wrong interface | mathlib |
dependent Pi type ∀ i, α i; Set.pi; Cardinal.prod_eq_zero |
Mathlib db584cd6…, v4.33.0 |
Mathlib has the standard indexed Cartesian product and proves its cardinal product is zero exactly when some factor has cardinality zero. The catalogue row additionally says the product is empty when the indexing set itself is empty; that clause is not the standard empty-product semantics (the empty Pi type is inhabited by the unique empty function), so it is not credited as an exact interface match pending source-fidelity repair. |
FC01-AI-U004 |
exact match | mathlib |
Function.eval; Pi projection/evaluation interfaces |
Mathlib db584cd6…, v4.33.0 |
The ith component/projection of an indexed product is evaluation at i, exactly the source operation. |
FC01-AI-U005 |
broad match | mathlib |
Fin n → A; ℕ → A; Pi/finite-tuple equivalences including Equiv.piFinTwo / piFinSucc infrastructure |
Mathlib db584cd6…, v4.33.0 |
Finite dependent products are functions on Fin n, canonically equivalent to tuples, and countable products are sequence types. The source uses positive-integer indexing for infinite sequences, whereas Lean normally uses ℕ. |
FC01-AI-U006 |
exact match | mathlib |
Cardinal.mk_pi; Fintype.card_pi |
Mathlib db584cd6…, v4.33.0 |
Cardinal.mk_pi states that the cardinality of a dependent function type is the indexed product of the cardinalities of its factors; Fintype.card_pi gives the finite product specialization. Mathlib is stronger than the source’s stated countable-index hypothesis. |
FC01-AI-U007 |
exact match | mathlib |
PartialOrder |
Mathlib db584cd6…, v4.33.0 |
The bundled relation has exactly reflexivity, antisymmetry, and transitivity. |
FC01-AI-U008 |
exact match | mathlib |
IsChain; BddAbove; Maximal; IsMax |
Mathlib db584cd6…, v4.33.0 |
Chain, upper-bound, and maximal-element notions are represented directly. |
FC01-AI-U009 |
exact match | mathlib |
exists_maximal_of_nonempty_chains_bounded; zorn_le; zorn_le₀ |
Mathlib db584cd6…, v4.33.0 |
These are direct formulations of Zorn’s lemma, including the nonempty version used by the source. |
FC01-AI-U010 |
exact match | mathlib |
Classical.axiomOfChoice; Classical.choice; dependent Pi nonemptiness |
Mathlib db584cd6…, v4.33.0 |
Lean exposes classical choice as an ambient axiom and uses it to select elements from nonempty dependent fibers, matching the source’s choice-function content. |
FC01-AI-U011 |
exact match | mathlib |
IsWellOrder; WellFoundedLT |
Mathlib db584cd6…, v4.33.0 |
The source notion of a total order in which every nonempty subset has a least element is the standard well-order interface. |
FC01-AI-U012 |
exact match | mathlib |
WellOrderingRel; WellOrderingRel.isWellOrder; exists_wellFoundedLT |
Mathlib db584cd6…, v4.33.0 |
Mathlib explicitly constructs a well-order on every type and names exists_wellFoundedLT as the well-ordering theorem/Zermelo theorem. |
FC01-AI-U013 |
partial match / wrong interface | mathlib |
exists_maximal_of_chains_bounded; Classical.axiomOfChoice; WellOrderingRel.isWellOrder; exists_wellFoundedLT |
Mathlib db584cd6…, v4.33.0; broad GitHub Lean search 2026-09-05 |
All three principles are present, but Mathlib works in Lean’s metatheory with ambient classical choice. No audited declaration internalizes ZF and proves the three principles mutually derivable over ZF. The external suii00/lean-experiments candidate was rejected because its reverse implications ignore the stated hypotheses and use ambient choice. |
Appendix II — Category Theory
Appendix II was audited in canonical source order against repository main’s current pinned Mathlib revision db584cd6d46c92f209a44c0f1c829460d327499d (v4.33.0). Project-source search found no project-owned replacement for these interfaces. The audit checked the category/functor core, standard concrete categories, full and faithful functors, natural transformations and equivalences, linear Yoneda/coyoneda, monoidal tensor functors, rigid duality, structured arrows, representable functors/elements, and the three universal-property examples. Current upstream was used only as a supplementary search surface after the pinned interfaces.
The determinant example in FC01-AII-U012 has an explicit pinned naturality equation, Matrix.GeneralLinearGroup.map_det, together with identity/composition laws for base-change maps on GL_n, but no audited declaration bundles these data as the textbook natural transformation GL_n(-) ⇒ (-)^×. That row is therefore recorded as an interface gap rather than inferred from the commuting square alone.
| FC01 ID | Verdict | Route | Lean target(s) | Provenance | Interface comparison |
|---|---|---|---|---|---|
FC01-AII-U001 |
exact match | mathlib |
CategoryStruct; Category; Category.id_comp; Category.comp_id; Category.assoc |
Mathlib db584cd6…, v4.33.0 |
CategoryStruct supplies objects through the ambient type, hom-types through Quiver, identities and composition; Category supplies exactly the identity and associativity axioms. |
FC01-AII-U002 |
exact match | mathlib |
Quiver.Hom; CategoryStruct.comp; End; Iso |
Mathlib db584cd6…, v4.33.0 |
Typed morphisms determine domain/codomain, endomorphisms are X ⟶ X, and Iso packages a morphism with a two-sided inverse. |
FC01-AII-U003 |
partial match / wrong interface | mathlib |
WideSubcategory; ObjectProperty.FullSubcategory; InducedCategory |
Mathlib db584cd6…, v4.33.0 |
Mathlib directly packages the two principal special cases: wide subcategories restrict morphisms while retaining all objects, and full subcategories restrict objects while retaining all morphisms between them. No single audited core structure simultaneously chooses an arbitrary object subset and arbitrary compatible sub-homsets exactly as the textbook definition does. |
FC01-AII-U004 |
broad match | mathlib |
Type; FintypeCat; GrpCat; CommGrpCat; RingCat; CommRingCat; ModuleCat; TopCat; PEmpty; order-category instances; SingleObj |
Mathlib db584cd6…, v4.33.0 |
All named examples have standard category-theory realizations. Mathlib’s foundational set-like category is the universe-polymorphic category of types rather than a literal ZF category Set, and the finite ordinal-shaped examples use the generic order-category construction rather than source-specific names. |
FC01-AII-U005 |
exact match | mathlib |
Functor; Functor.map_id; Functor.map_comp; opposite category Cᵒᵖ |
Mathlib db584cd6…, v4.33.0 |
Covariant functors are the core Functor structure. A contravariant functor is a functor out of the opposite category, which reverses arrows and composition exactly as in the source. |
FC01-AII-U006 |
exact match | mathlib |
Functor.id; ObjectProperty.ι; forget; forget₂; GrpCat.abelianize; GrpCat.abelianizeAdj |
Mathlib db584cd6…, v4.33.0 |
Identity, inclusion/full-subcategory, forgetful, and group-abelianization functors are all explicit; the abelianization functor is moreover exhibited as the left adjoint to the inclusion/forgetful functor from commutative groups. |
FC01-AII-U007 |
exact match | mathlib |
linearYoneda; linearCoyoneda |
Mathlib db584cd6…, v4.33.0 |
In an R-linear category, fixing the target in linearYoneda gives Hom_R(-,D) and fixing the source in linearCoyoneda gives Hom_R(D,-), with pre-/postcomposition built into the morphism maps. Applied to ModuleCat R, this is the textbook pair exactly. |
FC01-AII-U008 |
exact match | mathlib |
MonoidalCategory.tensorLeft; MonoidalCategory.tensorRight; ModuleCat monoidal structure |
Mathlib db584cd6…, v4.33.0 |
The monoidal category of modules exposes tensoring by a fixed object on either side as functors. |
FC01-AII-U009 |
broad match | mathlib |
Module.Dual.transpose; Module.Dual.eval; leftDualFunctor; rightDualFunctor; rigid structure on FGModuleCat |
Mathlib db584cd6…, v4.33.0 |
Finite-dimensional vector-space duality is formalized through the rigid monoidal category of finite-generated modules over a field, and transpose gives contravariant action on maps; composing duality twice yields the double-dual endofunctor. No dedicated source-shaped declaration named as the double-dual functor surfaced. |
FC01-AII-U010 |
exact match | mathlib |
Functor.Faithful; Functor.Full; Functor.map_injective; Functor.map_surjective |
Mathlib db584cd6…, v4.33.0 |
The definitions are exactly injectivity and surjectivity of each hom-set map. |
FC01-AII-U011 |
exact match | mathlib |
NatTrans; NatTrans.naturality; NatIso.ofComponents; Iso in a functor category |
Mathlib db584cd6…, v4.33.0 |
A natural transformation is a family of components satisfying the naturality square, and a natural isomorphism is precisely an isomorphism in the functor category/equivalently componentwise isomorphisms. |
FC01-AII-U012 |
partial match / wrong interface | mathlib |
identity/zero natural transformations; GrpCat.abelianizeAdj.unit; Module.Dual.eval; Matrix.GeneralLinearGroup.map; Matrix.GeneralLinearGroup.map_det |
Mathlib db584cd6…, v4.33.0 |
Identity, zero, abelianization projection, and double-dual evaluation examples have direct categorical or linear-map owners. For determinant, pinned Mathlib proves the required naturality equation under every commutative-ring homomorphism, but no audited declaration bundles GL_n(-) and units as functors together with determinant as a NatTrans. |
FC01-AII-U013 |
exact match | mathlib |
Functor.comp; notation F ⋙ G; Functor.comp_map |
Mathlib db584cd6…, v4.33.0 |
Functor composition is defined objectwise and morphismwise exactly as in the source. |
FC01-AII-U014 |
exact match | mathlib |
Cat; Cat.Hom; Iso (Cat.of C) (Cat.of D) |
Mathlib db584cd6…, v4.33.0 |
An isomorphism between objects of the category Cat consists of functors in both directions whose composites are literally the identity morphisms in Cat, matching the source’s strict category-isomorphism notion. |
FC01-AII-U015 |
exact match | mathlib |
Equivalence; Equivalence.functor; Equivalence.inverse; Equivalence.unitIso; Equivalence.counitIso |
Mathlib db584cd6…, v4.33.0 |
This is exactly a pair of functors with the two composites naturally isomorphic to the respective identity functors. |
FC01-AII-U016 |
exact match | mathlib |
StructuredArrow; StructuredArrow.IsUniversal; Limits.IsInitial |
Mathlib db584cd6…, v4.33.0 |
Mathlib defines a universal structured arrow to be an initial object of the structured-arrow category, which expands to the source’s unique factorization property. |
FC01-AII-U017 |
exact match | mathlib |
Functor.Elements; Functor.RepresentableBy; initialOfRepresentableBy; isInitialOfRepresentableBy |
Mathlib db584cd6…, v4.33.0 |
Representability packages an object and universal element inducing the natural hom-set equivalence; the corresponding object in the category of elements is proved initial, exactly encoding the source’s unique representation of every element by a morphism from the universal object. |
FC01-AII-U018 |
broad match | mathlib |
ModuleCat.free; ModuleCat.freeHomEquiv; ModuleCat.adj; IsFractionRing.lift; IsFractionRing.lift_unique; TensorProduct.lift; TensorProduct.lift.unique |
Mathlib db584cd6…, v4.33.0 |
All three textbook examples have their universal mapping properties explicitly formalized: free modules via the free/forgetful adjunction, fraction fields via unique extension of maps sending denominators to units, and tensor products via the lift/uniqueness equivalence for bilinear maps. They are distributed across domain-specific APIs rather than bundled as instances of one universal-arrow record. |
FC01 completeness gate
Validated 2026-09-05 against the live canonical FC01 catalogue retrieved through agent-memory: 1,234 catalogue IDs, 1,234 mapping first-column IDs, no duplicates in either set, no missing IDs, and no extra IDs. Per-section counts agree exactly for C00–C19, Appendix I, and Appendix II. FC01 therefore satisfies the Mapping completion gate.