逐步主鏈
S01 · definition
操作前
G\ \text{is a tree}操作後
V\neq\varnothing\ \land\ \forall u,v\in V\ \exists\ \text{path}\ u\to v\ \land\ \neg\exists\ \text{simple cycle}條件:無
規則:mko_tree_def · 依賴:G1, G2, mko_tree_def
葉節點依據:mko_tree_def + def_unfold
依 MKO 的定義,要證 G 是樹必須證三件事:V 非空、任兩頂點有道路相連、沒有簡單環。只看邊數不在定義之內。
S02 · implies
操作前
E=\{\{1,2\},\{2,3\},\{2,4\},\{4,5\},\{4,6\}\}操作後
G\ \text{finite simple},\ |V|=6,\ |E|=5,\ V\neq\varnothing條件:無
規則:graph_basics · 依賴:G1, graph_basics
葉節點依據:graph_basics + numeric_evaluation
逐條檢查:每條邊的兩端都在 V 中且相異,沒有自環;五條邊作為二元素集合兩兩不同,沒有重邊;無向邊不分方向,各列一次(MKO 假設 a1 的正規化)。所以 G 是有限簡單無向圖,|V|=6>0。
S03 · implies
操作前
N(v)\ \text{for}\ v\in V操作後
\deg(1),\deg(2),\deg(3),\deg(4),\deg(5),\deg(6)=1,3,1,3,1,1
條件:無
規則:graph_basics · 依賴:S02, graph_basics
葉節點依據:graph_basics + numeric_evaluation
逐點列鄰居:N(1)={2}、N(2)={1,3,4}、N(3)={2}、N(4)={2,5,6}、N(5)={4}、N(6)={4}。度數是鄰居個數。握手核對:1+3+1+3+1+1=10=2·5=2|E|(N1)。
S04 · equivalent
操作前
\{v\in V:\ \deg(v)=1\}操作後
\{1,3,5,6\}條件:無
規則:def_unfold · 依賴:S03, mko_tree_def
葉節點依據:def_unfold + set_builder
依葉的定義(度數恰為 1),對 6 個頂點逐一判斷:1、3、5、6 的度數為 1,2 與 4 的度數為 3。葉集合按遞增列為 {1,3,5,6}。
S05 · implies
操作前
\text{vertex}\ 1操作後
(1),\ (1,2),\ (1,2,3),\ (1,2,4),\ (1,2,4,5),\ (1,2,4,6)
條件:無
規則:exists_intro · 依賴:S03, G2, walk_path_cycle
葉節點依據:exists_intro + walk_path_cycle
從頂點 1 到每個頂點各寫出一條道路。每個序列的相鄰兩點都是 E 中的邊({1,2}、{2,3}、{2,4}、{4,5}、{4,6}),且沒有重複頂點;(1) 是到自身的零邊道路。
S06 · implies
操作前
\forall u,v\in V:\ \text{walk}\ u\to 1\to v操作後
\forall u,v\in V\ \exists\ \text{path}\ u\to v條件:無
規則:L_walk_path · 依賴:S05, L_walk_path
葉節點依據:walk_path_cycle + well_ordering + contradiction
對任意 u、v:把 S05 中從 1 到 u 的道路反向(邊無向,反向仍是走道),再接上從 1 到 v 的道路,得到從 u 到 v 的走道。依引理 L_walk_path(S06.1、S06.2 證明),有從 u 到 v 的道路。例如 u=3、v=6:走道 (3,2,1,2,4,6) 重複了 2,引理的刪減給出道路 (3,2,4,6)。所以 G 連通。
S07 · equivalent
操作前
G\ \text{has a simple cycle}操作後
G_1=(\{2,4\},\{\{2,4\}\})\ \text{has a simple cycle}條件:\deg(v)\le 1\ \text{at each removal}
規則:L_leaf_cycle · 依賴:S03, L_leaf_cycle, delete_vertex
葉節點依據:logic_chain + delete_vertex + graph_basics
逐一刪葉,每次都用引理 L_leaf_cycle(S07.1、S07.2 證明)。在 G 中 deg(1)=1,所以 G 有簡單環 ⇔ G−1 有。在 G−1 中,3 的鄰居仍只有 2,度數 1,刪去;接著 5(鄰居只有 4)、6(鄰居只有 4)。每次刪去一條邊,四次之後剩下頂點 {2,4} 與一條邊 {2,4}。等價串接得結論。
S08 · equivalent
操作前
G_1=(\{2,4\},\{\{2,4\}\})\ \text{has a simple cycle}操作後
(\{4\},\varnothing)\ \text{has a simple cycle}條件:\deg_{G_1}(2)=1
規則:L_leaf_cycle · 依賴:S07, L_leaf_cycle
葉節點依據:delete_vertex + graph_basics
在 G_1 中 2 只有鄰居 4,度數 1;再用一次引理,刪去 2 得到單點無邊圖 ({4},∅)。
S09 · implies
操作前
G\ \text{has a simple cycle}\iff(\{4\},\varnothing)\ \text{has one}操作後
G\ \text{has no simple cycle}條件:無
規則:logic_chain · 依賴:S07, S08, walk_path_cycle
葉節點依據:logic_chain + walk_path_cycle
簡單環至少要 3 個相異頂點,({4},∅) 只有一個頂點、沒有邊,所以沒有簡單環。串接 S07、S08 的等價,G 也沒有簡單環。
S10 · implies
操作前
V\neq\varnothing,\ \text{connected},\ \text{no simple cycle}操作後
G\ \text{is a tree}條件:無
規則:mko_tree_def · 依賴:S02, S06, S09, mko_tree_def
葉節點依據:mko_tree_def + and_intro_elim
S02 給 V 非空,S06 給連通,S09 給無簡單環;三者合起來正是 MKO 的樹定義。
S11 · implies
操作前
3,\ 6\in V
操作後
(3,2,4,6)\ \text{is a path from 3 to 6}條件:無
規則:exists_intro · 依賴:S03, walk_path_cycle
葉節點依據:exists_intro + walk_path_cycle
{3,2}、{2,4}、{4,6} 都在 E 中,四個頂點 3、2、4、6 兩兩相異,所以 (3,2,4,6) 是從 3 到 6 的道路。依 MKO 段落 1,以實際頂點順序輸出,而不是排序後的集合 {2,3,4,6}。
S12 · implies
操作前
P\ \text{any path from 3 to 6}操作後
P=(3,2,4,6)
條件:無
規則:case_analysis · 依賴:S03, S11, walk_path_cycle
葉節點依據:case_analysis + walk_path_cycle + graph_basics
設 P 是任一條從 3 到 6 的道路,頂點依序為 p_0=3 到 p_m=6。S12.1 到 S12.3 逐點窮舉每一步所有可能的下一個頂點,證明 P 只能是 (3,2,4,6)。
S13 · implies
操作前
e=\{3,6\}操作後
3,6\in V,\ 3\neq 6,\ e\notin E;\ G+e=(V,\,E\cup\{e\})條件:無
規則:graph_basics · 依賴:G1, S10, graph_basics
葉節點依據:graph_basics
核對 MKO 假設 a3 的加邊前提:原圖是樹(S10);3、6 都在 V 且相異;{3,6} 不在 E 的五條邊中。所以 G+e 仍是簡單圖,有 6 條邊。
S14 · implies
操作前
(3,2,4,6)\ \text{in}\ G,\ e=\{6,3\}操作後
C=(3,2,4,6,3)\ \text{is a simple cycle in}\ G+e條件:k=4\ge 3
規則:walk_path_cycle · 依賴:S11, S13, walk_path_cycle
葉節點依據:walk_path_cycle + exists_intro
從兩端較小的標籤 3 出發,沿原道路走到 6,再由新邊回到 3:長度 k=4≥3,前四個頂點 3、2、4、6 兩兩相異,{3,2}、{2,4}、{4,6} 在 E 中,{6,3}=e。所以 C 是 G+e 的簡單環,且符合 MKO 段落 1 的輸出約定。
S15 · implies
操作前
D\ \text{any simple cycle in}\ G+e操作後
D=C\ \text{up to starting point and direction}條件:無
規則:case_analysis · 依賴:S09, S12, S14
葉節點依據:case_analysis + contradiction + walk_path_cycle
若 D 不用 e,它的邊都在 E 中,就是 G 的簡單環,與 S09 矛盾;所以 D 用到 e。因 D 的頂點(除首尾)兩兩相異,3 與 6 各出現一次,e 在 D 中恰用一次。把 D 旋轉、必要時反向,使它從 3 出發、最後一條邊是由 6 回到 3 的 e;去掉這條邊,剩下一條只用 E 中邊、從 3 到 6 的道路。依 S12 它是 (3,2,4,6),所以 D 就是 C。
S16 · implies
操作前
H=(\{1,2,3,4\},\{\{1,2\},\{2,3\},\{1,3\}\})操作後
|E_H|=|V_H|-1,\ \text{no path}\ 1\to 4;\ H\ \text{is not a tree}條件:無
規則:mko_tree_def · 依賴:G3, walk_path_cycle, mko_tree_def
葉節點依據:mko_tree_def + contradiction + graph_basics
|V_H|=4、|E_H|=3=4−1,邊數與主例同型,但 deg(4)=0。從 1 到 4 的道路至少一條邊(1≠4),最後一條邊含 4,不可能;所以 H 不連通。此外 (1,2,3,1) 是簡單環。H 不是樹。
S17 · implies
操作前
K=(\{7\},\varnothing)操作後
K\ \text{is a tree},\ \text{leaves}(K)=\varnothing條件:無
規則:mko_tree_def · 依賴:G2, G3, mko_tree_def
葉節點依據:mko_tree_def + walk_path_cycle
V={7} 非空;唯一的頂點對 (7,7) 由零邊道路 (7) 連接(G2);簡單環需要至少 3 個相異頂點,所以沒有。K 是樹。但 deg(7)=0≠1,依葉的定義,K 沒有葉(MKO 假設 a2)。
局部子步與引理
S06.1 · implies
操作前
\text{the set of lengths of walks}\ u\to v\ \text{is nonempty}操作後
\exists\ \text{a walk}\ W\ \text{from}\ u\ \text{to}\ v\ \text{of least length}\ k條件:無
規則:well_ordering · 依賴:walk_path_cycle, well_ordering
葉節點依據:well_ordering
假設有從 u 到 v 的走道。所有這種走道的長度構成 ℕ 的非空子集,依良序原理有最小元素 k;取一條長度為 k 的走道 W,其頂點依序為 w_0=u 到 w_k=v。
S06.2 · implies
操作前
w_i=w_j\ (i<j)\ \text{in the least walk}\ W操作後
\text{a walk of length}\ k-(j-i)<k,\ \text{contradiction; so}\ W\ \text{is a path}條件:i<j
規則:contradiction · 依賴:S06.1, contradiction
葉節點依據:contradiction + walk_path_cycle + order_basics
假設 W 重複了頂點,w_i=w_j 且 i<j。刪去 w_{i+1} 到 w_j,剩下 w_0 到 w_i、再接 w_{j+1} 到 w_k;因 w_i=w_j 與 w_{j+1} 相鄰(若 j=k 則走道就停在 w_i=v),這仍是從 u 到 v 的走道,長度 k−(j−i)<k,與 k 最小矛盾。所以 W 不重複頂點,是道路。S06.1 與 S06.2 合起來證得引理 L_walk_path。
S07.1 · implies
操作前
C\ \text{simple cycle in}\ G-v操作後
C\ \text{simple cycle in}\ G條件:無
規則:subset_def · 依賴:delete_vertex, walk_path_cycle
葉節點依據:subset_def + delete_vertex
(⇐ 方向)G−v 的頂點與邊都屬於 G,所以同一個頂點序列在 G 中仍滿足簡單環的所有條件。
S07.2 · implies
操作前
C\ \text{simple cycle in}\ G,\ \deg_G(v)\le 1操作後
v\notin C,\ C\ \text{simple cycle in}\ G-v條件:k\ge 3
規則:contrapositive · 依賴:walk_path_cycle, graph_basics
葉節點依據:contrapositive + graph_basics + walk_path_cycle
(⇒ 方向)在長度 k≥3 的簡單環中,每個 w_j(0≤j<k)都有兩個環上鄰居 w_{j−1} 與 w_{j+1}(下標以 k 為模),兩者相異,因為 w_0 到 w_{k−1} 兩兩相異且 k≥3;所以 C 上每點在 G 中度數至少 2。逆否:deg_G(v)≤1 的 v 不在 C 上,C 的每條邊都不含 v,所以 C 是 G−v 的簡單環。S07.1 與 S07.2 合起來證得引理 L_leaf_cycle。
S12.1 · implies
操作前
p_0=3\neq 6
操作後
p_1=2
條件:無
規則:graph_basics · 依賴:S03, walk_path_cycle
葉節點依據:graph_basics
3≠6,所以 P 至少有一條邊;p_1 必須是 3 的鄰居,而 N(3)={2},故 p_1=2。
S12.2 · case_split
操作前
p_1=2\neq 6
操作後
p_2=4
條件:無
規則:case_analysis · 依賴:S12.1, S03
葉節點依據:case_analysis + contradiction + graph_basics
2≠6,P 繼續;p_2∈N(2)∖{3}={1,4}(道路不重複頂點)。情況 p_2=1:1≠6 須再走,但 N(1)∖{3,2}=∅,無路可走,矛盾。所以 p_2=4。
S12.3 · case_split
操作前
p_2=4\neq 6
操作後
p_3=6,\ m=3,\ P=(3,2,4,6)
條件:無
規則:case_analysis · 依賴:S12.2, S03
葉節點依據:case_analysis + contradiction + graph_basics
4≠6,P 繼續;p_3∈N(4)∖{3,2}={5,6}。情況 p_3=5:5≠6 須再走,但 N(5)∖{3,2,4}=∅,矛盾。所以 p_3=6;6 在道路中只出現一次且是終點,故 m=3,P=(3,2,4,6)。