<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>SAT Modulo Symmetries: A Survey</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stefan Szeider</string-name>
          <email>sz@ac.tuwien.ac.at</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>10th International Workshop on Satisfiability Checking and Symbolic Computation</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Algorithms and Complexity Group, TU Wien</institution>
          ,
          <addr-line>Vienna</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2025</year>
      </pub-date>
      <abstract>
        <p>The generation of combinatorial objects with a given property is a fundamental task in discrete mathematics and computer science. The combinatorial explosion of candidate objects renders simple generate-and-test approaches infeasible. SAT-based synthesis methods ofer an alternative, but they require efective symmetry breaking to prevent the solver from exploring isomorphic parts of the search space. This paper surveys SAT Modulo Symmetries (SMS), a framework that integrates dynamic symmetry breaking directly into a Conflict-Driven Clause Learning (CDCL) SAT solver. The approach relies on a propagator that checks for the canonicity of partially defined objects during the search. If a partial assignment cannot be extended to a canonical object, the propagator provides a learned clause to the solver, pruning the corresponding part of the search tree. We outline the core components of the SMS framework and review its application to several open problems in areas such as extremal graph theory, Ramsey theory, matroid theory, and quantum foundations, where it has been used to obtain new mathematical results.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;SAT solving</kwd>
        <kwd>dynamic symmetry breaking</kwd>
        <kwd>graph generation</kwd>
        <kwd>isomorph-free generation</kwd>
        <kwd>extremal combinatorics</kwd>
        <kwd>computational mathematics</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>same structure, difering only in how vertices are labeled. A graph  is considered canonical if it is
selected as the unique representative of its isomorphism class; for instance, if its adjacency matrix is
lexicographically minimal among all labelings. For  = 11 the number of non-isomorphic graphs is
approximately 1.02 × 10 9,2 compared to 3.6 × 10 16 labeled graphs—a reduction by seven orders of
magnitude. However, this is still a very large number. The standard way to answer the above question
about the smallest triangle-free graph that is non-3-colorable would be to enumerate all canonical
graphs with  ≤ 11 vertices and check for each whether it is triangle-free and non-3-colorable. This
approach is limited to  where it is still feasible to enumerate.</p>
      <p>
        An alternative that avoids enumeration is to formulate the problem as a synthesis task using
propositional satisfiability (SAT) solvers. Here, one defines propositional variables to represent the components
of the object (e.g., , stating whether the edge between vertices  and  exists) and encodes the
desired property as a propositional formula. A satisfying assignment to the formula corresponds to an
object with the property. Modern SAT solvers based on Conflict-Driven Clause Learning (CDCL) can
explore vast search spaces [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. However, without a mechanism to handle symmetries, a SAT solver will
redundantly explore diferent labelings of the same underlying structure.
      </p>
      <p>
        Static symmetry breaking, where canonicity constraints are added to the initial propositional formula,
provides a partial solution. However, a polynomial-size encoding for full canonicity is not known,
so these approaches must rely on incomplete symmetry breaking, which may still generate multiple
isomorphic copies [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        This paper surveys SAT Modulo Symmetries (SMS), a framework for isomorph-free generation that
implements dynamic and complete symmetry breaking within a CDCL SAT solver. It avoids the
limitations of static methods by interacting with the solver during its search, pruning branches that are
guaranteed not to lead to canonical solutions. SMS was originally introduced at CP 2021 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. A more
recent journal paper [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] provides a refined technical exposition, details and updates.
      </p>
      <p>We describe the SMS framework and review its application to a range of problems in combinatorics
and related fields.</p>
    </sec>
    <sec id="sec-2">
      <title>2. The SAT Modulo Symmetries Framework</title>
      <p>The central idea of SMS is to augment a CDCL SAT solver with a custom propagator that performs
canonicity tests on-the-fly.</p>
      <sec id="sec-2-1">
        <title>2.1. System Architecture</title>
        <p>The SMS architecture consists of two main components: (1) a standard CDCL SAT solver that operates
on a formula encoding the desired property of the combinatorial object, and (2) symmetry-breaking
propagator MinCheck, or canonicity tester, that communicates with the solver through a callback-based
interface.</p>
        <p>During its search, the SAT solver makes decisions, assigning truth values to variables. These
assignments correspond to a partially constructed object. At certain points, the solver queries the propagator.
The propagator analyzes the current partially defined object for canonicity. If it determines that the
partially defined object cannot be extended to any canonical solution, it learns a blocking clause. This
clause is passed back to the SAT solver, which uses it to backtrack and prune that entire region of the
search space.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Partially Defined Graphs and Canonicity</title>
        <p>A key concept in SMS is the partially defined graph. At any point during the solver’s execution, the
set of edge variables is partitioned into those assigned true, those assigned false, and those that are
unassigned. This corresponds to a graph  where the edge set is partitioned into a set () of defined
CDCL SAT</p>
        <p>solver
partially defined learns a clause if  is not</p>
        <p>graph  IPASIR-UP certified canonical
graph property
in CNF
result
edges, a set  () of undefined edges, and the remaining defined non-edges. Such a graph  represents
the set  () of all fully defined graphs that can be obtained by assigning the variables corresponding
to edges in  (). In the adjacency matrix representation shown in Figure 3, entries are 1 for edges, 0
for non-edges, and ⋆ for undefined edges.</p>
        <p>1
5</p>
        <p>2
4
3</p>
        <p>A partially defined graph 1 is a refinement of 2 (written 1 ⊒ 2) if more edges are defined in 1,
meaning  (1) ⊆  ( 2).</p>
        <p>The goal is to prune the search as soon as the current partially defined graph  is provably
noncanonical. Ideally, one would terminate a search branch if for every possible extension  ∈  (), there
exists a permutation  such that () is lexicographically smaller than . (Here, lexicographic order
compares adjacency matrices row-major, reading the full symmetric matrix including the diagonal.)
However, checking this property is computationally dificult, as it involves quantifiers over exponentially
large sets of graphs and permutations.</p>
        <p>SMS employs a more tractable relaxation of this condition. It searches for a single permutation 
that acts as a certificate of non-canonicity (or nc-certificate) for the entire set  (). That is, it checks if:
There exists a permutation  such that for all extensions  ∈  (), the adjacency matrix
of () is lexicographically smaller than the adjacency matrix of .</p>
        <p>This condition, with its swapped quantifiers, is suficient to prove that no extension of  can be
canonical. While this check is a relaxation, it becomes equivalent to the full canonicity test when the
graph is fully defined (i.e.,  () = ∅). Thus, the method is sound (it never prunes canonical solutions)
and complete (it finds all canonical solutions).</p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Finding a Certifying Permutation</title>
        <p>We now describe how SMS searches for an nc-certificate  by exploring a refined space of permutations
using ordered partitions. The heart of SMS is the canonicity tester MinCheck , which searches for an
nc-certificate  . This search is structured using ordered partitions of the vertex set  = {1, . . . , }. An
ordered partition  = [1, . . . , ] is a sequence of disjoint vertex sets whose union is  . It represents
the set of all permutations  where for any  ∈   and  ∈  with  &lt; , it holds that () &lt; ().</p>
        <p>The algorithm proceeds recursively:
1. It starts with the trivial partition [{1, . . . , }], which represents all ! permutations.
2. It refines the partition by making decisions. For instance, if the current partition is
[{1, 2, 3}, {4, 5}] and we decide to map vertex 2 to position 1, we obtain the refined partition
[{2}, {1, 3}, {4, 5}].
3. After each decision, it propagates constraints derived from the structure of the partially defined
graph to further refine the other sets in the partition, reducing the set of candidate permutations.
This structured search continues until an nc-certificate is found or the search space of permutations is
exhausted for the current branch. In the worst case, the search is exponential, but due to the propagation,
it often runs quickly.</p>
        <p>If an nc-certificate  is found for a partially defined graph , the algorithm identifies a minimal
non-canonical subgraph ′ with  ⊒ ′, called an obstruction. From this obstruction, a blocking clause
is generated. For instance, the clause</p>
        <p>⋁︁
∈(′)
¬, ∨</p>
        <p>⋁︁
∈/(′)∪(′)
,
is added to the solver. This clause blocks ′ and all its extensions, efectively pruning the search.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Extensions</title>
      <p>The core SMS framework described in the previous section has been extended in several directions to
enhance its capabilities and broaden its applicability.</p>
      <sec id="sec-3-1">
        <title>3.1. Specialized Propagators</title>
        <p>The SMS framework can be extended with domain-specific propagators that encode graph-theoretic
lemmas directly into the search process, building on the core MinCheck propagator (Section 2). These
specialized propagators augment the canonicity tester with additional constraints derived from structural
properties of the target objects. By pruning branches based on domain knowledge, they can reduce the
search space beyond what pure symmetry breaking achieves.</p>
        <p>
          This approach was used to partially verify the 3-Decomposition Conjecture—that every connected
cubic graph can be decomposed into a spanning tree, a collection of cycles, and a matching. Using
SMS with a specialized propagator encoding structural properties of cubic graphs, all graphs up to 28
vertices were verified, extending the previously verified bound from 20 vertices [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Handling coNP Properties with Co-Certificate Learning</title>
        <p>
          Many mathematical properties, such as non-3-colorability, are coNP-complete and dificult to encode
directly with SAT clauses. To address this class of problems, SMS was extended with Co-Certificate
Learning (CCL) [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. The technique applies to alternating search problems, where the goal is to find a
combinatorial object satisfying two graph properties: property  (typically an NP property) and the
negation of property  (where  is an NP property, making its negation a coNP property). Our example
from above, finding the smallest triangle-free graph that is non-3-colorable is of that type: property 
is triangle-freeness (even in  ) and property  is 3-colorability (whose negation, non-3-colorability, is
the desired coNP property).
        </p>
        <p>The CCL framework uses a dual-solver architecture (Figure 4), complementing SMS’s symmetry
pruning. SAT solver 1 generates a candidate graph satisfying a property  (e.g., triangle-free). This
candidate is passed to SAT solver 2, which tests whether the graph satisfies a property  (e.g.,
3colorability). If SAT solver 2 reports unsatisfiability (the graph does not satisfy ), then the candidate
satisfies both  and ¬, and a solution is found. If SAT solver 2 reports satisfiability (the graph
satisfies ), it returns a co-certificate—a satisfying assignment that witnesses property . For
3colorability, a co-certificate is a valid 3-coloring.</p>
        <p>MinCheck
CDCL SAT
solver 1
blocking clause
candidate graph
graph property 
in CNF
graph property 
in CNF
CDCL SAT
solver 2
result</p>
        <p>From this co-certificate, a blocking clause is constructed and learned by SAT solver 1. For a
3coloring , the clause requires that any graph considered in subsequent search must contain at least
one edge between vertices that were assigned the same color by :</p>
        <p>⋁︁
&lt;, ()=()
,
This clause eliminates all graphs that satisfy the property  via the same coloring , and SAT solver 1
resumes its search for a graph satisfying  but not .</p>
        <p>
          A key observation is that a single co-certificate can significantly reduce the search space. For
trianglefree graphs on 14 vertices, while tools like Nauty must check over 467 million canonical graphs, SMS
with CCL visits only 85,668 candidates by learning just 9,407 3-colorings from SAT solver 2. On average,
each 3-coloring eliminates approximately 50,000 canonical graphs [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>
          A further refinement, Q-SMS, unifies this dual-solver architecture by formulating the entire problem
as a Quantified Boolean Formula (QBF) and using a circuit-based QBF solver [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Proofs</title>
        <p>
          The SMS framework can produce independently verifiable proofs that certify both the correctness and
completeness of its results [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. The verification architecture is separated into two components that
correspond to the two main parts of the system: the SAT solver’s logical reasoning and the dynamic
symmetry breaking.
        </p>
        <p>For the symmetry-breaking component, SMS outputs an nc-certificate (a permutation  ) for each
learned symmetry-breaking clause. An independent checker can verify in polynomial time that this
permutation indeed witnesses the non-canonicity of the pruned partial graph. This ensures that no
canonical solution was incorrectly discarded.</p>
        <p>
          For the SAT reasoning component, the framework can generate standard DRAT (Deletion Resolution
Asymmetric Tautology) proofs [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. After an initial run that generates all necessary symmetry-breaking
clauses, these clauses are added to the problem encoding. A second run with a proof-producing SAT
solver outputs a DRAT proof, which can be checked by existing proof verification tools. This certifies
the correctness of unsatisfiability results. Implementation details for proof generation are provided in
Section 5.
        </p>
        <p>To certify the completeness of an enumeration, the framework adds blocking clauses to exclude
all found solutions and verifies the unsatisfiability of the resulting formula. The DRAT proof for this
extended formula certifies that no additional non-isomorphic solutions exist. Individual solutions can be
certified as canonical by encoding the canonicity test as a CNF formula; a DRAT proof of unsatisfiability
for this formula confirms that the solution is lexicographically minimal among all isomorphic copies.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Applications</title>
      <p>The SMS framework has been applied to computational problems across several areas of discrete
mathematics, yielding new results and confirming existing conjectures for problem sizes previously
beyond the reach of prior methods.</p>
      <sec id="sec-4-1">
        <title>4.1. Extremal Graph Theory</title>
        <p>Extremal graph theory seeks graphs that maximize or minimize a parameter subject to given constraints.
One such problem concerns diameter-2-critical graphs. A graph has diameter  if the longest shortest
paths between any two vertices have length . A graph is diameter--critical if its diameter is , but
deleting any edge increases the diameter. The Simon-Murty Conjecture (1979) states that a
diameter-2critical graph on  vertices has at most ⌊2/4⌋ edges.</p>
        <p>
          Prior computational searches were limited to graphs with at most 11 vertices. Using a direct SAT
encoding of the diameter-2-critical property, SMS enumerated all such graphs for larger sizes. For
 = 12, it found all 40,866 graphs in under a minute, and for  = 13, it enumerated all 688,120 graphs
in approximately 20 minutes. Static symmetry breaking methods did not terminate for  ≥ 12 . By
incorporating known degree constraints from the literature to partition the search space, the conjecture
was further verified for all  ≤ 19 [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          Beyond diameter-2-critical graphs, we studied extremal problems in planar graphs via planarity
encodings. The planar Turán number ex (, ) is the maximum number of edges in an -vertex
planar graph containing no subgraph isomorphic to . Computing these numbers requires generating
planar graphs with specified properties. We compared three planarity encodings: a lazy
Kuratowskibased propagator that detects forbidden Kuratowski subdivisions (topological 5 or 3,3) using the
lazy propagator approach introduced in Section 3.1, an eager encoding using Schnyder’s planarity
criterion [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], and an eager encoding based on universal point sets [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. The lazy Kuratowski-based
approach proved orders of magnitude faster, particularly for unsatisfiable instances. SMS determined
the exact values ex (, 4) and ex (, 5) for  ≤ 18 . For ex (17, 4), the lazy encoding completed
the search over 100 times faster than the eager encodings [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Graph Decompositions and Coloring</title>
        <p>
          This area concerns partitioning graph edges or coloring vertices under complex structural constraints.
The 3-Decomposition Conjecture, as mentioned in Section 3.1, states that every connected cubic graph
can be partitioned into a spanning tree, a collection of cycles, and a matching. Using specialized
propagators, SMS exploits theoretical properties of minimal counterexamples. A forbidden subgraph
checker, integrating the Glasgow Subgraph Solver [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], dynamically prunes the search space based
on reducible templates—subgraphs that cannot appear in a minimal counterexample. This approach
verified the conjecture for all connected cubic graphs up to 28 vertices, extending the previous bound
from 20 vertices.
        </p>
        <p>
          A related coloring problem concerns biplanar graphs—graphs whose edges can be partitioned into
two planar graphs. The Earth-Moon problem [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] asks for the chromatic number of biplanar graphs,
generalizing the Four-Color Theorem. SMS was adapted to handle directed graphs: we represent one
planar layer by anti-parallel arcs and the other by single arcs, and controlling crossings per layer then
enforces biplanarity. This approach proved that all biplanar graphs on up to 13 vertices are 9-colorable,
settling several open cases. The method also demonstrated that a specific 19-vertex candidate graph is
not biplanar, ruling it out as a potential counterexample [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3. Ramsey and Universality Problems</title>
        <p>
          These problems concern the unavoidable appearance of substructures in large combinatorial objects.
The Ramsey number (, ) is the smallest integer  such that any graph on  vertices contains either
a clique of size  or an independent set of size . The set ℛ(, , ) consists of all non-isomorphic
graphs on  vertices with no -clique and no -independent set. Using a direct encoding of these
properties, SMS enumerated the complete sets for ℛ(3, 5, ) and ℛ(4, 4, ). The framework’s ability
to produce verifiable proofs of completeness is particularly valuable in this context. The DRAT proof
from the SAT solver certifies the search, while nc-certificates for each learned symmetry clause can be
independently verified [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          A related universality problem asks for the smallest graph containing all graphs of a given size. A
graph is -universal if it contains all graphs on  vertices as induced subgraphs. The problem is to
ifnd the smallest such graph, denoted  (). A similar problem exists for tournaments, (). SMS was
applied using both a direct SAT encoding and a lazy approach with the Glasgow Subgraph Solver as an
external propagator. A templates method, where pre-computed interactions of small pattern graphs
partition the search space for parallel execution, further improved performance. This work improved
the lower bound for 7-universal graphs, proving  (7) &gt; 16, and determined exact values () for  ≤ 6
and bounded the 7-universal tournament size to 13 ≤ (7) ≤ 15 [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
        </p>
      </sec>
      <sec id="sec-4-4">
        <title>4.4. Abstract Combinatorial Structures</title>
        <p>
          The SMS framework extends beyond simple graphs to more abstract combinatorial objects. For
hypergraphs, the Erdős-Faber-Lovász Conjecture (1972) concerns the edge-colorability of linear hypergraphs
(hypergraphs where each pair of edges shares at most one vertex). To apply SMS, hypergraphs are
modeled via their bipartite incidence graphs. The coNP property of non-colorability is handled using
Co-Certificate Learning. This approach verified the conjecture for all linear hypergraphs with up
to 12 vertices, extending previous computational results and providing the first such verification with
proof-generation capabilities [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
        </p>
        <p>For matroids, Rota’s Basis Conjecture (1989) concerns decompositions into disjoint rainbow bases.
We developed a specialized MinCheck propagator, tailored to the basis exchange axioms of matroids of
bounded rank. This led to a proof of the conjecture for all matroids of rank 4. The work also provided
the first framework for producing DRAT proofs for matroid problems [16].</p>
        <p>We also extended the framework to CNF formulas by encoding them as graphs. Our goal was to
ifnd smallest unsatisfiable (, )-CNF formulas, where each clause has exactly  literals and each
variable occurs at most  times. The size of these formulas relates to inapproximability results for
MaxSAT. We encoded CNF formulas as 2-colored graphs (clause-literal graphs) to apply SMS. The search
combined SMS with theoretical techniques like disjunctive splitting. This determined exact minimum
sizes of unsatisfiable formulas for all 3-CNF subclasses and improved the upper bound for the smallest
unsatisfiable (4,5)-CNF formula from Knuth’s 257 to 235 clauses [17, 18].</p>
      </sec>
      <sec id="sec-4-5">
        <title>4.5. Applications in Other Scientific Domains</title>
        <p>
          We also applied SMS to problems from fields outside pure combinatorics. In quantum foundations,
Kochen-Specker systems are sets of vectors that demonstrate quantum contextuality, a key distinction
between quantum and classical physics. Finding the smallest such system is a long-standing problem.
We formulated the search for a Kochen-Specker system as finding a graph with a coNP property
(non-010-colorability), which was handled via CCL (Section 3.2). A 010-coloring assigns colors 0, 1
to vectors respecting orthogonality [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. Our SMS approach improved the lower bound from 23 to
24 vectors [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], significantly faster than a SAT+CAS (Computer Algebra System) method that had
established the 23-vector bound; the SAT+CAS approach subsequently confirmed the 24-vector bound
independently [19].
        </p>
        <p>In computational social choice, the rainbow cycle number  () provides bounds on the feasibility of
achieving envy-free-up-to-any-good (EFX) allocations in the fair division of indivisible goods. Variants
() and () use edge labelings restricted to functions  ↦→  +  mod  and permutations,
respectively, with () ≤  () ≤   (). We introduced the new technique of invariant pruning:
to branch on the value of a graph invariant not known a priori, such as maximum degree, reducing
symmetry [20].. Using SMS with invariant pruning, we determined the exact values  (4) = 4 and
(5) = 5, improving guarantees for EFX allocations. Invariant pruning provided a speedup of almost
two orders of magnitude in some cases.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Software</title>
      <p>To facilitate adoption and enable further research, the SMS framework is implemented as open source
software. This section outlines its architecture and practical usage, connecting the theoretical concepts
from Section 2 to their implementation. The SMS framework is available at
with documentation at</p>
      <p>The software consists of a C++ core implementation and a Python wrapper that provides a high-level
interface for encoding graph properties.</p>
      <sec id="sec-5-1">
        <title>5.1. C++ Implementation</title>
        <p>The core implementation consists of the solver smsg, which is built on CaDiCaL, an award-winning
CDCL SAT solver, extended with the MinCheck propagator for symmetry breaking. The integration
utilizes the IPASIR-UP interface [21], which provides callback functions for communication between
the solver and the propagator. When the propagator detects that a partially defined graph cannot
be extended to a canonical solution, it constructs a conflict clause and passes it to the solver via
cb_add_external_clause_lit.</p>
        <p>The software also provides C++ libraries (libsms_static.a and libsms.so) for integration into
other applications.</p>
      </sec>
      <sec id="sec-5-2">
        <title>5.2. Python Wrapper: PySMS</title>
        <p>The Python module PySMS (pysms) provides a declarative interface for specifying graph properties
without directly manipulating propositional variables. The module pysms.graph_builder can be
invoked from the command line or imported into custom scripts. It generates CNF encodings in DIMACS
format [22] , and, by default, automatically invokes smsg to solve them.</p>
        <p>For command-line use, the basic syntax is:
python -m pysms.graph_builder --vertices n [options]
Common options include –all-graphs to enumerate all solutions, –delta-low d for minimum
degree, –num-edges-upp e for maximum edges, and –directed for directed graphs. To output CNF
without solving, add –no-solve. For better performance, it is recommended to use –cutoff 20000
to limit the minimality check due to the exponential worst-case complexity of the ordered partition
search in MinCheck (Section 2).</p>
        <p>Examples of command-line usage:
The Grötzsch graph: triangle-free, non-3-colorable, 11 vertices:
python -m pysms.graph_builder -v 11 --ck-free 3 --min-chromatic-number 4</p>
        <sec id="sec-5-2-1">
          <title>All triangle-free graphs on 7 vertices:</title>
          <p>python -m pysms.graph_builder -v 7 --ck-free 3 --all-graphs</p>
        </sec>
        <sec id="sec-5-2-2">
          <title>Diameter-2-critical graphs on 12 vertices:</title>
          <p>python -m pysms.graph_builder -v 12 --diam2-critical --all-graphs
python -m pysms.graph_builder -v 13 --ramsey 3 5 --all-graphs</p>
          <p>For scripting, the GraphEncodingBuilder class provides methods for common constraints and
direct clause manipulation. A simple example that enumerates maximal triangle-free graphs:
from pysms.graph_builder import GraphEncodingBuilder
from itertools import combinations
builder = GraphEncodingBuilder(7, directed=False)
builder.ckFree(3) # triangle-free
for i, j in combinations(builder.V, 2):
# non-neighbors must have a common neighbor
builder.append([-builder.var_edge(i,j)] +
[builder.CNF_AND([builder.var_edge(i,k),</p>
          <p>builder.var_edge(j,k)])
for k in builder.V if k != i and k != j])
builder.solve(allGraphs=True)</p>
          <p>The smsg solver can also be invoked directly with DIMACS input. Key arguments include -v for
vertex count, –all-graphs for enumeration, –cutoff to limit minimality check time, and –dimacs
FILE to read constraints from a file. For proof generation (Section 3.3), the solver supports outputting
nc-certificates for symmetry-breaking clauses and can be configured to enable DRAT proof logging
for subsequent verification. For large-scale computations, SMS supports cube-and-conquer
parallelization [23] via –simple-assignment-cutoff for problem decomposition and –cube-file with
–cube-line for solving individual cubes.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>SAT Modulo Symmetries provides a general and efective framework for certified combinatorial search.
By integrating dynamic symmetry breaking directly into the search process of a CDCL SAT solver, it
avoids the exhaustive enumeration of generate-and-test methods and overcomes the incompleteness
of static symmetry breaking. The core mechanism relies on testing the canonicity of partially defined
objects and learning clauses to prune non-canonical branches of the search tree.</p>
      <p>The framework’s adaptability has been demonstrated through its successful application to a wide
range of problems involving graphs, hypergraphs, and matroids. Furthermore, the extension to
CoCertificate Learning enables the eficient handling of problems with coNP properties. By producing
verifiable certificates for both the SAT search and the symmetry breaking, SMS contributes to the
growing field of computer-assisted mathematical discovery. The source code and documentation for
the framework are publicly available, providing researchers with a tool to tackle other open problems
in combinatorics and beyond.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>The author acknowledges support from the Austrian Science Fund (FWF), project 10.55776/P36688.</p>
    </sec>
    <sec id="sec-8">
      <title>Declaration on Generative AI</title>
      <p>During the preparation of this work, the authors used Grammarly in order to: Grammar and spelling
check, paraphrase and reword. After using this tool, the authors reviewed and edited the content as
needed and take full responsibility for the publication’s content.
- Leibniz-Zentrum für Informatik, 2023, pp. 13:1–13:17. doi:10.4230/LIPICS.SAT.2023.13.
[16] M. Kirchweger, M. Scheucher, S. Szeider, A SAT attack on Rota’s basis conjecture, in: K. S. Meel,
O. Strichman (Eds.), 25th International Conference on Theory and Applications of Satisfiability
Testing, SAT 2022, August 2-5, 2022, Haifa, Israel, volume 236 of LIPIcs, Schloss Dagstuhl -
LeibnizZentrum für Informatik, 2022, pp. 4:1–4:18. doi:10.4230/LIPICS.SAT.2022.4.
[17] D. E. Knuth, The art of computer programming. Vol. 4B. Combinatorial algorithms. Part 2,
Addison</p>
      <p>Wesley, Upper Saddle River, NJ, 2023.
[18] T. Zhang, T. Peitl, S. Szeider, Small unsatisfiable k-CNFs with bounded literal occurrence, in:
S. Chakraborty, J. R. Jiang (Eds.), 27th International Conference on Theory and Applications of
Satisfiability Testing, SAT 2024, August 21-24, 2024, Pune, India, volume 305 of LIPIcs, Schloss
Dagstuhl - Leibniz-Zentrum für Informatik, 2024, pp. 31:1–31:22. doi:10.4230/LIPICS.SAT.
2024.31.
[19] Z. Li, C. Bright, V. Ganesh, A SAT solver and computer algebra attack on the minimum Kochen–
Specker problem, in: Thirty-Eighth AAAI Conference on Artificial Intelligence, AAAI 2024,
February 20-27, 2024, Vancouver, Canada, AAAI Press, 2024, pp. 23130–23131. Student Abstract.
[20] M. Kirchweger, S. Szeider, Computing small rainbow cycle numbers with SAT modulo symmetries
(short paper), in: P. Shaw (Ed.), 30th International Conference on Principles and Practice of
Constraint Programming, CP 2024, September 2-6, 2024, Girona, Spain, volume 307 of LIPIcs,
Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2024, pp. 37:1–37:11. doi:10.4230/LIPICS.</p>
      <p>CP.2024.37.
[21] K. Fazekas, A. Niemetz, M. Preiner, M. Kirchweger, S. Szeider, A. Biere, IPASIR-UP: user propagators
for CDCL, in: M. Mahajan, F. Slivovsky (Eds.), 26th International Conference on Theory and
Applications of Satisfiability Testing, SAT 2023, July 4-8, 2023, Alghero, Italy, volume 271 of LIPIcs,
Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2023, pp. 8:1–8:13. doi:10.4230/LIPICS.</p>
      <p>SAT.2023.8.
[22] DIMACS, The second DIMACS implementation challenge: 1992-1993. NP hard problems: Maximum
clique, graph coloring, and satisfiability, 1992. http://dimacs.rutgers.edu/Challenges.
[23] M. Heule, O. Kullmann, S. Wieringa, A. Biere, Cube and conquer: Guiding CDCL SAT solvers by
lookaheads, in: K. Eder, J. Lourenço, O. Shehory (Eds.), Hardware and Software: Verification and
Testing - 7th International Haifa Verification Conference, HVC 2011, Haifa, Israel, December 6-8,
2011, Revised Selected Papers, volume 7261 of Lecture Notes in Computer Science, Springer, 2011,
pp. 50–65. doi:10.1007/978-3-642-34188-5_8.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J. K.</given-names>
            <surname>Fichte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. L.</given-names>
            <surname>Berre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hecher</surname>
          </string-name>
          ,
          <string-name>
            <surname>S. Szeider,</surname>
          </string-name>
          <article-title>The silent</article-title>
          (r)evolution
          <source>of SAT</source>
          ,
          <source>Communications of the ACM</source>
          <volume>66</volume>
          (
          <year>2023</year>
          )
          <fpage>64</fpage>
          -
          <lpage>72</lpage>
          . doi:
          <volume>10</volume>
          .1145/3560469.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Codish</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Miller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Prosser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Stuckey</surname>
          </string-name>
          ,
          <article-title>Constraints for symmetry breaking in graph representation</article-title>
          ,
          <source>Constraints An Int. J</source>
          .
          <volume>24</volume>
          (
          <year>2019</year>
          )
          <fpage>1</fpage>
          -
          <lpage>24</lpage>
          . doi:
          <volume>10</volume>
          .1007/S10601-018-9294-5.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kirchweger</surname>
          </string-name>
          , S. Szeider,
          <article-title>SAT modulo symmetries for graph generation</article-title>
          , in: L. D.
          <string-name>
            <surname>Michel</surname>
          </string-name>
          (Ed.),
          <source>27th International Conference on Principles and Practice of Constraint Programming</source>
          ,
          <source>CP</source>
          <year>2021</year>
          ,
          <article-title>Montpellier</article-title>
          , France (Virtual Conference),
          <source>October 25-29</source>
          ,
          <year>2021</year>
          , volume
          <volume>210</volume>
          of LIPIcs,
          <source>Schloss Dagstuhl - Leibniz-Zentrum für Informatik</source>
          ,
          <year>2021</year>
          , pp.
          <volume>34</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>34</lpage>
          :
          <fpage>16</fpage>
          . doi:
          <volume>10</volume>
          .4230/LIPICS.CP.
          <year>2021</year>
          .
          <volume>34</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kirchweger</surname>
          </string-name>
          , S. Szeider,
          <article-title>SAT modulo symmetries for graph generation and enumeration</article-title>
          ,
          <source>ACM Trans. Comput. Log</source>
          .
          <volume>25</volume>
          (
          <year>2024</year>
          )
          <fpage>1</fpage>
          -
          <lpage>30</lpage>
          . doi:
          <volume>10</volume>
          .1145/3670405.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>T.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , S. Szeider,
          <article-title>The 3-decomposition conjecture: A SAT-based approach with specialized propagators</article-title>
          , in: M. G. de la Banda (Ed.),
          <source>31st International Conference on Principles and Practice of Constraint Programming</source>
          ,
          <source>CP 2025, August 10-15</source>
          ,
          <year>2025</year>
          , Glasgow, Scotland, volume
          <volume>340</volume>
          of LIPIcs,
          <source>Schloss Dagstuhl - Leibniz-Zentrum für Informatik</source>
          ,
          <year>2025</year>
          , pp.
          <volume>39</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>39</lpage>
          :
          <fpage>19</fpage>
          . doi:
          <volume>10</volume>
          .4230/LIPICS. CP.
          <year>2025</year>
          .
          <volume>39</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kirchweger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Peitl</surname>
          </string-name>
          ,
          <string-name>
            <surname>S. Szeider,</surname>
          </string-name>
          <article-title>Co-certificate learning with SAT modulo symmetries</article-title>
          ,
          <source>in: Proceedings of the Thirty-Second International Joint Conference on Artificial Intelligence, IJCAI</source>
          <year>2023</year>
          ,
          <fpage>19th</fpage>
          -25th
          <source>August</source>
          <year>2023</year>
          , Macao,
          <string-name>
            <surname>SAR</surname>
          </string-name>
          , China, ijcai.org,
          <year>2023</year>
          , pp.
          <fpage>1944</fpage>
          -
          <lpage>1953</lpage>
          . doi:
          <volume>10</volume>
          .24963/ IJCAI.
          <year>2023</year>
          /216.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Janota</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kirchweger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Peitl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Szeider</surname>
          </string-name>
          ,
          <article-title>Breaking symmetries in quantified graph search: A comparative study</article-title>
          , in: T. Walsh,
          <string-name>
            <given-names>J.</given-names>
            <surname>Shah</surname>
          </string-name>
          ,
          <string-name>
            <surname>Z.</surname>
          </string-name>
          Kolter (Eds.),
          <source>AAAI-25</source>
          ,
          <article-title>Sponsored by the Association for the</article-title>
          <source>Advancement of Artificial Intelligence, February 25 - March 4</source>
          ,
          <year>2025</year>
          , Philadelphia, PA, USA, AAAI Press,
          <year>2025</year>
          , pp.
          <fpage>11246</fpage>
          -
          <lpage>11254</lpage>
          . doi:
          <volume>10</volume>
          .1609/AAAI.V39I11.33223.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M. J. H.</given-names>
            <surname>Heule</surname>
          </string-name>
          ,
          <article-title>The DRAT format and DRAT-trim checker</article-title>
          ,
          <source>CoRR abs/1610</source>
          .06229 (
          <year>2016</year>
          ). URL: http://arxiv.org/abs/1610.06229. arXiv:
          <volume>1610</volume>
          .
          <fpage>06229</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>W.</given-names>
            <surname>Schnyder</surname>
          </string-name>
          ,
          <article-title>Embedding planar graphs on the grid</article-title>
          , in: D. S. Johnson (Ed.),
          <source>Proceedings of the First Annual ACM-SIAM Symposium on Discrete Algorithms</source>
          ,
          <fpage>22</fpage>
          -
          <lpage>24</lpage>
          January
          <year>1990</year>
          , San Francisco, California, USA, SIAM,
          <year>1990</year>
          , pp.
          <fpage>138</fpage>
          -
          <lpage>148</lpage>
          . URL: http://dl.acm.org/citation.cfm?id=
          <volume>320176</volume>
          .
          <fpage>320191</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>H. de Fraysseix</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Pach</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Pollack</surname>
          </string-name>
          ,
          <article-title>Small sets supporting Fáry embeddings of planar graphs</article-title>
          , in: J.
          <string-name>
            <surname>Simon</surname>
          </string-name>
          (Ed.),
          <source>Proceedings of the 20th Annual ACM Symposium on Theory of Computing, May 2-4</source>
          ,
          <year>1988</year>
          , Chicago, Illinois, USA, ACM,
          <year>1988</year>
          , pp.
          <fpage>426</fpage>
          -
          <lpage>433</lpage>
          . doi:
          <volume>10</volume>
          .1145/62212.62254.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kirchweger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Scheucher</surname>
          </string-name>
          , S. Szeider,
          <article-title>SAT-based generation of planar graphs</article-title>
          , in: M.
          <string-name>
            <surname>Mahajan</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Slivovsky</surname>
          </string-name>
          (Eds.),
          <source>26th International Conference on Theory and Applications of Satisfiability Testing, SAT 2023, July 4-8</source>
          ,
          <year>2023</year>
          , Alghero, Italy, volume
          <volume>271</volume>
          of LIPIcs, Schloss Dagstuhl - LeibnizZentrum
          <source>für Informatik</source>
          ,
          <year>2023</year>
          , pp.
          <volume>14</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          :
          <fpage>18</fpage>
          . doi:
          <volume>10</volume>
          .4230/LIPICS.SAT.
          <year>2023</year>
          .
          <volume>14</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>C. McCreesh</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Prosser</surname>
            ,
            <given-names>J. Trimble,</given-names>
          </string-name>
          <article-title>The Glasgow subgraph solver: Using constraint programming to tackle hard subgraph isomorphism problem variants</article-title>
          , in: F. Gadducci, T. Kehrer (Eds.),
          <source>Graph Transformation - 13th International Conference, ICGT</source>
          <year>2020</year>
          ,
          <article-title>Held as Part of STAF 2020, Bergen</article-title>
          , Norway, June 25-26,
          <year>2020</year>
          , Proceedings, volume
          <volume>12150</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2020</year>
          , pp.
          <fpage>316</fpage>
          -
          <lpage>324</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -51372-6\_
          <fpage>19</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>G.</given-names>
            <surname>Ringel</surname>
          </string-name>
          ,
          <source>Färbungsprobleme auf Flächen und Graphen</source>
          , volume
          <volume>2</volume>
          of Mathematische Monographien,
          <source>VEB Deutscher Verlag der Wissenschaften</source>
          , Berlin,
          <year>1959</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , S. Szeider,
          <article-title>Searching for smallest universal graphs and tournaments with SAT</article-title>
          , in: R. H. C. Yap (Ed.),
          <source>29th International Conference on Principles and Practice of Constraint Programming</source>
          ,
          <source>CP 2023, August 27-31</source>
          ,
          <year>2023</year>
          , Toronto, Canada, volume
          <volume>280</volume>
          of LIPIcs, Schloss Dagstuhl - LeibnizZentrum
          <source>für Informatik</source>
          ,
          <year>2023</year>
          , pp.
          <volume>39</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>39</lpage>
          :
          <fpage>20</fpage>
          . doi:
          <volume>10</volume>
          .4230/LIPICS.CP.
          <year>2023</year>
          .
          <volume>39</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kirchweger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Peitl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Szeider</surname>
          </string-name>
          ,
          <article-title>A SAT solver's opinion on the Erdős-Faber-Lovász conjecture</article-title>
          , in: M.
          <string-name>
            <surname>Mahajan</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Slivovsky</surname>
          </string-name>
          (Eds.),
          <source>26th International Conference on Theory and Applications of Satisfiability Testing, SAT 2023, July 4-8</source>
          ,
          <year>2023</year>
          , Alghero, Italy, volume
          <volume>271</volume>
          of LIPIcs, Schloss Dagstuhl
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>