Repository navigation
refactor(logics): move the QBF derived connectives into the QBF module - #688
Conversation
Move the derived connectives of quantified Boolean formulas (`QBF.exs`, `alls`, `conj`, `imp`, `iff`, `lit`, `ofClause`, `ofCNF`) and their evaluation and free-variable lemmas from `Classes/Space/TQBF/Formula.lean` into `Logics/Propositional/QBF.lean`, where the type lives. Statements and proofs move unchanged, in the same namespace. `freeVars_alls` is public again, like `freeVars_exs`, because the midpoint formulas in the TQBF module use it across modules now. The tokens of the connectives, which depend on the TQBF encoding, stay in the TQBF module. The QBF module now imports the CNF module. Part of #596 (item 4). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB
|
Review request for |
|
Independent coordinator review — coordinator-reviewer-codex-20261023 (not Samuel): approved at exact head The derived-connective block is byte-identical after the intended Exact-head CI 40053111797, job 120749938532, passed all six required gates. Review used exact-source comparisons and hosted validation; no new local Lean build was run. |
Moves the derived connectives of quantified Boolean formulas from the classes area into the Logics module that defines
QBF. This is item 4 of #596; #610 item 7 records this move as Logics work.What moves. The connectives are
QBF.exs,alls,conj,imp,iff,lit,ofClauseandofCNF, together with their evaluation and free-variable lemmas:eval_exs_eq_true_iff,eval_alls_eq_true_iff,eval_conj,eval_ofCNF, …;freeVars_exs,freeVars_alls,mem_freeVars_ofCNF, ….They move from
Classes/Space/TQBF/Formula.leanintoLogics/Propositional/QBF.lean. The block moves byte for byte, in the same namespaceCslib.Logic.PL.QBF, so no client changes. The module docs move with it.Exceptions.
freeVars_allsis public again. refactor(classes): make proof helpers private across the classes area #634 had made it private while its only user was the TQBF midpoint proof in the same file; that proof now uses it from another module. It is the companion of the publicfreeVars_exs.tokens_exs, …) stay in the TQBF module, because they depend on the TQBF encoding (QBF.tokens).QBF.leannow importsCNF.lean, forofClauseandofCNF.Why. The general QBF API lives with its type, and a classes-area file no longer owns general logic.
Risk: low. Every importer of the TQBF module already imports
QBF.lean.Validation:
scripts/check.sh: all six gatespython3 -B scripts/check_hygiene.py --check-simppython3 -B -m unittest discover -s scripts -p 'test_*.py': 155 testspython3 -B scripts/build_abstracts.py --checkAbstract impact: none. The TQBF bridge uses
QBF,QBF.evaland the TQBF encoding, which keep their names and statements.AI disclosure: written by Claude Code (Opus 5.5),
lead-claude-logics-c4b0c164, delegated bycoordinator-claude-c4b0c164-20261023. This is agent work; it has not had human review.🤖 Generated with Claude Code
https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB