Documentation

CslibFrontier.Computability.Complexity.Problems.SAT.ExactOne.DrawingSource

Exterior routes for clause-box replacement #

An incidence edge is normalized from its second endpoint (the clause vertex) to its first endpoint (the variable vertex), independently of the supplied route orientation. Dilation and initial trimming provide an exterior route with a single contact with its clause box. The normalization changes neither route support nor geometric costs.

Main definitions #

Main results #

References #

The source normalization and geometric assembly proofs are original.

The clause endpoint of a listed incidence, with a fixed fallback for invalid indices.

Instances For

    The variable endpoint of a listed incidence, with a fixed fallback for invalid indices.

    Instances For

      Normalize the supplied incidence route to begin at its clause endpoint.

      Instances For

        Declared vertices with equal positions are equal in a valid drawing.

        Normalization preserves the complete continuous support of each supplied route.

        Normalization preserves the number of route points.

        Normalization preserves the total Manhattan wire cost.

        The normalized route begins at the clause and ends at the variable.

        The clause and variable endpoints occupy different points.

        Every normalized valid incidence has at least two listed points.

        Normalization preserves proper orthogonality and continuous simplicity.

        A normalized incidence starts with its actual clause vertex and a proper next point.

        The cardinal exit direction of a normalized source incidence.

        Instances For
          theorem Cslib.Complexity.SAT.ExactOne.sourceDirection_ne {G : Graph} {d : Graph.OrthogonalDrawing} (hd : G.IsPlanarOrthogonalDrawing d) {i j : ℕ} (hi : i < G.edges.length) (hj : j < G.edges.length) (hij : i ≠ j) (hc : G.edges[i].2 = G.edges[j].2) :

          Incidences at the same clause vertex leave in different cardinal directions.

          Scale and trim the clause end of a normalized source incidence.

          Instances For

            The designated contact with the boundary of the local clause box.

            Instances For

              The trimmed exterior incidence is proper and continuously simple.

              theorem Cslib.Complexity.SAT.ExactOne.exteriorRoute_endpoints {G : Graph} {d : Graph.OrthogonalDrawing} (hd : G.IsPlanarOrthogonalDrawing d) {i : ℕ} (hi : i < G.edges.length) (k radius : ℕ) :
              List.head? (exteriorRoute k radius G d i) = some (exteriorPort k radius G d i) ∧ List.getLast? (exteriorRoute k radius G d i) = some (k • sourceFinish G d i)

              The exterior incidence has its designated box port and the original scaled variable endpoint.

              theorem Cslib.Complexity.SAT.ExactOne.exteriorRoute_wireLength {G : Graph} {d : Graph.OrthogonalDrawing} (hd : G.IsPlanarOrthogonalDrawing d) {i : ℕ} (hi : i < G.edges.length) {k radius : ℕ} (hr : radius < k) :

              Cutting removes exactly the radius from the scaled Manhattan cost.

              Exterior incidence routes keep the original number of listed segments.

              theorem Cslib.Complexity.SAT.ExactOne.exteriorRoute_box_contact {G : Graph} {d : Graph.OrthogonalDrawing} (hd : G.IsPlanarOrthogonalDrawing d) {i : ℕ} (hi : i < G.edges.length) {k radius : ℕ} (hr : radius < k) {p : ℝ × ℝ} (hp : p ∈ Orthogonal.support (exteriorRoute k radius G d i)) (hb : Orthogonal.inPointBox (k • sourceStart G d i) radius p) :

              The exterior route meets its own closed clause box only at the designated port.

              theorem Cslib.Complexity.SAT.ExactOne.exteriorRoute_avoids_box {G : Graph} {d : Graph.OrthogonalDrawing} (hd : G.IsPlanarOrthogonalDrawing d) {i : ℕ} (hi : i < G.edges.length) {v : ℕ} (hv : v ∈ G.vertices) (hv₁ : v ≠ G.edges[i].1) (hv₂ : v ≠ G.edges[i].2) {k radius : ℕ} (hr : radius < k) {p : ℝ × ℝ} (hp : p ∈ Orthogonal.support (exteriorRoute k radius G d i)) :

              A nonincident declared vertex has a closed replacement box disjoint from an exterior route.

              The exit direction is one of the four cardinal unit vectors.

              theorem Cslib.Complexity.SAT.ExactOne.exteriorPort_ne_center (k radius : ℕ) (hr : 0 < radius) (G : Graph) (d : Graph.OrthogonalDrawing) (i : ℕ) :
              exteriorPort k radius G d i ≠ k • sourceStart G d i

              A positive-radius port is different from the removed source clause center.

              theorem Cslib.Complexity.SAT.ExactOne.exteriorRoute_not_mem_center {G : Graph} {d : Graph.OrthogonalDrawing} (hd : G.IsPlanarOrthogonalDrawing d) {i : ℕ} (hi : i < G.edges.length) {k radius : ℕ} (hr₀ : 0 < radius) (hr : radius < k) :

              A trimmed incidence no longer contains the scaled source clause vertex.

              theorem Cslib.Complexity.SAT.ExactOne.exteriorRoute_contacts {G : Graph} {d : Graph.OrthogonalDrawing} (hd : G.IsPlanarOrthogonalDrawing d) {i j : ℕ} (hi : i < G.edges.length) (hj : j < G.edges.length) (hij : i ≠ j) {k radius : ℕ} (hr₀ : 0 < radius) (hr : radius < k) {p : ℝ × ℝ} (hp : p ∈ Orthogonal.support (exteriorRoute k radius G d i)) (hq : p ∈ Orthogonal.support (exteriorRoute k radius G d j)) :

              Different exterior incidences can meet only at their shared scaled variable endpoint. The common source clause endpoint has been removed by the positive-radius cut.

              theorem Cslib.Complexity.SAT.ExactOne.sourceVertex_not_mem_box {G : Graph} {d : Graph.OrthogonalDrawing} (hd : G.IsPlanarOrthogonalDrawing d) {v w : ℕ} (hv : v ∈ G.vertices) (hw : w ∈ G.vertices) (hvw : v ≠ w) {k radius : ℕ} (hr : radius < k) :

              A different source vertex center lies outside the closed local replacement box.