Step-by-step derivation
S001 · implies
Before
full carrier Fin(7);raw undirected edges=[[0, 1], [0, 3], [1, 2], [1, 6], [2, 4], [2, 6], [3, 5]]
After
canonical simple edges=[[0, 1], [0, 3], [1, 2], [1, 6], [2, 4], [2, 6], [3, 5]];full adjacency rows=[[1, 3], [0, 2, 6], [1, 4, 6], [0, 5], [2], [3], [1, 2]]
Conditions: none
Build adjacency on the full carrier,rejecting loops and duplicate undirected edges.Vertices absent from edges retain empty rows;do not switch to directed connectivity.
Step identifiers and dependencies
Rule: component_full_undirected_graph_includes_isolates · Uses: G001
S002 · implies
Before
selected vertex:start vertex=3;complete adjacency=[[1, 3], [0, 2, 6], [1, 4, 6], [0, 5], [2], [3], [1, 2]]
After
initial visited=[3];path to start=[3];edge length0
Conditions: none
The start reaches itself by a length-zero path.Even an isolated vertex must be included rather than omitted for having no edges.
Step identifiers and dependencies
Rule: component_zero_length_reflexive_path · Uses: G001, S001
S003 · implies
Before
selected vertex:layer=0;frontier=[3];all frontier neighbors=[0, 5]
After
previously seen=[3];new vertices=[0, 5]
Conditions: none
At each layer inspect every neighbor of every frontier vertex,then add only unvisited distinct labels.Do not stop at a plausible-looking fragment.
Step identifiers and dependencies
Rule: component_complete_frontier_expansion · Uses: G001, S002
S004 · implies
Before
selected vertex:new vertex=0;earliest frontier parent=3;parent path=[3]
After
append actual parent edge;reachable path=[3, 0]
Conditions: none
Extend the established parent path by an original graph edge,so every added vertex really is reachable.
Step identifiers and dependencies
Rule: component_each_new_vertex_path_witness · Uses: G001, S003
S005 · implies
Before
selected vertex:new vertex=5;earliest frontier parent=3;parent path=[3]
After
append actual parent edge;reachable path=[3, 5]
Conditions: none
Extend the established parent path by an original graph edge,so every added vertex really is reachable.
Step identifiers and dependencies
Rule: component_each_new_vertex_path_witness · Uses: G001, S004
S006 · implies
Before
selected vertex:layer=1;frontier=[0, 5];all frontier neighbors=[1, 3]
After
previously seen=[0, 3, 5];new vertices=[1]
Conditions: none
At each layer inspect every neighbor of every frontier vertex,then add only unvisited distinct labels.Do not stop at a plausible-looking fragment.
Step identifiers and dependencies
Rule: component_complete_frontier_expansion · Uses: G001, S005
S007 · implies
Before
selected vertex:new vertex=1;earliest frontier parent=0;parent path=[3, 0]
After
append actual parent edge;reachable path=[3, 0, 1]
Conditions: none
Extend the established parent path by an original graph edge,so every added vertex really is reachable.
Step identifiers and dependencies
Rule: component_each_new_vertex_path_witness · Uses: G001, S006
S008 · implies
Before
selected vertex:layer=2;frontier=[1];all frontier neighbors=[0, 2, 6]
After
previously seen=[0, 1, 3, 5];new vertices=[2, 6]
Conditions: none
At each layer inspect every neighbor of every frontier vertex,then add only unvisited distinct labels.Do not stop at a plausible-looking fragment.
Step identifiers and dependencies
Rule: component_complete_frontier_expansion · Uses: G001, S007
S009 · implies
Before
selected vertex:new vertex=2;earliest frontier parent=1;parent path=[3, 0, 1]
After
append actual parent edge;reachable path=[3, 0, 1, 2]
Conditions: none
Extend the established parent path by an original graph edge,so every added vertex really is reachable.
Step identifiers and dependencies
Rule: component_each_new_vertex_path_witness · Uses: G001, S008
S010 · implies
Before
selected vertex:new vertex=6;earliest frontier parent=1;parent path=[3, 0, 1]
After
append actual parent edge;reachable path=[3, 0, 1, 6]
Conditions: none
Extend the established parent path by an original graph edge,so every added vertex really is reachable.
Step identifiers and dependencies
Rule: component_each_new_vertex_path_witness · Uses: G001, S009
S011 · implies
Before
selected vertex:layer=3;frontier=[2, 6];all frontier neighbors=[1, 2, 4, 6]
After
previously seen=[0, 1, 2, 3, 5, 6];new vertices=[4]
Conditions: none
At each layer inspect every neighbor of every frontier vertex,then add only unvisited distinct labels.Do not stop at a plausible-looking fragment.
Step identifiers and dependencies
Rule: component_complete_frontier_expansion · Uses: G001, S010
S012 · implies
Before
selected vertex:new vertex=4;earliest frontier parent=2;parent path=[3, 0, 1, 2]
After
append actual parent edge;reachable path=[3, 0, 1, 2, 4]
Conditions: none
Extend the established parent path by an original graph edge,so every added vertex really is reachable.
Step identifiers and dependencies
Rule: component_each_new_vertex_path_witness · Uses: G001, S011
S013 · implies
Before
selected vertex:layer=4;frontier=[4];all frontier neighbors=[2]
After
previously seen=[0, 1, 2, 3, 4, 5, 6];new vertices=[]
Conditions: none
At each layer inspect every neighbor of every frontier vertex,then add only unvisited distinct labels.Do not stop at a plausible-looking fragment.
Step identifiers and dependencies
Rule: component_complete_frontier_expansion · Uses: G001, S012
S014 · implies
Before
selected vertex:final visited=[0, 1, 2, 3, 4, 5, 6];all [vertex,neighbors,outside neighbors] rows=[[0, [1, 3], []], [1, [0, 2, 6], []], [2, [1, 4, 6], []], [3, [0, 5], []], [4, [2], []], [5, [3], []], [6, [1, 2], []]]
After
no edge leaves visited;every visited vertex has a path;visited equals full reachable set
Conditions: none
Path witnesses give visited⊆reachable.At completion no edge leaves visited.If a path reached outside,it would have a first leaving edge,a contradiction,so reachable⊆visited.Both directions establish the whole component,not a traversal order.
Step identifiers and dependencies
Rule: component_reachable_and_closed_set_completeness · Uses: G001, S013