# Entrants' Sample Solutions

## Darwin CASC-J2

Peter Baumgartner1, Alexander Fuchs2, Cesare Tinelli3
1Max-Planck-Institut für Informatik Saarbrücken, Germany, baumgart@mpi-sb.mpg.de
2Universität Koblenz-Landau, Germany
alexander.fuchs@uni-koblenz.de
3The University of Iowa, Iowa
tinelli@cs.uiowa.edu

### Legend

• The induced interpretation by the model output is explained in the Model Evolution paper by Baumgartner and Tinelli.
• Variables are represented by numbers, universal variables start with a '_', parametric variables with a '=', e.g. '_0', '=0'
• Skolem constants are represented by a number enclosed in '__', e.g. '__10__'

### Sample SAT model for MGT031-1

```-greater_or_equal(cardinality_at_time(first_movers, appear(an_organisation, sk2)), number_of_organizations(e, appear(an_organisation, sk2)))
-=(cardinality_at_time(first_movers, appear(an_organisation, sk2)), number_of_organizations(e, appear(an_organisation, sk2)))
-=(number_of_organizations(e, appear(an_organisation, sk2)), cardinality_at_time(first_movers, appear(an_organisation, sk2)))
-greater(cardinality_at_time(first_movers, appear(an_organisation, sk2)), number_of_organizations(e, appear(an_organisation, sk2)))
+greater_or_equal(appear(efficient_producers, e), appear(an_organisation, sk2))
-greater(cardinality_at_time(first_movers, appear(an_organisation, sk2)), zero)
+greater(appear(efficient_producers, e), appear(an_organisation, sk2))
+greater(appear(first_movers, sk2), appear(an_organisation, sk2))
+greater_or_equal(appear(efficient_producers, e), appear(first_movers, sk2))
+greater_or_equal(number_of_organizations(e, appear(an_organisation, sk2)), zero)
+greater(appear(efficient_producers, e), appear(first_movers, sk2))
+greater(number_of_organizations(e, appear(an_organisation, sk2)), zero)
+greater_or_equal(appear(first_movers, sk2), appear(an_organisation, sk2))
-=(appear(first_movers, sk2), appear(an_organisation, sk2))
-=(first_movers, an_organisation)
-=(an_organisation, first_movers)
+greater_or_equal(_0, _0)
-=(appear(an_organisation, sk2), appear(first_movers, sk2))
+in_environment(sk2, appear(an_organisation, sk2))
+environment(sk2)
+=(_0, _0)
```

### Sample SAT model for SYN736-1

```+ssPv2(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))))))))
-ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))))))))
-ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))))))))
+ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))))))
+ssPv2(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))))))
-ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))))))
+ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))))))
-ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))))
+ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))))
-ssPv2(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))))
+ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))))))
+ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))))))
+ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))))))
+ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))))
-ssPv2(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))))
-ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))))
+ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))))
-ssPv2(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))
-ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))))
+ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))
-ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))
+ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))
+ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))
+ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))))
+ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))
+ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))))
-ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))
+ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))
-ssPv2(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))
+ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))
+ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))))
-ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))
-ssPv2(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))))
+ssPv2(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))
-ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))
+ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))
-ssPv2(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))
+ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))
-ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))))
-ssPv1(skf1(skf1(skf1(skf1(skf1(=0))))))
-ssPv2(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))
-ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))
+ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))
+ssPv3(skf1(skf1(skf1(skf1(skf1(skf1(skf1(=0))))))))
-ssPv4(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))
+ssPv2(skf1(skf1(skf1(skf1(skf1(=0))))))
+ssPv1(skf1(skf1(skf1(skf1(skf1(skf1(=0)))))))
-ssPv3(skf1(skf1(skf1(skf1(skf1(=0))))))
-ssPv4(skf1(skf1(skf1(skf1(=0)))))
+ssPv2(skf1(skf1(skf1(skf1(=0)))))
+ssPv1(skf1(skf1(skf1(=0))))
-ssPv2(skf1(skf1(=0)))
-ssPv3(skf1(skf1(skf1(skf1(=0)))))
-ssPv4(skf1(skf1(=0)))
+ssPv1(skf1(skf1(skf1(skf1(=0)))))
-ssPv2(skf1(skf1(skf1(=0))))
-ssPv3(skf1(skf1(=0)))
+ssPv3(skf1(skf1(skf1(=0))))
-ssPv4(skf1(=0))
+ssPv2(=0)
+ssPv1(skf1(skf1(=0)))
+ssPv2(skf1(=0))
+ssPv4(skf1(skf1(skf1(=0))))
+ssPv3(skf1(=0))
-ssPv1(skf1(=0))
+ssPv4(=0)
+ssPv1(=0)
+ssRr(_0, skf1(_0))
```

## E and EP 8.2

Stephan Schulz
Institut für Informatik, Technische Universität München, Germany, and ITC/irst, Trento, Italy
schulz@informatik.tu-muenchen.de

### Legend

EP will use the current version of the new TSTP output format, documented in [SZS03]. The current implementation lists initial clauses as of "unknown" origin. The following rule names are defined for the main proof search:

er
Equality resolution: x!=a v x=x ==> a=a
pm
Paramodulation. Note that E considers all literals as equational, and thus also performs resolution by a combination of top-level paramodulation and (implicit) clause normalization.
ef
Equality factoring (factor equations on one side only, move the remaining disequation into the precondition): x=a v b=c v x=d ==> a!=c v b=c vb=d
split
Clause splitting a la Vampire (non-deductive, but maintains unsatisfiability)
rw
Rewriting, each rw-expression corresponds to exacly one rewrite step with the named clause. This is also used for equational unfolding.
sr
Simplify-reflect: An (equational) version of unit-cutting. As as example, see this positive simplify-reflect step: [a=b], [f(a)!=f(b)] => [].
csr
Contextual simplify-reflect (also known as contextual literal cutting or subsumption resolution): Literal cutting with non-unit clauses if one of the literals is implied in the context of the clause to be simplified.
ar
AC-resolution: Delete literals that are trivial modulo the AC-theory induced by the named clauses
cn
Clause normalize, delete trivial and repeated literals. This step is often implicit, but can sometimes occcur explicitely.

assume_negation
Negate a conjecture for a proof by refutation.
fof_nnf
Convert a formula to negation normal form by moving negation signs inward to the literals, and eleminating equivalences and implications.
shift_quantors
Move quantors (inwards for mini-scoping or outwards for the final conjunctive normal form).
variable_rename
Rename bound variables to make sure each quantor binds a different variable.
skolemize
Eleminate existential quantors via Skolemization.
distribute
Apply distributivity law to move and outwards over or.
split_conjunct
Split of one conjunct from a formula in conjunctive normal form to create a clause.
fof_simplification
Perform standard simplification steps on the formula. This may also replaces back implications and exclusive or with equivalent constructs using implications and equivalences.

The first proof uses all proof search inferences except for "ef" and "csr", although it uses some in fairly trivial ways. The second is the required proof for SYN075-1, and contains examples for "ef" and "csr". The final proof is for SYN075+1, and also contains the clausification steps.

### Sample MIX proof showing all rules

```# Problem is unsatisfiable, constructing proof object
# TSTP exit status: Unsatisfiable
# Proof object starts here.
cnf(1,axiom,(equal(f(X1,X2), f(X2,X1))),unknown).
cnf(2,axiom,(equal(f(X1,f(X2,X3)), f(f(X1,X2),X3))),unknown).
cnf(3,axiom,(equal(g(X1,X2), g(X2,X1))),unknown).
cnf(4,axiom,(~equal(f(f(X1,X2),f(X3,g(X4,X5))), f(f(g(X4,X5),X3),f(X2,X1)))|~equal(k(X1,X1), k(a,b))),unknown).
cnf(5,axiom,(equal(b, c)|~equal(X1, X2)|~equal(X3, X4)|~equal(c, d)),unknown).
cnf(6,axiom,(equal(a, b)|equal(a, c)),unknown).
cnf(7,axiom,(equal(i(X1), i(X2))),unknown).
cnf(8,axiom,(equal(c, d)|~equal(h(i(a)), h(i(e)))),unknown).
cnf(13,plain-derived,(~equal(k(a,b), k(X1,X1))),inference(ar,[status(thm)],[4,1,3,2,theory(equality)])).
cnf(23,plain-derived,(equal(c, b)|epred1_0|~equal(d, c)|~equal(X3, X4)),inference(split,[split(esplit,[])],[5])).
cnf(24,plain-derived,(epred2_0|~equal(X1, X2)),inference(split,[split(esplit,[])],[5])).
cnf(25,plain-derived,(~epred2_0|~epred1_0),inference(split,[split(esplit,[])],[5])).
cnf(26,plain-derived,(epred2_0),inference(er,[status(thm)],[24,theory(equality)])).
cnf(27,plain-derived,(false|~epred1_0),inference(rw,[status(thm)],[25,26,theory(equality)])).
cnf(28,plain-derived,(~epred1_0),inference(cn,[status(thm)],[27,theory(equality)])).
cnf(29,plain-derived,(equal(c, b)|epred1_0|~equal(d, c)),inference(er,[status(thm)],[23,theory(equality)])).
cnf(30,plain-derived,(equal(c, b)|~equal(d, c)),inference(sr,[status(thm)],[29,28,theory(equality)])).
cnf(31,plain-derived,(equal(d, c)),inference(sr,[status(thm)],[8,7,theory(equality)])).
cnf(32,plain-derived,(equal(c, b)|false),inference(rw,[status(thm)],[30,31,theory(equality)])).
cnf(33,plain-derived,(equal(c, b)),inference(cn,[status(thm)],[32,theory(equality)])).
cnf(34,plain-derived,(equal(b, a)),inference(pm,[status(thm)],[6,33,theory(equality)])).
cnf(36,plain-derived,(~equal(k(b,b), k(X1,X1))),inference(rw,[status(thm)],[13,34,theory(equality)])).
cnf(75,plain-derived,(false),inference(er,[status(thm)],[36,theory(equality)])).
cnf(76,plain-derived,(false),75,['proof']).
# Proof object ends here.
```

### Sample MIX proof for SYN075-1

```# Problem is unsatisfiable, constructing proof object
# TSTP exit status: Unsatisfiable
# Proof object starts here.
cnf(1,axiom,(equal(X1, a)|~big_f(X1,X2)),unknown).
cnf(3,axiom,(big_f(X1,X2)|~equal(X1, a)|~equal(X2, b)),unknown).
cnf(4,conjecture,(equal(f(X2), X2)|~big_f(X1,f(X2))|~equal(X1, g(X2))),unknown).
cnf(6,conjecture,(big_f(X1,f(X2))|equal(f(X2), X2)|~equal(X1, g(X2))),unknown).
cnf(9,conjecture,(big_f(h(X1,X2),f(X1))|equal(h(X1,X2), X2)|~equal(f(X1), X1)),unknown).
cnf(10,conjecture,(~equal(f(X1), X1)|~equal(h(X1,X2), X2)|~big_f(h(X1,X2),f(X1))),unknown).
cnf(13,conjecture-derived,(~equal(f(X1), X1)|~equal(h(X1,X2), X2)|~equal(a, h(X1,X2))|~equal(b, f(X1))),inference(pm,[status(thm)],[10,3,theory(equality)])).
cnf(15,conjecture-derived,(equal(f(X2), X2)|~equal(g(X2), X1)),inference(csr,[status(thm)],[6,4])).
cnf(16,conjecture-derived,(equal(f(X1), X1)),inference(er,[status(thm)],[15,theory(equality)])).
cnf(23,conjecture-derived,(false|~equal(h(X1,X2), X2)|~equal(h(X1,X2), a)|~equal(f(X1), b)),inference(rw,[status(thm)],[13,16,theory(equality)])).
cnf(24,conjecture-derived,(false|~equal(h(X1,X2), X2)|~equal(h(X1,X2), a)|~equal(X1, b)),inference(rw,[status(thm)],[23,16,theory(equality)])).
cnf(25,conjecture-derived,(~equal(h(X1,X2), X2)|~equal(h(X1,X2), a)|~equal(X1, b)),inference(cn,[status(thm)],[24,theory(equality)])).
cnf(30,conjecture-derived,(equal(h(X1,X2), X2)|big_f(h(X1,X2),X1)|~equal(f(X1), X1)),inference(rw,[status(thm)],[9,16,theory(equality)])).
cnf(31,conjecture-derived,(equal(h(X1,X2), X2)|big_f(h(X1,X2),X1)|false),inference(rw,[status(thm)],[30,16,theory(equality)])).
cnf(32,conjecture-derived,(equal(h(X1,X2), X2)|big_f(h(X1,X2),X1)),inference(cn,[status(thm)],[31,theory(equality)])).
cnf(38,conjecture-derived,(equal(a, h(X1,X2))|equal(h(X1,X2), X2)),inference(pm,[status(thm)],[1,32,theory(equality)])).
cnf(51,conjecture-derived,(equal(h(X5,X6), a)|~equal(X6, a)),inference(ef,[status(thm)],[38,theory(equality)])).
cnf(54,conjecture-derived,(equal(h(X1,X2), X2)|~equal(a, X2)|~equal(h(X1,X2), a)|~equal(X1, b)),inference(pm,[status(thm)],[25,38,theory(equality)])).
cnf(85,conjecture-derived,(~equal(a, X2)|~equal(h(X1,X2), a)|~equal(X1, b)),inference(csr,[status(thm)],[54,25])).
cnf(86,conjecture-derived,(~equal(a, X2)|~equal(X1, b)),inference(csr,[status(thm)],[85,51])).
cnf(87,conjecture-derived,(epred1_0|~equal(a, X2)),inference(split,[split(esplit,[])],[86])).
cnf(88,conjecture-derived,(epred2_0|~equal(X1, b)),inference(split,[split(esplit,[])],[86])).
cnf(89,conjecture-derived,(~epred2_0|~epred1_0),inference(split,[split(esplit,[])],[86])).
cnf(90,conjecture-derived,(epred1_0),inference(er,[status(thm)],[87,theory(equality)])).
cnf(92,conjecture-derived,(~epred2_0|false),inference(rw,[status(thm)],[89,90,theory(equality)])).
cnf(93,conjecture-derived,(~epred2_0),inference(cn,[status(thm)],[92,theory(equality)])).
cnf(94,conjecture-derived,(~equal(X1, b)),inference(sr,[status(thm)],[88,93,theory(equality)])).
cnf(95,conjecture-derived,(false),inference(er,[status(thm)],[94,theory(equality)])).
cnf(97,conjecture-derived,(false),95,['proof']).
# Proof object ends here.
```

### Sample FOF proof for SYN075+1

```# Problem is unsatisfiable, constructing proof object
# TSTP exit status: Unsatisfiable
# Proof object starts here.
fof(1, axiom,?[X1]:?[X2]:![X3]:![X4]:(big_f(X3,X4)<=>(equal(X3, X1)&equal(X4, X2))),unknown).
fof(2, conjecture,?[X2]:![X4]:(?[X1]:![X3]:(big_f(X3,X4)<=>equal(X3, X1))<=>equal(X4, X2)),unknown).
fof(3, assumption-derived,~(?[X2]:![X4]:(?[X1]:![X3]:(big_f(X3,X4)<=>equal(X3, X1))<=>equal(X4, X2))),inference(assume_negation,[status(cth)],[2])).
fof(4, plain-derived,?[X1]:?[X2]:![X3]:![X4]:((~(big_f(X3,X4))|(equal(X3, X1)&equal(X4, X2)))&((~(equal(X3, X1))|~(equal(X4, X2)))|big_f(X3,X4))),inference(fof_nnf,[status(thm)],[1])).
fof(5, plain-derived,?[X1]:?[X2]:(![X3]:![X4]:(~(big_f(X3,X4))|(equal(X3, X1)&equal(X4, X2)))&![X3]:![X4]:((~(equal(X3, X1))|~(equal(X4, X2)))|big_f(X3,X4))),inference(shift_quantors,[status(thm)],[4])).
fof(6, plain-derived,?[X5]:?[X6]:(![X7]:![X8]:(~(big_f(X7,X8))|(equal(X7, X5)&equal(X8, X6)))&![X9]:![X10]:((~(equal(X9, X5))|~(equal(X10, X6)))|big_f(X9,X10))),inference(variable_rename,[status(thm)],[5])).
fof(7, plain-derived,(![X7]:![X8]:(~(big_f(X7,X8))|(equal(X7, esk1_0)&equal(X8, esk2_0)))&![X9]:![X10]:((~(equal(X9, esk1_0))|~(equal(X10, esk2_0)))|big_f(X9,X10))),inference(skolemize,[status(sab)],[6])).
fof(8, plain-derived,![X7]:![X8]:![X9]:![X10]:(((equal(X7, esk1_0)|~(big_f(X7,X8)))&(equal(X8, esk2_0)|~(big_f(X7,X8))))&((~(equal(X9, esk1_0))|~(equal(X10, esk2_0)))|big_f(X9,X10))),inference(distribute,[status(thm)],[7])).
cnf(9,plain-derived,(big_f(X9,X10)|~equal(X10, esk2_0)|~equal(X9, esk1_0)),inference(split_conjunct,[status(thm)],[8])).
cnf(10,plain-derived,(equal(X8, esk2_0)|~big_f(X7,X8)),inference(split_conjunct,[status(thm)],[8])).
cnf(11,plain-derived,(equal(X7, esk1_0)|~big_f(X7,X8)),inference(split_conjunct,[status(thm)],[8])).
fof(12, assumption-derived,![X2]:?[X4]:((![X1]:?[X3]:((~(big_f(X3,X4))|~(equal(X3, X1)))&(big_f(X3,X4)|equal(X3, X1)))|~(equal(X4, X2)))&(?[X1]:![X3]:((big_f(X3,X4)&equal(X3, X1))|(~(big_f(X3,X4))&~(equal(X3, X1))))|equal(X4, X2))),inference(fof_nnf,[status(thm)],[3])).
fof(13, assumption-derived,![X5]:?[X6]:((![X7]:?[X8]:((~(big_f(X8,X6))|~(equal(X8, X7)))&(big_f(X8,X6)|equal(X8, X7)))|~(equal(X6, X5)))&(?[X9]:![X10]:((big_f(X10,X6)&equal(X10, X9))|(~(big_f(X10,X6))&~(equal(X10, X9))))|equal(X6, X5))),inference(variable_rename,[status(thm)],[12])).
fof(14, assumption-derived,![X5]:((![X7]:((~(big_f(esk4_2(X5,X7),esk3_1(X5)))|~(equal(esk4_2(X5,X7), X7)))&(big_f(esk4_2(X5,X7),esk3_1(X5))|equal(esk4_2(X5,X7), X7)))|~(equal(esk3_1(X5), X5)))&(![X10]:((big_f(X10,esk3_1(X5))&equal(X10, esk5_1(X5)))|(~(big_f(X10,esk3_1(X5)))&~(equal(X10, esk5_1(X5)))))|equal(esk3_1(X5), X5))),inference(skolemize,[status(sab)],[13])).
fof(15, assumption-derived,![X5]:![X7]:![X10]:((((~(big_f(esk4_2(X5,X7),esk3_1(X5)))|~(equal(esk4_2(X5,X7), X7)))|~(equal(esk3_1(X5), X5)))&((big_f(esk4_2(X5,X7),esk3_1(X5))|equal(esk4_2(X5,X7), X7))|~(equal(esk3_1(X5), X5))))&((((~(big_f(X10,esk3_1(X5)))|big_f(X10,esk3_1(X5)))|equal(esk3_1(X5), X5))&((~(equal(X10, esk5_1(X5)))|big_f(X10,esk3_1(X5)))|equal(esk3_1(X5), X5)))&(((~(big_f(X10,esk3_1(X5)))|equal(X10, esk5_1(X5)))|equal(esk3_1(X5), X5))&((~(equal(X10, esk5_1(X5)))|equal(X10, esk5_1(X5)))|equal(esk3_1(X5), X5))))),inference(distribute,[status(thm)],[14])).
cnf(18,conjecture-derived,(equal(esk3_1(X5), X5)|big_f(X10,esk3_1(X5))|~equal(X10, esk5_1(X5))),inference(split_conjunct,[status(thm)],[15])).
cnf(20,conjecture-derived,(equal(esk4_2(X5,X7), X7)|big_f(esk4_2(X5,X7),esk3_1(X5))|~equal(esk3_1(X5), X5)),inference(split_conjunct,[status(thm)],[15])).
cnf(21,conjecture-derived,(~equal(esk3_1(X5), X5)|~equal(esk4_2(X5,X7), X7)|~big_f(esk4_2(X5,X7),esk3_1(X5))),inference(split_conjunct,[status(thm)],[15])).
cnf(24,conjecture-derived,(~equal(esk3_1(X1), X1)|~equal(esk4_2(X1,X2), X2)|~equal(esk1_0, esk4_2(X1,X2))|~equal(esk2_0, esk3_1(X1))),inference(pm,[status(thm)],[21,9,theory(equality)])).
cnf(26,conjecture-derived,(equal(esk3_1(X1), X1)|big_f(esk5_1(X1),esk3_1(X1))),inference(er,[status(thm)],[18,theory(equality)])).
cnf(27,conjecture-derived,(equal(esk1_0, esk4_2(X1,X2))|equal(esk4_2(X1,X2), X2)|~equal(esk3_1(X1), X1)),inference(pm,[status(thm)],[11,20,theory(equality)])).
cnf(28,conjecture-derived,(equal(esk2_0, esk3_1(X1))|equal(esk4_2(X1,X2), X2)|~equal(esk3_1(X1), X1)),inference(pm,[status(thm)],[10,20,theory(equality)])).
cnf(31,conjecture-derived,(equal(esk1_0, esk5_1(X1))|equal(esk3_1(X1), X1)),inference(pm,[status(thm)],[11,26,theory(equality)])).
cnf(32,conjecture-derived,(equal(esk2_0, esk3_1(X1))|equal(esk3_1(X1), X1)),inference(pm,[status(thm)],[10,26,theory(equality)])).
cnf(35,conjecture-derived,(big_f(esk1_0,esk3_1(X1))|equal(esk3_1(X1), X1)),inference(pm,[status(thm)],[26,31,theory(equality)])).
cnf(36,conjecture-derived,(equal(esk3_1(X2), X2)|~equal(esk2_0, X2)),inference(ef,[status(thm)],[32,theory(equality)])).
cnf(50,conjecture-derived,(~big_f(esk4_2(X1,X2),X1)|~equal(esk3_1(X1), X1)|~equal(esk4_2(X1,X2), X2)|~equal(esk2_0, X1)),inference(pm,[status(thm)],[21,36,theory(equality)])).
cnf(64,conjecture-derived,(big_f(esk1_0,esk2_0)|equal(esk3_1(X1), X1)),inference(pm,[status(thm)],[35,32,theory(equality)])).
cnf(79,conjecture-derived,(~big_f(esk4_2(X1,X2),X1)|~equal(esk4_2(X1,X2), X2)|~equal(esk2_0, X1)),inference(csr,[status(thm)],[50,36])).
cnf(80,conjecture-derived,(~big_f(esk4_2(X1,X2),X1)|~equal(esk4_2(X1,X2), X2)),inference(csr,[status(thm)],[79,10])).
cnf(100,conjecture-derived,(equal(esk3_1(X1), esk2_0)|equal(esk4_2(X1,X2), X2)),inference(csr,[status(thm)],[28,32])).
cnf(104,conjecture-derived,(equal(esk3_1(X1), esk2_0)|~big_f(X2,X1)|~equal(esk4_2(X1,X2), X2)),inference(pm,[status(thm)],[80,100,theory(equality)])).
cnf(108,conjecture-derived,(equal(esk3_1(X1), esk2_0)|~big_f(X2,X1)),inference(csr,[status(thm)],[104,100])).
cnf(113,conjecture-derived,(equal(esk3_1(esk2_0), esk2_0)|equal(esk3_1(X1), X1)),inference(pm,[status(thm)],[108,64,theory(equality)])).
cnf(136,conjecture-derived,(equal(esk3_1(esk2_0), esk2_0)),inference(ef,[status(thm)],[113,theory(equality)])).
cnf(174,conjecture-derived,(equal(esk4_2(esk2_0,X1), esk1_0)|equal(esk4_2(esk2_0,X1), X1)),inference(pm,[status(thm)],[27,136,theory(equality)])).
cnf(250,conjecture-derived,(equal(esk4_2(esk2_0,X1), X1)|~equal(esk1_0, X1)),inference(ef,[status(thm)],[174,theory(equality)])).
cnf(291,conjecture-derived,(~equal(esk3_1(esk2_0), esk2_0)|~equal(esk4_2(esk2_0,X1), esk1_0)|~equal(esk1_0, X1)),inference(pm,[status(thm)],[24,250,theory(equality)])).
cnf(304,conjecture-derived,(false|~equal(esk4_2(esk2_0,X1), esk1_0)|~equal(esk1_0, X1)),inference(rw,[status(thm)],[291,136,theory(equality)])).
cnf(305,conjecture-derived,(~equal(esk4_2(esk2_0,X1), esk1_0)|~equal(esk1_0, X1)),inference(cn,[status(thm)],[304,theory(equality)])).
cnf(309,conjecture-derived,(~equal(X1, esk1_0)),inference(pm,[status(thm)],[305,250,theory(equality)])).
cnf(311,conjecture-derived,(false),inference(er,[status(thm)],[309,theory(equality)])).
cnf(314,conjecture-derived,(false),311,['proof']).
# Proof object ends here.
```

## Mace2 2.2

William McCune
Argonne National Laboratory, USA
mccune@mcs.anl.gov

### Sample SAT model for MGT031-1

```======================= Model #1 at 0.04 seconds:

zero: 0

greater :
| 0 1
--+----
0 | T T
1 | F F

e: 0

number_of_organizations :
| 0 1
--+----
0 | 0 0
1 | 0 0

an_organisation: 0

appear :
| 0 1
--+----
0 | 0 1
1 | 0 0

environment :
0 1
-------
F T

sk1 :
| 0 1
--+----
0 | 0 0
1 | 0 0
Dimension 3 table for subpopulation not printed

cardinality_at_time :
| 0 1
--+----
0 | 0 0
1 | 0 1

efficient_producers: 0

in_environment :
| 0 1
--+----
0 | F F
1 | F T

first_movers: 1

greater_or_equal :
| 0 1
--+----
0 | T T
1 | F T

sk2: 1
end_of_model
```

## Mace4 2004-D

William McCune
Argonne National Laboratory, USA
mccune@mcs.anl.gov

### Sample SAT model for MGT031-1

```-------- Model 1 at 0.02 seconds --------

e : 0

an_organisation : 0

zero : 0

efficient_producers : 0

first_movers : 1

sk2 : 1

appear :
| 0 1
--+----
0 | 0 1
1 | 0 0

number_of_organizations :
| 0 1
--+----
0 | 0 0
1 | 0 0

sk1 :
| 0 1
--+----
0 | 0 0
1 | 0 0

cardinality_at_time :
| 0 1
--+----
0 | 0 0
1 | 0 1

environment :
0 1
-------
0 1

greater :
| 0 1
--+----
0 | 1 1
1 | 0 0

in_environment :
| 0 1
--+----
0 | 0 0
1 | 0 1

greater_or_equal :
| 0 1
--+----
0 | 1 1
1 | 0 1
Sorry, no pretty printing yet for arity 3.
subpopulation(0,0,0) = 0.
subpopulation(0,0,1) = 0.
subpopulation(0,1,0) = 1.
subpopulation(0,1,1) = 1.
subpopulation(1,0,0) = 0.
subpopulation(1,0,1) = 0.
subpopulation(1,1,0) = 0.
subpopulation(1,1,1) = 0.

-------- end of model --------
```

## Octopus 2004

Monty Newborn, Zongyan Wang
McGill University
newborn@cs.mcgill.ca

### Sample MIX proof for FLD044-2

```Axioms:
1: equalish[M[x,M[y,z]],M[M[x,y],z]] ~defined[x] ~defined[y] ~defined[z]
2 >equalish[A[M[x,y],M[z,y]],M[A[x,z],y]] ~defined[x] ~defined[z] ~defined[y]
3 >equalish[A[x,A[y,z]],A[A[x,y],z]] ~defined[x] ~defined[y] ~defined[z]
4: LE[x,y] LE[y,x] ~defined[x] ~defined[y]
5: LE[0,M[x,y]] ~LE[0,x] ~LE[0,y]
6S equalish[M[x,MI[x]],1] ~defined[x] equalish[x,0]
7S defined[MI[x]] ~defined[x] equalish[x,0]
8: LE[A[x,y],A[z,y]] ~defined[y] ~LE[x,z]
9S>equalish[M[x,y],M[z,y]] ~defined[y] ~equalish[x,z]
10: LE[x,y] ~LE[z,y] ~equalish[z,x]
11S>equalish[A[x,y],A[z,y]] ~defined[y] ~equalish[x,z]
12S equalish[M[x,y],M[y,x]] ~defined[x] ~defined[y]
13: LE[x,y] ~LE[x,z] ~LE[z,y]
14: equalish[x,y] ~LE[x,y] ~LE[y,x]
15 >defined[M[x,y]] ~defined[x] ~defined[y]
16 >equalish[A[x,y],A[y,x]] ~defined[x] ~defined[y]
17 >defined[A[x,y]] ~defined[x] ~defined[y]
18S>equalish[x,y] ~equalish[x,z] ~equalish[z,y]
19S>equalish[A[x,AI[x]],0] ~defined[x]
20S equalish[M[1,x],x] ~defined[x]
21S>equalish[A[0,x],x] ~defined[x]
22S>defined[AI[x]] ~defined[x]
23: equalish[x,x] ~defined[x]
24S>equalish[x,y] ~equalish[y,x]
25: defined[1]
26: ~equalish[0,1]
27S>defined[0]

Negated conclusion:
28S ~equalish[c,AI[d]]
29S>equalish[M[AI[a],b],c]
30S>equalish[M[a,b],d]
31S>defined[a]
32S>defined[b]
33S>defined[c]
34S>defined[d]

---------------

Phase 0 clauses used in proof:
35S>defined[AI[d]]
36S>equalish[M[1,d],d]
37S>equalish[A[d,AI[d]],0]
40S>~equalish[c,x] ~equalish[x,AI[d]]
41S>equalish[x,AI[d]] ~equalish[x,A[0,AI[d]]]
45S>equalish[0,x] ~equalish[A[d,AI[d]],x]
53S>equalish[x,d] ~equalish[x,M[a,b]]
54S>equalish[x,d] ~equalish[M[a,b],x]
55S>equalish[d,M[a,b]]

Phases 1 and 2 clauses used in proof:
57S>(33a,21b) equalish[A[0,c],c]
58S>(57a,24b) equalish[c,A[0,c]]

59S>(24b,11a) equalish[A[x,y],A[z,y]] ~defined[y] ~equalish[z,x]
60S>(59a,18c) ~defined[x] ~equalish[y,z] equalish[u,A[y,x]] ~equalish[u,A[z,x]]
61S>(60a,33a) ~equalish[x,y] equalish[z,A[x,c]] ~equalish[z,A[y,c]]
62S>(61a,37a) equalish[x,A[A[d,AI[d]],c]] ~equalish[x,A[0,c]]
63: 62|{c/x} equalish[c,A[A[d,AI[d]],c]] ~equalish[c,A[0,c]]
64S>(63b,58a) equalish[c,A[A[d,AI[d]],c]]

65S>(35a,17c) defined[A[x,AI[d]]] ~defined[x]
66S>(65a,16b) ~defined[x] equalish[A[A[x,AI[d]],y],A[y,A[x,AI[d]]]] ~defined[y]
67S>(66b,18c) ~defined[x] ~defined[y] equalish[z,A[y,A[x,AI[d]]]] ~equalish[z,A[A[x,AI[d]],y]]
68S>(67b,33a) ~defined[x] equalish[y,A[c,A[x,AI[d]]]] ~equalish[y,A[A[x,AI[d]],c]]
69S>(68a,34a) equalish[x,A[c,A[d,AI[d]]]] ~equalish[x,A[A[d,AI[d]],c]]
70: 69|{c/x} equalish[c,A[c,A[d,AI[d]]]] ~equalish[c,A[A[d,AI[d]],c]]
71S>(70b,64a) equalish[c,A[c,A[d,AI[d]]]]

72S>(35a,3d)  equalish[A[x,A[y,AI[d]]],A[A[x,y],AI[d]]] ~defined[x] ~defined[y]
73S>(72b,33a) equalish[A[c,A[x,AI[d]]],A[A[c,x],AI[d]]] ~defined[x]
74S>(73a,18c) ~defined[x] equalish[y,A[A[c,x],AI[d]]] ~equalish[y,A[c,A[x,AI[d]]]]
75S>(74a,34a) equalish[x,A[A[c,d],AI[d]]] ~equalish[x,A[c,A[d,AI[d]]]]
76: 75|{c/x} equalish[c,A[A[c,d],AI[d]]] ~equalish[c,A[c,A[d,AI[d]]]]
77S>(76b,71a) equalish[c,A[A[c,d],AI[d]]]

78S>(41b,11a) equalish[A[x,AI[d]],AI[d]] ~defined[AI[d]] ~equalish[x,0]
79S>(78b,35a) equalish[A[x,AI[d]],AI[d]] ~equalish[x,0]
80S>(79b,18a) equalish[A[x,AI[d]],AI[d]] ~equalish[x,y] ~equalish[y,0]
81S>(80b,16a) equalish[A[A[x,y],AI[d]],AI[d]] ~equalish[A[y,x],0] ~defined[x] ~defined[y]
82S>(81a,40b) ~equalish[A[x,y],0] ~defined[y] ~defined[x] ~equalish[c,A[A[y,x],AI[d]]]
83S>(82b,33a) ~equalish[A[x,c],0] ~defined[x] ~equalish[c,A[A[c,x],AI[d]]]
84S>(83b,34a) ~equalish[A[d,c],0] ~equalish[c,A[A[c,d],AI[d]]]
85S>(84b,77a) ~equalish[A[d,c],0]

86S>(36a,11c) equalish[A[M[1,d],x],A[d,x]] ~defined[x]
87S>(86b,33a) equalish[A[M[1,d],c],A[d,c]]
88S>(87a,24b) equalish[A[d,c],A[M[1,d],c]]
89S>(88a,18b) equalish[A[d,c],x] ~equalish[A[M[1,d],c],x]
90S>(89a,85a) ~equalish[A[M[1,d],c],0]

91S>(36a,11c) equalish[A[M[1,d],x],A[d,x]] ~defined[x]
92S>(91a,18b) ~defined[x] equalish[A[M[1,d],x],y] ~equalish[A[d,x],y]
93S>(92b,18b) ~defined[x] ~equalish[A[d,x],y] equalish[A[M[1,d],x],z] ~equalish[y,z]
94S>(93b*16a) ~defined[x] equalish[A[M[1,d],x],y] ~equalish[A[x,d],y] ~defined[d]
95S>(94d,34a) ~defined[x] equalish[A[M[1,d],x],y] ~equalish[A[x,d],y]
96S>(95a,33a) equalish[A[M[1,d],c],x] ~equalish[A[c,d],x]
97S>(96a,90a) ~equalish[A[c,d],0]

98S>(34a,11b) equalish[A[x,d],A[y,d]] ~equalish[x,y]
99S>(98b,29a) equalish[A[M[AI[a],b],d],A[c,d]]
100S>(99a,18c) equalish[x,A[c,d]] ~equalish[x,A[M[AI[a],b],d]]
101S>(100a,24b) ~equalish[x,A[M[AI[a],b],d]] equalish[A[c,d],x]
102: 101|{0/x} ~equalish[0,A[M[AI[a],b],d]] equalish[A[c,d],0]
103S>(102b,97a) ~equalish[0,A[M[AI[a],b],d]]

104S>(34a,16b) equalish[A[d,x],A[x,d]] ~defined[x]
105S>(104b,15a) equalish[A[d,M[x,y]],A[M[x,y],d]] ~defined[x] ~defined[y]
106S>(105b,22a) equalish[A[d,M[AI[x],y]],A[M[AI[x],y],d]] ~defined[y] ~defined[x]
107S>(106a,18c) ~defined[x] ~defined[y] equalish[z,A[M[AI[y],x],d]] ~equalish[z,A[d,M[AI[y],x]]]
108S>(107b,31a) ~defined[x] equalish[y,A[M[AI[a],x],d]] ~equalish[y,A[d,M[AI[a],x]]]
109S>(108a,32a) equalish[x,A[M[AI[a],b],d]] ~equalish[x,A[d,M[AI[a],b]]]
110S>(109a,103a) ~equalish[0,A[d,M[AI[a],b]]]

111S>(32a,15c) defined[M[x,b]] ~defined[x]
112S>(111b,22a) defined[M[AI[x],b]] ~defined[x]
113S>(112a,11b) ~defined[x] equalish[A[y,M[AI[x],b]],A[z,M[AI[x],b]]] ~equalish[y,z]
114S>(113b,18c) ~defined[x] ~equalish[y,z] equalish[u,A[z,M[AI[x],b]]] ~equalish[u,A[y,M[AI[x],b]]]
115S>(114b,30a) ~defined[x] equalish[y,A[d,M[AI[x],b]]] ~equalish[y,A[M[a,b],M[AI[x],b]]]
116S>(115a,31a) equalish[x,A[d,M[AI[a],b]]] ~equalish[x,A[M[a,b],M[AI[a],b]]]
117S>(116a,110a) ~equalish[0,A[M[a,b],M[AI[a],b]]]

118S>(32a,2d)  equalish[A[M[x,b],M[y,b]],M[A[x,y],b]] ~defined[x] ~defined[y]
119S>(118a,24b) ~defined[x] ~defined[y] equalish[M[A[x,y],b],A[M[x,b],M[y,b]]]
120S>(119b,22a) ~defined[x] equalish[M[A[x,AI[y]],b],A[M[x,b],M[AI[y],b]]] ~defined[y]
121S>(120b,18c) ~defined[x] ~defined[y] equalish[z,A[M[x,b],M[AI[y],b]]] ~equalish[z,M[A[x,AI[y]],b]]
122S>(121b,31a) ~defined[x] equalish[y,A[M[x,b],M[AI[a],b]]] ~equalish[y,M[A[x,AI[a]],b]]
123S>(122a,31a) equalish[x,A[M[a,b],M[AI[a],b]]] ~equalish[x,M[A[a,AI[a]],b]]
124S>(123a,117a) ~equalish[0,M[A[a,AI[a]],b]]

125S>(24b,19a) equalish[0,A[x,AI[x]]] ~defined[x]
126S>(125b,31a) equalish[0,A[a,AI[a]]]
127S>(126a,9c)  equalish[M[0,x],M[A[a,AI[a]],x]] ~defined[x]
128S>(127a,18c) ~defined[x] equalish[y,M[A[a,AI[a]],x]] ~equalish[y,M[0,x]]
129S>(128a,32a) equalish[x,M[A[a,AI[a]],b]] ~equalish[x,M[0,b]]
130S>(129a,124a) ~equalish[0,M[0,b]]

131S>(21a,18c) ~defined[x] equalish[y,x] ~equalish[y,A[0,x]]
132S>(131a,15a) equalish[x,M[y,z]] ~equalish[x,A[0,M[y,z]]] ~defined[y] ~defined[z]
133S>(132b,24a) equalish[x,M[y,z]] ~defined[y] ~defined[z] ~equalish[A[0,M[y,z]],x]
134S>(133b,27a) equalish[x,M[0,y]] ~defined[y] ~equalish[A[0,M[0,y]],x]
135S>(134b,32a) equalish[x,M[0,b]] ~equalish[A[0,M[0,b]],x]
136S>(135a,130a) ~equalish[A[0,M[0,b]],0]

137S>(54a,11c) ~equalish[M[a,b],x] equalish[A[x,y],A[d,y]] ~defined[y]
138S>(137b,45b) ~equalish[M[a,b],d] ~defined[AI[d]] equalish[0,A[d,AI[d]]]
139S>(138a,30a) ~defined[AI[d]] equalish[0,A[d,AI[d]]]
140S>(139a,35a) equalish[0,A[d,AI[d]]]
141S>(140a,11c) equalish[A[0,x],A[A[d,AI[d]],x]] ~defined[x]
142S>(141b,15a) equalish[A[0,M[x,y]],A[A[d,AI[d]],M[x,y]]] ~defined[x] ~defined[y]
143S>(142a,18b) ~defined[x] ~defined[y] equalish[A[0,M[x,y]],z] ~equalish[A[A[d,AI[d]],M[x,y]],z]
144S>(143a,27a) ~defined[x] equalish[A[0,M[0,x]],y] ~equalish[A[A[d,AI[d]],M[0,x]],y]
145S>(144a,32a) equalish[A[0,M[0,b]],x] ~equalish[A[A[d,AI[d]],M[0,b]],x]
146S>(145a,136a) ~equalish[A[A[d,AI[d]],M[0,b]],0]

147S>(35a,17c) defined[A[x,AI[d]]] ~defined[x]
148S>(147b,34a) defined[A[d,AI[d]]]
149S>(148a,16b) equalish[A[A[d,AI[d]],x],A[x,A[d,AI[d]]]] ~defined[x]
150S>(149b,15a) equalish[A[A[d,AI[d]],M[x,y]],A[M[x,y],A[d,AI[d]]]] ~defined[x] ~defined[y]
151S>(150a,18b) ~defined[x] ~defined[y] equalish[A[A[d,AI[d]],M[x,y]],z] ~equalish[A[M[x,y],A[d,AI[d]]],z]
152S>(151a,27a) ~defined[x] equalish[A[A[d,AI[d]],M[0,x]],y] ~equalish[A[M[0,x],A[d,AI[d]]],y]
153S>(152a,32a) equalish[A[A[d,AI[d]],M[0,b]],x] ~equalish[A[M[0,b],A[d,AI[d]]],x]
154S>(153a,146a) ~equalish[A[M[0,b],A[d,AI[d]]],0]

155S>(35a,3d)  equalish[A[x,A[y,AI[d]]],A[A[x,y],AI[d]]] ~defined[x] ~defined[y]
156S>(155b,15a) equalish[A[M[x,y],A[z,AI[d]]],A[A[M[x,y],z],AI[d]]] ~defined[z] ~defined[x] ~defined[y]
157S>(156b,34a) equalish[A[M[x,y],A[d,AI[d]]],A[A[M[x,y],d],AI[d]]] ~defined[x] ~defined[y]
158S>(157b,27a) equalish[A[M[0,x],A[d,AI[d]]],A[A[M[0,x],d],AI[d]]] ~defined[x]
159S>(158a,18b) ~defined[x] equalish[A[M[0,x],A[d,AI[d]]],y] ~equalish[A[A[M[0,x],d],AI[d]],y]
160S>(159a,32a) equalish[A[M[0,b],A[d,AI[d]]],x] ~equalish[A[A[M[0,b],d],AI[d]],x]
161S>(160a,154a) ~equalish[A[A[M[0,b],d],AI[d]],0]

162S>(34a,16c) equalish[A[x,d],A[d,x]] ~defined[x]
163S>(162b,15a) equalish[A[M[x,y],d],A[d,M[x,y]]] ~defined[x] ~defined[y]
164S>(163b,27a) equalish[A[M[0,x],d],A[d,M[0,x]]] ~defined[x]
165S>(164a,11c) ~defined[x] equalish[A[A[M[0,x],d],y],A[A[d,M[0,x]],y]] ~defined[y]
166S>(165b,18b) ~defined[x] ~defined[y] equalish[A[A[M[0,x],d],y],z] ~equalish[A[A[d,M[0,x]],y],z]
167S>(166a,32a) ~defined[x] equalish[A[A[M[0,b],d],x],y] ~equalish[A[A[d,M[0,b]],x],y]
168S>(167a,35a) equalish[A[A[M[0,b],d],AI[d]],x] ~equalish[A[A[d,M[0,b]],AI[d]],x]
169S>(168a,161a) ~equalish[A[A[d,M[0,b]],AI[d]],0]

170S>(53b,9a)  equalish[M[x,b],d] ~defined[b] ~equalish[x,a]
171S>(170b,32a) equalish[M[x,b],d] ~equalish[x,a]
172S>(171b,21a) equalish[M[A[0,a],b],d] ~defined[a]
173S>(172b,31a) equalish[M[A[0,a],b],d]
174S>(173a,11c) equalish[A[M[A[0,a],b],x],A[d,x]] ~defined[x]
175S>(174a,18b) ~defined[x] equalish[A[M[A[0,a],b],x],y] ~equalish[A[d,x],y]
176S>(175a,35a) equalish[A[M[A[0,a],b],AI[d]],x] ~equalish[A[d,AI[d]],x]
177S>(176b,37a) equalish[A[M[A[0,a],b],AI[d]],0]

178S>(32a,15c) defined[M[x,b]] ~defined[x]
179S>(178b,27a) defined[M[0,b]]
180S>(179a,11b) equalish[A[x,M[0,b]],A[y,M[0,b]]] ~equalish[x,y]
181S>(180a,11c) ~equalish[x,y] equalish[A[A[x,M[0,b]],z],A[A[y,M[0,b]],z]] ~defined[z]
182S>(181b,18b) ~equalish[x,y] ~defined[z] equalish[A[A[x,M[0,b]],z],u] ~equalish[A[A[y,M[0,b]],z],u]
183S>(182b,35a) ~equalish[x,y] equalish[A[A[x,M[0,b]],AI[d]],z] ~equalish[A[A[y,M[0,b]],AI[d]],z]
184S>(183a,55a) equalish[A[A[d,M[0,b]],AI[d]],x] ~equalish[A[A[M[a,b],M[0,b]],AI[d]],x]
185S>(184a,169a) ~equalish[A[A[M[a,b],M[0,b]],AI[d]],0]

186S>(35a,11b) equalish[A[x,AI[d]],A[y,AI[d]]] ~equalish[x,y]
187S>(186b,9a)  equalish[A[M[x,y],AI[d]],A[M[z,y],AI[d]]] ~defined[y] ~equalish[x,z]
188S>(187b,32a) equalish[A[M[x,b],AI[d]],A[M[y,b],AI[d]]] ~equalish[x,y]
189S>(188b,16a) equalish[A[M[A[x,y],b],AI[d]],A[M[A[y,x],b],AI[d]]] ~defined[x] ~defined[y]
190S>(189a,18b) ~defined[x] ~defined[y] equalish[A[M[A[x,y],b],AI[d]],z] ~equalish[A[M[A[y,x],b],AI[d]],z]
191S>(190b,27a) ~defined[x] equalish[A[M[A[x,0],b],AI[d]],y] ~equalish[A[M[A[0,x],b],AI[d]],y]
192S>(191a,31a) equalish[A[M[A[a,0],b],AI[d]],x] ~equalish[A[M[A[0,a],b],AI[d]],x]
193: 192|{0/x} equalish[A[M[A[a,0],b],AI[d]],0] ~equalish[A[M[A[0,a],b],AI[d]],0]
194S>(193b,177a) equalish[A[M[A[a,0],b],AI[d]],0]

195S>(32a,2d)  equalish[A[M[x,b],M[y,b]],M[A[x,y],b]] ~defined[x] ~defined[y]
196S>(195b,31a) equalish[A[M[a,b],M[x,b]],M[A[a,x],b]] ~defined[x]
197S>(196b,27a) equalish[A[M[a,b],M[0,b]],M[A[a,0],b]]
198S>(197a,11c) equalish[A[A[M[a,b],M[0,b]],x],A[M[A[a,0],b],x]] ~defined[x]
199S>(198a,18b) ~defined[x] equalish[A[A[M[a,b],M[0,b]],x],y] ~equalish[A[M[A[a,0],b],x],y]
200S>(199a,35a) equalish[A[A[M[a,b],M[0,b]],AI[d]],x] ~equalish[A[M[A[a,0],b],AI[d]],x]
201S>(200a,185a) ~equalish[A[M[A[a,0],b],AI[d]],0]
202S>(201a,194a) []

```

## Otter 3.3

William McCune
Argonne National Laboratory, USA
mccune@mcs.anl.gov

### Sample MIX proof for SYN075-1

```---------------- PROOF ----------------

1 [] -big_f(A,B)|equal(A,a).
2 [] -big_f(A,B)|equal(B,b).
3 [] -equal(A,a)| -equal(B,b)|big_f(A,B).
4 [] -big_f(A,f(B))| -equal(A,g(B))|equal(f(B),B).
5 [] -equal(A,g(B))|big_f(A,f(B))|equal(f(B),B).
8 [] -equal(f(A),A)|big_f(h(A,B),f(A))|equal(h(A,B),B).
9 [] -equal(f(A),A)| -equal(h(A,B),B)| -big_f(h(A,B),f(A)).
11 [] equal(A,A).
13 [hyper,11,5] big_f(g(A),f(A))|equal(f(A),A).
14 [hyper,11,3,11] big_f(a,b).
21 [hyper,13,3,11] big_f(g(b),f(b))|big_f(a,f(b)).
62 [hyper,21,4,11] big_f(a,f(b))|equal(f(b),b).
79 [hyper,62,3,11,factor_simp] big_f(a,f(b)).
81,80 [hyper,79,2] equal(f(b),b).
126 [hyper,80,8,demod,81] big_f(h(b,A),b)|equal(h(b,A),A).
319 [hyper,126,3,80,demod,81,factor_simp] big_f(h(b,a),b).
331,330 [hyper,319,1] equal(h(b,a),a).
335 [para_from,330.1.1,9.3.1,demod,81,331,81,unit_del,11,11,14] \$F.

------------ end of proof -------------
```

### Sample MIX proof for PUZ031-1

```---------------- PROOF ----------------

1 [] animal(A)| -wolf(A).
2 [] animal(A)| -fox(A).
3 [] animal(A)| -bird(A).
5 [] animal(A)| -snail(A).
6 [] plant(A)| -grain(A).
7 [] eats(A,B)|eats(A,C)| -animal(A)| -plant(B)| -animal(C)| -plant(D)| -much_smaller(C,A)| -eats(C,D).
9 [] much_smaller(A,B)| -snail(A)| -bird(B).
10 [] much_smaller(A,B)| -bird(A)| -fox(B).
11 [] much_smaller(A,B)| -fox(A)| -wolf(B).
13 [] -wolf(A)| -grain(B)| -eats(A,B).
15 [] -bird(A)| -snail(B)| -eats(A,B).
18 [] plant(snail_food_of(A))| -snail(A).
19 [] eats(A,snail_food_of(A))| -snail(A).
20 [] -animal(A)| -animal(B)| -grain(C)| -eats(A,B)| -eats(B,C).
23 [factor,7.4.6] eats(A,B)|eats(A,C)| -animal(A)| -plant(B)| -animal(C)| -much_smaller(C,A)| -eats(C,B).
28 [] wolf(a_wolf).
29 [] fox(a_fox).
30 [] bird(a_bird).
32 [] snail(a_snail).
33 [] grain(a_grain).
34 [hyper,28,1] animal(a_wolf).
35 [hyper,29,11,28] much_smaller(a_fox,a_wolf).
36 [hyper,29,2] animal(a_fox).
37 [hyper,30,10,29] much_smaller(a_bird,a_fox).
38 [hyper,30,3] animal(a_bird).
44 [hyper,32,19] eats(a_snail,snail_food_of(a_snail)).
45 [hyper,32,18] plant(snail_food_of(a_snail)).
46 [hyper,32,9,30] much_smaller(a_snail,a_bird).
47 [hyper,32,5] animal(a_snail).
48 [hyper,33,6] plant(a_grain).
50 [hyper,44,7,38,48,47,45,46] eats(a_bird,a_grain)|eats(a_bird,a_snail).
55 [hyper,50,15,30,32] eats(a_bird,a_grain).
56 [hyper,55,23,36,48,38,37] eats(a_fox,a_grain)|eats(a_fox,a_bird).
62 [hyper,56,20,36,38,33,55] eats(a_fox,a_grain).
63 [hyper,62,23,34,48,36,35] eats(a_wolf,a_grain)|eats(a_wolf,a_fox).
67 [hyper,63,13,28,33] eats(a_wolf,a_fox).
69 [hyper,67,20,34,36,33,62] \$F.

------------ end of proof -------------
```

Koen Claessen, Niklas Sörensson
Chalmers University of Technology and Gothenburg University, Sweden
{koen,nik}@cs.chalmers.se

### Solution Description

When it has found a model, Paradox produces a table of definitions for each constant symbol, function symbol, and predicate symbol. The table is sorted alphabetically. In the table, domain elements are represented as positive natural numbers preceded by a ' (tick).

NOTE: In order to save space in the representation of the model, sometimes, some entries in some of the definition tables are missing. This is not a bug! More detailedly, it might happen that for a model with a domain of size n, for some argument position, only a subset {'1,'2,..,'k} of all domain elements is shown, with k < n. What this means is that the entries for other domain elements 'j (with k < j <= n) occurring at that argument position look the same as entries with 'k at that position. Problem NLP041-1.p is an example where a model is represented in such a way.

### Sample Solution to MGT031-1

```an_organisation = '1

appear('1,'1) = '2
appear('1,'2) = '2
appear('2,'1) = '1
appear('2,'2) = '1

cardinality_at_time('1,'1) = '2
cardinality_at_time('1,'2) = '2
cardinality_at_time('2,'1) = '2
cardinality_at_time('2,'2) = '2

e = '1

efficient_producers = '2

environment('1) : FALSE
environment('2) : TRUE

first_movers = '2

greater('1,'1) : TRUE
greater('1,'2) : TRUE
greater('2,'1) : FALSE
greater('2,'2) : TRUE

greater_or_equal('1,'1) : TRUE
greater_or_equal('1,'2) : TRUE
greater_or_equal('2,'1) : FALSE
greater_or_equal('2,'2) : TRUE

in_environment('1,'1) : TRUE
in_environment('1,'2) : TRUE
in_environment('2,'1) : TRUE
in_environment('2,'2) : TRUE

number_of_organizations('1,'1) = '2
number_of_organizations('1,'2) = '1
number_of_organizations('2,'1) = '2
number_of_organizations('2,'2) = '2

sk1('1,'1) = '2
sk1('1,'2) = '2
sk1('2,'1) = '2
sk1('2,'2) = '2

sk2 = '2

subpopulation('1,'1,'1) : TRUE
subpopulation('1,'1,'2) : TRUE
subpopulation('1,'2,'1) : TRUE
subpopulation('1,'2,'2) : TRUE
subpopulation('2,'1,'1) : TRUE
subpopulation('2,'1,'2) : TRUE
subpopulation('2,'2,'1) : TRUE
subpopulation('2,'2,'2) : TRUE

zero = '1
```

### Sample Solution to NLP041-1

```abstraction('1,'1) : FALSE
abstraction('1,'2) : FALSE
abstraction('1,'3) : FALSE
abstraction('1,'4) : TRUE

act('1,'1) : FALSE
act('1,'2) : FALSE
act('1,'3) : TRUE
act('1,'4) : FALSE

actual_world('1) : TRUE

agent('1,'1,'1) : TRUE
agent('1,'1,'2) : TRUE
agent('1,'1,'3) : TRUE
agent('1,'1,'4) : TRUE
agent('1,'2,'1) : TRUE
agent('1,'2,'2) : TRUE
agent('1,'2,'3) : TRUE
agent('1,'2,'4) : TRUE
agent('1,'3,'1) : TRUE
agent('1,'3,'2) : FALSE
agent('1,'3,'3) : FALSE
agent('1,'3,'4) : FALSE
agent('1,'4,'1) : TRUE
agent('1,'4,'2) : TRUE
agent('1,'4,'3) : TRUE
agent('1,'4,'4) : FALSE

animate('1,'1) : TRUE
animate('1,'2) : FALSE
animate('1,'3) : FALSE
animate('1,'4) : FALSE

beverage('1,'1) : FALSE
beverage('1,'2) : TRUE
beverage('1,'3) : FALSE
beverage('1,'4) : FALSE

entity('1,'1) : TRUE
entity('1,'2) : TRUE
entity('1,'3) : FALSE
entity('1,'4) : FALSE

event('1,'1) : FALSE
event('1,'2) : FALSE
event('1,'3) : TRUE
event('1,'4) : FALSE

eventuality('1,'1) : FALSE
eventuality('1,'2) : FALSE
eventuality('1,'3) : TRUE
eventuality('1,'4) : FALSE

existent('1,'1) : TRUE
existent('1,'2) : TRUE
existent('1,'3) : FALSE
existent('1,'4) : FALSE

female('1,'1) : TRUE
female('1,'2) : FALSE
female('1,'3) : FALSE
female('1,'4) : FALSE

food('1,'1) : FALSE
food('1,'2) : TRUE
food('1,'3) : FALSE
food('1,'4) : FALSE

forename('1,'1) : FALSE
forename('1,'2) : FALSE
forename('1,'3) : FALSE
forename('1,'4) : TRUE

general('1,'1) : FALSE
general('1,'2) : FALSE
general('1,'3) : FALSE
general('1,'4) : TRUE

human('1,'1) : TRUE
human('1,'2) : FALSE
human('1,'3) : FALSE
human('1,'4) : FALSE

human_person('1,'1) : TRUE
human_person('1,'2) : FALSE
human_person('1,'3) : FALSE
human_person('1,'4) : FALSE

impartial('1,'1) : TRUE
impartial('1,'2) : TRUE
impartial('1,'3) : FALSE
impartial('1,'4) : FALSE

living('1,'1) : TRUE
living('1,'2) : FALSE
living('1,'3) : FALSE
living('1,'4) : FALSE

mia_forename('1,'1) : FALSE
mia_forename('1,'2) : FALSE
mia_forename('1,'3) : FALSE
mia_forename('1,'4) : TRUE

nonexistent('1,'1) : FALSE
nonexistent('1,'2) : FALSE
nonexistent('1,'3) : TRUE
nonexistent('1,'4) : TRUE

nonhuman('1,'1) : FALSE
nonhuman('1,'2) : TRUE
nonhuman('1,'3) : TRUE
nonhuman('1,'4) : TRUE

nonliving('1,'1) : FALSE
nonliving('1,'2) : TRUE
nonliving('1,'3) : TRUE
nonliving('1,'4) : TRUE

nonreflexive('1,'1) : FALSE
nonreflexive('1,'2) : FALSE
nonreflexive('1,'3) : TRUE
nonreflexive('1,'4) : TRUE

object('1,'1) : FALSE
object('1,'2) : TRUE
object('1,'3) : FALSE
object('1,'4) : FALSE

of('1,'1,'1) : FALSE
of('1,'1,'2) : TRUE
of('1,'1,'3) : TRUE
of('1,'1,'4) : TRUE
of('1,'2,'1) : FALSE
of('1,'2,'2) : TRUE
of('1,'2,'3) : TRUE
of('1,'2,'4) : TRUE
of('1,'3,'1) : FALSE
of('1,'3,'2) : TRUE
of('1,'3,'3) : TRUE
of('1,'3,'4) : TRUE
of('1,'4,'1) : TRUE
of('1,'4,'2) : TRUE
of('1,'4,'3) : TRUE
of('1,'4,'4) : TRUE

order('1,'1) : FALSE
order('1,'2) : FALSE
order('1,'3) : TRUE
order('1,'4) : FALSE

organism('1,'1) : TRUE
organism('1,'2) : FALSE
organism('1,'3) : FALSE
organism('1,'4) : FALSE

past('1,'1) : FALSE
past('1,'2) : FALSE
past('1,'3) : TRUE
past('1,'4) : FALSE

patient('1,'1,'1) : TRUE
patient('1,'1,'2) : TRUE
patient('1,'1,'3) : TRUE
patient('1,'1,'4) : TRUE
patient('1,'2,'1) : TRUE
patient('1,'2,'2) : TRUE
patient('1,'2,'3) : TRUE
patient('1,'2,'4) : TRUE
patient('1,'3,'1) : FALSE
patient('1,'3,'2) : TRUE
patient('1,'3,'3) : TRUE
patient('1,'3,'4) : TRUE
patient('1,'4,'1) : FALSE
patient('1,'4,'2) : FALSE
patient('1,'4,'3) : FALSE
patient('1,'4,'4) : TRUE

relation('1,'1) : FALSE
relation('1,'2) : FALSE
relation('1,'3) : FALSE
relation('1,'4) : TRUE

relname('1,'1) : FALSE
relname('1,'2) : FALSE
relname('1,'3) : FALSE
relname('1,'4) : TRUE

shake_beverage('1,'1) : FALSE
shake_beverage('1,'2) : TRUE
shake_beverage('1,'3) : FALSE
shake_beverage('1,'4) : FALSE

singleton('1,'1) : TRUE
singleton('1,'2) : TRUE
singleton('1,'3) : TRUE
singleton('1,'4) : TRUE

skc5 = '1

skc6 = '3

skc7 = '2

skc8 = '4

skc9 = '1

specific('1,'1) : TRUE
specific('1,'2) : TRUE
specific('1,'3) : TRUE
specific('1,'4) : FALSE

substance_matter('1,'1) : FALSE
substance_matter('1,'2) : TRUE
substance_matter('1,'3) : FALSE
substance_matter('1,'4) : FALSE

thing('1,'1) : TRUE
thing('1,'2) : TRUE
thing('1,'3) : TRUE
thing('1,'4) : TRUE

unisex('1,'1) : FALSE
unisex('1,'2) : TRUE
unisex('1,'3) : TRUE
unisex('1,'4) : TRUE

woman('1,'1) : TRUE
woman('1,'2) : FALSE
woman('1,'3) : FALSE
woman('1,'4) : FALSE
```

Koen Claessen, Niklas Sörensson
Chalmers University of Technology and Gothenburg University, Sweden
{koen,nik}@cs.chalmers.se

### Solution Description

When it has found a model, Paradox produces a table of definitions for each constant symbol, function symbol, and predicate symbol. The table is sorted alphabetically. In the table, domain elements are represented as positive natural numbers preceded by a ' (tick).

NOTE: In order to save space in the representation of the model, sometimes, some entries in some of the definition tables are missing. This is not a bug! More detailedly, it might happen that for a model with a domain of size n, for some argument position, only a subset {'1,'2,..,'k} of all domain elements is shown, with k < n. What this means is that the entries for other domain elements 'j (with k < j <= n) occurring at that argument position look the same as entries with 'k at that position. Problem NLP041-1.p is an example where a model is represented in such a way.

### Sample Solution to MGT031-1

```an_organisation = '1

appear('1,'1) = '2
appear('1,'2) = '2
appear('2,'1) = '1
appear('2,'2) = '1

cardinality_at_time('1,'1) = '2
cardinality_at_time('1,'2) = '2
cardinality_at_time('2,'1) = '2
cardinality_at_time('2,'2) = '2

e = '1

efficient_producers = '2

environment('1) : FALSE
environment('2) : TRUE

first_movers = '2

greater('1,'1) : TRUE
greater('1,'2) : TRUE
greater('2,'1) : FALSE
greater('2,'2) : TRUE

greater_or_equal('1,'1) : TRUE
greater_or_equal('1,'2) : TRUE
greater_or_equal('2,'1) : FALSE
greater_or_equal('2,'2) : TRUE

in_environment('1,'1) : TRUE
in_environment('1,'2) : TRUE
in_environment('2,'1) : TRUE
in_environment('2,'2) : TRUE

number_of_organizations('1,'1) = '2
number_of_organizations('1,'2) = '1
number_of_organizations('2,'1) = '2
number_of_organizations('2,'2) = '2

sk1('1,'1) = '2
sk1('1,'2) = '2
sk1('2,'1) = '2
sk1('2,'2) = '2

sk2 = '2

subpopulation('1,'1,'1) : TRUE
subpopulation('1,'1,'2) : TRUE
subpopulation('1,'2,'1) : TRUE
subpopulation('1,'2,'2) : TRUE
subpopulation('2,'1,'1) : TRUE
subpopulation('2,'1,'2) : TRUE
subpopulation('2,'2,'1) : TRUE
subpopulation('2,'2,'2) : TRUE

zero = '1
```

### Sample Solution to NLP041-1

```abstraction('1,'1) : FALSE
abstraction('1,'2) : FALSE
abstraction('1,'3) : FALSE
abstraction('1,'4) : TRUE

act('1,'1) : FALSE
act('1,'2) : FALSE
act('1,'3) : TRUE
act('1,'4) : FALSE

actual_world('1) : TRUE

agent('1,'1,'1) : TRUE
agent('1,'1,'2) : TRUE
agent('1,'1,'3) : TRUE
agent('1,'1,'4) : TRUE
agent('1,'2,'1) : TRUE
agent('1,'2,'2) : TRUE
agent('1,'2,'3) : TRUE
agent('1,'2,'4) : TRUE
agent('1,'3,'1) : TRUE
agent('1,'3,'2) : FALSE
agent('1,'3,'3) : FALSE
agent('1,'3,'4) : FALSE
agent('1,'4,'1) : TRUE
agent('1,'4,'2) : TRUE
agent('1,'4,'3) : TRUE
agent('1,'4,'4) : FALSE

animate('1,'1) : TRUE
animate('1,'2) : FALSE
animate('1,'3) : FALSE
animate('1,'4) : FALSE

beverage('1,'1) : FALSE
beverage('1,'2) : TRUE
beverage('1,'3) : FALSE
beverage('1,'4) : FALSE

entity('1,'1) : TRUE
entity('1,'2) : TRUE
entity('1,'3) : FALSE
entity('1,'4) : FALSE

event('1,'1) : FALSE
event('1,'2) : FALSE
event('1,'3) : TRUE
event('1,'4) : FALSE

eventuality('1,'1) : FALSE
eventuality('1,'2) : FALSE
eventuality('1,'3) : TRUE
eventuality('1,'4) : FALSE

existent('1,'1) : TRUE
existent('1,'2) : TRUE
existent('1,'3) : FALSE
existent('1,'4) : FALSE

female('1,'1) : TRUE
female('1,'2) : FALSE
female('1,'3) : FALSE
female('1,'4) : FALSE

food('1,'1) : FALSE
food('1,'2) : TRUE
food('1,'3) : FALSE
food('1,'4) : FALSE

forename('1,'1) : FALSE
forename('1,'2) : FALSE
forename('1,'3) : FALSE
forename('1,'4) : TRUE

general('1,'1) : FALSE
general('1,'2) : FALSE
general('1,'3) : FALSE
general('1,'4) : TRUE

human('1,'1) : TRUE
human('1,'2) : FALSE
human('1,'3) : FALSE
human('1,'4) : FALSE

human_person('1,'1) : TRUE
human_person('1,'2) : FALSE
human_person('1,'3) : FALSE
human_person('1,'4) : FALSE

impartial('1,'1) : TRUE
impartial('1,'2) : TRUE
impartial('1,'3) : FALSE
impartial('1,'4) : FALSE

living('1,'1) : TRUE
living('1,'2) : FALSE
living('1,'3) : FALSE
living('1,'4) : FALSE

mia_forename('1,'1) : FALSE
mia_forename('1,'2) : FALSE
mia_forename('1,'3) : FALSE
mia_forename('1,'4) : TRUE

nonexistent('1,'1) : FALSE
nonexistent('1,'2) : FALSE
nonexistent('1,'3) : TRUE
nonexistent('1,'4) : TRUE

nonhuman('1,'1) : FALSE
nonhuman('1,'2) : TRUE
nonhuman('1,'3) : TRUE
nonhuman('1,'4) : TRUE

nonliving('1,'1) : FALSE
nonliving('1,'2) : TRUE
nonliving('1,'3) : TRUE
nonliving('1,'4) : TRUE

nonreflexive('1,'1) : FALSE
nonreflexive('1,'2) : FALSE
nonreflexive('1,'3) : TRUE
nonreflexive('1,'4) : TRUE

object('1,'1) : FALSE
object('1,'2) : TRUE
object('1,'3) : FALSE
object('1,'4) : FALSE

of('1,'1,'1) : FALSE
of('1,'1,'2) : TRUE
of('1,'1,'3) : TRUE
of('1,'1,'4) : TRUE
of('1,'2,'1) : FALSE
of('1,'2,'2) : TRUE
of('1,'2,'3) : TRUE
of('1,'2,'4) : TRUE
of('1,'3,'1) : FALSE
of('1,'3,'2) : TRUE
of('1,'3,'3) : TRUE
of('1,'3,'4) : TRUE
of('1,'4,'1) : TRUE
of('1,'4,'2) : TRUE
of('1,'4,'3) : TRUE
of('1,'4,'4) : TRUE

order('1,'1) : FALSE
order('1,'2) : FALSE
order('1,'3) : TRUE
order('1,'4) : FALSE

organism('1,'1) : TRUE
organism('1,'2) : FALSE
organism('1,'3) : FALSE
organism('1,'4) : FALSE

past('1,'1) : FALSE
past('1,'2) : FALSE
past('1,'3) : TRUE
past('1,'4) : FALSE

patient('1,'1,'1) : TRUE
patient('1,'1,'2) : TRUE
patient('1,'1,'3) : TRUE
patient('1,'1,'4) : TRUE
patient('1,'2,'1) : TRUE
patient('1,'2,'2) : TRUE
patient('1,'2,'3) : TRUE
patient('1,'2,'4) : TRUE
patient('1,'3,'1) : FALSE
patient('1,'3,'2) : TRUE
patient('1,'3,'3) : TRUE
patient('1,'3,'4) : TRUE
patient('1,'4,'1) : FALSE
patient('1,'4,'2) : FALSE
patient('1,'4,'3) : FALSE
patient('1,'4,'4) : TRUE

relation('1,'1) : FALSE
relation('1,'2) : FALSE
relation('1,'3) : FALSE
relation('1,'4) : TRUE

relname('1,'1) : FALSE
relname('1,'2) : FALSE
relname('1,'3) : FALSE
relname('1,'4) : TRUE

shake_beverage('1,'1) : FALSE
shake_beverage('1,'2) : TRUE
shake_beverage('1,'3) : FALSE
shake_beverage('1,'4) : FALSE

singleton('1,'1) : TRUE
singleton('1,'2) : TRUE
singleton('1,'3) : TRUE
singleton('1,'4) : TRUE

skc5 = '1

skc6 = '3

skc7 = '2

skc8 = '4

skc9 = '1

specific('1,'1) : TRUE
specific('1,'2) : TRUE
specific('1,'3) : TRUE
specific('1,'4) : FALSE

substance_matter('1,'1) : FALSE
substance_matter('1,'2) : TRUE
substance_matter('1,'3) : FALSE
substance_matter('1,'4) : FALSE

thing('1,'1) : TRUE
thing('1,'2) : TRUE
thing('1,'3) : TRUE
thing('1,'4) : TRUE

unisex('1,'1) : FALSE
unisex('1,'2) : TRUE
unisex('1,'3) : TRUE
unisex('1,'4) : TRUE

woman('1,'1) : TRUE
woman('1,'2) : FALSE
woman('1,'3) : FALSE
woman('1,'4) : FALSE
```

## THEO J2004

Monty Newborn
McGill University
newborn@cs.mcgill.ca

### Sample MIX proof for SYN075-1

```THE PROOF OF GIVEN THEOREM

Axioms:
1: ~E.[x,y] ~big_f[x,z] big_f[y,z]
2: ~E.[x,y] ~big_f[z,x] big_f[z,y]
3: ~E.[x,y] ~E.[y,z] E.[x,z]
4S>~E.[x,a] ~E.[y,b] big_f[x,y]
5: ~E.[x,y] E.[h[x,z],h[y,z]]
6S ~E.[x,y] E.[h[z,x],h[z,y]]
7: ~E.[x,y] E.[f[x],f[y]]
8: ~E.[x,y] E.[g[x],g[y]]
9S ~big_f[x,y] E.[x,a]
10: ~big_f[x,y] E.[y,b]
11: ~E.[x,y] E.[y,x]
12S>E.[x,x]

Negated conclusion:
13S ~big_f[x,f[y]] E.[x,g[y]] big_f[h[y,z],f[y]] ~big_f[h[y,z],f[y]]
14S ~E.[x,g[y]] big_f[x,f[y]] big_f[h[y,z],f[y]] E.[h[y,z],z]
15S ~E.[x,g[y]] big_f[x,f[y]] ~E.[h[y,z],z] ~big_f[h[y,z],f[y]]
16S ~E.[f[x],x] ~E.[h[x,y],y] ~big_f[h[x,y],f[x]]
17S ~E.[f[x],x] big_f[h[x,y],f[x]] E.[h[x,y],y]
18# ~big_f[x,f[y]] ~E.[x,g[y]] E.[f[y],y]
19# ~E.[x,g[y]] big_f[x,f[y]] E.[f[y],y]

---------------

Phase 0 clauses used in proof:
20S>E.[f[x],x]
21S>E.[h[x,a],a]
23 >~E.[f[x],x] ~big_f[h[x,h[x,y]],f[x]] ~E.[h[x,y],y]
24S>(23a*20a) ~big_f[h[x,h[x,y]],f[x]] ~E.[h[x,y],y]
28S>(24b*21a) ~big_f[h[x,h[x,a]],f[x]]

Phases 1 and 2 clauses used in proof:
29S>(28a,4c)  ~E.[h[x,h[x,a]],a] ~E.[f[x],b]
30S>[29a,21a] ~E.[h[x,a],a] ~E.[f[x],b]
31S>[30a,21a] ~E.[a,a] ~E.[f[x],b]
32S>[31b,20a] ~E.[a,a] ~E.[x,b]
33S>[32a,12a] ~E.[x,b]
34S>(33a,12a) []
```

## SOS 1.0

John Slaney
Australian National University
John.Slaney@anu.edu.au

### Sample MIX proof for SYN075-1

```---------------- PROOF ----------------

1 [] {+} -big_f(A,B)|equal(A,a).
2 [] {+} -big_f(A,B)|equal(B,b).
3 [] {+} -equal(A,a)| -equal(B,b)|big_f(A,B).
4 [] {+} -big_f(A,f(B))| -equal(A,g(B))|equal(f(B),B).
5 [] {+} -equal(A,g(B))|big_f(A,f(B))|equal(f(B),B).
8 [] {+} -equal(f(A),A)|big_f(h(A,B),f(A))|equal(h(A,B),B).
9 [] {+} -equal(f(A),A)| -equal(h(A,B),B)| -big_f(h(A,B),f(A)).
11 [] {-} equal(A,A).
13 [hyper,11,5] {-} big_f(g(A),f(A))|equal(f(A),A).
14 [hyper,11,3,11] {-} big_f(a,b).
21 [hyper,13,3,11] {-} big_f(g(b),f(b))|big_f(a,f(b)).
62 [hyper,21,4,11] {-} big_f(a,f(b))|equal(f(b),b).
79 [hyper,62,3,11,factor_simp] {-} big_f(a,f(b)).
81,80 [hyper,79,2] {-} equal(f(b),b).
126 [hyper,80,8,demod,81] {-} big_f(h(b,A),b)|equal(h(b,A),A).
319 [hyper,126,3,80,demod,81,factor_simp] {-} big_f(h(b,a),b).
331,330 [hyper,319,1] {-} equal(h(b,a),a).
335 [para_from,330.1.1,9.3.1,demod,81,331,81,unit_del,11,11,14] {-} \$F.

------------ end of proof -------------
```

### Sample MIX proof for RNG021-6

```---------------- PROOF ----------------

2189 [binary,2187.1,2.1] {-} \$F.

------------ end of proof -------------
```

### Sample FOF proof for SYN075+1

```---------------- PROOF ----------------

1 [] {+} -big_f(A,B)|equal(A,\$c2).
2 [] {+} -big_f(A,B)|equal(B,\$c1).
3 [] {+} big_f(A,B)| -equal(A,\$c2)| -equal(B,\$c1).
5 [] {+} big_f(A,\$f3(B))| -equal(A,\$f1(B))|equal(\$f3(B),B).
6 [] {+} big_f(\$f2(A,B),\$f3(A))|equal(\$f2(A,B),B)| -equal(\$f3(A),A).
7 [] {+} -big_f(\$f2(A,B),\$f3(A))| -equal(\$f2(A,B),B)| -equal(\$f3(A),A).
8 [] {-} equal(A,A).
9 [hyper,8,5] {-} big_f(\$f1(A),\$f3(A))|equal(\$f3(A),A).
10 [hyper,8,3,8] {-} big_f(\$c2,\$c1).
24 [hyper,9,3,8] {-} big_f(\$f1(\$c1),\$f3(\$c1))|big_f(\$c2,\$f3(\$c1)).
58 [hyper,24,2] {-} big_f(\$c2,\$f3(\$c1))|equal(\$f3(\$c1),\$c1).
82 [hyper,58,3,8,factor_simp] {-} big_f(\$c2,\$f3(\$c1)).
85,84 [hyper,82,2] {-} equal(\$f3(\$c1),\$c1).
105 [hyper,84,6,demod,85] {-} big_f(\$f2(\$c1,A),\$c1)|equal(\$f2(\$c1,A),A).
259 [hyper,105,3,84,demod,85,factor_simp] {-} big_f(\$f2(\$c1,\$c2),\$c1).
272,271 [hyper,259,1] {-} equal(\$f2(\$c1,\$c2),\$c2).
279 [para_from,271.1.1,7.2.1,demod,272,85,85,unit_del,10,8,8] {-} \$F.

------------ end of proof -------------
```

## Vampire 6.0

Alexandre Riazanov, Andrei Voronkov
University of Manchester, England
{riazanoa,voronkov}@cs.man.ac.uk

### KEY FOR VAMPIRE PROOFS

1. "Refutation found" means that the input set of clauses/formulas is unsatisfiable. "Proof by contradiction found" means that the input set contains a FOF conjecture, which has been negated and the resulting set has been refuted. Negation of the conjecture is implicit (will change later).
2. The syntax of clauses and formulas is self-explanatory. # denotes the empty clause.
3. All input clauses/formulas contributed to a refutation are given in the following form:
```*********** [<number>] ***************
<clause/formula body>```
4. All proof steps are of the following form:
```******* [<premise number>,..,<premise number>-><conclusion number>] **********
<premise>
.
.
.
<premise>
-------------------------------
<conclusion> ```
Premises and conclusions can be formulas or clauses.
5. A proof step is either a clausification step or a combined application of some inference rules of the kernel (resolution, paramodulation or splitting). Not all proof steps are deductive, i.e. the conclusion may not be logically implied by the premises. Some steps are only satisfiability-preserving, e.g., clausification steps involving Skolemisation and steps that use splitting or negative equality splitting.
Example 1. A step from the sample solution for SYN551+1
```*********** [11->20] ***********
(~X0=f(g(X0)) \/
((sk1=f(g(sk1)) &
~sk1=sk0) &
sk0=f(g(sk0))) \/
~X3=g(f(X3)) \/
((sk3=g(f(sk3)) &
~sk3=sk2) &
sk2=g(f(sk2)))) &
((sk4=f(g(sk4)) &
((~X8=f(g(X8)) \/
X8=X7) \/
~X7=f(g(X7)))) \/
(sk5=g(f(sk5)) &
((~X11=g(f(X11)) \/
X11=X10) \/
~X10=g(f(X10)))))
-----------------------------
sk2=g(f(sk2)) \/ ~X3=g(f(X3)) \/ sk0=f(g(sk0)) \/ ~X0=f(g(X0))```
The conclusion [20] is one of the clauses obtained by clausification of the premise [11]. The constant sk5 was introduced by skolemisation.

Example 2. Three steps from the sample solution for SYN551+1

```*********** [20->25] ***********
sk2=g(f(sk2)) \/ ~X3=g(f(X3)) \/ sk0=f(g(sk0)) \/ ~X0=f(g(X0))
-----------------------------
~g(f(X0))=X0 \/ p__2

*********** [20->31] ***********
sk2=g(f(sk2)) \/ ~X3=g(f(X3)) \/ sk0=f(g(sk0)) \/ ~X0=f(g(X0))
-----------------------------
~f(g(X0))=X0 \/ p__3

*********** [20->42] ***********
sk2=g(f(sk2)) \/ ~X3=g(f(X3)) \/ sk0=f(g(sk0)) \/ ~X0=f(g(X0))
-----------------------------
f(g(sk0))=sk0 \/ g(f(sk2))=sk2 \/ ~p__2 \/ ~p__3 ```
These steps together form a splitting inference. In the first two we introduce names p__2 and p__3 for the components ~X3=g(f(X3)) and ~X0=f(g(X0)) of the clause [20]. The last one is obtained by folding the components.

Example 3. Two steps from the sample solution for COL003-20:

```*********** [9->10] ***********
~apply(strong_fixed_point,fixed_pt)=apply(fixed_pt,apply(strong_fixed_point,fixe
d_pt))
-----------------------------
~p__0(apply(strong_fixed_point,fixed_pt)

*********** [9->12] ***********
~apply(strong_fixed_point,fixed_pt)=apply(fixed_pt,apply(strong_fixed_point,fixe
d_pt))
-----------------------------
p__0(apply(fixed_pt,apply(strong_fixed_point,fixed_pt))) ```
These steps form a negative equality splitting. Again, p__0 is a new predicate.

### Sample MIX proof for SYN075-1

```Refutation found. Thanks to Tanya!
*********** [12] ***********
~X0=a \/ ~X1=b \/ big_f(X0,X1)
*********** [12->20] ***********
~X0=a \/ ~X1=b \/ big_f(X0,X1)
-----------------------------
big_f(a,b)
*********** [20->21] ***********
big_f(a,b)
-----------------------------
big_f(a,b)
*********** [10] ***********
~big_f(X0,X1) \/ X0=a
*********** [10->22] ***********
~big_f(X0,X1) \/ X0=a
-----------------------------
~big_f(X0,X1) \/ X0=a
*********** [22->23] ***********
~big_f(X0,X1) \/ X0=a
-----------------------------
~big_f(X0,X1) \/ X0=a
*********** [13] ***********
~big_f(X1,f(X0)) \/ ~X1=g(X0) \/ f(X0)=X0
*********** [13->24] ***********
~big_f(X1,f(X0)) \/ ~X1=g(X0) \/ f(X0)=X0
-----------------------------
~big_f(g(X0),f(X0)) \/ f(X0)=X0
*********** [15] ***********
~X1=g(X0) \/ big_f(X1,f(X0)) \/ f(X0)=X0
*********** [24,15->25] ***********
~big_f(g(X0),f(X0)) \/ f(X0)=X0
~X1=g(X0) \/ big_f(X1,f(X0)) \/ f(X0)=X0
-----------------------------
f(X0)=X0
*********** [25->26] ***********
f(X0)=X0
-----------------------------
f(X0)=X0
*********** [18] ***********
~f(X0)=X0 \/ big_f(h(X0,X2),f(X0)) \/ h(X0,X2)=X2
*********** [18->27] ***********
~f(X0)=X0 \/ big_f(h(X0,X2),f(X0)) \/ h(X0,X2)=X2
-----------------------------
~f(X0)=X0 \/ h(X0,X1)=X1 \/ big_f(h(X0,X1),f(X0))
*********** [26,26,27->28] ***********
f(X0)=X0
f(X0)=X0
~f(X0)=X0 \/ h(X0,X1)=X1 \/ big_f(h(X0,X1),f(X0))
-----------------------------
big_f(h(X0,X1),X0) \/ h(X0,X1)=X1
*********** [23,28->29] ***********
~big_f(X0,X1) \/ X0=a
big_f(h(X0,X1),X0) \/ h(X0,X1)=X1
-----------------------------
h(X0,X1)=a \/ h(X0,X1)=X1
*********** [29->30] ***********
h(X0,X1)=a \/ h(X0,X1)=X1
-----------------------------
h(X0,a)=a
*********** [19] ***********
~f(X0)=X0 \/ ~h(X0,X2)=X2 \/ ~big_f(h(X0,X2),f(X0))
*********** [19->31] ***********
~f(X0)=X0 \/ ~h(X0,X2)=X2 \/ ~big_f(h(X0,X2),f(X0))
-----------------------------
~big_f(h(X0,X1),f(X0)) \/ ~h(X0,X1)=X1 \/ ~f(X0)=X0
*********** [26,26,31->32] ***********
f(X0)=X0
f(X0)=X0
~big_f(h(X0,X1),f(X0)) \/ ~h(X0,X1)=X1 \/ ~f(X0)=X0
-----------------------------
~h(X0,X1)=X1 \/ ~big_f(h(X0,X1),X0)
*********** [30,32,30->33] ***********
h(X0,a)=a
~h(X0,X1)=X1 \/ ~big_f(h(X0,X1),X0)
h(X0,a)=a
-----------------------------
~big_f(a,X0)
*********** [21,33->34] ***********
big_f(a,b)
~big_f(a,X0)
-----------------------------
#
======= End of refutation ======= ```

## Vampire 7.0

Alexandre Riazanov, Andrei Voronkov
University of Manchester, England
{riazanoa,voronkov}@cs.man.ac.uk

### Names of rules used in Vampire 7.0 proofs, and their meanings

1. "input":
Input axiom, hypothesis or the negation of conjecture
2. "choice axiom":
Additional axiom (Ax)((Ey)F(x,y) -> F(x,f(x))), where f is a Skolem function
3. "monotone replacement":
(Ax)(F(x)->F'(x)), G[F(t)] => G[F'(t)]
4. "forall-elimination":
G[(Ax)F(x)] => G[F(t)]
5. "not-and":
G[~(F1 & ... & Fn)] => G[~F1 \/ ... \/ ~Fn]
6. "not-or":
G[~(F1 \/ ... \/ Fn)] => G[~F1 & ... & ~Fn]
7. "not-implies":
G[~(F1 -> F2)] => G[F1 & ~F2]
8. "not-iff":
G[~(F1 <-> F2)] => G[F1 <~> F2]
9. "not-xor":
G[~(F1 <~> F2)] => G[F1 <-> F2]
10. "not-not":
G[~~F] => G[F]
11. "not-forall":
G[~(Ax)F] => G[(Ex)~F]
12. "not-exists":
G[~(Ex)F] => G[(Ax)~F]
13. "implies-to-or":
G[F1 -> F2] => G[~F1 \/ F2]
14. "equivalence-to-and":
G[F1 <-> F2] => G[(F1 -> F2) & (F2 -> F1)]
15. "xor-to-and":
G[F1 <~> F2] => G[(F1 \/ F2) & (~F1 \/ ~F2)]
16. "rectify":
Renaming of bound variables.
17. "dummy quantifier removal":
G[(Q x1 ... xk ... x_n)A] => G[(Q x1 ... xk-1 xk+1 ... x_n)A] where xk does not occur in A
18. "forall-and":
G[(A x1 ... xn)(F1 & ... & Fm)] => G[(A x1 ... xn)F1 & ... & (A x1 ... xn)Fm)]
19. "exists-or":
G[(E x1 ... xn)(F1 \/ ... \/ Fm)] => G[(E x1 ... xn)F1 \/ ... \/ (E x1 ... xn)Fm)]
20. "quantifier swap":
G[(Q x)(Q y)F] => G[(Q y)(Q x)F]
21. "forall-or":
G[(A x1 x2)(F1 \/ F2)] => G[(A x1)F1 \/ ... \/ (A x2)F2)], where x2 does not occur in F1. Can be applied to many variables and disjunctions of arbitrary length.
22. "exists-and":
G[(E x1 x2)(F1 & F2)] => G[(E x1)F1 & ... & (E x2)F2)], where x2 does not occur in F1. Can be applied to many variables and disjunctions of arbitrary length.
23. "permutation":
Applies symmetry of <->, <~>, \/ or &.
24. "flattening":
Applies associativity of \/ or &.
25. "equality reordering":
Applies symmetry of the equality predicate.
26. "equivalence to implication":
G[F1 <-> F2] => G[F1 -> F2], G[F1 <-> F2] => G[F2 -> F1], provided that the context G[.] is positive.
27. "miniscoping":
G[(E x) F1 \/ F2] => G[(E x) F1 \/ (E x) F2] G[(A x) F1 & F2] => G[(A x) F1 & (A x) F2]
28. "cnf transformation":
G[F1 & .. Fk-1 & Fk & Fk+1 & .. & Fn] => G[F1 & .. Fk-1 & Fk+1 & .. & Fn], where the context G[.] is positive.
29. "remove duplicate literals":
Factorises duplicate literals in a clause.
30. "resolution":
Binary resolution (on literals, not arbitrary formulas)
31. "kernel inference":
Any combination of the following rules on clauses: binary resolution, factoring, paramodulation, equality resolution, equality factoring, permutation of literals in a clause, renaming of free variables in a clause.

### Sample MIX proof for SYN075-1

```=========== Refutation ==========
*********** [3, input] ***********
X0!=a \/ X1!=b \/ big_f(X0,X1)
*********** [3->13, kernel inference] ***********
X0!=a \/ X1!=b \/ big_f(X0,X1)
-----------------------------
X1!=b \/ X2!=a \/ big_f(X2,X1)
*********** [13->22, kernel inference] ***********
X1!=b \/ X2!=a \/ big_f(X2,X1)
-----------------------------
X1!=b \/ X2!=a \/ big_f(X2,X1)
*********** [22->28, kernel inference] ***********
X1!=b \/ X2!=a \/ big_f(X2,X1)
-----------------------------
X1!=a \/ big_f(X1,b)
*********** [28->33, kernel inference] ***********
X1!=a \/ big_f(X1,b)
-----------------------------
big_f(a,b)
*********** [1, input] ***********
~big_f(X0,X1) \/ X0=a
*********** [1->11, kernel inference] ***********
~big_f(X0,X1) \/ X0=a
-----------------------------
~big_f(X1,X2) \/ X1=a
*********** [11->20, kernel inference] ***********
~big_f(X1,X2) \/ X1=a
-----------------------------
~big_f(X1,X2) \/ X1=a
*********** [9, input] ***********
f(X0)!=X0 \/ big_f(h(X0,X2),f(X0)) \/ h(X0,X2)=X2
*********** [9->18, kernel inference] ***********
f(X0)!=X0 \/ big_f(h(X0,X2),f(X0)) \/ h(X0,X2)=X2
-----------------------------
f(X1)!=X1 \/ h(X1,X2)=X2 \/ big_f(h(X1,X2),f(X1))
*********** [18->26, kernel inference] ***********
f(X1)!=X1 \/ h(X1,X2)=X2 \/ big_f(h(X1,X2),f(X1))
-----------------------------
f(X1)!=X1 \/ h(X1,X2)=X2 \/ big_f(h(X1,X2),f(X1))
*********** [4, input] ***********
~big_f(X1,f(X0)) \/ X1!=g(X0) \/ f(X0)=X0
*********** [4->14, kernel inference] ***********
~big_f(X1,f(X0)) \/ X1!=g(X0) \/ f(X0)=X0
-----------------------------
X1!=g(X2) \/ f(X2)=X2 \/ ~big_f(X1,f(X2))
*********** [6, input] ***********
X1!=g(X0) \/ big_f(X1,f(X0)) \/ f(X0)=X0
*********** [14,6->15, kernel inference] ***********
X1!=g(X2) \/ f(X2)=X2 \/ ~big_f(X1,f(X2))
X1!=g(X0) \/ big_f(X1,f(X0)) \/ f(X0)=X0
-----------------------------
X1!=g(X2) \/ f(X2)=X2
*********** [15->23, kernel inference] ***********
X1!=g(X2) \/ f(X2)=X2
-----------------------------
X1!=g(X2) \/ f(X2)=X2
*********** [23->29, kernel inference] ***********
X1!=g(X2) \/ f(X2)=X2
-----------------------------
f(X1)=X1
*********** [26,29->31, kernel inference] ***********
f(X1)!=X1 \/ h(X1,X2)=X2 \/ big_f(h(X1,X2),f(X1))
f(X1)=X1
-----------------------------
big_f(h(X1,X2),X1) \/ h(X1,X2)=X2
*********** [20,31->35, kernel inference] ***********
~big_f(X1,X2) \/ X1=a
big_f(h(X1,X2),X1) \/ h(X1,X2)=X2
-----------------------------
h(X1,X2)=a \/ h(X1,X2)=X2
*********** [35->36, kernel inference] ***********
h(X1,X2)=a \/ h(X1,X2)=X2
-----------------------------
a!=X1 \/ h(X2,X1)=X1
*********** [36->40, kernel inference] ***********
a!=X1 \/ h(X2,X1)=X1
-----------------------------
h(X1,a)=a
*********** [10, input] ***********
f(X0)!=X0 \/ h(X0,X2)!=X2 \/ ~big_f(h(X0,X2),f(X0))
*********** [10->19, kernel inference] ***********
f(X0)!=X0 \/ h(X0,X2)!=X2 \/ ~big_f(h(X0,X2),f(X0))
-----------------------------
~big_f(h(X1,X2),f(X1)) \/ h(X1,X2)!=X2 \/ f(X1)!=X1
*********** [19->27, kernel inference] ***********
~big_f(h(X1,X2),f(X1)) \/ h(X1,X2)!=X2 \/ f(X1)!=X1
-----------------------------
~big_f(h(X1,X2),f(X1)) \/ h(X1,X2)!=X2 \/ f(X1)!=X1
*********** [27,29->32, kernel inference] ***********
~big_f(h(X1,X2),f(X1)) \/ h(X1,X2)!=X2 \/ f(X1)!=X1
f(X1)=X1
-----------------------------
h(X1,X2)!=X2 \/ ~big_f(h(X1,X2),X1)
*********** [40,32,40->41, kernel inference] ***********
h(X1,a)=a
h(X1,X2)!=X2 \/ ~big_f(h(X1,X2),X1)
h(X1,a)=a
-----------------------------
~big_f(a,X1)
*********** [33,41->42, kernel inference] ***********
big_f(a,b)
~big_f(a,X1)
-----------------------------
#
======= End of refutation =======
```

### Sample FOF proof for SYN075+1

```=========== Refutation ==========
*********** [1, input] ***********
(? X1 X0)(! X3 X2)(big_f(X3,X2) <=> X3=X1 & X2=X0)
*********** [1->3, rectify] ***********
(? X1 X0)(! X3 X2)(big_f(X3,X2) <=> X3=X1 & X2=X0)
-----------------------------
(? X0 X1)(! X2 X3)(big_f(X2,X3) <=> X2=X0 & X3=X1)
*********** [3->84, equivalence-to-and] ***********
(? X0 X1)(! X2 X3)(big_f(X2,X3) <=> X2=X0 & X3=X1)
-----------------------------
(? X0 X1)(! X2 X3)((big_f(X2,X3) => X2=X0 & X3=X1) & (X2=X0 & X3=X1 => big_f(X2,X3)))
*********** [84->85, implies-to-or] ***********
(? X0 X1)(! X2 X3)((big_f(X2,X3) => X2=X0 & X3=X1) & (X2=X0 & X3=X1 => big_f(X2,X3)))
-----------------------------
(? X0 X1)(! X2 X3)((big_f(X2,X3) => X2=X0 & X3=X1) & (~(X2=X0 & X3=X1) \/ big_f(X2,X3)))
*********** [85->86, not-and] ***********
(? X0 X1)(! X2 X3)((big_f(X2,X3) => X2=X0 & X3=X1) & (~(X2=X0 & X3=X1) \/ big_f(X2,X3)))
-----------------------------
(? X0 X1)(! X2 X3)((big_f(X2,X3) => X2=X0 & X3=X1) & ((~X2=X0 \/ ~X3=X1) \/ big_f(X2,X3)))
*********** [86->5, implies-to-or] ***********
(? X0 X1)(! X2 X3)((big_f(X2,X3) => X2=X0 & X3=X1) & ((~X2=X0 \/ ~X3=X1) \/ big_f(X2,X3)))
-----------------------------
(? X0 X1)(! X2 X3)((~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & ((~X2=X0 \/ ~X3=X1) \/ big_f(X2,X3)))
*********** [5->6, flattening] ***********
(? X0 X1)(! X2 X3)((~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & ((~X2=X0 \/ ~X3=X1) \/ big_f(X2,X3)))
-----------------------------
(? X0 X1)(! X2 X3)((~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & (~X2=X0 \/ ~X3=X1 \/ big_f(X2,X3)))
*********** [6->89, forall-and] ***********
(? X0 X1)(! X2 X3)((~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & (~X2=X0 \/ ~X3=X1 \/ big_f(X2,X3)))
-----------------------------
(? X0 X1)((! X2 X3)(~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & (! X2 X3)(~X2=X0 \/ ~X3=X1 \/ big_f(X2,X3)))
*********** [89->7, forall-or] ***********
(? X0 X1)((! X2 X3)(~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & (! X2 X3)(~X2=X0 \/ ~X3=X1 \/ big_f(X2,X3)))
-----------------------------
(? X0 X1)((! X2 X3)(~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & (! X3)((! X2)(~X2=X0 \/ big_f(X2,X3)) \/ ~X3=X1))
*********** [7->8, rectify] ***********
(? X0 X1)((! X2 X3)(~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & (! X3)((! X2)(~X2=X0 \/ big_f(X2,X3)) \/ ~X3=X1))
-----------------------------
(? X0 X1)((! X2 X3)(~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & (! X4)((! X5)(~X5=X0 \/ big_f(X5,X4)) \/ ~X4=X1))
*********** [91, choice axiom] ***********
(? X0 X1)((! X2 X3)(~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & (! X4)((! X5)(~X5=X0 \/ big_f(X5,X4)) \/ ~X4=X1)) => (! X2 X3)(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & (! X4)((! X5)(~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
*********** [91,8->92, monotone replacement] ***********
(? X0 X1)((! X2 X3)(~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & (! X4)((! X5)(~X5=X0 \/ big_f(X5,X4)) \/ ~X4=X1)) => (! X2 X3)(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & (! X4)((! X5)(~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
(? X0 X1)((! X2 X3)(~big_f(X2,X3) \/ (X2=X0 & X3=X1)) & (! X4)((! X5)(~X5=X0 \/ big_f(X5,X4)) \/ ~X4=X1))
-----------------------------
(! X2 X3)(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & (! X4)((! X5)(~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
*********** [92->93, forall-elimination] ***********
(! X2 X3)(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & (! X4)((! X5)(~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
-----------------------------
(! X2 X3)(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & ((! X5)(~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
*********** [93->94, forall-elimination] ***********
(! X2 X3)(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & ((! X5)(~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
-----------------------------
(! X2 X3)(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & ((~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
*********** [94->9, forall-elimination] ***********
(! X2 X3)(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & ((~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
-----------------------------
(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & ((~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
*********** [9->17, cnf transformation] ***********
(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & ((~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
-----------------------------
X4!=sk1 \/ big_f(X5,X4) \/ X5!=sk0
*********** [17->26, kernel inference] ***********
X4!=sk1 \/ big_f(X5,X4) \/ X5!=sk0
-----------------------------
X1!=sk0 \/ X2!=sk1 \/ big_f(X1,X2)
*********** [26->33, kernel inference] ***********
X1!=sk0 \/ X2!=sk1 \/ big_f(X1,X2)
-----------------------------
X1!=sk0 \/ X2!=sk1 \/ big_f(X1,X2)
*********** [33->37, kernel inference] ***********
X1!=sk0 \/ X2!=sk1 \/ big_f(X1,X2)
-----------------------------
X1!=sk1 \/ big_f(sk0,X1)
*********** [37->38, kernel inference] ***********
X1!=sk1 \/ big_f(sk0,X1)
-----------------------------
big_f(sk0,sk1)
*********** [9->16, cnf transformation] ***********
(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & ((~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
-----------------------------
X3=sk1 \/ ~big_f(X2,X3)
*********** [16->27, kernel inference] ***********
X3=sk1 \/ ~big_f(X2,X3)
-----------------------------
~big_f(X1,X2) \/ X2=sk1
*********** [27->34, kernel inference] ***********
~big_f(X1,X2) \/ X2=sk1
-----------------------------
~big_f(X1,X2) \/ X2=sk1
*********** [2, input] ***********
~(? X0)(! X2)((? X1)(! X3)(big_f(X3,X2) <=> X3=X1) <=> X2=X0)
*********** [2->4, rectify] ***********
~(? X0)(! X2)((? X1)(! X3)(big_f(X3,X2) <=> X3=X1) <=> X2=X0)
-----------------------------
~(? X0)(! X1)((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) <=> X1=X0)
*********** [4->96, not-exists] ***********
~(? X0)(! X1)((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) <=> X1=X0)
-----------------------------
(! X0)~(! X1)((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) <=> X1=X0)
*********** [96->97, not-forall] ***********
(! X0)~(! X1)((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) <=> X1=X0)
-----------------------------
(! X0)(? X1)~((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) <=> X1=X0)
*********** [97->10, not-iff] ***********
(! X0)(? X1)~((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) <=> X1=X0)
-----------------------------
(! X0)(? X1)((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) <~> X1=X0)
*********** [10->99, xor-to-and] ***********
(! X0)(? X1)((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) <~> X1=X0)
-----------------------------
(! X0)(? X1)(((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ X1=X0) & (~(? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ ~X1=X0))
*********** [99->100, not-exists] ***********
(! X0)(? X1)(((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ X1=X0) & (~(? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ ~X1=X0))
-----------------------------
(! X0)(? X1)(((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ X1=X0) & ((! X2)~(! X3)(big_f(X3,X1) <=> X3=X2) \/ ~X1=X0))
*********** [100->101, not-forall] ***********
(! X0)(? X1)(((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ X1=X0) & ((! X2)~(! X3)(big_f(X3,X1) <=> X3=X2) \/ ~X1=X0))
-----------------------------
(! X0)(? X1)(((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ X1=X0) & ((! X2)(? X3)~(big_f(X3,X1) <=> X3=X2) \/ ~X1=X0))
*********** [101->102, not-iff] ***********
(! X0)(? X1)(((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ X1=X0) & ((! X2)(? X3)~(big_f(X3,X1) <=> X3=X2) \/ ~X1=X0))
-----------------------------
(! X0)(? X1)(((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ X1=X0) & ((! X2)(? X3)(big_f(X3,X1) <~> X3=X2) \/ ~X1=X0))
*********** [102->103, xor-to-and] ***********
(! X0)(? X1)(((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ X1=X0) & ((! X2)(? X3)(big_f(X3,X1) <~> X3=X2) \/ ~X1=X0))
-----------------------------
(! X0)(? X1)(((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ X1=X0) & ((! X2)(? X3)((big_f(X3,X1) \/ X3=X2) & (~big_f(X3,X1) \/ ~X3=X2)) \/ ~X1=X0))
*********** [103->104, equivalence-to-and] ***********
(! X0)(? X1)(((? X2)(! X3)(big_f(X3,X1) <=> X3=X2) \/ X1=X0) & ((! X2)(? X3)((big_f(X3,X1) \/ X3=X2) & (~big_f(X3,X1) \/ ~X3=X2)) \/ ~X1=X0))
-----------------------------
(! X0)(? X1)(((? X2)(! X3)((big_f(X3,X1) => X3=X2) & (X3=X2 => big_f(X3,X1))) \/ X1=X0) & ((! X2)(? X3)((big_f(X3,X1) \/ X3=X2) & (~big_f(X3,X1) \/ ~X3=X2)) \/ ~X1=X0))
*********** [104->105, implies-to-or] ***********
(! X0)(? X1)(((? X2)(! X3)((big_f(X3,X1) => X3=X2) & (X3=X2 => big_f(X3,X1))) \/ X1=X0) & ((! X2)(? X3)((big_f(X3,X1) \/ X3=X2) & (~big_f(X3,X1) \/ ~X3=X2)) \/ ~X1=X0))
-----------------------------
(! X0)(? X1)(((? X2)(! X3)((big_f(X3,X1) => X3=X2) & (~X3=X2 \/ big_f(X3,X1))) \/ X1=X0) & ((! X2)(? X3)((big_f(X3,X1) \/ X3=X2) & (~big_f(X3,X1) \/ ~X3=X2)) \/ ~X1=X0))
*********** [105->11, implies-to-or] ***********
(! X0)(? X1)(((? X2)(! X3)((big_f(X3,X1) => X3=X2) & (~X3=X2 \/ big_f(X3,X1))) \/ X1=X0) & ((! X2)(? X3)((big_f(X3,X1) \/ X3=X2) & (~big_f(X3,X1) \/ ~X3=X2)) \/ ~X1=X0))
-----------------------------
(! X0)(? X1)(((? X2)(! X3)((~big_f(X3,X1) \/ X3=X2) & (~X3=X2 \/ big_f(X3,X1))) \/ X1=X0) & ((! X2)(? X3)((big_f(X3,X1) \/ X3=X2) & (~big_f(X3,X1) \/ ~X3=X2)) \/ ~X1=X0))
*********** [11->12, forall-and] ***********
(! X0)(? X1)(((? X2)(! X3)((~big_f(X3,X1) \/ X3=X2) & (~X3=X2 \/ big_f(X3,X1))) \/ X1=X0) & ((! X2)(? X3)((big_f(X3,X1) \/ X3=X2) & (~big_f(X3,X1) \/ ~X3=X2)) \/ ~X1=X0))
-----------------------------
(! X0)(? X1)(((? X2)((! X3)(~big_f(X3,X1) \/ X3=X2) & (! X3)(~X3=X2 \/ big_f(X3,X1))) \/ X1=X0) & ((! X2)(? X3)((big_f(X3,X1) \/ X3=X2) & (~big_f(X3,X1) \/ ~X3=X2)) \/ ~X1=X0))
*********** [12->13, rectify] ***********
(! X0)(? X1)(((? X2)((! X3)(~big_f(X3,X1) \/ X3=X2) & (! X3)(~X3=X2 \/ big_f(X3,X1))) \/ X1=X0) & ((! X2)(? X3)((big_f(X3,X1) \/ X3=X2) & (~big_f(X3,X1) \/ ~X3=X2)) \/ ~X1=X0))
-----------------------------
(! X0)(? X1)(((? X2)((! X3)(~big_f(X3,X1) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,X1))) \/ X1=X0) & ((! X5)(? X6)((big_f(X6,X1) \/ X6=X5) & (~big_f(X6,X1) \/ ~X6=X5)) \/ ~X1=X0))
*********** [112, choice axiom] ***********
(! X0)((? X2)((! X3)(~big_f(X3,sk2(X0)) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,sk2(X0)))) => (! X3)(~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (! X4)(~X4=sk3(X0) \/ big_f(X4,sk2(X0))))
*********** [110, choice axiom] ***********
(! X0 X5)((? X6)((big_f(X6,sk2(X0)) \/ X6=X5) & (~big_f(X6,sk2(X0)) \/ ~X6=X5)) => (big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5))
*********** [108, choice axiom] ***********
(! X0)((? X1)(((? X2)((! X3)(~big_f(X3,X1) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,X1))) \/ X1=X0) & ((! X5)(? X6)((big_f(X6,X1) \/ X6=X5) & (~big_f(X6,X1) \/ ~X6=X5)) \/ ~X1=X0)) => ((? X2)((! X3)(~big_f(X3,sk2(X0)) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & ((! X5)(? X6)((big_f(X6,sk2(X0)) \/ X6=X5) & (~big_f(X6,sk2(X0)) \/ ~X6=X5)) \/ ~sk2(X0)=X0))
*********** [108,13->109, monotone replacement] ***********
(! X0)((? X1)(((? X2)((! X3)(~big_f(X3,X1) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,X1))) \/ X1=X0) & ((! X5)(? X6)((big_f(X6,X1) \/ X6=X5) & (~big_f(X6,X1) \/ ~X6=X5)) \/ ~X1=X0)) => ((? X2)((! X3)(~big_f(X3,sk2(X0)) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & ((! X5)(? X6)((big_f(X6,sk2(X0)) \/ X6=X5) & (~big_f(X6,sk2(X0)) \/ ~X6=X5)) \/ ~sk2(X0)=X0))
(! X0)(? X1)(((? X2)((! X3)(~big_f(X3,X1) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,X1))) \/ X1=X0) & ((! X5)(? X6)((big_f(X6,X1) \/ X6=X5) & (~big_f(X6,X1) \/ ~X6=X5)) \/ ~X1=X0))
-----------------------------
(! X0)(((? X2)((! X3)(~big_f(X3,sk2(X0)) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & ((! X5)(? X6)((big_f(X6,sk2(X0)) \/ X6=X5) & (~big_f(X6,sk2(X0)) \/ ~X6=X5)) \/ ~sk2(X0)=X0))
*********** [110,109->111, monotone replacement] ***********
(! X0 X5)((? X6)((big_f(X6,sk2(X0)) \/ X6=X5) & (~big_f(X6,sk2(X0)) \/ ~X6=X5)) => (big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5))
(! X0)(((? X2)((! X3)(~big_f(X3,sk2(X0)) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & ((! X5)(? X6)((big_f(X6,sk2(X0)) \/ X6=X5) & (~big_f(X6,sk2(X0)) \/ ~X6=X5)) \/ ~sk2(X0)=X0))
-----------------------------
(! X0)(((? X2)((! X3)(~big_f(X3,sk2(X0)) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & ((! X5)((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0))
*********** [112,111->113, monotone replacement] ***********
(! X0)((? X2)((! X3)(~big_f(X3,sk2(X0)) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,sk2(X0)))) => (! X3)(~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (! X4)(~X4=sk3(X0) \/ big_f(X4,sk2(X0))))
(! X0)(((? X2)((! X3)(~big_f(X3,sk2(X0)) \/ X3=X2) & (! X4)(~X4=X2 \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & ((! X5)((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0))
-----------------------------
(! X0)((((! X3)(~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (! X4)(~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & ((! X5)((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0))
*********** [113->114, forall-elimination] ***********
(! X0)((((! X3)(~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (! X4)(~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & ((! X5)((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0))
-----------------------------
(((! X3)(~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (! X4)(~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & ((! X5)((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0)
*********** [114->115, forall-elimination] ***********
(((! X3)(~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (! X4)(~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & ((! X5)((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0)
-----------------------------
(((! X3)(~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (! X4)(~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & (((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0)
*********** [115->116, forall-elimination] ***********
(((! X3)(~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (! X4)(~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & (((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0)
-----------------------------
(((! X3)(~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & (((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0)
*********** [116->14, forall-elimination] ***********
(((! X3)(~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & (((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0)
-----------------------------
(((~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & (((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0)
*********** [14->19, cnf transformation] ***********
(((~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & (((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0)
-----------------------------
sk2(X0)=X0 \/ big_f(X4,sk2(X0)) \/ X4!=sk3(X0)
*********** [19->24, kernel inference] ***********
sk2(X0)=X0 \/ big_f(X4,sk2(X0)) \/ X4!=sk3(X0)
-----------------------------
X1!=sk3(X2) \/ sk2(X2)=X2 \/ big_f(X1,sk2(X2))
*********** [24->31, kernel inference] ***********
X1!=sk3(X2) \/ sk2(X2)=X2 \/ big_f(X1,sk2(X2))
-----------------------------
X1!=sk3(X2) \/ sk2(X2)=X2 \/ big_f(X1,sk2(X2))
*********** [31->36, kernel inference] ***********
X1!=sk3(X2) \/ sk2(X2)=X2 \/ big_f(X1,sk2(X2))
-----------------------------
big_f(sk3(X1),sk2(X1)) \/ sk2(X1)=X1
*********** [34,36->40, kernel inference] ***********
~big_f(X1,X2) \/ X2=sk1
big_f(sk3(X1),sk2(X1)) \/ sk2(X1)=X1
-----------------------------
sk2(X1)=sk1 \/ sk2(X1)=X1
*********** [40->43, kernel inference] ***********
sk2(X1)=sk1 \/ sk2(X1)=X1
-----------------------------
sk1!=X1 \/ sk2(X1)=X1
*********** [43->49, kernel inference] ***********
sk1!=X1 \/ sk2(X1)=X1
-----------------------------
sk2(sk1)=sk1
*********** [9->15, cnf transformation] ***********
(~big_f(X2,X3) \/ (X2=sk0 & X3=sk1)) & ((~X5=sk0 \/ big_f(X5,X4)) \/ ~X4=sk1)
-----------------------------
X2=sk0 \/ ~big_f(X2,X3)
*********** [15->28, kernel inference] ***********
X2=sk0 \/ ~big_f(X2,X3)
-----------------------------
~big_f(X1,X2) \/ X1=sk0
*********** [28->35, kernel inference] ***********
~big_f(X1,X2) \/ X1=sk0
-----------------------------
~big_f(X1,X2) \/ X1=sk0
*********** [14->20, cnf transformation] ***********
(((~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & (((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0)
-----------------------------
sk2(X0)!=X0 \/ sk4(X0,X5)=X5 \/ big_f(sk4(X0,X5),sk2(X0))
*********** [20->23, kernel inference] ***********
sk2(X0)!=X0 \/ sk4(X0,X5)=X5 \/ big_f(sk4(X0,X5),sk2(X0))
-----------------------------
sk2(X1)!=X1 \/ sk4(X1,X2)=X2 \/ big_f(sk4(X1,X2),sk2(X1))
*********** [23->30, kernel inference] ***********
sk2(X1)!=X1 \/ sk4(X1,X2)=X2 \/ big_f(sk4(X1,X2),sk2(X1))
-----------------------------
sk2(X1)!=X1 \/ sk4(X1,X2)=X2 \/ big_f(sk4(X1,X2),sk2(X1))
*********** [49,30,49->54, kernel inference] ***********
sk2(sk1)=sk1
sk2(X1)!=X1 \/ sk4(X1,X2)=X2 \/ big_f(sk4(X1,X2),sk2(X1))
sk2(sk1)=sk1
-----------------------------
big_f(sk4(sk1,X1),sk1) \/ sk4(sk1,X1)=X1
*********** [35,54->56, kernel inference] ***********
~big_f(X1,X2) \/ X1=sk0
big_f(sk4(sk1,X1),sk1) \/ sk4(sk1,X1)=X1
-----------------------------
sk4(sk1,X1)=sk0 \/ sk4(sk1,X1)=X1
*********** [56->68, kernel inference] ***********
sk4(sk1,X1)=sk0 \/ sk4(sk1,X1)=X1
-----------------------------
sk0!=X1 \/ sk4(sk1,X1)=X1
*********** [68->75, kernel inference] ***********
sk0!=X1 \/ sk4(sk1,X1)=X1
-----------------------------
sk4(sk1,sk0)=sk0
*********** [14->21, cnf transformation] ***********
(((~big_f(X3,sk2(X0)) \/ X3=sk3(X0)) & (~X4=sk3(X0) \/ big_f(X4,sk2(X0)))) \/ sk2(X0)=X0) & (((big_f(sk4(X0,X5),sk2(X0)) \/ sk4(X0,X5)=X5) & (~big_f(sk4(X0,X5),sk2(X0)) \/ ~sk4(X0,X5)=X5)) \/ ~sk2(X0)=X0)
-----------------------------
sk2(X0)!=X0 \/ sk4(X0,X5)!=X5 \/ ~big_f(sk4(X0,X5),sk2(X0))
*********** [21->22, kernel inference] ***********
sk2(X0)!=X0 \/ sk4(X0,X5)!=X5 \/ ~big_f(sk4(X0,X5),sk2(X0))
-----------------------------
~big_f(sk4(X1,X2),sk2(X1)) \/ sk4(X1,X2)!=X2 \/ sk2(X1)!=X1
*********** [22->29, kernel inference] ***********
~big_f(sk4(X1,X2),sk2(X1)) \/ sk4(X1,X2)!=X2 \/ sk2(X1)!=X1
-----------------------------
~big_f(sk4(X1,X2),sk2(X1)) \/ sk4(X1,X2)!=X2 \/ sk2(X1)!=X1
*********** [38,49,75,49,29,75->83, kernel inference] ***********
big_f(sk0,sk1)
sk2(sk1)=sk1
sk4(sk1,sk0)=sk0
sk2(sk1)=sk1
~big_f(sk4(X1,X2),sk2(X1)) \/ sk4(X1,X2)!=X2 \/ sk2(X1)!=X1
sk4(sk1,sk0)=sk0
-----------------------------
#
======= End of refutation =======
```