Repository navigation
refactor(Circuit): make 53 API and general declarations public again in Frontier, Fusion, Monotone and root modules (#926) - #932
Conversation
…in Frontier, Fusion, Monotone and root modules (#926) Earlier privatization passes (#841) hid these declarations because nothing outside their module used them. Under the privatize-by-intent rule of #926 they are library API or general mathematics, so they become public again. Only the word `private` is removed; statements, proofs and names are unchanged. Part of #587. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB
|
Review requested from |
|
Review claimed by reviewer-claude-c4b0c164-01 (agent review) at 5240148. |
|
reviewer-claude-c4b0c164-01 — APPROVED at 5240148 (delegated-review exception, AGENTS.md; classification: un-privatization, statement-preserving) Evidence: against merge base |
Makes 53 declarations in the Circuit Frontier, Fusion, Monotone, Cyclic, Encoding and root modules public again (47 API, 6 general mathematics), across 32 files. Earlier passes made them
privatebecause nothing outside their module used them (#841 (53)). Under the privatize-by-intent rule of #926, they are library API or general mathematics, so a later contributor should find them instead of re-proving them. Part of the audit tracked on #587.Each change deletes the word
private; no statement, proof or name changes, and no declaration moves.Classification rule (#926, CONTRIBUTING "Public surface under the module system"):
Complexity/Foundationsand are listed below as follow-ups, not moved here.The other privatized declarations in this area were judged PLUMBING and stay private.
The 53 declarations
card_programExceptions_leCircuit/Approximation.leancircuit_correctCircuit/Approximation.leancard_le_of_contains_ofColoringCircuit/Clique.leanelim_feedbackWireCircuit/Cyclic/Feedback.leanLine.code_mapOpCircuit/Encoding/MapOp.leanProgram.code_mapOpCircuit/Encoding/MapOp.leanProgram.lines_replaceGatesCircuit/Erase.leanProgram.lines_eraseGates_of_specialCircuit/Erase.leanProgram.lines_eraseGates_of_not_specialCircuit/Erase.leanProgram.arity_lines_eraseGatesCircuit/Erase.leanProgram.card_wireSupport_le_powCircuit/FanIn.leanagreement_add_agreement_complCircuit/Frontier/AverageCase.leanSmallSides.one_ltCircuit/Frontier/BranchingProgram.leanSmallSidesexists_natLog_le_mul_addCircuit/Frontier/Layouts/Basic.leanvertexCorrelation_lt_oneCircuit/Frontier/Layouts/BoundedDegree.leanncard_eq_sum_indicatorCircuit/Frontier/Layouts/Gaussian/Basic.leanncard_lt_of_not_le_absCircuit/Frontier/Layouts/Gaussian/Basic.leanmeasureReal_pi_eqCircuit/Frontier/Layouts/Gaussian/Basic.leanMaxDegreeLE.edgeRestrictCircuit/Frontier/Layouts/General.leanncard_inter_touchingCircuit/Frontier/Layouts/Local.leanexists_score_leCircuit/Frontier/Layouts/Median.leanIsMedianexists_le_scoreCircuit/Frontier/Layouts/Median.leanIsMedianncard_endpoints_leCircuit/Frontier/Layouts/Median.leanlogb_ncard_le_selfCircuit/Frontier/LowerBound.leantouching_eq_of_edgeCut_eq_emptyCircuit/Frontier/Multigraph.leantouchingfor cut-free setsconnectedComponentMk_srcCircuit/Frontier/Multigraph.leantoSimpleGraph_induceCircuit/Frontier/Multigraph.leanncard_edges_leCircuit/Frontier/Network.leanNetwork.branchingProgramncard_edges_last_leCircuit/Frontier/Network.leanNetwork.branchingProgramcycleRank_le_of_nondeterministicDecidesCircuit/Frontier/Nondeterministic.leanlogb_ncard_le_width_of_nondeterministicDecidesCircuit/Frontier/Nondeterministic.leaneventually_lt_innerSize_of_nondeterministicDecidesCircuit/Frontier/Nondeterministic.leanreadAt_reindexCircuit/Frontier/Projection.leanread_reindexCircuit/Frontier/Projection.leansignedCount_eq_two_mulCircuit/Frontier/Rectangle.leancoverComplexity_le_program_costCircuit/Fusion/Basic.leanpairCoverComplexity_le_econondeterministicAndComplexityCircuit/Fusion/Converse.leaneconondeterministicAndComplexity_le_pairCoverComplexityCircuit/Fusion/Converse.leanpairCoverComplexity_le_cyclic_costCircuit/Fusion/Cyclic.leanPairCover.computesFrom_toCircuitCircuit/Fusion/DeMorgan.leancard_le_two_pow_length_inequalityCircuit/Fusion/Graph/Inequality.leanPairCover.ecomplexityFrom_le_sqCircuit/Fusion/Quadratic.leanstages_succCircuit/Iteration.leanProgram.map_trace_polynomialInterpretationCircuit/Linearize.leanaffineInterpretation_taylorOpCircuit/Linearize.leanProgram.arity_lines_linearizeCircuit/Linearize.leanProgram.innerGates_linearizeCircuit/Linearize.leanProgram.fanInAtMost_linearizeCircuit/Linearize.leanprogram_fanInAtMost_twoCircuit/Monotone/Clique/Essential.leanrailBits_appendCircuit/Monotone/DualRail.leanrailBitsdualCode_appendCircuit/Monotone/DualRail.leandualCodeexceedsAt_run_monotoneKWProtocolCircuit/Monotone/KarchmerWigderson.leanmonotoneKWProtocol(Karchmer-Wigderson)Circuit.cost_program_withContextCircuit/SimulationContext.leanFollow-up: Foundations candidates. These general facts should move to
Complexity/Foundationsin a later change:exists_natLog_le_mul_add,ncard_eq_sum_indicator,ncard_lt_of_not_le_abs,measureReal_pi_eq,ncard_inter_touching,logb_ncard_le_self.Validation
At head
52401481(base36f94d8d),LEAN_NUM_THREADS=6 scripts/check.sh:python3 -B scripts/check_tidy_surface.py: 1301 public tidy statements in 225 modules, matching the baseline.python3 -B scripts/check_hygiene.py --check-simp: all hygiene checks passed.Abstracts. No impact: no statement, definition or curated abstract changes.
AI disclosure. Prepared with Claude Code as
worker-claude-privaudit-c4b0c164, delegated bycoordinator-claude-c4b0c164-20261023.🤖 Generated with Claude Code
https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB