# 第 23961 題：NFA到DFA的子集合構造

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

[← 逐題詳解目錄](https://ocme.evemisslab.com/zh-Hant/questions/) · [原題批次](https://ocme.evemisslab.com/zh-Hant/practice/batch-20261014-advance-20261112-r07-subset-construction-nfa-to-dfa-foundations/#q-20261014-advance-20261112-r07-subset-construction-nfa-to-dfa-0086)

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

R0046-23961 · q-20261014-advance-20261112-r07-subset-construction-nfa-to-dfa-0086



## 原題與已知條件

epsilon-closed start、move後closure與accepting-subset交集規則。操作=subsetdfa-full-word-trace-invariant；資料={"states":["s10","m10","f10","e110","e210","d10"],"alphabet":["a10","b10"],"start_state":"s10","final_states":["f10"],"transitions":[["s10",null,"m10"],["s10",null,"d10"],["m10","a10","m10"],["m10","b10","f10"],["f10",null,"e110"],["e110",null,"e210"]],"input":["a10","a10","b10"]}。請依 exact_ordered_tuple_declared_by_interface 欄序回答。


- G001 — epsilon-closed start、move後closure與accepting-subset交集規則。操作=subsetdfa-full-word-trace-invariant；資料={"states":["s10","m10","f10","e110","e210","d10"],"alphabet":["a10","b10"],"start_state":"s10","final_states":["f10"],"transitions":[["s10",null,"m10"],["s10",null,"d10"],["m10","a10","m10"],["m10","b10","f10"],["f10",null,"e110"],["e110",null,"e210"]],"input":["a10","a10","b10"]}。請依 exact_ordered_tuple_declared_by_interface 欄序回答。





## 定義與適用範圍

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


- [mko-subset-construction-nfa-to-dfa](https://ocme.evemisslab.com/zh-Hant/mko/mko-subset-construction-nfa-to-dfa/)





## 逐步推導

S001 · implies操作前

source operation=subsetdfa-full-word-trace-invariant;original snapshot and mathematics retained

操作後

explicit ordered source output fields=[input, DFA_prefix_subsets, direct_NFA_prefix_subsets, prefix_invariant, accepted, certificate, finite_tests_language_equivalence_claim, boundary]

條件：無

保留原題介面快照，本頁直接列來源欄序，不需JavaScript。radius由原mode選6／11欄，不補欄；No與實際否定依來源責任分清。

步驟識別與依賴規則：source_ordered_interface_explicit_without_javascript · 依賴：G001





S002 · implies操作前

ORIGINAL states=[s10, m10, f10, e110, e210, d10],alphabet=[a10, b10],start=s10;ORIGINAL transition order=[[s10, null, m10], [s10, null, d10], [m10, a10, m10], [m10, b10, f10], [f10, null, e110], [e110, null, e210]]

操作後

final set normalized UTF16=[f10];states nonempty,alphabet/finals/relation MAYEMPTY;DUPLICATE triples rejected in THIS model

條件：無

此題與前一NFA節點不同：transition triple須唯一，finals須排序。所有subset都是真carrier子集合；不偷用舊wrapper的duplicate／final-order慣例。

步驟識別與依賴規則：subsetdfa_qualified_NFA_signature_DUPLICATE_edges_REJECTED_here · 依賴：G001, S001





S003 · implies操作前

Subset DFA ORIGINAL whole-word start:stage=0;seed set=[s10];previous set=[s10]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s10, m10, 是], [1, s10, d10, 是], [4, f10, e110, 否], [5, e110, e210, 否]];next set=[d10, m10, s10];stable=否

條件：無

新增state都有前一層有限EPS路徑，任何含seed的EPS封閉集合都必含每層；有限states使飽和終止，得到完整且最小closure，不消耗input。

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





S004 · implies操作前

Subset DFA ORIGINAL whole-word start:stage=1;seed set=[s10];previous set=[d10, m10, s10]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s10, m10, 是], [1, s10, d10, 是], [4, f10, e110, 否], [5, e110, e210, 否]];next set=[d10, m10, s10];stable=是

條件：無

新增state都有前一層有限EPS路徑，任何含seed的EPS封閉集合都必含每層；有限states使飽和終止，得到完整且最小closure，不消耗input。

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





S005 · implies操作前

Subset DFA ORIGINAL prefix step0:EXACT ORIGINAL supplied S=[d10, m10, s10];symbol=a10;ALL matching ORIGINAL edge rows=[[2, m10, m10]]

操作後

direct symbol targets=[m10];NO EPS preclosure inserted into S;now close ONLY these targets

條件：無

任意給定S未必已EPS-closed，先preclose會改本題運算；定義明示先move(S,a)再closure。empty move得到合法empty dead state。

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





S006 · implies操作前

Subset DFA ORIGINAL prefix step0 post-symbol EPS closure:stage=0;seed set=[m10];previous set=[m10]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s10, m10, 否], [1, s10, d10, 否], [4, f10, e110, 否], [5, e110, e210, 否]];next set=[m10];stable=是

條件：無

新增state都有前一層有限EPS路徑，任何含seed的EPS封閉集合都必含每層；有限states使飽和終止，得到完整且最小closure，不消耗input。

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





S007 · implies操作前

Subset DFA ORIGINAL prefix step1:EXACT ORIGINAL supplied S=[m10];symbol=a10;ALL matching ORIGINAL edge rows=[[2, m10, m10]]

操作後

direct symbol targets=[m10];NO EPS preclosure inserted into S;now close ONLY these targets

條件：無

任意給定S未必已EPS-closed，先preclose會改本題運算；定義明示先move(S,a)再closure。empty move得到合法empty dead state。

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





S008 · implies操作前

Subset DFA ORIGINAL prefix step1 post-symbol EPS closure:stage=0;seed set=[m10];previous set=[m10]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s10, m10, 否], [1, s10, d10, 否], [4, f10, e110, 否], [5, e110, e210, 否]];next set=[m10];stable=是

條件：無

新增state都有前一層有限EPS路徑，任何含seed的EPS封閉集合都必含每層；有限states使飽和終止，得到完整且最小closure，不消耗input。

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





S009 · implies操作前

Subset DFA ORIGINAL prefix step2:EXACT ORIGINAL supplied S=[m10];symbol=b10;ALL matching ORIGINAL edge rows=[[3, m10, f10]]

操作後

direct symbol targets=[f10];NO EPS preclosure inserted into S;now close ONLY these targets

條件：無

任意給定S未必已EPS-closed，先preclose會改本題運算；定義明示先move(S,a)再closure。empty move得到合法empty dead state。

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





S010 · implies操作前

Subset DFA ORIGINAL prefix step2 post-symbol EPS closure:stage=0;seed set=[f10];previous set=[f10]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s10, m10, 否], [1, s10, d10, 否], [4, f10, e110, 是], [5, e110, e210, 否]];next set=[e110, f10];stable=否

條件：無

新增state都有前一層有限EPS路徑，任何含seed的EPS封閉集合都必含每層；有限states使飽和終止，得到完整且最小closure，不消耗input。

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





S011 · implies操作前

Subset DFA ORIGINAL prefix step2 post-symbol EPS closure:stage=1;seed set=[f10];previous set=[e110, f10]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s10, m10, 否], [1, s10, d10, 否], [4, f10, e110, 是], [5, e110, e210, 是]];next set=[e110, e210, f10];stable=否

條件：無

新增state都有前一層有限EPS路徑，任何含seed的EPS封閉集合都必含每層；有限states使飽和終止，得到完整且最小closure，不消耗input。

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





S012 · implies操作前

Subset DFA ORIGINAL prefix step2 post-symbol EPS closure:stage=2;seed set=[f10];previous set=[e110, e210, f10]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s10, m10, 否], [1, s10, d10, 否], [4, f10, e110, 是], [5, e110, e210, 是]];next set=[e110, e210, f10];stable=是

條件：無

新增state都有前一層有限EPS路徑，任何含seed的EPS封閉集合都必含每層；有限states使飽和終止，得到完整且最小closure，不消耗input。

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





S013 · implies操作前

ORIGINAL word=[a10, a10, b10];direct NFA configuration stage=0;previous configs=[[s10, 0]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s10, 0], 0, [m10, 0]], [[s10, 0], 1, [d10, 0]]];next configs=[[s10, 0], [m10, 0], [d10, 0]];stable=否

條件：無

這條直接路徑在完整finite state×input-position圖上求所有reachable，不把一條chosen run當成全狀態，也不把DFA同一函式重跑冒充不同觀察。

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





S014 · implies操作前

ORIGINAL word=[a10, a10, b10];direct NFA configuration stage=1;previous configs=[[s10, 0], [m10, 0], [d10, 0]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s10, 0], 0, [m10, 0]], [[s10, 0], 1, [d10, 0]], [[m10, 0], 2, [m10, 1]]];next configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1]];stable=否

條件：無

這條直接路徑在完整finite state×input-position圖上求所有reachable，不把一條chosen run當成全狀態，也不把DFA同一函式重跑冒充不同觀察。

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





S015 · implies操作前

ORIGINAL word=[a10, a10, b10];direct NFA configuration stage=2;previous configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s10, 0], 0, [m10, 0]], [[s10, 0], 1, [d10, 0]], [[m10, 0], 2, [m10, 1]], [[m10, 1], 2, [m10, 2]]];next configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1], [m10, 2]];stable=否

條件：無

這條直接路徑在完整finite state×input-position圖上求所有reachable，不把一條chosen run當成全狀態，也不把DFA同一函式重跑冒充不同觀察。

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





S016 · implies操作前

ORIGINAL word=[a10, a10, b10];direct NFA configuration stage=3;previous configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1], [m10, 2]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s10, 0], 0, [m10, 0]], [[s10, 0], 1, [d10, 0]], [[m10, 0], 2, [m10, 1]], [[m10, 1], 2, [m10, 2]], [[m10, 2], 3, [f10, 3]]];next configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1], [m10, 2], [f10, 3]];stable=否

條件：無

這條直接路徑在完整finite state×input-position圖上求所有reachable，不把一條chosen run當成全狀態，也不把DFA同一函式重跑冒充不同觀察。

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





S017 · implies操作前

ORIGINAL word=[a10, a10, b10];direct NFA configuration stage=4;previous configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1], [m10, 2], [f10, 3]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s10, 0], 0, [m10, 0]], [[s10, 0], 1, [d10, 0]], [[m10, 0], 2, [m10, 1]], [[m10, 1], 2, [m10, 2]], [[m10, 2], 3, [f10, 3]], [[f10, 3], 4, [e110, 3]]];next configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1], [m10, 2], [f10, 3], [e110, 3]];stable=否

條件：無

這條直接路徑在完整finite state×input-position圖上求所有reachable，不把一條chosen run當成全狀態，也不把DFA同一函式重跑冒充不同觀察。

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





S018 · implies操作前

ORIGINAL word=[a10, a10, b10];direct NFA configuration stage=5;previous configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1], [m10, 2], [f10, 3], [e110, 3]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s10, 0], 0, [m10, 0]], [[s10, 0], 1, [d10, 0]], [[m10, 0], 2, [m10, 1]], [[m10, 1], 2, [m10, 2]], [[m10, 2], 3, [f10, 3]], [[f10, 3], 4, [e110, 3]], [[e110, 3], 5, [e210, 3]]];next configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1], [m10, 2], [f10, 3], [e110, 3], [e210, 3]];stable=否

條件：無

這條直接路徑在完整finite state×input-position圖上求所有reachable，不把一條chosen run當成全狀態，也不把DFA同一函式重跑冒充不同觀察。

步驟識別與依賴規則：subsetdfa_DIRECT_all_NFA_word_configurations_independent_fixedpoint · 依賴：G001, S017





S019 · implies操作前

ORIGINAL word=[a10, a10, b10];direct NFA configuration stage=6;previous configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1], [m10, 2], [f10, 3], [e110, 3], [e210, 3]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s10, 0], 0, [m10, 0]], [[s10, 0], 1, [d10, 0]], [[m10, 0], 2, [m10, 1]], [[m10, 1], 2, [m10, 2]], [[m10, 2], 3, [f10, 3]], [[f10, 3], 4, [e110, 3]], [[e110, 3], 5, [e210, 3]]];next configs=[[s10, 0], [m10, 0], [d10, 0], [m10, 1], [m10, 2], [f10, 3], [e110, 3], [e210, 3]];stable=是

條件：無

這條直接路徑在完整finite state×input-position圖上求所有reachable，不把一條chosen run當成全狀態，也不把DFA同一函式重跑冒充不同觀察。

步驟識別與依賴規則：subsetdfa_DIRECT_all_NFA_word_configurations_independent_fixedpoint · 依賴：G001, S018





S020 · implies操作前

ORIGINAL word=[a10, a10, b10];ALL DFA prefix subsets=[[d10, m10, s10], [m10], [m10], [e110, e210, f10]];independent direct NFA prefix subsets=[[d10, m10, s10], [m10], [m10], [e110, e210, f10]]

操作後

prefix_invariant=是;accepted=是;base is EPS closure of start;for ANY prefix,append one symbol move then finite EPS suffix to obtain EXACTLY all next reachable states

條件：無

一般等價要對任意prefix歸納並證兩個包含：DFA步驟有NFA路徑見證；任一多讀一字的NFA路徑可切成前prefix、symbol邊、EPS後綴。再以與final交非空對應存在完整接受run。最後固定No只拒絕由有限word tests單獨宣稱一般等價，不否定本invariant、accepted或一般定理。

步驟識別與依賴規則：subsetdfa_GENERAL_arbitrary_prefix_two_inclusions_acceptance_rule · 依賴：G001, S019









## 逐步反向核對


- S020 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S019 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- S018 · premise_and_result_audit — 回到原始資料與本步條件核對，不把單向推論誤稱等價。
- 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 — 回到原始資料與本步條件核對，不把單向推論誤稱等價。





## 結論

([a10, a10, b10], [[d10, m10, s10], [m10], [m10], [e110, e210, f10]], [[d10, m10, s10], [m10], [m10], [e110, e210, f10]], 是, 是, each_DFA_prefix_subset_equals_all_epsilon_closed_NFA_states_reachable_after_that_prefix, 否, finite_word_tests_do_not_prove_language_equivalence_without_the_prefix_induction_invariant)

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





## 本題覆核與來源綁定

覆核日期：2026-10-26

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

來源雜湊與覆核憑證
- input commit: 0f7be61e2c22317a4075561dc822c87d881a50db
- original question SHA-256: 43d285b3789fb4196d78f0a7e3745da69de76d271b70bf083c496e7e89f5d69b
- candidate record SHA-256: 1e8282ea4bfaeab16323a21d27c4d8d40519a51799bb69f6ddb05e0fa0d3cd71
- semantic review receipt SHA-256: a7c0d888ade6d307703c4222c4137c78c0d2448babdcba2fa3446fe6fdd343c1
- question-first witness SHA-256: c9571f97a37d503ad6a61034cc00108543a05c37ef246d1c4962f55136a3de02
- Lean: NOT_RUN · human review: NOT_PERFORMED

[同源完整 JSON](https://ocme.evemisslab.com/data/question-derivations/questions/q-20261014-advance-20261112-r07-subset-construction-nfa-to-dfa-0086.json)




