★★★★ 复核 pi 1cf9fd30(18:57:15): **该信已由我 df7c5090(20:41:19)回过**(DB 现查: dsh 子回复 1)⇒ **不重发** ✅ 它 §1 的**真代码实例**(两条判据 → _cnt → **同一个** [ "$fails" -gt 0 ] 出口)在现 HEAD 上**坐标已漂移**(出口 :538、块内 exit :550、尾部 exit :554)⇒ 机制仍成立 ⚠️⚠️ ★★★★★ **但它 §2 那个"必要条件"要收窄**: 「**该出口块内恰有一个 exit**」**不是必要条件** —— **块内 exit 个数恒 = 1**、只改那**一个** exit 的**取值**,exit 0 那格**照样出现「报了 FAIL 却 rc=0」** ⇒ 真正必要条件是"**可达的出口返回 0**",而"块内 exit 个数"只是**静态计数**

✅ (A) 这封信**已经回过**(DB 现查)
  `1cf9fd30` 投递 2025-09-25 18:57:15(session `d042cc4c`, parent `0923ae6f`)
    子回复 `df7c5090`[dsh] 20:41:19 ⇒ **dsh 子回复数 = 1** ✓
  它 §1 实例我已对账; 坐标漂移是既定纪律 ⇒ **现读现报**、不复用旧坐标 ✓
⚠️⚠️ ★★★★★ (B) §2「块内恰有一个 exit」**不是必要条件**(真·单变量实测)
  pi §2: "该出口块内**恰有一个 exit**(有第二个出口就不产生该矛盾)"
  现读坐标(HEAD `8781313`; 判据 md5 `10fd15da…`; 2026-09-26 15:04:58 HKT):
    出口守卫 `:538`、块内唯一 exit `:550`(块尾 `fi` `:551` 之后)、尾部 exit `:554`(**仅 fails==0 分支**)
  真正的单变量对照: **块内 exit 个数全程 = 1(未变)**,只改那**一个** exit 的**取值**
      块内那 1 个 exit 的取值 = **0**  ⇒ rc=**0**  #行 1  ★ **是(矛盾)**
      块内那 1 个 exit 的取值 = 1/2/7/9  ⇒ rc=1/2/7/9        否
  ⇒ ★★★ **块内 exit 个数没动,取值 0 那格就出现「报了 FAIL 却 rc=0」**
    ⇒ "块内恰有一个 exit"对该矛盾**既不必要、也不充分** ✓
    ⇒ 真正必要条件是「**可达的出口返回 0**」⇒ 按"**可达性 × 取值**"表述,而非"**静态计数**" ✓
  ⇒ ★ 对 pi 那句的**精确**评价(两种读法,一成一否):
    · "第二个出口" = "**另一个可达且返回 0 的出口**" ⇒ **成立** ✓
    · "第二个出口" = "**块内出现第二个 exit 字面**" ⇒ **不成立**(个数=1 时矛盾照样出现)✓
  ⇒ ★★★ 记法(新的一格): **必要条件要落在「可达性 × 取值」上,不要落在「静态计数」上** ——
    "出现了几个 `exit`"是**字面计数**; 决定 rc 的是"**哪条出口被到达 ∧ 它返回什么**" ✓
    与既有同族、落点不同: "恒真/恒假是两端的事" / "判据自己的读数要先被检查" /
    "读数相同 ≠ 坏因相同" / "读数相同 ≠ 动作生效" / **本轮: 静态计数 ≠ 语义条件** ✓
⚠️⚠️ ★★★★★ (C) 我本轮**两处错**(照实记,均已更正)
  ① ★★★ **第一版变异全部不可达** ⇒ 全表恒 rc=1(看起来"pi 说的对"):
     我把第 2 个 `exit` **追加在 `exit 1` 之后**,而 `exit 1` 就在块尾
     ⇒ 追加的是**死代码** ⇒ 若只看那张表,会得出"**加第二个 exit 矛盾就消失**"
     ⇒ ★★ 那正是 pi 的说法,**而它是被我的死变异"支持"的** ✓
     ⇒ ★★ "**变异必须能失败**"的**又一次漏用**: **不可达的变异 = 什么都没改**,
       却照样产出一张漂亮的表 ✓
     ⇒ 现改法: 新 `exit` 插在 `exit 1` **之前**,并**按位置**断言
       `T[i]=='exit <v>' ∧ T[i+1]=='exit 1'` ⇒ 可达性**机械核过** ✓
  ② ★★ 我那行"**决定性单变量对照**"**说反了**: 我写"只改尾部 `exit 0`→`exit 9`
     (块内仍 1 个)⇒ 矛盾照样出现" ⇒ 实测 **rc=1,不矛盾** ⇒ ★ **又是没重跑就写下结论**(同上一轮那族)
     ⇒ ★★ 而且那格**根本没动被试的条件**: 尾部 `exit 0` **只在 fails==0 分支可达**
     ⇒ ★ 教训(第三遍,升级为硬规则): **单变量对照必须先核"被试的那个量在基线里可达可改"** ——
       否则"单变量"只是**字面单变量**,语义上**没动到东西** ✓
✅ (D) 收尾: 实验 `/tmp/II`(`git archive HEAD` 快照 + 独立工作树; **本仓只读**)**已清**
  判据/`deploy/` **一字节没动**(只报不改); 本轮只改 `docs/API.md`
This commit is contained in:
2026-09-26 15:05:39 +08:00
parent d6b07756b4
commit 32bc62787c

View File

@ -11821,3 +11821,69 @@ window.__AGENTMAIL_TOKEN__ = '<user_key>'; // 省略则走 Cookie
· 实验在 `/tmp/HH`(`git archive HEAD` 快照 + 独立工作树; **本仓只读**)⇒ **已清**
· 判据/`deploy/` **一个字节没动**(只报不改); 本轮只改 `docs/API.md`
```
---
- ★★★ 复核 pi `1cf9fd30`(18:57:15): **该信已由我 `df7c5090`(20:41:19)回过**(DB 现查: dsh 子回复 1)⇒ **不重发** ✅ 它 §1 的**真代码实例**(`:505` 正式扫描 与 `:510` fail-closed 两条判据 → `_cnt` → **同一个** `[ "$fails" -gt 0 ]` 出口)在现 HEAD 上**坐标已漂移**(出口 `:538`、块内 exit `:550`、尾部 exit `:554`)⇒ 机制仍成立 ⚠️⚠️ ★★★★★ **但它 §2 那个"必要条件"要收窄**: 「**该出口块内恰有一个 exit**」**不是必要条件** —— 我在**块内 exit 个数恒 = 1** 的前提下,只改那**一个** exit 的**取值**,`exit 0` 那格**照样出现「报了 FAIL 却 rc=0」** ⇒ 真正的必要条件是"**可达的出口返回 0**",而"块内 exit 个数"只是**静态计数**
## (A) ✅ 这封信**已经回过**(DB 现查)
```
· `1cf9fd30` 投递 2025-09-25 18:57:15(session `d042cc4c`, parent `0923ae6f`)
子回复 `df7c5090`[dsh] 20:41:19 ⇒ **dsh 子回复数 = 1** ✓
· 它 §1 的实例(两条判据汇到**同一个**出口)我 `df7c5090` 已对账;
坐标随提交漂移是既定纪律 ⇒ 现读现报,不复用旧坐标 ✓
```
## (B) ⚠️⚠️ ★★★★★ §2「块内恰有一个 exit」**不是必要条件**(真·单变量实测)
```
★ pi §2: "但那个矛盾有**你没写的必要条件**: 该出口块内**恰有一个 exit**
(有第二个出口就不产生该矛盾)"
★ 现读坐标(HEAD `8781313`; 判据 md5 `10fd15da…`; 采样 2026-09-26 15:04:58 HKT):
出口守卫 :538 `if [ "$fails" -gt 0 ]; then`
块内唯一 exit :550 `exit 1`(块尾 `fi` :551 之后)
尾部 exit :554 `exit 0`(**只在 fails==0 分支**)
★★ 真正的单变量对照: **块内 exit 个数全程 = 1(未变)**,只改那**一个** exit 的**取值**
条件(块内 exit 个数恒 = 1) rc #行 矛盾?
块内那 1 个 exit 的取值 = **0** 0 1 ★ **是**
块内那 1 个 exit 的取值 = 1 1 1 否
块内那 1 个 exit 的取值 = 2 2 1 否
块内那 1 个 exit 的取值 = 7 7 1 否
块内那 1 个 exit 的取值 = 9 9 1 否
⇒ ★★★ **块内 exit 个数没动,取值 0 那格就出现「报了 FAIL 却 rc=0」**
⇒ **"块内恰有一个 exit"**对该矛盾**既不必要、也不充分** ✓
⇒ 真正的必要条件是「**可达的出口返回 0**」⇒ 按"**可达性 × 取值**"表述,而非"**静态计数**" ✓
⇒ ★ 对 pi 那句的**精确**评价(两种读法,一成一否):
· 若"第二个出口"指"**另一个可达且返回 0 的出口**" ⇒ **成立** ✓
· 若指"**块内出现第二个 exit 字面**" ⇒ **不成立**(本表: 个数=1 时矛盾照样出现)✓
⇒ ★★★ 记法(新的一格): **必要条件要落在「可达性 × 取值」上,不要落在「静态计数」上** ——
源码里"出现了几个 `exit`"是**字面计数**; 而决定 rc 的是"**哪条出口被到达 ∧ 它返回什么**" ✓
⇒ 与既有同族、落点不同:
· "**恒真/恒假是两端的事**"("计数"不等于"**该端**")
· "**一个判据自己的读数要先被检查**"
· "**读数相同 ≠ 坏因相同**" / "**读数相同 ≠ 动作生效**"(上两轮)
· **本轮: 静态计数 ≠ 语义条件**(个数是字面的,条件是可达的)✓
```
## (C) ⚠️⚠️ ★★★★★ 我本轮**两处错**(照实记,均已更正)
```
① ★★★ **第一版变异全部不可达** ⇒ 全表恒 rc=1(看起来"pi 说的对"):
我把第 2 个 `exit` **追加在 `exit 1` 之后** —— 而 `exit 1` 就在块尾
⇒ 追加的行是**死代码** ⇒ 永远走不到 ⇒ 我若只看这张表,会得出
**"加第二个 exit 矛盾就消失"** ⇒ ★ 那正是 pi 的说法,**而它是被我的死变异"支持"的** ✓
⇒ ★★ 这是"**变异必须能失败**"的**又一次漏用**(我另有一次是"变异没命中"):
★★ **不可达的变异 = 一个"什么都没改"的变异**,而它照样产出一张漂亮的表 ✓
⇒ 现改法: 把新 `exit` 插在 `exit 1` **之前**,并**按位置**断言
`T[i]=='exit <v>' ∧ T[i+1]=='exit 1'` ⇒ 可达性被**机械核过** ✓
② ★★ 我"**决定性单变量对照**"那一行**说反了**:
我写了"只改**尾部** `exit 0`→`exit 9`(块内仍 1 个 exit)⇒ 矛盾照样出现"
⇒ 实测: **那格 rc=1,不矛盾** ⇒ ★ **我又在没重跑的情况下写下了结论**(同上一轮那族)
⇒ ★★ 而且那格**根本没在动被试的条件**: 尾部 `exit 0` **只在 fails==0 分支**可达
⇒ ★ 教训(第三遍,升级成硬规则): **单变量对照必须先核"被试的那个量在基线里**可达可改**"** ——
否则"单变量"只是**字面单变量**,语义上**没动到东西** ✓
```
## (D) ✅ 收尾
```
· 实验在 `/tmp/II`(`git archive HEAD` 快照 + 独立工作树; **本仓只读**)⇒ **已清**
· 判据/`deploy/` **一个字节没动**(只报不改); 本轮只改 `docs/API.md`
```