(终于到了这一步了,来到第六章,修复UG0的bug的同时,也讨论一些扩展的事情)
第五章说过,UG0存在缺陷,那么此刻就引入真正的UG。

在游戏中,这个“不在前提中自由出现”表现为:如果你并不在一个假设环境中,那么UG无限制;如果你在一个假设环境中,那么假设中涉及到的自由变量就会进入UG的禁止目录中。

6.1-6.3(对应5.21-5.23)这三个问题当时在第五章证明的时候,都是在最后才用到的UG0,而此时并不在假设环境中,因此当时的UG0可以直接替换为UG。

6.4 将结论从“属于”变成了“不属于”,因为内层是存在,所以属于和不属于都是成立的。虽然UG0变成了UG,但是证明思路不变。首先最外层的任意可以通过UG引入,所以直接证明内层即可。内层的量词是存在,所以等价变化成否定形式再用归谬律。最后是如何寻找矛盾,由于x1是自由变量而x2是约束变量。对于任意的x2,自然不存在固定的x1,因此取x2=w和x2=0就可以找到矛盾了。
6.5 调换6.3的量词顺序后命题为假,所以加个并非。思路还是一样,外层是存在所以先做否定变成任意。直接的任意可以用UG引入,因此考虑内部“任意x1,x1属于x2”。与6.4一致,自由变量无法覆盖任意取值,取两个不同的常量代入即可找到矛盾。
一个公理系统最完美的形态,当然就是包含的公理和规则在能够证明所有目标命题的同时(完备性),还让规则的数量最小化(纯粹性),也就是恰好有足够的规则和公理能够完成目标。
那么,考虑最开始的推理规则,冗余规则(即可通关的关卡中可以添加一条新链而仍然可以通关)真的是必要的吗。
因此,以下三个命题,游戏内强制不能使用冗余规则证明。

6.6 是曾经的1.4。既然没有了冗余规则,那就意味着只剩下了子链拆分和子链消除规则。这两个规则只会减少链的整体长度不会增加,因此需要在最开始的平凡通关公理中,构造出所有需要留下的链。当然,肯定不是直接连接,这会带来一大堆的额外连接无法消除。比如6.6直接连接第2和3条链,多出来的3--4再也无法处理了。而这种需要构造出来额外链但同时又不能引入新连接的方法,我们似乎见过呢?
支链定式,只不过这次的“支链”不再是模型上的支链,而可以是任何一个“想被留下的链”。此时只需要把这个链正着写一遍反着写一遍,就可以得到一个完美的支链构造。不过需要注意的是,由于前面说过的链拆分的特性,因此作为“主链”的部分,一定是0到w的那一条(就跟数碳链编号一样)。因此,6.6的可以构造如下的链作为起始:0--1--2--3--2--6--2--6--5--4--5--6--7--w。
大致的分拆如下:

6.7 是曾经的2.4,加入了锁钥机制。其实思路没变,只需要考虑为了加锁需要需要保留哪些链,然后逐个拼凑即可。首先,主链肯定是0--1--2--3--w。但是为了加锁,我们还需要保留以下链:
因此,把这些都凑到一起,就能得到一个可行的初始链:0--1--2--3--2--1--0--1--2--4--5--4--2--1--0--1--2--4--5--4--2--1--0--1--2--3--w。具体的构造过程和NFA转RE一样,纯粹的有多少支链重复几个来回,按照按规则写即可。后面的过程就没有难度了,简单的加锁规则。

6.8 其实我第一反应是不可证,因为拆分规则和消除规则无法构造出非连通图。但后来发现,整个推理体系里可不止这一组规则,像锁钥机制里面的空锁规则,就是可以凭空加边的,就有可能改变连通性。
考虑到原命题是模型正确的,因此加了锁使其变成连通图之后,也应该是可通关的。所以就需要给那把锁加一把钥匙。我选择的是给0--1加一把锁,然后在0处加一次性钥匙。这里不能加永久钥匙,因为在可通关的前提下,没有任何一个规则可以添加非一次性钥匙。
之后就是归谬律了,假设不可解,所以可以分两步添加锁和钥匙(注意前面你说过的顺序问题)。对于可解情况的构造,考虑为了上一次性锁需要保留的边。首先主链肯定是0--w,支链是0--1--2。但是为了上锁,必须有一个0到0的边,而且还不能引入其他边。自环边肯定是不行的,消不下去,那么看到0可能连接的边,主链一定是通畅的且存在的可消除链,那么把主链倒过来重写一遍构造0--w--0作为上锁用的链不就可以了吗?当然,这个结尾是0,所以为了满足平方可解公理的要求,补上一个0--w。因此,可以构造0--1--2--1--0--w--0--w,剩下的事情就是慢慢应用规则即可。
这个比较好玩,把属于规则删除了,也就是看起来的“属于”和规则“属于”不是一个概念了。即使6就是{6}里面的唯一元素,也不能说6“属于”{6}了。不过,有了后面的推理规则,属于规则其实很好被绕过。

既然不能直接用属于规则了,但是不一样的数究竟不一样。一些不可以满足的性质永远不能满足,能满足的换个别的数一定不可满足,只需要再构造这样一个确定性的场景即可。那么游戏里最确定性的东西,就是可解性了。只要都是常量,那总归是存在一个解的,如果数不对自然是不可通关的。至于多元素集合,我们第四章就在用的手法现在依旧可以继续,枚举法上吧!
6.9 6不属于{2,w}后面的集合需要两次枚举。第一次构造{0--6, 2--w},第二次构造{1--1, 0--6}。
6.10 2属于{0, 1, 2}变成了属于命题,由于属于没有直接的运算规则无法直接正面推理,所以需要绕路。不过看到这个属于的形态,某个数属于某个包含它的集合,我们似乎在之前的错误尝试里遇到过很多次,那就是使用桥边规则时,一旦沿着某个未知数的边界做了拆分,把未知数同时带入了不可解与可解的部分,应用规则之后就会发生这种“永真”的情况。这一次,只是把未知数换成了具体的2,正好利用这个规则。
桥边规则的右侧包含了{0, w}和不可解部分点集的集合(这里没有锁钥,所以锁部分自然是空集)。对比原命题可以发现1和2是必须的。所以自然最简构造形态就是{0--1, 2--w}作为不可解,{0--1, 1--2, 2--w}作为可解。最后,再把w排除掉就完成了。
这里就是解谜游戏也是这种系统的经典挑战目标,最优化方案。

6.11 来自于4.12,限定5步之内。实际上由于前提的存在,实际可用的只剩4步。本题肯定是要用归谬律的,那么假设和矛盾各自占去一步,只剩下2步空间。所以如果真的可以5步证明,不会有太多可操作的空间。像桥边规则那种大型推理规则,是不可能用上的了。
考虑当时证明4.12的时候,有一个提示时,如果证明了4.10的x(1)属于{x(1)},那么被证明本题会非常简单。其实就是假设之后替换,然后根据4.10得到x1不属于{x(1)},从而引发矛盾。然而,本题是x(1)属于{x(2)},无法直接替换......吗?
替换的要求是单元素集合,而被替换的目标则并没有限制(重点强调)。而前提的x(1)属于{x(2)}是单元素集合,可以用于替换。那么替换的目标......这里只有一个可以用于替换的结论,那就是它自己。替换之后可以得到x(1)属于{x(1)},剩下的事情就顺理成章了。
实际上在模型层面,如果不含有未知数,那么一切都是确定的,一个关卡只有可能是可过关或者不可过关。只要能列举出所有可能的状态,如果含有到达w的情况,就可以说明可过关。当然,这是在模型层面上的,和公理上的可证明有区别,像3.10那种就是模型正确而系统不可证明的。那么,为了维护模型与系统之间的可靠性,可以强制定义一个“可靠性公理”,即规定均为常量时模型成立则系统成立。

当然啦,这个公理实在是有一些控制台的意味,因为用了这个的话,1-3章就没有存在的价值了......至于如何实现模型意义上的可解判定,游戏里提供了一种方法,本质上相当于状态空间的BFS,这里就不解释了。


6.12 其实有了这个公理,常量形态的任何关卡都是一招秒了......
在本系统中,钥匙的流动并不是完全开放的。我们有大量的规则去“添加”钥匙,却很难有手段去“消除”钥匙。如果需要证明需要消除的命题,往往只能通过归谬律绕一个很大的圈子。因此,考虑消除钥匙的规则。最简单的情况,如果某个顶点根本不在链的顶点集合中,那么有没有这个顶点那里的那些钥匙就无关紧要了,这些钥匙可以直接删除。最后一个推理规则,我称为“钥匙消除规则”。


6.13 推理规则的直接应用,起手一个归谬律假设。我们知道只有0-L(0)-w一定不可以过关,而x(1)如果不能提供这把钥匙,则原命题是不可过关的,与前提产生了矛盾。为了构造这个矛盾,需要推导出x(1)不属于{0,w}。不属于{0}是假设不需要推导,则额外说明x不属于{w}即可。排除掉这个特例,就可以构造出矛盾了。
6.14 这个钥匙所在的x(1)和链中的x(1)耦合在一起了,是再也不可能把它们分开的。所以,不要想钥匙消除了,老老实实加钥匙吧。为了加钥匙需要一个x(1)-w边(我们在第三章说过,如果本身关卡不可过关,那么尾巴上为了加钥匙而额外添加的这些与w直接相连的边,都是可以被反证法消除的,所以放心添加),因此可以构造{x(1)--x(1), x(1)--w}并证明不可解。在证明之前,处理一个特例x(1)==0,这个很简单。然后就可以证明不可解了,这个证明在桥边规则中用了很多次了。最后,再用空钥匙规则加一下边,然后归谬律扔掉x(1)--w就完工了。

向所有到达这里的人献上掌声
完结!
撒爆炸原理!
首先感谢大家能追读到这里,本来写(1)的时候(当时我刚刚进入第5章,第4章的最后3题也还没有做),只是想记录一下解题思路,毕竟很少找到这么对胃口的游戏,也没有想到能写到最后。但是(2)和(3)突然小小地火了一下,也被群友们发现了,有了人看自然就这么坚持了下来。
当时找到这个游戏,还是我两个星期前游戏荒(我的steam推荐列表已经被我的各式各样的愿望单类型训练得不知道给我推荐什么了,导致于每次我只能是主动看到宣传或者随机闲逛看到了才能找到合适的)想找点合适的游戏。然后去测试了steam的交互时游戏推荐,把“小众”属性拉到最大,发现了这个游戏。当时正好有折扣,直接就下单了。做了一章发现这游戏真的合心意,就这么玩下来了。
感谢游戏作者@真强悍设计出来这个漂亮的游戏能让我沉浸式做题这两个星期,也同样感谢@锟斤拷锟斤拷锟斤拷锟每一次发新的章节就在评论区讨论,也是我坚持下来的动力。再次感谢大家的追更,那就......等下一个再见了!
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删