第27章

第二十七章 证明、测试与来源:不同能力需要不同依据

一 一个“已经验证”的标签,可能混合了不同承诺

小林打开研究文件,看见几项结果都被标为已验证。其中一项有完整代数证明,一项只是程序跑过一百组输入,一项找到了题名相近的论文,还有一项得到另一个模型的赞同。如果这些状态被同一个标记覆盖,之后的组合就很容易把有限支持当作一般依据。问题不在标签颜色,而在它隐藏了证据类型。

为了避免这种混同,可以把主张写成带范围的句子,再说明证据怎样支持它。例如,“这段程序对列出的输入返回相应输出”,与“这个算法对所有合法输入终止并正确”,具有不同量词;“作者在该页提出这一看法”,与“这一看法已经成立”,又具有不同认识地位。范围写不清,验证便无法准确开始。

数学证明主要处理在明确假设下结论是否由有效推理推出。它可以支持无限对象的全称主张,而不必逐个枚举;但前提若没有满足,引用证明不能担保当前实例。证明的力量来自逻辑关系,不来自作者声望,也不来自文字读起来像证明。工具生成的推导同样需要这一关系。

测试则观察一定条件下的行为。若输入范围有限且能够完整枚举,并且执行和比较机制本身可靠,穷尽检查可以支持这个有限范围的结论。若只是抽取部分输入,通常只能支持相应经验判断或帮助寻找反例。不能把测试与证明绝对对立,也不能把二者无差别合并。

来源核对处理的是陈述与文献之间的关系。一篇论文确实存在,只解决真实性的一部分;它是否支持当前句子、版本是否合适、引用是否改变了原意,需要继续检查。来源本身还可能包含错误,因此正确引用不等于被引用命题必然真实。学术来源与对象证据需要在适当地方分开。

开放探索则允许提出尚无充分依据的候选。猜想、类比和研究方向可以很有价值,但其价值不应通过伪装成已成立结论来获得。一个系统诚实地提出有待验证的假说,可能比自信地完成一篇虚构论文更有用。封装的任务可以是可靠地产生候选,并明确它不承担最终证明。

另一些判断涉及规范选择,例如应当把什么视为教育成功、谁应当获得工具入口。它们需要理由、后果与价值冲突的讨论,不能只由统计相关或数学定理直接推出。反过来,规范目标也不能改变事实是否成立。封装升级作为文明方向的主张,需要把两种论证保持连接而不混同。

因此,一份合格研究应当让这些状态可以区分。这里不是要求每句话加复杂代码,而是让关键主张的依据、范围和未定部分在适当位置清楚可见。状态组织得越好,后续研究越能够直接调用成熟部分,把注意集中在尚未完成的义务上。

如果制度只奖励完成,研究者就可能把所有状态都推向已验证;如果平台只允许给出答案,候选与结论也会逐渐失去区别。可靠封装需要让未定、冲突、超出范围和暂停成为正常状态。它们不是附带道歉,而是认识活动的必要信息。

这项区分使人不必重新检查所有已经成立的内容,也不让尚未成立的内容借用成熟外观。不同依据各守其范围,才可能形成更大颗粒度的有效继承。

二 证明义务不能由运算次数代替

考虑一个关于自然数的简单命题:某表达式对前一千个输入都得到偶数,是否足以推出它对所有自然数都如此?仅凭这一观察不够,因为我们可以构造一个在前一千处符合、之后改变的表达式。全称主张需要额外结构,不能由有限成功自动完成。这个逻辑区别不会因程序运行很快而消失。

但若对象明确就是一千个指定输入,检查全部输入可以完成相应有限任务。关键在于主张没有在报告时悄悄扩大。工具接口应当保存范围,使“已在样本中观察”不能在摘要里变成“一般规律得到证实”。很多误读发生在这种状态升级,而不是发生在计算本身。

再看一个可完全证明的算法例子。输入两个非负整数,不同时为零,反复用较小的正数除较大的数并保留余数。每一步中,原来两个数的公共因子与除数、余数的公共因子相同;非零余数严格小于除数,所以过程最终停止。停止时的最后非零数就是最大公因数。正确性与终止性在这里有不同但相连的理由。

如果某个实现遗漏了对两个输入都为零的处理,算法的有限承诺与程序接口就不一致。若使用固定长度整数时发生溢出,数学证明也不能直接担保实现行为。理论、实现与输入解释需要各自连接。已有数学证明可以被封装,却不能替任何代码自动取得正确地位。

这并不要求每位用户重新证明欧几里得算法。经过适当验证的实现可以作为工具使用;用户需要知道输入范围、输出含义和异常状态。维护者负责更多内部检查,研究者在改变算法或范围时承担新增义务。真正值得重开的是被修改或受到怀疑的位置,而不是每次使用时重复整段文明史。

在形式化证明中,类似分工可以更明确。一个证明对象通过检查,支持形式系统中的某个陈述;研究者仍需核实该陈述没有把重要假设隐藏在定义里,也没有把原问题换成容易证明的版本。[8] 若只看最后显示成功,而不看成功对应什么命题,形式化也可能成为新的包装。

一种有价值的教学任务,是把正确程序、错误命题和错误解释放在同一个小案例中,让学生区分。程序可以正确执行一条不保证收敛的规则;数学定理可以正确描述另一条规则;报告却把两者连错。学生若能找到错在连接,而不是一味重算每一步,就形成了与复合研究直接相关的能力。

工具也可以帮助这种区分。例如,自动比较定义、检查类型和列出证明依赖,能够减少接口遗漏;但这些工具本身也应说明范围。没有一种机制因为用于验证,就天然免于验证问题。可靠性来自层级上的适当收束,而不是把最后一个检查器宣布为没有条件的真理来源。

对一般命题,证明可以非常复杂,个人未必能立即完全把握。此时合理状态是承认依赖哪种公共验证与专业说明,并在自己实际承担的层级上形成必要理解。不能把暂时不懂改写为个人已掌握,也不能因此要求所有研究都停止。知识共同体正是在分工中维持不同深度的认识。

所以,封装论对证明的态度不是降低要求,而是保护要求不被错误分配。要证明的是命题,不是作者独立完成全部历史;要学习的是与目标相应的认识关系,不是无差别复制所有推导。把这两件事分开,严格才可能更有效。

三 来源链条要保留支持关系,而不只是书目外观

设想系统给小林找到一篇标题含有网络一致性的论文。她在自己的报告中写道,文献已经证明任意连通网络都收敛。即使题名、作者、年份都完全正确,引用仍可能失真,因为原文也许要求持续连接、自身权重或其他条件。来源核对必须进入具体主张,不能停留在文章存在。

一条可用的来源记录,至少应让读者找到原文,并辨认它支持当前哪一个判断。对于论文,可以记录版本、章节或段落;对于动态网页,可以记录访问日期与所用版本;对于书籍,可以记录版次与页码。字段不是越多越好,而是要能抵抗同名、更新和上下文错位。

如果原文只说一种假说值得考虑,不能引用成已经证实;如果作者报告某个样本中的结果,不能改写成普遍规律;如果某政策文件只是建议,不能传播为已生效的统一规定。本书最初讨论的数学教育事件,正需要保留这类区别。批评一个真实原则,比批评一个传播中被夸大的命令更有研究价值。

引用还需要区分原始研究与转述。二手说明可以帮助理解,但当关键结论有争议或涉及细节时,应尽可能回到原始材料。若原文不可取得,就应说明依据来自何种转述,而不是制造亲自读过的印象。知识的可继承性依赖这种诚实的链条,而不是只依赖格式规范。

同样,检索不到不等于没有先行研究。术语不同、领域不同或资料未被索引,都可能影响结果。工具可以帮助扩展检索和比较,但不能把一次搜索空白变成原创证明。研究者应当把未找到写成当前检索范围内的状态,并尽量说明与已知近邻的实质差别。

一个可靠的文献封装,因而不必承诺识别世界上所有来源。它可以明确承担:对给定清单取得全文、核对某类书目信息、定位支持段落、提示版本冲突。任务有限,依据可以更清楚。相比之下,宣称自动证明绝对首创,通常提出了远超可验证范围的承诺。

来源关系也可以由团队维护。某位成员完成准确定位,后来者不必每次重新从搜索引擎开始;但在改变引用主张时,应当再次检查支持范围。相同段落可以支持一种说法,却不支持更强的另一种说法。封装保存的是带语境的支持关系,不是一枚可以到处粘贴的权威印章。

资料更新后,旧研究不必全部推倒重来。可以辨认改变是否触及当前依据:作者单位更正与核心结果修订具有不同意义,网页样式变化与政策内容改变也不同。维护系统应当帮助分辨,而不是把任何更新都变成全部重查,或把任何更正都视为无关小事。

对于本书,理论借用也要保持来源。延展心智、能力层级、认知卸载和模块化已有各自研究。封装升级论不能把这些工作隐藏起来,只保留自己的新名称。真正的理论增量在于它们怎样被重新连接到文明继承、资格冻结与科研内卷,而不是在引用数量上显得丰富。

因此,来源封装的目标,是让他人能够准确继续,而不是让文本显得像学术作品。一个有效引注应当打开检验入口,不能成为关闭质疑的装饰。引用越容易自动生成,支持关系越需要被认真维护。

四 开放探索应当保留尚未完成的地位

研究并非所有时刻都需要成熟结论。小林在反例之后提出几个可能的修正方向,有些只是直觉,有些有部分计算支持,还有一个已经有短证明。若把它们全都标成不可靠而禁止使用,探索无法展开;若全都写成成果,知识状态又会失真。需要的是分级使用,而不是只准成功或失败两种状态。

候选命题可以被用来组织测试,但不能被未经说明地用作证明前提;类比可以引出新问题,但不能携带原领域全部结论;模拟可以显示值得关注的行为,但不能替代对其适用范围的证明。每种未完成状态都有正当用途,只要用途与依据相匹配。

例如,模型提示某类权重可能加快收敛,小林可以把它转成比较任务。若数值结果支持,她可以进一步寻找理论说明;若反例出现,便修改或放弃。工具在这里完成的贡献是提供有用候选,不必假装已经解决全部问题。一个诚实的候选发生器,也可以形成值得继承的封装。

开放状态还需要期限与停机条件。一个猜想如果长期没有新的支持,研究者可以暂停,并记录为什么。暂停不是证明它错误,而是对当前资源的安排;证伪则需要相应反例或论证。把这两种状态分开,可以避免后来者把被放弃方向误读为已否定,也避免团队不断重启同一条没有进展的路线。

对于教育,保留未完成尤为重要。学生需要能够展示自己在哪里不懂,才可能得到针对性反馈。若每次讨论都要求像正式成果一样完美,学生便可能用生成文本填满真正的疑问。看似理解不断增加,实际不知道的地方越来越难被认识。可靠封装应帮助显露未知,而非替未知化妆。

对科研发表而言,未完成也可以有公共价值,但应当说明贡献所在。一个明确的反例、一个有依据的困难定位、一组可复现的负结果,可能减少后来者重复劳动。是否符合某种发表形式由共同体讨论,不能因为缺少最终成功就一概没有价值,也不能把所有失败都自动提升为重要贡献。

这使证据状态成为一种可以回写的结构。新证明出现,候选转为已成立;接口改变,原有成立范围缩小;来源修正,某项解释需要重写;新反例出现,旧结论退出。状态不是一次贴上的标签,而是认识进程中可以被理由改变的安排。

平台若能保存这种变化,个人知识就有机会持续生长。相反,只有最后回答的聊天记录往往混合了不同阶段,后来者很难知道哪些话已被放弃。把关键状态和修改理由保留下来,比无差别保存全部对话更能形成可调用能力。记录的价值来自结构,而不只是容量。

本章的四类依据,最终保护的是同一个原则:不要让一种证据冒充另一种,也不要让未完成被迫冒充完成。证明、测试、来源和探索各自获得合适位置,研究才可能在不重复全部历史的情况下继续保持严格。

证明、测试与来源核对不是互相竞争的可信标签,而是回应不同问题的依据。它们可以共同支持一次研究,却不能随意借用彼此的证明力。即使每个局部都已具备相称依据,组合之后仍要重新检查条件如何传递、接口怎样对应、整体目标是否保持。更大颗粒度的能力因此承担新的成立义务。可靠模块的数量增加,只提供了组合的材料,尚未证明整体已经形成可靠封装。