<!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>
      <journal-title-group>
        <journal-title>International Workshop on Satisfiability Checking and Symbolic Computation, August</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Enumerating Projective Planes of Order Nine with Proof Verification</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Daniel Dallaire</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Curtis Bright</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Windsor</institution>
          ,
          <addr-line>Windsor, Ontario</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2022</year>
      </pub-date>
      <volume>12</volume>
      <issue>2022</issue>
      <fpage>0000</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>In this paper we describe a method of enumerating projective planes of order nine. The enumeration was previously completed by Lam, Kolesova, and Thiel using highly optimized and customized search code. Despite the importance of this result in the classification of projective geometries, the previous search relied on unverified code and has never been independently verified. Our enumeration procedure-which is still a work in progress-uses a hybrid satisfiability (SAT) solving and symbolic computation approach. SAT solving performs an enumerative search, while symbolic computation removes symmetries from the search space. Certificates are produced which demonstrate the enumeration completed successfully.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Satisfiability Checking</kwd>
        <kwd>Symbolic Computation</kwd>
        <kwd>Combinatorial Enumeration</kwd>
        <kwd>Computer-assisted Proof</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        verification [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], finding new algorithms for matrix multiplication [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and improving cylindrical
algebraic decomposition algorithms [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Our method uses satisfiability (SAT) solvers to search
for projective planes and symbolic computation to detect when two partial projective planes
are isomorphic to each other. During the search many isomorphic subplanes are detected and
pruned from the search, thereby dramatically improving the eficiency of the solver.
      </p>
      <p>
        Crucially, our work does not rely on trusting the output of either the SAT solver or the
computer algebra system (CAS). Both tools produce certificates that can be used to verify
the output without taking their claims on faith. Although this is a work in progress, we are
confident that our approach will successfully complete a classification of projective planes of
order nine without requiring the trust of any search code. This is particularly important in
computational classification which requires the generation of a complete list of all instances of
a given object—it is in general quite dificult to prove that the list is complete. Moreover, it is not
feasible to prove that a complicated algorithm (like a search procedure) generates correct results
in all cases [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. A similar SAT+CAS approach has also successfully been used [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] to generate
proof certificates verifying Lam et al.’s experimental proof of the nonexistence of projective
planes of order ten [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Background</title>
      <p>The objects we will be interested in this paper are primarily finite projective planes, which we
introduce here. These projective planes have a few diferent representations, the first of which
is perhaps the easiest to understand. After giving this as the definition, we discuss another
representation which will be more useful for the purpose of doing an exhaustive computer
search for these objects. Also playing a role in this work is the notion of a latin square which we
define here. Lastly, we describe the notion of a Boolean satisfiability problem or SAT problem.</p>
      <p>To start, we define a projective plane of a given order :
Definition 1. A projective plane of order  is a collection of 2 +  + 1 lines and 2 +  + 1
points such that:
(1) every line contains  + 1 points,
(2) every point is on  + 1 lines,
(3) any two distinct lines intersect at exactly one point, and
(4) any two distinct points lie on exactly one line.</p>
      <p>
        From this definition, we can see that projective planes are objects which have a natural
interpretation as an incidence structure—that is, two disjoint sets equipped with a relation
between them which we call the incidence relation [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. One of the simplest examples of this
is the Fano plane, which is a projective plane of order 2 (i.e., it has 22 + 2 + 1 = 7 points and
lines) as seen in Figure 1. With such structures, we may associate a bipartite graph, whose parts
in our case are the lines and points of the projective plane respectively, and whose edge set
is determined by the incidence relation. Specifically, in this bipartite graph, we make an edge
between a point and a line if and only if that point lies on the line. Suppose now that we order
the points and lines of the projective plane as: 1, 2, . . . , 2++1 and ℓ1, ℓ2, . . . , ℓ2++1.
      </p>
      <p>Then we may represent the associated bipartite graph as an (2 +  + 1) × (2 +  + 1) binary
incidence matrix, in which each row represents a point and each column represents a line. The
(, )th entry of this matrix will be 1 if the point  lies on the line ℓ , and it will be 0 otherwise.
This definition is more workable for the purpose of using a SAT solver as we can encode the
incidence matrix as (2 +  + 1)2 Boolean variables. To be able to utilize this representation,
we must also translate the axioms of the projective plane (1)–(4) given above in terms of the
incidence matrix. Two binary vectors are said to intersect if they both contain 1s in the same
entry of the vector (or rather, their inner product is greater than 0). One can check that an
(2 +  + 1) × (2 +  + 1) incidence matrix is one which arises from a projective plane of
order  if the following properties are satisfied:
(1) each column sum of the matrix is  + 1,
(2) each row sum of the matrix is  + 1,
(3) two distinct columns of the matrix intersect exactly once, and
(4) two distinct rows of the matrix intersect exactly once.</p>
      <sec id="sec-2-1">
        <title>Next, we also introduce latin squares.</title>
        <p>Definition 2.
that:
1. each row contains each of the numbers 1, 2, . . . ,  exactly once, and
2. each column contains each of the numbers 1, 2, . . . ,  exactly once.</p>
      </sec>
      <sec id="sec-2-2">
        <title>For example, the following is a latin square of order 4:</title>
        <p>A  ×  latin square is a  ×  array consisting of the integers 1, 2, . . . ,  such
⎡ 1 2 3 4 ⎤
⎢ 2 3 4 1 ⎥
⎢⎣ 3 4 1 2 ⎦⎥</p>
        <p>4 1 2 3
The role that latin squares play in our search for projective planes will become more clear after
our discussion in section 2.2.</p>
        <p>
          Lastly, we describe SAT problems—which are useful because heuristic algorithms exist that
often solve SAT instances extremely eficiently. A literal is a Boolean variable or a negated
Boolean variable, and a clause is a disjunction of literals. Given a list of clauses, we say the
list is satisfiable if we can assign true and false values to its variables such that every clause
evaluates to be true. A SAT problem is the problem of determining if a given list of clauses is
satisfiable or not. This problem is known to be NP-complete and there is no known polynomial
time algorithm solving it. However, there are good heuristic SAT solvers like MapleSAT [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]
which can often solve SAT instances.
        </p>
        <sec id="sec-2-2-1">
          <title>2.1. Problem Overview</title>
          <p>With this background established, we now give more details about the problem we’re interested
in. As we discussed, we can represent a hypothetical projective plane of order  as an (2 +  +
1) × (2 +  + 1) incidence matrix satisfying certain properties. For the order 9 case, we’re
interested in enumerating the 91 × 91 incidence matrices (note: 91 = 92 + 9 + 1) satisfying
certain properties up to a certain symmetry. We now comment on what this symmetry is.</p>
          <p>Notice that given a fixed projective plane of order 9, one can obtain a distinct, but similar,
projective plane by relabelling some of the points, and relabelling some of the lines. Realistically
however, these “new” planes are the same as the original one, thus we wish to ignore these extra
planes in our search if possible. These relabellings correspond to column and row permutations
of the incidence matrix. Consequently, we can give a group theoretic interpretation of this:
Let  be the group 91 × 91. We may view the first component of this group as the row
permutations, and the second as the column permutations. In this way, we have a group action
of  on the set of incidence matrices corresponding to projective planes. Then we can say that
two planes are equivalent if they are in the same orbit under this action. Two planes are in
the same orbit, if one can be obtained from the other via action of the group , or rather, by
applying column and row permutations.</p>
          <p>
            Searching for only a representative of each orbit makes our search drastically more feasible.
This computational search was first done by Lam, Kolesova, and Thiel [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ]. Before this search
was done, there were four distinct projective planes of order 9 known to exist. Lam et al.’s search
showed that these were the only four planes up to isomorphism. We repeat this search using a
SAT solver and by exploiting the symmetry group mentioned above to reduce the search space.
By applying the elements of the symmetry group to a hypothetical projective plane, we can fix
certain structure for the plane. This is described in Section 2.2.
          </p>
        </sec>
        <sec id="sec-2-2-2">
          <title>2.2. Structure of Planes of Order 9</title>
          <p>Here we detail the structure we impose on the incidence matrix of our hypothetical projective
plane for the purpose of reducing the search space of our problem. The first important thing
to note is that a hypothetical projective plane must contain a triangle—that is, a set of three
non-collinear points. We may suppose that the first three points 1, 2, and 3 form this triangle,
and furthermore that ℓ1 is the unique line joining 2 and 3, ℓ2 is the unique line joining 1 and
2, and lastly that ℓ3 is the unique line joining 1 and 3. We may impose this order simply by
applying the needed row and column permutations to the incidence matrix. With this ordering
1
2
3
4
5
6
7
8
of the points and lines, the upper left 3 × 3 sub-matrix of the incidence matrix will look like:</p>
          <p>Once this is done, we know by the first two axioms of a projective plane, that there should be
8 more 1’s in each of the first three rows and columns. By applying further row and column
permutations, we may impose a staircase like structure on these entries. For example, we can
make the first three rows in columns 4 to 27 will look like:
with the entries in columns 28 and above being 0 in those rows.</p>
          <p>Then, using further column and row permutations, we may fix many of the entries in the
ifrst 27 columns of the incidence matrix shown in Figure 2. The entries in the submatrix formed
by columns 20–27 and rows 28–91 will not be fixed but they do have a nice structure.</p>
          <p>One can check that the 8 × 8 blocks 1, 2, . . . , 8 given in Figure 2 will be 8 × 8
permutation matrices. Consequently, these blocks correspond to permutations  1,  2, . . . ,  8 ∈ 8.
Furthermore, we know that we can’t have  () =   () where  ̸=  since otherwise we would
have two distinct rows intersecting twice. This property ensures that we may encode this set of
8 permutations as an 8 × 8 latin square. A more detailed explanation of this normalized form
for the partial plane can be found in Kolesova’s thesis [11, Prop. 4.1].</p>
          <p>Thus, for a given 8 × 8 latin square, we may obtain the 27 columns of a partial projective
plane, and in this way, all such partial planes may be obtained if all 8 × 8 latin squares can be
enumerated. Thus, our approach for generating the projective planes of order 9 will begin by
generating the latin squares of order 8. However, two distinct latin squares can give equivalent
partial planes. Thus we will be interested in equivalence classes of latin squares as detailed in
the next section.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Enumeration Method</title>
      <p>Our enumeration method proceeds in two steps. First, all 8 × 8 latin squares are enumerated up
to isomorphism using a SAT+CAS method. Second, for every 8 × 8 latin square generated in
the first step the initial 27 columns of a projective plane of order nine are defined in terms of
the structure revealed in Section 2.2. For each possible way of completing the first 27 columns a
SAT instance is created which is satisfiable exactly when the 27 columns can be extended to 40
columns of a projective plane.</p>
      <sec id="sec-3-1">
        <title>3.1. Step 1: Latin Squares</title>
        <p>As the structure we identified in the last section suggests, a good first step to generate the
projective planes of order 9 will be to first generate all 8 × 8 latin squares up to a certain
equivalence. More specifically, we will generate a representative of each main class of latin
squares. Two 8 × 8 latin squares are said to belong to the same main class if they difer only
by a permutation of the rows, columns, or symbols, or also possibly an exchange of the roles
of these three things. Thus we can view the main class of a latin square as its orbit under the
natural action of the group (8 × 8 × 8) ⋊ 3 [12, Sec 5.5]1 on the set of latin squares. To
generate all such representatives, we reduce the problem to SAT, and then utilize a SAT solver
to find all solutions of the instance. The exhaustive search is performed by adjoining a “solution
blocking clause” to the instance whenever a solution is found. To reduce the computation, we
also provide a mechanism for doing isomorphism checking along the way; if two partial squares
belong to the same main class, we throw away the duplicates to reduce the computation time.</p>
        <p>
          The reduction of the latin square problem into SAT is well known, and can be found in a
variety of sources [
          <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
          ]. Before utilizing the SAT solver, we first normalize the latin squares
by insisting that the numbers 1, 2, . . . , 8 appear in order in the first column and row. This is
done by adding unit clauses specifying that the entries in the first row have such values. This is
justified since we may apply column and row permutations to impose this structure. With this
done, we use MapleSAT to extend one row at a time up to row 4 of the latin square, and then
from row 4 to row 8. After each row extension, isomorphism removal is also done.
        </p>
        <p>
          Isomorphism removal is done by translating our latin squares to graphs and then checking
if the corresponding graphs are isomorphic to each other using pynauty [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. We do this in
1Semi-direct products (denoted by ⋊) are like regular products, except elements from the two groups in the product
may not commute. Rather, the elements may be commuted at the cost of applying the action of the 2nd group
element on the first. For more details, see the reference cited.
such a way that the corresponding graphs will be isomorphic if and only if the original latin
squares belonged to the same main class. Our translation of a latin square (, ) to a graph is
as follows: The vertex set is { , : 1 ≤ ,  ≤  } and we draw an edge between , and ′,′
if  = ′,  = ′, or , = ′,′ . More details of this construction and its validity can found in
Miller’s paper [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>
          Before performing the final isomorphism removal after generating all 8 rows of the latin
squares, there were 43,791,204 solutions found by MapleSAT. Once the isomorphism removal is
applied, there were 283,657 representatives of the main classes of latin squares which remained,
which serve as the starting point for the next step in our computation. The main classes of
latin squares of order 8 have been enumerated by others including Lam et al. [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] and the
number of latin squares produced by our computation matches the number previously reported.
Solving the SAT instances takes around 20 minutes on a single CPU core and performing the
isomorphism removal takes around 85 hours.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Step 2: Column 40 Extension</title>
        <p>The next major step in our enumeration of the projective planes to extend each of the 283,657
partial planes (each with 27 columns to start) to partial planes of 40 columns. We accomplish
this by once again using a SAT solver. However, we take a slightly diferent approach than we
did with the latin squares since the axioms of a projective plane don’t translate as nicely into
SAT. A partial plane (, ) has a natural encoding as a set of Boolean variables by defining
a variable , for each entry. We encode in SAT only axioms (3) and (4)—namely, that two
distinct rows or columns intersect exactly once. First, the requirement that they intersect at
most once is given by the quadfree clauses:</p>
        <p>¬, ∨ ¬′, ∨ ¬,′ ∨ ¬′,′
for  &lt; ′ and  &lt; ′. If one of these clauses is false this means there is a rectangle in the
incidence matrix whose corners are 1s—which is exactly what happens if two rows or columns
intersect more than once.</p>
        <p>Then, we check that a given column intersects the first 27 columns of the partial plane each
at least once. Note that because the first 19 columns are the only ones which are fixed among
all partial planes, we will need a diferent list of clauses for each starting point of the extension.
If column  ≤ 27 has 1s in the entries (1, ), (2, ), . . . , (10, ), then for ′ &gt; 27, we include
the clause
1,′ ∨ 2,′ ∨ · · · ∨
10,′
which ensures that column ′ intersects column  at least once. In addition to these clauses, we
also use unit clauses to impose some structure on the first 19 rows (an exact transpose of the
ifrst 19 columns in fact) in order to remove symmetry.</p>
        <p>
          This is currently work in progress but in practice the extension takes about 45 seconds for
the entire pipeline (MapleSAT, GRATgen, isomorphism removal, and isomorphism removal
verification) to run for each 27-column partial plane. This still needs to be done for each of
the 283,657 latin squares which will require Compute Canada’s servers. The few 40-column
partial planes that result from this can typically be extended to a full 91 columns (or shown not
to complete at all) almost instantly [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. The final step, which still needs to be implemented,
will be to perform isomorphism removal and verification on each of the complete projective
planes found by the solver.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Verification</title>
      <p>The SAT solver MapleSAT returns DRAT proofs which can be checked using a proof verifier
such as DRAT-trim [18] or GRATgen [19]. This way only the proof verifier—which is much
simpler than the SAT solver—needs to be trusted.</p>
      <p>In step 1, we do several row extensions with MapleSAT to produce the final list of latin
squares. For each of these, we generate and verify the proofs for these steps. This involves
adding a blocking clause for each solution of the SAT instance and then showing a conflict can
be derived from the original list of clauses in conjunction with the blocking clauses. In step 2,
we have a separate list of clauses for each of the 27 column partial planes, thus we end up with
a separate proof for each one, all of which need to be verified independently just as in step 1.
Lastly, we must also do this for the final extension from column 40 to the full 91 columns.</p>
      <p>In addition to verifying the proofs above, we will verify the correctness of the isomorphism
removal which is done at several stages. After generating solutions, we create a new file with
one representative of the isomorphism class of each of the solutions in the first file. When
doing so, we store the relabelling of the corresponding graph which turns it into the graph of its
representative in the new file. This can then be verified easily by checking that each relabelling
turns the associated solution into the one at the specified index in the new file. Representatives
are chosen by determining the canonical form of the associated graph with pynauty and then
using the adjacency lists of these new graphs as keys in a Python dictionary in order to only
keep one of each.</p>
      <p>The DRAT proof from step 1 can be verified by DRAT-trim in about an hour, and the
isomorphism removal can be verified in about 25 hours.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>
        This method of enumerating of the projective planes of order nine relies on two main
components: the generation of solutions with our SAT solver (MapleSAT), and the isomorphism
removal of partial solutions with our CAS (pynauty). Both components are crucial—if either
component were removed this work would not be feasible to complete in a reasonable amount
of time. To the best of our knowledge, the resulting enumeration will be the first independent
verification of the search of Lam, Kolesova, and Thiel [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Moreover, an enumeration using
a SAT+CAS system can be trusted to a higher degree of certainty than an enumeration via
custom-written search code. Our enumeration has been designed to require trusting a certificate
verifier rather than trusting a search procedure.
[18] N. Wetzler, M. J. H. Heule, W. A. Hunt, DRAT-trim: Eficient checking and trimming using
expressive clausal proofs, in: Lecture Notes in Computer Science, Springer International
Publishing, 2014, pp. 422–429. doi:10.1007/978-3-319-09284-3_31.
[19] P. Lammich, Eficient verified (UN)SAT certificate checking, Journal of Automated
Reasoning 64 (2019) 513–532. doi:10.1007/s10817-019-09525-z.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>E.</given-names>
            <surname>Abraham</surname>
          </string-name>
          ,
          <article-title>Building bridges between symbolic computation and satisfiability checking</article-title>
          ,
          <source>in: Proceedings of the 2015 ACM on International Symposium on Symbolic and Algebraic Computation</source>
          , ACM,
          <year>2015</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          . doi:
          <volume>10</volume>
          .1145/2755996.2756636.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Kaufmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kauers</surname>
          </string-name>
          , SAT, computer algebra, multipliers, in: EPiC Series in Computing, EasyChair,
          <year>2020</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>18</lpage>
          . doi:
          <volume>10</volume>
          .29007/j8cm.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M. J. H.</given-names>
            <surname>Heule</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kauers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Seidl</surname>
          </string-name>
          ,
          <article-title>New ways to multiply 3 × 3-matrices</article-title>
          ,
          <source>Journal of Symbolic Computation</source>
          <volume>104</volume>
          (
          <year>2021</year>
          )
          <fpage>899</fpage>
          -
          <lpage>916</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.jsc.
          <year>2020</year>
          .
          <volume>10</volume>
          .003.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Bradford</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Davenport</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>England</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sadeghimanesh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Uncu</surname>
          </string-name>
          ,
          <article-title>The DEWCAD project: pushing back the doubly exponential wall of cylindrical algebraic decomposition</article-title>
          ,
          <source>ACM Communications in Computer Algebra</source>
          <volume>55</volume>
          (
          <year>2021</year>
          )
          <fpage>107</fpage>
          -
          <lpage>111</lpage>
          . doi:
          <volume>10</volume>
          .1145/3511528. 3511538.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C. W. H.</given-names>
            <surname>Lam</surname>
          </string-name>
          , Opinion,
          <source>The Mathematical Intelligencer</source>
          <volume>12</volume>
          (
          <year>1990</year>
          )
          <fpage>8</fpage>
          -
          <lpage>12</lpage>
          . doi:
          <volume>10</volume>
          .1007/ bf03023977.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bright</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. K. H. Cheung</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Stevens</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Kotsireas</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Ganesh</surname>
          </string-name>
          ,
          <article-title>A SAT-based resolution of Lam's problem</article-title>
          ,
          <source>in: Proceedings of the Thirty-Fifth AAAI Conference on Artificial Intelligence</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>3669</fpage>
          -
          <lpage>3676</lpage>
          . URL: https://ojs.aaai.org/index.php/AAAI/article/view/ 16483.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>C. W. H.</given-names>
            <surname>Lam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Thiel</surname>
          </string-name>
          ,
          <string-name>
            <surname>S. Swiercz,</surname>
          </string-name>
          <article-title>The non-existence of finite projective planes of order 10</article-title>
          ,
          <source>Canadian Journal of Mathematics</source>
          <volume>41</volume>
          (
          <year>1989</year>
          )
          <fpage>1117</fpage>
          -
          <lpage>1123</lpage>
          . doi:
          <volume>10</volume>
          .4153/cjm-1989
          <source>-049-4.</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Godsil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. F.</given-names>
            <surname>Royle</surname>
          </string-name>
          , Algebraic Graph Theory, Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ganesh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Poupart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <article-title>Learning rate based branching heuristic for SAT solvers</article-title>
          ,
          <source>in: Theory and Applications of Satisfiability Testing - SAT 2016</source>
          , Springer International Publishing,
          <year>2016</year>
          , pp.
          <fpage>123</fpage>
          -
          <lpage>140</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -40970-
          <issue>2</issue>
          _
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>C. W. H.</given-names>
            <surname>Lam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Kolesova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Thiel</surname>
          </string-name>
          ,
          <article-title>A computer search for finite projective planes of order 9</article-title>
          ,
          <source>Discrete Mathematics</source>
          <volume>92</volume>
          (
          <year>1991</year>
          )
          <fpage>187</fpage>
          -
          <lpage>195</lpage>
          . doi:
          <volume>10</volume>
          .1016/
          <fpage>0012</fpage>
          -
          <lpage>365x</lpage>
          (
          <issue>91</issue>
          )
          <fpage>90280</fpage>
          -
          <lpage>f</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>G. I. Kolesova</surname>
          </string-name>
          ,
          <article-title>Enumeration of the Finite Projective Planes of Order Nine, Master's thesis</article-title>
          , Concordia University,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Dummit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. M.</given-names>
            <surname>Foote</surname>
          </string-name>
          , Abstract Algebra, John Wiley and Sons, Inc.,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lv</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ma</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Zhang,</surname>
          </string-name>
          <article-title>Investigating the existence of Costas Latin squares via satisfiability testing</article-title>
          ,
          <source>in: Theory and Applications of Satisfiability Testing - SAT 2021</source>
          , Springer International Publishing,
          <year>2021</year>
          , pp.
          <fpage>270</fpage>
          -
          <lpage>279</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -80223-3_
          <fpage>19</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bright</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gerhard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Kotsireas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ganesh</surname>
          </string-name>
          ,
          <article-title>Efective problem solving using SAT solvers</article-title>
          ,
          <source>in: Communications in Computer and Information Science</source>
          , Springer International Publishing,
          <year>2020</year>
          , pp.
          <fpage>205</fpage>
          -
          <lpage>219</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -41258-6_
          <fpage>15</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>B. D. McKay</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Piperno</surname>
          </string-name>
          ,
          <article-title>Practical graph isomorphism, II</article-title>
          ,
          <source>Journal of Symbolic Computation</source>
          <volume>60</volume>
          (
          <year>2014</year>
          )
          <fpage>94</fpage>
          -
          <lpage>112</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.jsc.
          <year>2013</year>
          .
          <volume>09</volume>
          .003.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>G. L.</given-names>
            <surname>Miller</surname>
          </string-name>
          ,
          <article-title>On the log  isomorphism technique (a preliminary report)</article-title>
          ,
          <source>in: Proceedings of the tenth annual ACM symposium on Theory of computing - STOC '78</source>
          , ACM Press,
          <year>1978</year>
          , pp.
          <fpage>51</fpage>
          -
          <lpage>58</lpage>
          . doi:
          <volume>10</volume>
          .1145/800133.804331.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>G.</given-names>
            <surname>Kolesova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. W. H.</given-names>
            <surname>Lam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Thiel</surname>
          </string-name>
          ,
          <article-title>On the number of 8 × 8 Latin squares</article-title>
          ,
          <source>Journal of Combinatorial Theory, Series A</source>
          <volume>54</volume>
          (
          <year>1990</year>
          )
          <fpage>143</fpage>
          -
          <lpage>148</lpage>
          . doi:
          <volume>10</volume>
          .1016/
          <fpage>0097</fpage>
          -
          <lpage>3165</lpage>
          (
          <issue>90</issue>
          )
          <fpage>90015</fpage>
          -
          <lpage>o</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>