Repository navigation
refactor(Foundations,Probability,Languages): make 41 API and general declarations public again (#926) - #938
Conversation
…declarations public again (#926) Earlier privatization passes (mostly #628) 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 86669f9. |
|
reviewer-claude-c4b0c164-01 — APPROVED at 86669f9 (delegated-review exception, AGENTS.md; classification: un-privatization, statement-preserving) Agent review, not human approval. Against merge base The #926 spot-check is consistent: these are Foundations and Probability facts stated in terms of public definitions, for example Nonblocking: |
Makes 41 declarations in Foundations, Probability and Languages public again (28 API, 13 general mathematics), across 29 files. Earlier passes made them
privatebecause nothing outside their module used them (#628 (31), d5aa083 (5), ef44ce8 (2), 528d3fe (1), #691 (1), 10c4f69 (1)). 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/Foundationsbelong there; they are listed below as follow-ups, not moved here.The other privatized declarations in this area were judged PLUMBING and stay private.
The 41 declarations
bernoulliWeight_splitFoundations/BooleanAnalysis/Bernoulli.leansum_mul_log_geFoundations/BooleanAnalysis/Fibers.leanexpect_log_card_fiberFoundations/BooleanAnalysis/Fibers.leanprojectionAverage_cons_falseFoundations/BooleanAnalysis/HarmonicTransform.leanprojectionAverage_cons_trueFoundations/BooleanAnalysis/HarmonicTransform.leanharmonicTransform_cons_falseFoundations/BooleanAnalysis/HarmonicTransform.leanharmonicTransform_cons_trueFoundations/BooleanAnalysis/HarmonicTransform.leanexpect_mul_noiseOp_mul_leFoundations/BooleanAnalysis/Hypercontractivity.leanabs_derivative_signVal_rpowFoundations/BooleanAnalysis/Hypercontractivity/Derivative.leanchi_update_not_of_memFoundations/BooleanAnalysis/Hypercube.leansum_filter_mem_fourierCoeff_sq_div_card_le_influenceFoundations/BooleanAnalysis/KahnKalaiLinial.leaninfluenceexists_subset_card_eq_mul_sum_leFoundations/Combinatorics/AffineDisperser.leaneventually_mul_pow_le_two_powFoundations/Combinatorics/AffineDisperser/Threshold.leantendsto_log_two_atTopFoundations/Combinatorics/AffineDisperser/Threshold.leancard_middle_leFoundations/Combinatorics/CentralBinomial.leanexpect_walkDart_mkFoundations/Combinatorics/Expander/Walk.leanminimalPeriod_eq_of_periodic_iteratesFoundations/Combinatorics/FunctionalGraph/Cycle.leanforestPath_stepFoundations/Combinatorics/FunctionalGraph/ForestIntervals.leanforestPath_iterate_prefixFoundations/Combinatorics/FunctionalGraph/ForestIntervals.leantwo_ne_of_maj3_neFoundations/Combinatorics/MajorityTree.leancard_filter_extensions_free_eqFoundations/Data/BitString/PartialAssignment/Counting.leancard_filter_extensions_not_nonempty_interFoundations/Data/BitString/PartialAssignment/Counting.leancard_filter_extends_withFreeFoundations/Data/BitString/PartialAssignment/Counting.leancard_filter_outside_eqFoundations/Data/BitString/PartialAssignment/Counting.leanshortWords_eq_biUnionFoundations/Data/BitString/ShortWords.leancard_filter_filter_ne_eqFoundations/Data/Code/HammingBound.leanmulPrefix_succFoundations/Data/Nat/Bitwise/Multiplication.leanmulPrefixmulCarry_succFoundations/Data/Nat/Bitwise/Multiplication.leanmulCarrylistBlank_mk_cons_toListFoundations/Data/StackTape.leanexists_code_irreducibleFoundations/FieldTheory/Finite/BinaryField.leanlinearizedEval_sub_mulFoundations/FieldTheory/Finite/LinearizedPolynomial.leanspan_range_row_submatrix_eq_mapFoundations/LinearAlgebra/Matrix/CutRank.leanncard_preimage_add_ncard_preimage_leFoundations/LinearAlgebra/Matrix/SubmatrixRobust.leaneval_extract_ofFnLanguages/Probabilistic/LinearHash.leanuniform_prefixProbability/BitString/LinearHash.leanapply_le_map_fstProbability/Conditioning.leanmean_conditionalEntropy_hash_leProbability/HashIsolation.leanconditionalEntropy_map_restrict_leProbability/Shearer.leanentropy_map_restrict_univProbability/Shearer.leanexpect_signVal_dotProductProbability/SmallBias/Powering.leancard_filter_sum_pow_eq_zero_leProbability/SmallBias/Powering.leanValidation
At head
86669f9f(base9a1dc195),LEAN_NUM_THREADS=8 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