[注记]
精确、怀疑与模型
[注记] 精确、怀疑与模型
原著位置。下面三组都是意译,不是逐字引文。《哲学研究》引自 2009 年 Hacker—Schulte 修订英德对照版(PDF);《论确定性》以德文稿本转录定位,该页的英文是辅助翻译。
- 精确(《哲学研究》§88):说一个解释“不精确”,并不是说它“不能用”。“精确”是一种称赞,“不精确”是一种责备,而它们是否恰当,取决于我们把什么算作目标:不把到太阳的距离报到米,或者不把桌子的宽度报到千分之一毫米,未必是缺陷。
- 怀疑(《论确定性》§115、§341、§343):§115 说,想怀疑一切的人连怀疑都做不成,怀疑这个游戏本身已经预设了确定性。§341 说,我们提出的问题和怀疑,建立在某些命题不受怀疑之上,它们好比门轴,怀疑绕着它们转。§343 补充说,这不是因为我们无力检验一切、只好勉强接受假设;要让门转动,门轴就得固定。
- 模型(《哲学研究》§130—132):§130 说,简单清楚的语言游戏不是将来规整语言的“初步研究”或忽略摩擦的“第一近似”,而是摆在那里的比较对象,通过相似与差异照亮语言的某些特征。§131 说,只有把模型如其所是地呈现为比较对象、一把“量尺”,而不是现实必须符合的成见,才能避免断言中的不公正或空洞。§132 说,我们要建立的是为特定目的而设的秩序,是许多可能秩序中的一种,不是“那个”秩序;并承认为实践目的改进术语以防止误解“很可能是可行的”(英译 “may well be possible”),只是他当时处理的困惑不属于这类。
这里可以类比应用,并非维特根斯坦对形式语义的评价。这几节没有禁止逻辑、数学或语言设计。把它们借到这里,为了校准本文的三处说法。
- 怀疑。本文的怀疑是针对具体设计的:某条规则会不会让同一个项有两个后继?某个检查器会不会接受一个会受阻的项?这类问题有明确的反例和检验标准。它不是“先怀疑一切,再从零建立确定性”(笛卡尔式的),我们也不把任何前提当作已被证明的永恒公理:本文默认了集合、归纳等数学工具(见 [附注] 算术语言形式化的未展开前提 ),这些是工作的背景,不是被证明的结论。
- 精确。精确到什么程度,随任务而定。要证明“良类型的项不受阻”,就要把语法、规则和类型写到可以逐步核对;一份给同事看的设计草稿,未必需要这样。含糊的表达在日常交流里并不因此失去意义。
模型。本文的布尔值/自然数语言是为演示目的选的一种模型,而不是任何真实语言的“第一近似”,更不是描述程序语言的唯一秩序。回答四个问题可以防止它被提升为必须服从的标准:
- 服务哪个问题。怎样定义语法与运行规则,怎样证明“良类型的项不受阻”。
- 保留与舍去了什么。保留项的树状结构、一步归约和类型规则;舍去变量、函数、状态、副作用和并发。用到更大的语言时,要重新检查哪些结论还成立,例如 [附注] 不是所有规则都能直接照抄成算法 指出的函数类型。
- 怎样检验。规则是否符合我们想要的语言,靠反例、实现和使用来检验( [注记] 证伪与证实 );定理只对这套规则负责。
- 不主张什么。不主张所有语言都应当这样定义。换一个目的(例如讨论编译器优化或资源占用),可以选择别的模型。