Documentation

CslibFrontier.Computability.Complexity.Problems.SAT.Planar.PairedCompile

A finite compiler with paired wire ports #

Canonical incidence paths and their crossing sites are reused. Each ordinary retained cell contains a fixed implication ring whose eight ports carry the same value. A crossing cell contains a crossover with two equal ports on each side. Each gap receives opposite implications on its two separate ports. Consequently the adjacent signal values must agree.

Original clause cells contain no auxiliary variables. Their final incidences use one of the two ports facing the clause, with four disjoint offset spokes inside the clause cell. Unused ports belong to their cell's implication ring and introduce no independent choices.

Main definitions #

References #

The paired assembly is original. The crossover's source credit is documented in PairedCrossover.

@[reducible, inline]

An ordinary ring port or a local crossover variable, together with its unit-cell index.

Instances For
    @[reducible, inline]

    A clause, its position, and one incidence route per literal, in literal order.

    Instances For
      @[reducible, inline]

      Reuse the already-certified canonical unit paths.

      Instances For
        @[reducible, inline]

        Reuse the selected crossing cells.

        Instances For
          @[reducible, inline]

          Reuse the occurrence-indexed canonical unit path.

          Instances For
            @[reducible, inline]

            Side facing a unit neighbor, in left/right/bottom/top order.

            Instances For
              @[reducible, inline]

              The center of a macrocell of side 240.

              Instances For

                All occupied retained ordinary cells, listed without repetitions.

                Instances For

                  The signal variable on a particular side and lane of a cell.

                  Instances For

                    Signal presented toward the neighboring cell on one lane.

                    Instances For

                      The actual displayed position of a structured variable.

                      Instances For

                        The shared side point for a specified lane.

                        Instances For

                          A straight route from a cell boundary to its presented signal.

                          Instances For

                            Final literal and its incidence route from the original clause center.

                            Instances For

                              Original clauses keep their order, arity and literal signs.

                              Instances For

                                The ordinary fixed implication ring in an occupied cell.

                                Instances For

                                  The paired-port crossover in a selected crossing cell.

                                  Instances For

                                    The actual finite output, with no clauses for unoccupied ordinary cells.

                                    Instances For

                                      Output formula with structured variable names.

                                      Instances For

                                        Compact natural-number labels for the actual formula.

                                        Instances For

                                          Positions ordered by the final formula's distinct variables, then its clauses.

                                          Instances For

                                            Incidence routes ordered by clauses and by literal positions.

                                            Instances For

                                              Case analysis on the output records: an original clause, a clause of an ordinary ring or of a crossover in its cell, or one of the two lane clauses of an occurrence path step.

                                              theorem Cslib.Complexity.SAT.ParsimoniousPlanar.exists_occurrence_of_mem_originalClauses {φ : Logic.PL.CNF ℕ} {sites : List Orthogonal.Point} {c : Logic.PL.Clause Variable} {p : Orthogonal.Point} {rs : List Orthogonal.Route} (hpc : (c, p, rs) ∈ originalClauses φ sites) :
                                              (∀ l ∈ c, ∃ (i : ℕ) (j : ℕ) (x : Logic.PL.Literal ℕ), (i, j, x) ∈ Logic.PL.occurrences φ ∧ (lastLiteral sites (occurrencePath φ (i, j, x)) x.2).1 = l) ∧ ∀ r ∈ rs, ∃ (i : ℕ) (j : ℕ) (x : Logic.PL.Literal ℕ), (i, j, x) ∈ Logic.PL.occurrences φ ∧ (lastLiteral sites (occurrencePath φ (i, j, x)) x.2).2 = r

                                              Each literal and each route of an original clause record (c, p, rs) is the final literal or final incidence of one occurrence (i, j, x) of the source formula, carrying the sign of its source literal x.

                                              A point receives an ordinary ring exactly when a retained path uses it outside a crossing.

                                              The compiler's presented signal always has the shared inner access position.

                                              Actual accesses are translations of the fixed paired-port accesses.

                                              Local template of the final incidence route inside a clause cell.

                                              Instances For