# 診斷性數學評量記錄：一道分數加法題的合成記錄與判定

[← 導讀目錄](https://ocme.evemisslab.com/zh-Hant/derivations/) · [原始 MKO](https://ocme.evemisslab.com/zh-Hant/mko/mko-diagnostic-mathematical-assessment/)

這是使用者已採用的自然語言教學導讀。有限／算術檢查不等於普遍證明；本輪未跑 Lean，各稿審查範圍見其修訂記錄。來源原有的狀態標籤保留為歷史資料。公式保留精確 TeX，不另造語意 AST。

derivation-mko-diagnostic-mathematical-assessment-01 · production-20261019-adopted-96



## 目標與範圍

對題目 Q-FRAC-01「計算 3/4+1/6，答案寫成分數 a/b（a、b 為整數，b≠0）」，先精確算出期望結果 e，再寫出判定規則 R_val（作答的值等於 e 即符合）與較嚴格的 R_low（值相等且為最簡分數）。據此判定三份合成記錄：D1 作答 4/10、D2 作答 22/24、D3 作答 22/24 但規則欄空白；並證明 D1 的「不符合」不能推出任何關於真實學生能力或錯誤原因的結論。

只處理 MKO 定義的單題記錄 D(q,r)：題目身分、期望數學結果、觀察到的合成作答與判定規則四個欄位，以及明示規則由它們算出的判定碼。所有作答都是為本練習生成的合成資料（MKO 假設 a1），判定碼只描述與明示規則是否相符（假設 a2）。不建立多題量尺、效度、信度或任何教育推論；不改動 canonical MKO 或英文 edition。





## 已知條件與符號


- frac_rules
- eq_congruence
- zero_product
- mul_inverse_nonzero
- function_def
- contrapositive
- numeric_evaluation


- G1 — 記錄定義（MKO）：診斷記錄 D=(q,e,r,R) 由題目身分 q、期望數學結果 e、觀察到的合成作答 r 與判定規則 R 組成。判定碼 Λ(D) 取「符合」「不符合」「紀錄不完整」之一；任何欄位缺少時，唯一允許的判定碼是「紀錄不完整」（MKO 第一段）。
- G2 — 題目 Q-FRAC-01：計算 3/4+1/6，答案寫成分數 a/b，其中 a、b 為整數且 b≠0。
- G3 — 合成記錄：D1 的作答為 r1=4/10，規則為 R_val；D2 的作答為 r2=22/24，規則為 R_val（另以 R_low 對照）；D3 的作答為 22/24，規則欄空白。所有作答都是為本練習生成的合成資料，不涉及任何真實學習者（MKO 假設 a1）。
- G4 — 規則 R_val：作答 a/b 符合 ⇔ a/b 與 e 作為有理數相等。規則 R_low：作答 a/b 符合 ⇔ a/b=e、b>0 且 gcd(|a|,b)=1（最簡分數）。
- G5 — MKO 假設 a2：判定碼只描述作答是否符合明示數學規則，不把不符合的結果心理化或因果化。
- G6 — 兩個假設的合成生成器（程序，不是人）：Gen_A 對題目 p/q+s/t 輸出 (p+s)/(q+t)；Gen_B 依序輸出預設清單 [4/10, 7/12, 11/12] 的項目，第一次呼叫輸出 4/10。


- D=(q,e,r,R) — 診斷記錄：題目身分、期望結果、作答、判定規則
- e — 期望數學結果，本題為 11/12
- r_1,\ r_2 — 合成作答 4/10 與 22/24
- R_{\mathrm{val}},\ R_{\mathrm{low}} — 兩條明示判定規則
- \Lambda(D) — 記錄 D 的判定碼
- \mathrm{Gen}_A,\ \mathrm{Gen}_B — 兩個假設的合成作答生成器





## 規則與來源


- frac_rules · prerequisite — 分數運算（分母皆非零）：a/c+b/c=(a+b)/c；(a/b)(c/d)=(ac)/(bd)；(a/b)/(c/d)=(ad)/(bc)（另需 c≠0）；a/b=(ak)/(bk)（k≠0）。
- eq_congruence · prerequisite — 等式同用：若 u=v，對兩邊做同一個有定義的運算 f，得 f(u)=f(v)。只對一邊做運算不屬於此規則。
- zero_product · prerequisite — 零乘積性質：在 ℤ、ℚ、ℝ、ℂ（或任何整域）中，uv=0 ⇔ u=0 或 v=0。
- mul_inverse_nonzero · prerequisite — 非零數的倒數：在 ℚ、ℝ、ℂ 中，若 u≠0，存在 1/u 使 u·(1/u)=1；對 u≠0 定義 v/u 為 v·(1/u)。u=0 時沒有倒數，v/0 不定義。
- function_def · prerequisite — 函數：f:A→B 對每個 a∈A 指定恰好一個 f(a)∈B。兩函數相等 ⇔ 定義域、對應域相同且對每個 a 都有相同值。
- contrapositive · prerequisite — 逆否命題：P⇒Q 與 ¬Q⇒¬P 等價。逆命題 Q⇒P 一般不與 P⇒Q 等價。
- numeric_evaluation · prerequisite — 明確整數或有理數算式的精確求值；可以獨立重算。
- def_intro · prerequisite — 引入定義：可為一個命題、式子或物件取名；之後名稱與被定義者可互相替換。
- mul_assoc · prerequisite — 乘法結合律：(uv)w=u(vw)。
- mul_comm · prerequisite — 乘法交換律：uv=vu（在交換的數系中，例如 ℤ、ℚ、ℝ、ℂ）。
- mul_one · prerequisite — 乘法單位元：1·u=u。
- def_unfold · prerequisite — 展開定義：把一個已定義的詞換成它的定義內容（或反向收回），命題的真假不變。
- and_intro_elim · prerequisite — 合取：由 P 與 Q 得 P∧Q；由 P∧Q 可分別得 P 與 Q。
- case_analysis · prerequisite — 分情況論證：若 P∨Q 成立，且 P⇒R、Q⇒R 都已證，則 R 成立。所有情況必須涵蓋全部可能。
- mko_diag_record · cited — 本條目把診斷記錄定義為題目身分、期望數學結果、觀察到的合成作答與判定規則。規則可標記作答是否符合期望，但單一反應不能推論真實學生的能力、原因、人格或學習成效。 · mko-diagnostic-mathematical-assessment
- gcd_lowest · prerequisite — 最簡分數：分母 b>0 的分數 a/b 為最簡分數 ⇔ gcd(|a|,b)=1。若 d=gcd(|a|,b)>1，則 a/b=(a/d)/(b/d) 是同值但分母更小的寫法。
- L_cross · lemma — 對整數 a、c 與非零整數 b、d：a/b=c/d ⇔ ad=bc。





## 逐步主鏈

S01 · definition操作前

\text{diagnostic record}

操作後

D=(q,\,e,\,r,\,R),\ \Lambda(D)\in\{\text{match},\ \text{no match},\ \text{incomplete}\}

條件：無

規則：mko_diag_record · 依賴：G1

葉節點依據：mko_diag_record + def_intro

依 MKO，一份診斷記錄由四個欄位組成：題目身分 q、期望數學結果 e、觀察到的合成作答 r、判定規則 R。判定碼 Λ(D) 只能取三個值：「符合」「不符合」由規則 R 比較 r 與 e 得到，「紀錄不完整」用於缺欄（G1）。之後每一個判定都只用這四個欄位，判定碼的值域裡沒有任何描述人的類別。



S02 · equivalent操作前

\tfrac{3}{4}+\tfrac{1}{6}

操作後

\tfrac{9}{12}+\tfrac{2}{12}

條件：3\neq 0; 2\neq 0

規則：frac_rules · 依賴：G2, frac_rules

葉節點依據：frac_rules + numeric_evaluation

期望結果必須精確算出，記錄才可重播。用 a/b=(ak)/(bk)（k≠0）把兩個分數擴分到公分母 12：3/4=(3·3)/(4·3)=9/12，1/6=(1·2)/(6·2)=2/12。12 是 4 與 6 的最小公倍數，但任何非零公倍數都可以作公分母（若約定分母為正，就取正公倍數）；擴分不改變分數的值。



S03 · equivalent操作前

\tfrac{9}{12}+\tfrac{2}{12}

操作後

e=\tfrac{11}{12},\ \gcd(11,12)=1

條件：12\neq 0

規則：frac_rules · 依賴：S02, frac_rules

葉節點依據：frac_rules + numeric_evaluation

同分母相加 a/c+b/c=(a+b)/c：9/12+2/12=11/12。11 是質數且不整除 12，所以 gcd(11,12)=1，11/12 已是最簡分數。記錄中的期望結果 e=11/12 由此確定，任何人都可以重算（N3、N4、N12）。



S04 · equivalent操作前

\tfrac{a}{b}=\tfrac{11}{12}

操作後

12a=11b

條件：b\neq 0; 12\neq 0

規則：L_cross · 依賴：G4, S03

葉節點依據：L_cross + frac_rules

R_val 要比較兩個有理數是否相等。依引理 L_cross（c=11、d=12）：a/b=11/12 ⇔ a·12=b·11。這把「值相等」換成只用整數乘法的條件，可以精確重算，不必化成小數，也不受作答是否約分影響。



S05 · implies操作前

D_1=(\text{Q-FRAC-01},\ \tfrac{11}{12},\ \tfrac{4}{10},\ R_{\mathrm{val}})

操作後

D_1\ \text{complete}

條件：無

規則：def_unfold · 依賴：G1, G2, G3, S03

葉節點依據：def_unfold + and_intro_elim

逐欄核對 D1：題目身分 Q-FRAC-01、期望結果 11/12（S03）、作答 4/10、規則 R_val，四欄都有內容；作答符合題目格式 a/b，且 b=10≠0。所以 D1 不屬於「紀錄不完整」，可以套用規則。



S06 · implies操作前

r_1=\tfrac{4}{10}:\ 12\cdot 4\ \text{vs}\ 11\cdot 10

操作後

48\neq 110\ \Rightarrow\ \Lambda(D_1)=\text{no match}

條件：10\neq 0

規則：L_cross · 依賴：S04, S05

葉節點依據：L_cross + contrapositive + numeric_evaluation

代入 a=4、b=10：12·4=48，11·10=110，而 48≠110。依 S04 的等價，4/10≠11/12，所以 R_val 判 D1 為「不符合」。這個判定碼的全部內容就是「作答 4/10 的值不等於期望結果 11/12」，沒有更多（G5）。



S07 · implies操作前

\tfrac{4}{10}

操作後

\tfrac{4}{10}=\tfrac{3+1}{4+6}

條件：無

規則：numeric_evaluation · 依賴：S06, G2, G5

葉節點依據：numeric_evaluation + frac_rules

記錄可以附上的只是一個數學觀察：4/10 恰好等於把題目的兩個分子相加、兩個分母相加得到的 (3+1)/(4+6)。這是關於數字的等式，可以精確重算（N11）；它描述作答與題目數字之間的關係，不描述產生作答的過程或原因（G5）。S12 會證明這個觀察也不能唯一決定產生方式。



S08 · implies操作前

D_2:\ r_2=\tfrac{22}{24},\ R_{\mathrm{val}}

操作後

12\cdot 22=264=11\cdot 24\ \Rightarrow\ \Lambda_{\mathrm{val}}(D_2)=\text{match}

條件：24\neq 0

規則：L_cross · 依賴：S04, G3, G1

葉節點依據：L_cross + numeric_evaluation

D2 四欄齊全（Q-FRAC-01、11/12、22/24、R_val），作答的分母 24≠0。代入 a=22、b=24：12·22=264，11·24=264，兩者相等。依 S04，22/24=11/12，所以 R_val 判 D2 為「符合」。作答不是最簡分數並不影響 R_val，因為 R_val 只比較值。



S09 · implies操作前

r_2=\tfrac{22}{24}\ \text{under}\ R_{\mathrm{low}}

操作後

\gcd(22,24)=2\neq 1\ \Rightarrow\ \Lambda_{\mathrm{low}}(D_2)=\text{no match}

條件：無

規則：gcd_lowest · 依賴：S08, G4, gcd_lowest

葉節點依據：gcd_lowest + and_intro_elim + numeric_evaluation

R_low 除了值相等，還要求最簡分數。22=2·11、24=2³·3，所以 gcd(22,24)=2≠1，22/24 不是最簡分數，R_low 判「不符合」。同一組 (q,e,r) 在 R_val 下符合、在 R_low 下不符合：判定碼是規則的函數，所以規則欄必須寫進記錄。



S10 · implies操作前

D_3=(\text{Q-FRAC-01},\ \tfrac{11}{12},\ \tfrac{22}{24},\ \varnothing)

操作後

\Lambda(D_3)=\text{incomplete}

條件：無

規則：def_unfold · 依賴：G1, G3, S08, S09

葉節點依據：def_unfold + case_analysis

D3 的規則欄空白。依 G1，缺欄時唯一允許的判定碼是「紀錄不完整」。這不是形式上的拘泥：S08 與 S09 已顯示同一個作答 22/24 在 R_val 下符合、在 R_low 下不符合，所以缺了規則就沒有確定的「符合」或「不符合」，也不能替記錄補猜一條規則。



S11 · implies操作前

\Lambda

操作後

\Lambda:(q,e,r,R)\mapsto\Lambda(q,e,r,R)

條件：無

規則：function_def · 依賴：S01, G1, function_def

葉節點依據：function_def + def_unfold

由 S01 與 G1，判定碼由四個欄位經明示規則算出，所以 Λ 是以記錄為輸入的函數：兩份四欄完全相同的記錄必定得到相同的判定碼。換句話說，判定碼帶有的資訊不會超過這四個欄位。



S12 · implies操作前

\mathrm{Gen}_A(\text{Q-FRAC-01})=\tfrac{4}{10}=\mathrm{Gen}_B(\text{Q-FRAC-01})

操作後

\text{the record does not determine the generating procedure}

條件：無

規則：contrapositive · 依賴：G6, S07, S11

葉節點依據：contrapositive + function_def + numeric_evaluation

G6 給出兩個合成生成器：Gen_A 對本題輸出 (3+1)/(4+6)=4/10；Gen_B 輸出預設清單的第一項，也是 4/10。兩者產生的記錄四欄完全相同，都是 D1。若「產生程序」可由記錄決定，它就是記錄的函數，相同的記錄必有相同的程序；但 Gen_A 與 Gen_B 是不同的程序。依逆否論證，產生程序不是記錄的函數。對真實學生的「錯誤原因」也一樣：記錄裡沒有任何欄位能區分不同的可能原因。



S13 · implies操作前

\Lambda(D_1)=\text{no match}

操作後

\text{no claim about a real student's ability or error cause}

條件：無

規則：mko_diag_record · 依賴：G3, G5, S06, S12, mko_diag_record

葉節點依據：mko_diag_record + contrapositive

三個理由疊在一起：(1) 依 MKO 假設 a1，所有作答都是合成資料，根本沒有一位真實學生可以被描述；(2) 依 a2（G5），判定碼只說 4/10≠11/12；(3) 依 S12，即使有人產生了這筆作答，記錄也不能決定產生原因。所以「學生不會通分」「有學習障礙」「教學無效」都不能由 D1 推出。MKO 指出，更廣的推論需要多題證據、教學歷程與有效的測量模型，本稿不建立這些。



S14 · implies操作前

D_1,\ D_2,\ D_3

操作後

\Lambda(D_1)=\text{no match},\ \Lambda_{\mathrm{val}}(D_2)=\text{match},\ \Lambda_{\mathrm{low}}(D_2)=\text{no match},\ \Lambda(D_3)=\text{incomplete}

條件：無

規則：and_intro_elim · 依賴：S06, S08, S09, S10, S13

葉節點依據：and_intro_elim

彙整：D1 在 R_val 下不符合；D2 在 R_val 下符合、在 R_low 下不符合；D3 缺規則，紀錄不完整。每個判定碼都只陳述作答值與期望值（以及格式條件）在明示規則下是否相符。







## 局部子步與引理

S04.1 · equivalent操作前

\tfrac{a}{b}=\tfrac{c}{d}

操作後

\tfrac{a}{b}\cdot bd=\tfrac{c}{d}\cdot bd

條件：b\neq 0; d\neq 0

規則：eq_congruence · 依賴：eq_congruence, zero_product

葉節點依據：eq_congruence + zero_product + mul_inverse_nonzero

兩邊同乘 bd。因 b≠0 且 d≠0，由零乘積性質 bd≠0，所以 1/(bd) 存在；兩邊再同乘 1/(bd) 就回到原式。這是可逆的等價變形。



S04.2 · equivalent操作前

\tfrac{a}{b}\cdot bd=\tfrac{c}{d}\cdot bd

操作後

ad=bc

條件：b\neq 0; d\neq 0

規則：frac_rules · 依賴：S04.1, frac_rules

葉節點依據：frac_rules + mul_assoc + mul_comm + mul_inverse_nonzero + mul_one

化簡左邊：(a/b)·bd=a·(b/b)·d=ad；右邊：(c/d)·bd=c·b·(d/d)=cb=bc（乘法結合律與交換律）。換掉相等的式子不改變等式真假。S04.1 與 S04.2 合起來證得引理 L_cross。







## 逐步反向審查


- S14 · sufficient_goal_reduction · S06, S08, S09, S10, S13 — 目標 G：四個判定碼及其推論範圍。足夠條件 H：S06、S08、S09、S10 的各別判定與 S13 的範圍限制；H⇒G 由合取。H 都由明示欄位與規則正向得出，沒有把 G 當作前提。
- S13 · premise_audit · G3, G5, S12, mko_diag_record — 此步界定結論範圍：不推出新的正面主張，只排除超出記錄的推論。不宣稱多題記錄就足以支持推論；那需要另建有效測量模型。
- S12 · premise_audit · G6, S11, contrapositive, numeric_evaluation — 論證只需要一對「記錄相同、程序不同」的情形；這一對由 G6 明示給出，兩個輸出都已精確算出（N11）。不宣稱 Gen_A 或 Gen_B 哪一個「才是真的」。
- S11 · premise_audit · S01, G1, function_def — 這是函數定義（每個輸入恰有一個輸出）的直接結果；不宣稱不同記錄必有不同判定碼。
- S10 · premise_audit · G1, S08, S09 — 判定 D3 只需要 G1 的缺欄條款；S08、S09 只用來說明補猜規則會改變結論，不是判定的前提。
- S09 · premise_audit · S08, gcd_lowest, numeric_evaluation — R_low 是幾個條件的合取，最簡條件失敗就足以判不符合。不宣稱 R_low 比 R_val 更正確；兩者只是不同的明示規則。
- S08 · premise_audit · S04, numeric_evaluation — 用的是 S04 等價的「⇐」方向：12a=11b 推出 a/b=11/12。完整性核對與 S05 相同。
- S07 · premise_audit · numeric_evaluation, G5 — 只需算術；不宣稱反向，即不由這個等式推回任何產生程序。
- S06 · premise_audit · S04, S05, contrapositive, numeric_evaluation — 需要 D1 完整（S05），以及 S04 的逆否：12a≠11b 推出 a/b≠11/12。判定碼不宣稱作答由誰產生、為什麼這樣答。
- S05 · premise_audit · G1, G2, G3, S03 — 完整性只檢查欄位存在與格式；這一步不判斷作答對錯。
- S04.2 · inverse_equivalence · frac_rules, mul_assoc, mul_comm — 所用的是在 b≠0、d≠0 時對所有整數成立的恆等式，雙向成立。
- S04.1 · inverse_equivalence · eq_congruence, zero_product, mul_inverse_nonzero — 乘 bd 與乘 1/(bd) 互為反運算，前提 bd≠0，正是由引理條件 b≠0、d≠0 經零乘積性質得到。若 b=0，a/b 根本沒有定義。
- S04 · inverse_equivalence · L_cross, G2 — 引理的兩個方向都在 S04.1、S04.2 證明；條件 b≠0 由題目格式 G2 保證，d=12≠0。
- S03 · inverse_equivalence · frac_rules, numeric_evaluation — 反向把 11/12 拆回 9/12+2/12（因 11=9+2）；同分母加法是等值改寫，雙向成立。gcd 的計算是一次精確核對。
- S02 · inverse_equivalence · frac_rules — 反向是約分：9/12=(3·3)/(4·3)=3/4，2/12=(1·2)/(6·2)=1/6；擴分與約分用的是同一條 a/b=(ak)/(bk)，兩式同值。
- S01 · premise_audit · G1, mko_diag_record — 此步只寫出定義，不推出新事實；判定碼的取值範圍由定義給定。





## 錯誤控制與反例

單題不符合不能判定學習障礙MKO 指出的常見誤解是看到單題錯誤就宣稱學習障礙、概念缺失或教學無效。本稿的 D1 是合成資料，判定碼只說 4/10≠11/12（S06）；S12 更顯示，兩個不同的生成程序產生完全相同的記錄，所以記錄不能決定原因。由一筆記錄推出關於人的結論，既沒有對象，也沒有根據。

判定碼依規則而定同一個作答 22/24 在 R_val 下符合、在 R_low 下不符合（S08、S09）。若記錄沒有寫下規則，讀者無法重播判定，也無法知道「不符合」指的是值不對還是格式不對。這也是 D3 只能標記紀錄不完整的原因。

用交叉相乘而不是小數比較11/12 的小數展開以 0.91666 開頭，此後數字 6 無窮重複，截斷後比較可能出錯；S04 把值相等換成整數等式 12a=11b，可精確判定。L_cross 需要 b≠0、d≠0，題目格式 G2 已保證分母非零。


- D1 判為不符合，所以作答的學生不懂通分 → reject — 作答是合成資料，沒有真實學生（a1）；且 Gen_A、Gen_B 產生同一筆記錄，記錄不能決定原因（S12）。
- 22/24 和 11/12 寫法不同，所以 D2 在任何規則下都不符合 → reject — 12·22=264=11·24，兩者值相等，R_val 判為符合（S08）。
- D3 缺規則欄，可以預設 R_val 而判為符合 → reject — 缺欄只能標記紀錄不完整（G1）；改用 R_low 會得到相反的判定（S09）。
- 4/10=(3+1)/(4+6)，所以可以確定作答是把分子與分母分別相加產生的 → reject — Gen_B 由預設清單輸出同一個 4/10，記錄完全相同（S12）；等式只是數字關係。





## 結論與限制

題目 Q-FRAC-01 的期望結果是 e=11/12。在 R_val 下，D1（作答 4/10）不符合，因為 12·4=48≠110=11·10；D2（作答 22/24）符合，因為 12·22=264=11·24；在 R_low 下 D2 不符合，因為 gcd(22,24)=2；D3 缺規則欄，只能標記紀錄不完整。這些判定碼只描述與明示規則是否相符，不能推出任何真實學生的能力、錯誤原因或學習成效。


- 多題量尺、效度、信度、人工覆核與隱私治理屬於 MKO 的 formal next，本稿沒有建立，也不宣稱任何記錄組合足以支持教育推論。
- R_val 與 R_low 是本稿為示範而寫的兩條規則；實際題庫採用哪條規則需由題目設計者明示。





## 驗證及來源綁定

12 個本稿宣告算術檢查；只支持所列算式。


- source commit: b28a5edbd46279b1db2a3f3f48bb3f447e18899f
- adopted source SHA-256: 68c57629a9fbd59bc53c99b3d573ddd78386c61f4559822c6aa9a0484a453820
- original source SHA-256: c887249d698314e2f1a1000c157d36ba15ec9b3910807e5b370612fbfe6b57ee
- Lean: NOT_RUN · independent AI: NOT_MEASURED

[同源完整 JSON（含公式、AST、反控制與修訂記錄）](https://ocme.evemisslab.com/data/derivations/production-20261019/guides/derivation-mko-diagnostic-mathematical-assessment-01.json)




