Ordinary imports are CslibFrontier.Logics.Propositional.CSP.Planar.Embedding.AtomBoundary,
...Embedding.Projection, ...Embedding.GadgetCyclic and ...Embedding.Equality.
Import ...Embedding.Construction for every existing construction-tree branch.
The actual semantic
objects remain Cslib.Logic.PL.CSP.PPGadget; numerical boundary witnesses live
in Cslib.Complexity.CSP.OrderedBoundary.
A structural probe uses the reversed port word and has no original-language
relation semantics. Witness F ports checks both its augmented rotation and
the literal first-return restriction to F. GadgetWitness g uses g.body
and all canonical free ports, including unused ones. Every atom has a full
witness, at arbitrary arity, without a truth or planarity premise:
The explicit atom/probe table handles arity zero with two isolated centers.
A false nullary relation can pass structural checks; this is not a SAT test.
Repeated constraint positions are never deduplicated. Atom tests include
mirrored numerical rotations rejected by argument order.
Probe-to-body extraction has an explicit duplicate-free port premise. The
body may still have repeated names, duplicate constraints and cut vertices:
The last-argument operation proves the full target checker on the original
CSP lists. Applied to a probe it removes a boundary marker; it makes no SAT
claim for editing a Gamma constraint:
Witness.forgetAt retains the exact survivor word on the same body, using a
directed cycle, deletion and inverse cycle. It requires a valid position and
a duplicate-free whole word. The special forgetHead only needs its tail
to be duplicate-free; that weaker contract is not asserted for all positions.
The gadget constructors internally prove canonical port distinctness and
variable-map injection. Projection uses exactly g.project j, hiding the
port at auxiliary zero before old auxiliaries. Cyclic rotation is the existing
positive-arity Construction.gadget free-label map:
Adjacent equality targets the exact existing g.equalDrop; it adds no equality
symbol. Consecutive probe arguments supply cofacial variable corners internally.
The duplicate marker is removed before Nodup body extraction, retaining the
original scopes, nullaries and repeated constraint positions:
CslibFrontierTests/PlanarEqualityBoundary.lean ties that table to the exact
original-language NAE body and derives disequality and both OneHot pins.
Generic attachment and the complete static grammar are supplied below;
expanded-language macros remain separate obligations.
The raw table program uses bounded predecessor lookup, an outgoing swap and
prefix restriction. Its residual arity is static; it carries no uniform native
runtime claim for arbitrary binary arity or language/template size.
First-port projection keeps a simpler literal prefix equation:
Original nullary constraints and their truth values remain in the body.
Zero-port extraction removes only the isolated structural probe. Literal
last-argument tables and dense-variable transport are proved internally.
Numerical scope reindexing alone does not preserve ordered acceptance: the
actual cycles commute with positive finRotate; higher-arity reflection
is rejected.
CslibFrontierTests/PlanarCyclicBoundary.lean proves equality of an entire
constructed twelve-entry table from all source dart steps, then executes the
full checkers. CslibFrontierTests/PlanarProjectionAll.lean checks exact
middle/wrap bodies and semantics, canonical Nodup extraction, degree five,
unused ports, an empty alphabet and true/false nullaries.
Every existing RelationMinor.Construction now supplies a witness on exactly
its original-language interpreter, recursively including enabling pin and
disequality trees:
The meet is arity two, with no arbitrary higher-arity intersection claim.
Flip uses the enlarged noncanonical port word directly, removes the old
marker, swaps names and hides last. Probe corners exist even at unused ports;
different-component and cofacial joins derive their guards internally.
CslibFrontierTests/PlanarConstructionBoundary.lean exercises all eight
branches over one original one-in-three symbol, satisfying/rejecting semantic
rows, exact auxiliary scopes, empty/unused attachments and a closed result.
Run scripts/build.sh CslibFrontierTests.PlanarConstructionBoundary CslibFrontierTests.PlanarConstructionAudit --wfail --iofail.
These are static finite constructors. General projection/cyclic inverses use
finite choice and are intentionally noncomputable. Fixing a language and
its templates permits nonuniform certificate preprocessing; it does not prove
the input-varying native compiler's target acceptance or framed time bound.
Figure 1/NAND boundary tables are macro skeletons until original-language
substitution is supplied. OneHot3/CROSS macro expansion, normalization caps
and Figure-1 substitution, native target acceptance, geometric/
source comparison, recognition and full #3091 remain open.