<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">No Choice: Reconstruction of First-order ATP Proofs without Skolem Functions</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Michael</forename><surname>Färber</surname></persName>
							<email>michael.faerber@uibk.ac.at</email>
							<affiliation key="aff0">
								<orgName type="institution">Universität Innsbruck Innsbruck</orgName>
								<address>
									<country key="AT">Austria</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Cezary</forename><surname>Kaliszyk</surname></persName>
							<email>cezary.kaliszyk@uibk.ac.at</email>
							<affiliation key="aff0">
								<orgName type="institution">Universität Innsbruck Innsbruck</orgName>
								<address>
									<country key="AT">Austria</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">No Choice: Reconstruction of First-order ATP Proofs without Skolem Functions</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">2A5459E2545CDA700424AA792995F2A4</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T02:38+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Proof assistants based on higher-order logic frequently use first-order automated theorem provers as proof search mechanisms. The reconstruction of the proofs generated by common tools, such as MESON and Metis, typically involves the use of the axiom of choice to simulate the Skolemisation steps. In this paper we present a method to reconstruct the proofs without introducing Skolem functions. This enables us to integrate tactics that use first-order automated theorem provers in logics that feature neither the axiom of choice nor the definite description operator.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Many first-order automated theorem provers (ATPs) operate on formulae with implicitly universally quantified variables. To find proofs with such ATPs for formulae containing existential quantifiers, it is necessary to transform the original problems: Skolemisation replaces existentially quantified variables with fresh function symbols that depend at least on all universally quantified variables in the subformula, i.e. ∃x.t(x, y 1 , . . . , y n ) (t being a term) is replaced by t(f (y 1 , . . . , y n ), y 1 , . . . , y n ), where f is a fresh function symbol. In higher-order foundations it is possible to express that a problem is satisfiable iff its Skolemised version is, by existentially quantifying over the Skolem functions. Proving or even stating equisatisfiability cannot be done in first-order logic.</p><p>With the increasing interest in Isabelle <ref type="bibr" target="#b11">[NPW02]</ref> object logics based on first-order logic, such as Isabelle/ZF <ref type="bibr" target="#b16">[Pau93]</ref> or Kaliszyk's Mizar environment <ref type="bibr" target="#b7">[KPU16]</ref>, it is natural to provide built-in first-order automated theorem proving methods for these logics. Tools including Metis <ref type="bibr" target="#b6">[Hur03]</ref> and MESON <ref type="bibr" target="#b4">[Har96]</ref> have provided such methods for Isabelle/HOL. However, as the integration of these tools currently relies on higher-order features, they cannot easily be used in Isabelle/FOL. Proof methods that support also FOL, such as blast <ref type="bibr" target="#b17">[Pau99]</ref>, work very well as a human proof search mechanism, but are often insufficient to reconstruct deeper proofs <ref type="bibr" target="#b1">[BKPU16]</ref>.</p><p>We propose a new method to integrate first-order ATPs in interactive proof systems based on first-order logic. The technique can be used with first-order provers that take a set of implicitly all-quantified formulae as input, and whose proofs can be expressed as a set of formula copies together with the instantiations of the variables, and a natural deduction proof on the formula copies that shows ⊥. This includes the most common first-order calculi such as resolution, paramodulation (superposition), and tableaux. The method uses the information contained in the Skolem terms to derive an ordering on instantiations, as opposed to the methods existing in Isabelle/HOL and other HOL provers which recreate the Skolem functions directly in the higher-order logic. To show the practical feasibility of the approach, we integrate a first-order tableaux prover in Isabelle/FOL.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Contents:</head><p>In section 2, we recall several basic concepts such as normal forms and Skolemisation. In section 3, we present our method to construct a proof without Skolem functions from a proof with Skolem functions. In section 4, we describe the implementation of our method as part of a larger proof search tactic for Isabelle. We show in section 5 the limitations of our approach. Section 6 discusses the related work, and in section 7, we conclude.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Preliminaries</head><p>We distinguish between quantifier logic and quantifier-free logic, where the former one is a logic with and the latter one without any quantifiers, meaning that all variables are implicitly all-quantified. Typically, in a proof assistant, we are given a problem in quantifier logic, of which we create an equisatisfiable problem for an ATP in quantifier-free logic by Skolemisation.</p><p>For both logics we assume the existence of three disjoint sets: variables, functions, and predicates, where every function and predicate has a fixed arity. Constants are functions with arity 0. Terms, atoms, literals, and formulae are defined in the usual way. Implication is right-associative, i.e. a =⇒ b =⇒ c is interpreted as a =⇒ (b =⇒ c).</p><p>Definition 1 (Substitution) A substitution is a function σ from variables to terms under the condition that the fix point of σ exists, i.e. the substitution is non-circular.</p><p>We naturally extend substitutions to structures containing variables, such as terms and formulae.</p><p>Definition 2 (Normal forms) A formula is in negation normal form (NNF) iff negations are only applied to atoms and the formula does not contain any implications. A formula is in prenex normal form (PNF) iff it has the shape Q * .P , where Q ∈ {∃, ∀} is a quantifier and P is a quantifier-free formula.</p><p>For every first-order formula, we can find equivalent formulae in NNF and PNF. To replace existential quantifiers in logic formulae, a frequently used method is Skolemisation. We will focus only on outer Skolemisation <ref type="bibr" target="#b12">[NW01]</ref>. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Definition 3 (Skolemisation</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Proof deskolemisation</head><p>Deskolemisation is the process of creating formulae with existential quantifiers from a formula with Skolem functions. In a similar way, proof deskolemisation is about creating a Skolem-free version of a proof with Skolem functions.</p><p>Consider the following scenario: We are given a problem as a set of formulae with quantifiers, which we want to use to produce a proof of ⊥. To pass the formulae to an ATP, we first convert them to PNF + NNF, yielding a set of formulae F that can be shown without the axiom of choice to be equivalent to the original set of formulae. Then, we Skolemize F and omit the universal quantifier prefixes, thus arriving at a set of formulae without quantifiers. The ATP might return a proof of ⊥. Without loss of generality, we assume an ATP proof to be a set of formulae F consisting of arbitrarily many copies of the input formulae with disjoint variables, a substitution σ from variables in F to terms, and a natural deduction proof that uses σ(F ) to show ⊥. We can easily represent many proof types, such as tableaux or resolution, in this format.</p><p>As the substitution (as well as the natural deduction proof) may contain references to the Skolem functions, which we do not introduce in quantifier logic, we want to eliminate such references.</p><p>The procedure consists of two steps: First, using the substitution σ, we create quantifier-free instances of the formulae F in the quantifier logic. Next, the natural deduction proof from the ATP is converted to a proof in the quantifier logic, which is then performed on the quantifier-free instances of F .  <ref type="table" target="#tab_1">1</ref>. Assume that the ATP finds a proof of the problem, which contains only one step, namely the resolution of t 1 with t 2 , yielding a substitution σ = {y → f (z), z → a}<ref type="foot" target="#foot_0">1</ref> . The natural deduction proof of the quantifier-free formulae could look as follows:</p><p>1</p><formula xml:id="formula_0">¬P (a, f (a)) 2 P (a, f (a)) 3 ⊥ ¬E, 1, 2</formula><p>In order to recreate the proof in quantifier logic, we instantiate the quantifier logic formulae. For this, formulae cannot be simply processed in sequence, but the dependencies between the formulae need to be resolved switching between the formulae until all quantifiers have been instantiated. The order is determined by the substitution: In this example, we cannot immediately instantiate t 2 , because z depends on a which is a Skolem constant for which we have not created an eigenvariable yet. However, we can eliminate the outermost existential quantifier of t 1 , yielding an eigenvariable a for x and the new formula t 3 = ∀y.P (a, y). In the second step, we cannot instantiate the new formula t 3 , because y depends on f (z), which is a Skolem term for which we have not obtained an eigenvariable yet. However, t 2 can now be instantiated, because we have previously retrieved the eigenvariable a. This yields t 4 = ∃w.¬P (a, w). In a similar fashion, we can now obtain a new eigenvariable f a from t 4 , yielding t 5 = ¬P (a, f a ), followed by an instantiation of t 3 , giving us the last formula t 6 = P (a, f a ). The first-order resolution step can now be performed on t 5 and t 6 , concluding the proof: In the next subsections we will present the steps of the process.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Fixing unsubstituted variables</head><p>A variable x with σ(x) = x corresponds to a universal quantifier that is instantiated with a fresh variable. For example, given the formulae ∀x.P (x) and ∀y.¬P (y), a possible substitution obtained from a first-order proof is σ = {x → y}. To prove ⊥, we need to instantiate ∀y.¬P (y) with an eigenvariable, say y , yielding ¬P (y ). This also treats the case where a Skolem term contains a variable x that is not substituted by some σ(x) = x. As an example, take ∀xy.P (x, y) and ∀z.∃w.¬P (z, w), respectively its Skolemised version ∀z.¬P (z, f (z)). A proof</p><formula xml:id="formula_1">{}, M, P ath Axiom C, M, {} M Start where C ∈ M, C is positive C, M, P ath ∪ {L 2 } C ∪ {L 1 }, M, P ath ∪ {L 2 } Reduction where σ(L 1 ) = σ(L 2 ) C 2 \ {L 2 }, M, P ath ∪ {L 1 } C, M, P ath C ∪ {L 1 }, M, P ath</formula><p>Extension where might contain the substitution {x → z, y → f (z)}, where z is an argument of the Skolem term. However, this does not create problems, because σ(z) = z, so by the previous paragraph, z will be instantiated by a fresh eigenvariable.</p><formula xml:id="formula_2">σ(L 1 ) = σ(L 2 ), σ is rigid, C 1 ∈ M, L 2 ∈ C 2 , C 2 is a copy of C 1 with variables renamed</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Instantiating quantified</head><p>The instantiation algorithm determines a sequence of quantifier eliminations, yielding quantifier-free formulae. Special care is taken to produce different eigenvariables only for different Skolem terms, i.e. Skolem functions applied to arguments that are not convertible with respect to the substitution. This is necessary for correctness of the procedure. Conversely, we reuse existing eigenvariables for existentially quantified variables when all precedent universal quantifiers were instantiated with equivalent terms. To that end, we find common prefixes of quantifier instantiations and instantiate these common prefixes only once. Assuming the substitution is non-circular, it is always possible to find a sequence of quantifier eliminations that respects the substitution, which follows from the non-circularity of the substitution.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Proof lifting</head><p>The natural deduction proof in the quantifier-free logic with Skolem functions is lifted to a proof in the quantifier logic. For this, every used instance of a quantifier-free formula is substituted by the instantiated version in the quantifier logic, and Skolem terms are mapped to appropriate eigenvariables that were obtained in the instantiation phase. In the end, one obtains a proof of ⊥ in the quantifier logic.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Implementation</head><p>We implemented the technique presented in section 3 as part of the integration of a first-order tableaux prover in the Isabelle object logic FOL. The developed proof method IsaCoP<ref type="foot" target="#foot_1">2</ref> integrates the ML version of the tableaux prover leanCoP. In this section, we will give a short introduction to the prover and present its integration in detail.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Tableau prover</head><p>For proof search we use the core reasoning procedure of the first-order tableaux prover leanCoP introduced by Otten and Bibel <ref type="bibr" target="#b13">[OB03,</ref><ref type="bibr" target="#b14">Ott08]</ref>. We translated it to Standard ML, based on a previous translation of Kaliszyk to OCaml for HOL Light <ref type="bibr" target="#b8">[KUV15]</ref>.</p><p>leanCoP was chosen due to its very simple calculus (shown in Figure <ref type="figure" target="#fig_1">1</ref>) which makes it easy to reconstruct proofs once Skolem functions have been treated.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Equality axioms</head><p>The core reasoning procedure of leanCoP does not have an inbuilt notion of equality, however the full version of leanCoP supports equality, by inserting equality axioms into the problem. For that reason, before sending the quantifier logic problem to leanCoP, we prove the following formulae and add them to the original problem:</p><p>• reflexivity of equality, • transitivity of equality, and • congruence axioms for every predicate P and every function f appearing in the problem (excluding Skolem functions and equality itself), such as:</p><formula xml:id="formula_3">x 1 = y 1 =⇒ . . . =⇒ x n = y n =⇒ P (x 1 , . . . , x n ) =⇒ P (y 1 , . . . , y n ), x 1 = y 1 =⇒ . . . =⇒ x n = y n =⇒ f (x 1 , . . , x n ) = f (y 1 , . . . , y n ).</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Translation to clausal form</head><p>To use a refutation-based prover on an Isabelle goal</p><formula xml:id="formula_4">A 1 =⇒ . . . =⇒ A n =⇒ C,</formula><p>it is necessary to first negate the conjecture. To achieve conjecture directed proof search, leanCoP marks the conjecture-related parts of the goal with a special symbol #:</p><formula xml:id="formula_5">¬C ∨ ¬# =⇒ A 1 =⇒ . . . =⇒ A n =⇒ # =⇒ ⊥.</formula><p>Furthermore, it is necessary to translate the goal to a normal form PNF + NNF + CNF. This is achieved using the Isabelle simplifier by rewriting with a fixed set of rules such as</p><formula xml:id="formula_6">¬(a ∧ b) ↔ ¬a ∨ ¬b, (∀x.P (x)) ∨ Q ↔ ∀x.(P (x) ∨ Q).</formula><p>The conversion of the goal to normal form is performed as proof steps inside the Isabelle logic, meaning that every step is logically verified. In contrast, we do not perform Skolemisation inside the logic, because we do not assume the axiom of choice. Instead, we convert the normal form to an equisatisfiable quantifier-free term by introducing Skolem functions outside the logic. From the result, we extract the clauses from the quantifier-free formulae and pass them to leanCoP.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.4">Proof reconstruction</head><p>If leanCoP found a proof (consisting of a substitution and a tableaux proof), IsaCoP extracts all quantifier logic formulae employed in extension steps and instantiates all quantifiers by the proof deskolemisation method shown in section 3. Furthermore, the terms used inside the tableaux proof are converted to terms in the quantifier logic, replacing Skolem terms by appropriate eigenvariables. Finally, the tableaux proof is converted to a natural deduction proof, following the procedure used in MESON proof reconstruction <ref type="bibr" target="#b4">[Har96]</ref>. We obtain a proof of ⊥, showing that the negated conjecture is unsatisfiable, thus proving the conjecture.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Limitations</head><p>In this section, we shed light on some limitations of our approach, most notably the type of Skolemisation and the usage of equality. Line 1 to 3.2 contain the instantiated versions of the quantifier-free formulae with Skolem functions. Note that the second disjuncts of line 3.1 and 3.2 contain two occurrences of f (c), which in the quantifier logic proof will be mapped to two different eigenvariables, namely some e 1 when x is substituted to a, and some e 2 when x is substituted to f (c). This matters because line 10 depends on the correct instantiation done in line 2, where it is not immediately clear without an analysis of the refutation whether e 1 or e 2 should be used in lieu of f (c) to instantiate ∀w.P (w, c).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Optimised Skolemisation</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">Equality</head><p>To use our reconstruction method, proofs in calculi with equality are not allowed to rewrite subterms of Skolem terms. We respect this restriction in our implementation by not generating congruence axioms for Skolem functions. To see what can go wrong when Skolem subterms are rewritten, consider the problem ∀x.∃y.P (x, y) ∧ ¬P (x, y) ∧ x = c.</p><formula xml:id="formula_7">The Skolemised version is ∀x.P (x, f (x)) ∧ ¬P (x, f (x)) ∧ x = c,</formula><p>and instantiating it with a and b yields</p><formula xml:id="formula_8">P (a, f (a)) ∧ ¬P (a, f (a)) ∧ a = c, P (b, f (b)) ∧ ¬P (b, f (b)) ∧ b = c.</formula><p>Assume that the proof shows ⊥ using P (a, f (a)) and ¬P (b, f (b)), rewriting b to a. Reproducing this proof in quantifier logic is difficult, because the Skolem terms do not exist in quantifier logic, so rewriting underneath a Skolem term cannot be simply translated to quantifier logic.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Related work</head><p>The axiom of choice can be used to represent Skolem functions: Given a formula ∀x.∃y.P (x, y), it can be Skolemised to ∀x.P (x, f (x)), and the Skolem function is then defined to be f = λx. y.P (x, y) <ref type="bibr" target="#b5">[HB39]</ref>. While such reasoning can be in principle expressed in FOL-based logics, it creates an ugly dependency on the axiom of choice, which is not assumed in Isabelle/FOL, and certain derived logics such as the Mizar environment do not assume it in general.</p><p>Various approaches for reducing the reliance on the axiom of choice are discussed by Blanchette in the section "Skolemization without Choice" of his Ph.D. thesis <ref type="bibr" target="#b2">[Bla12]</ref>. In particular, he shows how to simulate Skolem functions as (higher-order) schematic functions in Isabelle to reconstruct proofs of the automated theorem prover Metis. Isabelle's higher-order unifier can then frequently find the function that implements the Skolem function.</p><p>Another approach by de Nivelle <ref type="bibr">[dN05]</ref> is about the translation of resolution proofs into first-order proofs: He introduces Skolem relations to simulate the effect of Skolem functions. This approach relies on the less controversial definite description operator. Such an operator is however still not provided for any first-order Mizar type <ref type="bibr" target="#b7">[KPU16]</ref>.</p><p>Avigad <ref type="bibr" target="#b0">[Avi03]</ref> adds new functions by building finite approximations thereof via a forcing argument. All these approaches aim in some or the other way at introducing the Skolem functions in the logic where the proof is carried out. Our method reconstructs proofs without introducing Skolem functions in the proof assistant.</p><p>A more general approach to reconstruct proofs in natural deduction calculi can be achieved by using expansion trees <ref type="bibr" target="#b10">[Mil83,</ref><ref type="bibr" target="#b18">Pfe87]</ref> which implicitly encode quantifier instantiations and also allow reconstruction of proofs that do not rely on prenex normal form. We plan to adopt expansion trees in the future.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Conclusion</head><p>We showed a method to create instances of logic formulae without occurrences of Skolem functions from proofs with Skolem functions. This allows reconstruction of ATP proofs with Skolem functions in first-order logic. Furthermore, we implemented our approach as a proof tactic for Isabelle/FOL, using it to reconstruct proofs from a tableaux prover. Further work can be done to improve the tactic, making it a contestant for existing tactics: Treatment of lambda abstractions (which occur in a few places because FOL is encoded as an Isabelle object logic), e.g. by translating them to combinators, and extension to logics beyond FOL. Furthermore, our method might be usable to reconstruct also proofs from more powerful ATPs, such as E <ref type="bibr" target="#b19">[Sch13]</ref> and Vampire <ref type="bibr" target="#b9">[KV13]</ref>, provided one can obtain suitable substitutions from their proofs and one restricts the usage of equality, see subsection 5.2. In the future, we would like to use expansion trees and to adapt a non-clausal prover <ref type="bibr" target="#b15">[Ott11]</ref> for proof search.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>1</head><label></label><figDesc>∃x.∀y.P (x, y) 2 ∀z.∃w.¬P (z, w) 3 a ∀y.P (a, y) 4 ∃w.¬P (a, w) ∀E, 2 5 f a ¬P (a, f a ) 6 P (a, f a )</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: The clause connection calculus used in leanCoP.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>) A single outer Skolemisation step of a formula t is</figDesc><table><row><cell>Sk 1 (t) =</cell><cell>∀x 1 , . . . , x n .P [y := f (x 1 , . . . , x n )] if t = ∀x 1 , . . . , x n .∃y.P t otherwise,</cell></row><row><cell cols="2">where f is a fresh function symbol. The final Skolemisation Sk(t) is the fixpoint of the single-step Skolemisation</cell></row><row><cell cols="2">Sk 1 (t). We call the set of fresh functions Skolem functions, and an application of a Skolem function a Skolem</cell></row><row><cell>term.</cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1 :</head><label>1</label><figDesc>Skolemisation of ∃x∀y.P (x, y) =⇒ ∀z∃w.¬P (z, w) =⇒ ⊥.</figDesc><table><row><cell cols="3"># Quantifier formula Quantifier-free formula</cell></row><row><cell>t 1</cell><cell>∃x∀y.P (x, y)</cell><cell>P (a, y)</cell></row><row><cell>t 2</cell><cell>∀z∃w.¬P (z, w)</cell><cell>¬P (z, f (z))</cell></row></table><note>Consider the problem ∃x∀y.P (x, y) =⇒ ∀z∃w.¬P (z, w) =⇒ ⊥. Its quantifier-free version is shown in Table</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 2 :</head><label>2</label><figDesc>Inner Skolemisation example.We currently use outer Skolemisation, because optimised Skolemisation methods, such as inner Skolemisation, may require creating different eigenvariables for syntactically equivalent Skolem terms. Consider for example Table2. The corresponding natural deduction proof for the quantifier-free formula might look as follows:</figDesc><table><row><cell>#</cell><cell cols="2">Quantifier formula Quantifier-free formula</cell></row><row><cell>t 1</cell><cell>¬P (a, c)</cell><cell>¬P (a, c)</cell></row><row><cell>t 2</cell><cell>∀w.P (w, c)</cell><cell>P (w, c)</cell></row><row><cell>t</cell><cell></cell><cell></cell></row></table><note>3 ∀xy.(P (x, y) ∧ ∃z.¬P (z, y)) P (x, y) ∨ ¬P (f (y), y)</note></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">Different substitutions are admissible for this example, for example {y → f (a), z → a}.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">The source code of IsaCoP is available under http://cl-informatik.uibk.ac.at/users/mfaerber/tactics.html.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgements</head><p>We would like to thank Chad Brown for the examples in section 5 and Thomas Powell for the discussions on the role of Skolem functions. This work has been supported by the Austrian Science Fund (FWF) grant P26201.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Eliminating definitions and Skolem functions in first-order logic</title>
		<author>
			<persName><forename type="first">Jeremy</forename><surname>Avigad</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Trans. Comput. Log</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="402" to="415" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Hammering towards QED</title>
		<author>
			<persName><forename type="first">Jasmin</forename><surname>Christian Blanchette</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Cezary</forename><surname>Kaliszyk</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lawrence</forename><forename type="middle">C</forename><surname>Paulson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Josef</forename><surname>Urban</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Formalized Reasoning</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="101" to="148" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Automatic Proofs and Refutations for Higher-Order Logic</title>
		<author>
			<persName><forename type="first">C</forename><surname>Jasmin</surname></persName>
		</author>
		<author>
			<persName><surname>Blanchette</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
		<respStmt>
			<orgName>Universität München</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD thesis</note>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Translation of resolution proofs into short first-order proofs without choice axioms</title>
		<author>
			<persName><forename type="first">Hans</forename><surname>De</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Nivelle</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Inf. Comput</title>
		<imprint>
			<biblScope unit="volume">199</biblScope>
			<biblScope unit="issue">1-2</biblScope>
			<biblScope unit="page" from="24" to="54" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Optimizing proof search in model elimination</title>
		<author>
			<persName><forename type="first">John</forename><surname>Harrison</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Automated Deduction -CADE-13, 13th International Conference on Automated Deduction</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>
			<persName><forename type="first">Michael</forename><forename type="middle">A</forename><surname>Mcrobbie</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">John</forename><forename type="middle">K</forename><surname>Slaney</surname></persName>
		</editor>
		<meeting><address><addrLine>New Brunswick, NJ, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="1104">July 30 -August 3, 1996. 1104. 1996</date>
			<biblScope unit="page" from="313" to="327" />
		</imprint>
	</monogr>
	<note>Proceedings</note>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">David</forename><surname>Hilbert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Paul</forename><surname>Bernays</surname></persName>
		</author>
		<title level="m">Grundlagen der Mathematik II</title>
				<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="1939">1939</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">First-order proof tactics in higher-order logic theorem provers</title>
		<author>
			<persName><forename type="first">Joe</forename><surname>Hurd</surname></persName>
		</author>
		<idno>number NASA/CP-2003-212448</idno>
	</analytic>
	<monogr>
		<title level="m">Design and Application of Strategies/Tactics in Higher Order Logics</title>
				<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="56" to="68" />
		</imprint>
	</monogr>
	<note type="report_type">NASA Technical Reports</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Towards a Mizar environment for Isabelle: Foundations and language</title>
		<author>
			<persName><forename type="first">Cezary</forename><surname>Kaliszyk</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Karol</forename><surname>Pąk</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Josef</forename><surname>Urban</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 5th ACM SIGPLAN Conference on Certified Programs and Proofs</title>
				<editor>
			<persName><forename type="first">Jeremy</forename><surname>Avigad</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Adam</forename><surname>Chlipala</surname></persName>
		</editor>
		<meeting>the 5th ACM SIGPLAN Conference on Certified Programs and Proofs<address><addrLine>Saint Petersburg, FL, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2016">January 20-22, 2016. 2016</date>
			<biblScope unit="page" from="58" to="65" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Certified connection tableaux proofs for HOL Light and TPTP</title>
		<author>
			<persName><forename type="first">Cezary</forename><surname>Kaliszyk</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Josef</forename><surname>Urban</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jirí</forename><surname>Vyskocil</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2015 Conference on Certified Programs and Proofs, CPP 2015</title>
				<editor>
			<persName><forename type="first">Xavier</forename><surname>Leroy</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Alwen</forename><surname>Tiu</surname></persName>
		</editor>
		<meeting>the 2015 Conference on Certified Programs and Proofs, CPP 2015<address><addrLine>Mumbai, India</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2015">January 15-17, 2015. 2015</date>
			<biblScope unit="page" from="59" to="66" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">First-order theorem proving and Vampire</title>
		<author>
			<persName><forename type="first">Laura</forename><surname>Kovács</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Andrei</forename><surname>Voronkov</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Computer Aided Verification -25th International Conference, CAV 2013</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>
			<persName><forename type="first">Natasha</forename><surname>Sharygina</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Helmut</forename><surname>Veith</surname></persName>
		</editor>
		<meeting><address><addrLine>Saint Petersburg, Russia</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2013">July 13-19, 2013. 2013</date>
			<biblScope unit="volume">8044</biblScope>
			<biblScope unit="page" from="1" to="35" />
		</imprint>
	</monogr>
	<note>Proceedings</note>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">Proofs in Higher-Order Logic</title>
		<author>
			<persName><forename type="first">Dale</forename><forename type="middle">A</forename><surname>Miller</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1983">1983</date>
		</imprint>
		<respStmt>
			<orgName>Carnegie Mellon University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD thesis</note>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Isabelle/HOL -A Proof Assistant for Higher-Order Logic</title>
		<author>
			<persName><forename type="first">Tobias</forename><surname>Nipkow</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Lawrence</forename><forename type="middle">C</forename><surname>Paulson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Markus</forename><surname>Wenzel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Lecture Notes in Computer Science</title>
		<imprint>
			<biblScope unit="volume">2283</biblScope>
			<date type="published" when="2002">2002</date>
			<publisher>Springer</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Computing small clause normal forms</title>
		<author>
			<persName><forename type="first">Andreas</forename><surname>Nonnengart</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Christoph</forename><surname>Weidenbach</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Handbook of Automated Reasoning (in 2 volumes</title>
				<editor>
			<persName><forename type="first">John</forename><surname>Alan</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Robinson</forename></persName>
		</editor>
		<editor>
			<persName><forename type="first">Andrei</forename><surname>Voronkov</surname></persName>
		</editor>
		<imprint>
			<publisher>Elsevier and MIT Press</publisher>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="335" to="367" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">leanCoP: lean connection-based theorem proving</title>
		<author>
			<persName><forename type="first">Jens</forename><surname>Otten</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Wolfgang</forename><surname>Bibel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Symb. Comput</title>
		<imprint>
			<biblScope unit="volume">36</biblScope>
			<biblScope unit="issue">1-2</biblScope>
			<biblScope unit="page" from="139" to="161" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">leanCoP 2.0 and ileanCoP 1.2: High performance lean theorem proving in classical and intuitionistic logic (system descriptions)</title>
		<author>
			<persName><forename type="first">Jens</forename><surname>Otten</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Automated Reasoning, 4th International Joint Conference, IJCAR 2008</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>
			<persName><forename type="first">Alessandro</forename><surname>Armando</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Peter</forename><surname>Baumgartner</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Gilles</forename><surname>Dowek</surname></persName>
		</editor>
		<meeting><address><addrLine>Sydney, Australia</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2008">August 12-15, 2008. 2008</date>
			<biblScope unit="volume">5195</biblScope>
			<biblScope unit="page" from="283" to="291" />
		</imprint>
	</monogr>
	<note>Proceedings</note>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">A non-clausal connection calculus</title>
		<author>
			<persName><forename type="first">Jens</forename><surname>Otten</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Automated Reasoning with Analytic Tableaux and Related Methods -20th International Conference, TABLEAUX 2011</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>
			<persName><forename type="first">Kai</forename><surname>Brünnler</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">George</forename><surname>Metcalfe</surname></persName>
		</editor>
		<meeting><address><addrLine>Bern, Switzerland</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2011">July 4-8, 2011. 2011</date>
			<biblScope unit="volume">6793</biblScope>
			<biblScope unit="page" from="226" to="241" />
		</imprint>
	</monogr>
	<note>Proceedings</note>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Set theory for verification: I. From foundations to functions</title>
		<author>
			<persName><forename type="first">Lawrence</forename><forename type="middle">C</forename><surname>Paulson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Autom. Reasoning</title>
		<imprint>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="353" to="389" />
			<date type="published" when="1993">1993</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">A generic tableau prover and its integration with Isabelle</title>
		<author>
			<persName><forename type="first">Lawrence</forename><forename type="middle">C</forename><surname>Paulson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. UCS</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="73" to="87" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">Proof Transformations in Higher-Order Logic</title>
		<author>
			<persName><forename type="first">Frank</forename><surname>Pfenning</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1987">1987</date>
		</imprint>
		<respStmt>
			<orgName>Carnegie Mellon University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD thesis</note>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">System description: E 1</title>
		<author>
			<persName><forename type="first">Stephan</forename><surname>Schulz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Logic for Programming, Artificial Intelligence, and Reasoning -19th International Conference, LPAR-19</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>
			<persName><forename type="first">L</forename><surname>Kenneth</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Aart</forename><surname>Mcmillan</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Andrei</forename><surname>Middeldorp</surname></persName>
		</editor>
		<editor>
			<persName><surname>Voronkov</surname></persName>
		</editor>
		<meeting><address><addrLine>Stellenbosch, South Africa</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2013">December 14-19, 2013. 2013</date>
			<biblScope unit="volume">8312</biblScope>
			<biblScope unit="page" from="735" to="743" />
		</imprint>
	</monogr>
	<note>Proceedings</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
