Wonderland — 2026-09-29

Wonderland — 2026-09-29

速览(30 秒)
  • 组合: 形式化方法与定理证明 × 认知科学与决策偏误 / 量子场论与基础物理 × 城市规划与交通流 / 编译器与编程语言设计 × 古文字学与文字起源
  • 本期火花 Top 3: #1 2KB 里只放得下检查器,放不下证明者:De Bruijn 判据就是 Simon 的 satisficing 判据 / #4 Wardrop 均衡是一个不动点,16-bit 定点数也是一个不动点:城市交通的”在哪停”由数值格式决定 / #7 亚述学的归档契约写着”只能用 ASCII”:CDLI 的 Canonical ATF 就是楔文的纯文本 ABI
  • 可动手候选: #3(电位器即 aspiration level:2KB 的阈值判定装置)、#5(int16 版 block-spin 粗粒化)
  • 值得写长文: #2(一篇证明”有限理性”的论文在验证上恰好执行了自己的结论)、#8(纯文本是唯一不会过期的 ABI)

组合 A:形式化方法与定理证明 × 认知科学与决策偏误 + 如果必须用 8-bit 微控制器(Arduino UNO,2KB RAM)

连接点分析:两个领域都在谈”够不够好”这件事的边界。形式化方法把”发现”和”确认”劈开:求解器可以任意启发式、任意出错,只要它交出一份可独立校验的证明;认知科学里 Simon 的 satisficing 讲的是同一道劈口——搜索昂贵且只能”够好即停”,而判定便宜且可以做到确定。约束把这道劈口钉到一块 ATmega328P 上:2KB SRAM 放得下一个只做校验的小内核,放不下任何像样的搜索。2KB 不是缩小版的全能机器,而是对”谁负责搜、谁负责验”的一次物理表态。

💥 #1 — 2KB 里只放得下检查器,放不下证明者:De Bruijn 判据就是 Simon 的 satisficing 判据

同构惊讶 9 · 具体 9 · 可行 9

现代 SAT 流程把”找证明”和”验证明”劈成两半:求解器可以任意启发式、任意出错,只要它吐出一份可校验的证明(DRAT/LRAT),一个很小的内核就能独立判定。De Bruijn 判据要的正是这个——信任基只剩校验器。这和 Simon 的 satisficing 是同一刀:证明搜寻是高成本、只能”够用即停”的启发式搜索,校验是廉价、可做到确定的判定。约束把它钉到硬件上:ATmega328P 只有 2KB SRAM,放得下只做校验的小内核,放不下任何像样的搜索。2KB 不是”缩小版的全能机器”,2KB 是对”谁负责搜、谁负责验”的一次物理表态。

如果要做在 Arduino UNO 上写一个只吃 DIMACS + 一小段 DRAT 片段的校验器,对 PHP(3,2)(三只鸽两只笼,UNSAT)返回”校验通过”;串口打印 verdict,板载 LED 亮起;把内核的信任边界写成注释贴在代码顶部。

参考文献 4
  1. DRAT-trim(Wetzler/Heule/Hunt,SAT 2014)与 cake_lpr(Tan 等,CakeML 中验证的 LPR 校验器,只比未验证实现慢 5× 以内)
  2. Lrat-Trim 论文(SAT 2023)明确指出”DRAT 检查常常比求解本身还慢”,因此要先修剪证明再交给可信内核
  3. De Bruijn 判据
  4. ATmega328P:2KB SRAM、32KB flash、8-bit 内核
生图提示词

一台只有指甲盖大的芯片,面前摊开一卷比它还高十倍的手写证明长卷;芯片只伸出一根探针逐行划过,划过的行亮起、未划过的保持暗色,画面中央垂直立着一把刻度极细的尺

#1 — 2KB 里只放得下检查器,放不下证明者:De Bruijn 判据就是 Simon 的 satisficing 判据

💥 #2 — 一篇用定理证明器证明”有限理性”的论文,自己的证明代码被标注为 illustrative:它对自己完成了 satisficing

文化隐喻惊讶 9 · 具体 9 · 可行 7

一篇 2025 年论文用 Lean 4 给出 satisficing 的机器验证刻画(把”够好就停”归约为一个容忍度参数 ε,并给出 ε<1/2 时阈值唯一的结论)。但公开复核指出:核心定理在代入辅助引理后塌缩为定义的重述,“有界理性溢价”是写进定义而不是推出来的;更关键的是,附录自己声明那段证明代码是 illustrative。也就是说,这篇论文在”验证”这件事上恰好执行了它自己的结论——用到手的最佳近似交付,而不是走到完全形式化。认知偏误与证明工程的交汇点不是”人会算错”,而是”人会选择在哪里停下”。

如果要做写一篇短文加一张”信任预算台账”:把一份形式化产物拆成”定义 / 重述 / 真证明 / 未验证代码”四栏,逐条标注每栏的置信来源;用同一张表审计自己手上任意一个形式化项目。

参考文献 4
  1. arXiv 2507.07052 “Quantifying Bounded Rationality: Formal Verification of Simon’s Satisficing Through Flexible Stochastic Dominance”
  2. 对该文的公开复核(“load-bearing theorem is a definitional restatement”;附录声明证明代码为 illustrative)
  3. Simon 1955 “A Behavioral Model of Rational Choice”(aspiration level)
  4. 形式化验证实地研究给出的负担数据:写一条非可计算规格平均约 25 分钟,加约 15 分钟同行评审
生图提示词

一枚刻满符号的石印悬在半空,印面上有一道细缝,缝隙处正好缺一个符号;下方是一排等待盖章的空白纸页,最上面那张只盖到了半枚印痕

💥 #3 — 把 aspiration level 做成一圈电位器:一台 2KB 装置决定”这份证明够不够好”

装置/原型惊讶 8 · 具体 8 · 可行 9

上述论文把 bounded rationality 归约为一个可调容忍度 ε,并在 ε<1/2 时给出阈值唯一性。这个 ε 在数学上是参数,在硬件上就是一个比较器的阈值。2KB 的机器做不了搜索,但完全做得了”按阈值判定”——这正是 aspiration level 的物理形态。把它做成装置:电位器就是 ε,输入一段被逐位喂入的候选证明,比较器在残差跨过阈值的瞬间给出 accept/reject,人转动旋钮就能看见”理性有多有限”这条曲线在什么位置翻面。形式化验证里最贵的从来不是算力,而是决定在哪一档停下的那份判断。

如果要做Arduino + 电位器 + 8 个 LED:LED 排表示阈值 ε 的 8 个刻度,串口喂入一串”证明步骤质量”数值,装置在跨阈值时锁定并亮灯;旋钮两端标成”最省事的通过”到”最严格的不过”。

参考文献 2
  1. arXiv 2507.07052(ε<1/2 的阈值唯一性)/ Simon 1955 的 aspiration level
  2. ATmega328P 的 10-bit ADC(1024 级阈值,本身就是”有限理性”的量化)/ 形式化验证中的 proof maintenance 问题:证明必须随代码改动重新校验
生图提示词

一个巴掌大的金属盒子,顶面中央是一只带刻度的旋钮,旋钮周围一圈指示灯由暗红渐次亮到纯白;盒子侧面插着一张穿孔纸带,纸带在盒内被拉成一条笔直的走线

组合 B:量子场论与基础物理 × 城市规划与交通流 + 如果只能使用 16-bit 定点数(无浮点)

连接点分析:两个领域共享一个词,而且这个词在两处都是承重结构——不动点(fixed point)。重整化群里,粗粒化变换的不动点决定了哪些细节在尺度之间留存、哪些被抹掉,临界指数与普适类由此而来。交通分配里,Wardrop 均衡是分配算子的不动点,Frank-Wolfe 以 O(1/k) 的次线性速度逼近它。约束把”不动点”从数学对象变成数值格式:16-bit 定点数只有固定的小数点位置,约 4.8 位十进制精度,溢出是非线性的。于是一个具体问题浮出来:当数值表示本身被量化,城市的均衡还能被定位到哪一个不动点上?

💥 #4 — Wardrop 均衡是一个不动点,16-bit 定点数也是一个不动点:城市交通的”在哪停”由数值格式决定

同构惊讶 9 · 具体 8 · 可行 7

Frank-Wolfe 求 Wardrop 均衡是不动点迭代,收敛 O(1/k)——慢,而且早期迭代极不稳定(主流开源实现文档直言前几轮常出现线搜索数值错误)。16-bit 定点数只能表达约 4.8 位十进制精度,溢出高度非线性。两者合起来产生一个真实后果:城市交通均衡是自组织临界系统(在 I-24 MOTION 的轨迹数据里,拥塞同时表现出渗流相变与 1+1 维 KPZ 普适类),临界系统的不动点对扰动不稳健,量化误差不是”更粗糙的答案”,而是可能把求解器推往另一个不动点。计量学决定结论,不只决定小数位。

如果要做用 Q8.8 整数实现一个 20 节点双路由网络的分配,给每条链路的成本函数加上定点溢出注记,跑两种舍入模式(截断 / 四舍五入),对比最终流量分布差异,画成一张”同一座城市,两种不动点”的对照图。

参考文献 3
  1. Wardrop 1952;Beckmann-McGuire-Winsten 1956;Frank-Wolfe 的 O(1/k) 收敛
  2. arXiv 2507.09530 “Universal Scaling Laws in Freeway Traffic”(I-24 MOTION:渗流相变 + KPZ 普适类)/ 16-bit 定点表示约 4.8 位十进制精度
  3. Doom 与第五代游戏机的变换协处理器均为 16-bit 定点(12 位小数位)
生图提示词

一张城市路网俯视图被切成整齐方格,每个交叉口是一枚方形筹码,筹码内的数字整齐到同一位小数;画面一角有一小块区域的筹码被压扁、数字溢出框外,形成一道锯齿状裂缝

#4 — Wardrop 均衡是一个不动点,16-bit 定点数也是一个不动点:城市交通的“在哪停”由数值格式决定

💥 #5 — 重整化不需要浮点:把城市当 Ising 格,一次 block-spin 就是一次整数求和

方法论惊讶 8 · 具体 8 · 可行 8

有研究把交通流建模成 Ising 格上的元胞自动机,再用重整化群做空间粗粒化,粗粒化尺度可以是单辆车长的任意整数倍——这正是”自旋块求和”,只用到加法与比较。首尔公交客流数据也印证了这一点:站点强度的相关函数是幂律,强度涨落具有尺度不变性。幂律与尺度不变意味着可以跳过中间尺度,而整数块求和天然只表达”块内和”这一层信息。约束在这里不是妥协而是契合:整数版重整化少了浮点,却保住了真正承重的那部分——哪些量在尺度变换下不变。

如果要做取一小块 OSM 路网,用 int16 流量值实现 3 级块粗粒化,逐级打印块和与块内方差,验证”数据塌缩”是否只用整数就可见;再把它做成一个可交互的小页面。

参考文献 2
  1. arXiv 2403.13779 “Multi-scale Traffic Flow Modeling: A Renormalization Group Approach”(Yang & Jerath)/ PMC3943856(首尔公交客流的幂律与尺度不变性)/ Nagel-Schreckenberg 元胞自动机
  2. Yang/Haeri/Jerath, ICCS 2020(交通流的 RG 多尺度建模)
生图提示词

一片由小方格组成的棋盘,格中方块按 1×1、2×2、4×4 逐级合并成大块,每级合并留下不同亮度的印记;最外圈是尚未合并的细密格纹,中心是最粗的几块纯色

💥 #6 — 1950 年那份 24 小时预报算了 24 小时:16-bit 定点不是退步,是回到了”用得上”的那一档

文化隐喻惊讶 8 · 具体 8 · 可行 7

Charney、Fjørtoft 与 von Neumann 1950 年在 ENIAC 上跑出第一份数值天气预报,那份 24 小时预报的机时也接近 24 小时——团队只能勉强跟上天气,前提是机器中途不出故障。ENIAC 用的不是浮点硬件,而是十进制定点机。而 Lynch 在 2008 年做了那个复算:把同一个正压涡度方程写成一段小程序,在诺基亚 6300 手机上重跑 1949 年 1 月 5 日的同一组初始场,主循环不到一秒,结果与原稿非常接近。从 24 小时到不到一秒,跨过的不是精度——这套模型的精度一直是同一档——而是那个“刚好够用”的门槛。交通流建模与气象处在同一处境:模型尺度的选择(重整化群正是回答“哪个空间尺度最适合建模涌现行为”)比精度位数更决定成败。

如果要做用一块 16-bit MCU 实现一维平流方程的 Q8.8 版本,喂入一组历史观测做 24 小时外推,把输出与同期再分析场并排画出来,标题写”精度换可运行时间”。

参考文献 2
  1. Charney/Fjørtoft/von Neumann 1950, “Numerical Integration of the Barotropic Vorticity Equation”, Tellus 2(4), 237–254
  2. Platzman 1979 “The ENIAC computations of 1950”, BAMS 60:302(24 小时预报约需 24 小时机时)/ Lynch & Lynch 2008 “The ENIAC Forecasts: A Re-creation”, BAMS 89(1) 与 “Forecasts by PHONIAC”, Weather 63(11)(Nokia 6300 重跑,主循环 <1 秒)/ arXiv 2403.13779(尺度选择)
生图提示词

一间深夜机房,成排机柜亮着暖黄的灯,地板上摊着一张划满网格的手绘天气图;图上一支铅笔停在半途,笔尖前方的等值线还只是草稿,笔后的线条已被反复描粗

组合 C:编译器与编程语言设计 × 古文字学与文字起源 + 如果必须用纯文本文件存储(无数据库 / 无二进制 IR)

连接点分析:上一期把”符号表压缩”与”寄存器分配”接在一起(陶筹到楔文把符号数从 1000+ 压到约 600,SectorLISP 把一门语言压进 436 字节)。这一期做二跳,不再问”多小”,而问”什么形式能活下来”。楔形文字能留到今天,靠的不是任何一份完好原件,而是一套被反复抄写、ASCII 化的转写协议;编译器里能活下来的部分同样不是二进制产物,而是纯文本源码。约束把这条直觉变成硬要求:没有数据库、没有二进制中间表示。

💥 #7 — 亚述学的归档契约写着”只能用 ASCII”:CDLI 的 Canonical ATF 就是楔文的纯文本 ABI

装置/原型惊讶 9 · 具体 9 · 可行 8

CDLI 的转写格式 ATF 最初被定义成”只用 ASCII 字符的小规格”,今天仍然如此:Oracc 的扩展 ATF 必须转换成 Canonical ATF 才能进入 CDLI 仓库本体——扩展语法可以做研究,但不能做归档。CDLI 收录约 39 万件带楔文的器物及其转写,能被机器一代代重读,靠的正是这条”归档只收可降级为纯 ASCII 的形式”的硬规则。编译器这边有一条完全平行的线:GCC 内部的中间表示是 LISP 方言,而 SectorLISP 本身就是一个 C / JavaScript / Thompson Shell 的多语言混写文件。能长期存活的表示,总是那个能被最多种工具重新读出的表示。

如果要做写一个把编译器中间表示强制降级为”canonical 纯文本”的 pass:任何 pass 的输出必须先序列化成可读文本、再解析进下一 pass,禁止在内存里传二进制结构;用 awk/grep 就能在任意两步之间检查中间产物。

参考文献 2
  1. Oracc “CDLI ATF Primer”(ATF 最初只用 ASCII;扩展 ATF 不允许进入 CDLI 仓库,须转为 C-ATF)/ Unicode UTR #56 “Unicode Cuneiform Sign Lists”(转写与抽象字符的映射、同音字编号跨符号表保持一致)/ CDLI 数据规模:约 390,000 件器物、约 700 个出土地点
  2. SectorLISP 的 C/JS/Thompson Shell 多语言混写(justine.lol/sectorlisp2)
生图提示词

一块透明玻璃展柜里的泥板,板面刻痕一侧是楔形符号,另一侧被投影成等宽的拉丁字母行;两者之间悬着一条笔直的虚线,虚线上每隔一段距离打着一个极小的方框标记

#7 — 亚述学的归档契约写着“只能用 ASCII”:CDLI 的 Canonical ATF 就是楔文的纯文本 ABI

💥 #8 — 纯文本是唯一不会过期的 ABI:把数字保存的四条判据当成语言设计 checklist

方法论惊讶 8 · 具体 8 · 可行 8

长期数字保存领域对格式的四条判据是 open / standard / non-proprietary / well-established,并明确指出 TXT、CSV 这类纯文本”更可能被今天的各类软件读到,也更可能在未来读到”。有趣的是,这个领域自己也承认:文件格式过时并没有成为当初预言的压倒性灾难,真正难的是规模与”什么时候动手迁移”。把这条经验搬到语言设计上:一个中间表示的可保存性不来自规范完备度,而来自”能否被最笨的工具读出来”。约束下的语言设计因此会偏向一个反常目标——不是表达力最大,而是每次 pass 的输出都能被 grep 与手工编辑。

如果要做拿一个现有小语言(例如一个小 Lisp 解释器),在每一步之间强制 dump/parse 纯文本、禁止任何内存内传递,统计总耗时与总字节数,写一份”文本化流水线的真实代价”报告。

参考文献 4
  1. Duke University Libraries 数字保存指南(纯文本
  2. CSV
  3. JPEG
  4. WAV;越开放、越常用、越好文档化越抗过时)/ Wikipedia “Digital preservation”(open, standard, non-proprietary, well-established)/ DPC Digital Preservation Handbook(“file format obsolescence has not emerged as the overwhelming danger”)/ CDLI 的 C-ATF 归档规则
生图提示词

一条工厂流水线的剖面,每道工序之后物料都先被倒进一只透明方形容器再继续前进;容器外壁贴着可撕的标签,字迹清晰可辨,而工序内部全是看不清的齿轮

💥 #9 — 第一份中间表示是能背出来的:楔文符号表同时是教材、词典和音频

声化惊讶 8 · 具体 8 · 可行 7

楔文有一类特殊文本叫 lexical lists(词表 / 符号表),从公元前三千纪中期一直抄到楔文文化结束,Oracc 的 Digital Corpus of Cuneiform Lexical Texts 中有一个专门子项目要把这批表全部数字化。这些表在书吏学校里被反复抄写、按顺序诵读——它同时是教材、词典和发音手册。把它和编译器并置:一份符号表在能被机器解析之前,先要能被人口头复述;而在纯文本约束下,一个语言的符号集合必须小到能被写进一张可通读的清单里,编译器读它,就像书吏读词表。声化在这里不是装饰:词汇表被读出来的那部分才是活的。

如果要做把一门小语言的 token 表导出成一张纯文本符号表,逐条标注”字形 / 读音 / 在语料中出现的顺序”,再录一段按出现频次降序朗读的音频,比较朗读顺序与代码里 token 的编码顺序。

参考文献 3
  1. Oracc Digital Corpus of Cuneiform Lexical Texts: Sign Lists(目标:数字化公元前 2500 年起全部符号表)/ Unicode UTR #56(同音字编号跨符号表保持一致;同一符号可有 aš
  2. ina
  3. dil 多个读法)/ CDLI C-ATF(转写即 ASCII 化读音)/ SectorLISP 的 6 个 builtin 最小集
生图提示词

一排黏土圆柱印章立在长条木架上,每个印章侧面同时有刻痕与细小的声波纹;木架底部是一卷摊开的纯白长纸,纸上的格线一行行延伸到画外

💥 #10 — 字符名一次赋定、连拼错都不许改:Unicode 的稳定性契约与书吏的词表是同一条规矩

同构惊讶 8 · 具体 9 · 可行 7

Unicode 的字符编码稳定性政策规定:已赋值的字符名是 immutable,永远不在后续版本里修改,连拼写错误也不会被”订正”,而每一个已发布的字符数据库版本是绝对稳定的。楔文研究里有一条平行规则:符号的同音读法编号必须跨符号表保持一致,因为没有这条约束,三千年间的文本就无法用同一套名字互相指称。两者交换的是同一件东西——用”错误不可修正”换取”任何年代的文本都能被同一个名字寻址”。编译器这边有这条契约的低配版:GCC 的 RTL 同时保有内部结构与可打印的文本形式,后者才是能被存档、被 dump、被逐版比对的那一半。

如果要做给自己手上一门小语言写一份”稳定性政策”:明确规定哪些 token 名与编码一旦发布就永不修改(包括错别字),并把这份政策做成一个 CI 检查,阻止任何后续改动触及已发布条目。

参考文献 1
  1. Unicode Character Encoding Stability Policies(字符名 immutable;“misspellings and incorrect names will never be corrected clerically”;已发布版本绝对稳定)/ Unicode UTR #56(同音字编号跨符号表保持一致)/ GCC Internals “RTL”(RTL 受 Lisp 列表启发,同时有内部结构与用于机器描述和打印 dump 的文本形式)/ CDLI 的 C-ATF 归档规则
生图提示词

一面极长的石板名录嵌在墙里,每一行末尾都留着一处刻意保留的刻错痕迹,痕迹旁钉着一枚小小的铜牌;墙脚堆着尚未上墙的空白石板,长短不一