这篇帖子告诉幕后故事在我最新的论文中,它通过使用SAT解题器解决了一个20年前的组合数学开放问题。这是关于好的数学问题可以来自任何地方,包括Facebook群组,以及非线性研究可以是什么。通常,当我们看到一个定理、一篇论文或几乎任何人类创造物时,很容易相信,甚至在不知不觉中,创造者很容易做到,他们确切地知道自己在做什么。这篇帖子分享了我最新论文背后的混乱故事,希望表明即使有时你不知道事情是否会在最后一秒解决,事情还是可以解决的。


这一切都始于2019年,当时我埃里克·坦特的课程在上编程语言智利大学。这是一门很棒的课;我之前对编程语言一无所知,只是像海绵一样吸收了内容。所以在学期末,我问埃里克我是否可以在第二年助教,他说可以。此外,他邀请我参加货运财务结算系统(科克安第斯暑期学校)2020,一周的科克定理证明课程。我想学习更多关于定理证明的知识,所以我很高兴地接受了。这门课程在智利夏季,即1月6日至10日,距离我所在的城市不太远。

图像描述
图1: 暑期学校的标志。

那一周我学到了很多,我对定理证明的主要收获是它们很酷,但还没有准备好;即使是写简单的证明也让人觉得很痛苦,而且写可验证的证明的思维过程与做数学时的标准思维方式完全不同,后者在更高的抽象层次上运作。学校让我相信了当前问题的重要性:数学证明相当复杂,充满了小缺口,需要慷慨的读者来填补。大多数情况下,这是完全可以的……除非不是这样,整个论文或结果需要收回!

谁在确保数学文章不包含错误的结果,以及其他人不会在他们引用的错误结果之上构建新的错误结果?没有人。同侪审查可以也会发现一些错误,但我认为,从长远来看,认为这将是一个足够的屏障,可以保护一些小谎言在这里和那里的渗透,这是相当危险的。

作为轶事证据,我一直站在同行评议的两边,而目前的形式作为一个错误捕捉过程非常有限。一方面,在一篇与我硕士论文相关的论文中,我犯了一个没有审稿人发现的错误,我们只是因为一位合著者(感谢Marcelo Arenas。另一方面,在我职业生涯迄今为止审阅过的8篇论文中,我总是有很紧的截止日期要审阅,我不会保证这8篇文章中的任何一篇都没有我错过的错误。在我的辩护中,我想我会注意到任何明显或令人震惊的错误,或与文献相矛盾的陈述。但10个方程序列中的一个代数错误肯定会被忽视。我的观点是,我认为作为数学家,尤其是作为关心数学长远未来的人,我们应该对错误的出现感到恐惧。

自动化定理证明器提供了一种潜在的解决方案,可以通过计算机程序验证证明。该验证程序本身已被另一个验证程序检查并验证为无错误,依此类推。自然,我们无法在无限递归中验证验证程序,因此在管道的某个点上,我们需要一个未验证的块来启动验证链。这个想法是,最后一个未经验证的片段非常小,许多非常聪明的人都仔细地看了看,并点头表示同意。这几乎是我们能得到的最可靠的结果。再一次,使用这些定理证明器可能非常复杂,建议从现在起所有数学证明都应该在定理证明器中附带代码是不现实的。但定理证明者的目标是值得称赞的,而且软件总是可以改进的(而且很可能会改进!)。

举个例子,看看这些169行Coq用来证明(sqrt{2})的不合理性。

但现在关于Coq已经足够了。问题是,我在中国社会科学院的一周在其第二天,即1月7日被严重中断。我收到了一个来自我最喜欢的Facebook群组的通知:“实际上很好的数学问题”。这是一个来自世界各地和不同地区的数学爱好者在数学上发帖和讨论的团体好的数学问题。这几乎是我仍然拥有Facebook帐户的唯一原因。因此,1月7日,我收到了一份通知,并发布了以下帖子。

图像描述
图2: 迪伦·皮佐(Dylan Pizzo)在Facebook上发布的关于“真正好的数学问题”小组的原始帖子的截图。

在继续之前,让我更准确地解释一下这个问题,并提供一些示例。我给这个问题起的第一个名字是“距离-颜色”,因为这是一个着色问题,其中着色限制基于顶点之间的距离。因此,我们可以考虑以下定义:

定义1:给定一个图(G=(V,E)),用(k)颜色表示的距离是一个映射(varphi:V\to\{1,\ldots,k\}),对于所有不同的顶点对,它认为\[\varphi(u)={距离}_G(u,v)>c。\]

也就是说,如果两个不同的顶点接收到相同的颜色\(c\),那么它们之间的距离需要大于\(c~)。

请注意,图着色的标准概念可以改为

定义2:给定一个图(G=(V,E)),用(k)颜色着色是一个映射(varphi:V\to\{1,\ldots,k\}),对于所有不同的顶点对(u,V),它认为\[\varphi(u)={距离}_G(u,v)>1。\]

所以只需将a(1)改为a(c);距离-颜色是一个非常自然的概括!色数的概念可以自然地扩展到距离着色:对于图\(G\),我们将\(\chi_d(G)\)定义为最小颜色数,使得\(G\)允许使用所述颜色进行距离着色。

例如,让我们考虑一个远距离着色对于无限路径\(\mathbb{Z}^1.\)

图像描述
图3: 描绘(1312)*作为\(\mathbb{Z}^1)的距离色,证明\(\chi_d(\mathbb{Z{^1)\leq3.)

它只使用3种颜色,可以定期重复!接收颜色1的顶点彼此之间的距离至少为2,接收颜色3的顶点彼此距离至少为4,接收颜色2的顶点也是如此。该定义得到尊重。读者还可以检查颜色1和2本身是不够的!

对于一个更有趣的示例,我们将考虑无限方格的子图也就是说,一个图,其中顶点是来自无限网格的单元,两个正交相邻的单元之间有一条边。下图显示了\(D_3\)(“钻石”半径3)允许7种颜色的距离颜色。

图像描述
图4: \(\chi_d(d_3)\leq 7.)的证明

现在,通过将中心颜色更改为6,我们可以生成更有效的解决方案,只使用6种颜色,如下所示。

图像描述
图5: \(\chi_d(d_3)\leq 6.\)的证明

现在让我们回到Facebook帖子。问题基本上是无限正方形网格是否可以用有限数量的不同颜色进行距离着色,如果可以,需要多少种颜色。

我在2020年1月的第一周就开始了这项工作。我在方格笔记本的许多页上乱涂乱画,徒劳地试图给它上色。我开始与不同的朋友分享这个问题,在我意识到之前,我就被它迷住了。

我当时的主要想法是“密度”,在这里您可以研究图形中会有多少比例的颜色\(c)。例如,在图5中,颜色(1)的密度是(frac{16}{25}),而在图3中,颜色的密度可以说是(frac{1}{2})。

首先,让我展示密度如何对证明事物有用。首先,让我们证明2种颜色不足以给无限路径(mathbb{Z}^1)着色。实际上,颜色(1)不能覆盖一半以上的顶点,而颜色(2)不能覆盖三分之一以上的顶点。所以它们的最大密度加在一起是(frac{5}{6}<1),因此它们不能着色(mathbb{Z}^1)。这与图3一起证明了\(\chi_d(\mathbb{Z}^1)=3\)。

现在让我们考虑一个更有趣的例子。设(mathbb{Z}^2_infty)是顶点集为(mathbb{Z}^2)的图,它不仅在正交相邻顶点之间有边,而且在对角相邻对之间也有边。形式上,对于\(u,v\in\mathbb{Z}^2 \),如果\(\vert u-v\vert_\infty=1 \),它们是连接的。

图像描述
图6: \(\mathbb{Z}^2_\infty\)的本地视图。

现在,如果我们考虑由(mathbb{Z}^2\infty)的任何子网格诱导的子图,我们只能用颜色(k)对单个顶点进行距离着色,因为子图的其他顶点与(v)的距离最多为(k)。这意味着颜色(k)的密度最多为(frac{1}{(k+1)^2})。因此,即使我们使用颜色\(1,\ldots,\infty\),我们可以着色的图形的总分数最多为:

\[\sum_{k=1}^\infty\frac{1}{(k+1)^2}=\左(\sum_{k=1{^\inffy\frac{1}{k^2}\右)-1=\ frac{\pi^2}{6}-1\约0.644…<1

这意味着\(\mathbb{Z}^2_\infty \)不允许使用有限数量的颜色进行距离着色。它甚至使用了可爱的巴塞尔问题无穷和的结果,太酷了!

我在那年1月发现了这一点,当然下一步自然是尝试对标准无限网格(mathbb{Z}^2)使用与原始Facebook帖子所询问的相同的策略。问题是……这行不通!如果考虑\(mathbb{Z}^2)的\(k+1)乘子网格,可以用颜色\(k)对\(5)不同的顶点进行距离着色(1在中心,4在角),因此最终得到的和大于\(1),这意味着它不会放弃有限着色(请注意,如果无限和收敛于1以上,则意味着它的有限前缀足以超过1)。所以我开始思考,对于(mathbb{Z}^2),可能存在一个有限颜色的解。问题是……我找不到!

更糟糕的是,我没有取得任何有趣的进展,所以在某个时候,我基本上只是顺其自然。此外,值得一提的是,我曾尝试在谷歌上搜索它,看看它以前是否已经解决。到那时,如果能在网上找到一个完整的解决方案,我会非常高兴的。但要满足我对这个问题的数学好奇心要比那个困难得多…

此外,在2020年1月暑期学校开学后不久,一些相当重要的全球事件发生了…

图像描述
图7: 在智利圣地亚哥,一张人们戴着口罩的照片,当时正是流行性感冒。

快进至2021年9月。我在卡内基·梅隆大学注册成为博士生。我的主要想法是研究算法和离散数学阿努帕姆·古普塔我之前在智利离散数学暑期学校见过他。现在是这个故事的关键点。在CMU,作为计算机科学博士生的第一个学期入门课程(IC)其中,不同的教员介绍了他们的研究,其中一位介绍了CMU和匹兹堡生活的不同方面。

Marijn鞋跟就其自动化方法进行了IC演讲勾股三元组问题它包括用红色和蓝色给整数着色,而毕达哥拉斯三元组都不是单色的。例如,如果12和16接收蓝色,那么20必须接收红色,如\(12^2+16^2=20^2)。这是一次很棒的演讲,但也是一次10-15分钟的演讲,针对的是背景和兴趣迥异的学生,所以他不能说任何深奥或技术性的东西。我从谈话中得到的主要信息是:“这位CMU教授一直在应用自动推理技术来解决硬着色问题;很有趣。”

图像描述
图8: 一幅插图(来自Marijn的网站),展示了一种避免单色毕达哥拉斯三元组的双色系。

我对自动推理技术一无所知。所以我给Marijn发了封电子邮件,询问我们是否可以聊一会儿,因为我想知道“他的自动推理技术”可以应用于我愚蠢的脸书帖子着色问题。

Marijn同意聊天,他喜欢这个问题。而且,他愿意和我合作!根据我的个人经验,这在学术界是相当罕见的。教授们喜欢积极主动的学生,但对他们来说,深入研究学生遇到的问题通常是有风险的;教授们通常会在中长期推进研究方向,并且通常比学生们更能理解哪些问题是可以解决的,以及解决这些问题的影响有多大。因此,学生提出的任何随机问题通常都是次优的。但Marijn对这个问题非常感兴趣,他愿意在这个问题上指导我;看看他的技术是否有帮助,他凭直觉判断就是这样。

不久之后,我和艾萨克·格罗夫,当时是一名五年级的博士生。Isaac是一个真正聪明的学生,即使是在像CMU CS博士这样有选择性的背景下,他也是一个光芒四射的学生。我告诉了他们这个问题,他们也很喜欢。如此之多,以至于我们吃完午饭后就直接去了他们的办公室,开始一起工作。我们做了几个简单的观察,我之前已经自己做过了,所以我并没有太激动,然后Isaac不得不离开去开会。如果我没记错的话,第二天,或者最多两天后,我收到了他们的电子邮件,其中包含了问题的部分解决方案。艾萨克找到了一种方法,通过周期性地使用23种颜色来给无限网格着色。据我所知,他们“手动”找到了这个解决方案(也就是说,受密度参数的启发,在计算机上手动尝试)。我完全被吓坏了;艾萨克只花了几个小时就完成了我在一年多的时间里多次尝试过的事情!

之后不久,我和Marijn会面了,他向我解释了如何运行SAT解题器来解决这个问题。有了这些,我们很快就得到了17种颜色的溶液,同一周晚些时候又得到了一种只有15种颜色的解决方案。在理解如何使用计算机来证明15种颜色足以对无限网格进行距离着色之前,首先可以很方便地了解如何使用计算机证明3种颜色足以为无限路径进行距离着色(我们从图3中知道这是可能的)。为了做到这一点,我们可以考虑无限路径的子图,如4个顶点上的路径,并尝试用3种颜色对其进行距离着色。考虑以下尝试1:

图像描述
图9: 使用3种颜色对\(P_4\)进行距离着色。

图9中距离颜色的问题是,我们无法将其扩展到无限路径。右边的下一个顶点必须接收颜色\(1),而下面的顶点将无法接收任何颜色。如图10所示。

图像描述
图10: 图9中所示的距离-颜色(P_4)不能扩展到无限路径。

因此,问题是:如何找到有限路径的距离着色,该距离着色可以扩展到无限路径,并有望以周期性的方式扩展?答案是:环形边其思想是,通过连接有限路径的端点,并将其转换为一个循环,我们将捕获距离-颜色周期性可扩展的特性;从距离色\(C_4)可以得到距离色\。

图像描述
图11: \(C_4\)的距离着色通过展开循环。环形边以深红色虚线显示。

为了证明(15)种颜色足以对无限网格进行距离着色,我们可以以类似的方式进行,通过考虑(mathbb{Z}^2)的(72乘72)子网格环形边,这意味着子网格最左侧列的顶点连接到最右侧列,同样地,顶部和底部行也被连接。

因此,在无限图上建立着色边界的方法如下:

  1. 为了建立上限(意味着对于无限图来说,(k)颜色已经足够了),我们需要一个具有环形边(即,捕捉周期性的边,以保证有限子图的着色将允许我们获得无限图的着色)。2

  2. 为了建立下界(意味着对于无限图来说,(k)颜色是不够的),我们只需要显示一个有限子图,而对于这个有限子图来说;如果你甚至不能给无限图的这个有限的极小部分着色,那么无限图就没有希望了!

无论是为了找到有限子图的着色,还是为了证明目标数量的颜色不可能存在着色,我们都可以使用SAT解算器。针对这个问题最直接的SAT编码非常简单:如果你有一个图(G=(V,E)),并且想决定它是否允许用(k)颜色进行距离着色,那么创建表示顶点的变量(x{V,c})获取颜色(c\in\lbrace 1,\ldots,k\rbrace),并添加以下约束:

  1. 每个顶点必须具有一种颜色:
\[\quad\left(\bigvee_{c\in\lbrace 1,\ldots,k\rbrace}x_{v,c}\right),\quad_text{用于v中的每个顶点}v\]
  1. 距离最多\(c\)的顶点不能共享颜色\(c~):
\[\left(\overline{x{u,c}}\lor\overline{x{v,c}{\right),\quad\text{对于每对顶点}u,v\in\binom{v}{2},\text{这样}d_G(u,v)\leq c

在具有环形边的(72乘以72)子网格上使用此直接编码,并将结果实例传递给本地搜索SAT解算器,我们得到了以下周期解:

图像描述
图12: 用15种颜色对\(mathbb{Z}^2)进行周期着色,表示\(chi_d(mathbb{Z}^2)\leq 15.)

哇,我们取得了很大的进步!使用一些密度参数,不难看出9种颜色是不够的,但10种颜色就足够了吗?也许11岁?

Marijn很快为这个问题提出了一个非常好的递归SAT编码,在努力实现它之后(尽管这个想法很好很简单,但细节很复杂),我们不幸地发现它没有产生任何实际的改进。它是渐进地好,但实际上它比最直接、最朴素的编码更糟糕。常数\(32\)通常比\(\log n\)因子更糟糕!

我开始研究相关的子问题,比如距离-颜色或其他无限图形所需的最小颜色数。我自己也开始得到一些很酷的结果,这让我很高兴。玛丽恩也很兴奋。

几个月后,我们知道15种颜色就足够了,而其中一种至少需要13种颜色,这已经很接近最终答案了!

但是这个术语困扰着我“距离着色”,但我知道(谷歌快速搜索显示),人们正在使用“距离-颜色”指的是其他东西,因此我想要一个新的术语。我通过阅读关于不同颜色问题的调查,开始了一次真正的文学评论(即超越谷歌搜索),看看问题的近邻是什么,并找出相关的名称。在这篇文献综述中,我偶然发现了这一点:

图像描述
图13: 一种奇怪的图形着色的定义看起来很天真。。。
图像描述
图14: 我对图13的反应示意图。

尽管符号不同,但这实际上是同一个问题!哇,人们都知道这件事!所以我用谷歌搜索“包装色数”随后进行了一项调查。令我十分震惊的是(见图14),我已经证明的一系列结果已经为人所知,分布在十几篇论文中(该调查引用了60多篇关于该主题的论文!)。此外,调查还提到,无限方格的填充色数是…打开!已知在13到15之间……20年前,也就是2002年,人们提出了包装着色的想法,以及无限方格的问题!有趣的是,Goddard等人在介绍这些颜色的开创性论文中获得的第一个上限是23,与Isaac Grosof手动获得的数字相同!

我吓坏了。我在一个问题上工作了几个月,却没有意识到这一点,更糟糕的是,我让Marijn在这上面浪费时间! 因此,我给他发了一封电子邮件,要求尽快召开一次快速会议,对此我感到非常紧张。但Marijn的反应令人难以置信:他实际上是高兴而不是沮丧!他很高兴其他人关心这个问题,他也很高兴这个问题的最初核心部分,即确定无限方格的填充色数,仍处于打开状态。不用说,我松了一口气。

所以Marijn和我开始努力改进\(13\leq\chi_\rho(\mathbb{Z}^2)\leq15\)间隙(注意我们的符号已经从\(\chi_d(\cdot)\)改为\(\ch_\rho\(\cdot\)!),几个月后,经过几次优化、讨论和几十次实验,我们终于证明答案不是13。在这一点上,我们写的论文的标题不难猜测:“无限方格的包装色数至少为14”.它在2022年SAT考试中被录取🙂.

图像描述
图15: SAT’2022论文的确认部分。

例如,我们使用的最简单的优化之一是对称性破坏。对称性破缺的概念是,CDCL SAT解算器可以被理解为尝试不同布尔赋值的程序,其方式比简单地迭代\(2^{\#{\rm vars}})可能性更聪明,并且它们通过从尝试的部分赋值中学习东西来做到这一点。如下图所示,这些部分赋值中的许多可以是对称的,这意味着单独研究它们是浪费时间。

图像描述 图像描述
图16: 对称部分赋值的示例。

避免这种浪费时间的方法是打破对称,这意味着通过合并其他限制,实例不再是对称的。如果是钻石子图,我们可以添加以下约束:“最靠近中心的最大颜色的出现必须出现在北-东北辛烷值”,从而在运行时获得因子8。

图像描述
图17: x8对称破缺约束的图示,用于区分主八分位(浅蓝色)。

经过更多的实验、优化和会议,我们已经证明答案至少是14,并且已经采纳了我们所有的优化和想法。为了证明答案实际上是15,也就是说14种颜色是不够的,我们需要将计算优化大约100倍。请注意,一个非常好的优化想法有时会给你2个因子,所以你需要7个这样的想法来提高一个因子100!

但Marijn对我们解决问题充满信心,所以我们继续努力。我们开始对自动工具进行逆向工程,看看它们在这个特定问题上是如何运作的,我们开始从中学习。在这一点上,我每周都会有20个不同的想法;我制作了一些可视化的交互界面,在那里我可以用鼠标点击东西,而不是为每个优化编写代码,从而更快地尝试优化想法。

图像描述
图18: 的屏幕截图交互式编码器是我为这个项目构建的众多小工具之一。

我们离结果越来越近,但仍缺少更多优化。让我在下一段中介绍这个项目最酷的结果之一:

当试图为无限网格和\(D_r \)图(即半径为\(r \)的菱形)寻找填充颜色时,颜色\(1)是最有用的,因为它的密度可以是\(frac{1}{2})(即覆盖图的一半)。例如,在图12中,在\(72乘以72=5184)个顶点中,正好\(2592=\frac{5184}{2}\)接收到颜色\(1)。此时,我们推测在棋盘图案生成的密度(frac{1}{2})是最优的,这意味着您可以用\(k)颜色填充一个图\(Dr\)(强制在中心使用任何颜色\(c\neq1),这称为\(D_{r,k,c}\)实例)如果且仅当,你可以执行棋盘模式的(1)。证明这个猜想的动机很简单:如果是真的,那么通过强制执行\(1\)的棋盘模式,顶点的数量将有效地减少一半(因为着色的\(1\)顶点不需要包含在编码中)。注意,如果问题的运行时间与输入大小成指数关系,那么将输入大小减少2倍是非常重要的;运行时降到平方根!

事实上,我们很快证明了假设棋盘猜想如果是真的,那么这就意味着\(\chi_\rho(\mathbb{Z}^2)=15\),这是我们怀疑的答案。所以我真的很努力地用笔和纸来证明这个猜想,但在这项任务中同样失败了…

经过更多优化后棋盘猜想是错误的,我们的优化技术让我们能够找到最小的反例!

图像描述
图19: 最小的反例棋盘猜想半径为14的菱形,中间强制为6,只有在棋盘图案被打破时,才能用14种颜色填充。在这种情况下,西北边缘的两个颜色1出现在棋盘图案之外,无法修复。

但这并没有阻止我们,我们一直在优化,几个月后,我们终于设法解决了这个问题。我们已经证明14种颜色是不够的!真的很令人兴奋\(\chi_\rho(\mathbb{Z}^2)=15\)!这大约是我第一次发现这个问题的3年后。该问题的历史进展总结如下:

图像描述
图20: 计算进度摘要(\chi_\rho(\mathbb{Z}^2)

2010年,Ekstein等人。证明下限为12他们花了120天的时间进行计算,而我们的技术允许我们在不到10秒的时间内得到相同的下限。这是一个x1000000因素改善!诚然,自2010年以来,硬件已经有了很大改进,但我们远远超出了硬件加速。

然而,缺少了一个关键部分:我们如何确保所有代码、所有优化和所有对称破坏都是正确的?Marijn和我开始致力于生成一个自动化的证明,然后可以由一个独立的验证检查器进行检查。这是一项棘手的工作,而且,我们在过程中发现了代码中的几个错误!幸运的是,我们发现的所有错误都是可以修复的,因此我们最终得到了一个经过充分验证的证据。更准确地说,我们证明的确切定理是:假设上面显示的直接编码是正确的,那么\(\chi_\rho(\mathbb{Z}^2)=15.)这意味着唯一未验证的部分是直接编码的正确性(只对应于26行Python)。

这个问题的解决方案总共花费了4851个CPU小时(我们使用了一台128核的超级计算机!),而验证证明又花费了4336个CPU小时。称重的未压缩校样总数122 TB! 只有 34 TB压缩后。

最后,我们用这个最终结果为TACAS的2023年撰写了一篇论文。标题不难猜:“无限正方形网格的包装色数是15”.我们已经建立了一个arXiv版本!

Donald Knuth,我的计算机科学史上的英雄之一,碰巧认识我的导师Marijn,所以他读了我们TACAS论文的草稿。我的偶像克努特正在读我合著的一篇论文!他给了我们非常仔细的反馈和建议:他没有漏掉一个拼写错误!事实上,我们从会议中得到的评论几乎是Knuth广泛反馈的一部分。在长长的电子邮件的末尾,他写了一篇高级评论:

当然,总的来说,我觉得这篇论文非常有趣和刺激。这些想法被清晰地表达出来,并且动机很强;插图很精彩。我同意第16页的评论,即“拆分编码兼容性”可能是最有可能广泛应用于其他问题的创新。(我喜欢机械优化的“逆向工程”!例如,我就曾这样想出了1/3的“Knuth-Morris-Pratt”算法:Steve Cook发布了一种将小空间堆栈自动机转换为小时间随机访问机器代码的机械方法。)

顺祝商祺,唐

此外,Knuth写信给我们说,他相信棋盘猜想对于奇数半径的钻石可能仍然成立!我太高兴了!这个来自脸书群组的小问题给了我很多快乐!有时会有一些挫折,但大多是喜悦。Martin等人在2017年的论文中证明了答案在13到15之间,其中引用了以下内容:

“第一作者在伯纳德的一次演讲中听说了这个问题利迪基在第八届斯洛文尼亚图论会议上(布莱德2011)。While期间这个问题可能并不特别重要,很少有人能解决这个问题怀疑它很容易上瘾,并进一步提供了一种交通工具思考不同的算法技术。其中一个稀奇之处是问题是,我们对其缺乏理论洞察力。”

这个问题肯定也让我上瘾了!

为了结束这篇文章,我将一直回到Coq,定理证明器。在考克暑期学校期间,我了解到了验证证据的重要性,多年后,这对我产生了重大的研究影响!我现在开始使用精益(另一个定理证明器)来验证我对一些无关数学问题的证明。此外,与Marijn合作过的CMU校友Yong Kiam Tan在蛋糕ML(还有另一个定理证明器),这意味着现在我们的证明的每一位都已经被验证了!


  1. 这篇文章中的数字交替出现在:(i)a网格表示法(如图3、4和5所示),其中顶点由正方形表示,它们之间的边是隐式的(因为它们是由正方形之间的正交邻接定义的),以及(ii)一种图形表示法,其中顶点表示为圆,顶点之间的边显式绘制。 

  2. 很多人都问过我同样的问题:如果你想找到一种颜色非周期的? 当然,使用环形边和SAT解算器,您不会发现这一点。事实上,这可能是因为决定一组有限的颜色\(S\)(不一定是\(\lbrace 1,\ldots,k\rbrace \))是否可以使颜色与无限正方形网格保持距离是不可决定的!到目前为止,我只知道如果一个网格在一个方向上是无限的,但在另一个方向是有限的,那么任何一组可以距离着色的颜色都可以周期性地这样做,因此这个问题是可以确定的。如果你有任何数学想法来证明无限方格的可判定性或不可判定性,请与我联系

  3. 在更一般的意义上,这只是De Bruijn–Erdős定理,也适用于距离颜色。