目標與範圍
有限無向無 loop 簡單圖 G:V={0,1,2,3,4},E={{0,1},{1,2},{2,3},{0,3},{1,3},{3,4}}。對頂點序列 W₁=(0,1,2,3,4)、W₂=(0,1,3,1,2)、W₃=(0,2,3)、W₄=(2,3,0,1,3,4)、W₅=(4)、W₆=(1,1) 逐一判定是否為 walk、長度為何、是否為 simple path;並證明 simple path 不重複邊,以及本圖中 simple path 的長度至多為 4。
在 MKO 的範圍內工作:頂點標為 0 到 n−1,完整的無向簡單邊集合與有序頂點序列都明示(假設 a1);空序列不算 walk,單一頂點是長度 0 的 simple path(假設 a2)。trail 只用來對照 simple path;不處理 cycle、連通分量或有向圖,不改動 canonical MKO 或英文 edition。
逐步主鏈
S01 · definition
操作前
V=\{0,1,2,3,4\},\ E=\{\{0,1\},\{1,2\},\{2,3\},\{0,3\},\{1,3\},\{3,4\}\}操作後
G\ \text{simple, loop-free};\ \sum_{v}\deg v=2+3+2+4+1=12=2|E|條件:無
規則:graph_basics · 依賴:G1, graph_basics
葉節點依據:graph_basics + numeric_evaluation
先確認給定資料是 MKO 所要求的有限無向無 loop 簡單圖:每條邊是兩個相異頂點的無序對,清單中沒有重複的邊。度數為 deg0=2、deg1=3、deg2=2、deg3=4、deg4=1,和為 12=2·6,與握手引理一致,作為邊清單抄寫無誤的核對。
S02 · definition
操作前
W=(v_i)_{i=0}^{k}操作後
W\ \text{walk}\iff\forall i\ (0\le i\le k-1):\ \{v_i,v_{i+1}\}\in E;\ \ \text{length}=k;\ \ \text{simple path}\iff\text{walk}\land(i\neq j\Rightarrow v_i\neq v_j)條件:k\ge 0
規則:mko_walk_def · 依賴:mko_walk_def
葉節點依據:mko_walk_def + def_unfold
展開 MKO 的三個定義。walk 要求每一個連續無序對都是邊;長度 k 是連續對的個數,也就是項數減一;simple path 另外要求所有項彼此相異。序列至少有一項(k≥0),空序列被協定排除。
S03 · implies
操作前
W_1=(0,1,2,3,4)
操作後
\{0,1\},\{1,2\},\{2,3\},\{3,4\}\in E\ \Rightarrow\ W_1\ \text{walk}條件:無
規則:and_intro_elim · 依賴:S02, G1, G2
葉節點依據:and_intro_elim + mko_walk_def
W₁ 有四個連續對:{0,1}、{1,2}、{2,3}、{3,4}。逐一在 E 中查到。四個條件都成立,依合取引入,W₁ 是 walk。
S04 · equivalent
操作前
W_1\ \text{has}\ 5\ \text{entries}操作後
\operatorname{len}(W_1)=5-1=4條件:無
規則:mko_walk_def · 依賴:S02, S03
葉節點依據:mko_walk_def + numeric_evaluation
長度是邊數(連續對的個數),不是頂點數:5 項序列有 4 個連續對,所以長度為 4。
S05 · implies
操作前
W_1\ \text{walk},\ 0,1,2,3,4\ \text{pairwise distinct}操作後
W_1\ \text{simple path}條件:無
規則:mko_walk_def · 依賴:S03, S02, G2
葉節點依據:mko_walk_def + and_intro_elim
W₁ 的五項 0、1、2、3、4 兩兩相異,加上 S03 的 walk 資格,依定義 W₁ 是長度 4 的 simple path。
S06 · implies
操作前
W_2=(0,1,3,1,2)
操作後
\{0,1\},\{1,3\},\{3,1\},\{1,2\}\in E\ \Rightarrow\ W_2\ \text{walk},\ \operatorname{len}(W_2)=4條件:無
規則:and_intro_elim · 依賴:S02, G1, G2
葉節點依據:and_intro_elim + unordered_pair_eq + mko_walk_def
W₂ 的四個連續對是 {0,1}、{1,3}、{3,1}、{1,2}。無序對 {3,1} 與 {1,3} 是同一條邊,在 E 中。四對都是邊,所以 W₂ 是 walk;5 項,長度 4。
S07 · implies
操作前
v_1=1=v_3\ \text{in}\ W_2操作後
W_2\ \text{walk but not a simple path}條件:無
規則:quantifier_negation · 依賴:S06, S02
葉節點依據:quantifier_negation + mko_walk_def
W₂ 的索引 1 與索引 3 的項都是 1(i=1≠3=j),所以「項兩兩相異」不成立,W₂ 不是 simple path。它仍是 walk:MKO 明說 walk 可以重複頂點與邊(這裡邊 {1,3} 走了兩次)。
S08 · implies
操作前
W_3=(0,2,3)
操作後
\{0,2\}\notin E\ \Rightarrow\ W_3\ \text{not a walk}條件:無
規則:quantifier_negation · 依賴:S02, G1, G2
葉節點依據:quantifier_negation + mko_walk_def
第一個連續對 {0,2} 不在 E 中(E 中含 0 的邊只有 {0,1} 與 {0,3})。walk 要求每一對都是邊,一對失敗就足以否定。雖然 0、2、3 都是頂點、彼此相異,W₃ 仍不是 walk,因此也不是 simple path。
S09 · implies
操作前
W_4=(2,3,0,1,3,4)
操作後
\{2,3\},\{3,0\},\{0,1\},\{1,3\},\{3,4\}\in E,\ \text{pairwise distinct}\ \Rightarrow\ W_4\ \text{trail},\ \operatorname{len}(W_4)=5條件:無
規則:trail_def · 依賴:S02, G1, G2, trail_def
葉節點依據:trail_def + and_intro_elim + unordered_pair_eq
W₄ 的五個連續對 {2,3}、{3,0}、{0,1}、{1,3}、{3,4} 都在 E 中,所以是 walk;6 項,長度 5。這五條邊兩兩不同(逐一比對無序對),所以 W₄ 不重複邊,是 trail。
S10 · implies
操作前
v_1=3=v_4\ \text{in}\ W_4操作後
W_4\ \text{trail but not a simple path}條件:無
規則:quantifier_negation · 依賴:S09, S02
葉節點依據:quantifier_negation + mko_walk_def
W₄ 的索引 1 與索引 4 的項都是頂點 3,所以 W₄ 不是 simple path,雖然它沒有重複的邊。這正是 MKO 提醒的:不重複邊的 trail 不能與 simple path 混同。
S11 · implies
操作前
W=(v_i)_{i=0}^{k}\ \text{simple path}操作後
\{v_i,v_{i+1}\}\neq\{v_j,v_{j+1}\}\ \ (0\le i<j\le k-1),\ \text{so}\ W\ \text{is a trail}條件:無
規則:L_path_trail · 依賴:S02, trail_def
葉節點依據:contradiction + unordered_pair_eq + trail_def
反方向的關係:每個 simple path 都是 trail(引理 L_path_trail)。證明在子步 S11.1、S11.2:假設兩條邊相同,會推出兩個不同位置的頂點相同,與 simple path 矛盾。所以 simple path 比 trail 更嚴格,S10 說明反向不成立。
S12 · implies
操作前
W=(v_i)_{i=0}^{k}\ \text{simple path in}\ G,\ |V|=5操作後
k+1\le 5,\ \text{so}\ \operatorname{len}(W)=k\le 4條件:無
規則:inj_size_le · 依賴:S02, G1, inj_size_le
葉節點依據:inj_size_le + finite_counting_basics
simple path 的 k+1 項兩兩相異,所以 i↦v_i 是由 {i∈ℤ:0≤i≤k}(k+1 個元素)到 V(5 個元素)的單射;依鴿籠原理 k+1≤5,即長度至多 4。W₁ 的長度恰為 4,達到上界。W₄ 的長度 5>4,所以由這個上界也可看出它不可能是 simple path,與 S10 一致。
S13 · implies
操作前
W_5=(4),\ k=0
操作後
W_5\ \text{simple path of length}\ 0;\ \ ()\ \text{not a walk}條件:無
規則:mko_walk_def · 依賴:S02, G2
葉節點依據:mko_walk_def + forall_intro
W₅ 只有一項,沒有連續對,「每個連續對都是邊」空真成立,所以是 walk,長度 1−1=0;唯一的一項當然不重複,所以是 simple path。依 MKO 協定(假設 a2),空序列 () 不算 walk,也沒有長度。
S14 · implies
操作前
W_6=(1,1)
操作後
\{1,1\}\notin E\ \Rightarrow\ W_6\ \text{not a walk}條件:無
規則:graph_basics · 依賴:S01, S02, G2
葉節點依據:graph_basics + quantifier_negation
唯一的連續對是 {1,1},它只含一個頂點,不是兩個相異頂點的無序對;本圖無 loop(S01),所以它不是邊。W₆ 不是 walk,不能把「停在原地」當成長度 1 的 walk。
S15 · implies
操作前
\text{S05},\ \text{S07},\ \text{S08},\ \text{S10},\ \text{S13},\ \text{S14}操作後
W_1,W_5\ \text{simple paths};\ W_2\ \text{walk only};\ W_4\ \text{trail, not simple path};\ W_3,W_6,()\ \text{not walks}條件:無
規則:and_intro_elim · 依賴:S05, S07, S08, S10, S11, S12, S13, S14
葉節點依據:and_intro_elim
彙整:W₁ 是長度 4 的 simple path;W₂ 是長度 4 的 walk,重複頂點與邊;W₃ 不是 walk;W₄ 是長度 5 的 trail,但不是 simple path;W₅ 是長度 0 的 simple path;W₆ 與空序列不是 walk。另證得 simple path 必為 trail,且本圖 simple path 長度至多 4。