Documentation

CslibFrontier.Computability.Complexity.Problems.SAT.Planar.PathAssignments

Compatible assignments on canonical paths #

The optional crossover tags are retained only as a logical assignment bridge for the paired compiler. There is no second output formula or drawing. A compatible assignment carries each source value along its path and satisfies each selected fixed crossover.

Main definitions #

Main results #

References #

These are the shared canonical incidence-path constructions and certificates.

@[reducible, inline]

A cell's ordinary signal, or a local variable of its crossover.

Instances For

    The signal presented by a cell toward a neighboring cell.

    Instances For

      Every cell before the original clause vertex contributes an entry/exit signal pair. At the source endpoint the unused entry defaults to the source's own ordinary signal.

      Instances For

        A path contributes one signal cell for each point before its final clause vertex.

        Every path of at least two points yields a nonempty cell wire.

        theorem Cslib.Complexity.SAT.PlanarCompile.getElem_wire (sites : List Orthogonal.Point) (r : Orthogonal.Route) (i : ℕ) (hi : i < List.length r - 1) :
        (wire sites r)[i] = (signal sites r[i] (List.getD r (i - 1) r[i]), signal sites r[i] (List.getD r (i + 1) r[i]))

        Exact indexed cell signals in the executable wire list.

        The actual graph edge has the occurrence's original variable and clause labels.

        A selected crossing is traversed straight along one coordinate axis by each occupying path.

        The initial source center is excluded from the actual selected crossing list.

        The executable first entry is the original variable's ordinary cell signal.

        theorem Cslib.Complexity.SAT.PlanarCompile.shared_ordinary_cell_center {φ : Logic.PL.CNF ℕ} (hw : ∀ c ∈ φ, List.length c ≤ 3) (hv : ∀ (v : ℕ), List.count v φ.vars ≤ 3) {o t : Logic.PL.Occurrence ℕ} (ho : o ∈ Logic.PL.occurrences φ) (ht : t ∈ Logic.PL.occurrences φ) (hot : o ≠ t) {p : Orthogonal.Point} (hp : p ∉ crossingSites φ) (hpo : p ∈ occurrencePath φ o) (hpt : p ∈ occurrencePath φ t) :

        Two different occurrence paths sharing an ordinary cell meet at a declared vertex center.

        No retained wire cell is the clause-center endpoint removed by dropLast.

        A retained cell at a declared center is the source-variable center of its occurrence.

        theorem Cslib.Complexity.SAT.PlanarCompile.ordinary_cell_source_eq {φ : Logic.PL.CNF ℕ} (hw : ∀ c ∈ φ, List.length c ≤ 3) (hv : ∀ (v : ℕ), List.count v φ.vars ≤ 3) {o t : Logic.PL.Occurrence ℕ} (ho : o ∈ Logic.PL.occurrences φ) (ht : t ∈ Logic.PL.occurrences φ) {p : Orthogonal.Point} (hp : p ∉ crossingSites φ) (hpo : p ∈ List.dropLast (occurrencePath φ o)) (hpt : p ∈ List.dropLast (occurrencePath φ t)) :
        o.2.2.1 = t.2.2.1

        All occurrences using an ordinary retained cell have the same original variable.

        At a crossing, at most one occurrence path goes straight through in a given direction.

        theorem Cslib.Complexity.SAT.PlanarCompile.exists_compatible_assignment {φ : Logic.PL.CNF ℕ} (hw : ∀ c ∈ φ, List.length c ≤ 3) (hv : ∀ (v : ℕ), List.count v φ.vars ≤ 3) (τ : ℕ → Bool) :
        ∃ (σ : Variable → Bool), (∀ o ∈ Logic.PL.occurrences φ, ∀ c ∈ wire (crossingSites φ) (occurrencePath φ o), σ c.1 = τ o.2.2.1 ∧ σ c.2 = τ o.2.2.1) ∧ ∀ p ∈ crossingSites φ, Logic.PL.CNF.eval (fun (v : Logic.PL.CNF.Crossover.SplitVariable) => σ (p, some v)) Logic.PL.CNF.Crossover.splitFormula = true

        Every source assignment extends compatibly to all actual wire cells and crossover blocks. The choice of auxiliary values is logical; this theorem makes no computational claim.