逐步推導
S001 · implies
操作前
full carrier Fin(7);raw undirected edges=[[0, 2], [0, 4], [0, 5], [1, 3], [1, 4], [2, 3], [2, 4], [2, 5], [3, 4]]
操作後
canonical simple edges=[[0, 2], [0, 4], [0, 5], [1, 3], [1, 4], [2, 3], [2, 4], [2, 5], [3, 4]];full adjacency rows=[[2, 4, 5], [3, 4], [0, 3, 4, 5], [1, 2, 4], [0, 1, 2, 3], [0, 2], []]
條件:無
用完整載體建立鄰接表,拒絕loop與重複無向邊;沒出現在邊中的頂點仍保留空鄰接列,不切換有向連通語義。
步驟識別與依賴
規則:component_full_undirected_graph_includes_isolates · 依賴:G001
S002 · implies
操作前
class representative0:start vertex=0;complete adjacency=[[2, 4, 5], [3, 4], [0, 3, 4, 5], [1, 2, 4], [0, 1, 2, 3], [0, 2], []]
操作後
initial visited=[0];path to start=[0];edge length0
條件:無
起點以長度0路徑到自己,孤立點也必須納入,不能因沒有邊而漏掉。
步驟識別與依賴
規則:component_zero_length_reflexive_path · 依賴:G001, S001
S003 · implies
操作前
class representative0:layer=0;frontier=[0];all frontier neighbors=[2, 4, 5]
操作後
previously seen=[0];new vertices=[2, 4, 5]
條件:無
每層遍歷該層所有頂點的所有鄰居,去重後只加入未訪者;不提前停止於看起來足夠的子圖。
步驟識別與依賴
規則:component_complete_frontier_expansion · 依賴:G001, S002
S004 · implies
操作前
class representative0:new vertex=2;earliest frontier parent=0;parent path=[0]
操作後
append actual parent edge;reachable path=[0, 2]
條件:無
已有父路徑後,接上一條原圖邊得到新頂點路徑,故每個被加入的點真的可達。
步驟識別與依賴
規則:component_each_new_vertex_path_witness · 依賴:G001, S003
S005 · implies
操作前
class representative0:new vertex=4;earliest frontier parent=0;parent path=[0]
操作後
append actual parent edge;reachable path=[0, 4]
條件:無
已有父路徑後,接上一條原圖邊得到新頂點路徑,故每個被加入的點真的可達。
步驟識別與依賴
規則:component_each_new_vertex_path_witness · 依賴:G001, S004
S006 · implies
操作前
class representative0:new vertex=5;earliest frontier parent=0;parent path=[0]
操作後
append actual parent edge;reachable path=[0, 5]
條件:無
已有父路徑後,接上一條原圖邊得到新頂點路徑,故每個被加入的點真的可達。
步驟識別與依賴
規則:component_each_new_vertex_path_witness · 依賴:G001, S005
S007 · implies
操作前
class representative0:layer=1;frontier=[2, 4, 5];all frontier neighbors=[0, 1, 2, 3, 4, 5]
操作後
previously seen=[0, 2, 4, 5];new vertices=[1, 3]
條件:無
每層遍歷該層所有頂點的所有鄰居,去重後只加入未訪者;不提前停止於看起來足夠的子圖。
步驟識別與依賴
規則:component_complete_frontier_expansion · 依賴:G001, S006
S008 · implies
操作前
class representative0:new vertex=1;earliest frontier parent=4;parent path=[0, 4]
操作後
append actual parent edge;reachable path=[0, 4, 1]
條件:無
已有父路徑後,接上一條原圖邊得到新頂點路徑,故每個被加入的點真的可達。
步驟識別與依賴
規則:component_each_new_vertex_path_witness · 依賴:G001, S007
S009 · implies
操作前
class representative0:new vertex=3;earliest frontier parent=2;parent path=[0, 2]
操作後
append actual parent edge;reachable path=[0, 2, 3]
條件:無
已有父路徑後,接上一條原圖邊得到新頂點路徑,故每個被加入的點真的可達。
步驟識別與依賴
規則:component_each_new_vertex_path_witness · 依賴:G001, S008
S010 · implies
操作前
class representative0:layer=2;frontier=[1, 3];all frontier neighbors=[1, 2, 3, 4]
操作後
previously seen=[0, 1, 2, 3, 4, 5];new vertices=[]
條件:無
每層遍歷該層所有頂點的所有鄰居,去重後只加入未訪者;不提前停止於看起來足夠的子圖。
步驟識別與依賴
規則:component_complete_frontier_expansion · 依賴:G001, S009
S011 · implies
操作前
class representative0:final visited=[0, 1, 2, 3, 4, 5];all [vertex,neighbors,outside neighbors] rows=[[0, [2, 4, 5], []], [1, [3, 4], []], [2, [0, 3, 4, 5], []], [3, [1, 2, 4], []], [4, [0, 1, 2, 3], []], [5, [0, 2], []]]
操作後
no edge leaves visited;every visited vertex has a path;visited equals full reachable set
條件:無
路徑見證給已訪⊆可達;搜尋完後無邊離開已訪集合,任一路徑若到外面必有第一條離開邊,矛盾,因此可達⊆已訪。兩方向才是完整分量,不是遍歷順序。
步驟識別與依賴
規則:component_reachable_and_closed_set_completeness · 依賴:G001, S010
S012 · implies
操作前
least unvisited representative=0;derived component=[0, 1, 2, 3, 4, 5]
操作後
all visited labels=[0, 1, 2, 3, 4, 5]
條件:無
類內標籤遞增,類間按最小未訪代表順序輸出;不以BFS發現順序充當canonical分量次序。
步驟識別與依賴
規則:component_least_unvisited_class_order · 依賴:G001, S011
S013 · implies
操作前
class representative6:start vertex=6;complete adjacency=[[2, 4, 5], [3, 4], [0, 3, 4, 5], [1, 2, 4], [0, 1, 2, 3], [0, 2], []]
操作後
initial visited=[6];path to start=[6];edge length0
條件:無
起點以長度0路徑到自己,孤立點也必須納入,不能因沒有邊而漏掉。
步驟識別與依賴
規則:component_zero_length_reflexive_path · 依賴:G001, S012
S014 · implies
操作前
class representative6:layer=0;frontier=[6];all frontier neighbors=[]
操作後
previously seen=[6];new vertices=[]
條件:無
每層遍歷該層所有頂點的所有鄰居,去重後只加入未訪者;不提前停止於看起來足夠的子圖。
步驟識別與依賴
規則:component_complete_frontier_expansion · 依賴:G001, S013
S015 · implies
操作前
class representative6:final visited=[6];all [vertex,neighbors,outside neighbors] rows=[[6, [], []]]
操作後
no edge leaves visited;every visited vertex has a path;visited equals full reachable set
條件:無
路徑見證給已訪⊆可達;搜尋完後無邊離開已訪集合,任一路徑若到外面必有第一條離開邊,矛盾,因此可達⊆已訪。兩方向才是完整分量,不是遍歷順序。
步驟識別與依賴
規則:component_reachable_and_closed_set_completeness · 依賴:G001, S014
S016 · implies
操作前
least unvisited representative=6;derived component=[6]
操作後
all visited labels=[0, 1, 2, 3, 4, 5, 6]
條件:無
類內標籤遞增,類間按最小未訪代表順序輸出;不以BFS發現順序充當canonical分量次序。
步驟識別與依賴
規則:component_least_unvisited_class_order · 依賴:G001, S015