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 #
Cslib.Complexity.SAT.ParsimoniousPlanar.placedClauses: actual clauses and geometric data;mem_placedClausessplits membership into the four kinds of record, andexists_occurrence_of_mem_originalClausestraces each literal and route of an original clause record to its source occurrence.Cslib.Complexity.SAT.ParsimoniousPlanar.formula: compact natural-number output labels.Cslib.Complexity.SAT.ParsimoniousPlanar.positions,.routes: finite drawing data.
References #
The paired assembly is original. The crossover's source credit is documented in PairedCrossover.
An ordinary ring port or a local crossover variable, together with its unit-cell index.
Instances For
A clause, its position, and one incidence route per literal, in literal order.
Instances For
Reuse the already-certified canonical unit paths.
Instances For
Reuse the selected crossing cells.
Instances For
Reuse the occurrence-indexed canonical unit path.
Instances For
Side facing a unit neighbor, in left/right/bottom/top order.
Instances For
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
The clause on lane zero goes forward; the clause on lane one goes backward.
Instances For
Two implication clauses per gap, excluding the final step into the original clause.
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
The seam clauses of a route are the two lane clauses of each step before the final one.
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.
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.
No ordinary ring is emitted twice.
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
Actual final literal routes are translations of finalLocalRoute.