<!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>Non-clausal Connection-based Theorem Proving in Intuitionistic First-Order Logic</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jens Otten</string-name>
          <email>jeotten@leancop.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Informatics, University of Oslo PO</institution>
          <addr-line>Box 1080 Blindern, 0316 Oslo</addr-line>
          ,
          <country country="NO">Norway</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>9</fpage>
      <lpage>20</lpage>
      <abstract>
        <p>This paper introduces a non-clausal connection calculus for intuitionistic first-order logic. It is an extension of the non-clausal connection calculus for classical logic by prefixes and an additional prefix unification, which encode the Kripke semantics of intuitionistic logic. nanoCoP-i is a first implementation of this intuitionistic non-clausal connection calculus. Details of the compact Prolog code are presented, which extends the non-clausal connection prover nanoCoP for classical logic. Experimental evaluations on the ILTP and the TPTP problem libraries show a solid performance of the nanoCoP-i prover. In comparison to the ileanCoP prover, the resulting non-clausal proofs are not only shorter, but can also be more easily translated into, e.g., sequent proofs. Intuitionistic (or constructive) logic is one of the most popular non-classical logics. It is often used when constructing provably correct software, for example within the NuPRL [6] proof development system. Other interactive proof assistants, such as Coq [3], use a constructive logic as well. Hence, automated reasoning in intuitionistic logic is an important task and many applications would benefit from more powerful reasoning tools. During the last decade the development of automated theorem proving (ATP) systems for classical first-order logic has made significant progress. Extending these ATP systems to intuitionistic logic is usually not (easily) possible, as many of the underlying calculi and techniques can not be adapted to intuitionistic logic. Most leading ATP systems for classical logic require the translation of the input formulae into a clausal form, i.e. into disjunctive or conjunctive normal form. For intuitionistic logic there is no validity-preserving translation into such a (simple) clausal form. Nevertheless, ileanCoP, one of the fastest ATP systems for intuitionistic first-order logic, uses a clausal connection calculus and additional prefixes to capture the semantics of intuitionistic logic [16]. While the use of a clausal form technically simplifies the proof search, the standard translation as well as the definitional translation [22] into clausal form introduce a significant overhead into the proof search [17]. Furthermore, a translation into clausal form modifies the structure of the original formula and the translation of the clausal form proof back into one of a more readable proof of the original formula is not straightforward [24, 25]. On the other hand, fully automated theorem provers that use nonclausal calculi, such as standard tableau or sequent calculi, have a significant lower performance [16]. The paper is structured as follows. Section 2 introduces the non-clausal connection calculus for intuitionistic first-order logic, which works on prefixed non-clausal matrices. The non-clausal connection calculus and the prefix unification that is additionally required are presented. An implementation of the intuitionistic non-clausal connection calculus is described in Section 3. It provides details about the non-clausal prefixed matrices, the source code of the non-clausal proof search and the prefix unification algorithm. Section 4 presents an evaluation of the implementation on the ILTP and the TPTP problem libraries. The paper concludes with a short summary and an outlook on future work in Section 5.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>2</p>
    </sec>
    <sec id="sec-2">
      <title>The Intuitionistic Connection Calculus</title>
      <p>The prefixed non-clausal matrix is the main concept used in the intuitionistic connection calculus. The
intuitionistic connection calculus uses prefixes and requires an additional prefix unification algorithm.
2.1</p>
      <sec id="sec-2-1">
        <title>Preliminaries</title>
        <p>The standard notation for first-order formulae is used. Terms (denoted byt) are built up from functions
(denoted by f ), constants and (term) variables (denoted by x). An atomic formula (denoted by A) is
built up from predicate symbols and terms. A (first-order) formula (denoted by F, G, H ) is built up
from atomic formulae, the connectives ¬, ∧, ∨, ⇒, and the standard first-order quantifiers∀ and ∃. A
literal L has the form A or ¬A. Its complement L is A if L is of the form ¬A; otherwise L is ¬L.</p>
        <p>A connection is a set {A, ¬A} of literals with the same predicate symbol but different polarity. A
term substitution σQ assigns terms to variables.</p>
        <p>
          Intuitionistic logic [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] and classical logic share the same syntax, i.e. formulae in both logics use the
same connectives and quantifiers, but theirsemantics is different. For example, the formula
man(Socrates) ∨ ¬man(Socrates)
(1)
is valid in classical logic, but not in intuitionistic logic. This property holds for all formulae of the form
A ∨ ¬A for any atomic formula A. In classical logic this formula is valid as either A is true or ¬A is
true whether A is true or not true. The semantics of intuitionistic logic requires a proof for A or for ¬A.
As this property neither holds for A nor for ¬A, the formula is not valid in intuitionistic logic. Formally,
the semantics of intuitionistic logic is specified by a Kripke semantics [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ].
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Prefixed Non-clausal Matrices</title>
        <p>
          The intuitionistic non-clausal connection calculus is based on Wallen’s matrix characterization [
          <xref ref-type="bibr" rid="ref29 ref30">29, 30</xref>
          ]
and uses prefixes to encode the Kripke semantics for intuitionistic logic.
        </p>
        <p>Definition 2.1 (Prefix). A prefix(denoted by p) is a string, i.e., a sequence of characters over an
alphabet Φ ∪ Ψ, in which Φ is a set of prefix variables(V1, ...) and Ψ is a set of prefix constants(a1, ...).</p>
        <p>
          Semantically, a prefix encodes a sequence of worlds in a Kripke model. Proof-theoretically, prefix
constants and variables represent applications of the rules ¬-right, ⇒-right, ∀-right, and ¬-left, ⇒-left,
∀-left in the sequent calculus [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], respectively. The prefixp of a subformula G, denoted G : p, specifies
the sequence of rules that have to be applied (bottom-up) to obtain G in the sequent. In order to preserve
the atomic formulae that form an axiom in the intuitionistic sequent calculus, their prefixes need to unify
under an intuitionistic substitution σJ . Hence, in the matrix characterization for intuitionistic logic, it is
required that the prefixes of the literals in every connection unify underσJ [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ].
        </p>
        <p>Definition 2.2 (Intuitionistic substitution, σ-complementary). An intuitionistic substitution σJ : Φ →
(Φ ∪ Ψ)∗ maps elements of Φ to strings over Φ ∪ Ψ. For a combined substitution σ := (σQ, σJ ), a
connection {L1 : p1, L2 : p2} is σ-complementary iff σQ(L1) = σQ(L2) and σJ (p1) = σJ (p2).</p>
        <p>
          An additional domain condition on σ ensures that σQ and σJ are mutually consistent [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]. The
irreflexivity test of the reduction ordering [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ] is realized by the occurs check during the term and
prefix unification. To this end, theskolemization technique, originally used to eliminate eigenvariables
in classical logic, is extended and also used for prefix constants in intuitionistic logic [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. For the
extended skolemization, the same skolem function symbol is used for instances of the same subformula,
a technique that is similar to the liberalized δ+-rule in classical tableau calculi [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
        <p>An intuitionistic non-clausal matrix is a set of prefixed clauses, which consist of prefixed literals and
prefixed (sub)matrices. Thepolarity 0 or 1 is used to represent negation in a matrix, i.e. literals of the
form A and ¬A are represented by A0 and A1, respectively,
Definition 2.3 (Intuitionistic non-clausal matrix). Let F be a formula, pol be a polarity, and p be a
prefix. The prefixed (non-clausal) matrix M (F pol:p) of a prefixed formula F pol:p is a set of prefixed
clauses, in which a prefixed clause is a set of prefixed literals and prefixed (non-clausal) matrices, and
defined inductively according to Table 1. G[x\t] denotes the formula G in which all free occurrences of
x are replaced by t. x∗ is a new term variable, t∗ is the Skolem term f ∗(x1, . . . , xn) in which f ∗ is a
new function symbol and x1, . . . , xn are all free term and prefix variables in (∀xG)0 : p or (∃xG)1 : p.
V ∗ is a new prefix variable, a∗ is a prefix constant of the form f ∗(x1, . . . , xn) in which f ∗ is a new
function symbol and x1, . . . , xn are all free term and prefix variables in A0 : p, (¬G)0 : p, (G⇒H)0 : p,
or (∀xG)0 : p. The intuitionistic (non-clausal) matrix M (F ) of F is the prefixed matrix M (F 0 : ε).</p>
        <p>In the graphical representation of a matrix, its clauses are arranged horizontally, while the literals
and (sub-)matrices of each clause are arranged vertically.</p>
        <p>For example, the formula</p>
        <p>( man(Socrates) ⇒ man(Socrates) )
∧ ( ( man(Plato) ∧ ∀x(man(x)⇒mortal(x)) ) ⇒ mortal(Plato) )
has the (simplified, i.e. redundant brackets are removed) intuitionistic non-clausal matrix
{{ {{man(Socrates)0 : a1V1}, {man(Socrates)1 : a1a2}}, {{man(Plato)1 : a3V2},
{man(x)0 : a3V3V4a4(V3, x, V4), mortal(x)1 : a3V3V4V5}, {mortal(Plato)0 : a3a5}} }} ,
and the following graphical representation
 
 
 
man(Socrates)0:a1V1</p>
        <p>man(Socrates)1:a1a2
man(Plato)1:a3V2
 
  .
 
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>An Intuitionistic Non-clausal Connection Calculus</title>
        <p>
          The non-clausal connection calculus for intuitionistic logic extends the non-clausal connection calculus
for classical logic [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] and generalizes the clausal connection calculus for intuitionistic logic [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
According to the matrix characterization of logical validity [
          <xref ref-type="bibr" rid="ref30 ref4 ref5">4, 5, 30</xref>
          ] a formula F is valid, if and only if all
paths through its matrix M (F ) (with added clause copies) contain a σ-complementary connection. The
(non-clausal) connection calculus uses a connection-driven search strategy. In each reduction and
extension step of the calculus a σ-complementary connection is identified and only paths that do not contain
this connection are investigated afterwards. If every path contains a σ-complementary connection, the
proof search succeeds and the given formula is valid. In contrast to sequent calculi, connection calculi
permit a more goal-oriented proof search. This leads to a significantly smaller search space and, thus,
to a more efficient proof search. Anon-clausal connection proof can be illustrated within the graphical
matrix representation.
        </p>
        <p>For example, the proof of formula (2) and its matrix (3) consists of three connections, which
are represented by a line in the following graphical matrix representation. The three connections
are σ-complementary with σ = (σQ, σJ ) and σQ(x) = Plato, σJ (V1) = a2, σJ (V2) = a4(ε, Plato, ε),
σJ (V3) = ε, σJ (V4) = ε, σJ (V5) = a5 (where ε is the empty string).
 
  .
 
(4)
 
 
 
 
man(Socrates)0:a1V1</p>
        <p>man(Socrates)1:a1a2
man(Plato)1:a3V2</p>
        <p>{{man(Socrates)0 : a1}, {man(Socrates)1 : a2}} .</p>
        <p>There is only one connection {man(Socrates)0 : a1, man(Socrates)1 : a2} which is σ-complementary if
the two prefixesa1 and 2 can be unified. There is no substitutionσJ with σJ (a1) = σJ (a2) and, hence,
no connection proof of this matrix. Therefore, the formula man(Socrates) ∨ ¬man(Socrates) is not valid
in intuitionistic logic.</p>
        <p>A few additional concepts are required as follows in order to specify which clauses can be used
within the generalized non-clausal extension rule.</p>
        <p>Definition 2.4 (α-related, parent clause, clause copy). A clause C contains a literal L (or clause C00)
iff L ∈ C or C0 contains L (C = C00 or C0 contains C00) for a matrix M 0 ∈ C with C0∈ M . A clause C
is α-related to a literal L iff it occurs besides L in the graphical matrix representation; more precisely,
C is α-related to a literal L iff {C0, C00} ⊆ M 0 for some matrix M 0 such that C0 contains L and C00
contains C. C0 is a parent clause of C iff M 0 ∈ C0 and C ∈ M 0 for some matrix M 0. In the copy of a
clause C all free variables in C are replaced by fresh variables. M [C1\C2] denotes the matrix M , in
which the clause C1 is replaced by the clause C2.</p>
        <p>For example, in the matrix (3) the clauses {man(Plato)1 : a3V2} and {mortal(Plato)0 : a3a5} are
αrelated. { {{man(Socrates)0 : a1V1}, {man(Socrates)1 : a1a2}}, {{man(Plato)1 : a3V2}, {man(x)0 :
a3V3V4a4(V3, x, V4), mortal(x)1 : a3V3V4V5}, {mortal(Plato)0 : a3a5}} } is the parent clause of all
other clauses in the matrix, e.g., of the clause {man(Socrates)0 : a1V1}.</p>
        <sec id="sec-2-3-1">
          <title>Axiom (A)</title>
        </sec>
        <sec id="sec-2-3-2">
          <title>Start (S)</title>
        </sec>
        <sec id="sec-2-3-3">
          <title>Reduction (R)</title>
        </sec>
        <sec id="sec-2-3-4">
          <title>Extension (E)</title>
          <p>{}, M, P ath
C2, M, {}
ε, M, ε</p>
          <p>C, M, P ath∪{L2 : p2}
C∪{L1 : p1}, M, P ath∪{L2 : p2}
and C2 is copy of C1∈M
C3, M [C1\C2], P ath∪{L1: p1}
C, M, P ath
C∪{L1: p1}, M, P ath
and {L1 : p1, L2 : p2} is σ-complementary
and C3:=β-clauseL2 (C2), C2
is copy of C1, C1 is e-clause
of M wrt. P ath ∪ {L1:p1}, C2
contains L2:p2, {L1:p1, L2:p2}
is σ-complementary</p>
        </sec>
        <sec id="sec-2-3-5">
          <title>Decomposition (D)</title>
          <p>C ∪ C1, M, P ath
C∪{M1}, M, P ath</p>
          <p>and C1∈M1
Definition 2.5 (Extension clause, β-clause). C is an extension clause (e-clause) of the matrix M with
respect to a set of literals P ath iff either (a) C contains a literal of P ath, or (b) C is α-related to all
literals of P ath occurring in M and if C has a parent clause, it contains a literal of P ath. In the
β-clause of C2 with respect to L2, denoted by β-clauseL2 (C2), L2 and all clauses that are α-related to
L2 are deleted from C2 (in the new subgoal C3).</p>
          <p>
            The non-clausal connection calculus for intuitionistic logic has the same axiom, start rule, and
reduction rule as the clausal connection calculus [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ]. The extension rule is slightly modified and a
decomposition rule is added. It is an extension of the non-clausal connection calculus for classical
logic [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ], in which a prefix is added to each literal and an additional intuitionistic substitution is used
to identify σ-complementary connections.
          </p>
          <p>Definition 2.6 (Intuitionistic non-clausal connection calculus). The axiom and the rules of the
intuitionistic (non-clausal) connection calculus are given in Fig. 1. It works on tuples “ C, M, P ath”, where
M is a prefixed non-clausal matrix, C is a prefixed (subgoal) clause or ε and (the active) P ath is a
set of prefixed literals or ε. σ = (σQ, σJ ) is a combined term and prefix substitution. An intuitionistic
(non-clausal) connection proof of a prefixed matrix M is an intuitionistic connection proof of ε, M, ε.</p>
          <p>
            The non-clausal connection calculus for intuitionistic logic is correct and complete, i.e. a formula
F is valid in intuitionistic logic if and only if there is an intuitionistic non-clausal connection proof
of its intuitionistic non-clausal matrix M (F ). It follows from the correctness and completeness of the
non-clausal connection calculus [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ] and the clausal connection calculus for intuitionistic logic [
            <xref ref-type="bibr" rid="ref15">15</xref>
            ].
          </p>
          <p>
            The analytic, i.e., bottom-up proof search in the non-clausal calculus is carried out in the same way
as in the clausal calculus. Additional backtracking might be required when choosing the clause C1
in the decomposition rule; no backtracking is required when choosing the matrix M1. The rigid term
and intuitionistic substitutions σQ and σJ are calculated whenever a reduction or extension rule is
applied. The term substitution is calculated by one of the well-known algorithms for term unification. The
intuitionistic substitution is calculated by a prefix unification algorithm (see Section 2.4).
Optimization techniques, such as positive start clauses, regularity, lemmata and restricted backtracking, can be
employed in a similar way as in the clausal connection calculus for intuitionistic logic [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ].
2.4
          </p>
        </sec>
      </sec>
      <sec id="sec-2-4">
        <title>Prefix Unification</title>
        <p>
          The intuitionistic substitution σJ is calculated by a prefix unification algorithm [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. For a given set of
prefix equations{p1 = q1, . . . , pn = qn}, an appropriate substitution σJ is a unifier such thatσJ (pi) =
σJ (qi) for all 1 ≤ i ≤ n. General algorithms for string unification exist, but the following unification
algorithm is more efficient, as it takes the prefix property of the prefixes p1, p2, . . . of a formula into
account: for two prefixes pi = u1Xw1 and pj = u2Xw2 with X ∈ Φ ∪ Ψ the property u1 = u2 holds.
This reflects the fact that prefixes correspond to sequences of connectives and quantifiers within the
same formula.
        </p>
        <p>Definition 2.7. The prefix unification for the prefixes equation {p = q} is carried out by applying the
rewriting rules R1 to R10 in Figure 2. It is V, V¯ , V 0 ∈ Φ with V 6= V¯ , V 0 is a new prefix variable, a, b ∈ Ψ,
X ∈ Φ ∪ Ψ, and u, w, z ∈ (Φ ∪ Ψ)∗. For rule 10 the restriction (∗) u = ε or w 6= ε or X ∈ Ψ applies.
σJ (V ) = u is written {V \u}. The unification starts with the tuple ({p = ε|q}, {}). The application of
a rewriting rule E → E0, τ replaces the tuple (E, σJ ) by the tuple (E0, τ (σJ )). E and E0 are prefix
equations, σJ and τ are substitutions. The unification terminates when the tuple ({}, σJ ) is derived. In
this case, σJ represents a most general unifier. Rules can be applied non-deterministically and lead to
a minimal set of most general unifiers.</p>
        <p>R1. {ε=ε|ε}
R2. {ε=ε|Xu}
→ {}, {}
→ {Xu=ε|ε}, {}
R3. {Xu=ε|Xw} → {u=ε|w}, {}
R4. {au=ε|V w} → {V w=ε|au}, {}
R5. {V u=z|ε}
→ {u=ε|ε}, {V \z}</p>
        <p>R6.</p>
        <p>R7.</p>
        <p>R8.</p>
        <p>{V u=ε|aw}
{V u=z|abw}
{V au=ε|V¯ w}
→ {u=ε|aw}, {V \ε}
→ {u=ε|bw}, {V \za}
→ {V¯ w=V |au}, {}
R9.</p>
        <p>R10. {V u=z|Xw}
{V au=Xz|V¯ w} → {V¯ w=V 0|au}, {V \XzV 0}</p>
        <p>
          → {V u=zX|w}, {} (∗)
The following implementation of the intuitionistic non-clausal connection calculus of Fig. 1 follows
the lean methodology [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], which is already used for the clausal connection provers leanCoP [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] and
ileanCoP [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. It uses very compact Prolog code to implement the basic calculus and adds a few essential
optimization techniques in order to prune the search space. The resulting natural nonclausal connection
prover for intuitionistic logic nanoCoP-i is available under the GNU General Public License and can be
downloaded at http://www.leancop.de/nanocopi/ .
3.1
        </p>
      </sec>
      <sec id="sec-2-5">
        <title>Prefixed Non-clausal Matrices</title>
        <p>
          In a first step the input formulaF is translated into its intuitionistic non-clausal matrix M (F ) according
to Table 1; redundant brackets of the form “ {{. . .}}” are removed [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. Additionally, every (sub-)clause
(I, V, F V ) : C and (sub-)matrix J : M are marked with unique indices I and J ; clauses C are also
marked with a set V of (free) term and prefix variables and a set F V of prefixed (free) term variables
of the form x : p that are newly introduced in C but not in any subclause of C. Atomic formulae are
represented by Prolog atoms, term and prefix variables by Prolog variables and the polarity 1 by “-”.
Sets, e.g. clauses and matrices, are represented by Prolog lists (representing multisets); prefixes are also
represented by Prolog lists and marked with the polarity of the corresponding literal.
        </p>
        <p>For example, the matrix 3 from Sec. 2.2 is represented by the Prolog term
[(2ˆK)ˆ[]ˆ[]:
[4ˆK:[(5ˆK)ˆ[]ˆ[]:[-(man(socrates)): -([3ˆ[]])],</p>
        <p>(7ˆK)ˆ[]ˆ[]:[man(socrates):[3ˆ[]]] ],
10ˆK:[(11ˆK)ˆ[]ˆ[]:[-(man(plato)): -([8ˆ[]])],
(13ˆK)ˆ[V,X,W]ˆ[X:[8ˆ[],W]]:[man(X):[8ˆ[],W,V],</p>
        <p>
          -(mortal(X)):-([8ˆ[],W,V])],
(19ˆK)ˆ[]ˆ[]:[mortal(plato):[8ˆ[]]] ] ] ]
in which the Prolog variable K is instantiated later on in order to enumerate clause copies; as an
optimization, prefix characters introduced by atomic formulae are only considered during the unification. In
the second step the matrix M (F ) is written into Prolog’s database. For every literal Lit in M the fact
lit(Lit,ClaB,ClaC,Grnd)
is asserted into the database where ClaC ∈ M is the (largest) clause in which Lit occurs and ClaB
is the β-clause of ClaC with respect to Lit. Grnd is set to g if the smallest clause in which Lit
occurs is ground, i.e. does not contain any variables; otherwise Grnd is set to n. Storing literals of M
in the database in this way is called lean Prolog technology [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] and integrates the advantages of the
Prolog technology approach [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ] into the lean theorem proving framework. No other modifications or
simplifications of the original formula (structure) are done during these two preprocessing steps.
3.2
        </p>
      </sec>
      <sec id="sec-2-6">
        <title>Intuitionistic Non-clausal Proof Search</title>
        <p>
          The nanoCoP-i source code is shown in Fig. 3. It is an extension of the non-clausal connection prover
nanoCoP [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] for classical first-order logic. The underlined text was added to the source code of
nanoCoP: (1) prefixes are added to all literals, (2) the sets PreS and VarS are added, which contain
prefix equations and free (prefixed) term variables, respectively, and (3) a prefix unification is added.
        </p>
        <p>First, nanoCoP-i performs a classical proof search, in which the prefixes of each connection are
stored in PreS. If the search succeeds, the domain condition is checked and the prefixes in PreS are
unified (line 4), using the predicatesdomain_cond and prefix_unify (see Section 3.3), respectively.</p>
        <p>The predicate prove(Mat,PathLim,Set,Proof) implements the start rule (lines 1–4) and
iterative deepening on the length of the active path (lines 5–9). Mat is the prefixed matrix generated in
the preprocessing step, PathLim is the maximum size of the active path used for iterative deepening,
Set is a list of options used to control the proof search, and Proof contains the returned intuitionistic
(non-clausal) connection proof. Start clauses are restricted to positive clauses (line 2): after member
selects a start clause, positiveC(Cla,Cla1) returns the clause Cla1 in which all clauses that are not
positive in Cla are deleted. A clause is positive if all of its elements (matrices and literals) are positive;
a matrix is positive if it contains at least one positive clause; a literal is positive if its polarity is 0.</p>
        <p>The predicate prove(Cla,Mat,Path,PathI,PathLim,Lem,PreS,VarS,Set,Proof)
implements the axiom (line 10), the decomposition rule (lines 11–16), the reduction rule (lines 17–20, 24–26,
37–38), and the extension rule (lines 17–20, 28–49) of the non-clausal connection calculus in Fig. 1.
(39)
(40)
(41)
(42)
(43)
(44)
(45)
(46)
(47)
(48)
(49)
% start rule
prove(Mat,PathLim,Set,[(Iˆ0)ˆV:Cla1|Proof])
:member((Iˆ0)ˆVˆVS:Cla,Mat), positiveC(Cla,Cla1), Cla1 \=!,
prove(Cla1,Mat,[],[Iˆ0],PathLim,[],PreS,VarS, Set,Proof),
append(VarS,VS,VarS1), domain_cond(VarS1), prefix_unify(PreS).
prove(Mat,PathLim,Set,Proof)
:retract(pathlim) -&gt;
( member(comp(PathLim),Set) -&gt; prove(Mat,1,[],Proof) ;</p>
        <p>PathLim1 is PathLim+1, prove(Mat,PathLim1,Set,Proof) ) ;
member(comp(_),Set) -&gt; prove(Mat,1,[],Proof).
% axiom
prove([],_,_,_,_,_,[],[],_,[]).
% decomposition rule
prove([JˆK:Mat1|Cla],MI,Path,PI,PathLim,Lem,PreS,VarS, Set,Proof) :- !,
member(Iˆ_ˆFV :Cla1,Mat1),
prove(Cla1,MI,Path,[I,JˆK|PI],PathLim,Lem,PreS1,VarS1, Set,Proof1),
prove(Cla,MI,Path,PI,PathLim,Lem,PreS2,VarS2,Set,Proof2),
append(PreS2,PreS1,PreS), append(FV,VarS1,VarS3),
append(VarS2,VarS3,VarS), append(Proof1,Proof2,Proof).
% reduction and extension rules
prove([Lit:Pre|Cla],MI,Path,PI,PathLim,Lem,PreS,VarS,Set,Proof)
:</p>
        <p>Proof=[[IˆV:[NegLit|ClaB1]|Proof1]|Proof2],
\+ (member(LitC,[Lit:Pre|Cla]), member(LitP,Path), LitC==LitP),
(-NegLit=Lit;-Lit=NegLit) -&gt;
( member(LitL,Lem), Lit:Pre==LitL, PreS3=[], VarS3=[],</p>
        <p>ClaB1=[], Proof1=[]
;
member(NegL:PreN,Path), unify_with_occurs_check(NegL,NegLit),
\+ \+ prefix_unify([Pre=PreN]), PreS3=[Pre=PreN], VarS3=[],
ClaB1=[], Proof1=[]
;
lit(NegLit:PreN,ClaB,Cla1,Grnd1),
( Grnd1=g -&gt; true ; length(Path,K), K&lt;PathLim -&gt; true ;</p>
        <p>\+ pathlim -&gt; assert(pathlim), fail ),
\+ \+ prefix_unify([Pre=PreN]),
prove_ec(ClaB,Cla1,MI,PI,IˆVˆFV :ClaB1,MI1),
prove(ClaB1,MI1,[Lit:Pre|Path],[I|PI],PathLim,Lem,PreS1,VarS1,</p>
        <p>Set,Proof1), PreS3=[Pre=PreN|PreS1], append(VarS1,FV,VarS3)
),
( member(cut,Set) -&gt; ! ; true ),
prove(Cla,MI,Path,PI,PathLim,[Lit:Pre|Lem],PreS2,VarS2,Set,Proof2),
append(PreS3,PreS2,PreS), append(VarS2,VarS3,VarS).
% extension clause (e-clause)
prove_ec((IˆK)ˆV:ClaB,IV:Cla,MI,PI,ClaB1,MI1)
:append(MIA,[(IˆK1)ˆV1:Cla1|MIB],MI), length(PI,K),
( ClaB=[JˆK:[ClaB2]|_], member(JˆK1,PI),
unify_with_occurs_check(V,V1), Cla=[_:[Cla2|_]|_],
append(ClaD,[JˆK1:MI2|ClaE],Cla1),
prove_ec(ClaB2,Cla2,MI2,PI,ClaB1,MI3),
append(ClaD,[JˆK1:MI3|ClaE],Cla3),
append(MIA,[(IˆK1)ˆV1:Cla3|MIB],MI1)
;
(\+member(IˆK1,PI);V \==V1;V\=[]ˆ[] ) -&gt;
ClaB1=(IˆK)ˆV:ClaB, append(MIA,[IV:Cla|MIB],MI1) ).</p>
        <p>
          Cla, Mat, and Path represent the subgoal clause C, the prefixed matrixM and the (active) P ath.
The indexed path PathI contains the indices of all clauses and matrices that contain literals of Path;
it is used for calculating extension clauses. The list Lem is used for the lemmata rule and contains
all literals that have been “solved” already [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. PreS and VarS are lists of prefix equations and free
(prefixed) term variables, respectively. Set is a list of options and may contain the elements “ cut”
and “ comp(I)” for I ∈ IN , which are used to control the restricted backtracking technique [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. This
prove predicate succeeds iff there is an intuitionistic connection proof for the tuple (Cla, Mat, Path)
with |Path| &lt; PathLim. In this case Proof returns a compact intuitionistic connection proof. The
prefixed input matrixMat has to be stored in Prolog’s database (as explained above). The substitution
σ is stored implicitly by Prolog. and also applied to the variables returned in Proof. The predicate
prove_ec(ClaB,Cla1,Mat,ClaB1,Mat1) is used to calculate extension clauses (lines 39–49).
        </p>
        <p>
          nanoCoP-i uses additional optimization techniques that are already used in the classical connection
provers leanCoP [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] and nanoCoP [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]: regularity (line 19), lemmata (line 21), and restricted
backtracking (line 36). Restricted backtracking is a very effective (but incomplete) technique for pruning the
search space in connection calculi [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. It is switched on if the list Set contains the element “ cut”. If it
also contains “ comp(I)” for I ∈ IN , then the proof search restarts again without restricted backtracking
if the path limit PathLim exceeds I.
3.3
The source code of the prefix unification is shown in Figure 4. Each clauseR1 to R10 corresponds
to one of the rewrite rules defined in Figure 2. The predicate tunify(S,[],T) succeeds if the two
prefixes S and T can be unified. The second argument contains the left part of the right prefix. The
prefix variables are instantiated with a most general unifier; alternative unifiers are calculated via
backtracking. As the skolemization technique is applied to prefix constants as well, a term unification with
unify_with_occurs_check is required whenever a prefix constant is unified with another prefix
constant or variable. The predicate prefix_unify(G) solves a set of prefix equations (linesa–d).
(a)
(b)
(c)
(d)
(R1)
(R2)
(R3)
(R4)
(R5)
(R6)
(R7)
(R8)
(R9)
prefix_unify([]).
prefix_unify([S=T|G]) :- (-S2=S -&gt; T2=T ; -S2=T, T2=S),
flatten([S2,_],S1), flatten(T2,T1),
tunify(S1,[],T1), prefix_unify(G).
(R10) tunify([V|S],Z,[X|T])
tunify([],[],[]).
tunify([],[],[X|T]) :- tunify([X|T],[],[]).
tunify([X1|S],[],[X2|T]) :- (var(X1) -&gt; (var(X2), X1==X2);
(\+var(X2), unify_with_occurs_check(X1,X2))),
!, tunify(S,[],T).
tunify([C|S],[],[V|T]) :- \+var(C), !, var(V), tunify([V|T],[],[C|S]).
tunify([V|S],Z,[]) :- unify_with_occurs_check(V,Z), tunify(S,[],[]).
tunify([V|S],[],[C1|T]) :- \+var(C1), V=[], tunify(S,[],[C1|T]).
tunify([V|S],Z,[C1,C2|T]) :- \+var(C1), \+var(C2), append(Z,[C1],V1),
unify_with_occurs_check(V,V1),
tunify(S,[],[C2|T]).
tunify([V,X|S],[],[V1|T]) :- var(V1), tunify([V1|T],[V],[X|S]).
tunify([V,X|S],[Z1|Z],[V1|T]) :- var(V1), append([Z1|Z],[Vnew],V2),
unify_with_occurs_check(V,V2),
tunify([V1|T],[Vnew],[X|S]).
:- (S=[]; T¯[]; \+var(X)) -&gt;
        </p>
        <p>append(Z,[X],Z1), tunify([V|S],Z1,T).</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Experimental Evaluation</title>
      <p>
        The following evaluations were conducted on a 3.4 GHz Xeon system with 4 GB of RAM running
Linux 3.13.0 and ECLiPSe Prolog 5.10. The CPU time limit was set to 10 seconds.
The ILTP problem library [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] contains 2550 first-order formulae in various problem domains. Table 2
shows the number of proved problems of the ILTP library v1.1.2 for the intuitionistic theorem provers
JProver, ileanTAP, ft, ileanCoP, and nanoCoP-i.
      </p>
      <p>
        JProver [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] is based on a (simple) prefixed non-clausal connection calculus for intuitionistic
firstorder logic [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]; it is implemented in OCaml. ileanTAP [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] implements a prefixed free-variable tableau
calculus for intuitionistic first-order logic; it is implemented in Prolog. ft [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] is a C implementation
of an analytic tableau calculus for intuitionistic first-order logic and uses many additional optimization
techniques . ileanCoP [
        <xref ref-type="bibr" rid="ref15 ref16">15, 16</xref>
        ] implements a prefixedclausal connection calculus for intuitionistic
firstorder logic and is implemented in Prolog. In order to make the results comparable to nanoCoP-i, the
(Prolog) core prover of ileanCoP was used with the standard translation (“[nodef]”) and the definitional
translation (“[def]”) into the ( prefixed ) clausal form. nanoCoP-i was tested with and without restricted
backtracking technique, i.e. Set=[ ] and Set=[cut,comp(6)], respectively.
nanoCoP-i proves more problems than both clausal translations of ileanCoP. The “full” version of
ileanCoP1.2 (using the TPTP syntax translation of nanoCoP-i and a shell script to implement the strategy
scheduling) proves 717 problems. The proofs found by nanoCoP-i are in general shorter than those
found by ileanCoP. The proof size is the number of connections (and applications of the lemma rule).
Compared to ileanCoP [nodef], 95% of the nanoCoP-i proofs are on average 30% shorter; 4% of the
proofs are larger, 1% have the same size. Compared to ileanCoP [def], 97% of the nanoCoP-i proofs are
on average 33% shorter; 2% of the proofs are larger, 1% have the same size.
4.2
      </p>
      <sec id="sec-3-1">
        <title>TPTP Library</title>
        <p>JProver
11-2005
177
171
6
ileanTAP
1.17
251
248
3
ft (C)
1.23
260
258
2
— ileanCoP 1.2 —
[nodef] [def]
636 652
566 572
70 80
—- nanoCoP-i 1.0
—[ ] [cut,comp(6)]
731 872
636 717
95 155</p>
        <p>Again, nanoCoP-i proves more problem than both clausal translations of ileanCoP. The “full” version
of ileanCoP1.2 proves 932 problems. Compared to ileanCoP [nodef], 92% of the nanoCoP-i proofs are on
average 28% shorter; 7% of the proofs are larger, 1% have the same size. Compared to ileanCoP [def],
94% of the nanoCoP-i proofs are on average 34% shorter; 5% of the proofs are larger, 1% have the same
size.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>This paper introduces a non-clausal connection calculus for intuitionistic first-order logic andnanoCoP-i,
a compact implementation of this calculus. Using prefixed non-clausal matrices, the proof search works
directly on the original structure of the input formula; no translation steps to any clausal or other normal
form are required. This combines the advantages of more natural non-clausal tableau or sequent provers
with the goal-oriented efficiency of connection provers.</p>
      <p>Even though the non-clausal inferences introduce a slight overhead, nanoCoP-i outperforms both
clausal form translations of the ileanCoP core prover on the ILTP and the TPTP problem library. It
is expected that the integration of strategy scheduling into nanoCoP-i will also outperform the “full”
ileanCoP prover. More than 90% of the returned non-clausal proofs are on average about 30% shorter
than their clausal counterparts.</p>
      <p>
        Both, the standard translation as well as a definitional translation [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] into clausal form not only
increase the size of the formula, but also modify the structure of the original formula This makes it
difficult to translate the resulting proof back into a proof of the original formula, an effect that has
already been observed for classical logic [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
      </p>
      <p>
        By considering the intuitionistic substitution, the returned connection proof can be translated into
an intuitionistic sequent proof [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], making nanoCoP-i an ideal tool to be used within interactive proof
systems, such as Coq [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] , Isabelle [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], HOL [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] or NuPRL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        In contrast to the calculus used in nanoCoP-i, the non-clausal connection calculus used in JProver [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]
does not add clause copies dynamically during the proof search. Instead they are added iteratively,
which introduces a huge redundancy into the proof search. Hence, the performance of nanoCoP-i is
significantly higher than the performance ofJProver.
      </p>
      <p>
        Future work include the adaption of the non-clausal connection calculus and the nanoCoP-i prover to
other non-classical logics, such as modal or description logics, for which so far only clausal connection
calculi exist [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Integrating search techniques into nanoCoP-i in order to obtain a decision procedure
is another important task. Furthermore, optimization techniques that are used for classical logic, such as
strategy scheduling [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], learning [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and variable splitting [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], could be integrated into an intuitionistic
non-clausal connection calculus as well.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Antonsen</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Waaler</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Liberalized variable splitting</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          <volume>38</volume>
          ,
          <fpage>3</fpage>
          -
          <lpage>30</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Beckert</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Posegga</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>leanTAP: lean, tableau-based deduction</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          <volume>15</volume>
          (
          <issue>3</issue>
          ),
          <fpage>339</fpage>
          -
          <lpage>358</lpage>
          (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Bertot</surname>
          </string-name>
          , Yves, Caste´ran,
          <source>Pierre: Interactive Theorem Proving and Program Development Coq'Art: The Calculus of Inductive Constructions</source>
          . Springer Heidelberg (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Bibel</surname>
            ,
            <given-names>W.:</given-names>
          </string-name>
          <article-title>Matings in matrices</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>26</volume>
          ,
          <fpage>844</fpage>
          -
          <lpage>852</lpage>
          (
          <year>1983</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Bibel</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <source>Automated Theorem Proving. 2nd edition</source>
          . Vieweg,
          <string-name>
            <surname>Wiesbaden</surname>
          </string-name>
          (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Constable</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          et al.:
          <article-title>Implementing Mathematics with the Nuprl Proof Development System</article-title>
          . Prentice-Hall, Upper Saddle River,
          <string-name>
            <surname>N.J</surname>
          </string-name>
          (
          <year>1986</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>D. van Dalen. Intuitionistic</given-names>
            <surname>Logic</surname>
          </string-name>
          . In L. Goble (ed.):
          <article-title>The Blackwell Guide to Philosophical Logic</article-title>
          . Blackwell, Oxford (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Gentzen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Untersuchungen u¨ber das logische Schließen</article-title>
          .
          <source>Mathematische Zeitschrift</source>
          <volume>39</volume>
          ,
          <fpage>176</fpage>
          -
          <lpage>210</lpage>
          ,
          <fpage>405</fpage>
          -
          <lpage>431</lpage>
          (
          <year>1935</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Gordon</surname>
            ,
            <given-names>M. J. C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Melham</surname>
            ,
            <given-names>T. F</given-names>
          </string-name>
          . (eds.):
          <article-title>Introduction to HOL: A Theorem Proving Environment for Higher Order Logic</article-title>
          . Cambridge University Press, New York (
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10] Ha¨hnle, R.: Tableaux and
          <string-name>
            <given-names>Related</given-names>
            <surname>Methods</surname>
          </string-name>
          . In: Robinson,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Voronkov</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.)
          <source>Handbook of Automated Reasoning</source>
          , pp.
          <fpage>100</fpage>
          -
          <lpage>178</lpage>
          . Elsevier, Amsterdam (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Kaliszyk</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Urban</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>FEMaLeCoP: Fairly Efficient Machine Learning Connection Prover</article-title>
          . In: Davis,
          <string-name>
            <surname>M.</surname>
          </string-name>
          et al. (eds.)
          <article-title>LPAR 2015</article-title>
          .
          <article-title>LNAI</article-title>
          , vol.
          <volume>9450</volume>
          , pp.
          <fpage>88</fpage>
          -
          <lpage>96</lpage>
          . Springer, Heidelberg (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Kreitz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Otten</surname>
          </string-name>
          , J.:
          <article-title>Connection-based theorem proving in classical and non-classical logics</article-title>
          .
          <source>Journal of Universal Computer Science</source>
          <volume>5</volume>
          ,
          <fpage>88</fpage>
          -
          <lpage>112</lpage>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Nipkow</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Wenzel,
          <string-name>
            <given-names>M.</given-names>
            <surname>Paulson</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          :
          <article-title>Isabelle/HOL: A Proof Assistant for Higher-order Logic</article-title>
          . Springer, Heidelberg (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Otten</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>ileanTAP: An Intuitionistic Theorem Prover</article-title>
          . In: Galmiche,
          <string-name>
            <surname>D</surname>
          </string-name>
          . (ed.)
          <source>TABLEAUX</source>
          <year>1997</year>
          ,
          <article-title>LNAI</article-title>
          , vol.
          <volume>1227</volume>
          , pp.
          <fpage>307</fpage>
          -
          <lpage>312</lpage>
          . Springer, Heidelberg (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Otten</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Clausal Connection-Based Theorem Proving in Intuitionistic First-Order Logic</article-title>
          . In: Beckert,
          <string-name>
            <surname>B</surname>
          </string-name>
          . (ed.)
          <source>TABLEAUX</source>
          <year>2005</year>
          ,
          <article-title>LNAI</article-title>
          , vol.
          <volume>3702</volume>
          , pp.
          <fpage>245</fpage>
          -
          <lpage>261</lpage>
          . Springer, Heidelberg (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Otten</surname>
          </string-name>
          ,
          <source>J.: leanCoP 2.0 and ileanCoP 1</source>
          .
          <article-title>2: High Performance Lean Theorem Proving in Classical and Intuitionistic Logic</article-title>
          . In: Armando,
          <string-name>
            <surname>A.</surname>
          </string-name>
          et al. (eds.)
          <source>IJCAR</source>
          <year>2008</year>
          ,
          <article-title>LNAI</article-title>
          , vol.
          <volume>5195</volume>
          , pp.
          <fpage>283</fpage>
          -
          <lpage>291</lpage>
          . Springer, Heidelberg (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Otten</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Restricting backtracking in connection calculi</article-title>
          .
          <source>AI</source>
          Communications
          <volume>23</volume>
          ,
          <fpage>159</fpage>
          -
          <lpage>182</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Otten</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A Non-clausal Connection Calculus</article-title>
          . In: Bru¨nnler,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Metcalfe</surname>
          </string-name>
          ,
          <string-name>
            <surname>G</surname>
          </string-name>
          . (eds.)
          <source>TABLEAUX</source>
          <year>2011</year>
          ,
          <article-title>LNAI</article-title>
          , vol.
          <volume>6793</volume>
          , pp.
          <fpage>226</fpage>
          -
          <lpage>241</lpage>
          . Springer, Heidelberg (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Otten</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>MleanCoP: A Connection Prover for First-Order Modal Logic</article-title>
          . In: Demri,
          <string-name>
            <surname>S.</surname>
          </string-name>
          et al. (eds.)
          <source>IJCAR</source>
          <year>2014</year>
          ,
          <article-title>LNAI</article-title>
          , vol.
          <volume>8562</volume>
          , pp.
          <fpage>269</fpage>
          -
          <lpage>276</lpage>
          . Springer, Heidelberg (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Otten</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>nanoCoP: A Non-clausal Connection Prover</article-title>
          . In: Olivetti,
          <string-name>
            <given-names>N.</given-names>
            ,
            <surname>Tiwari</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.)
          <source>IJCAR</source>
          <year>2016</year>
          ,
          <article-title>LNAI</article-title>
          , vol.
          <volume>9706</volume>
          . Springer, Heidelberg (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Otten</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bibel</surname>
            ,
            <given-names>W.:</given-names>
          </string-name>
          <article-title>leanCoP: lean connection-based theorem proving</article-title>
          .
          <source>Journal of Symbolic Computation</source>
          <volume>36</volume>
          ,
          <fpage>139</fpage>
          -
          <lpage>161</lpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Plaisted</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Greenbaum</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A structure-preserving clause form translation</article-title>
          .
          <source>Journal of Symbolic Computation</source>
          <volume>2</volume>
          ,
          <fpage>293</fpage>
          -
          <lpage>304</lpage>
          (
          <year>1986</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Raths</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Otten</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kreitz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>The ILTP problem library for intuitionistic logic</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          <volume>38</volume>
          ,
          <fpage>261</fpage>
          -
          <lpage>271</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Reis</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Importing SMT and connection proofs as expansion trees</article-title>
          . In: Kaliszyk,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Paskevich</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.) 4th Workshop on
          <article-title>Proof eXchange for Theorem Proving (PxTP15)</article-title>
          ,
          <source>EPTCS 186</source>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>10</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Schmitt</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          et al.:
          <article-title>JProver: Integrating Connection-based Theorem Proving into Interactive Proof Assistants</article-title>
          . In: Gore´,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Leitsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Nipkow</surname>
          </string-name>
          , T. (eds.)
          <source>IJCAR</source>
          <year>2001</year>
          ,
          <article-title>LNAI</article-title>
          , vol.
          <year>2083</year>
          , pp.
          <fpage>421</fpage>
          -
          <lpage>426</lpage>
          . Springer, Heidelberg (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Sahlin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Franzen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haridi</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>An Intuitionistic Predicate Logic Theorem Prover</article-title>
          .
          <source>Journal of Logic and Computation</source>
          <volume>2</volume>
          (
          <issue>5</issue>
          ),
          <fpage>619</fpage>
          -
          <lpage>656</lpage>
          (
          <year>1992</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Stickel</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A Prolog technology theorem prover: implementation by an extended Prolog compiler</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          <volume>4</volume>
          ,
          <fpage>353</fpage>
          -
          <lpage>380</lpage>
          (
          <year>1988</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Sutcliffe</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>The TPTP problem library and associated infrastructure: the FOF and CNF parts</article-title>
          ,
          <source>v3.5.0. Journal of Automated Reasoning</source>
          <volume>43</volume>
          (
          <issue>4</issue>
          ),
          <fpage>337</fpage>
          -
          <lpage>362</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>Waaler</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Connections in Nonclassical Logics</article-title>
          . In A.
          <string-name>
            <surname>Robinson</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Voronkov (eds.)
          <source>Handbook of Automated Reasoning</source>
          , pp
          <fpage>1487</fpage>
          -
          <lpage>1578</lpage>
          . Elsevier, Amsterdam (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>Wallen</surname>
            ,
            <given-names>L. A.</given-names>
          </string-name>
          :
          <source>Automated Deduction in Nonclassical Logics</source>
          . MIT Press, Cambridge (
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>