# 第 23954 題：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-0079)

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

R0046-23954 · q-20261014-advance-20261112-r07-subset-construction-nfa-to-dfa-0079



## 原題與已知條件

epsilon-closed start、move後closure與accepting-subset交集規則。操作=subsetdfa-full-word-trace-invariant；資料={"states":["s3","m3","f3","e13","e23","d3"],"alphabet":["a3","b3"],"start_state":"s3","final_states":["f3"],"transitions":[["s3",null,"m3"],["s3",null,"d3"],["m3","a3","m3"],["m3","b3","f3"],["f3",null,"e13"],["e13",null,"e23"]],"input":["a3","a3","a3","b3"]}。請依 exact_ordered_tuple_declared_by_interface 欄序回答。


- G001 — epsilon-closed start、move後closure與accepting-subset交集規則。操作=subsetdfa-full-word-trace-invariant；資料={"states":["s3","m3","f3","e13","e23","d3"],"alphabet":["a3","b3"],"start_state":"s3","final_states":["f3"],"transitions":[["s3",null,"m3"],["s3",null,"d3"],["m3","a3","m3"],["m3","b3","f3"],["f3",null,"e13"],["e13",null,"e23"]],"input":["a3","a3","a3","b3"]}。請依 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=[s3, m3, f3, e13, e23, d3],alphabet=[a3, b3],start=s3;ORIGINAL transition order=[[s3, null, m3], [s3, null, d3], [m3, a3, m3], [m3, b3, f3], [f3, null, e13], [e13, null, e23]]

操作後

final set normalized UTF16=[f3];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=[s3];previous set=[s3]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s3, m3, 是], [1, s3, d3, 是], [4, f3, e13, 否], [5, e13, e23, 否]];next set=[d3, m3, s3];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=[s3];previous set=[d3, m3, s3]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s3, m3, 是], [1, s3, d3, 是], [4, f3, e13, 否], [5, e13, e23, 否]];next set=[d3, m3, s3];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=[d3, m3, s3];symbol=a3;ALL matching ORIGINAL edge rows=[[2, m3, m3]]

操作後

direct symbol targets=[m3];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=[m3];previous set=[m3]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s3, m3, 否], [1, s3, d3, 否], [4, f3, e13, 否], [5, e13, e23, 否]];next set=[m3];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=[m3];symbol=a3;ALL matching ORIGINAL edge rows=[[2, m3, m3]]

操作後

direct symbol targets=[m3];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=[m3];previous set=[m3]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s3, m3, 否], [1, s3, d3, 否], [4, f3, e13, 否], [5, e13, e23, 否]];next set=[m3];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=[m3];symbol=a3;ALL matching ORIGINAL edge rows=[[2, m3, m3]]

操作後

direct symbol targets=[m3];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=[m3];previous set=[m3]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s3, m3, 否], [1, s3, d3, 否], [4, f3, e13, 否], [5, e13, e23, 否]];next set=[m3];stable=是

條件：無

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

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





S011 · implies操作前

Subset DFA ORIGINAL prefix step3:EXACT ORIGINAL supplied S=[m3];symbol=b3;ALL matching ORIGINAL edge rows=[[3, m3, f3]]

操作後

direct symbol targets=[f3];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, S010





S012 · implies操作前

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

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s3, m3, 否], [1, s3, d3, 否], [4, f3, e13, 是], [5, e13, e23, 否]];next set=[e13, f3];stable=否

條件：無

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

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





S013 · implies操作前

Subset DFA ORIGINAL prefix step3 post-symbol EPS closure:stage=1;seed set=[f3];previous set=[e13, f3]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s3, m3, 否], [1, s3, d3, 否], [4, f3, e13, 是], [5, e13, e23, 是]];next set=[e13, e23, f3];stable=否

條件：無

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

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





S014 · implies操作前

Subset DFA ORIGINAL prefix step3 post-symbol EPS closure:stage=2;seed set=[f3];previous set=[e13, e23, f3]

操作後

ALL [ORIGINAL edge index,from,to,enabled] EPS rows=[[0, s3, m3, 否], [1, s3, d3, 否], [4, f3, e13, 是], [5, e13, e23, 是]];next set=[e13, e23, f3];stable=是

條件：無

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

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





S015 · implies操作前

ORIGINAL word=[a3, a3, a3, b3];direct NFA configuration stage=0;previous configs=[[s3, 0]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s3, 0], 0, [m3, 0]], [[s3, 0], 1, [d3, 0]]];next configs=[[s3, 0], [m3, 0], [d3, 0]];stable=否

條件：無

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

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





S016 · implies操作前

ORIGINAL word=[a3, a3, a3, b3];direct NFA configuration stage=1;previous configs=[[s3, 0], [m3, 0], [d3, 0]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s3, 0], 0, [m3, 0]], [[s3, 0], 1, [d3, 0]], [[m3, 0], 2, [m3, 1]]];next configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1]];stable=否

條件：無

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

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





S017 · implies操作前

ORIGINAL word=[a3, a3, a3, b3];direct NFA configuration stage=2;previous configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s3, 0], 0, [m3, 0]], [[s3, 0], 1, [d3, 0]], [[m3, 0], 2, [m3, 1]], [[m3, 1], 2, [m3, 2]]];next configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2]];stable=否

條件：無

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

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





S018 · implies操作前

ORIGINAL word=[a3, a3, a3, b3];direct NFA configuration stage=3;previous configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s3, 0], 0, [m3, 0]], [[s3, 0], 1, [d3, 0]], [[m3, 0], 2, [m3, 1]], [[m3, 1], 2, [m3, 2]], [[m3, 2], 2, [m3, 3]]];next configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2], [m3, 3]];stable=否

條件：無

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

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





S019 · implies操作前

ORIGINAL word=[a3, a3, a3, b3];direct NFA configuration stage=4;previous configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2], [m3, 3]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s3, 0], 0, [m3, 0]], [[s3, 0], 1, [d3, 0]], [[m3, 0], 2, [m3, 1]], [[m3, 1], 2, [m3, 2]], [[m3, 2], 2, [m3, 3]], [[m3, 3], 3, [f3, 4]]];next configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2], [m3, 3], [f3, 4]];stable=否

條件：無

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

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





S020 · implies操作前

ORIGINAL word=[a3, a3, a3, b3];direct NFA configuration stage=5;previous configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2], [m3, 3], [f3, 4]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s3, 0], 0, [m3, 0]], [[s3, 0], 1, [d3, 0]], [[m3, 0], 2, [m3, 1]], [[m3, 1], 2, [m3, 2]], [[m3, 2], 2, [m3, 3]], [[m3, 3], 3, [f3, 4]], [[f3, 4], 4, [e13, 4]]];next configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2], [m3, 3], [f3, 4], [e13, 4]];stable=否

條件：無

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

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





S021 · implies操作前

ORIGINAL word=[a3, a3, a3, b3];direct NFA configuration stage=6;previous configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2], [m3, 3], [f3, 4], [e13, 4]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s3, 0], 0, [m3, 0]], [[s3, 0], 1, [d3, 0]], [[m3, 0], 2, [m3, 1]], [[m3, 1], 2, [m3, 2]], [[m3, 2], 2, [m3, 3]], [[m3, 3], 3, [f3, 4]], [[f3, 4], 4, [e13, 4]], [[e13, 4], 5, [e23, 4]]];next configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2], [m3, 3], [f3, 4], [e13, 4], [e23, 4]];stable=否

條件：無

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

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





S022 · implies操作前

ORIGINAL word=[a3, a3, a3, b3];direct NFA configuration stage=7;previous configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2], [m3, 3], [f3, 4], [e13, 4], [e23, 4]]

操作後

ALL enabled [from,ORIGINAL edge index,next] rows=[[[s3, 0], 0, [m3, 0]], [[s3, 0], 1, [d3, 0]], [[m3, 0], 2, [m3, 1]], [[m3, 1], 2, [m3, 2]], [[m3, 2], 2, [m3, 3]], [[m3, 3], 3, [f3, 4]], [[f3, 4], 4, [e13, 4]], [[e13, 4], 5, [e23, 4]]];next configs=[[s3, 0], [m3, 0], [d3, 0], [m3, 1], [m3, 2], [m3, 3], [f3, 4], [e13, 4], [e23, 4]];stable=是

條件：無

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

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





S023 · implies操作前

ORIGINAL word=[a3, a3, a3, b3];ALL DFA prefix subsets=[[d3, m3, s3], [m3], [m3], [m3], [e13, e23, f3]];independent direct NFA prefix subsets=[[d3, m3, s3], [m3], [m3], [m3], [e13, e23, f3]]

操作後

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, S022









## 逐步反向核對


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





## 結論

([a3, a3, a3, b3], [[d3, m3, s3], [m3], [m3], [m3], [e13, e23, f3]], [[d3, m3, s3], [m3], [m3], [m3], [e13, e23, f3]], 是, 是, 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: d98597603d857e395fdaa1c5add214f8f43a68ffbe16518714d65dca917a0905
- candidate record SHA-256: a5e6b010926b9a6c2442a022780e81fb8b1c5349c21fa85c9655c09e1350a8ad
- 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-0079.json)




