Natural number game 通关记录 | 教程

0x00 前言

Natural number game是最近发现的一款游戏。

游戏规则:用已知的内容去推导与证明未知的各种定理。

本游戏最好玩的地方在于:你需要从头开始证明各种各样的数学体系。

这意味着,刚开始的时候,你完全不知道什么加法交换律、结合律,你甚至不知道 \(a + 0 = a\),你只知道 \(a = a\)

0x01 教程关卡 | Tutorial world

这一部分可以直接看这里的思路与答案。因为是起始关,而且游戏内说明是英文,并且很长。

Level 1

  • 内容

求证:\(x \cdot y + z = x \cdot y + z\)

  • 思路

如果你的等式形如 \(x = x\) 的形式,那么就完成了证明。

在框框内输入 refl, 即可完成证明。

末尾逗号不能忘记。

  • 代码
refl,

Level 2

  • 内容

给定 \(y = x + 7\)

求证 \(2 \cdot y = 2 \cdot (x + 7)\)

  • 思路

如果你已经证明(之前的关卡的结论;刚刚证明的内容)了一个定理 \(A\)

那么你就可以使用 \(\operatorname{rw}(A)\) 语句。

含义:将 A 带进去等式里。

注意有点不智能,如果要代入多次,也要写多次。

例如本题已经告诉你了 \(h\)。那么直接将 \(h\) 带进去即可。

  • 代码
rw h,
refl,

Level 3

  • 内容

给定 \(\operatorname{succ}(a) = b\)

求证 \(\operatorname{succ}(\operatorname{succ}(a)) = \operatorname{succ}(b)\)

  • 思路

\(\text{Level 2}\) 一模一样。

这一关是告诉你,\(\operatorname{succ}(x)\) 是指一个类似函数的东西。

  • 代码
rw h,
refl,

Level 4

  • 内容

求证 \(a + \operatorname{succ}(0) = \operatorname{succ}(a)\)

  • 思路

即将进入加法的世界!这一关是热身。

你又学会了两个操作:

  1. \(\operatorname{add\_zero}(x)\)\(x + 0 = x\)
  2. \(\operatorname{add\_succ}(x, y)\)\(x + \operatorname{succ}(y) = \operatorname{succ}(x + y)\)

首先,你 \(\operatorname{add\_succ}\),将求证式变成 \(\operatorname{succ}(a + 0) = \operatorname(a)\)

然后,你 \(\operatorname{add\_zero}\),将求证式变成 \(\operatorname(a) = \operatorname(a)\)

证毕。

  • 代码
rw add_succ,
rw add_zero,
refl,

0x02 加法世界 | Addition world

Level 1

  • 内容

求证 \(0 + n = n\)

  • 思路

你又学会了一个操作:\(\text{induction n with x A}\)

表示将 \(n\)\(0\) 表示,证明了这个后,称其为定理 \(A\),其中的 \(n\) 会变成 \(x\)

但是原式的 \(n\) 会随之变成 \(\operatorname{succ}(x)\)

第一次使用这个语句,我说得详细一些:

首先定义一下 \(n\) 的操作。现在需要证明 \(0 + 0 = 0\)

很简单,\(\operatorname{add\_zero}\) 然后证毕。

接下来只需证 \(0 + \operatorname{succ}(x) = \operatorname{succ}(x)\)

也非常简单,\(\operatorname{add\_succ}\) 即可。再代入 \(A\) 证毕。

  • 代码
induction n with x A,
rw add_zero,
refl,
rw add_succ,
rw A,
refl,

Level 2

  • 内容

证明 \((a + b) + c = a + (b + c)\)

  • 思路

\(c\) 换掉。只需证明 \(a + b + 0 = a + (b + 0)\)。两次 \(\operatorname{add\_zero}\) 证毕。

然后多进行几次 \(\operatorname{add\_succ}\),然后代入 \(A\),证毕。自己想。

  • 代码
induction c with x A,
rw add_zero,
rw add_zero,
refl,
rw add_succ,
rw add_succ,
rw add_succ,
rw A,
refl,

注意:你完成一关后,标题的定理你是可以在之后的关卡使用的。

例如本关就是 \(\operatorname{add\_assoc}\)

Level 3

  • 内容

证明 \(\operatorname{succ}(a) + b = \operatorname{succ}(a + b)\)

  • 思路

\(b\) 换掉。和刚才一样,两次 \(\operatorname{add\_zero}\) 证毕。

然后再使用两次 \(\operatorname{add\_succ}\) 即可。

  • 代码
induction b with x A,
rw add_zero,
rw add_zero,
refl,
rw add_succ,
rw add_succ,
rw A,
refl,

Level 4

  • 内容

证明 \(a + b = b + a\)

  • 思路

换掉 \(a\)。证明 \(a + 0 = 0 + a\)

一次 \(add\_zero\) 与一次 \(zero\_add\) 证毕。

然后你要证明 \(\operatorname{succ}(x) + b = b + \operatorname{succ}(x)\)

同样的,一次 \(\operatorname{add\_succ}\) 与一次 \(\operatorname{succ\_add}\)。代回 \(A\) 证毕。

  • 代码
induction a with x A,
rw add_zero,
rw zero_add,
refl,
rw add_succ,
rw succ_add,
rw A,
refl,

Level 5

  • 内容

你又学会了 \(\operatorname{one\_eq\_succ\_zero}()\) 表示 \(\operatorname{succ}(0) = 1\)

证明 \(\operatorname{succ}(n) = n + 1\)

  • 思路

换掉 \(n\)。用刚刚学的那个东西证掉。

然后 \(\operatorname{succ\_add}\) 再代回 \(A\),证毕。

  • 代码
induction n with x A,
rw zero_add,
rw one_eq_succ_zero,
refl,
rw succ_add,
rw A,
refl,

Level 6

  • 内容

证明 \(a + b + c = a + c + b\)

  • 思路

两次 \(\operatorname{add\_assoc}\) 后换掉 \(a\)。这个是非常好证明的。

然后随便 \(\operatorname{succ\_add}\) 一下。代回去,证毕。

  • 代码
rw add_assoc,
rw add_assoc,
induction a with x A,
rw zero_add,
rw zero_add,
rw add_comm,
refl,
rw succ_add,
rw succ_add,
rw A,
refl,

现在你已经结束了加法世界!你学会了一个超级工具:

\(\operatorname{simp}()\) 可以直接帮你化简有关加法的部分!

0x03 乘法世界 | Multiplication world

Level 1

  • 内容

你学会了两个有关乘法的操作:

  1. \(\operatorname{mul\_zero}(x)\)\(x \cdot 0 = 0\)
  2. \(\operatorname{mul\_succ}(a, b)\)\(a \cdot \operatorname{succ}(b) = a \cdot b + a\)

求证 \(0 \times m = 0\)

  • 思路

换掉 \(m\)。证明 \(0 \times 0 = 0\) 非常容易。

然后 \(\operatorname{mul\_succ}\) 一下。代回 \(A\)。然后直接使用高级的 \(\operatorname{simp}()\) 就搞定了。

  • 代码
induction m with x A,
rw mul_zero,
refl,
rw mul_succ,
rw A,
simp,

Level 2

又咕掉了。

posted @ 2023-01-17 12:41  liangbowen  阅读(112)  评论(0)    收藏  举报