# 第 9519 題：算法正確性責任

[返回所在分頁 48](https://ocme.evemisslab.com/zh-Hant/questions/page/48/)

[← 逐題詳解目錄](https://ocme.evemisslab.com/zh-Hant/questions/) · [原題批次](https://ocme.evemisslab.com/zh-Hant/practice/batch-20261013-advance-20261019-r05-algorithm-correctness-foundations/#q-20261013-advance-20261019-r05-algorithm-correctness-0019)

本頁是已完成第二對話 AI 數理與中英語義覆核的教學詳解，只支持本題明示的模型與前提。沒有人工審查或新 Lean 證明，也不提升原題或 MKO 的 Canonical 真值狀態。

R0018-09519 · q-20261013-advance-20261019-r05-algorithm-correctness-0019



## 原題與已知條件

完整有限正確性模型。操作=correctness-invariant-audit；資料={"n":6,"init":[0],"halt":[5],"steps":[[0,1],[1,2],[2,5],[3,4],[1,1]],"invariant":[0,1,2,3,4,5]}。請依 [invariant,init_in_invariant,bad_steps,step_preserved,inductive,covers_reachable] 欄序回答。


- G001 — 完整有限正確性模型。操作=correctness-invariant-audit；資料={"n":6,"init":[0],"halt":[5],"steps":[[0,1],[1,2],[2,5],[3,4],[1,1]],"invariant":[0,1,2,3,4,5]}。請依 [invariant,init_in_invariant,bad_steps,step_preserved,inductive,covers_reachable] 欄序回答。





## 定義與適用範圍

沿用原題明示的論域、假設與來源 MKO 定義。本題已完成第二對話數理與中英語義覆核，並由原始參數逐題獨立重算模型、答案與每個算術步驟；原題仍為 candidate。


- [mko-algorithm-correctness](https://ocme.evemisslab.com/zh-Hant/mko/mko-algorithm-correctness/)





## 逐步推導

S001 · implies操作前

n=6;raw Init=[0];raw Halt=[5];raw Step=[[0, 1], [1, 2], [2, 5], [3, 4], [1, 1]]

操作後

Init=[0];Halt=[5];canonical raw Step=[[0, 1], [1, 1], [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]

操作後

expanded successors=[1];newly reached=[1]

條件：無

從非halt狀態展開全部後繼，不只挑一條路；已見狀態不重複加入。halt即使列有出邊也不展開。

步驟識別與依賴規則：reachability_halt_truncates_expansion · 依賴：G001, S002





S004 · implies操作前

completed frontier=[0];depth=0

操作後

next frontier=[1];all reached=[0, 1]

條件：無

前緣清空時才到達完整閉包；有限狀態及只加未見者保證此列舉終止，不依賴路徑長度抽樣。

步驟識別與依賴規則：complete_finite_reachability_layer · 依賴：G001, S003





S005 · implies操作前

depth=1;state=1;halt=否;raw successors=[1, 2]

操作後

expanded successors=[1, 2];newly reached=[2]

條件：無

從非halt狀態展開全部後繼，不只挑一條路；已見狀態不重複加入。halt即使列有出邊也不展開。

步驟識別與依賴規則：reachability_halt_truncates_expansion · 依賴：G001, S004





S006 · implies操作前

completed frontier=[1];depth=1

操作後

next frontier=[2];all reached=[0, 1, 2]

條件：無

前緣清空時才到達完整閉包；有限狀態及只加未見者保證此列舉終止，不依賴路徑長度抽樣。

步驟識別與依賴規則：complete_finite_reachability_layer · 依賴：G001, S005





S007 · implies操作前

depth=2;state=2;halt=否;raw successors=[5]

操作後

expanded successors=[5];newly reached=[5]

條件：無

從非halt狀態展開全部後繼，不只挑一條路；已見狀態不重複加入。halt即使列有出邊也不展開。

步驟識別與依賴規則：reachability_halt_truncates_expansion · 依賴：G001, S006





S008 · implies操作前

completed frontier=[2];depth=2

操作後

next frontier=[5];all reached=[0, 1, 2, 5]

條件：無

前緣清空時才到達完整閉包；有限狀態及只加未見者保證此列舉終止，不依賴路徑長度抽樣。

步驟識別與依賴規則：complete_finite_reachability_layer · 依賴：G001, S007





S009 · implies操作前

depth=3;state=5;halt=是;raw successors=[]

操作後

expanded successors=[];newly reached=[]

條件：無

從非halt狀態展開全部後繼，不只挑一條路；已見狀態不重複加入。halt即使列有出邊也不展開。

步驟識別與依賴規則：reachability_halt_truncates_expansion · 依賴：G001, S008





S010 · implies操作前

completed frontier=[5];depth=3

操作後

next frontier=[];all reached=[0, 1, 2, 5]

條件：無

前緣清空時才到達完整閉包；有限狀態及只加未見者保證此列舉終止，不依賴路徑長度抽樣。

步驟識別與依賴規則：complete_finite_reachability_layer · 依賴：G001, S009





S011 · implies操作前

candidate invariant=[0, 1, 2, 3, 4, 5];Init=[0]

操作後

contains every initial state=是

條件：無

歸納不變量先須包含全部初始狀態，不是只挑一個初始點。

步驟識別與依賴規則：invariant_initial_obligation · 依賴：G001, S010





S012 · implies操作前

raw edge=[0, 1];source in invariant=是;source halt=否

操作後

preservation obligation active=是;violates invariant=否

條件：無

保持性檢查所有不變量內非halt來源的原邊，包含不可達來源；只涵蓋實際可達狀態是不同、較弱的觀察。

步驟識別與依賴規則：invariant_all_states_not_only_reachable · 依賴：G001, S011





S013 · implies操作前

raw edge=[1, 1];source in invariant=是;source halt=否

操作後

preservation obligation active=是;violates invariant=否

條件：無

保持性檢查所有不變量內非halt來源的原邊，包含不可達來源；只涵蓋實際可達狀態是不同、較弱的觀察。

步驟識別與依賴規則：invariant_all_states_not_only_reachable · 依賴：G001, S012





S014 · implies操作前

raw edge=[1, 2];source in invariant=是;source halt=否

操作後

preservation obligation active=是;violates invariant=否

條件：無

保持性檢查所有不變量內非halt來源的原邊，包含不可達來源；只涵蓋實際可達狀態是不同、較弱的觀察。

步驟識別與依賴規則：invariant_all_states_not_only_reachable · 依賴：G001, S013





S015 · implies操作前

raw edge=[2, 5];source in invariant=是;source halt=否

操作後

preservation obligation active=是;violates invariant=否

條件：無

保持性檢查所有不變量內非halt來源的原邊，包含不可達來源；只涵蓋實際可達狀態是不同、較弱的觀察。

步驟識別與依賴規則：invariant_all_states_not_only_reachable · 依賴：G001, S014





S016 · implies操作前

raw edge=[3, 4];source in invariant=是;source halt=否

操作後

preservation obligation active=是;violates invariant=否

條件：無

保持性檢查所有不變量內非halt來源的原邊，包含不可達來源；只涵蓋實際可達狀態是不同、較弱的觀察。

步驟識別與依賴規則：invariant_all_states_not_only_reachable · 依賴：G001, S015





S017 · implies操作前

bad preservation edges=[];initial obligation=是;reachable=[0, 1, 2, 5]

操作後

step preserved=是;inductive=是;covers reachable=是

條件：無

初始條件加一步保持性給歸納性；完整可達覆蓋另算，不以covers為真取代保持性。

步驟識別與依賴規則：inductiveness_and_reachable_coverage_separate · 依賴：G001, S016









## 逐步反向核對


- S017 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S016 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S015 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S014 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S013 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S012 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S011 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S010 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S009 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S008 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S007 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S006 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S005 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S004 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S003 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S002 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S001 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。





## 結論

([0, 1, 2, 3, 4, 5], 是, [], 是, 是, 是)

依上列完整代值及條件核對得到原題答案；原題編號、格式與狀態保持不變。





## 本題覆核與來源綁定

覆核日期：2026-10-26

原題、答案、步驟表達式、數值 AST 與既有歷史保持原樣；原來的候選狀態屬於來源歷史，不覆寫為形式化證明。

來源雜湊與覆核憑證
- input commit: 0f7be61e2c22317a4075561dc822c87d881a50db
- original question SHA-256: cd48166223d220567673af90885ee0982c7c4e40377facb8d90dfbf67aba0e3e
- candidate record SHA-256: 2f65eae14a665c873e0922b5b5f090d62fd5c0b11fd41035e78728a597573c1f
- semantic review receipt SHA-256: bd35da62087a15d6b89b45585dc46e89b9efbe097cba7b3c707b5030496f013c
- question-first witness SHA-256: fab45a10d8ac95c7d61d32e47d1bdd3ca862c17c3289a6bf4b01d4dc9492fbb6
- Lean: NOT_RUN · human review: NOT_PERFORMED

[同源完整 JSON](https://ocme.evemisslab.com/data/question-derivations/questions/q-20261013-advance-20261019-r05-algorithm-correctness-0019.json)




