Conversation
🤖 Gemini PR SummaryUpdates the project to Lean Infrastructure
Elaborator and Configuration
API Changes and Computability
Tactic and Proof Stabilization
Statistics
Lean Declarations ✏️ **Removed:** 19 declaration(s)
✏️ **Affected:** 3 declaration(s) (line number changed)
🎨 **Style Guide Adherence**The review of the provided diff has identified more than 20 violations of the style guide. The violations are grouped by rule below:
📄 **Per-File Summaries**
Last updated: 2026-03-28 19:47 UTC. |
Build Timing Report
Incremental Rebuild Signal
This compares a clean project build against an incremental rebuild in the same CI job; it is a lightweight variability signal, not a full cross-run benchmark. Slowest Current Clean-Build FilesShowing 20 slowest current targets, with comparison against the selected baseline when available.
|
🤖 Initial AI review without external context🤖 AI ReviewOverall Summary: 1. TL;DRThe mathematical refactoring and logic in this PR are mostly sound and contain several positive maintenance fixes. However, there are significant Lean 4 technical issues that need addressing—most notably, an unintentional loss of computability in the 2. Checklist CoverageNo explicit specification checklist was provided for this PR. 3. Key Lean 4 / Mathlib IssuesA. Legacy Transparency Override Anti-Pattern (4 files)
B. Computability Regression in Computable Multivariate Polynomials (1 file) def degreeOf {R : Type} {n : ℕ} [Zero R] (i : Fin n) : CMvPolynomial n R → ℕ :=
fun p => (Lawful.monomials p).foldl (fun acc m => max acc (CMvMonomial.toFinsupp m i)) 0Affected File: C. Duplicate Typeclass Instances (1 file) 4. Nitpicks & Lean 4 Best Practices
5. Overall VerdictChanges Requested 📄 **Review for `CompPoly/Bivariate/ToPoly.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Data/Nat/Bitwise.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Data/Polynomial/Frobenius.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Data/RingTheory/AlgebraTower.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks:
📄 **Review for `CompPoly/Data/Vector/Basic.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: (The only change in this pull request is updating the lemma name 📄 **Review for `CompPoly/Fields/Binary/AdditiveNTT/Correctness.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Fields/Binary/AdditiveNTT/Impl.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks:
📄 **Review for `CompPoly/Fields/Binary/AdditiveNTT/Intermediate.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Fields/Binary/AdditiveNTT/NovelPolynomialBasis.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: Explanation: 📄 **Review for `CompPoly/Fields/Binary/BF128Ghash/Basic.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Fields/Binary/Common.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Fields/Binary/Tower/Abstract/Algebra.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks:
📄 **Review for `CompPoly/Fields/Binary/Tower/Abstract/Basis.lean`**Verdict: Changes Requested Critical Misformalizations: Lean 4 / Mathlib Issues:
Nitpicks:
📄 **Review for `CompPoly/Fields/Binary/Tower/Abstract/Split.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Fields/Binary/Tower/Concrete/Algebra.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks:
📄 **Review for `CompPoly/Fields/Binary/Tower/Concrete/Basis.lean`**Verdict: Changes Requested Critical Misformalizations: Lean 4 / Mathlib Issues:
Nitpicks:
📄 **Review for `CompPoly/Fields/Binary/Tower/Concrete/Core.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: (The addition of 📄 **Review for `CompPoly/Fields/Binary/Tower/Concrete/Field.lean`**Verdict: Needs Minor Revisions Critical Misformalizations: Lean 4 / Mathlib Issues:
Nitpicks:
📄 **Review for `CompPoly/Fields/Binary/Tower/Equiv.lean`**Verdict: Changes Requested Critical Misformalizations: Lean 4 / Mathlib Issues:
Nitpicks: 📄 **Review for `CompPoly/Fields/Binary/Tower/Support/Preliminaries.lean`**Verdict: Needs Minor Revisions Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks:
📄 **Review for `CompPoly/Multilinear/Basic.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Multilinear/Equiv.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Multivariate/CMvPolynomial.lean`**Verdict: Changes Requested Critical Misformalizations: Lean 4 / Mathlib Issues: The noncomputability is almost certainly triggered by To fix this and restore computability, you can push the Corrected, computable version for def degreeOf {R : Type} {n : ℕ} [Zero R] (i : Fin n) : CMvPolynomial n R → ℕ :=
fun p =>
Finset.sup (List.toFinset (List.map CMvMonomial.toFinsupp (Lawful.monomials p)))
fun s => s i(Note: Changing Nitpicks: For example: def degreeOf {R : Type} {n : ℕ} [Zero R] (i : Fin n) : CMvPolynomial n R → ℕ :=
fun p => (Lawful.monomials p).foldl (fun acc m => max acc (CMvMonomial.toFinsupp m i)) 0(A similar list-folding optimization can be applied to 📄 **Review for `CompPoly/Multivariate/Lawful.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Multivariate/MvPolyEquiv/Core.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Multivariate/MvPolyEquiv/Instances.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Multivariate/Rename.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Multivariate/Restrict.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Multivariate/Unlawful.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/ToMathlib/MvPolynomial/Equiv.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `CompPoly/Univariate/Quotient/Core.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: Reviewer Notes: 📄 **Review for `CompPoly/Univariate/Raw/Proofs.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `lakefile.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks: 📄 **Review for `tests/CompPolyTests/Univariate/Linear.lean`**Verdict: Approved Critical Misformalizations: Lean 4 / Mathlib Issues: Nitpicks:
|
Thanks Claude! Bumps to v4.29.0-rc6
CHANGELOG
v4.28.0→v4.29.0-rc6; Mathlibv4.28.0→v4.29.0-rc6; ExtTreeMapLemmasv4.28.0-patch-1→v4.29.0-rc6(lean-toolchain,lakefile.lean,lake-manifest.json).rw→erw,Quotient.eq→Quotient.soundon quotient descent lemmas, strictersimp→ dropped unused args,simp (config := { failIfUnchanged := false }), highermaxHeartbeats/maxStepswhere needed).set_option backward.isDefEq.respectTransparency false(file-scoped):Fields/Binary/Tower/Concrete/{Field,Algebra,Basis}.lean,Fields/Binary/Tower/Equiv.lean; scoped on theorems inTower/Abstract/Basis.lean,Tower/Support/Preliminaries.lean,ToMathlib/MvPolynomial/Equiv.lean(support_finSuccEquivNth).@[reducible]added on various class-valued defs (e.g.Data/RingTheory/AlgebraTower.leantoAlgebra+AlgebraTowerEquivalgebra defs; abstract/concrete binary tower algebra/module/scalar-tower helpers;Concrete/CoremkAddCommGroup/mkRing/mkDivisionRing/mkField;Concrete/FieldliftConcreteBTField).noncomputable:CBivariate.ofPoly;CMvPolynomial.degreeOf/degrees/vars;getBTFResult;Fintypeinstances forConcreteBTField kand testBTF₃.Lawful.lean/Unlawful.lean:set_option allowUnsafeReducibility true+attribute [local reducible] instDecidableEqOfLawfulBEq;mem_iff/zero_eq_emptyproof tweaks.Nat.cast_le→ENat.coe_le_coe(ENat floor lemma);Array.sum_eq_sum_toList→Array.sum_toList;List.extract_eq_drop_take→List.extract_eq_take_drop.ENNReal.mul_inv_rev_ENNReal: statement now onlyha : a ≠ 0(dropshb); proof viaENNReal.mul_inv.erw,convert,conv, andsimplist edits;NovelPolynomialBasis:degree_XⱼWithBot cast path reworked, redundantCoeffVecSpaceAddCommGroupinstance removed,toCoeffsVec.map_smul'unfolded;Split.leanunique_linear_decomposition_succandsplit_algebraMap_eq_zero_xproofs reworked.Multivariate/MvPolyEquiv/Instances.lean:Finsupp.single/single_eq_*steps adjusted for new simp behavior.Rename.lean:toFinsupp_zerofinishes withVector.getElem_zero.Univariate/Linear.lean: test-localBEqdefs@[reducible];LawfulBEqproofs useerwonbequnfolds.