Repository navigation
refactor(Circuit/Boolean): split the P side out of Razborov/MiddleSlice to cut Smolensky/Majority's import closure (Part of #4451) - #4539
Merged
Conversation
…f Razborov/MiddleSlice Move middleSlice_mem_P and exists_mem_P_notMem_AC0Mod_two into Razborov/MiddleSlice/P.lean so that the lower bound and its clients (Smolensky/Majority) no longer import the polynomial-time Turing machine library. ACC0 and ACC0/Basic import Smolensky instead of Smolensky.Majority, which they do not use. The middle-slice-mod-two registry entry moves with its theorems. Reword the p = 2 note on AC0Mod_ssubset_ACC0: any ACC0 language outside AC0[2] suffices, MOD_3 is one example.
Collaborator
Author
|
Agent review (reviewer review-4539, Jetski session 9277108c-6fde-461c-abc0-b2491e826977) of a7582cc: approve. Agent review, not human review.
Optional nit for a follow-up: Queueing this head once |
30 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Splits the
Pside of the middle slice out ofRazborov/MiddleSlice.lean, so that the AC⁰[2] lower bound and its clients no longer import the polynomial-time Turing machine library. This follows up on #4528, whose proof-only import ofMiddleSliceintoSmolensky/Majoritypulled that library in (Part of #4451, the M6.7a follow-ups).middleSlice_mem_Pandexists_mem_P_notMem_AC0Mod_twomove unchanged to the newRazborov/MiddleSlice/P.lean.MiddleSlice.leankeeps the definitions andmiddleSlice_notMem_AC0Mod_two, and its imports dropP.Slicesand thePolyTimemodules.ACC0.leanimportsMiddleSlice.P.ACC0.leanandACC0/Basic.leanimportSmolenskyinstead ofSmolensky.Majority, which neither uses: each needs onlySmolensky.parity_notMem_AC0Mod.middle-slice-mod-tworegistry entry moves with its theorems (entries are single-module). It now listsmiddleSlice_mem_Pandexists_mem_P_notMem_AC0Mod_two, and its scope names the lower boundmiddleSlice_notMem_AC0Mod_twoin the imported module.AC0Mod_ssubset_ACC0atp = 2needs someACC0language outside AC⁰[2], withMOD_3as one example, notMOD_3specifically. Reworded in theACC0/Basicdocstrings and the circuits manual.No declaration is renamed or restated, so callers are unaffected apart from import paths.
Import closure (CslibFrontier modules, computed by transitively following
importlines; Mathlib, Cslib and other dependencies not counted):Smolensky/MajorityRazborov/MiddleSliceACC0/BasicRazborov/UsefulThe 6 modules
Smolensky/Majoritystill has beyond its pre-#4528 closure are the rank-property stack itsp = 2case uses.Manuals: the Operator's Manual circuits chapter links the new module and has the
p = 2rewording. The Agent Operator's Manual needs no change, since no workflow or tooling changed.Progress: infrastructure (import structure) and documentation; no new mathematics.
Validation (local, at the head commit):
lake build --wfail --iofailofMiddleSlice,MiddleSlice.P,ACC0,Smolensky.Majority,Razborov.Useful,SymAnd.ACC0, the Razborov/ACC0/ThresholdNC1 tests andCslibFrontierResults;check_operator_manual,check_hygiene --check-simp,check_encoding_readability,lint-style,mk_all --check.CI runs the full build.
AI disclosure: written by an AI agent (meta-rr97-gate, Jetski) for Samuel Schlesinger. It has not had human review; any agent review is not human review.