Canonical unit paths and their local occupancy #
The finite path list uses the canonical incidence ports and the explicit linear per-route wire budget. Correctness statements refer to the existing graph's edge occurrences by their indices.
Main definitions #
Cslib.Complexity.Graph.unitPaths: canonical finite unit paths in edge-list order.Cslib.Complexity.Graph.unitPath: indexed access, with the empty path outside the edge range.
Main results #
Cslib.Complexity.Graph.unitPath_endpoints,.unitPath_nodup,.unitPath_unit: endpoint, uniqueness and unit-adjacency certificates.Cslib.Complexity.Graph.unitPath_first_neighbor,.unitPath_last_neighbor: exact canonical port neighbors at both ends, with.endpointNeighbor_nefor different incident edges.Cslib.Complexity.Graph.unitPath_support,.unitPath_bounds: continuous support and grid bounds.Cslib.Complexity.Graph.unitPath_declared_center_iff: no nonincident source-center contacts.Cslib.Complexity.Graph.unitPath_contact,.unitPath_atMostTwo: actual crossing classification and at most two paths at nonvertex points.Cslib.Complexity.Graph.unitPath_crossing_neighbors: opposite horizontal/vertical unit neighbors.Cslib.Complexity.Graph.BridgeStemCrossing.not_listed: crossings avoid all original bends.Cslib.Complexity.Graph.unitPath_neighbor_lengths,.unitPath_neighbors_distinct: the two distinct unit neighbors at every ordinary nonvertex occupied cell.
Canonical unit paths, with the checked linear per-edge wire budget.
Instances For
Access one finite canonical unit path, defaulting to the empty path outside the edge range.
Instances For
Canonical unit paths preserve both original indexed edge endpoints.
The first unit neighbor is the source center plus its actual canonical port direction.
The penultimate unit point is the target center plus its canonical port direction.
The immediate unit neighbor at a chosen end of an indexed canonical path.
Instances For
Side-indexed exact endpoint-neighbor formula.
Different edge occurrences at the same source center use different unit neighbors.
Every consecutive pair in a canonical unit path is exactly one Manhattan unit apart.
An integer point lies on a unit path exactly when it lies on the original real route.
Every listed unit point lies in the original explicit linear rectangle.
A source grid center lies on a canonical unit path exactly when its position index is one of that graph edge's two endpoint indices.
No source vertex center lies on a nonincident path, stated using the graph's actual labels.
Nonvertex occupied cells are neither end of a canonical path.
An occupied point away from source centers has a genuine predecessor and successor at
every occurrence index. Together with unitPath_nodup, that occurrence index is unique.
The two actual predecessor/successor lookups at a nonvertex cell are unit neighbors.
A nonvertex cell's predecessor and successor are distinct, so its two ports differ.
A genuine strict transverse crossing of edge i's bridge with one stem of edge j.
The geometry is the canonical construction, not an assumed drawing witness.
Instances For
A canonical crossing lies at its exact integer stem column and bridge row.
The crossing lies strictly between the bridge's two port columns.
The crossing lies strictly above the stem's elbow and below its top endpoint.
Actual contact of two distinct canonical unit paths is a vertex center or a strict bridge/stem crossing, in one of the two orientations.
Unique canonical tracks and incidence columns admit at most the named two paths through their intersection, independently of whether that intersection is actually occupied.
Outside declared vertex centers, any two distinct occupied paths exclude every third path.
Every strict canonical crossing avoids every original source vertex center.
A crossing is not any listed point of either original polygonal route, including its elbows and upper endpoints. Thus no crossing occurs at a bend.
A strict crossing produces actual consecutive opposite horizontal/vertical unit neighbors on its two paths. Both the positions and their traversal order come from the canonical data.
Every actual nonvertex contact has one horizontally straight path and one vertically straight path, with opposite immediate unit neighbors.