Documentation

CslibFrontier.Computability.Complexity.Problems.Graph.OrthogonalDrawing

Supplied planar orthogonal drawings of finite incidence graphs #

Drawing data are a finite list of integer vertex positions and a finite list of polygonal routes. Positions follow the declared vertex list and routes follow the edge list, including parallel edge occurrences. All geometric conditions refer to complete real segment supports. The drawing predicate uses loopless graphs with distinct declared vertex labels.

Edge orientation in the input list is immaterial: an incidence route may be listed in either direction. Its endpoints must be the actual incident vertices. Routes are simple, orthogonal, avoid nonincident vertices, and meet other routes only at shared incident vertices.

Main definitions #

References #

These are the ordinary finite drawing conditions, expressed using Mathlib real segments and the existing listed graph representation.

@[reducible, inline]

Vertex positions and edge routes, in their graph-list orders. No graph data are duplicated.

Instances For

    Displayed position of a declared vertex, using its first position in the vertex list.

    Instances For

      A supplied planar orthogonal embedding of the loopless listed graph. Parallel listed edges have distinct simple routes; all contacts are tested in the real plane.

      Instances For

        Every listed position and route point lies in the nonnegative integer rectangle.

        Instances For
          theorem Cslib.Complexity.Graph.drawingFits_mono {d : OrthogonalDrawing} {w h w' h' : ℕ} (hd : drawingFits d w h) (hw : w ≤ w') (hh : h ≤ h') :
          drawingFits d w' h'

          A larger rectangle preserves bounds on every displayed vertex and route point.

          The sum of Manhattan lengths of all incidence routes.

          Instances For

            The number of consecutive segments in all incidence routes.

            Instances For