<!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>Dynamic Strategy Priority: Empower the Strong and Abandon the Weak.</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Michael Rawson</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giles Reger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Manchester</institution>
          ,
          <addr-line>Manchester</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <fpage>58</fpage>
      <lpage>71</lpage>
      <abstract>
        <p>Automated theorem provers are often used in other tools as black-boxes for discharging proof obligations. One example where this has enjoyed a lot of success is within interactive theorem proving. A key usability factor in such settings is the time taken for the provers to complete. Automated theorem provers typically run lists of proof strategies sequentially, which can cause proofs to be found more slowly than necessary if the ordering is suboptimal. We show that it is possible to predict which strategies are likely to succeed while they are running using an arti cial neural network. We also implement a run-time strategy scheduler in the Vampire prover which utilises a trained neural network to improve average proof search time, and hence increases usability as a black-box prover.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Modern automated theorem provers (e.g. E [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], iProver [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], Vampire [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ],
CVC4 [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]) for rst-order logic rely on portfolio modes [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], which utilise tens
to hundreds of distinct strategies. Of these strategies, only a few might solve a
hard problem, often rapidly. Typically, a portfolio of strategies has a pre-de ned
execution order: the prover will process strategies in this order, running each
until a winning strategy is found or the prover runs out of time or strategies.
      </p>
      <p>
        Portfolio modes are important as, in practice, there is no best strategy.
Furthermore, it is uncommon that two hard problems are e ciently solved by the
same strategy. However, portfolio execution is not without problems: deciding
the optimal ordering and time allocation is hard in general [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], and produces
overly-rigid, brittle engineering when applied to speci c domains, such as those
found in the TPTP problem set [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]. Moreover, for any particular problem, some
lengthy strategies that are successful on other problems are doomed to failure
from the outset | as illustrated in Figure 1 | but are left to run unchecked by
the prover, wasting time that could be spent on more productive strategies.
      </p>
      <p>
        This work makes two contributions. We rst demonstrate correlation
between trends in dynamic properties of proof search, and the pending success or
failure of a strategy (Sections 4, 5). We then utilise this to implement
strategy scheduling, prioritising those strategies most likely to succeed (Section 6).
This approach di ers from previous work [
        <xref ref-type="bibr" rid="ref16 ref20 ref30">30,20,16</xref>
        ] which attempts to predict
successful strategies a priori from static features of the input problem; instead
(a)
(b) 1
(c)
1
we tip running strategies for success based on dynamic, run-time features and
use this information to make decisions at runtime. Our experiments (Section 7)
show that guiding scheduling in this way can signi cantly speed up
portfoliobased approaches. Before introducing these contributions and results we rst
present necessary background in Sections 2 and 3.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Strategies in Vampire</title>
      <p>Vampire is a rst-order superposition theorem prover. This section reviews its
basic structure and components relevant to the rest of this paper. We will use
the word strategy to refer to a set of con guration parameter values that control
proof search and proof attempt to refer to a run of the prover using such a
strategy.
2.1</p>
      <sec id="sec-2-1">
        <title>Input and preprocessing</title>
        <p>
          Vampire accepts problems in rst-order logic with equality and a pre-de ned
set of rst-order theories (e.g. arithmetic, arrays, datatypes). Vampire typically
works with problems in the TPTP format [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ] but also accepts problems in
SMT-LIB [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ].
        </p>
        <p>
          Problems are parsed and transformed into a set of input clauses used by
the saturation algorithm. This process involves clausi cation and a number of
preprocessing steps. These preprocessing steps can alter certain properties of
the problem e.g. its size and distribution across the signature, sometimes
signi cantly: for example, the E.T. system [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] implements a pre-processor for E
which selects small sets of axioms from a larger set, for large-theory reasoning.
This means that any prediction method that relies solely on the input problem
(rather than dynamic characteristics such as post-preprocessing properties) will
nd it harder to predict the best parameters for proof search.
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Saturation algorithms</title>
        <p>
          Superposition provers such as Vampire use saturation algorithms with
redundancy elimination. They work with a search space consisting of a set of clauses
and use a collection of generating, simplifying and deleting inferences to explore
this space. Generating inferences, such as superposition, extend this search space
by adding new clauses obtained by applying inferences to existing clauses.
Simplifying inferences, such as demodulation, replace a clause by a simpler one.
Deleting inferences, such as subsumption, delete a clause, typically when it
becomes redundant (see [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]). Simplifying and deleting inferences must satisfy this
condition to preserve completeness.
        </p>
        <p>The goal is to saturate the clause set with respect to the inference system. If
the empty clause is derived then the input clauses are unsatis able. If no empty
clause is derived and the search space is saturated then the input clauses are
guaranteed to be satis able only if a complete strategy is used. A strategy is
complete if it is guaranteed that all inferences between non-deleted clauses in
the search space will be applied. Vampire includes many incomplete strategies
as they can be very e cient at nding unsatis ability.</p>
        <p>All saturation algorithms implemented in Vampire belong to the family of
given clause algorithms, which achieve completeness via a fair clause selection
process that prevents the inde nite skipping of old clauses. These algorithms
typically divide clauses into three sets, unprocessed, passive and active, and follow
a simple saturation loop:
1. Add non-redundant unprocessed clauses to passive. Redundancy is checked
by attempting to forward simplify the new clause using processed clauses.
2. Remove processed (passive and active) clauses made redundant by newly
processed clauses, i.e. backward simplify existing clauses using these clauses.
3. Select a given clause from passive, move it to active and perform all
generating inferences between the given clause and all other active clauses, adding
generated clauses to unprocessed.</p>
        <p>
          Later we will show how iterations of this saturation loop from di erent proof
attempts can be interleaved. Vampire implements three saturation algorithms:
1. Otter uses both passive and active clauses for simpli cations.
2. Limited Resource Strategy (LRS) [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] extends Otter with a heuristic that
discards clauses that are unlikely to be used with the current resources, i.e.
time and memory. This strategy is incomplete but also generally the most
e ective at proving unsatis ability.
3. Discount uses only active clauses for simpli cations.
        </p>
        <p>
          A recent development in Vampire is AVATAR [
          <xref ref-type="bibr" rid="ref26 ref37">37,26</xref>
          ] which integrates with the
saturation loop to perform clause splitting. The general idea is to use a SAT
solver to select a subproblem by naming each clause sub-component by a
propositional variable, running a SAT solver on these abstracted clauses, and using the
subsequent propositional model to select components to include in proof search.
At the end of each iteration of the loop we check whether the underlying
subproblem has changed. AVATAR can occasionally make loops run a little longer,
but no more than other steps such as backward subsumption. Otherwise, the
notion of saturation loop remains the same when using AVATAR.
        </p>
        <p>
          There are also other proof strategies that t into the above loop format
and can be interleaved with superposition based proof attempts. For example,
instance generation [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] saturates the set of clauses with respect to the instance
generation rule and nite model nding [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ] iteratively checks larger model sizes
(these loops tend to be much longer than those from other algorithms).
2.3
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>Strategies in Vampire</title>
        <p>
          Vampire includes more than 50 parameters. By only varying parameters and
values used by Vampire at the last CASC competition, we obtain over 500 million
strategies. These parameters control
{ Preprocessing steps (24 di erent parameters)
{ The saturation algorithm and related behaviour e.g. clause selection
{ Inferences used (16 di erent kinds with variations)
Even restricting these parameters to a single saturation algorithm and
straightforward preprocessing steps, the number of possible strategies is vast. For this
reason, Vampire implements a portfolio CASC mode [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] that categorises
problems based on syntactic features and attempts a sequence of approximately 50
strategies over a ve minute period (this number can vary signi cantly). These
strategies are the result of extensive benchmarking and have been shown,
experimentally, to work well on unseen problems i.e. those not used for training.
        </p>
        <p>The syntactic features used by the current portfolio mode are coarse-grained
and include the rough size of the problem (e.g. bucketed into tiny, small, medium,
large, huge), the presence of features such as equality or certain theories, and
whether the problem is e ectively propositional or horn. Not all combinations of
these are considered. Portfolio mode is created by considering a set of training
data over a list of strategies and attempting to cover as much of it as possible
by splitting the set of problems into smaller groups based on these features until
all solutions t into a given time limit. This process is greedy and places the
strategy that solves the most problems during training rst and then the next
best strategy after removing the problems solved by the rst solver and so on.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Machine Learning and Theorem Proving</title>
      <p>In this section we review the necessary background in machine learning in the
context of theorem proving, in particular neural networks. Other technologies
exist which are capable of similar performance, but neural networks produced
the best combination of convenience and performance for our purposes.
Input Layer</p>
      <p>Hidden Layer
Input 1
Input 2
Input 3
Classi cation</p>
      <sec id="sec-3-1">
        <title>Classi cation with neural networks</title>
        <p>Binary classi cation problems can be heuristically solved by means of supervised
learning methods. A binary classi cation problem is, informally, the statement
\given input X, does X belong to class A or class B", where X is a member of
the target domain D, and A; B are disjoint subsets of D such that D = A [ B.
Supervised learning methods attempt to solve binary classi cation problems by
starting with a neutral, untrained heuristic for classifying X into A or B, then
changing their internal state to improve the heuristic by looking at examples of
A and B (\training"). Typically, supervised learning methods do not work on
X directly, but from a set of \features" derived from X. Engineering features,
or choosing which of a set of supplied features to use, is a eld of study in itself.</p>
        <p>A neural network consists of a collection of arti cial \neurons", wired
together with connections into a neural network architecture (see Figure 2 for
an example). Each neuron n computes a real-valued function fn, which may be
tuned with real-valued parameters: every neuron has a bias bn, and weight vector
wn.</p>
        <p>fn is de ned on an input vector x as</p>
        <p>fn(x) = A (wn x + bn)
i.e. a weighted sum of all connected input neurons' activation functions, plus
the bias of the neuron, all fed through an activation function A(x). The choice
of activation function is dependent on both the position of the neuron in the
architecture, and on the target domain: a common choice is the sigmoid function
(x), as shown in Figure 3.
1
Fig. 3: The sigmoid function (x) = 1+e x . This function \squeezes" the output
to the range [0; 1].</p>
        <p>
          Neural network parameters may be trained by a variety of di erent techniques
(randomly, neuro-evolution methods, backpropagation methods, etc.). We used a
backpropagation method, which, given a training input X and correct output y,
tunes the network parameters by propagating an error signal backwards through
the network to obtain updated parameters for each neuron, hence reducing the
error signal for that example [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ]. Repeating this process for multiple training
examples can produce very good results, but frequently only with the correct
combination of learning algorithm, starting weights, network architecture, and
training examples.
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Related work</title>
        <p>
          Machine learning has potential for signi cant e ect in this area: despite the
computational di culties experienced by theorem provers, frequently proofs have
human (or otherwise regular) structure, which may be exploited by the use
of learning methods. The authors are aware of work in the elds of premise
selection [
          <xref ref-type="bibr" rid="ref15 ref35 ref38 ref9">9,15,35,38</xref>
          ], static strategy selection [
          <xref ref-type="bibr" rid="ref17 ref18 ref4">4,18,17</xref>
          ], and more recently, direct
proof guidance [
          <xref ref-type="bibr" rid="ref11 ref19 ref36">36,11,19</xref>
          ]. However, we are not aware of any previous work in
the area of strategy selection at runtime for conventional theorem provers. The
closest area of work is that of static strategy selection where work, with the
exception of Bridge et al. [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] focusses on static properties of the input problem
rather than dynamic properties of the proof search space. Bridge considered
various dynamic features of the search space after 100 steps of the saturation
algorithm in the default mode (of the E theorem prover [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]).
        </p>
        <p>
          So far, machine learning techniques have typically used classical
machinelearning techniques such as nave Bayesian methods, SVMs [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ], and decision
trees [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. However, some newer work has begun to utilise recently-developed
deep-neural-network methods [
          <xref ref-type="bibr" rid="ref19 ref38 ref9">9,38,19</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Feature collection</title>
      <p>This section discusses which features are extracted from Vampire for prediction
and how they are extracted. This information is rstly required to identify a
correlation and will then be used to train a predictor.</p>
      <p>Modifying Vampire to log execution data (such as memory usage, or more
speci c metrics such as the number of generated clauses) for di erent strategies
obtained from its primary portfolio mode1 is straightforward, but some
datacollection decisions were made:
{ Only numerical data immediately available in the prover was collected, but
there is scope here for both non-numeric and derivative data sources, which
may provide greater insight into the proof state in future work. Suppose that
quantities A and B are measured directly, but are more often discussed in
terms of categories C that all A; B pairs fall into. Data could then include
C as well, or instead of, A and B, embedding C into the neural network via
a one-hot encoding.
{ Data was collected at intervals of a xed number of internal resolution steps
(in the experiments presented in this paper, this value was 10). This may
not necessarily correspond to xed time intervals, as each step may be more
or less expensive, depending on the strategy and the problem.
{ All available data was collected, even if it emerged to be constant or
unhelpful. This allowed an agnostic approach to learning in which the neural
network training procedure selected relevant features.</p>
      <p>In all, 376 features are recorded, including the number of active clauses, passive
clauses, and subsumptions, for instance. The execution traces produced are di
cult to work with, however: some are short or non-existent, others are extremely
lengthy. The mean execution trace length was 536 (standard deviation: 1208)
with the longest trace being 9971 recorded steps long. Some feature values also
have an extremely high variance. To deal with these problems, a post-processing
step is applied. For each feature, the mean over the entire data set is then mapped
to 0, and the dataset is scaled to unit variance. Data that are too short (fewer
than 10 steps) are discarded (the strategy likely did not take very long in any
case). The remaining data is then sliced into 10 evenly-sized \buckets", then an
average of each bucket is taken to produce 10 values for every trace, and hence
a xed data size.</p>
      <p>
        However, even now these data are not representative of the classi cation
problem desired: these traces show completed runs of Vampire, whereas the classi er
will be used to predict the success or otherwise of runs of Vampire that are still
in progress. Hence, we take \snapshots" at various stages (in these experiments,
at every quarter) of the trace, discarding the rest of the data, then post-process
the remaining trace as described above. Conveniently, this also provides 4 times
the original number of training examples. An example post-processed trace is
shown in Figure 4.
1 CASC-mode, a portfolio designed for the CASC competition [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ].
      </p>
    </sec>
    <sec id="sec-5">
      <title>Predicting successful strategies</title>
      <p>
        Being able to predict which proof search attempts will succeed in time, and which
will fail, based solely on information in the execution trace may seem unlikely.
However, it is known that the \slowly-growing search space" maxim, which states
that strategies which minimise the number of derived clauses over time are more
likely to succeed, is an e ective heuristic for nding good strategies in
saturationbased theorem proving [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Since the data we use includes the number of derived
clauses, among many other features, it appears more plausible that this approach
might work at least as well as the slow-growth heuristic alone. Engineering a
prediction algorithm that attempts to partition traces into \succeeding" and
\failing" classes is possible with the use of modern machine-learning techniques.
Conveniently, these methods do not usually produce a binary output, but instead
some f (X) 2 [0; 1] which might be seen as the \level of con dence" in success of
the trace, X. This success score can be used to apply an ordering to executing
strategies, allowing \smart" dynamic scheduling of strategies.
      </p>
      <p>
        In particular, we evaluated (using the Keras [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] backend-agnostic neural
network suite and the scikit-learn [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] utilities)
1. A simple neural network with one input for each datum in the trace and a
single hidden layer.
2. A convolutional network [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] which performs a 1-dimensional convolutional
pass along the time axis for each feature before the hidden layer.
3. A recurrent network [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], feeding the time series into a gated recurrent unit
before processing.
      </p>
      <p>Results for this classi cation task are shown in Figure 5. The consistent level
of accuracy achieved is encouraging. Both of the more-advanced classi ers
performed better than the simple neural network. However, the simple network
was chosen for integration into Vampire for implementation simplicity, and for
performance reasons | it is \good enough".</p>
      <p>Method
Simple neural network
Convolutional network</p>
      <p>Recurrent network</p>
    </sec>
    <sec id="sec-6">
      <title>Intelligent scheduling for Vampire</title>
      <p>We show that this abstract predictor can be used in a concrete
implementation for the Vampire prover. In the modi ed prover, it is used to run several
strategies from Vampire's portfolio in a modi ed scheduler: strategies self-report
their own execution data to the supervisor process and halt for re-evaluation at
regular intervals. When a strategy halts, the scheduler then decides whether to
re-schedule the strategy for some more time, or to swap it out for a di erent
strategy. The algorithm used is as follows, taking as input a set of strategies to
run:</p>
      <p>
        To embed the neural network into Vampire, we took the trained network
weights from our Python-based experiments, and generated a C source le with
these weights included as a large array. The neural network's architecture was
then re-implemented manually in C++, using the network weights compiled
into the new program. This approach had several advantages: while perhaps not
as e cient as an architecture such as TensorFlow [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] (which may use graphics
hardware to accelerate computations), our approach is reasonably e cient, but
is also low-latency, does not incur any additional dependencies, and does not
add signi cantly to program start-up time.
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Experimental results</title>
      <p>We evaluate whether our prediction results carry through to improved
performance in Vampire.</p>
      <p>Experimental setup We take all relevant problems for Vampire from TPTP 6.4.0
(17,281 problems in total) and run three variations of Vampire 4.2.1's CASC
portfolio mode:
{ baseline was the standard portfolio mode
{ no-prediction uses the dynamic scheduling architecture without prediction.</p>
      <p>This e ectively produces a round-robin scheduling of strategies.
{ prediction uses the trained neural network to predict whether a strategy will
be successful as previously described.</p>
      <p>
        The default 3GB memory limit and 300s time limit from the standard portfolio
mode were kept but in addition each variation was run in a multicore setup
using 4 cores to distribute strategies over.Experiments were run on the StarExec
cluster [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] where each node contains an Intel Xeon 2.4GHz processor.
Results Figure 6 illustrates the overall results by plotting the number of problems
solved against time taken. Table 1 gives some raw numbers. In this table New
refers to the number of problems solved by this variation that were not solved
by baseline, Unique refers to the number of problems solved by this variation
and not by the other two, and the average solution times are given for wall-clock
and cpu-time with standard deviation.
      </p>
      <p>Table 2 gives further statistics comparing the two scheduling variations with
the baseline. For the purposes of this table we only compare the results on
problems that both the given variation and baseline solve and where the di erence
between solution times is greater than 1 second. This second part is important as
it allows for small variations in solution times due to natural non-determinism2.
2 This allowance is often not made but it can heavily skew results. Without it all
variations look almost identical as the cases where variations behave in the same
way dominate. This does not indicate that the variations are not an improvement,
Speedup is a multiplication factor (a speedup of 2 means a proof was found in
half the time), similarly for slowdown. Better means that the given variation was
faster, whereas worse means that the variation was slower.</p>
      <p>Discussion An immediate observation is that the overall number of problems
solved is slightly worse for the variations performing scheduling. An immediate
explanation for this could be that the strategies in the portfolio mode might still
be quite fragile i.e. their performance might be degrading with the small overhead
of context-switching and additional memory contention. Further experiments
could explore this by using more generic strategies with longer individual time
limits (many strategies in CASC mode run for less than 1 second). However, the
overall number of problems solved is still high enough to make the result useful.
The new problems solved by the scheduling variations could also be attributed
to this non-determinism, suggesting again that more e ort should be spent to
provide a broader set of complementary strategies to choose from. We note that
one explanation for this second e ect could have been if the strategy schedule
but there are many cases where there is no di erence. The most likely explanation
for this is that solutions are quick and no scheduling is required e.g. if the problem
is solved during preprocessing.
was longer than the time given and prediction moved a strategy into the allowed
time. This is a behaviour we might expect for short time limits but for this
experiment all strategies were run.</p>
      <p>The average solution times are improved with the two variations and the
variation using prediction achieves the best solution time on average. When
looking at the more detailed results of Table 2 we see that in the majority of
cases the prediction variant was faster than the baseline, which was not the case
when no prediction was applied. Furthermore, the impact of getting it wrong
was larger without prediction (i.e. the slowdown is bigger).
8</p>
    </sec>
    <sec id="sec-8">
      <title>Conclusions and future work</title>
      <p>The aim of these experiments was to improve Vampire's overall performance, if
not in the number of total theorems proved, but in the average time taken to
prove problems. This approach has been shown to produce a signi cant increase
in speed without an excessive penalty in the number of problems solved.</p>
      <p>There are several routes that could be explored in order to further improve
performance. As well as improving predictor performance by use of more
sophisticated data curation, processing, and machine-learning techniques, it may also
be possible to improve the nave scheduling algorithm. Further research might
include designing scheduling algorithms which keep predictions as up-to-date as
possible, maximise processor utilisation, minimise memory usage/swapping,
reduce context-switching overhead, or even minimise the number of required calls
to the prediction algorithm.</p>
      <p>
        This form of optimisation for Vampire is relatively novel: historically the
aim of the team has been to prove as many theorems as possible, rather than
to improve the speed of moderately-hard problem solving. As immediate
impact, these developments may be useful in improving Vampire's performance in
the new SLH division in the CASC competition, as well as improving the
overall usability of ITP via quicker \hammer" results, such as those reported via
Sledgehammer [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Mart</surname>
          </string-name>
          n Abadi, Paul Barham, Jianmin Chen, Zhifeng Chen, Andy Davis,
          <source>Je rey Dean</source>
          , Matthieu Devin, Sanjay Ghemawat, Geo rey Irving,
          <string-name>
            <given-names>Michael</given-names>
            <surname>Isard</surname>
          </string-name>
          , et al.
          <article-title>Tensor ow: A system for large-scale machine learning</article-title>
          .
          <source>In OSDI</source>
          , volume
          <volume>16</volume>
          , pages
          <fpage>265</fpage>
          {
          <fpage>283</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>L.</given-names>
            <surname>Bachmair</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Ganzinger</surname>
          </string-name>
          .
          <article-title>Resolution theorem proving</article-title>
          .
          <source>In A. Robinson and A</source>
          . Voronkov, editors,
          <source>Handbook of Automated Reasoning, volume I, chapter 2</source>
          , pages
          <fpage>19</fpage>
          {
          <fpage>99</fpage>
          .
          <string-name>
            <surname>Elsevier</surname>
            <given-names>Science</given-names>
          </string-name>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Clark</surname>
            <given-names>Barrett</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Cesare</given-names>
            <surname>Tinelli</surname>
          </string-name>
          , et al.
          <article-title>The smt-lib standard: Version 2</article-title>
          .0.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>James</surname>
            <given-names>P Bridge</given-names>
          </string-name>
          , Sean B Holden, and Lawrence C Paulson.
          <article-title>Machine learning for rst-order theorem proving</article-title>
          .
          <source>Journal of automated reasoning</source>
          ,
          <volume>53</volume>
          (
          <issue>2</issue>
          ):
          <volume>141</volume>
          {
          <fpage>172</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Francois</given-names>
            <surname>Chollet</surname>
          </string-name>
          et al. Keras. https://keras.io,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Junyoung</given-names>
            <surname>Chung</surname>
          </string-name>
          , Caglar Gulcehre, Kyunghyun Cho, and
          <string-name>
            <given-names>Yoshua</given-names>
            <surname>Bengio</surname>
          </string-name>
          .
          <article-title>Gated feedback recurrent neural networks</article-title>
          .
          <source>In International Conference on Machine Learning</source>
          , pages
          <year>2067</year>
          {
          <year>2075</year>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Morgan Deters, Andrew Reynolds, Tim King, Clark W. Barrett, and
          <string-name>
            <given-names>Cesare</given-names>
            <surname>Tinelli</surname>
          </string-name>
          .
          <article-title>A tour of CVC4: how it works, and how to use it</article-title>
          . In Formal Methods in ComputerAided Design,
          <source>FMCAD</source>
          <year>2014</year>
          , Lausanne, Switzerland,
          <source>October 21-24</source>
          ,
          <year>2014</year>
          , page
          <issue>7</issue>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>H.</given-names>
            <surname>Ganzinger</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Korovin</surname>
          </string-name>
          .
          <article-title>New directions in instantiation-based theorem proving</article-title>
          .
          <source>In Proc. LICS'03</source>
          , pages
          <fpage>55</fpage>
          {
          <fpage>64</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. Geo rey Irving, Christian Szegedy,
          <article-title>Alexander A Alemi, Niklas Een, Francois Chollet, and Josef Urban</article-title>
          .
          <article-title>DeepMath | deep sequence models for premise selection</article-title>
          .
          <source>In Advances in Neural Information Processing Systems</source>
          , pages
          <fpage>2235</fpage>
          {
          <fpage>2243</fpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Cezary</surname>
            <given-names>Kaliszyk</given-names>
          </string-name>
          , Stephan Schulz, Josef Urban, and
          <string-name>
            <given-names>Jir</given-names>
            <surname>Vyskocil</surname>
          </string-name>
          .
          <source>System description: Et</source>
          <volume>0</volume>
          .1. In International Conference on Automated Deduction, pages
          <volume>389</volume>
          {
          <fpage>398</fpage>
          . Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Cezary</given-names>
            <surname>Kaliszyk</surname>
          </string-name>
          and
          <string-name>
            <given-names>Josef</given-names>
            <surname>Urban</surname>
          </string-name>
          .
          <article-title>FEMaLeCoP: Fairly e cient machine learning connection prover</article-title>
          .
          <source>In Logic for Programming</source>
          ,
          <source>Arti cial Intelligence, and Reasoning</source>
          , pages
          <volume>88</volume>
          {
          <fpage>96</fpage>
          . Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>K.</given-names>
            <surname>Korovin</surname>
          </string-name>
          .
          <article-title>iProver { an instantiation-based theorem prover for rst-order logic (system description)</article-title>
          . In A. Armando,
          <string-name>
            <given-names>P.</given-names>
            <surname>Baumgartner</surname>
          </string-name>
          , and G. Dowek, editors,
          <source>Proceedings of the 4th International Joint Conference on Automated Reasoning, (IJCAR</source>
          <year>2008</year>
          ), volume
          <volume>5195</volume>
          of Lecture Notes in Computer Science, pages
          <volume>292</volume>
          {
          <fpage>298</fpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>Laura</given-names>
            <surname>Kovacs</surname>
          </string-name>
          and
          <string-name>
            <given-names>Andrei</given-names>
            <surname>Voronkov</surname>
          </string-name>
          .
          <article-title>First-order theorem proving and Vampire</article-title>
          . In International Conference on Computer Aided Veri cation, pages
          <volume>1</volume>
          {
          <fpage>35</fpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Alex</surname>
            <given-names>Krizhevsky</given-names>
          </string-name>
          , Ilya Sutskever, and
          <string-name>
            <surname>Geo</surname>
            rey
            <given-names>E</given-names>
          </string-name>
          <string-name>
            <surname>Hinton</surname>
          </string-name>
          .
          <article-title>Imagenet classi cation with deep convolutional neural networks</article-title>
          .
          <source>In Advances in neural information processing systems</source>
          , pages
          <volume>1097</volume>
          {
          <fpage>1105</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Daniel Kuhlwein, Jasmin Christian Blanchette, Cezary Kaliszyk, and Josef Urban.
          <article-title>MaSh: machine learning for sledgehammer</article-title>
          .
          <source>In International Conference on Interactive Theorem Proving</source>
          , pages
          <volume>35</volume>
          {
          <fpage>50</fpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. Daniel Kuhlwein, Stephan Schulz, and
          <string-name>
            <given-names>Josef</given-names>
            <surname>Urban</surname>
          </string-name>
          .
          <article-title>E-MaLeS 1.1</article-title>
          . In International Conference on Automated Deduction, pages
          <volume>407</volume>
          {
          <fpage>413</fpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. Daniel Kuhlwein, Stephan Schulz, and
          <string-name>
            <given-names>Josef</given-names>
            <surname>Urban</surname>
          </string-name>
          .
          <article-title>E-MaLeS 1.1</article-title>
          . In International Conference on Automated Deduction, pages
          <volume>407</volume>
          {
          <fpage>413</fpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. Daniel Kuhlwein and
          <string-name>
            <given-names>Josef</given-names>
            <surname>Urban</surname>
          </string-name>
          .
          <article-title>Males: A framework for automatic tuning of automated theorem provers</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          ,
          <volume>55</volume>
          (
          <issue>2</issue>
          ):
          <volume>91</volume>
          {
          <fpage>116</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Sarah</surname>
            <given-names>Loos</given-names>
          </string-name>
          , Geo rey Irving, Christian Szegedy, and
          <string-name>
            <given-names>Cezary</given-names>
            <surname>Kaliszyk</surname>
          </string-name>
          .
          <article-title>Deep network guided proof search</article-title>
          .
          <source>arXiv preprint arXiv:1701.06972</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>William</given-names>
            <surname>McCune</surname>
          </string-name>
          and
          <string-name>
            <given-names>Larry</given-names>
            <surname>Wos</surname>
          </string-name>
          .
          <article-title>Otter | the CADE-13 competition incarnations</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          ,
          <volume>18</volume>
          (
          <issue>2</issue>
          ):
          <volume>211</volume>
          {
          <fpage>220</fpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. Lawrence C Paulson and
          <article-title>Jasmin Christian Blanchette</article-title>
          .
          <article-title>Three years of experience with sledgehammer, a practical link between automatic and interactive theorem provers</article-title>
          .
          <source>IWIL-2010</source>
          , 1,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>F.</given-names>
            <surname>Pedregosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Varoquaux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gramfort</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Michel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Thirion</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Grisel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Blondel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Prettenhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Weiss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Dubourg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vanderplas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Passos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Cournapeau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brucher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Perrot</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Duchesnay</surname>
          </string-name>
          .
          <article-title>Scikit-learn: Machine learning in Python</article-title>
          .
          <source>Journal of Machine Learning Research</source>
          ,
          <volume>12</volume>
          :
          <fpage>2825</fpage>
          {
          <fpage>2830</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>J Ross Quinlan</surname>
          </string-name>
          .
          <article-title>Learning e cient classi cation procedures and their application to chess end games</article-title>
          .
          <source>In Machine Learning</source>
          , Volume I, pages
          <volume>463</volume>
          {
          <fpage>482</fpage>
          .
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          ,
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>Giles</given-names>
            <surname>Reger</surname>
          </string-name>
          and
          <string-name>
            <given-names>Martin</given-names>
            <surname>Suda</surname>
          </string-name>
          .
          <article-title>Measuring progress to predict success: Can a good proof strategy be evolved</article-title>
          ?
          <source>AITP</source>
          <year>2017</year>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Giles</surname>
            <given-names>Reger</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Martin</given-names>
            <surname>Suda</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Andrei</given-names>
            <surname>Voronkov</surname>
          </string-name>
          .
          <article-title>The challenges of evaluating a new feature in Vampire</article-title>
          .
          <source>In Vampire Workshop</source>
          , pages
          <volume>70</volume>
          {
          <fpage>74</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Giles</surname>
            <given-names>Reger</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Martin</given-names>
            <surname>Suda</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Andrei</given-names>
            <surname>Voronkov</surname>
          </string-name>
          .
          <article-title>Playing with AVATAR</article-title>
          . In P. Amy Felty and Aart Middeldorp, editors,
          <source>Automated Deduction - CADE-25: 25th International Conference on Automated Deduction</source>
          , Berlin, Germany,
          <source>August 1-7</source>
          ,
          <year>2015</year>
          , Proceedings, pages
          <volume>399</volume>
          {
          <fpage>415</fpage>
          ,
          <string-name>
            <surname>Cham</surname>
          </string-name>
          ,
          <year>2015</year>
          . Springer International Publishing.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Giles</surname>
            <given-names>Reger</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Martin</given-names>
            <surname>Suda</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Andrei</given-names>
            <surname>Voronkov</surname>
          </string-name>
          .
          <article-title>Finding nite models in multisorted rst-order logic</article-title>
          . In Nadia Creignou and Daniel Le Berre, editors,
          <source>Theory and Applications of Satis ability Testing { SAT</source>
          <year>2016</year>
          : 19th International Conference, Bordeaux, France,
          <source>July 5-8</source>
          ,
          <year>2016</year>
          , Proceedings, pages
          <volume>323</volume>
          {
          <fpage>341</fpage>
          . Springer International Publishing,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>A.</given-names>
            <surname>Riazanov</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Voronkov</surname>
          </string-name>
          .
          <article-title>Limited resource strategy in resolution theorem proving</article-title>
          .
          <source>J. Symb. Comp.</source>
          ,
          <volume>36</volume>
          (
          <issue>1-2</issue>
          ):
          <volume>101</volume>
          {
          <fpage>115</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29. David E Rumelhart, Geo rey
          <string-name>
            <given-names>E</given-names>
            <surname>Hinton</surname>
          </string-name>
          , and
          <string-name>
            <surname>Ronald J Williams</surname>
          </string-name>
          .
          <article-title>Learning representations by back-propagating errors</article-title>
          .
          <source>nature</source>
          ,
          <volume>323</volume>
          (
          <issue>6088</issue>
          ):
          <fpage>533</fpage>
          ,
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>Stephan</given-names>
            <surname>Schulz</surname>
          </string-name>
          . E |
          <article-title>a brainiac theorem prover</article-title>
          .
          <source>AI Communications</source>
          ,
          <volume>15</volume>
          (
          <issue>2</issue>
          , 3):
          <volume>111</volume>
          {
          <fpage>126</fpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Aaron</surname>
            <given-names>Stump</given-names>
          </string-name>
          , Geo Sutcli e, and Cesare Tinelli.
          <article-title>StarExec, a cross community logic solving service</article-title>
          . https://www.starexec.org,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32. G.
          <article-title>Sutcli e. The TPTP problem library and associated infrastructure, from CNF to TH0</article-title>
          ,
          <source>TPTP v6.4.0. Journal of Automated Reasoning</source>
          ,
          <volume>59</volume>
          (
          <issue>4</issue>
          ):
          <volume>483</volume>
          {
          <fpage>502</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33. Geo Sutcli e
          <string-name>
            <given-names>and Christian</given-names>
            <surname>Suttner</surname>
          </string-name>
          .
          <article-title>The state of CASC</article-title>
          .
          <source>AI Communications</source>
          ,
          <volume>19</volume>
          (
          <issue>1</issue>
          ):
          <volume>35</volume>
          {
          <fpage>48</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Johan</surname>
            <given-names>AK</given-names>
          </string-name>
          <article-title>Suykens and Joos Vandewalle. Least squares support vector machine classi ers</article-title>
          .
          <source>Neural processing letters</source>
          ,
          <volume>9</volume>
          (
          <issue>3</issue>
          ):
          <volume>293</volume>
          {
          <fpage>300</fpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35. Josef Urban.
          <article-title>MaLARea: a metasystem for automated reasoning in large theories</article-title>
          .
          <source>ESARLT</source>
          ,
          <volume>257</volume>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <surname>Josef</surname>
            <given-names>Urban</given-names>
          </string-name>
          , Jir Vyskocil, and
          <string-name>
            <surname>Petr Stepanek.</surname>
          </string-name>
          <article-title>MaLeCoP machine learning connection prover</article-title>
          .
          <source>In International Conference on Automated Reasoning with Analytic Tableaux and Related Methods</source>
          , pages
          <volume>263</volume>
          {
          <fpage>277</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <given-names>Andrei</given-names>
            <surname>Voronkov</surname>
          </string-name>
          . AVATAR:
          <article-title>The architecture for rst-order theorem provers</article-title>
          .
          <source>In Armin Biere and Roderick Bloem</source>
          , editors,
          <source>Computer Aided Veri cation</source>
          , volume
          <volume>8559</volume>
          of Lecture Notes in Computer Science, pages
          <volume>696</volume>
          {
          <fpage>710</fpage>
          . Springer International Publishing,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <surname>Mingzhe</surname>
            <given-names>Wang</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Yihe</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Jian</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Jia</given-names>
            <surname>Deng</surname>
          </string-name>
          .
          <article-title>Premise selection for theorem proving by deep graph embedding</article-title>
          .
          <source>In Advances in Neural Information Processing Systems</source>
          , pages
          <fpage>2783</fpage>
          {
          <fpage>2793</fpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>