逐步推導
S001 · implies
操作前
n=6;raw Init=[0];raw Halt=[5];raw Step=[[0, 1], [1, 2], [2, 5], [0, 3], [2, 1]]
操作後
Init=[0];Halt=[5];canonical raw Step=[[0, 1], [0, 3], [1, 2], [2, 1], [2, 5]]
條件:無
整張有限資料先合型,再去重原有向邊。保留halt的原始出邊在資料中,但執行語意在halt停止;不把stuck當成功halt,也不由一條prefix推一般程式終止。
步驟識別與依賴
規則:finite_transition_normalization · 依賴:G001
S002 · implies
操作前
Init=[0]
操作後
zero-step reachable=[0]
條件:無
每個初始狀態以0步可達,包括初始即halt者;空Init沒有可達狀態。
步驟識別與依賴
規則:zero_step_reachability · 依賴:G001, S001
S003 · implies
操作前
depth=0;state=0;halt=否;raw successors=[1, 3]
操作後
expanded successors=[1, 3];newly reached=[1, 3]
條件:無
從非halt狀態展開全部後繼,不只挑一條路;已見狀態不重複加入。halt即使列有出邊也不展開。
步驟識別與依賴
規則:reachability_halt_truncates_expansion · 依賴:G001, S002
S004 · implies
操作前
completed frontier=[0];depth=0
操作後
next frontier=[1, 3];all reached=[0, 1, 3]
條件:無
前緣清空時才到達完整閉包;有限狀態及只加未見者保證此列舉終止,不依賴路徑長度抽樣。
步驟識別與依賴
規則:complete_finite_reachability_layer · 依賴:G001, S003
S005 · implies
操作前
depth=1;state=1;halt=否;raw successors=[2]
操作後
expanded successors=[2];newly reached=[2]
條件:無
從非halt狀態展開全部後繼,不只挑一條路;已見狀態不重複加入。halt即使列有出邊也不展開。
步驟識別與依賴
規則:reachability_halt_truncates_expansion · 依賴:G001, S004
S006 · implies
操作前
depth=1;state=3;halt=否;raw successors=[]
操作後
expanded successors=[];newly reached=[]
條件:無
從非halt狀態展開全部後繼,不只挑一條路;已見狀態不重複加入。halt即使列有出邊也不展開。
步驟識別與依賴
規則:reachability_halt_truncates_expansion · 依賴:G001, S005
S007 · implies
操作前
completed frontier=[1, 3];depth=1
操作後
next frontier=[2];all reached=[0, 1, 2, 3]
條件:無
前緣清空時才到達完整閉包;有限狀態及只加未見者保證此列舉終止,不依賴路徑長度抽樣。
步驟識別與依賴
規則:complete_finite_reachability_layer · 依賴:G001, S006
S008 · implies
操作前
depth=2;state=2;halt=否;raw successors=[1, 5]
操作後
expanded successors=[1, 5];newly reached=[5]
條件:無
從非halt狀態展開全部後繼,不只挑一條路;已見狀態不重複加入。halt即使列有出邊也不展開。
步驟識別與依賴
規則:reachability_halt_truncates_expansion · 依賴:G001, S007
S009 · implies
操作前
completed frontier=[2];depth=2
操作後
next frontier=[5];all reached=[0, 1, 2, 3, 5]
條件:無
前緣清空時才到達完整閉包;有限狀態及只加未見者保證此列舉終止,不依賴路徑長度抽樣。
步驟識別與依賴
規則:complete_finite_reachability_layer · 依賴:G001, S008
S010 · implies
操作前
depth=3;state=5;halt=是;raw successors=[]
操作後
expanded successors=[];newly reached=[]
條件:無
從非halt狀態展開全部後繼,不只挑一條路;已見狀態不重複加入。halt即使列有出邊也不展開。
步驟識別與依賴
規則:reachability_halt_truncates_expansion · 依賴:G001, S009
S011 · implies
操作前
completed frontier=[5];depth=3
操作後
next frontier=[];all reached=[0, 1, 2, 3, 5]
條件:無
前緣清空時才到達完整閉包;有限狀態及只加未見者保證此列舉終止,不依賴路徑長度抽樣。
步驟識別與依賴
規則:complete_finite_reachability_layer · 依賴:G001, S010
S012 · implies
操作前
reached state=0;declared halt=否;raw successors=[1, 3]
操作後
status=active-nonhalt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S011
S013 · implies
操作前
reached state=1;declared halt=否;raw successors=[2]
操作後
status=active-nonhalt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S012
S014 · implies
操作前
reached state=2;declared halt=否;raw successors=[1, 5]
操作後
status=active-nonhalt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S013
S015 · implies
操作前
reached state=3;declared halt=否;raw successors=[]
操作後
status=stuck-nonhalt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S014
S016 · implies
操作前
reached state=5;declared halt=是;raw successors=[]
操作後
status=halt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S015
S017 · implies
操作前
reachable=[0, 1, 2, 3, 5];Halt=[5]
操作後
reachable nonhalt graph vertices=[0, 1, 2, 3]
條件:無
只在可達且非halt的子圖查環;不可達環與halt出邊不影響這個執行問題。
步驟識別與依賴
規則:reachable_nonhalt_cycle_scope · 依賴:G001, S016
S018 · implies
操作前
peeling layer=0;remaining=[0, 1, 2, 3]
操作後
vertices with no remaining nonhalt successor=[3]
條件:無
逐層移除沒有剩餘非halt後繼的頂點;有向環的頂點不可能被這樣移除。stuck也可能被移除,所以另保留stuck檢查。
步驟識別與依賴
規則:finite_cycle_sink_peeling · 依賴:G001, S017
S019 · implies
操作前
peeling layer=1;remaining=[0, 1, 2]
操作後
vertices with no remaining nonhalt successor=[]
條件:無
逐層移除沒有剩餘非halt後繼的頂點;有向環的頂點不可能被這樣移除。stuck也可能被移除,所以另保留stuck檢查。
步驟識別與依賴
規則:finite_cycle_sink_peeling · 依賴:G001, S018
S020 · implies
操作前
nonempty residual=[0, 1, 2];deterministic walk=[0, 1, 2, 1]
操作後
reachable nonhalt cycle=[1, 2, 1]
條件:無
剩餘每點都有剩餘後繼,沿最小標籤後繼走,有限集合必重複頂點並給出實際環;可選擇一直走這個環,所以即使也有halt出口,仍非所有路徑到halt。
步驟識別與依賴
規則:explicit_reachable_cycle_witness · 依賴:G001, S019
S021 · implies
操作前
reachable stuck=[3];reachable nonhalt cycle=是
操作後
all paths reach Halt=否
條件:無
有限模型中,無窮非halt路徑必重複狀態而有環;有限極大路徑若不halt就停在stuck。因此排除兩者才是所有路徑到halt。空Init時是空泛真,不外推任意無限狀態程式。
步驟識別與依賴
規則:finite_all_paths_termination_joint_gate · 依賴:G001, S020
S022 · implies
操作前
cycle=是;stuck=[3]
操作後
classification=reachable非停止cycle
條件:無
若環與stuck同時存在,分類優先報環,但前欄仍完整保留stuck,不能用優先級消去另一診斷。
步驟識別與依賴
規則:cycle_classification_precedence_without_erasing_stuck · 依賴:G001, S021