Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cube & conquer validation challenges #11

Merged
merged 5 commits into from
Jun 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions ITP/conclusions.tex
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,13 @@
that did not match the (correct) code of Heule and Scheucher.
Our formalization corrects this.

In terms of future work,
we hope to formally verify the result $h(7) = \infty$ due to Horton~\cite{hortonSetsNoEmpty1983},
\subsection*{Future Work}
We hope to formally verify the result $h(7) = \infty$ due to Horton~\cite{hortonSetsNoEmpty1983},
and other results in Erd\H{o}s-Szekeres style problems.
A key challenge for the community
is to improve the connection between verified SAT tools and ITPs.
This presents a significant engineering task
for proofs that are hundreds of terabytes long (as in this result).

We also want to improve the trust story of importing ``cube and conquer''-style results into an ITP.
Importing these kinds of proofs is a significant engineering task
when the proof certificate is hundreds of terabytes in size,
as it was for this result (see \Cref{sec:running_cnf}).
Although we are confident that our results are correct,
the trust story at this connection point has room for improvement.
more work needs to be done to strengthen the trust in this connection point.
21 changes: 17 additions & 4 deletions ITP/encoding.tex
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@
which can be assembled into a $6$-hole $ap'ed'cb'$.

Justifying this formally turned out to be complex,
requring a fair bit of reasoning about point \lstinline|Arc|s
requiring a fair bit of reasoning about point \lstinline|Arc|s
and \lstinline|σCCWPoints|: lists of points winding around a convex polygon.
Luckily, the main argument can be summarized in terms of two facts:
(a) any triangle $abc$ contains an empty triangle $ab'c$; and
Expand Down Expand Up @@ -154,7 +154,8 @@
are both empty shapes in $P$,
then $S$ is an empty shape in $P$.

\subparagraph*{Running the CNF.}
\subsection*{Running the CNF.}
\label{sec:running_cnf}
Having now shown that our main result follows if $\phi_{30}$ is unsatisfiable,
we run a distributed computation to check its unsatisfiability.
We solve the SAT formula~$\phi_{30}$ produced by Lean using the same setup as
Expand All @@ -164,17 +165,29 @@
we partition the problem into 312\,418 subproblems.
Each of these subproblems was
solved using {\tt CaDiCaL} version 1.9.5.
The solver produced an LRAT proof for each execution,
{\tt CaDiCaL} produced an LRAT proof for each execution,
which was validated using the {\tt cake\_lpr} verified checker on-the-fly
in order to avoid writing/storing/reading large files.
The total runtime was 25\,876.5 CPU hours, or roughly 3 CPU years.
The difference in runtime relative to Heule and Scheucher's original run
is purely due to the difference in hardware.
Additionally,
we validated that the subproblems cover the entire search space as Heule and Scheucher did~\cite[Section 7.3]{emptyHexagonNumber}.
we validated that the subproblems cover the entire search space
as Heule and Scheucher did~\cite[Section 7.3]{emptyHexagonNumber}.
This was done by verifying the unsatisfiability
of another formula that took 20 seconds to solve.

The artifact for this paper includes scripts to validate any individual subproblem,
as well as the summary proof that the subproblems cover the search space.
However, the unsatisfiability of $\phi_{30}$ depends on
the unsatisfiability of \textit{all} (hundreds of thousands of) subproblems.
A skeptical reader might wish to examine the proof files for all subproblems,
but we estimated the total proof size to be tens or hundreds of terabytes,
far too much to reasonably store and distribute.
Instead, the skeptical reader must run the entire 3 CPU year computation.
We believe this trust story can be somewhat improved,
but we leave such a challenge to future work.

% file-local attic:

% By using the triangulation lemma repeatedly,
Expand Down
18 changes: 18 additions & 0 deletions ITP/main.bib
Original file line number Diff line number Diff line change
Expand Up @@ -671,3 +671,21 @@ @InProceedings{sbva
IGNOREURN = {urn:nbn:de:0030-drops-184736},
doi = {10.4230/LIPIcs.SAT.2023.11},
}

@InProceedings{cube_and_conquer,
author="Heule, Marijn J. H.
and Kullmann, Oliver
and Wieringa, Siert
and Biere, Armin",
editor="Eder, Kerstin
and Louren{\c{c}}o, Jo{\~a}o
and Shehory, Onn",
title="Cube and Conquer: Guiding CDCL SAT Solvers by Lookaheads",
booktitle="Hardware and Software: Verification and Testing",
year="2012",
publisher="Springer Berlin Heidelberg",
address="Berlin, Heidelberg",
pages="50--65",
abstract="Satisfiability (SAT) is considered as one of the most important core technologies in formal verification and related areas. Even though there is steady progress in improving practical SAT solving, there are limits on scalability of SAT solvers. We address this issue and present a new approach, called cube-and-conquer, targeted at reducing solving time on hard instances. This two-phase approach partitions a problem into many thousands (or millions) of cubes using lookahead techniques. Afterwards, a conflict-driven solver tackles the problem, using the cubes to guide the search. On several hard competition benchmarks, our hybrid approach outperforms both lookahead and conflict-driven solvers. Moreover, because cube-and-conquer is natural to parallelize, it is a competitive alternative for solving SAT problems in parallel.",
isbn="978-3-642-34188-5"
}
2 changes: 1 addition & 1 deletion ITP/triple-orientations.tex
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@
$\left(\mathbb{R}^2\right)^n$.
This is the key idea that will allow us to transition from the finitely-verifiable statement ``\emph{no set of triple orientations over $n$ points satisfies property $\pi_k$}'' to the desired statement ``\emph{no set of $n$ points satisfies property $\pi_k$}.''

\subsection{Properties of orientations}\label{sec:sigma-props}
\subsection*{Properties of orientations}\label{sec:sigma-props}

We now prove,
assuming points are sorted left-to-right (which is justified in~\Cref{sec:symmetry-breaking}),
Expand Down
Loading