逐步推導
S001 · implies
操作前
n=6;raw Init=[0];raw Halt=[5];raw Step=[[0, 1], [1, 2], [2, 5], [0, 3], [3, 4]]
操作後
Init=[0];Halt=[5];canonical raw Step=[[0, 1], [0, 3], [1, 2], [2, 5], [3, 4]]
條件:無
整張有限資料先合型,再去重原有向邊。保留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=[4]
操作後
expanded successors=[4];newly reached=[4]
條件:無
從非halt狀態展開全部後繼,不只挑一條路;已見狀態不重複加入。halt即使列有出邊也不展開。
步驟識別與依賴
規則:reachability_halt_truncates_expansion · 依賴:G001, S005
S007 · implies
操作前
completed frontier=[1, 3];depth=1
操作後
next frontier=[2, 4];all reached=[0, 1, 2, 3, 4]
條件:無
前緣清空時才到達完整閉包;有限狀態及只加未見者保證此列舉終止,不依賴路徑長度抽樣。
步驟識別與依賴
規則:complete_finite_reachability_layer · 依賴:G001, S006
S008 · implies
操作前
depth=2;state=2;halt=否;raw successors=[5]
操作後
expanded successors=[5];newly reached=[5]
條件:無
從非halt狀態展開全部後繼,不只挑一條路;已見狀態不重複加入。halt即使列有出邊也不展開。
步驟識別與依賴
規則:reachability_halt_truncates_expansion · 依賴:G001, S007
S009 · implies
操作前
depth=2;state=4;halt=否;raw successors=[]
操作後
expanded successors=[];newly reached=[]
條件:無
從非halt狀態展開全部後繼,不只挑一條路;已見狀態不重複加入。halt即使列有出邊也不展開。
步驟識別與依賴
規則:reachability_halt_truncates_expansion · 依賴:G001, S008
S010 · implies
操作前
completed frontier=[2, 4];depth=2
操作後
next frontier=[5];all reached=[0, 1, 2, 3, 4, 5]
條件:無
前緣清空時才到達完整閉包;有限狀態及只加未見者保證此列舉終止,不依賴路徑長度抽樣。
步驟識別與依賴
規則:complete_finite_reachability_layer · 依賴:G001, S009
S011 · implies
操作前
depth=3;state=5;halt=是;raw successors=[]
操作後
expanded successors=[];newly reached=[]
條件:無
從非halt狀態展開全部後繼,不只挑一條路;已見狀態不重複加入。halt即使列有出邊也不展開。
步驟識別與依賴
規則:reachability_halt_truncates_expansion · 依賴:G001, S010
S012 · implies
操作前
completed frontier=[5];depth=3
操作後
next frontier=[];all reached=[0, 1, 2, 3, 4, 5]
條件:無
前緣清空時才到達完整閉包;有限狀態及只加未見者保證此列舉終止,不依賴路徑長度抽樣。
步驟識別與依賴
規則:complete_finite_reachability_layer · 依賴:G001, S011
S013 · implies
操作前
reached state=0;declared halt=否;raw successors=[1, 3]
操作後
status=active-nonhalt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S012
S014 · implies
操作前
reached state=1;declared halt=否;raw successors=[2]
操作後
status=active-nonhalt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S013
S015 · implies
操作前
reached state=2;declared halt=否;raw successors=[5]
操作後
status=active-nonhalt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S014
S016 · implies
操作前
reached state=3;declared halt=否;raw successors=[4]
操作後
status=active-nonhalt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S015
S017 · implies
操作前
reached state=4;declared halt=否;raw successors=[]
操作後
status=stuck-nonhalt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S016
S018 · implies
操作前
reached state=5;declared halt=是;raw successors=[]
操作後
status=halt
條件:無
halt標記優先;非halt且無後繼才是stuck,有後繼者為active。沒有出邊不會自動變成成功停止。
步驟識別與依賴
規則:halt_stuck_active_are_distinct · 依賴:G001, S017
S019 · implies
操作前
natural rank vector=[9, 5, 4, 3, 2, 0];reachable=[0, 1, 2, 3, 4, 5];Halt=[5]
操作後
all active ranking edges=[[0, 1], [0, 3], [1, 2], [2, 5], [3, 4]]
條件:無
自然數ranking只在可達非halt出邊要求嚴格下降,包含進入halt的邊;halt原始出邊不構成繼續執行。
步驟識別與依賴
規則:ranking_reachable_nonhalt_edge_scope · 依賴:G001, S018
S020 · calculation
操作前
rank decrease on edge0,1 := sub(9, 5)
操作後
rank decrease on edge0,1 = 4
條件:無
前態rank減後態rank,必須嚴格大於0才下降。
步驟識別與依賴
規則:exact_rational_arithmetic · 依賴:G001, S019
S021 · implies
操作前
edge=[0, 1];ranks=[9, 5];difference=4
操作後
strictly decreasing=是
條件:無
相等不算下降;保留所有不下降的原邊,不只報第一條。
步驟識別與依賴
規則:ranking_each_strict_decrease · 依賴:G001, S020
S022 · calculation
操作前
rank decrease on edge0,3 := sub(9, 3)
操作後
rank decrease on edge0,3 = 6
條件:無
前態rank減後態rank,必須嚴格大於0才下降。
步驟識別與依賴
規則:exact_rational_arithmetic · 依賴:G001, S021
S023 · implies
操作前
edge=[0, 3];ranks=[9, 3];difference=6
操作後
strictly decreasing=是
條件:無
相等不算下降;保留所有不下降的原邊,不只報第一條。
步驟識別與依賴
規則:ranking_each_strict_decrease · 依賴:G001, S022
S024 · calculation
操作前
rank decrease on edge1,2 := sub(5, 4)
操作後
rank decrease on edge1,2 = 1
條件:無
前態rank減後態rank,必須嚴格大於0才下降。
步驟識別與依賴
規則:exact_rational_arithmetic · 依賴:G001, S023
S025 · implies
操作前
edge=[1, 2];ranks=[5, 4];difference=1
操作後
strictly decreasing=是
條件:無
相等不算下降;保留所有不下降的原邊,不只報第一條。
步驟識別與依賴
規則:ranking_each_strict_decrease · 依賴:G001, S024
S026 · calculation
操作前
rank decrease on edge2,5 := sub(4, 0)
操作後
rank decrease on edge2,5 = 4
條件:無
前態rank減後態rank,必須嚴格大於0才下降。
步驟識別與依賴
規則:exact_rational_arithmetic · 依賴:G001, S025
S027 · implies
操作前
edge=[2, 5];ranks=[4, 0];difference=4
操作後
strictly decreasing=是
條件:無
相等不算下降;保留所有不下降的原邊,不只報第一條。
步驟識別與依賴
規則:ranking_each_strict_decrease · 依賴:G001, S026
S028 · calculation
操作前
rank decrease on edge3,4 := sub(3, 2)
操作後
rank decrease on edge3,4 = 1
條件:無
前態rank減後態rank,必須嚴格大於0才下降。
步驟識別與依賴
規則:exact_rational_arithmetic · 依賴:G001, S027
S029 · implies
操作前
edge=[3, 4];ranks=[3, 2];difference=1
操作後
strictly decreasing=是
條件:無
相等不算下降;保留所有不下降的原邊,不只報第一條。
步驟識別與依賴
規則:ranking_each_strict_decrease · 依賴:G001, S028
S030 · implies
操作前
reachable=[0, 1, 2, 3, 4, 5];Halt=[5]
操作後
reachable nonhalt graph vertices=[0, 1, 2, 3, 4]
條件:無
只在可達且非halt的子圖查環;不可達環與halt出邊不影響這個執行問題。
步驟識別與依賴
規則:reachable_nonhalt_cycle_scope · 依賴:G001, S029
S031 · implies
操作前
peeling layer=0;remaining=[0, 1, 2, 3, 4]
操作後
vertices with no remaining nonhalt successor=[2, 4]
條件:無
逐層移除沒有剩餘非halt後繼的頂點;有向環的頂點不可能被這樣移除。stuck也可能被移除,所以另保留stuck檢查。
步驟識別與依賴
規則:finite_cycle_sink_peeling · 依賴:G001, S030
S032 · implies
操作前
peeling layer=1;remaining=[0, 1, 3]
操作後
vertices with no remaining nonhalt successor=[1, 3]
條件:無
逐層移除沒有剩餘非halt後繼的頂點;有向環的頂點不可能被這樣移除。stuck也可能被移除,所以另保留stuck檢查。
步驟識別與依賴
規則:finite_cycle_sink_peeling · 依賴:G001, S031
S033 · implies
操作前
peeling layer=2;remaining=[0]
操作後
vertices with no remaining nonhalt successor=[0]
條件:無
逐層移除沒有剩餘非halt後繼的頂點;有向環的頂點不可能被這樣移除。stuck也可能被移除,所以另保留stuck檢查。
步驟識別與依賴
規則:finite_cycle_sink_peeling · 依賴:G001, S032
S034 · implies
操作前
all reachable nonhalt vertices peeled
操作後
reachable nonhalt graph is acyclic
條件:無
全部移除等價無有向環;這不是僅因某次執行看不到環。
步驟識別與依賴
規則:complete_acyclic_nonhalt_certificate · 依賴:G001, S033
S035 · implies
操作前
reachable stuck=[4];reachable nonhalt cycle=否
操作後
all paths reach Halt=否
條件:無
有限模型中,無窮非halt路徑必重複狀態而有環;有限極大路徑若不halt就停在stuck。因此排除兩者才是所有路徑到halt。空Init時是空泛真,不外推任意無限狀態程式。
步驟識別與依賴
規則:finite_all_paths_termination_joint_gate · 依賴:G001, S034
S036 · implies
操作前
ranking valid=是;reachable stuck=[4]
操作後
ranking plus no stuck=否;actual all-path termination=否
條件:無
自然數嚴格下降排除無窮執行,但仍要排除stuck才到成功halt。候選ranking失敗不代表模型不終止;實際終止性由完整有限圖另核。
步驟識別與依賴
規則:ranking_candidate_not_actual_termination_identity · 依賴:G001, S035