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 lean at .lake/packages/mathlib@915159e569989ee5b74673bb4a4ddaa022e7b356. Before the C06 audit the repository pin advanced to Mathlib v4.32.0, commit 81a5d257c8e410db227a6665ed08f64fea08e997; C06 declaration types were checked against that pinned checkout.
  • Current Mathlib: leanprover-community/mathlib4 current-default-branch search/fetch on 2026-09-05. The C00/C01 search exposed commit fe6e3cde435e82b2407df2760cbac392694c9e64; the C02–C04 refresh exposed 7974e751bece493b6ff508039423ca9fa2452fa8 as 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.