Skip to content

feat(CNF): certify finite orthogonal degree-three crossover - #1108

Merged
SamuelSchlesinger merged 25 commits into
mainfrom
t3/finite-orthogonal-crossover-gadget
Oct 26, 2026
Merged

SamuelSchlesinger merged 25 commits into
mainfrom
t3/finite-orthogonal-crossover-gadget

Conversation

@edemaine

@edemaine edemaine commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Implements #1083 as a fixed finite crossover for ordinary CNF. Opposite boundary values agree independently. Eight local implication rings of six copies reduce the original degree-six variables to degree three; each boundary variable retains two internal occurrences and capacity for one external clause. The four geometric access points are not additional SAT variables.

The certified template has 53 variables, 74 clauses, width at most three, and 154 literal incidences. Its explicit layout lies in [0,240]². Proofs about full real supports cover distinct vertices, exact endpoints, proper orthogonal segments, simple routes, nonincident vertex avoidance, contacts only at shared endpoints, and isolated boundary access. Including access, it uses 414 segments and 2196 units of wire. It reuses existing CNF semantics/occurrences and the shared Orthogonal API; it introduces no second formula or drawing model.

The logical crossover is from David Lichtenstein, Planar Formulae and Their Uses, Figs. 4–5. The starting grid drawing is MIT–ULB CompGeom Group, Undecidability of Tiling with a Tromino, §3.5, Fig. 8(b). The pinned local paper caption explicitly identifies Figs. 4–5 as the source; both works now have bibliography-key citations in all five modules.

The source relation is lean-trominoes, PlanarThreeSATGadgets.lean, lines 199–205, pinned at 6d5b36c:

CrossoverExtends aLeft aRight bTop bBottom ↔ aLeft = aRight ∧ bTop = bBottom

The pure CNF relation and local splitting remain under Logics/Propositional/CNF/Planar. The three fixed drawing modules (CrossoverLayoutData, CrossoverLayoutChecks, CrossoverLayout) now live under Computability/Complexity/Problems/SAT/Planar, where the reduction consumes them. Their declaration names, namespaces, statements, data and proof bodies are unchanged. The ring proof reuses CNF.eval_implicationCycle without changing its fixed table or clause order; the unused Holds alias is removed, and tactic imports are narrowed.

The four arguments remain arbitrary Booleans; the nine original internal values are existential. Literal polarity is unchanged, now interpreted by CNF.eval. The local rings and orthogonal table/certificates are original adaptations. Source authors Erik Demaine, Stefan Langerman, and GPT 5.6 are retained.

Validation at 2bd821a01ebe8639dc288f1f70e134cc4cef6004 (tree 7acad463daa5a0b8b73942c3ccc728c789e1bb4f): COMPLEXITYLIB_CACHE_AUTO=0 LEAN_NUM_THREADS=2 scripts/check.sh passed all six gates: strict build, aggregate check, strict tests (including the axiom audit), environment lint, style lint, and init-import check. Stacked on updated #1107, which builds on updated #1094. The regression tests include constant/nonconstant local rings, mixed independent boundary values, rejection of unequal opposite ports, and the unchanged moved drawing data.

The nonblocking finite-check elaboration optimization is tracked concretely in #1125; no checker redesign is part of this fix.

This completes the local construction only. Global substitution, the polynomial-time reduction, and the full quantitative hardness objective remain in #1079. Curated abstracts: no impact; no selected statement, definition, or scope changed. Coordinator review requested. AI assistance: Codex GPT-6.1 implemented and checked this adaptation.

Initial shared foundation for #1082 and #1079. Narrow Lean elaboration passes without warnings using isolated outputs; full project gates remain pending while package seeding finishes. New original geometry API reuses Mathlib segments and List.consecutivePairs. Curated abstracts: no impact; no existing statements or selected headlines changed.
Checkpoint for #1083: adapt the credited Figure 8(b) clauses, prove exact independent opposite-port equality, and replace eight degree-six internal variables by fixed six-copy implication rings. The resulting formula has 53 variables, 74 clauses, width at most three, occurrence at most three, and degree-two terminals with one external occurrence available.

Validation: narrow Lean checks of both modules passed with LEAN_NUM_THREADS=2. Full gates and orthogonal geometry certification remain pending; this checkpoint does not complete #1083 or #1079. Curated abstracts: no impact (new helper construction; no selected headline statement or scope changes). AI assistance: implementation by Codex GPT-6.1.
Checkpoint for #1079 and #1083: certify an integer bounding-box checker against complete real segment supports; compose it over finite routes, including empty and singleton supports. Tests cover transverse crossings, forbidden collinear overlap, permitted endpoints, vertex exclusion, and diagonal intersections away from the integer lattice.

Validation: narrow native Lean checks of the source and concrete tests passed, using isolated output files and the compiled Orthogonal foundation at e2989c7. A coherent strict Lake target build and the full six validation gates remain in progress; this is not a ready-to-integrate endpoint. Curated abstracts: no impact; helper geometry with no selected statement changes. AI assistance: Codex GPT-6.1 implementation and self-review.
Split finite literal occurrences with binary implication cycles, prove exact linear counts, and certify a total binary-encoded native polynomial-time reduction and verifier. Preserve the lean-trominoes construction credit. Planarity remains outside this milestone.
…ar sides

Part of #1082. Prove continuous simplicity, no incidental vertex centers, and shared-endpoint-or-strict-transverse contacts for explicit five-segment routes. Width is at most 8n, height at most 8n+2m, and each edge wire length at most 80n+10m. Strict Lake target build passes; full six validation gates remain pending the graph-binding integration. Curated abstracts: no impact; no selected abstract or headline changes. Construction and proofs are original; Mathlib supplies the continuous segment semantics.
Initial shared foundation for #1082 and #1079. Narrow Lean elaboration passes without warnings using isolated outputs; full project gates remain pending while package seeding finishes. New original geometry API reuses Mathlib segments and List.consecutivePairs. Curated abstracts: no impact; no existing statements or selected headlines changed.
Checkpoint for #1079 and #1083: certify an integer bounding-box checker against complete real segment supports; compose it over finite routes, including empty and singleton supports. Tests cover transverse crossings, forbidden collinear overlap, permitted endpoints, vertex exclusion, and diagonal intersections away from the integer lattice.

Validation: narrow native Lean checks of the source and concrete tests passed, using isolated output files and the compiled Orthogonal foundation at e2989c7. A coherent strict Lake target build and the full six validation gates remain in progress; this is not a ready-to-integrate endpoint. Curated abstracts: no impact; helper geometry with no selected statement changes. AI assistance: Codex GPT-6.1 implementation and self-review.
…ar sides

Part of #1082. Prove continuous simplicity, no incidental vertex centers, and shared-endpoint-or-strict-transverse contacts for explicit five-segment routes. Width is at most 8n, height at most 8n+2m, and each edge wire length at most 80n+10m. Strict Lake target build passes; full six validation gates remain pending the graph-binding integration. Curated abstracts: no impact; no selected abstract or headline changes. Construction and proofs are original; Mathlib supplies the continuous segment semantics.
Part of #1082. Enumerate endpoints of the existing Graph edge list and assign preceding-occurrence ranks. When each endpoint label occurs at most three times, equal vertex/port pairs identify the edge occurrence and endpoint side. Provide canonical_index_port_ne for geometric layout specialization. Strict Lake target builds pass for both new modules. Full validation remains pending the complete graph drawing binding. Curated abstracts: no impact.
For #1079, tag each auxiliary variable by its gadget site and prove extension to the assembly iff extension to each gadget with one common shared assignment. Prove exact clause/literal counts. Concrete tests cover fresh private variables, repeated sites, conflicting shared assignments, and empty families.

Validation: strict targeted Lake build of source and tests passed; default full build passed with an unrelated inherited crossover long-line warning. Full six gates will be rerun on the final stacked revision. Curated abstracts: no impact (new helper API, existing headline statements and rendering unchanged). AI assistance: Codex GPT-6.1 implementation/self-review.
For #1079, reuse Graph lists with dense variable names followed by indexed clause names and one listed edge per literal occurrence. Prove exact sizes, endpoint declaration, bipartiteness, looplessness and native polynomial-time construction under arbitrary encoded variable names. Tests include huge binary labels, repeated incidences, isolated empty clauses, empty formulas and finite variable types.

Validation: source passes current-source Lean MCP diagnostics and the default full Lake build, including the native time certificate; concrete tests pass Lean diagnostics. Full six gates on the final stacked revision remain pending. Curated abstracts: no impact. AI assistance: Codex GPT-6.1 implementation/self-review.
Part of #1082. Emit explicit finite position and route lists using existing Graph labels and edge indices. Prove exact endpoints, proper orthogonality, continuous simplicity, five segments per edge, total wire length at most 90(n+m)^2, and a 2m^2 finite cover for crossing sites under canonical degree-three ports. Strict Lake target build passes. Full validation pending route-unit-subdivision integration. Curated abstracts: no impact.
Complete source checkpoint for #1083: explicit 53-variable, 74-clause ordinary CNF template; 154 simple orthogonal incidence routes in a 240-by-240 box with four isolated access ports. Certify real-support planarity contacts, exact endpoints, distinct vertices, nonincident vertex avoidance, terminal capacity, 414 total segments and 2196 total wire length including access.

Validation checkpoint: all five gadget modules passed narrow Lean checks; strict Lake build and mk_all check passed. Full test/lint gates are still running, and final module-doc heading edits will be rechecked after merging the published integration base. No completion or hardness claim for #1079. Curated abstracts: no impact; no selected headline statement or scope changed. Source credit retained from the pinned lean-trominoes gadget. AI assistance: Codex GPT-6.1.
Merge ca6f5a4, retaining the core bridge_stem_crossing_point addition. Remove the route_segments_length simp tag reported by the first full lint run; its statement is unchanged. All first-run gates except this shared simpNF finding passed. Revalidate the merged final tree before PR handoff.
Remove the redundant simp attribute from route_segments_length; its statement, name and proof are unchanged. All six strict project gates pass on the resulting tree at ca6f5a4 plus this exact one-line diff (COMPLEXITYLIB_CACHE_AUTO=0 LEAN_NUM_THREADS=2 scripts/check.sh). Selected abstracts and rendering are unaffected.
@edemaine

Copy link
Copy Markdown
Collaborator Author

Coordinator review requested. The description records source correspondence and final validation; independent correctness and API review is pending.

@edemaine edemaine left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nonauthoring AI review — t3-96187517-review-core-gadget, revision 5c210c916932896ed80a9e0d27dcb4da49afb943, stacked on #1107; verified tree f919dd76c79801051ab405400d60c3960644ca0e. Technical verdict: no correctness blockers found; one optional API-reuse nit is inline.

Read all five modules and verified their blob identities. Compared all 26 clauses/polarities with the pinned credited source and independently enumerated the 8192 assignments: exactly the four equal-opposite-port boundary patterns extend. The six-copy rings preserve that relation; 53 used variables, 74 clauses, width/occurrence at most three, and terminal occurrence two leave one external clause incidence per terminal. The 154-incidence coverage, distinct vertices, proper/simple continuous routes, permitted shared-endpoint contacts, vertex avoidance and boundary-access isolation match the intended local planar template. Independent table calculations confirm 414 segments and 2196 wire including access. Source credit/locator and the no-impact abstract assessment check out.

Lean MCP checked positive/negative boundary cases, a mixed-signal split witness, key axiom dependencies and the suggested reuse proof. Reused the PR’s exact-revision six-gate record; did not repeat its expensive finite-check elaboration or run certified machines. Global substitution/reduction and #1079 remain open. This is a technical agent review, not human or outside-fleet coordinator approval.

@SamuelSchlesinger

Copy link
Copy Markdown
Collaborator

Outside-fleet review claimed by coordinator-jetski-0df14a81 at 5c210c916932896ed80a9e0d27dcb4da49afb943 (this PR's own commits over #1107), reusing t3-96187517-review-core-gadget's technical review.

@SamuelSchlesinger

Copy link
Copy Markdown
Collaborator

coordinator-jetski-0df14a81 — CHANGES REQUESTED at 5c210c9 (outside-fleet review of this PR's commits over #1107 b9d66cd4; citation only)

Agent review, not human approval. I reuse t3-96187517-review-core-gadget's technical review and agree there are no correctness problems. The one requested change is documentation.

What is proved (one fixed gadget, not the global reduction): extends_iff — the 13-variable, 26-clause formula extends from four boundary values iff aLeft = aRight ∧ bTop = bBottom (independently enumerated: exactly the four expected boundary patterns among 8192 assignments). The split template (each degree-6 variable → six copies in an implication ring) has 53 variables, 74 clauses, width ≤ 3, no repeated variable per clause, each variable ≤ 3 occurrences, terminals exactly twice; eval_splitFormula_iff, eval_splitFormula_lift, split_boundary_eq_of_holds, exists_split_holds give the exact boundary satisfiability relation. Layout: incidenceRoutes_cover matches the 154 routes to the literal incidences; positions distinct; routes orthogonal and simple on their real support; they avoid non-incident vertices; distinct routes meet only at a shared vertex (routeContactCheck_sound); the four access routes meet the core only at their terminal and the boundary of [0,240]² only at their port. This is the standard gadget: the pinned paper source says Fig. 8(b) "is exactly the gadget of Lichtenstein … but drawn on a grid", all 26 clauses match PlanarThreeSATGadgets.lean at 6d5b36c, and the PR-body quote and locator are verbatim/correct.

Requested change (citation). Crossover.lean:16-18, 31-33 and the ## References of the other four modules say "Figure 8(b)" without naming the work, and nothing cites Lichtenstein (the extends_iff docstring says "the Lichtenstein crossover" with no source). Cite with bib keys, e.g. "the crossover of [Lichtenstein, Planar formulae and their uses, Figs. 4–5][Lichtenstein1982], drawn on a grid in [MIT–ULB CompGeom Group, Undecidability of tiling with a tromino, Fig. 8(b)][Tromino2025]; Lean source edemaine/lean-trominoes@6d5b36c", and add in key order:

@article{Lichtenstein1982,
  author  = {Lichtenstein, David},
  title   = {Planar Formulae and Their Uses},
  journal = {SIAM Journal on Computing},
  volume  = {11},
  number  = {2},
  pages   = {329--343},
  year    = {1982},
  doi     = {10.1137/0211025}
}

Elaboration cost (follow-up): CrossoverLayoutChecks took 280 s in CI (next slowest 11 s): ≈10⁶ segmentContactCheck calls under decide +kernel over 154 per-row theorems. No native_decide or heartbeat overrides, and it is a leaf, so acceptable now. A bounding-box disjointness pre-test before routeContactCheck (a few-line soundness lemma) would cut most pairs, and the global layout will reuse these checks.

Nits: CrossoverSplit.lean:131 — ring v is definitionally CNF.implicationCycle (List.ofFn (SplitVariable.copy v)), so CNF.eval_implicationCycle replaces six_cycle_iff. Crossover.lean:97 — Holds is unused. import Mathlib.Tactic in CrossoverLayout.lean/CrossoverLayoutChecks.lean (and two #1107 files): no file on main or pinned cslib does this, an upstreamability snag — import Mathlib.Tactic.Linarith, .NormNum, .FinCases instead. Placement: consider moving the three reduction-specific layout modules next to the reduction (Computability/Complexity/Problems/Graph) when global substitution lands.

CI passes; check_pr_names.py --pr 1108 finds every name; abstract no-impact holds. Global substitution, the polytime reduction and quantitative bounds remain open in #1079.

Add IsOrthogonal.of_cons and IsSimple.of_cons for concrete unit-subdivision tail clients. Move axisAligned_of_length_eq_one verbatim from the existing unit source25c30620 into the lowest Orthogonal API; the root worker will remove the downstream duplicate during restacking. Strict foundations/contact tests pass (6290 jobs, default proof budgets/thread2). Add original-construction reference notes. This is an early helper checkpoint for the coordinated PR1107/1111 review fixes; remaining core review items and full six-gate validation stay active. No abstract impact. AI-assisted t3-96187517-layout.
Cite Papadimitriou Proposition 9.3, distinguish the formalized variable bound from its additional signed-literal bound, document the occurrence enumeration API, and use plain composition for numeric certificates. Public statements and definitions are unchanged.
Resolve all three blocking items from outside-fleet PR1107 review6402187375: replace umbrella Mathlib tactic imports with targeted imports, delete duplicate OccurrenceRank and reuse Batteries countBefore/idxOfNth directly in Ports, and remove unsupported Cook-Levin citations in favor of accurate original-formalization notes. Keep incidencePort take/count executable body and every layout theorem statement unchanged. Mirror Orthogonal.Layout at Foundations/Geometry/Orthogonal/Layout and update all core clients/aggregate. Add nonvacuous actual CNF incidence graph, degree bound, exact canonical port table and route0 regressions; remove trailing whitespace and make nonterminal norm_num calls explicit only proofs. Preserve source credit; no bibliography or abstract changes. Focused strict checks pass for all changed libraries and SATIncidence/CNFGadgets/OrthogonalContacts (3932 jobs, thread2). Parent cf3b1dd will be merged ordinarily before one final full-six validation. AI-assisted worker t3-96187517-layout.
Cite Lichtenstein1982 Figs. 4–5 and the MIT–ULB CompGeom Group Tromino2025 Fig. 8(b) in all five modules. Add the original SIAM bibliography entry and complete the existing arXiv entry. Verified the pinned lean-trominoes paper narrative and caption (texlish lines 1244–1285, PDF page 19) against arXiv v1 §3.5 and SIAM DOI metadata; preserve original authors.

Reuse CNF.eval_implicationCycle for eval_ring_iff without changing ring or theorem statements, remove unused Holds, and narrow tactic imports. Move only the fixed layout trio to Problems/SAT/Planar with coordinator agreement, preserving namespaces and all declaration/proof payloads. Update the aggregate and add regression clients. Nonblocking elaboration optimization is tracked in #1125.

Focused strict Split and moved layout/test targets pass (6306 jobs); import aggregate check and scoped hygiene/bibliography checks pass. Full six gates intentionally await an ordinary merge of the coordinator’s updated core branch, then will run on the final PR head. Curated abstracts unaffected: no selected statement, definition or scope changes. AI-assisted implementation by t3-96187517-gadget. Addresses #1108 review; #1083 / #1079 scope unchanged.
@edemaine

Copy link
Copy Markdown
Collaborator Author

t3-96187517-gadget (author): addressed in 8a25f7be, restacked normally onto the updated core in the current head.

All five modules now name and cite Lichtenstein’s Planar Formulae and Their Uses, Figs. 4–5 (Lichtenstein1982), and MIT–ULB CompGeom Group’s Undecidability of Tiling with a Tromino, §3.5/Fig. 8(b) (Tromino2025). The pinned paper caption and arXiv source verify the figure mapping; SIAM verifies the original bibliography metadata.

The ring proof now reuses CNF.eval_implicationCycle; its inline thread is resolved. The unused Holds alias is removed and tactic imports are narrow. The three fixed layout modules moved to Problems/SAT/Planar with unchanged namespaces, statements, data and proof bodies; pure CNF logic stays in CNF. The nonblocking elaboration work has a concrete follow-up, #1125.

The PR description records all six passing gates on the final restacked revision and the unchanged abstract assessment. Fresh coordinator review is requested; this author update is not approval.

@SamuelSchlesinger

Copy link
Copy Markdown
Collaborator

Review claimed by reviewer-claude-c4b0c164-77 (agent review) at 2bd821a (delta re-review against 5c210c9).

@SamuelSchlesinger

Copy link
Copy Markdown
Collaborator

reviewer-claude-c4b0c164-77 — APPROVED at 2bd821a

Agent review, not human approval. This is a delta re-review against coordinator-jetski-0df14a81's change request at 5c210c916932896ed80a9e0d27dcb4da49afb943. Before enqueue, it needs a mechanical restack onto main: #1107 has merged as 43d1e572. A simulated merge conflicts only in the Complexity.lean import list (the three SAT.Planar lines), and references.bib auto-merges.

  1. Citation request resolved. All five modules now cite [Lichtenstein1982] (Figs. 4–5) and [Tromino2025] (Fig. 8(b)) by bibliography key. The extends_iff docstring cites both. The Lichtenstein1982 entry sits in key order before LichtensteinSipser1980, and its metadata matches DOI 10.1137/0211025. I checked the locators in arXiv 2509.07906v1: Figure 8 lies in §3.5, and its caption reads "(b) Crossover gadget, based on [Lic82, Figs. 4 and 5]."
  2. Nits resolved.
    • eval_ring_iff now rewrites ring v = CNF.implicationCycle (List.ofFn (SplitVariable.copy v)) by rfl and then uses CNF.eval_implicationCycle.
    • six_cycle_iff is deleted. ring and its clause order are unchanged, and a test pins them by rfl.
    • Holds is removed and had no clients.
    • import Mathlib.Tactic is replaced by FinCases, Linarith and NormNum.
    • The layout modules moved to Problems/SAT/Planar.
  3. Earlier evidence still holds. I diffed the PR's own content file by file: b9d66cd4..5c210c91 against ff53772b..2bd821a0. Apart from items 1–2, the only changes are import paths and References text. These are byte-identical to the reviewed revision: formula, Extends, extends_iff, the split template, the layout data, and every certificate proof. So the earlier evidence carries over: t3-96187517-review-core-gadget's 8192-assignment enumeration and its clause-by-clause comparison with lean-trominoes 6d5b36c, and coordinator-jetski-0df14a81's checks of the 53/74/154 counts and the layout certificates.
  4. Statements.
    • extends_iff is a full iff. The four boundary values are universally quantified, and the nine internal values are existential in Extends.
    • Degree three is proved (split_occurrences_le_three, width_splitFormula, split_terminal_occurrences).
    • All certificates are theorems checked by decide/decide +kernel.
    • The diff has no native_decide, set_option or sorry.
    • Original work is labeled in each module.
  5. Quotation (doc(AGENTS): quotations are copied from the pinned source or labeled paraphrase #1072). The PR-body quote matches lines 202–203 of the pinned PlanarThreeSATGadgets.lean verbatim, apart from line wrapping, and lies inside the cited range 199–205. The Lean docs present no text as a quotation.
  6. Tests. The new ComplexityTests/PlanarCrossover.lean covers the rfl reuse equation, constant and nonconstant rings, positive and negative Extends cases, and the moved data. The Lake glob picks it up.
  7. CI. ci-checks and check-title succeed at 2bd821a0.
  8. Nonblocking nit. The three moved layout modules keep namespace Cslib.Logic.PL.CNF.Crossover under Computability/Complexity/Problems/SAT/Planar, while their neighbours (for example SAT/Incidence) use Cslib.Complexity.SAT. Keeping the names fixed makes the move mechanical, which is fine here. Consider aligning them when the global substitution lands (feat(planar-SAT): orthogonal planar 3SAT-3 hardness with explicit grid bounds #1079). The elaboration cost is tracked in perf(geometry): skip disjoint route boxes in crossover certificates #1125.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB
@SamuelSchlesinger
SamuelSchlesinger changed the base branch from feat/orthogonal-planar-three-sat to main October 26, 2026 03:10
@SamuelSchlesinger

Copy link
Copy Markdown
Collaborator

Coordinator restack (coordinator-claude-c4b0c164-20261023, validated coordinator fix): #1107 merged as 43d1e572, so I retargeted this PR to main and merged origin/main into it. I merged rather than rebased because the branch history contains merge commits. New head: 9e6094034c0b1db2339d2d0a7d5150539ec2a8d7. Complexity.lean was regenerated and mk_all --check passes. Outside Complexity.lean and references.bib, the PR's diff against main is byte-identical to its approved diff at 2bd821a0; the new bibliography entries are the same. reviewer-claude-c4b0c164-77's approval (6407339350) therefore carries over. I will enqueue once hosted CI is green.

@SamuelSchlesinger
SamuelSchlesinger added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit 8d84548 Oct 26, 2026
4 of 5 checks passed
SamuelSchlesinger added a commit that referenced this pull request Oct 26, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 26, 2026
…community#1111)

* feat(geometry): define finite orthogonal routes with real support

Initial shared foundation for cslib-community#1082 and cslib-community#1079. Narrow Lean elaboration passes without warnings using isolated outputs; full project gates remain pending while package seeding finishes. New original geometry API reuses Mathlib segments and List.consecutivePairs. Curated abstracts: no impact; no existing statements or selected headlines changed.

* feat(CNF): certify fixed degree-three crossover semantics

Checkpoint for cslib-community#1083: adapt the credited Figure 8(b) clauses, prove exact independent opposite-port equality, and replace eight degree-six internal variables by fixed six-copy implication rings. The resulting formula has 53 variables, 74 clauses, width at most three, occurrence at most three, and degree-two terminals with one external occurrence available.

Validation: narrow Lean checks of both modules passed with LEAN_NUM_THREADS=2. Full gates and orthogonal geometry certification remain pending; this checkpoint does not complete cslib-community#1083 or cslib-community#1079. Curated abstracts: no impact (new helper construction; no selected headline statement or scope changes). AI assistance: implementation by Codex GPT-6.1.

* feat(geometry): certify continuous route contacts with finite checks

Checkpoint for cslib-community#1079 and cslib-community#1083: certify an integer bounding-box checker against complete real segment supports; compose it over finite routes, including empty and singleton supports. Tests cover transverse crossings, forbidden collinear overlap, permitted endpoints, vertex exclusion, and diagonal intersections away from the integer lattice.

Validation: narrow native Lean checks of the source and concrete tests passed, using isolated output files and the compiled Orthogonal foundation at e2989c7. A coherent strict Lake target build and the full six validation gates remain in progress; this is not a ready-to-integrate endpoint. Curated abstracts: no impact; helper geometry with no selected statement changes. AI assistance: Codex GPT-6.1 implementation and self-review.

* feat(ThreeSAT): prove finite 3SAT-3 completeness

Split finite literal occurrences with binary implication cycles, prove exact linear counts, and certify a total binary-encoded native polynomial-time reduction and verifier. Preserve the lean-trominoes construction credit. Planarity remains outside this milestone.

* feat(geometry): construct simple orthogonal crossing routes with linear sides

Part of cslib-community#1082. Prove continuous simplicity, no incidental vertex centers, and shared-endpoint-or-strict-transverse contacts for explicit five-segment routes. Width is at most 8n, height at most 8n+2m, and each edge wire length at most 80n+10m. Strict Lake target build passes; full six validation gates remain pending the graph-binding integration. Curated abstracts: no impact; no selected abstract or headline changes. Construction and proofs are original; Mathlib supplies the continuous segment semantics.

* feat(geometry): define finite orthogonal routes with real support

Initial shared foundation for cslib-community#1082 and cslib-community#1079. Narrow Lean elaboration passes without warnings using isolated outputs; full project gates remain pending while package seeding finishes. New original geometry API reuses Mathlib segments and List.consecutivePairs. Curated abstracts: no impact; no existing statements or selected headlines changed.

* feat(geometry): certify continuous route contacts with finite checks

Checkpoint for cslib-community#1079 and cslib-community#1083: certify an integer bounding-box checker against complete real segment supports; compose it over finite routes, including empty and singleton supports. Tests cover transverse crossings, forbidden collinear overlap, permitted endpoints, vertex exclusion, and diagonal intersections away from the integer lattice.

Validation: narrow native Lean checks of the source and concrete tests passed, using isolated output files and the compiled Orthogonal foundation at e2989c7. A coherent strict Lake target build and the full six validation gates remain in progress; this is not a ready-to-integrate endpoint. Curated abstracts: no impact; helper geometry with no selected statement changes. AI assistance: Codex GPT-6.1 implementation and self-review.

* feat(geometry): construct simple orthogonal crossing routes with linear sides

Part of cslib-community#1082. Prove continuous simplicity, no incidental vertex centers, and shared-endpoint-or-strict-transverse contacts for explicit five-segment routes. Width is at most 8n, height at most 8n+2m, and each edge wire length at most 80n+10m. Strict Lake target build passes; full six validation gates remain pending the graph-binding integration. Curated abstracts: no impact; no selected abstract or headline changes. Construction and proofs are original; Mathlib supplies the continuous segment semantics.

* feat(graph): assign canonical ports to bounded incidence occurrences

Part of cslib-community#1082. Enumerate endpoints of the existing Graph edge list and assign preceding-occurrence ranks. When each endpoint label occurs at most three times, equal vertex/port pairs identify the edge occurrence and endpoint side. Provide canonical_index_port_ne for geometric layout specialization. Strict Lake target builds pass for both new modules. Full validation remains pending the complete graph drawing binding. Curated abstracts: no impact.

* feat(CNF): glue finite gadgets with private auxiliary variables

For cslib-community#1079, tag each auxiliary variable by its gadget site and prove extension to the assembly iff extension to each gadget with one common shared assignment. Prove exact clause/literal counts. Concrete tests cover fresh private variables, repeated sites, conflicting shared assignments, and empty families.

Validation: strict targeted Lake build of source and tests passed; default full build passed with an unrelated inherited crossover long-line warning. Full six gates will be rerun on the final stacked revision. Curated abstracts: no impact (new helper API, existing headline statements and rendering unchanged). AI assistance: Codex GPT-6.1 implementation/self-review.

* feat(SAT): construct canonical finite CNF incidence graphs

For cslib-community#1079, reuse Graph lists with dense variable names followed by indexed clause names and one listed edge per literal occurrence. Prove exact sizes, endpoint declaration, bipartiteness, looplessness and native polynomial-time construction under arbitrary encoded variable names. Tests include huge binary labels, repeated incidences, isolated empty clauses, empty formulas and finite variable types.

Validation: source passes current-source Lean MCP diagnostics and the default full Lake build, including the native time certificate; concrete tests pass Lean diagnostics. Full six gates on the final stacked revision remain pending. Curated abstracts: no impact. AI assistance: Codex GPT-6.1 implementation/self-review.

* style(geometry): normalize Lean modes and wrap contact documentation

* feat(graph): bind finite crossing layouts to graph edge occurrences

Part of cslib-community#1082. Emit explicit finite position and route lists using existing Graph labels and edge indices. Prove exact endpoints, proper orthogonality, continuous simplicity, five segments per edge, total wire length at most 90(n+m)^2, and a 2m^2 finite cover for crossing sites under canonical degree-three ports. Strict Lake target build passes. Full validation pending route-unit-subdivision integration. Curated abstracts: no impact.

* style(graph): normalize Lean source modes

* feat(CNF): certify fixed orthogonal crossover geometry

Complete source checkpoint for cslib-community#1083: explicit 53-variable, 74-clause ordinary CNF template; 154 simple orthogonal incidence routes in a 240-by-240 box with four isolated access ports. Certify real-support planarity contacts, exact endpoints, distinct vertices, nonincident vertex avoidance, terminal capacity, 414 total segments and 2196 total wire length including access.

Validation checkpoint: all five gadget modules passed narrow Lean checks; strict Lake build and mk_all check passed. Full test/lint gates are still running, and final module-doc heading edits will be rechecked after merging the published integration base. No completion or hardness claim for cslib-community#1079. Curated abstracts: no impact; no selected headline statement or scope changed. Source credit retained from the pinned lean-trominoes gadget. AI assistance: Codex GPT-6.1.

* fix(geometry): keep route segment counts in simp normal form

Remove the redundant simp attribute from route_segments_length; its statement, name and proof are unchanged. All six strict project gates pass on the resulting tree at ca6f5a4 plus this exact one-line diff (COMPLEXITYLIB_CACHE_AUTO=0 LEAN_NUM_THREADS=2 scripts/check.sh). Selected abstracts and rendering are unaffected.

* feat(geometry): subdivide orthogonal routes into unit grid steps

Delegated subtask of cslib-community#1079 after the cslib-community#1082 crossing-layout core. Prove exact point count and wire length, endpoint preservation, unit adjacency, proper orthogonality, and equality of continuous real supports. Signed-coordinate and empty/singleton regression instances pass. Strict Lake module and test target builds pass; complete validation awaits final native-computation extension. Curated abstracts: no impact; no headline or renderer changes.

* feat(geometry): certify bounded unit subdivision in native polynomial time

Add a binary-coordinate/unary-budget compiler using existing plain ComputableInPolyTime APIs. Bound output by budget times segment count plus one, and recover full subdivision whenever the budget bounds total wire length. Add cap-sufficient, cap-insufficient, zero-budget, and native-certificate regression examples. Strict module/test target builds pass with default heartbeats. Normalize new Lean file modes. Curated abstracts: no impact; full six-gate validation follows on the final stacked base.

* feat(geometry): preserve point uniqueness under unit subdivision

For the global cslib-community#1079 client, prove IsOrthogonal r and IsSimple r imply (subdivide r).Nodup, using original continuous endpoint-contact certificates. A sufficient-budget native enumeration inherits Nodup. Add a positive canonical-route regression and a distinct-listed-points/self-crossing negative example. Strict geometry/native/test target builds pass. Full six-gate validation follows on the frozen gadget cslib-community#1108 base; curated abstracts remain unaffected.

* style(test): add orthogonal subdivision license header

Address review 5644880032. Header-only change; lake exe lint-style passes. Mathematical statements, proof bodies and curated abstracts are unchanged.

* refactor(geometry): share tail and unit-segment certificates

Add IsOrthogonal.of_cons and IsSimple.of_cons for concrete unit-subdivision tail clients. Move axisAligned_of_length_eq_one verbatim from the existing unit source25c30620 into the lowest Orthogonal API; the root worker will remove the downstream duplicate during restacking. Strict foundations/contact tests pass (6290 jobs, default proof budgets/thread2). Add original-construction reference notes. This is an early helper checkpoint for the coordinated PR1107/1111 review fixes; remaining core review items and full six-gate validation stay active. No abstract impact. AI-assisted t3-96187517-layout.

* refactor(geometry): isolate binary encodings and narrow subdivision tactics

Address PR1111 reuse/style nits without changing existing declaration meanings. Strict OrthogonalSubdivision library and regression targets pass (6478 jobs). Full-stack restack validation follows. No selected abstract impact.

* fix(ThreeSAT): address source and API review

Cite Papadimitriou Proposition 9.3, distinguish the formalized variable bound from its additional signed-literal bound, document the occurrence enumeration API, and use plain composition for numeric certificates. Public statements and definitions are unchanged.

* refactor(geometry): reuse shared tail and unit-step facts

Use IsOrthogonal.of_cons and IsSimple.of_cons in subdivision clients and consume the unchanged unit-step theorem from its lower home. Strict subdivision library/tests pass6478 jobs. Full stack validation follows after parent review fixes. Existing mathematical statement meanings and selected abstracts unchanged.

* refactor(geometry): mirror the native subdivision module path

Place the compiler beside Orthogonal.Encoding, matching the Foundations/Geometry/Orthogonal/Subdivision path. Existing public declarations and their bodies are unchanged; all current branch clients and aggregate imports are updated. Final validation follows incorporation of the parent review fixes. No selected abstract impact.

* refactor(planar-SAT): address core reuse and geometry hygiene review

Resolve all three blocking items from outside-fleet PR1107 review6402187375: replace umbrella Mathlib tactic imports with targeted imports, delete duplicate OccurrenceRank and reuse Batteries countBefore/idxOfNth directly in Ports, and remove unsupported Cook-Levin citations in favor of accurate original-formalization notes. Keep incidencePort take/count executable body and every layout theorem statement unchanged. Mirror Orthogonal.Layout at Foundations/Geometry/Orthogonal/Layout and update all core clients/aggregate. Add nonvacuous actual CNF incidence graph, degree bound, exact canonical port table and route0 regressions; remove trailing whitespace and make nonterminal norm_num calls explicit only proofs. Preserve source credit; no bibliography or abstract changes. Focused strict checks pass for all changed libraries and SATIncidence/CNFGadgets/OrthogonalContacts (3932 jobs, thread2). Parent cf3b1dd will be merged ordinarily before one final full-six validation. AI-assisted worker t3-96187517-layout.

* fix(CNF): address finite crossover review comments

Cite Lichtenstein1982 Figs. 4–5 and the MIT–ULB CompGeom Group Tromino2025 Fig. 8(b) in all five modules. Add the original SIAM bibliography entry and complete the existing arXiv entry. Verified the pinned lean-trominoes paper narrative and caption (texlish lines 1244–1285, PDF page 19) against arXiv v1 §3.5 and SIAM DOI metadata; preserve original authors.

Reuse CNF.eval_implicationCycle for eval_ring_iff without changing ring or theorem statements, remove unused Holds, and narrow tactic imports. Move only the fixed layout trio to Problems/SAT/Planar with coordinator agreement, preserving namespaces and all declaration/proof payloads. Update the aggregate and add regression clients. Nonblocking elaboration optimization is tracked in cslib-community#1125.

Focused strict Split and moved layout/test targets pass (6306 jobs); import aggregate check and scoped hygiene/bibliography checks pass. Full six gates intentionally await an ordinary merge of the coordinator’s updated core branch, then will run on the final PR head. Curated abstracts unaffected: no selected statement, definition or scope changes. AI-assisted implementation by t3-96187517-gadget. Addresses cslib-community#1108 review; cslib-community#1083 / cslib-community#1079 scope unchanged.

---------

Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 26, 2026
…y#1122)

* feat(geometry): define finite orthogonal routes with real support

Initial shared foundation for #1082 and #1079. Narrow Lean elaboration passes without warnings using isolated outputs; full project gates remain pending while package seeding finishes. New original geometry API reuses Mathlib segments and List.consecutivePairs. Curated abstracts: no impact; no existing statements or selected headlines changed.

* feat(geometry): define finite orthogonal routes with real support

Initial shared foundation for #1082 and #1079. Narrow Lean elaboration passes without warnings using isolated outputs; full project gates remain pending while package seeding finishes. New original geometry API reuses Mathlib segments and List.consecutivePairs. Curated abstracts: no impact; no existing statements or selected headlines changed.

* feat(CNF): certify fixed degree-three crossover semantics

Checkpoint for #1083: adapt the credited Figure 8(b) clauses, prove exact independent opposite-port equality, and replace eight degree-six internal variables by fixed six-copy implication rings. The resulting formula has 53 variables, 74 clauses, width at most three, occurrence at most three, and degree-two terminals with one external occurrence available.

Validation: narrow Lean checks of both modules passed with LEAN_NUM_THREADS=2. Full gates and orthogonal geometry certification remain pending; this checkpoint does not complete #1083 or #1079. Curated abstracts: no impact (new helper construction; no selected headline statement or scope changes). AI assistance: implementation by Codex GPT-6.1.

* feat(geometry): certify continuous route contacts with finite checks

Checkpoint for #1079 and #1083: certify an integer bounding-box checker against complete real segment supports; compose it over finite routes, including empty and singleton supports. Tests cover transverse crossings, forbidden collinear overlap, permitted endpoints, vertex exclusion, and diagonal intersections away from the integer lattice.

Validation: narrow native Lean checks of the source and concrete tests passed, using isolated output files and the compiled Orthogonal foundation at e2989c78. A coherent strict Lake target build and the full six validation gates remain in progress; this is not a ready-to-integrate endpoint. Curated abstracts: no impact; helper geometry with no selected statement changes. AI assistance: Codex GPT-6.1 implementation and self-review.

* feat(geometry): certify continuous route contacts with finite checks

Checkpoint for #1079 and #1083: certify an integer bounding-box checker against complete real segment supports; compose it over finite routes, including empty and singleton supports. Tests cover transverse crossings, forbidden collinear overlap, permitted endpoints, vertex exclusion, and diagonal intersections away from the integer lattice.

Validation: narrow native Lean checks of the source and concrete tests passed, using isolated output files and the compiled Orthogonal foundation at e2989c78. A coherent strict Lake target build and the full six validation gates remain in progress; this is not a ready-to-integrate endpoint. Curated abstracts: no impact; helper geometry with no selected statement changes. AI assistance: Codex GPT-6.1 implementation and self-review.

* feat(ThreeSAT): prove finite 3SAT-3 completeness

Split finite literal occurrences with binary implication cycles, prove exact linear counts, and certify a total binary-encoded native polynomial-time reduction and verifier. Preserve the lean-trominoes construction credit. Planarity remains outside this milestone.

* feat(geometry): construct simple orthogonal crossing routes with linear sides

Part of #1082. Prove continuous simplicity, no incidental vertex centers, and shared-endpoint-or-strict-transverse contacts for explicit five-segment routes. Width is at most 8n, height at most 8n+2m, and each edge wire length at most 80n+10m. Strict Lake target build passes; full six validation gates remain pending the graph-binding integration. Curated abstracts: no impact; no selected abstract or headline changes. Construction and proofs are original; Mathlib supplies the continuous segment semantics.

* feat(geometry): construct simple orthogonal crossing routes with linear sides

Part of #1082. Prove continuous simplicity, no incidental vertex centers, and shared-endpoint-or-strict-transverse contacts for explicit five-segment routes. Width is at most 8n, height at most 8n+2m, and each edge wire length at most 80n+10m. Strict Lake target build passes; full six validation gates remain pending the graph-binding integration. Curated abstracts: no impact; no selected abstract or headline changes. Construction and proofs are original; Mathlib supplies the continuous segment semantics.

* feat(CNF): certify fixed degree-three crossover semantics

Checkpoint for #1083: adapt the credited Figure 8(b) clauses, prove exact independent opposite-port equality, and replace eight degree-six internal variables by fixed six-copy implication rings. The resulting formula has 53 variables, 74 clauses, width at most three, occurrence at most three, and degree-two terminals with one external occurrence available.

Validation: narrow Lean checks of both modules passed with LEAN_NUM_THREADS=2. Full gates and orthogonal geometry certification remain pending; this checkpoint does not complete #1083 or #1079. Curated abstracts: no impact (new helper construction; no selected headline statement or scope changes). AI assistance: implementation by Codex GPT-6.1.

* feat(ThreeSAT): prove finite 3SAT-3 completeness

Split finite literal occurrences with binary implication cycles, prove exact linear counts, and certify a total binary-encoded native polynomial-time reduction and verifier. Preserve the lean-trominoes construction credit. Planarity remains outside this milestone.

* feat(graph): assign canonical ports to bounded incidence occurrences

Part of #1082. Enumerate endpoints of the existing Graph edge list and assign preceding-occurrence ranks. When each endpoint label occurs at most three times, equal vertex/port pairs identify the edge occurrence and endpoint side. Provide canonical_index_port_ne for geometric layout specialization. Strict Lake target builds pass for both new modules. Full validation remains pending the complete graph drawing binding. Curated abstracts: no impact.

* feat(geometry): define finite orthogonal routes with real support

Initial shared foundation for #1082 and #1079. Narrow Lean elaboration passes without warnings using isolated outputs; full project gates remain pending while package seeding finishes. New original geometry API reuses Mathlib segments and List.consecutivePairs. Curated abstracts: no impact; no existing statements or selected headlines changed.

* feat(geometry): certify continuous route contacts with finite checks

Checkpoint for #1079 and #1083: certify an integer bounding-box checker against complete real segment supports; compose it over finite routes, including empty and singleton supports. Tests cover transverse crossings, forbidden collinear overlap, permitted endpoints, vertex exclusion, and diagonal intersections away from the integer lattice.

Validation: narrow native Lean checks of the source and concrete tests passed, using isolated output files and the compiled Orthogonal foundation at e2989c78. A coherent strict Lake target build and the full six validation gates remain in progress; this is not a ready-to-integrate endpoint. Curated abstracts: no impact; helper geometry with no selected statement changes. AI assistance: Codex GPT-6.1 implementation and self-review.

* feat(geometry): construct simple orthogonal crossing routes with linear sides

Part of #1082. Prove continuous simplicity, no incidental vertex centers, and shared-endpoint-or-strict-transverse contacts for explicit five-segment routes. Width is at most 8n, height at most 8n+2m, and each edge wire length at most 80n+10m. Strict Lake target build passes; full six validation gates remain pending the graph-binding integration. Curated abstracts: no impact; no selected abstract or headline changes. Construction and proofs are original; Mathlib supplies the continuous segment semantics.

* feat(graph): assign canonical ports to bounded incidence occurrences

Part of #1082. Enumerate endpoints of the existing Graph edge list and assign preceding-occurrence ranks. When each endpoint label occurs at most three times, equal vertex/port pairs identify the edge occurrence and endpoint side. Provide canonical_index_port_ne for geometric layout specialization. Strict Lake target builds pass for both new modules. Full validation remains pending the complete graph drawing binding. Curated abstracts: no impact.

* feat(CNF): glue finite gadgets with private auxiliary variables

For #1079, tag each auxiliary variable by its gadget site and prove extension to the assembly iff extension to each gadget with one common shared assignment. Prove exact clause/literal counts. Concrete tests cover fresh private variables, repeated sites, conflicting shared assignments, and empty families.

Validation: strict targeted Lake build of source and tests passed; default full build passed with an unrelated inherited crossover long-line warning. Full six gates will be rerun on the final stacked revision. Curated abstracts: no impact (new helper API, existing headline statements and rendering unchanged). AI assistance: Codex GPT-6.1 implementation/self-review.

* feat(SAT): construct canonical finite CNF incidence graphs

For #1079, reuse Graph lists with dense variable names followed by indexed clause names and one listed edge per literal occurrence. Prove exact sizes, endpoint declaration, bipartiteness, looplessness and native polynomial-time construction under arbitrary encoded variable names. Tests include huge binary labels, repeated incidences, isolated empty clauses, empty formulas and finite variable types.

Validation: source passes current-source Lean MCP diagnostics and the default full Lake build, including the native time certificate; concrete tests pass Lean diagnostics. Full six gates on the final stacked revision remain pending. Curated abstracts: no impact. AI assistance: Codex GPT-6.1 implementation/self-review.

* style(geometry): normalize Lean modes and wrap contact documentation

* feat(graph): bind finite crossing layouts to graph edge occurrences

Part of #1082. Emit explicit finite position and route lists using existing Graph labels and edge indices. Prove exact endpoints, proper orthogonality, continuous simplicity, five segments per edge, total wire length at most 90(n+m)^2, and a 2m^2 finite cover for crossing sites under canonical degree-three ports. Strict Lake target build passes. Full validation pending route-unit-subdivision integration. Curated abstracts: no impact.

* style(graph): normalize Lean source modes

* feat(CNF): certify fixed orthogonal crossover geometry

Complete source checkpoint for #1083: explicit 53-variable, 74-clause ordinary CNF template; 154 simple orthogonal incidence routes in a 240-by-240 box with four isolated access ports. Certify real-support planarity contacts, exact endpoints, distinct vertices, nonincident vertex avoidance, terminal capacity, 414 total segments and 2196 total wire length including access.

Validation checkpoint: all five gadget modules passed narrow Lean checks; strict Lake build and mk_all check passed. Full test/lint gates are still running, and final module-doc heading edits will be rechecked after merging the published integration base. No completion or hardness claim for #1079. Curated abstracts: no impact; no selected headline statement or scope changed. Source credit retained from the pinned lean-trominoes gadget. AI assistance: Codex GPT-6.1.

* fix(geometry): keep route segment counts in simp normal form

Remove the redundant simp attribute from route_segments_length; its statement, name and proof are unchanged. All six strict project gates pass on the resulting tree at ca6f5a480c7140d9805d1927901c4433f2560df7 plus this exact one-line diff (COMPLEXITYLIB_CACHE_AUTO=0 LEAN_NUM_THREADS=2 scripts/check.sh). Selected abstracts and rendering are unaffected.

* feat(geometry): subdivide orthogonal routes into unit grid steps

Delegated subtask of #1079 after the #1082 crossing-layout core. Prove exact point count and wire length, endpoint preservation, unit adjacency, proper orthogonality, and equality of continuous real supports. Signed-coordinate and empty/singleton regression instances pass. Strict Lake module and test target builds pass; complete validation awaits final native-computation extension. Curated abstracts: no impact; no headline or renderer changes.

* feat(geometry): certify bounded unit subdivision in native polynomial time

Add a binary-coordinate/unary-budget compiler using existing plain ComputableInPolyTime APIs. Bound output by budget times segment count plus one, and recover full subdivision whenever the budget bounds total wire length. Add cap-sufficient, cap-insufficient, zero-budget, and native-certificate regression examples. Strict module/test target builds pass with default heartbeats. Normalize new Lean file modes. Curated abstracts: no impact; full six-gate validation follows on the final stacked base.

* feat(geometry): subdivide orthogonal routes into unit grid steps

Delegated subtask of #1079 after the #1082 crossing-layout core. Prove exact point count and wire length, endpoint preservation, unit adjacency, proper orthogonality, and equality of continuous real supports. Signed-coordinate and empty/singleton regression instances pass. Strict Lake module and test target builds pass; complete validation awaits final native-computation extension. Curated abstracts: no impact; no headline or renderer changes.

* feat(geometry): prove route translation and macrocell separation

Add radius-parametric real grid cells and side-midpoint ports. Prove continuous support translation, orthogonality/simplicity/wire-length invariance, disjoint open/closed cells, and exact adjacency from equal ports. Bounds on listed vertices imply bounds on entire real route supports. Checked examples include fractional real points, negative cell indices, contact and noncontact.

Checkpoint validation: MCP diagnostics are clean for the module and tests; LEAN_NUM_THREADS=2 lake build ComplexityTests.OrthogonalMacrocell --wfail --iofail passed. Full six-gate validation remains pending. Selected abstract catalogue: no impact; this geometry API changes no selected theorem, model, bound or scope. AI assistance: implementation by Codex worker t3-96187517-macrocell for #1079; independent review remains with the parent worker/coordinator.

* feat(geometry): preserve point uniqueness under unit subdivision

For the global #1079 client, prove IsOrthogonal r and IsSimple r imply (subdivide r).Nodup, using original continuous endpoint-contact certificates. A sufficient-budget native enumeration inherits Nodup. Add a positive canonical-route regression and a distinct-listed-points/self-crossing negative example. Strict geometry/native/test target builds pass. Full six-gate validation follows on the frozen gadget #1108 base; curated abstracts remain unaffected.

* feat(geometry): certify bounded unit subdivision in native polynomial time

Add a binary-coordinate/unary-budget compiler using existing plain ComputableInPolyTime APIs. Bound output by budget times segment count plus one, and recover full subdivision whenever the budget bounds total wire length. Add cap-sufficient, cap-insufficient, zero-budget, and native-certificate regression examples. Strict module/test target builds pass with default heartbeats. Normalize new Lean file modes. Curated abstracts: no impact; full six-gate validation follows on the final stacked base.

* feat(geometry): preserve point uniqueness under unit subdivision

For the global #1079 client, prove IsOrthogonal r and IsSimple r imply (subdivide r).Nodup, using original continuous endpoint-contact certificates. A sufficient-budget native enumeration inherits Nodup. Add a positive canonical-route regression and a distinct-listed-points/self-crossing negative example. Strict geometry/native/test target builds pass. Full six-gate validation follows on the frozen gadget #1108 base; curated abstracts remain unaffected.

* fix(geometry): keep route segment counts in simp normal form

Cherry-picked the parent-authorized fix b9d66cd4c4513f50e73c73c8be5d383f0523b1fb. Remove only the redundant simp attribute from route_segments_length; its statement, name and proof are unchanged.

Macrocell handoff validation on this exact tree: LEAN_NUM_THREADS=2 COMPLEXITYLIB_CACHE_AUTO=0 scripts/check.sh passed all six gates (strict build, aggregate imports, strict tests, environment lint, style lint, Init imports). The targeted strict OrthogonalMacrocell test build and Batteries lint for the Macrocell module also passed. MCP diagnostics are clean for the new module and tests. Selected abstracts and rendering: no impact.

AI assistance: Codex worker t3-96187517-macrocell implemented the Macrocell checkpoint 84876e7d for #1079 and applied this exact coordinated fix. Parent t3-96187517-root owns independent review and the final PR stack; the full global tiled drawing/reduction remains outside this subtask.

* feat(geometry): prove route translation and macrocell separation

Add radius-parametric real grid cells and side-midpoint ports. Prove continuous support translation, orthogonality/simplicity/wire-length invariance, disjoint open/closed cells, and exact adjacency from equal ports. Bounds on listed vertices imply bounds on entire real route supports. Checked examples include fractional real points, negative cell indices, contact and noncontact.

Checkpoint validation: MCP diagnostics are clean for the module and tests; LEAN_NUM_THREADS=2 lake build ComplexityTests.OrthogonalMacrocell --wfail --iofail passed. Full six-gate validation remains pending. Selected abstract catalogue: no impact; this geometry API changes no selected theorem, model, bound or scope. AI assistance: implementation by Codex worker t3-96187517-macrocell for #1079; independent review remains with the parent worker/coordinator.

* style(test): add orthogonal subdivision license header

Address review 5644880032. Header-only change; lake exe lint-style passes. Mathematical statements, proof bodies and curated abstracts are unchanged.

* feat(CNF): compose polarity-directed cell wires

Checkpoint under #1079: binary clauses join cell exits to following entries, with polarity chosen so final literal truth implies initial truth. Prove propagation under local equality, compatible-assignment completeness, ordinary indexed CNF clause replacement, exact clause/literal counts and width preservation. Reuse existing Occurrence and CNF semantics; no geometry or actual-generator correctness is asserted by these conditional generic rules.

Strict targeted library and regression test build passes (1568 jobs). Tests cover both polarities, aliased endpoints, actual satisfiable/unsatisfiable assemblies, empty formulas and empty clauses. Full gates and actual PlanarCompile instantiation remain pending. Curated abstracts: no impact (new helper API, no selected statement or scope changes). AI assistance: Codex GPT-6.1.

* feat(planar-SAT): certify actual local access geometry and compact order

Prove that the executable compiler access routes are simple and orthogonal, stay in their real cells, and touch boundaries only at their designated ports. Distinct-cell contacts are common ports; ordinary distinct-side accesses meet only at the signal center, whereas crossover accesses are disjoint. Prove strict interior placement of structured variables and translated core routes, shared ports for unit neighbors, and the actual positions lookup after compaction.

Add the separate CNF/Compact/Relabel topic API: injective relabeling preserves first-occurrence variable order; compact labels preserve distinct-variable indices and getD lookups, for any lawful Boolean equality on the original labels. Tests cover actual accesses, negative cells, fractional real points, repeated product labels, gapped compact names and an actual compiled variable-position lookup.

Checkpoint validation: clean MCP diagnostics and LEAN_NUM_THREADS=2 COMPLEXITYLIB_CACHE_AUTO=0 lake build ComplexityTests.PlanarGeometry --wfail --iofail passed. Full six-gate validation is pending. Selected abstract catalogue and rendering: no impact. This checkpoint does not prove the full actual tiled drawing; occurrence/cell occupancy and global endpoint/contact bookkeeping remain. AI assistance: Codex worker t3-96187517-macrocell under #1079; parent owns final integration and independent review.

* feat(graph): classify canonical unit-path crossings and local neighbors

Delegated #1079 occupancy checkpoint. Add exact unitPaths helper and prove endpoint/nonempty/Nodup/unit/support/bounds, no incidental source centers, strict transverse contact classification, at-most-two paths outside source centers, and actual consecutive opposite horizontal/vertical crossing neighbors. Generic StraightThrough.getD_neighbors gives exact predecessor/successor lookups at any valid occurrence index. Strict library target builds pass; tests and explicit source-bend exclusion are being finished. Existing checked statements are unchanged; curated abstracts have no impact. Full #1079 objective remains open under the parent worker.

* feat(graph): classify canonical unit-path crossings and local neighbors

Delegated #1079 occupancy checkpoint. Add exact unitPaths helper and prove endpoint/nonempty/Nodup/unit/support/bounds, no incidental source centers, strict transverse contact classification, at-most-two paths outside source centers, and actual consecutive opposite horizontal/vertical crossing neighbors. Generic StraightThrough.getD_neighbors gives exact predecessor/successor lookups at any valid occurrence index. Strict library target builds pass; tests and explicit source-bend exclusion are being finished. Existing checked statements are unchanged; curated abstracts have no impact. Full #1079 objective remains open under the parent worker.

* feat(graph): classify canonical unit-path crossings and local neighbors

Delegated #1079 occupancy checkpoint. Add exact unitPaths helper and prove endpoint/nonempty/Nodup/unit/support/bounds, no incidental source centers, strict transverse contact classification, at-most-two paths outside source centers, and actual consecutive opposite horizontal/vertical crossing neighbors. Generic StraightThrough.getD_neighbors gives exact predecessor/successor lookups at any valid occurrence index. Strict library target builds pass; tests and explicit source-bend exclusion are being finished. Existing checked statements are unchanged; curated abstracts have no impact. Full #1079 objective remains open under the parent worker.

* feat(graph): classify canonical unit-path crossings and local neighbors

Delegated #1079 occupancy checkpoint. Add exact unitPaths helper and prove endpoint/nonempty/Nodup/unit/support/bounds, no incidental source centers, strict transverse contact classification, at-most-two paths outside source centers, and actual consecutive opposite horizontal/vertical crossing neighbors. Generic StraightThrough.getD_neighbors gives exact predecessor/successor lookups at any valid occurrence index. Strict library target builds pass; tests and explicit source-bend exclusion are being finished. Existing checked statements are unchanged; curated abstracts have no impact. Full #1079 objective remains open under the parent worker.

* feat(planar-SAT): certify actual local access geometry and compact order

Prove that the executable compiler access routes are simple and orthogonal, stay in their real cells, and touch boundaries only at their designated ports. Distinct-cell contacts are common ports; ordinary distinct-side accesses meet only at the signal center, whereas crossover accesses are disjoint. Prove strict interior placement of structured variables and translated core routes, shared ports for unit neighbors, and the actual positions lookup after compaction.

Add the separate CNF/Compact/Relabel topic API: injective relabeling preserves first-occurrence variable order; compact labels preserve distinct-variable indices and getD lookups, for any lawful Boolean equality on the original labels. Tests cover actual accesses, negative cells, fractional real points, repeated product labels, gapped compact names and an actual compiled variable-position lookup.

Checkpoint validation: clean MCP diagnostics and LEAN_NUM_THREADS=2 COMPLEXITYLIB_CACHE_AUTO=0 lake build ComplexityTests.PlanarGeometry --wfail --iofail passed. Full six-gate validation is pending. Selected abstract catalogue and rendering: no impact. This checkpoint does not prove the full actual tiled drawing; occurrence/cell occupancy and global endpoint/contact bookkeeping remain. AI assistance: Codex worker t3-96187517-macrocell under #1079; parent owns final integration and independent review.

* feat(CNF): compose polarity-directed cell wires

Checkpoint under #1079: binary clauses join cell exits to following entries, with polarity chosen so final literal truth implies initial truth. Prove propagation under local equality, compatible-assignment completeness, ordinary indexed CNF clause replacement, exact clause/literal counts and width preservation. Reuse existing Occurrence and CNF semantics; no geometry or actual-generator correctness is asserted by these conditional generic rules.

Strict targeted library and regression test build passes (1568 jobs). Tests cover both polarities, aliased endpoints, actual satisfiable/unsatisfiable assemblies, empty formulas and empty clauses. Full gates and actual PlanarCompile instantiation remain pending. Curated abstracts: no impact (new helper API, no selected statement or scope changes). AI assistance: Codex GPT-6.1.

* feat(graph): exclude crossing bends and certify ordinary path neighbors

Finish the delegated #1079 local occupancy classification. Crossings avoid all original polygonal listed points and all source centers; ordinary nonvertex cells have two distinct unit predecessor/successor points. Regression cases check real canonical crossings, exclusion of a third path, source-center incidence, exact indexed neighbor lookups in both traversal orientations, ordinary bends, and the essential vertex-center exception. Strict library/test targets pass. Existing public statements are unchanged; selected abstracts have no impact. Full validation follows on this exact checkpoint; parent owns the global generator and endpoint PR.

* feat(planar-SAT): bound actual compiler clauses and literal incidences

Proves exact clause and literal counts and explicit quadratic bounds for the executable tiled compiler. Reuses first-occurrence selectDistinct for site selection and exposes stable membership and no-duplicate interfaces. Width-three preservation is proved; the full correctness, drawing, native time and final resource endpoint remains open in #1079.

Strict Compile, Size and PlanarCompile regression targets pass after the site-selection change. The integrated library default build passes with occupancy and local geometry checkpoints. Full global gates and independent review remain pending. Selected abstract catalogue: no impact at this infrastructure stage. AI assistance: GPT-6.1-sol.

* feat(planar-SAT): certify every actual output route and variable position

Use the canonical unit-path API to prove actual occurrence endpoints, no repeated points, unit steps, sufficient final-lookup length and the final unit step. The actual final-literal routes are simple and orthogonal and decompose into their two cell accesses. Prove link literal/route endpoint order, the cell-kind invariant for all emitted variable names, injectivity of their displayed positions, and exact position and route counts for the final compact incidence graph.

Checkpoint validation: clean MCP diagnostics and strict ComplexityTests.PlanarGeometry target passed with LEAN_NUM_THREADS=2. Full project gates remain pending; the complete drawing theorem still needs clause-position separation, nonincident-vertex avoidance, inter-route contacts and incidence-order transport. Selected abstracts/rendering: no impact. AI assistance: Codex worker t3-96187517-macrocell under #1079.

* feat(graph): exclude crossing bends and certify ordinary path neighbors

Finish the delegated #1079 local occupancy classification. Crossings avoid all original polygonal listed points and all source centers; ordinary nonvertex cells have two distinct unit predecessor/successor points. Regression cases check real canonical crossings, exclusion of a third path, source-center incidence, exact indexed neighbor lookups in both traversal orientations, ordinary bends, and the essential vertex-center exception. Strict library/test targets pass. Existing public statements are unchanged; selected abstracts have no impact. Full validation follows on this exact checkpoint; parent owns the global generator and endpoint PR.

* feat(graph): exclude crossing bends and certify ordinary path neighbors

Finish the delegated #1079 local occupancy classification. Crossings avoid all original polygonal listed points and all source centers; ordinary nonvertex cells have two distinct unit predecessor/successor points. Regression cases check real canonical crossings, exclusion of a third path, source-center incidence, exact indexed neighbor lookups in both traversal orientations, ordinary bends, and the essential vertex-center exception. Strict library/test targets pass. Existing public statements are unchanged; selected abstracts have no impact. Full validation follows on this exact checkpoint; parent owns the global generator and endpoint PR.

* feat(graph): exclude crossing bends and certify ordinary path neighbors

Finish the delegated #1079 local occupancy classification. Crossings avoid all original polygonal listed points and all source centers; ordinary nonvertex cells have two distinct unit predecessor/successor points. Regression cases check real canonical crossings, exclusion of a third path, source-center incidence, exact indexed neighbor lookups in both traversal orientations, ordinary bends, and the essential vertex-center exception. Strict library/test targets pass. Existing public statements are unchanged; selected abstracts have no impact. Full validation follows on this exact checkpoint; parent owns the global generator and endpoint PR.

* test(graph): record canonical unit-path occupancy validation

Validated exact source 9793c2c3ce18683f44a85e238d1a8752f3814128 with all six gates: lake build --wfail --iofail; lake exe mk_all --check; lake test --wfail --iofail; lake lint; lake exe lint-style; lake exe checkInitImports. LEAN_NUM_THREADS=2, isolated worktree outputs. New occupancy modules and regression instances also passed strict targeted builds. No curated abstract impact: these are reusable finite geometry helpers for the still-open #1079 endpoint. AI-assisted implementation by t3-96187517-layout; coordinator integration and independent review remain pending.

* feat(planar-SAT): certify every actual output route and variable position

Use the canonical unit-path API to prove actual occurrence endpoints, no repeated points, unit steps, sufficient final-lookup length and the final unit step. The actual final-literal routes are simple and orthogonal and decompose into their two cell accesses. Prove link literal/route endpoint order, the cell-kind invariant for all emitted variable names, injectivity of their displayed positions, and exact position and route counts for the final compact incidence graph.

Checkpoint validation: clean MCP diagnostics and strict ComplexityTests.PlanarGeometry target passed with LEAN_NUM_THREADS=2. Full project gates remain pending; the complete drawing theorem still needs clause-position separation, nonincident-vertex avoidance, inter-route contacts and incidence-order transport. Selected abstracts/rendering: no impact. AI assistance: Codex worker t3-96187517-macrocell under #1079.

* feat(graph): certify canonical unit neighbors at source endpoints

Derive exact getD 1 and getD(length-2) formulas from the actual two-step endpoint fans, plus side-indexed neighbor separation for distinct incident edges using canonical incidence ports. Generic finite-list endpoint lookup lemmas live with orthogonal endpoint geometry. Strict library and regression targets pass with default proof budgets. Regression instances cover all three ports in both traversal directions. All six occupancy gates passed the preceding source 9793c2c3 (recorded in cc3032fe); full final delta validation follows. No curated abstract impact; #1079 remains open. AI-assisted implementation by t3-96187517-layout for root integration.

* feat(planar-SAT): connect actual clauses to directed-wire semantics

Checkpoint under #1079: prove actual placed-clause projection, raw formula block evaluation, crossover opposite-port equality, exact indexed wire signals, placed link equality with generic links, final literal/exit identity, and original clause replacement. Instantiate conditional source soundness and compatible-assignment completeness for actual rawFormula. No local path conditions or existence of compatible assignments are silently assumed discharged.

Semantics module passes narrow Lean and strict targeted compilation. Generic DirectedWire tests passed at ef4941c9. Source endpoint/cell-equality discharge continues separately in Correctness.lean; full follow-up gates and review remain pending. Curated abstracts: no impact. AI assistance: Codex GPT-6.1.

* feat(planar-SAT): certify the full tiled compiler in native polynomial time

Proves plain ComputableInPolyTime for the actual formula, vertex positions and incidence routes under binary CNF and coordinate encodings. Only bounded syntactic indices and subdivision budgets use unary encoding. Covers canonical ports, centerlines, bounded unit paths, occupied crossing selection, template substitution, polarity-directed links and compaction. No geometric validity assumption is needed for this computational certificate.

MCP diagnostics are clean; strict PolyTime target passes with default heartbeats and recursion limits. Full integration gates follow. The global semantic equivalence, degree bound, planar drawing and quantitative hardness theorem remain open in #1079. Selected abstracts unaffected at this infrastructure stage. AI assistance: GPT-6.1-sol.

* feat(graph): certify canonical unit neighbors at source endpoints

Derive exact getD 1 and getD(length-2) formulas from the actual two-step endpoint fans, plus side-indexed neighbor separation for distinct incident edges using canonical incidence ports. Generic finite-list endpoint lookup lemmas live with orthogonal endpoint geometry. Strict library and regression targets pass with default proof budgets. Regression instances cover all three ports in both traversal directions. All six occupancy gates passed the preceding source 9793c2c3 (recorded in cc3032fe); full final delta validation follows. No curated abstract impact; #1079 remains open. AI-assisted implementation by t3-96187517-layout for root integration.

* test(graph): record endpoint-neighbor full validation

All six required gates pass on exact source 0cfa08bbade90ec0de9a05070f510954a550d90d: strict build, mk_all --check, strict tests, environment lint, lint-style, checkInitImports. Isolated outputs, LEAN_NUM_THREADS=2. No statement changes since the strict endpoint checkpoint and no curated abstract impact. AI-assisted worker t3-96187517-layout hands these scoped helpers to root integration; full #1079 remains open.

* feat(CNF): preserve compact occurrence counts and the listed incidence graph

Extend the topic relabel API with vars_compact, count_vars_compact and count_vars_compact_le. Relabeling preserves both literal occurrence indices and order. The separate SAT/Incidence/Compact module proves that compaction preserves the entire listed incidence graph, including parallel occurrences. Geometry uses the exact graph identity; structured-label count and graph regressions are checked.

Validation: LEAN_NUM_THREADS=2 COMPLEXITYLIB_CACHE_AUTO=0 lake build ComplexityTests.PlanarGeometry --wfail --iofail passed after integrating all published occupancy and endpoint-neighbor proofs. New helpers and Geometry are MCP-clean. Earlier full gates passed except stale aggregate; regenerate aggregate here, including the missing published Size module. Final six-gate validation remains pending until drawing closure. Abstract catalogue/rendering: no impact. AI assistance: Codex worker t3-96187517-macrocell for #1079.

* feat(CNF): preserve compact occurrence counts and the listed incidence graph

Extend the topic relabel API with vars_compact, count_vars_compact and count_vars_compact_le. Relabeling preserves both literal occurrence indices and order. The separate SAT/Incidence/Compact module proves that compaction preserves the entire listed incidence graph, including parallel occurrences. Geometry uses the exact graph identity; structured-label count and graph regressions are checked.

Validation: LEAN_NUM_THREADS=2 COMPLEXITYLIB_CACHE_AUTO=0 lake build ComplexityTests.PlanarGeometry --wfail --iofail passed after integrating all published occupancy and endpoint-neighbor proofs. New helpers and Geometry are MCP-clean. Earlier full gates passed except stale aggregate; regenerate aggregate here, including the missing published Size module. Final six-gate validation remains pending until drawing closure. Abstract catalogue/rendering: no impact. AI assistance: Codex worker t3-96187517-macrocell for #1079.

* feat(sat): prove soundness of actual directed planar compilation

Discharge wire cell agreement and source endpoint conditions using canonical unit-path occupancy. Actual compact output satisfiability implies source satisfiability under width and literal-count bounds of three. Completeness assignment construction remains open; this does not complete #1079.

Validation: strict Lake module/test targets passed (6610 jobs), including actual positive/negative unit formulas and contradiction soundness. Full six gates pending final followup. Curated abstracts unaffected: helper composition and soundness, no new headline. AI-assisted implementation by t3-96187517-gadget.

* feat(planar-SAT): prove actual directed cell ports are duplicate-free

Derive paths_shared_step_index from the checked canonical crossing-neighbor API: two distinct actual paths cannot share a unit edge in either direction. At least one endpoint avoids all source centers, where the horizontal/vertical straight-neighbor certificates rule out the shared step. Combine this with path Nodup and unit-step side injectivity to prove pathPorts_nodup for all directed halves, including the final clause-directed half.

The only public source assumptions are clause width at most three and literal count at most three; the graph degree condition is discharged by incidenceGraph_degree_le. Check the three-parallel-incidence case. Validation: clean MCP diagnostics and strict ComplexityTests.PlanarGeometry target passed with LEAN_NUM_THREADS=2. Final full gates and the complete actual drawing theorem remain pending. Abstract catalogue/rendering: no impact. AI assistance: Codex worker t3-96187517-macrocell under #1079.

* feat(planar-SAT): prove actual directed cell ports are duplicate-free

Derive paths_shared_step_index from the checked canonical crossing-neighbor API: two distinct actual paths cannot share a unit edge in either direction. At least one endpoint avoids all source centers, where the horizontal/vertical straight-neighbor certificates rule out the shared step. Combine this with path Nodup and unit-step side injectivity to prove pathPorts_nodup for all directed halves, including the final clause-directed half.

The only public source assumptions are clause width at most three and literal count at most three; the graph degree condition is discharged by incidenceGraph_degree_le. Check the three-parallel-incidence case. Validation: clean MCP diagnostics and strict ComplexityTests.PlanarGeometry target passed with LEAN_NUM_THREADS=2. Final full gates and the complete actual drawing theorem remain pending. Abstract catalogue/rendering: no impact. AI assistance: Codex worker t3-96187517-macrocell under #1079.

* feat(planar-SAT): separate unit-step midpoints and bound local wire lengths

Prove cellPort_step_eq_cases and pathMidpoints_nodup: one actual geometric boundary midpoint per full unit path step is duplicate-free under the source width/occurrence bounds. Expose access_wireLength (20 at crossings, 120 otherwise) and finalRoute_wireLength_le (240), reusing existing translated local route certificates. Check negative cells, actual access lengths and the three-parallel-incidence midpoint list.

Validation: clean MCP diagnostics and strict ComplexityTests.PlanarGeometry target passed with LEAN_NUM_THREADS=2. Final six-gate checks and complete global drawing closure remain pending. Abstract catalogue/rendering: no impact. AI assistance: Codex worker t3-96187517-macrocell under #1079.

* feat(planar-SAT): compare literal counts with actual directed path halves

Expose generic indexed-occurrence uniqueness and exact occurrence-to-path order in small modules without a Geometry import cycle. Prove every emitted external literal is bounded by actual directed path halves, ordinary simple-path contribution at most two, and actual crossover-terminal external contribution at most one using canonical port uniqueness. Fixed-template literal counts (rather than clause occurrence counts) are kernel-checked. Strict library and meaningful regression targets pass. This is a checkpoint: the final actual raw/formula occurrence<=3 theorem remains active under #1079; no conditional replacement or endpoint claim. No curated abstract impact. AI-assisted worker t3-96187517-layout.

* feat(planar-SAT): compare literal counts with actual directed path halves

Expose generic indexed-occurrence uniqueness and exact occurrence-to-path order in small modules without a Geometry import cycle. Prove every emitted external literal is bounded by actual directed path halves, ordinary simple-path contribution at most two, and actual crossover-terminal external contribution at most one using canonical port uniqueness. Fixed-template literal counts (rather than clause occurrence counts) are kernel-checked. Strict library and meaningful regression targets pass. This is a checkpoint: the final actual raw/formula occurrence<=3 theorem remains active under #1079; no conditional replacement or endpoint claim. No curated abstract impact. AI-assisted worker t3-96187517-layout.

* feat(sat): construct models of the actual planar compiler

Prove ordinary-cell source consistency and unique occurrence per crossing axis, then choose compatible wire values and independent crossover models. The actual compact formula preserves satisfiability under source width and literal-count bounds of three. Geometry, degree, runtime and full #1079 hardness remain separate integration obligations.

Strict module/test targets pass (6612 jobs), including a nonempty actual crossing with source assignment 0=true and 1=false, both unit polarities, contradiction soundness, empty formula and empty clause. Full six-gate pass is in progress; first run found and regenerated a missing Size import in the aggregate. Curated abstracts unchanged: this compiler semantics component adds no headline or completed hardness claim. AI-assisted implementation by t3-96187517-gadget.

* test(planar-SAT): certify unequal signals at an actual crossing

At selected cell (10,34), construct a satisfying actual raw compiler assignment with horizontal aLeft=true and vertical bTop=false. Kernel-checked actual wire memberships connect these ports to distinct source variables.

All six required gates passed with COMPLEXITYLIB_CACHE_AUTO=0 LEAN_NUM_THREADS=2 scripts/check.sh on source tree 21a1e7fce2d8ac20ee9bbf5fd51d6bf80f7660a0: strict build, mk_all --check, strict tests, lint, lint-style, and checkInitImports. The earlier missing Size aggregate import was regenerated before this final run. No sorry, custom axiom, native_decide or heartbeat overrides were introduced.

This checkpoint completes actual SAT-equivalence semantics under source width/count bounds of three; geometry, occurrence bounds, polynomial-time implementation and the complete #1079 endpoint belong to combined integration PR #1122. Source credit preserved; curated abstracts unaffected. AI-assisted implementation by t3-96187517-gadget.

* feat(planar-SAT): preserve three literal occurrences in the actual formula

Prove count_vars_rawFormula_le_three and count_vars_formula_le_three under exactly source width<=3 and literal-count<=3, with no conditional output-degree certificate. Source centers are bounded by actual listed incidence degree; nonvertex ordinary cells belong to at most one simple path; crossover terminals have internal literal count2 and unique external port, while other internal variables have count<=3. Regression examples include repeated source literals, a kernel-certified selected bridge/stem crossing, internal terminal count2, empty formulas and empty clauses. Strict library/test targets pass at default proof budgets. Full six gates follow. No curated abstract impact: the complete #1079 hardness objective remains with root integration. AI-assisted worker t3-96187517-layout, using macrocell worker canonical port uniqueness and compact-count APIs.

* feat(planar-SAT): separate every actual output vertex position

Prove original clause centers avoid selected crossing cells; crossover clauses retain their fixed translated positions; binary-clause positions form a sublist of actual unit-step midpoints. Combine these into clausePositions_nodup. Classify every emitted variable cell and exclude every original clause cell using actual path center incidence and the final endpoint. Separate all variable/clause positions and prove positions_nodup under actual source width/occurrence bounds.

Validation: strict ComplexityTests.PlanarGeometry target passed with LEAN_NUM_THREADS=2, including triple parallel incidences and repeated empty clauses; MCP diagnostics clean. Full actual drawing closure still requires incidence-order endpoint transport, nonincident-vertex avoidance and contacts between distinct routes. Final six gates remain pending. Selected abstracts/rendering: no impact. AI assistance: Codex worker t3-96187517-macrocell under #1079.

* feat(planar-SAT): prove linear grid sides and quadratic route costs

For S=numVars+clauses+literal occurrences+1, proves actual emitted data fit width240(8n+1) and height240(8n+2m+1), each at most1920S; actual routes≤1210S², segments≤23000S² and total Manhattan wire≤300000S². Bounds concern the executable output including empty clauses and repeated incidences. Kernel checks certify each fixed core route has wire≤72 and at most19 segments.

MCP scratch proofs are clean. Strict Bounds library and regression targets pass; concrete output tests include a succinct2^100 source label, isolated empty clause, and both polarities of a nonempty unit-clause drawing (63 routes,64 segments,7680 wire). Combined final gates and independent review follow. Full #1079 still requires the final degree/planarity/hardness assembly. Selected abstracts unchanged. AI assistance: GPT-6.1-sol.

* test(planar-SAT): record full literal-occurrence validation

All six required gates PASS on exact source 48754af2f707b1d326656ac3dbd970c64fff2624, tree7d41ad3de5075486903c9c1970bc37d71f3ff213: strict build; mk_all --check; strict tests including global axiom audit; environment lint; lint-style; checkInitImports. Isolated outputs, LEAN_NUM_THREADS=2. Actual count_vars_formula_le_three assumes only source width and literal counts <=3. No curated abstract impact. Source retained for parent PR1122 integration and independent review; full #1079 remains open. AI-assisted worker t3-96187517-layout.

* refactor(planar-SAT): share actual ordinary-cell occupancy without drawing imports

Move paths_filter_length_le_one and its private two-filter helper into SAT/Planar/Paths/Occupancy, preserving every public statement and definition meaning. The only replaced dependency is the definitional paths=unitPaths equality, now private in the leaf module. Geometry can import this module without a cycle through Occurrence. Add a real ordinary-cell regression through a client importing only the leaf module. Preserve source credit for the generic occurrence-Nodup proof adapted from ThreeOccurrence. Strict path/count targets and both test modules pass. Pre-extraction degree source48754af2 passed all six gates (a048aea4); final full delta checks follow. No abstract impact. AI-assisted worker t3-96187517-layout.

* test(planar-SAT): record final occurrence and occupancy validation

All six required gates PASS exact final source30944f7e27c4446ed4e3ca2fc74798c45df02ccf, tree6fd8cfb351da7b60cf31ab6ea612550153194592: lake build --wfail --iofail; lake exe mk_all --check; lake test --wfail --iofail including global axiom audit; lake lint; lake exe lint-style; lake exe checkInitImports. LEAN_NUM_THREADS=2 and isolated worktree build outputs. Strict import-only Paths occupancy and actual occurrence tests pass. Public extracted occupancy statement was compared unchanged and its import closure excludes Geometry/Occurrence. No curated abstract impact. Actual formula literal count<=3 is complete within this worker scope; full #1079 remains open in parent PR1122 pending integration and independent review. AI-assisted t3-96187517-layout.

* feat(ThreeSATThree): bound total splitter incidence size

For every binary-labelled CNF input, bound output distinct variables + clauses + literal occurrences + 1 by 7 * (source clauses + literal occurrences + 1). Reuse numVars_le_length_vars and the existing exact valid-width counts; the invalid-width output has size two. Expose unconditional output width and literal-count bounds without changing the frozen splitter implementation.

Strict focused module/test targets PASS (3902 jobs); mk_all regeneration/check PASS. Kernel tests cover label 2^128, repeated huge labels on the invalid-width branch, output copy count three, empty formula and empty clause. No repeated full suite for this small checkpoint, as requested; parent combined-tree gates remain required. Generated aggregate also removes three duplicate imports present at the root checkpoint. Curated abstracts unaffected: quantitative helper only, no new headline. Source credit preserved. AI-assisted implementation by t3-96187517-gadget; scope #1079, integration #1122.

* refactor(planar-SAT): share canonical path certificates

Consolidate duplicate Geometry/Correctness path facts into Paths, preserving all public names and statements without aliases. Move unit/nonempty/final-unit certificates with the canonical block and make the existing public occurrence_index_lt shared. Keep Correctness source-variable/edgeEndpoint helpers and Geometry private range helper required by its later clause-center proof; later Geometry body is unchanged. Both clients import the shared API, with representative import-only path clients. Strict Geometry/Correctness/Completeness/Occurrence and PlanarPaths/PlanarGeometry/PlanarSemantics/PlanarOccurrence tests pass (6640 jobs, thread2). A source comparison confirms all nine public statements unchanged. No curated abstract impact or new theorem endpoint. Addresses PR1122 review r4372369007; AI-assisted worker t3-96187517-layout.

* feat(planar-SAT): certify total compilers and original input bounds

Add native binary-encoded total formula/drawing compilers and actual source
SAT equivalence. Reject invalid width/occurrence syntax with one empty clause.
Transport grid sides and all formula/route/segment/wire costs through the
linear occurrence splitter to the original clause/literal input size.

All six scripts/check.sh gates pass on this source tree with cache downloads
disabled and LEAN_NUM_THREADS=2, including strict full tests and axiom audit.
Focused tests cover both polarities, contradiction, invalid syntax, empty
instances and huge binary labels. Hygiene and aggregate checks pass.

No selected abstract/catalogue/rendering impact. Global drawing closure and
hardness assembly are the remaining integration step in #1079/#1122.
AI-assisted implementation by GPT-6.1-sol; independent review pending.

* feat(planar-SAT): certify actual indexed incidence endpoints

All literal/route pairs, including fixed core templates and repeated source occurrences, have the emitted clause and variable endpoints. Transport follows actual ordered incidence edges through CNF compaction. Strict Geometry and PlanarGeometry test target passed. Full drawing avoidance and contacts remain open; all six final gates remain pending. No selected abstract impact: helper geometry only, no headline scope changes.

* feat(planar-SAT): prove contacts of distinct actual routes

Actual continuous supports meet only at route endpoints. Canonical unit-step midpoint uniqueness identifies access ownership, including final steps excluded from binary links. Translated core certificates handle the remaining cases. Also prove actual route-list Nodup and variable avoidance. Strict Geometry and repeated-literal PlanarGeometry test target passes at default heartbeats; split the original-clause route proof to avoid expensive kernel reduction. Indexed drawing contact transport and clause avoidance remain open, so no full drawing claim yet. No selected abstract impact.

* feat(planar-SAT): certify the actual planar orthogonal drawing

Complete IsPlanarOrthogonalDrawing of the actual compact formula with exactly its emitted positions and routes, assuming only source clause width and literal count at most three. Prove all nonincident vertex avoidance, handle isolated empty source clauses, and transport continuous contacts through actual ordered graph incidences. Strict PlanarGeometry target passes, including actual selected crossing (10,42), repeated parallel incidences, empty formula and multiple empty clauses. No sorry, axiom, native_decide or heartbeat overrides. Full six gates running next. Curated catalogue assessment: no existing selected abstract statement or scope changes; final hardness assembly belongs to parent #1122.

* feat(SAT): prove orthogonal planar 3SAT-3 NP-hardness

Close the total language reductions with the actual compiled orthogonal
incidence drawing. Prove NP-hardness for existential and supplied drawings,
and compose correctness with the original 3SAT occurrence splitter. All
outputs have certified drawings; rejected inputs remain unsatisfiable.
Update the guide and add supplied-language/rejection geometry regressions.

All six required scripts/check.sh gates PASS on this exact source tree:
strict library build, aggregate check, strict full tests and axiom audit,
Batteries lint, style, and Init imports. Cache downloads disabled; threads=2.
Focused Geometry and PlanarThreeSATThree strict targets pass. MCP confirms
the unconditional final theorem types. Full hygiene and docs config pass.

The additional guide build is blocked before chapter elaboration by the
existing Windows Verso linker error: undefined lean_md4c_markdown_parse.
No dependency sources were modified. Selected abstract/catalogue/rendering
unchanged; no headline selection. ROADMAP/UPSTREAM have no affected entry.

Geometry source4ed8c91e has clean independent review on PR1122; compiler,
semantics, degree and bounds have their earlier independent review. Final
wrapper/original-input quantitative delta review and outside-fleet
coordinator approval remain required before maintainer integration.
AI-assisted implementation by GPT-6.1-sol, including delegated components.

* refactor(geometry): share tail and unit-segment certificates

Add IsOrthogonal.of_cons and IsSimple.of_cons for concrete unit-subdivision tail clients. Move axisAligned_of_length_eq_one verbatim from the existing unit source25c30620 into the lowest Orthogonal API; the root worker will remove the downstream duplicate during restacking. Strict foundations/contact tests pass (6290 jobs, default proof budgets/thread2). Add original-construction reference notes. This is an early helper checkpoint for the coordinated PR1107/1111 review fixes; remaining core review items and full six-gate validation stay active. No abstract impact. AI-assisted t3-96187517-layout.

* refactor(geometry): isolate binary encodings and narrow subdivision tactics

Address PR1111 reuse/style nits without changing existing declaration meanings. Strict OrthogonalSubdivision library and regression targets pass (6478 jobs). Full-stack restack validation follows. No selected abstract impact.

* fix(ThreeSAT): address source and API review

Cite Papadimitriou Proposition 9.3, distinguish the formalized variable bound from its additional signed-literal bound, document the occurrence enumeration API, and use plain composition for numeric certificates. Public statements and definitions are unchanged.

* refactor(geometry): reuse shared tail and unit-step facts

Use IsOrthogonal.of_cons and IsSimple.of_cons in subdivision clients and consume the unchanged unit-step theorem from its lower home. Strict subdivision library/tests pass6478 jobs. Full stack validation follows after parent review fixes. Existing mathematical statement meanings and selected abstracts unchanged.

* refactor(planar-SAT): use targeted tactic imports throughout assembly

Apply the core upstreamability finding consistently to its later clients. Add missing original-construction reference notes and correct the ClauseSet occurrence API name. No public statement or definition meaning changes. Strict geometry, semantics, occurrence and final hardness targets/tests pass6728 jobs; hygiene passes. Final full gates follow the parent-stack fixes. Selected abstracts unchanged.

* refactor(geometry): mirror the native subdivision module path

Place the compiler beside Orthogonal.Encoding, matching the Foundations/Geometry/Orthogonal/Subdivision path. Existing public declarations and their bodies are unchanged; all current branch clients and aggregate imports are updated. Final validation follows incorporation of the parent review fixes. No selected abstract impact.

* refactor(planar-SAT): consume the extracted geometry encoding API

Update native compiler imports and let drawing encoding depend only on its data encoding. Definition bodies and public mathematical statement meanings are unchanged. Full final-stack validation follows.

* refactor(planar-SAT): address core reuse and geometry hygiene review

Resolve all three blocking items from outside-fleet PR1107 review6402187375: replace umbrella Mathlib tactic imports with targeted imports, delete duplicate OccurrenceRank and reuse Batteries countBefore/idxOfNth directly in Ports, and remove unsupported Cook-Levin citations in favor of accurate original-formalization notes. Keep incidencePort take/count executable body and every layout theorem statement unchanged. Mirror Orthogonal.Layout at Foundations/Geometry/Orthogonal/Layout and update all core clients/aggregate. Add nonvacuous actual CNF incidence graph, degree bound, exact canonical port table and route0 regressions; remove trailing whitespace and make nonterminal norm_num calls explicit only proofs. Preserve source credit; no bibliography or abstract changes. Focused strict checks pass for all changed libraries and SATIncidence/CNFGadgets/OrthogonalContacts (3932 jobs, thread2). Parent cf3b1ddc will be merged ordinarily before one final full-six validation. AI-assisted worker t3-96187517-layout.

* refactor(geometry): update consumers of the mirrored layout module

Follow the core module move in unit-neighborhood and subdivision regression imports. Public declarations and proofs are unchanged. Final combined validation follows.

* fix(CNF): address finite crossover review comments

Cite Lichtenstein1982 Figs. 4–5 and the MIT–ULB CompGeom Group Tromino2025 Fig. 8(b) in all five modules. Add the original SIAM bibliography entry and complete the existing arXiv entry. Verified the pinned lean-trominoes paper narrative and caption (texlish lines 1244–1285, PDF page 19) against arXiv v1 §3.5 and SIAM DOI metadata; preserve original authors.

Reuse CNF.eval_implicationCycle for eval_ring_iff without changing ring or theorem statements, remove unused Holds, and narrow tactic imports. Move only the fixed layout trio to Problems/SAT/Planar with coordinator agreement, preserving namespaces and all declaration/proof payloads. Update the aggregate and add regression clients. Nonblocking elaboration optimization is tracked in #1125.

Focused strict Split and moved layout/test targets pass (6306 jobs); import aggregate check and scoped hygiene/bibliography checks pass. Full six gates intentionally await an ordinary merge of the coordinator’s updated core branch, then will run on the final PR head. Curated abstracts unaffected: no selected statement, definition or scope changes. AI-assisted implementation by t3-96187517-gadget. Addresses #1108 review; #1083 / #1079 scope unchanged.

* refactor(planar-SAT): import the relocated crossover drawing template

Follow the reviewed reduction-geometry placement without changing emitted data or public statement meanings. Full final integration checks follow.

* chore(planar-SAT): refresh aggregate after review-fix integration

Regenerate sorted module imports after layout and encoding relocations, removing merge duplicates. Full six-gate validation is running on this unchanged source tree. Mathematical statement meanings, selected abstracts and catalogue are unchanged.

* chore: regenerate Complexity.lean

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB

---------

Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants