Download PDFOpen PDF in browser

Formally Proving the Boolean Pythagorean Triples Conjecture

14 pagesPublished: May 4, 2017

Abstract

In 2016, Heule, Kullmann and Marek solved the Boolean Pythagorean Triples problem: is there a binary coloring of the natural numbers such that every Pythagorean triple contains an element of each color? By encoding a finite portion of this problem as a propositional formula and showing its unsatisfiability, they established that such a coloring does not exist. Subsequently, this answer was verified by a correct-by-construction checker extracted from a Coq formalization, which was able to reproduce the original proof. However, none of these works address the question of formally addressing the relationship between the propositional formula that was constructed and the mathematical problem being considered. In this work, we formalize the Boolean Pythagorean Triples problem in Coq. We recursively define a family of propositional formulas, parameterized on a natural number n, and show that unsatisfiability of this formula for any particular n implies that there does not exist a solution to the problem. We then formalize the mathematical argument behind the simplification step in the original proof of unsatisfiability and the logical argument underlying cube-and-conquer, obtaining a verified proof of Heule et al.’s solution.

Keyphrases: Boolean Pythagorean Triples problem, formal proofs, interactive theorem proving

In: Thomas Eiter and David Sands (editors). LPAR-21. 21st International Conference on Logic for Programming, Artificial Intelligence and Reasoning, vol 46, pages 509--522

Links:
BibTeX entry
@inproceedings{LPAR-21:Formally_Proving_Boolean_Pythagorean,
  author    = {Lu\textbackslash{}'is Cruz-Filipe and Peter Schneider-Kamp},
  title     = {Formally Proving the Boolean Pythagorean Triples Conjecture},
  booktitle = {LPAR-21. 21st International Conference on Logic for Programming, Artificial Intelligence and Reasoning},
  editor    = {Thomas Eiter and David Sands},
  series    = {EPiC Series in Computing},
  volume    = {46},
  pages     = {509--522},
  year      = {2017},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {https://easychair.org/publications/paper/xq6J},
  doi       = {10.29007/jvdj}}
Download PDFOpen PDF in browser