Finite frozen-edge parity queries #
Each listed edge is replaced by three indexed segments through two fresh subdivision vertices. A completely prescribed original vertex freezes every incident first/last segment; the middle segments remain movable. The reference order lists each center followed by its selected leaves in reverse clockwise order, then the remaining subdivision points. Crossing bits use strict endpoint interleaving in that order. Independent unordered segment pairs contribute sparse XOR rows, with all frozen-edge move variables omitted.
This is a finite specialization of the equations in [Sch13], Sections
5.3–5.4, printed pp. 399–401. row_holds_iff and query_eq_true_iff prove their literal Boolean
meaning using the existing native XOR solver. They assert no geometric or numerical feasibility
criterion. The proposed full-rotation application of [FKP17], Theorem 1, p. 2,
and the necessary drawing/parity bridges remain separate mathematical obligations.
Main definitions #
Cslib.Complexity.Graph.RotationRecognition.subdivide: twice subdivision with frozen flags.Cslib.Complexity.Graph.RotationRecognition.compile: sparse independent-edge equations.Cslib.Complexity.Graph.RotationRecognition.query: validate, compile and callXORSAT.solve.
A segment retains its two endpoints and whether edge/vertex moves of this edge are frozen.
Instances For
The source vertex of a subdivision segment.
Instances For
The target vertex of a subdivision segment.
Instances For
Whether edge/vertex moves of this subdivision segment are frozen.
Instances For
The total subdivided vertex count; only actual list lengths fund this unary count.
Instances For
Replace edge e=(u,v) by u--a_e--b_e--v, retaining all occurrence indices. A fixed endpoint
freezes its entire first/last segment. Even loops and parallel edges get distinct fresh points.
Instances For
Existing listed graph underlying the twice subdivision.
Instances For
Center blocks with leaves in reverse prescribed clockwise order. A binary dart index d
names precisely subdivision point n+d, including the two separate ends of an original loop.
Instances For
Append subdivision points not already selected into a center block.
Instances For
Finite algebraic frame. The count is unary; endpoint labels and reference ranks are binary.
- vertexCount : ℕ
Declared number of vertices, used as the move-label stride.
Segment records, including the frozen flags.
Reference vertex order.
Instances For
Instances For
Instances For
Concrete frame compiled from the raw existing graph and fixed orders.
Instances For
Binary label of the move of indexed segment e past vertex v.
Instances For
Literal sparse row for two indexed segment records. No label deduplication is performed.
Instances For
Every unordered independent pair appears once, in increasing first segment index and then increasing second index. All scans traverse actual segment lists, never move-label intervals.
Instances For
The concrete sparse system on the twice-subdivided existing graph.
Instances For
Ordinary native XOR solving, after raw input validation. This is an algebraic query;
no result identifying it with Feasible is assumed or asserted.
Instances For
Exact row enumeration, including the strict unordered-pair scan and independence guard.
The actual native query accepts exactly valid inputs whose concrete frozen parity rows have a Boolean assignment. This uses the implemented XOR solver without a hypothesis.
There are exactly three listed segments per original edge occurrence.
Twice subdivision has the advertised dense vertex count, including isolates.
The number of rows is at most the square of the actual segment-list length.