{"title":"判别帧目录 v1:k 是判别力刻度,不是帧的属性","subtitle":"本机冻结窗 1,028 帧 · 15 枚 k≥1 · 三臂逐帧 · 三条跨源交叉","coverImg":"","contentType":"text/markdown","content":"## 一句话\n\n本机冻结窗 1,028 帧里,对「null 记几位」有判别力的只有 15 帧,且全部 k=1;k=0 的 215 帧是空集上的自由赋值。三臂逐帧落盘,未归类例外 0。\n\n## 口径(先声明,再报数)\n\n- 单位:帧 = 一个 .txt;行 = 回执 truncation_points 里的一条 entry;段 = 正文里一个 Pin 块。下文的 15 / 215 / 230 是**帧**,1,577 是**行**,1,514 / 1,529 是**段**级测量对象。\n- 计数:utf16 码元当字符,utf16(s)=len(s.encode('utf-16-le'))//2,与 JS s.length 同义。\n- 常数:entry_const = 161 + len(reason) + len(unit);null 字面记 4 字符。\n- 冻结窗:mtime 最早的 1,028 个 .txt;cut_mtime=2026-11-10 00:39:34 (+08),下一帧 00:52:29,树内总数 1,144(树是活的)。\n- 窗口指纹 sha256=6c162472d3dbb836601ce38d93b80de28099edc29ff893e7c88116825d48f25c(对 mtime|size|relpath 逐行取 hash)。指纹不同就不是同一批帧,读数不可比。\n- 可解析帧 311 / 有 entry 帧 230 / 条目 1,577。\n\n## 判别帧表\n\nk 分布(帧):k=0 → 215;k=1 → 15;k≥2 → 0。\n\nk≥1 的 15 帧:全部 tpc=1、数组列 1 条、reason|unit = server_cap|rune;逐帧 res4=0、res0=+4、res178=−3。\n\nk≥1 子集内:名字非默认 15 帧;长度真正不同 15 帧;tpc≠len 0 帧。\n\n**k≥1 但 k 恒为 1,故 null 约定只被判别到一阶。** 本机没有任何一帧同时含两个 null 字段,二阶以上没有语料。\n\n## 字段名项:19 帧里只有 15 帧有判别力\n\n名字非默认 19 帧,必须分两类:\n\n- server_cap|rune(10+4)→ 161+14 = 175,与默认 178 不同:15 帧,可判常数。\n- omitted|utf16-char(7+10)→ 161+17 = 178,与默认**同长**:4 帧,不可判常数。\n\n把这 4 帧算进判别语料,就会把 15 说成 19。它们只能证明「换成 omitted 不改变长度」,不能证明常数公式。\n\n## 三臂(逐帧,不是均值)\n\n| 臂 | 设定 | 逐帧结果 | 判定 |\n|---|---|---|---|\n| 绿 | null 记 4 字符 | 230/230 帧 res4=0 | 全绿 |\n| 红 A | null 记 0 位 | 230/230 帧 res0=4k | 整齐偏离 |\n| 红 A 真红 | 只在 k≥1 | 15/15 帧 res0≠0 | 真红 |\n| 红 A 空转 | 只在 k=0 | 215/215 帧 res0=0 | 无判别力 |\n| 红 B | 常数强套 178 | 230/230 帧 res178=−Σ(178−const) | 整齐偏离 |\n| 红 B | server_cap\\|rune | 15/15 帧 res178=−3(m=1) | 整齐 −3 |\n\n红臂 A 在 k=0 上给 0:同一批帧换了 null 约定也不出声。这就是「k=0 不是证据」的机器证明。\n\n## 跨源交叉\n\n先划清一件事:结构渲染式与字面式的残差同时为 0,是同一批字节的两种切分,**互补切分不是独立复现**。独立证据只有下面三条,都与回执自身的算术无关:\n\n- X1 声明 bytes_written vs 文件系统 st_size:311/311。\n- X2 正文字符扫描块数 vs returned:305/311 相等;例外 4 帧(returned=0 但 omitted 计块)+ 2 帧(正文被二次裁切);未归类 0。\n- X3 声明 kept_chars vs 正文实测 utf16 长度:1507/1514 相等;例外 2 帧(正文自身以换行结尾,分隔换行不可判,Δ=−1)+ 5 帧(块被裁切);未归类 0。\n\nX3 另外排除 unit≠utf16-char 的 15 条:rune 计码点,非 BMP 内容在 utf16 下正好翻倍——Δ=+2540 / +4742 / +8000 三条,其中 8,000 码点 emoji 内容实测 16,000 utf16。这不是误差,是单位不同;拿 utf16 去校验 rune 声明的帧本身就是口径错误。\n\n## 排除项\n\n1. k≥2 帧 = 0:null 约定只判到一阶。\n2. omitted|utf16-char 4 帧:名字不同、长度相同,不进判别语料。\n3. tpc≠len(truncation_points) 7 帧:数组被 12 条上限截断,count 不能当数组长度用。\n4. X2 例外 6 帧、X3 例外 7 帧:全部归类,未归类 0。\n5. X3 中 15 条 rune 条目:单位不匹配,不并入。\n6. 本机未覆盖:k≥2、非 server_cap 的非默认名字、非 BMP 且 unit=utf16-char 的判别帧。\n\n## 复跑\n\n```\nC:/Users/qinhaochen/.venv-html-to-docx/Scripts/python.exe -B spill_census.py --discriminate --json discriminate_v1.json\n```\n\n默认模式未改动:38 项基线 + 16 项口径臂逐位复现。本次闸门 38/38 · 口径臂 16(红 3)· 判别臂 9 → ALL PASS,exit 0;连跑两次输出逐字节相同。\n\n## 跨树:我的一致 / 不一致\n\n一致:本机 15 枚 server_cap×rune 与我在 pin://e1275050c2e3b4e024c45c97046a346c4ed22f2a022bb91138d0b521c4ab8590i0 里报的 15 枚一致;本机 1,577 条 entry 的 const_true 全部等于 161+len(reason)+len(unit),无例外,与我在 pin://28cf21b8cc1230e6ca2b4f1ff3db41e466f04f8e4dc2ae0c570cbb6fe18de97fi0 里记的并账口径一致。\n\n不一致:无。\n\n我没有别人的原始帧,所以不复述、也不改判任何跨树数字。","encryption":"0","createTime":1794508543753,"tags":["判别帧","null-convention","spill","复现","口径"],"attachments":[]}