逐步主鏈
S01 · definition
操作前
\text{a candidate sentence}操作後
\text{proposition}\iff\text{well-formed declarative sentence with no unassigned free variable}條件:無
規則:mko_prop · 依賴:G1
葉節點依據:mko_prop + prop_test
依 MKO,本稿採入門古典語境:命題是可以被斷言或否定的陳述,在此語境中為真或為假;但「是命題」不表示「已被證明為真」。判定某個候選是不是命題,看的是它的形式(是否為封閉的直述句,prop_test),而不是它的真假。之後每個候選都先判定「是不是命題」,再另外判定真假。
S02 · implies
操作前
s_1:\ 7\ \text{is prime}操作後
s_1\ \text{is a proposition}條件:無
規則:prop_test · 依賴:S01, G2
葉節點依據:prop_test
s1 是直述句,斷言確定整數 7 的一個性質,其中沒有未指定的變數,依 prop_test 它是命題。此時還沒有判定它的真假,更沒有證明它;「是命題」在這一步就已確定。
S03 · equivalent
操作前
7\ \text{is prime}操作後
7\ge 2\ \land\ \neg\exists d\in\mathbb{Z}\,(2\le d\le 6\ \land\ d\mid 7)條件:無
規則:prime_def · 依賴:S02, G3
葉節點依據:prime_def + def_unfold
依 G3 的質數定義(p=7,p−1=6)展開 s1。第一個合取項 7≥2 成立;剩下要證的是:沒有整數 d 滿足 2≤d≤6 且 d∣7。
S04 · implies
操作前
d\in\{2,3,4,5,6\}操作後
d\nmid 7\ \text{for each such}\ d條件:無
規則:L_rem · 依賴:S03, int_no_gap, division_algorithm
葉節點依據:division_algorithm + divides_def + int_no_gap + numeric_evaluation
滿足 2≤d≤6 的整數恰是 2、3、4、5、6(相鄰整數之間沒有整數,int_no_gap),這是一個有限且完整列出的範圍。對每個 d 寫出帶餘除法:7=2·3+1、7=3·2+1、7=4·1+3、7=5·1+2、7=6·1+1,餘數依序為 1、1、3、2、1,都滿足 0<r<d。依引理 L_rem,這五個 d 都不整除 7。
S05 · implies
操作前
7\ge 2,\ \text{and no}\ d\ \text{with}\ 2\le d\le 6\ \text{divides}\ 7操作後
s_1\ \text{is true, and now proved}條件:無
規則:and_intro_elim · 依賴:S03, S04
葉節點依據:and_intro_elim + quantifier_negation
兩個合取項都已成立:7≥2,且 S04 對範圍內每個 d 都證明 d∤7,所以不存在這樣的 d。依 S03 的等價,s1 為真,而且現在有了證明。
S06 · implies
操作前
s_2:\ 4\ \text{is prime}操作後
s_2\ \text{is a proposition, and}\ \neg s_2\ \text{holds}條件:無
規則:prime_def · 依賴:G2, G3, prop_test
葉節點依據:prime_def + divides_def + exists_intro + numeric_evaluation
s2 也是封閉的直述句,依 prop_test 是命題。依質數定義,4 是質數需要沒有整數 d 滿足 2≤d≤3 且 d∣4;但 d=2 滿足 2≤2≤3,且 4=2·2,所以 2∣4。因此 s2 為假,被證明的是它的否定 ¬s2。s2 是一個假的命題:「是命題」與「為真」是兩回事。
S07 · implies
操作前
s_3:\ \text{Is 7 prime?}操作後
s_3\ \text{is not a proposition}條件:無
規則:prop_test · 依賴:G2, prop_test
葉節點依據:prop_test
s3 是疑問句,不斷言任何事情,本身無所謂真假,依 prop_test 不是命題。它詢問的內容對應到命題 s1;回答「是」所依據的是 S05 對 s1 的證明,而不是疑問句本身為真。
S08 · implies
操作前
s_4:\ \text{Compute}\ 3+4.操作後
s_4\ \text{is not a proposition}條件:無
規則:prop_test · 依賴:G2, prop_test
葉節點依據:prop_test + numeric_evaluation
s4 是命令句,要求做一個計算,不斷言任何事情,依 prop_test 不是命題。相對地,直述句「3+4=7」是一個為真的命題(N14)。
S09 · implies
操作前
s_5:\ x>0
操作後
s_5\ \text{is an open sentence, not a proposition}條件:無
規則:prop_test · 依賴:G2, S01, prop_test
葉節點依據:prop_test
s5 是直述句,但 x 是未指定的自由變數,依 prop_test 它是開放句:它的真假要看 x 取什麼值(S10 會看到 x=2 時為真、x=−1 時為假),所以在封閉語境中它本身不是命題。要得到命題,必須代入或量化(MKO 第三段)。
S10 · implies
操作前
x>0\ \text{with}\ x:=2\ \text{or}\ x:=-1操作後
2>0\ (\mathrm{true}),\quad -1>0\ (\mathrm{false})條件:無
規則:order_basics · 依賴:S09
葉節點依據:order_basics + two_nonzero
代入是一種封閉方式。x:=2 得命題「2>0」,為真(0<1<2);x:=−1 得命題「−1>0」,為假:因 0<1,兩邊加 −1 得 −1<0,依三一律排除 −1>0。同一個開放句經不同代入得到兩個不同的命題,真假也不同。
S11 · implies
操作前
\forall x\in\mathbb{Z},\ x>0操作後
\text{false: counterexample}\ x=0條件:無
規則:quantifier_negation · 依賴:S09
葉節點依據:quantifier_negation + exists_intro + order_basics
全稱量化是另一種封閉方式:「∀x∈ℤ, x>0」沒有自由變數,是命題。取 x=0:0=0,依三一律 0>0 不成立,所以 ∃x∈ℤ, ¬(x>0),依量詞否定得 ¬∀x∈ℤ, x>0,因此原先的全稱命題為假。1>0、2>0、3>0 等正例再多也不能證明這個全稱命題,而一個反例就足以否定它。
S12 · implies
操作前
\exists x\in\mathbb{Z},\ x>0操作後
\text{true: witness}\ x=1條件:無
規則:exists_intro · 依賴:S09
葉節點依據:exists_intro + two_nonzero
存在量化:「∃x∈ℤ, x>0」是命題。取 x=1,1>0 成立(0<1),依 ∃引入,這個命題為真。
S13 · implies
操作前
\text{verdicts of S02 to S12}操作後
\text{propositions: }s_1,s_2,\text{closures of }s_5;\ \text{not propositions: }s_3,s_4,s_5條件:無
規則:and_intro_elim · 依賴:S02, S05, S06, S07, S08, S09, S10, S11, S12
葉節點依據:and_intro_elim
命題:s1(真,S05 已證)、s2(假,S06 已證其否定)、s5 的四個封閉版本(2>0 真、−1>0 假、∀ 版本假、∃ 版本真)。不是命題:s3(疑問句)、s4(命令句)、s5 本身(開放句)。每個候選的命題身分都在判定真假之前確定。