Finite certificates for contacts of polygonal routes #
Two axis-aligned closed segments have rectangular bounding boxes whose intersection is empty, a singleton, or an overlapping segment. The Boolean checker accepts the first two cases when the singleton is an allowed contact point. Its soundness refers to the entire real segments. In fact, the sufficient bounding-box criterion is sound even for diagonal segments.
The route checker includes a degenerate segment for every listed point, so its soundness also covers empty and singleton routes. In particular, checking against a singleton route certifies that an incidence route avoids a nonincident vertex.
Main definitions #
Cslib.Orthogonal.consecutiveContact: permitted shared bend between two segments.Cslib.Orthogonal.segmentContactCheck: check permitted contacts between two closed segments.Cslib.Orthogonal.routeBoxDisjoint: check whether two route bounding boxes are disjoint.Cslib.Orthogonal.routeContactCheck: check permitted contacts between continuous route supports.
Main results #
Cslib.Orthogonal.segmentContactCheck_sound: every real intersection is an allowed grid point.Cslib.Orthogonal.disjoint_support_of_routeBoxDisjoint: disjoint route boxes have disjoint continuous supports.Cslib.Orthogonal.routeContactCheck_sound: the corresponding certificate for route supports.Cslib.Orthogonal.disjoint_support_of_routeContactCheck: an empty contact list proves disjointness.Cslib.Orthogonal.not_mem_support_of_routeContactCheck: a singleton check excludes a vertex.
References #
This finite bounding-box certificate is an elementary geometric construction.
Check whether the integer coordinate bounding boxes of two routes are disjoint. Empty routes have empty support, so their bounding boxes are treated as disjoint.
Instances For
Disjoint integer route bounding boxes certify disjoint continuous supports.