cslib-frontier guide

2.31. Original-Language Nonselfdual Gadgets🔗

Cslib.Logic.PL.CSP.NonSelfDual.exists_oneHotGadget constructs an actual one-in-three gadget over the original language. It requires absence of all six common Schaefer polymorphisms and of unary complement. Pins and disequality are derived internally, and the language relations may have arbitrary arity:

open Cslib.BitString Cslib.Logic.PL.CSP in example {Rel : Type} (arity : Rel → ℕ) (sem : Rel → List Bool → Bool) (h : ¬HasSchaeferPolymorphism arity sem) (hn : ¬HasPolymorphism arity sem (fun a : Fin 1 → Bool => !(a 0))) : Nonempty (PPGadget arity sem (oneHotRelation (Fin 3))) := NonSelfDual.exists_oneHotGadget h hn

Disequality needs only the first hypothesis, including when unary complement preserves the language:

open Cslib.Logic.PL.CSP in example {Rel : Type} (arity : Rel → ℕ) (sem : Rel → List Bool → Bool) (h : ¬HasSchaeferPolymorphism arity sem) : Nonempty (PPGadget arity sem RelationMinor.disequality) := RelationMinor.exists_disequalityGadget h

Cslib.Logic.PL.CSP.RelationMinor.Construction.gadget interprets each finite ordered construction tree on actual original-language bodies. The final triangle appends a ternary body and three NAND bodies on (0,1), (1,2), (2,0); each use receives fresh auxiliaries. Projection retains survivor order, and cyclic rotation retains orientation. The arbitrary-arity parity and majority minor arguments are original reconstructions of the proof omitted from Dvořák–Kupec Lemma 4, printed pp. 438–439. The constants descent follows Lemma 3, pp. 437–438.

This proves finite primitive-positive semantics. Witness selection is fixed-language data, without a uniform preprocessing bound. Geometric realization, ordered planar substitution, native hardness transfer and the full dichotomy remain open. Complete clients, including a one-symbol language without primitive pins or disequality, are in CslibFrontierTests/PlanarConstructionGadget.lean.