*** 高级选读 · 交互式形式化证明入门

证明闯关

用四步完成一段证明:选择策略,观察目标怎样改变。

把条件、目标和每一步规则写清楚,再让网页检查。这就是本页的形式化证明体验,无需安装软件。

建议先学过主教材的逻辑推理与直接证明。本章不计入两周核心课时,可以整章跳过;页内的 ** 标记表示更难的挑战关卡。

第1关:已知A → B和A → (B → C),证明A → C。

A → B,A → (B → C) ⊢ A → C

本题规定:报名就有参赛卡;已报名的人,有参赛卡就可以参赛。

A:小林已报名。B:小林有参赛卡。C:小林可以参赛。

已知条件 · 你的卡牌

卡牌可以反复使用,使用后不会消失。

hAB A → B

如果小林已报名,那么他有参赛卡。

hABC A → (B → C)

如果小林已报名,那么只要他有参赛卡,就可以参赛。

当前目标 · 还需要证明什么

待证明

⊢ A → C

如果小林已报名,那么他可以参赛。

目标里的“如果”提示我们:先假设A,再证明C。

当前没有额外的临时假设。

选择策略

点击策略按钮,或者选择卡牌上的动作。

证明步骤记录
  1. 还没有使用卡牌。
图1每选一个策略,网页立即显示剩下要证明什么;所有任务完成后,再检查整段证明。

前5关各有一条3—5步的参考走法,不限步数,可以撤销。分情况关和最后的反例挑战标为 **,可以以后再玩。选错时会解释原因,目标保持原样。完成记录只保存在当前浏览器。

先看懂,才知道下一步要做什么

目标变了,不等于原目标已经证明了

使用条件卡之前

已知 P,P → Q目标 ⊢ Q
使用 P → Q
→

使用条件卡之后

已知 P,P → Q新目标 ⊢ P
图2原目标Q暂时记在这一步的推理中;只有P也得到证明,这一步才能完成。

你可以顺着条件想:“有P,再用P→Q,就能得到Q。”也可以从目标倒着想:“我想得到Q;这张卡说只要有P就够了,所以先检查P。”网页用第二种方式展示目标变化。

hP : P 的意思是“名叫hP的这条已知条件说明P成立”。hP只是方便引用的名字。⊢ Q 在这个界面中标出当前待证明的Q;它不是一张已经拿到的卡牌。

A、B、C或者P、Q表示完整命题。第一关的A是“小林已报名”这句话,不是“小林”这个人。三角形关的P是“T是等边三角形”这句话,不是“等边三角形”这个对象。换一关时,页面会重新说明字母的含义。

本页用 → 表示命题中的“如果……那么……”。题目中的 A → B,A → (B → C) ⊢ A → C 读作:“以左边两条命题为前提,证明右边这条命题。”符号 ⊢ 分开前提与要证明的结论。

第一关为什么恰好可以走四步?
  1. 假设前件A。为证明A → C,临时假设A,目标变为C。
  2. 使用hABC,并用已有的A。A → (B → C)与A给出B → C。因此,要证明C,现在还需证明B。
  3. 使用hAB。A → B告诉我们,要证明B,只需证明A。
  4. 引用已有的A。A就在临时假设里,这个目标完成,整段证明随之完成。

第2步使用了A,第4步又使用了同一个A。假设没有被消耗。最后得到的是A → C,并不是无条件的C。

为什么不直接看图,说“它显然是等腰三角形”?

这里练的是从明确给出的前提得到结论。图形的含义帮助我们理解卡牌;网页检查的是推理结构。它不会自行判断一个实际图形是否等边,也不会替我们证明题目给出的前提。给前提本身提供依据,是另一个证明任务。

因此,同样的P、P→Q、目标Q,也可以解释成“n能被4整除”“如果n能被4整除,那么n是偶数”“n是偶数”。熟悉的例子换了,推理规则没有变。

每个动作,都对应一种明确的推理规则

怎样使用手里的卡牌

使用已有结论

已有:P
目标:P

目标和卡牌写的是同一个命题,可以直接完成。只写着Q的卡,不能被当作P。

使用条件

前提:P → Q;P
结论:Q

要证明Q时,先用条件卡,再完成P这个子目标。箭头不能随意倒过来。

证明“且”

目标:P ∧ Q
任务:分别证明 P、Q

两件都完成才算完成。反过来,已知P∧Q时,可以拆出P和Q。

证明“如果”

目标:P → Q
任务:假设 P,证明 Q

完成后得到的是“如果P,那么Q”;并没有无条件证明P是真的。

** 证明“或”

目标:P ∨ Q
任务:任选一边证明

证明P就足以说明“至少一个成立”,证明Q也可以。“或”允许两者同时成立。

** 使用“或”

已知:P ∨ Q
策略:分两种情况

若想得到R,要分别说明“假设P时能得R”和“假设Q时也能得R”。不能只完成较容易的一边。

图3目标中的联结词决定要完成什么,已知卡中的联结词决定能够使用什么。

数学里的卡牌不会被消耗。已经证明的结论可以反复引用;你也不必用完每一条已知条件。比喻的作用是帮助理解“手里有什么、还缺什么”。

** 网页怎样检查“不是乱点也能过关”?

每个动作都会建立一小段证明:记录所用前提、推理规则和子目标。全部子目标完成后,网页从最初的前提出发重新检查整棵证明树。只有最终结论与题目目标相同,才报告证明完成。

本页只实现上面几种命题逻辑规则。它是一个小型教学检查器,不是Lean 4,也没有声称实现完整的逻辑系统。最后的挑战另外检查真值反例;找到反例意味着前提不能保证目标,而不是目标已经被证明。

第一关的关键:证明一条“如果”

临时假设,只在对应的小证明里有效

第一关开始只有两张条件卡,没有A。目标是A → C,所以可以暂时假设A,在这个假设下证明C。完成后,整段证明给出A → C。

你证明的是“如果小林已报名,那么他可以参赛”。你没有证明小林已经报名,也没有证明他无条件可以参赛。虚线卡标出临时假设;小证明结束后,这张卡也结束它的作用。

** 分情况关的两个分支也各有自己的临时卡。假设P的分支只允许使用P这张新卡;假设Q的分支只允许使用Q那张新卡。两个分支都可以使用原来的前提,但不能混用对方的临时卡。两边都能得到同一个R,才能结束分情况证明。

** 这为什么和 Lean 一类证明助手相似?

证明助手通常把当前任务表示为“在这些条件下,证明这个目标”。一条指令可能用已有条件结束目标,也可能产生新的子目标,或者在局部加入假设。本页用中文按钮展示这些动作。

学习时先说清每个动作的意思,再接触实际工具中的命令,会更容易分清数学理由与输入语法。这里不要求记忆命令,也不把网页的显示当成Lean已经验证过的结果。

同一道题,在 Incredible Proof Machine 中怎样连线

推理已经正确,还能少用一个积木

你提供的截图是一段正确证明。若以这一关提供的基本积木数量最少为标准,可以把8块减到7块:去掉图中编号4的 ✎A 辅助标注块,直接重复使用同一个临时假设A。

七块证明连线图:两个前提和临时假设A先给出B与B→C,再给出C,最后得到A→C。A从条件证明积木自带的出口分成两条线,没有额外的辅助标注块。
图4同一个A出口可以接两条线,因此不需要中转块;图为按规则重绘的示意图,可横向滚动查看,打开完整图。

在原图中怎样改:删除编号4的 ✎A 块,把编号8积木的A出口,直接接到编号5和编号6两块各自需要A的入口;其余连线保留。假设A仍然来自编号8的条件证明积木,并没有凭空增加一个前提。

七块怎么数?为什么已经最少?

两条给定前提占2块,目标占1块。推理需要4块:用A → B得到B;用A → (B → C)得到B → C;再由B → C和B得到C;最后通过条件证明积木得到A → C。合起来是2 + 4 + 1 = 7块。

在本题中,要从第二条前提取出C,需要连续两次使用条件;其中需要的B,要用第一条前提和A得到。外层还需要一次条件证明。这四个推理积木都各有作用。游戏的官方关卡配置也把本题的最少块数设为7。

这里比较的是本关给出的基本积木;把一段现成证明封装成自定义积木,不属于同一种计数标准。七块也不等于七个推理步骤:前提和目标本身都算积木。

对照:你提供的八块原图
用户提供的原始截图:A→B、A→(B→C)推出A→C,使用八个积木;编号4的✎A辅助块可以省去。
图5原图保持不变;编号4的辅助块不增加推理能力。点击图片可查看原尺寸。

辅助块只是把同一个命题输入后再输出,适合标注或明确中间结果;本题去掉它后,推理仍然完整。参见作者论文的第2.5节:辅助块。

给想继续探索的学生、家长与教师

推荐资料:继续玩证明游戏

针对初中低年级,本页采用较小的起点:完整命题P、Q;熟悉的偶数与三角形;少量规则;即时解释失败原因;随时撤销。能通关后,再请学生脱离按钮,用两三句话说明为什么成立。

本页是独立编写的教学练习,并未嵌入上述项目或复用它们的证明内核。推理动作在本地浏览器运行;外部工具和论文链接需要联网。

回到主教材:逻辑推理 · 回到主教材:直接证明 · 返回高级选读入口 · 继续主教材:4.1 关系 →