<!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>Deduction as a Service</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mohamed Bassem Hassona</string-name>
          <email>mohamed.hassona@student.guc.edu.eg</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>German University in Cairo</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <fpage>32</fpage>
      <lpage>40</lpage>
      <abstract>
        <p>We describe a system o ering deduction (over a xed but exible background theory) as a service, provided to a client via a network connection. The deduction server maintains the (potentially) large background knowledge base in a form that makes processing of individual conjectures and queries easy and avoids most of the overhead of reading and analyzing large background theories for each individual job. The client connects to the server, can update the background theory by adding and removing client-side or server-side axiom sets, and ask the server to solve proof problems on its behalf. This o ers several bene ts: Preprocessing costs can be amortized over multiple proof attempts. The user can be isolated from the complexities of a locally installed ATP system (and indeed locally maintained knowledge bases). Finally, the deduction server can easily o er true strategy parallelism even with sequential back-end theorem provers. This paper describes the architecture, the communication protocol, and the implementation of a deduction server based on E. First experimental results demonstrate the feasibility of the technology and the performance bene ts possible with this approach.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Classical automated theorem proving has long been concerned with solving individual problems, one at a time.
Moreover, problems have often been hand-optimized, either to solve a particular mathematical question, or
to analyze and demonstrate the performance of di erent theorem proving strategies (see e.g. [
        <xref ref-type="bibr" rid="ref8">9</xref>
        ]). One of the
best-knows examples is McCune's formalization and ultimate proof of the Robbins problem [
        <xref ref-type="bibr" rid="ref7">8</xref>
        ].
      </p>
      <p>
        However, in recent years, theorem provers have been used in a very di erent setting. Users have developed
large theories, either by large-scale manual coding of knowledge as in Cyc [
        <xref ref-type="bibr" rid="ref13">14</xref>
        ] or SUMO [
        <xref ref-type="bibr" rid="ref11">12</xref>
        ], by organized
e orts to formalize signi cant parts of mathematics (e.g. MIZAR [20], or more recently Flyspeck [
        <xref ref-type="bibr" rid="ref2">3</xref>
        ]), or from
the veri cation of large systems like the sel4 micro-kernel [
        <xref ref-type="bibr" rid="ref5">6</xref>
        ]. These theories are typically developed in either an
interactive theorem prover, or in authoring environment like Sigma-KEE [
        <xref ref-type="bibr" rid="ref12">13</xref>
        ]. Automated theorem provers can
be used to dispose a signi cant number of sub-problems that can be translated into rst-order logic. Examples
are MizAR for MIZAR and the various \Hammers" for Isabelle [
        <xref ref-type="bibr" rid="ref1 ref10 ref9">11, 10, 1</xref>
        ] and HOL Light/HOL 4 [
        <xref ref-type="bibr" rid="ref4">5, 2</xref>
        ].
Communication between interactive and local automatic systems is usually via an ad-hoc protocol. As a fallback,
some interactive prover also use the TPTP World web service [
        <xref ref-type="bibr" rid="ref17">18</xref>
        ] to invoke remotely installed ATP systems.
      </p>
      <p>
        In these newer use cases, the theorem prover proves and reproves many di erent theorems over a large and
mostly static background theory. Typically, the background theory has thousands to millions of axioms, only a
small fraction of which is used for any given proof. Premise selection techniques [
        <xref ref-type="bibr" rid="ref3 ref6">4, 7, 2</xref>
        ] enable provers to handle
such large problems. However, for large problems, parsing and preprocessing takes signi cant amounts of time.1
      </p>
      <p>In this paper, we suggest a di erent paradigm. Deduction, over a xed but exible base theory, is o ered as a
network service. The deduction server maintains a knowledge base of several pre-loaded background
axiomatization. The user can connect to the server, select speci c parts of the knowledge base, add additional assumptions,
and then request a proof from the server. The server combines the pre-loaded and pre-indexed background
theory with the new formulas provided by the user, runs several premise selection strategies to generate ATP
problems, and runs several ATP instances with di erent heuristics to try to solve the problem. If one of the
server processes nds a proof, it is handed back to the client.</p>
      <p>This approach has a number of advantages. First, the cost of loading and pre-processing the large background
theory is amortized over many di erent proof problems. Proofs to individual problems are often found fast and
with low latency. The user can prepare and issue queries from a local desktop, while the deduction server can
be shared by several users and run on powerful server hardware. Indeed, the user does not even need to know
how to install or invoke ATP systems, since the server can be centrally installed and maintained.</p>
      <p>
        We have developed a suitable communication protocol and implemented a deduction server based on the
theorem prover E[
        <xref ref-type="bibr" rid="ref14 ref15">15, 16</xref>
        ] and its libraries of data types and algorithms for deduction. First results show that the
approach is feasible, and that the overhead for processing large problems can be signi cantly reduced. In the
following sections we describe the design, architecture, and implementation of the deduction server, and provide
data about a rst experimental evaluation.
      </p>
      <p>The system is available at http://www.eprover.eu/E-eu/DedServer.html, and will become part of future
distributions of E.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Client-Server Architecture</title>
      <sec id="sec-2-1">
        <title>Deduction Server</title>
        <p>The deduction server is the central component for o ering Deduction as a Service. It maintains the current state
of the knowledge base, accepts connections from clients, reads and processes their requests, runs deduction jobs
on behalf of the clients, and transmits the results back to the client. The main architectural components of the
server are the knowledge base, the TCP interface, the axiom lter, and the execution module.</p>
        <p>At start-up, the server starts listening on a user-speci ed port for incoming TCP connections. Whenever a
client tries to connect to the server on that port, a process is forked from the main process to serve the client.
The server can thus handle several di erent connections at the same time, and each client is completely isolated
from other clients connected to the server.</p>
        <p>
          The client interacts with the server using the protocol speci ed in section 2.3. The server implements a typical
read-execute-print loop, accepting commands from the client, executing them, and sending the results back to
the client. The client can upload axiom sets, remove them, and query the server for proofs and answers (i.e.
instantiations of variables that make an existentially quanti ed query formula true [
          <xref ref-type="bibr" rid="ref18">19</xref>
          ]).
        </p>
        <p>Whenever the client uploads a set of axioms, the server parses the axioms, adds them to various indexes useful
for axiom selection/pruning methods, and adds them to the in-memory knowledge base. However, these uploaded
axiom sets will not automatically be used by each proof attempt, but only when the client has also activated (or
staged ) the particular set in the current session. Thus, the server maintains a pre-indexed, ready-to-use library
of axiom sets. In addition to axiom sets uploaded by the client, the server can also o er access to axiom sets
1As an example, E takes around 54 seconds (on a system with a 4 GHz Intel i7 and a fast SSD) just to parse the TPTP problem
CSR073+6.p, a rst-order problem based on OpenCyc with nearly 3.5 million axioms and taking up 480 MB. Indexing for SInE axiom
selection takes a further 2 seconds, while more than half of successful proof attempts need less than 1 second.
stored in a server-side library on disk. Axioms loaded by the server on start-up are available to all users, while
axiom sets added by a user during a session are currently only available in that session.</p>
        <p>After the client chooses some axiom sets to be used in the proof search, it can start querying the server.
The query consists of optional query-speci c axioms and a conjecture. These additional formulas are discarded
immediately after the query has been processed. The server adds the new axiom set to the currently staged part
of the knowledge base and hands the problem to the axiom lter. The axiom lter module applies one or multiple
di erent relevancy pruning strategies to the extended knowledge base. Each of the pruning strategies produces
one much smaller proof problem. The pruned problems are passed to the execution module, which starts several
instances of E in parallel and monitors their success or failure. Whenever one of the running E instances nds a
proof for the conjecture, the other instances are stopped and the proof is returned back to the user. Currently,
all instanced of E use its conventional automatic mode, and rely on the di erent pruning strategies to provide
diversity for the proof attempt.</p>
        <p>The rough architecture of the deduction server is shown in Figure 1.</p>
        <p>The deduction server is written in C and integrated with the E distribution. It uses the E libraries and data
types to parse and represent logical formulas, to maintain and process rst order knowledge bases, and to perform
axiom selection.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>User client</title>
        <p>The E distribution includes a small Python client called \enetcat.py", which can be used to interact with the
server. The client is intended as a reference implementation, to demonstrate the interactions with the server and
enable other developers to use it as a model for interfacing the server with other systems.</p>
        <p>The client requires the address and the port of the deduction server as arguments. It opens a TCP connection
to the server and then reads the user's commands from \stdin", communicates them to the server, and prints
the output back to \stdout".</p>
        <p>In addition to encoding the plain text commands into the distinct length-delimited TCP messages expected
by the server, the client o ers two convenience features. First, it o ers command line editing. Secondly, it locally
expands TPTP style include commands for formula sets to be uploaded to the server. This makes uploading
of even large axioms sets plausible and convenient.</p>
        <p>The current client is tailored towards command-line users. However, the protocol is simple enough to be
implemented in a few lines of code in nearly any modern programming language, making other clients, in
particular a web-based client, easily possible.
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>Communication Protocol</title>
        <p>As mentioned before, the communication between the server and the client is done over TCP to ensure reliability.
TCP messages between the server and the client are encoded in a way to ease the communication between them.
Each TCP messages starts with 4 bytes containing the length of the messages, including those 4 bytes, followed
by the actual message. The commands themselves are plain, human-readable ASCII text.</p>
        <p>We describe the protocol for communication between the server and the client using a running example.
We assume that the connection has already been established and all messages are encoded as described in the
previous paragraph.</p>
        <p>The rst section of the session uploads two small axiom sets to the server.
1 ADD axiom_set1
2 fof(inp1,axiom,(subclass(a,b))).
3 fof(inp2,axiom,(subclass(b,c))).
4 GO
5 &gt;205 ok : added
6
7 ADD axiom_set2
8 fof(inp3,axiom,((subclass(X,Y) &amp; subclass(Y,Z)) =&gt; subclass(X,Z))).
9 GO
10 &gt;205 ok : added</p>
        <p>Each of the \ADD . . . GO" blocks upload one named set of axioms to the system. Axioms uploaded are parsed
and stored in the memory of the server, but are not automatically included in future proof attempts. The server
responds with the success status of each command's execution.
1 STAGE axiom_set1
2 &gt;201 ok : staged
3
4 LIST
5 &gt;Staged :
6 &gt; axiom_set1
7 &gt;Unstaged :
8 &gt; axiom_set2
9 &gt;On Disk :
10 &gt; test.p
11 &gt;200 ok : success
12
13 STAGE axiom_set2
14 &gt;201 ok : staged</p>
        <p>To select axiom sets for future proof attempts, we use the \STAGE" command. It marks the named axiom set
as active for later proof attempts. The \LIST" command provides the status of all axiom sets currently known
to the server. Possible states are Staged, Unstaged (but in memory and pre-indexed for axiom selection), and On
Disk, i.e. known to the server, but not loaded or indexed. Server-side axiom sets can be loaded into the server's
memory using the \LOAD" command.
1 RUN job1
2 fof(inp4,conjecture,(subclass(a,c))).
3 GO
4 # Pid: 27988
5 # Auto-Mode selected heuristic G_E___208_C18_F1_SE_CS_SP_PS_S0Y
6 # and selection function SelectMaxLComplexAvoidPosPred.
7 #
8 # Preprocessing time : 0.010 s
9 # Presaturation interreduction done
10
11 # Proof found!
12 # SZS status Theorem
13 # SZS output start CNFRefutation.
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 #
------------------------------------------------51 # User time : 0.008 s
52 # System time : 0.002 s
53 # Total time : 0.010 s
54 # Maximum resident set size: 2838528 pages
55
56 # Processing finished for job1
57
58 200 ok : success
fof(c_0_0, axiom,
(((subclass(X1,X2)&amp;subclass(X2,X3))=&gt;subclass(X1,X3))),
file('/var/folders/__/ss_kh09s5_l9s1twdz7k5y900000gn/T//epr_VKSv9K',
i_0_3)).
fof(c_0_1, conjecture, (subclass(a,c)),
file('/var/folders/__/ss_kh09s5_l9s1twdz7k5y900000gn/T//epr_VKSv9K',
i_0_4)).
fof(c_0_2, axiom, (subclass(b,c)),
file('/var/folders/__/ss_kh09s5_l9s1twdz7k5y900000gn/T//epr_VKSv9K',
i_0_2)).
fof(c_0_3, axiom, (subclass(a,b)),
file('/var/folders/__/ss_kh09s5_l9s1twdz7k5y900000gn/T//epr_VKSv9K',
i_0_1)).
fof(c_0_4, plain,
(((~subclass(X1,X2)|~subclass(X2,X3))|subclass(X1,X3))),
inference(fof_nnf,[status(thm)],[c_0_0])).
fof(c_0_5, negated_conjecture, (~subclass(a,c)),
inference(fof_simplification,[status(thm)],[inference(assume_negation,
[status(cth)],[c_0_1])])).
cnf(c_0_6, plain, (subclass(X1,X2)|~subclass(X3,X2)|~subclass(X1,X3)),
inference(split_conjunct,[status(thm)],[c_0_4])).
cnf(c_0_7, plain, (subclass(b,c)), inference(split_conjunct,
[status(thm)],[c_0_2])).
cnf(c_0_8, negated_conjecture, (~subclass(a,c)),
inference(split_conjunct,[status(thm)],[c_0_5])).
cnf(c_0_9, plain, (subclass(X1,c)|~subclass(X1,b)),
inference(spm,[status(thm)],[c_0_6, c_0_7])).
cnf(c_0_10, plain, (subclass(a,b)), inference(split_conjunct,
[status(thm)],[c_0_3])).
cnf(c_0_11, negated_conjecture, ($false), inference(cn,[status(thm)],
[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_8,
c_0_9]),
c_0_10])]), ['proof']).
# SZS output end CNFRefutation.</p>
        <p>After staging the needed axioms, we can start running a job with \RUN . . . GO" block. Formulas introduced in
the RUN command block are used only temporally for this particular job, and are discarded after its termination.
These formulas typically contain the conjecture, but can also include additional axioms and assumptions. If the
server succeeds in proving the conjecture, it provides back the logical status of the query, and can also include
a proof object.
1 UNSTAGE axiom_set2
CSR025+6.p CSR026+6.p CSR027+6.p CSR028+6.p CSR029+6.p CSR030+6.p
CSR031+6.p CSR032+6.p CSR033+6.p CSR034+6.p CSR035+6.p CSR036+6.p
CSR037+6.p CSR038+6.p CSR039+6.p CSR040+6.p CSR041+6.p CSR042+6.p
CSR043+6.p CSR044+6.p CSR045+6.p CSR046+6.p CSR047+6.p CSR048+6.p
CSR049+6.p CSR050+6.p CSR051+6.p CSR052+6.p CSR053+6.p CSR054+6.p
CSR055+6.p CSR056+6.p CSR057+6.p CSR058+6.p CSR059+6.p CSR060+6.p
CSR061+6.p CSR062+6.p CSR063+6.p CSR064+6.p CSR065+6.p CSR066+6.p
CSR067+6.p CSR068+6.p CSR069+6.p CSR070+6.p CSR071+6.p CSR072+6.p
CSR073+6.p CSR074+6.p CSR111+6.p</p>
        <p>Axiom sets can also be \UNSTAGE"d or \REMOVE"d completely from the system. Axiom sets can be retrieved
from the server using the \DOWNLOAD" command. The example shows how we remove one of the axiom sets
and re-run the job. Without the necessary axioms, the proof is not found.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Evaluation</title>
      <p>
        For the experimental evaluation, we selected a set of large problems with a common axiomatization from the
TPTP library [
        <xref ref-type="bibr" rid="ref16">17</xref>
        ], version 6.0.0. In particular, we used all problems that include the axiom set CSR002+5.ax, a
translation of the OpenCyc knowledge base into rst-order logic [
        <xref ref-type="bibr" rid="ref13">14</xref>
        ]. The axiom set contains 3 341 983 axioms
and occupies about 479 megabytes disk space in TPTP format. It is used by 51 problems, each of which combines
it with a single unique conjecture. See Figure 2 for the list of problems.
      </p>
      <p>To illustrate the comparative performance of the service model and the conventional one-problem-at-a-time
model, we con gured both versions to run exactly the same problems with exactly the same pruning parameters
and E's sequential automatic mode. In particular, the server did not employ any strategy parallelism in pruning
or search, but rather selected the same search strategy than the stand-alone prover for each a given problem.</p>
      <p>The systems were given a time limit of 30 seconds for actual proof search, in addition to the time taken for
parsing and axiom selection for the standalone version (about 110 seconds per problem on this hardware, with
some variation). Memory was limited to 1024MB. Tests were performed on a virtualized server with 8 2.6 GHz
Intel CPUs, of which only one was e ectively utilized by our test setup. With this con guration, both setups
solved 41 of the 51 problems.</p>
      <p>We recorded the time taken after 5, 10, 20, 30, 40 and all 51 problems.</p>
      <p>The results in Figure 3 show the di erence between the single strategy server mode and the conventional
prover. The gure shows the accumulated wall-clock time over the number of problems for which a proof was
attempted. In the conventional case, the prover has to parse and index the axiom set for each proof attempt.
In the deduction server, the axioms are parsed and indexed for axiom selection only once. The are then kept in
the server's memory and multiple queries can be executed against this axiom set. Thus, the pre-processing time
of each problem in the single strategy server mode is amortized over multiple runs.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>We have described the rst implementation of a Deduction Server and have introduced a communication protocol
that supports remote reasoning over largely xed but exible domains as a service. Our results shows that the
deduction server, even if con gured for identical pruning and search strategies, improves the run time for sets of
related problems by a signi cant amount, due to the amortization of costs for parsing and the indexing needed
for axiom selection. This clearly shows that the approach is feasible and has promise even if looking at it only
from a performance point of view.</p>
      <p>In addition to these performance bene ts, having a formal protocol to communicate with the prover over the
net makes integrating it with other applications much easier. Having access to a remotely running prover is a win
for those who can't install provers locally, e.g. for OS compatibility issues or due to insu cient local computing
resources.</p>
      <p>Future work includes improved multi-user support, in particular controlling both access, but also the resources,
such as CPU time and memory, allocated for each user. Another important step would be the integration of
multiple deduction systems in the back-end, to improve overall performance. This would o er a single interface
to potentially very diverse deduction systems.</p>
      <p>Finally, the Deduction Server can be extended to a cluster of servers, to o er real scalable deduction as a
service. In the simplest version, a single head node accepts and processes user commands, pre-processes the
problems, and distributes the deduction jobs to di erent servers. An even more scalable version would maintain
di erent user sessions with the current axiomatization on dedicated machines, so that axiom selection can also
be distributed.
[20] Andrzej Trybulec and Howard A. Blair. Computer assisted reasoning with MIZAR. In Proc. of the 9th
IJCAI, Los Angeles, volume 85, pages 26{28. Morgan Kaufmann, 1985.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Sascha</given-names>
            <surname>Bo</surname>
          </string-name>
          <article-title>hme and Tobias Nipkow. Sledgehammer: Judgement Day</article-title>
          . In Jurgen Giesel and Reiner Hahnle, editors,
          <source>Proc. of the 5th IJCAR, Edinburgh</source>
          , volume
          <volume>6173</volume>
          <source>of LNAI</source>
          , pages
          <volume>107</volume>
          {
          <fpage>121</fpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Thomas</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Hales</surname>
          </string-name>
          , John Harrison,
          <string-name>
            <surname>Sean</surname>
            <given-names>McLaughlin</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Tobias</given-names>
            <surname>Nipkow</surname>
          </string-name>
          , Steven Obua, and
          <string-name>
            <given-names>Roland</given-names>
            <surname>Zumkeller</surname>
          </string-name>
          .
          <article-title>A revision of the proof of the Kepler conjecture</article-title>
          . In Je rey C. Lagarias, editor,
          <source>The Kepler Conjecture</source>
          , pages
          <volume>341</volume>
          {
          <fpage>376</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Krystof</given-names>
            <surname>Hoder</surname>
          </string-name>
          and
          <string-name>
            <given-names>Andrei</given-names>
            <surname>Voronkov</surname>
          </string-name>
          .
          <article-title>Sine Qua Non for Large Theory Reasoning</article-title>
          . In Nikolaj Bj rner and Viorica Sofronie-Stokkermans, editors,
          <source>Proc. of the 23rd CADE, Wroclav</source>
          , volume
          <volume>6803</volume>
          <source>of LNAI</source>
          , pages
          <volume>299</volume>
          {
          <fpage>314</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [5]
          <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>Learning-assisted automated reasoning with Flyspeck</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          ,
          <volume>53</volume>
          (
          <issue>2</issue>
          ):
          <volume>173</volume>
          {
          <fpage>213</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Gerwin</given-names>
            <surname>Klein</surname>
          </string-name>
          , Kevin Elphinstone, Gernot Heiser, June Andronick, David Cock,
          <string-name>
            <given-names>Philip</given-names>
            <surname>Derrin</surname>
          </string-name>
          , Dhammika Elkaduwe, Kai Engelhardt, Rafal Kolanski, Michael Norrish, Thomas Sewell, Harvey Tuch, and
          <string-name>
            <given-names>Simon</given-names>
            <surname>Winwood</surname>
          </string-name>
          . seL4:
          <article-title>Formal veri cation of an OS kernel</article-title>
          .
          <source>In Proc. of the 22nd ACM Symposium on Principles of Operating Systems (SOSPS)</source>
          , Big Sky, Montana, USA,
          <year>October 2009</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Daniel</given-names>
            <surname>Ku</surname>
          </string-name>
          hlwein, Twan van Laarhoven,
          <string-name>
            <surname>Evgeni Tsivtsivadze</surname>
          </string-name>
          , Josef Urban, and Tom Heskes.
          <article-title>Overview and evaluation of premise selection techniques for large theory mathematics</article-title>
          . In Bernhard Gramlich, Ulrike Sattler, and Dale Miller, editors,
          <source>Proc. of the 6th IJCAR, Manchester</source>
          , volume
          <volume>7364</volume>
          <source>of LNAI</source>
          , pages
          <volume>378</volume>
          {
          <fpage>392</fpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>William</given-names>
            <surname>McCune</surname>
          </string-name>
          .
          <article-title>Solution of the Robbins problem</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          ,
          <volume>19</volume>
          (
          <issue>3</issue>
          ):
          <volume>263</volume>
          {
          <fpage>276</fpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [9]
          <string-name>
            <surname>W.W. McCune.</surname>
          </string-name>
          33
          <string-name>
            <given-names>Basic</given-names>
            <surname>Test</surname>
          </string-name>
          <article-title>Problems: A Practical Evaluation of Some Paramodulation Strategies</article-title>
          . In R. Vero , editor,
          <source>Automated Reasoning and its Applications: Essays in Honor of Larry Wos, chapter 5</source>
          , pages
          <fpage>71</fpage>
          {
          <fpage>114</fpage>
          . MIT Press,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Jia</given-names>
            <surname>Meng</surname>
          </string-name>
          and Lawrence C. Paulson.
          <article-title>Translating higher-order clauses to rst-order clauses</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          ,
          <volume>40</volume>
          (
          <issue>1</issue>
          ):
          <volume>35</volume>
          {
          <fpage>60</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Jia</given-names>
            <surname>Meng</surname>
          </string-name>
          and Lawrence C. Paulson.
          <article-title>Lightweight relevance ltering for machine-generated resolution problems</article-title>
          .
          <source>Journal of Applied Logics</source>
          ,
          <volume>7</volume>
          (
          <issue>1</issue>
          ):
          <volume>41</volume>
          {
          <fpage>57</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Adam</surname>
            <given-names>Pease</given-names>
          </string-name>
          , Ian Niles,
          <string-name>
            <given-names>and John</given-names>
            <surname>Li</surname>
          </string-name>
          .
          <article-title>The Suggested Upper Merged Ontology: A Large Ontology for the Semantic Web and its Applications</article-title>
          .
          <source>In Working Notes of the AAAI-2002 Workshop on Ontologies and the Semantic Web</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Adam</given-names>
            <surname>Pease</surname>
          </string-name>
          and
          <string-name>
            <given-names>Stephan</given-names>
            <surname>Schulz</surname>
          </string-name>
          .
          <article-title>Knowledge Engineering for Large Ontologies with Sigma KEE 3.0</article-title>
          . In Stephane Demri, Deepak Kapur, and Christoph Weidenbach, editors,
          <source>Proc. of the 7th IJCAR</source>
          , Vienna, volume
          <volume>8562</volume>
          <source>of LNAI</source>
          , pages
          <volume>519</volume>
          {
          <fpage>525</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Deepak</surname>
            <given-names>Ramachandran</given-names>
          </string-name>
          , Pace Reagan, and
          <string-name>
            <given-names>Keith</given-names>
            <surname>Goolsbey</surname>
          </string-name>
          .
          <article-title>First-orderized ResearchCyc: Expressiveness and E ciency in a Common Sense Knowledge Base</article-title>
          . In Pavel Shvaiko, editor,
          <source>Proc. of the AAAI Workshop on Contexts and Ontologies: Theory, Practice</source>
          and
          <string-name>
            <surname>Applications (C&amp;O-2005)</surname>
          </string-name>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S.</given-names>
            <surname>Schulz. E { A Brainiac Theorem</surname>
          </string-name>
          <article-title>Prover</article-title>
          .
          <source>Journal of AI Communications</source>
          ,
          <volume>15</volume>
          (
          <issue>2</issue>
          /3):
          <volume>111</volume>
          {
          <fpage>126</fpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Stephan</given-names>
            <surname>Schulz</surname>
          </string-name>
          .
          <source>System Description: E 1</source>
          .8. In Ken McMillan,
          <string-name>
            <given-names>Aart</given-names>
            <surname>Middeldorp</surname>
          </string-name>
          , and Andrei Voronkov, editors,
          <source>Proc. of the 19th LPAR, Stellenbosch</source>
          , volume
          <volume>8312</volume>
          <source>of LNCS</source>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [17]
          <article-title>Geo Sutcli e</article-title>
          .
          <source>The TPTP Problem Library and Associated Infrastructure: The FOF and CNF Parts, v3.5.0. Journal of Automated Reasoning</source>
          ,
          <volume>43</volume>
          (
          <issue>4</issue>
          ):
          <volume>337</volume>
          {
          <fpage>362</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [18]
          <article-title>Geo Sutcli e. The TPTP World - infrastructure for automated reasoning</article-title>
          . In E. Clarke and
          <string-name>
            <surname>A</surname>
          </string-name>
          . Voronkov, editors,
          <source>Proc. of the 16th LPAR, Dakar, number 6355 in LNAI</source>
          , pages
          <volume>1</volume>
          {
          <fpage>12</fpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Geo</surname>
            <given-names>Sutcli e</given-names>
          </string-name>
          , Mark Stickel, Stephan Schulz, and
          <string-name>
            <given-names>Josef</given-names>
            <surname>Urban</surname>
          </string-name>
          .
          <article-title>Answer Extraction for TPTP</article-title>
          . http: //www.cs.miami.edu/~tptp/TPTP/Proposals/AnswerExtraction.html. (acccessed
          <year>2013</year>
          -
          <volume>07</volume>
          -08).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>