逐步主鏈
S01 · definition
操作前
\text{bisection with supplied sign data}操作後
[a_0,b_0]=[1,2],\ m_{n}=\tfrac{a_{n-1}+b_{n-1}}{2}條件:無
規則:mko_bisect · 依賴:G1, G2, G3, mko_bisect
葉節點依據:mko_bisect + def_intro
固定演算法與輸入資料。依 MKO,每步只依明示的端點與中點符號選半區;這只是 bracket 資料更新。本稿把兩件事分開:S02 到 S12 是演算法本身(追蹤、不變量、寬度、終止),S13、S14 才處理根是否存在。
S02 · implies
操作前
[1,2],\ s(1)=-,\ s(2)=+
操作後
\text{valid input: } 1<2,\ \text{opposite endpoint signs}條件:無
規則:and_intro_elim · 依賴:G1, G3
葉節點依據:and_intro_elim + numeric_evaluation
輸入合格需要兩件事:區間有序(1<2)與端點符號相反(− 與 +)。兩者都由 G1 提供。交叉核對:f(1)=1−2=−1<0,f(2)=4−2=2>0(N1、N2),與所提供的符號一致。若兩端同號,輸入不符合本演算法的端點異號契約,不能直接使用這個已證的不變量更新;這不排除取得新中點符號後找到端點異號的子區間。
S03 · implies
操作前
[a_0,b_0]=[1,2]
操作後
m_1=\tfrac{1+2}{2}=\tfrac{3}{2},\ 1<\tfrac{3}{2}<2條件:a_0<b_0
規則:L_mid · 依賴:S02, G3
葉節點依據:L_mid + numeric_evaluation
第一步取中點 m1=(1+2)/2=3/2。依引理 L_mid,中點嚴格落在兩端之間,兩個半區 [1,3/2] 與 [3/2,2] 等寬,各為 1/2。
S04 · implies
操作前
\{s(a),s(b)\}=\{-,+\},\ s(m)\neq 0操作後
\text{exactly one of }[a,m],\ [m,b]\ \text{has opposite endpoint signs}條件:s(m)\neq 0
規則:L_half · 依賴:G3, case_analysis
葉節點依據:case_analysis + and_intro_elim
證明引理 L_half:只要中點符號不是 0,保留哪一半由符號唯一決定。這保證每一步的「保留端點異號的半區」有確定的意義。分三個子步:兩種情況,加上「情況涵蓋全部可能」的核對。
S05 · implies
操作前
[1,2],\ s(\tfrac{3}{2})=+操作後
[a_1,b_1]=[1,\tfrac{3}{2}]條件:s(\tfrac{3}{2})\neq 0
規則:L_half · 依賴:S03, S04, G2
葉節點依據:L_half + numeric_evaluation
所提供 s(3/2)=+=s(2),依 S04.2 保留 [1,3/2],其端點符號為 −、+。交叉核對:f(3/2)=9/4−2=1/4>0(N4)。
S06 · implies
操作前
[1,\tfrac{3}{2}],\ m_2=\tfrac{5}{4},\ s(\tfrac{5}{4})=-操作後
[a_2,b_2]=[\tfrac{5}{4},\tfrac{3}{2}]條件:s(\tfrac{5}{4})\neq 0
規則:L_half · 依賴:S05, S04, G2, L_mid
葉節點依據:L_half + L_mid + numeric_evaluation
m2=(1+3/2)/2=5/4(N5)。所提供 s(5/4)=−=s(1),依 S04.1 保留 [5/4,3/2]。交叉核對:f(5/4)=25/16−2=−7/16<0(N6)。
S07 · implies
操作前
[\tfrac{5}{4},\tfrac{3}{2}],\ m_3=\tfrac{11}{8},\ s(\tfrac{11}{8})=-操作後
[a_3,b_3]=[\tfrac{11}{8},\tfrac{3}{2}]條件:s(\tfrac{11}{8})\neq 0
規則:L_half · 依賴:S06, S04, G2, L_mid
葉節點依據:L_half + L_mid + numeric_evaluation
m3=(5/4+3/2)/2=11/8(N7)。所提供 s(11/8)=−=s(5/4),保留 [11/8,3/2]。交叉核對:f(11/8)=121/64−2=−7/64<0(N8)。
S08 · implies
操作前
[\tfrac{11}{8},\tfrac{3}{2}],\ m_4=\tfrac{23}{16},\ s(\tfrac{23}{16})=+操作後
[a_4,b_4]=[\tfrac{11}{8},\tfrac{23}{16}]條件:s(\tfrac{23}{16})\neq 0
規則:L_half · 依賴:S07, S04, G2, L_mid
葉節點依據:L_half + L_mid + numeric_evaluation
m4=(11/8+3/2)/2=23/16(N9)。所提供 s(23/16)=+=s(3/2),保留 [11/8,23/16]。交叉核對:f(23/16)=529/256−2=17/256>0(N10)。四步都沒有觀察到 f(m)=0,所以沒有提前停止;依 G3 在第四步後結束。
S09 · implies
操作前
a_0<b_0,\ s(a_0)=-,\ s(b_0)=+
操作後
\forall n\le 4:\ a_n<b_n,\ s(a_n)=-,\ s(b_n)=+,\ [a_{n}, b_{n}]\subseteq[a_{n-1},b_{n-1}]\ (n\geq 1)條件:無
規則:nat_induction · 依賴:S02, S03.1, S04, nat_induction
葉節點依據:nat_induction + L_mid + L_half
不變量 I(n):a_n<b_n、s(a_n)=−、s(b_n)=+。基底 I(0) 由 S02 成立。歸納步:若 I(n) 成立且 s(m)≠0,新區間是 [a_n,m] 或 [m,b_n];由 L_mid 得 a_n<m<b_n,所以新區間仍有序且含於舊區間;由 L_half 的兩種情況,保留的半區左端符號為 −、右端為 +(S04.1 時新左端 m 與 a_n 同號 −;S04.2 時新右端 m 與 b_n 同號 +)。所以 I(n+1) 成立。S05 至 S08 的追蹤符合這個不變量。
S10 · implies
操作前
w_0=b_0-a_0=1
操作後
w_n=\tfrac{1}{2^n}條件:\text{no early stop}
規則:L_width · 依賴:S03.1, S09
葉節點依據:nat_induction + L_mid + power_laws
證明引理 L_width:每次有效二分把寬度減半,n 步後寬度為 w0/2^n。這是純幾何的結果,與 f 無關。分兩個子步做歸納。
S11 · implies
操作前
[a_4,b_4]=[\tfrac{11}{8},\tfrac{23}{16}]操作後
w_4=\tfrac{1}{16},\ m_5=\tfrac{45}{32},\ |x-m_5|\le\tfrac{1}{32}\ \ \forall x\in[a_4,b_4]條件:無
規則:L_mid · 依賴:S08, S10
葉節點依據:L_mid + abs_rules + numeric_evaluation
最終 bracket 寬度 1/16。它的中點 m5=(11/8+23/16)/2=45/32(N16);由 L_mid,bracket 中每一點到 m5 的距離至多 (1/16)/2=1/32。這是關於區間幾何的敘述,說的是「若某點在 bracket 中」,並沒有說有這樣的根。
S12 · implies
操作前
\tau>0
操作後
\exists N:\ \tfrac{1}{2^N}<\tau條件:\tau>0
規則:archimedean · 依賴:S10, archimedean, nat_induction
葉節點依據:archimedean + nat_induction + order_basics
寬度指標:若每次所需的中點符號都能取得、更新能有效完成,並在觀察到零時提前停止,則把停止準則改為「寬度 ≤τ 就停」後,對任何 τ>0 都在有限步內停止。這是延伸執行的條件式敘述;題目實際只提供四個中點符號。先對 n 歸納證 2^n≥n+1:n=0 時 1≥1;若 2^n≥n+1,則 2^(n+1)=2·2^n≥2n+2≥n+2。再由阿基米德性質取自然數 N>1/τ,得 2^N≥N+1>1/τ,所以 w_N=1/2^N<τ。N14 是對 n=0 到 20 的有限核對,證明本身是上面的歸納。
S13 · implies
操作前
g(x)=\begin{cases}-1 & x<\tfrac{7}{5}\\ 1 & x\ge\tfrac{7}{5}\end{cases}操作後
g\ \text{gives the same signs and brackets, and}\ g(x)\neq 0\ \forall x條件:無
規則:case_analysis · 依賴:G1, G2, S05, S06, S07, S08
葉節點依據:case_analysis + numeric_evaluation + exists_intro
符號資料本身不證明有根。取階梯函數 g:x<7/5 時 g(x)=−1,x≥7/5 時 g(x)=1。比較 1、2、3/2、5/4、11/8、23/16 與 7/5:1<7/5、5/4<7/5、11/8<7/5,其餘 ≥7/5(N17 至 N20)。所以 g 在這六點的符號與 G1、G2 完全相同,四步產生完全相同的 bracket,但 g 的值只有 −1 與 1,沒有根。演算法只看符號,無法區分 f 與 g;因此 S02 到 S12 的任何結論都不能單獨推出根存在。
S14 · theorem_application
操作前
f\ \text{continuous on}\ [\tfrac{11}{8},\tfrac{23}{16}],\ f(\tfrac{11}{8})=-\tfrac{7}{64}<0<\tfrac{17}{256}=f(\tfrac{23}{16})操作後
\exists c\in[\tfrac{11}{8},\tfrac{23}{16}]:\ f(c)=0,\ |c-\tfrac{45}{32}|\le\tfrac{1}{32}條件:f\ \text{continuous on}\ [a_4,b_4]; f(a_4)<0<f(b_4)
規則:ivt · 依賴:G4, poly_continuous, ivt, S07, S08, S11
葉節點依據:ivt + poly_continuous + numeric_evaluation
這是獨立的根存在責任。f 是多項式,在 [11/8,23/16] 上連續(G4);端點值以精確計算得 f(11/8)=−7/64<0、f(23/16)=17/256>0(N8、N10)。中間值定理(引用,citation_verified)的兩個前提都成立,所以存在 c∈[11/8,23/16] 使 f(c)=0;再由 S11,|c−45/32|≤1/32。這個 c 就是 √2,但本稿不需要這個名稱。
S15 · implies
操作前
\text{trace, invariant, width, termination, root duty}操作後
[a_4,b_4]=[\tfrac{11}{8},\tfrac{23}{16}],\ w_4=\tfrac{1}{16},\ \text{root in}\ [a_4,b_4]\ \text{only via IVT}條件:無
規則:and_intro_elim · 依賴:S08, S09, S10, S12, S13, S14
葉節點依據:and_intro_elim
彙整:四步追蹤得到 [11/8,23/16](S08),不變量保持端點異號(S09),寬度為 1/16(S10),寬度準則必終止(S12);這些都只是 bracket 資料的性質(S13)。區間內有根是另一個結論,來自連續性與中間值定理(S14)。
局部子步與引理
S03.1 · implies
操作前
a<b,\ m=\tfrac{a+b}{2}操作後
m-a=b-m=\tfrac{b-a}{2}>0條件:a<b
規則:order_basics · 依賴:order_basics, frac_rules
葉節點依據:order_basics + frac_rules + distributive
m−a=(a+b)/2−2a/2=(b−a)/2,b−m=2b/2−(a+b)/2=(b−a)/2(N12、N13 為一次多項式恆等式)。由 a<b 得 b−a>0,乘以正數 1/2 仍為正,所以 m−a>0、b−m>0,即 a<m<b。這證得引理 L_mid。
S04.1 · implies
操作前
s(m)=s(a)
操作後
[a,m]\ \text{same signs},\ [m,b]\ \text{opposite signs}條件:s(a)\neq s(b)
規則:def_unfold · 依賴:G3
葉節點依據:def_unfold + eq_refl_symm_trans
若 s(m)=s(a),則 [a,m] 兩端同號,不能保留;[m,b] 兩端是 s(m)=s(a) 與 s(b),而 s(a)≠s(b),所以異號,保留 [m,b]。
S04.2 · implies
操作前
s(m)=s(b)
操作後
[a,m]\ \text{opposite signs},\ [m,b]\ \text{same signs}條件:s(a)\neq s(b)
規則:def_unfold · 依賴:G3
葉節點依據:def_unfold + eq_refl_symm_trans
若 s(m)=s(b),對稱地 [m,b] 兩端同號,[a,m] 兩端是 s(a) 與 s(m)=s(b),異號,保留 [a,m]。
S04.3 · case_split
操作前
s(m)\in\{-,+\},\ \{s(a),s(b)\}=\{-,+\}操作後
s(m)=s(a)\ \veebar\ s(m)=s(b)
條件:s(m)\neq 0
規則:case_analysis · 依賴:S04.1, S04.2, case_analysis
葉節點依據:case_analysis + and_intro_elim
s(m)≠0 時只能是 − 或 +;s(a)、s(b) 恰好一個是 −、一個是 +,所以 s(m) 恰好等於其中一個。兩種情況互斥且涵蓋全部可能,配合 S04.1、S04.2,恰有一個半區被保留。S04.1 至 S04.3 證得引理 L_half。若 s(m)=0,演算法依 G3 停在 m,不進入這個引理。
S10.1 · induction_base
操作前
n=0
操作後
w_0=\tfrac{w_0}{2^0}條件:無
規則:nat_induction · 依賴:G1
葉節點依據:nat_induction + power_laws
基底:2^0=1,所以 w0/2^0=w0。
S10.2 · induction_step
操作前
w_n=\tfrac{w_0}{2^n}操作後
w_{n+1}=\tfrac{w_n}{2}=\tfrac{w_0}{2^{n+1}}條件:\text{no early stop}
規則:nat_induction · 依賴:S10.1, S03.1, S04
葉節點依據:nat_induction + frac_rules + power_laws
新區間是 [a_n,m] 或 [m,b_n],由 S03.1,兩者寬度都是 (b_n−a_n)/2=w_n/2。代入歸納假設:w_(n+1)=w0/(2^n·2)=w0/2^(n+1)。依歸納原理證得引理 L_width。代入 w0=1、n=4:w4=1/16,與 23/16−11/8=1/16 一致(N11)。