# Entrants' Sample Solutions

## Ayane 2

Russell Wallace
Independent researcher, Ireland

### Sample solution for SYN073+1

Ayane cannot solve SYN075+1.
```% SZS status Theorem for SYN073+1.p
% SZS output start CNFRefutation for SYN073+1.p
fof(pel50, conjecture, ! [X] : (big_f(a, X) | ! [Y] : big_f(X, Y)) => ? [X1] : (! [Y1] : big_f(X1, Y1)), file('SYN073+1.p', pel50)).
cnf(3, negated_conjecture, ~big_f(D, z0(D)), inference(convert, [status(esa)], [pel50])).
cnf(2, negated_conjecture, big_f(a, B) | big_f(B, C), inference(convert, [status(esa)], [pel50])).
cnf(4, plain, big_f(z0(a), A), inference(resolve, [status(thm)], [3, 2])).
cnf(5, plain, \$false, inference(resolve, [status(thm)], [4, 3])).
% SZS output end CNFRefutation for SYN073+1.p
```

## EP 1.2pre

Stephan Schulz
Technische Universität München, Germany,

### Sample solution for SYN075+1

```# Problem is unsatisfiable (or provable), constructing proof object
# SZS status Theorem
# SZS output start CNFRefutation.
fof(1, axiom,?[X1]:?[X2]:![X3]:![X4]:(big_f(X3,X4)<=>(equal(X3, X1)&equal(X4, X2))),file('/home/graph/tptp/TPTP/Problems/SYN/SYN075+1.p', pel52_1)).
fof(2, conjecture,?[X2]:![X4]:(?[X1]:![X3]:(big_f(X3,X4)<=>equal(X3, X1))<=>equal(X4, X2)),file('/home/graph/tptp/TPTP/Problems/SYN/SYN075+1.p', pel52)).
fof(3, negated_conjecture,~(?[X2]:![X4]:(?[X1]:![X3]:(big_f(X3,X4)<=>equal(X3, X1))<=>equal(X4, X2))),inference(assume_negation,[status(cth)],[2])).
fof(4, plain,?[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,?[X5]:?[X6]:![X7]:![X8]:((~(big_f(X7,X8))|(equal(X7, X5)&equal(X8, X6)))&((~(equal(X7, X5))|~(equal(X8, X6)))|big_f(X7,X8))),inference(variable_rename,[status(thm)],[4])).
fof(6, plain,![X7]:![X8]:((~(big_f(X7,X8))|(equal(X7, esk1_0)&equal(X8, esk2_0)))&((~(equal(X7, esk1_0))|~(equal(X8, esk2_0)))|big_f(X7,X8))),inference(skolemize,[status(sab)],[5])).
fof(7, plain,![X7]:![X8]:(((equal(X7, esk1_0)|~(big_f(X7,X8)))&(equal(X8, esk2_0)|~(big_f(X7,X8))))&((~(equal(X7, esk1_0))|~(equal(X8, esk2_0)))|big_f(X7,X8))),inference(distribute,[status(thm)],[6])).
cnf(8,plain,(big_f(X1,X2)|X2!=esk2_0|X1!=esk1_0),inference(split_conjunct,[status(thm)],[7])).
cnf(9,plain,(X2=esk2_0|~big_f(X1,X2)),inference(split_conjunct,[status(thm)],[7])).
cnf(10,plain,(X1=esk1_0|~big_f(X1,X2)),inference(split_conjunct,[status(thm)],[7])).
fof(11, negated_conjecture,![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))&(~(equal(X3, X1))|big_f(X3,X4)))|equal(X4, X2))),inference(fof_nnf,[status(thm)],[3])).
fof(12, negated_conjecture,![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))&(~(equal(X10, X9))|big_f(X10,X6)))|equal(X6, X5))),inference(variable_rename,[status(thm)],[11])).
fof(13, negated_conjecture,![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)))&(~(equal(X10, esk5_1(X5)))|big_f(X10,esk3_1(X5))))|equal(esk3_1(X5), X5))),inference(skolemize,[status(sab)],[12])).
fof(14, negated_conjecture,![X5]:![X7]:![X10]:((((~(big_f(X10,esk3_1(X5)))|equal(X10, esk5_1(X5)))&(~(equal(X10, esk5_1(X5)))|big_f(X10,esk3_1(X5))))|equal(esk3_1(X5), X5))&(((~(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)))),inference(shift_quantors,[status(thm)],[13])).
fof(15, negated_conjecture,![X5]:![X7]:![X10]:((((~(big_f(X10,esk3_1(X5)))|equal(X10, esk5_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(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))))),inference(distribute,[status(thm)],[14])).
cnf(16,negated_conjecture,(esk4_2(X1,X2)=X2|big_f(esk4_2(X1,X2),esk3_1(X1))|esk3_1(X1)!=X1),inference(split_conjunct,[status(thm)],[15])).
cnf(17,negated_conjecture,(esk3_1(X1)!=X1|esk4_2(X1,X2)!=X2|~big_f(esk4_2(X1,X2),esk3_1(X1))),inference(split_conjunct,[status(thm)],[15])).
cnf(18,negated_conjecture,(esk3_1(X1)=X1|big_f(X2,esk3_1(X1))|X2!=esk5_1(X1)),inference(split_conjunct,[status(thm)],[15])).
cnf(20,plain,(big_f(esk1_0,X1)|esk2_0!=X1),inference(er,[status(thm)],[8,theory(equality)])).
cnf(21,negated_conjecture,(esk3_1(X1)=X1|big_f(esk5_1(X1),esk3_1(X1))),inference(er,[status(thm)],[18,theory(equality)])).
cnf(23,negated_conjecture,(esk2_0=esk3_1(X1)|esk3_1(X1)=X1),inference(spm,[status(thm)],[9,21,theory(equality)])).
cnf(28,plain,(big_f(esk1_0,esk2_0)),inference(er,[status(thm)],[20,theory(equality)])).
cnf(30,negated_conjecture,(esk3_1(X2)=X2|esk2_0!=X2),inference(ef,[status(thm)],[23,theory(equality)])).
cnf(40,negated_conjecture,(esk3_1(esk2_0)=esk2_0),inference(er,[status(thm)],[30,theory(equality)])).
cnf(44,negated_conjecture,(esk4_2(esk2_0,X1)!=X1|~big_f(esk4_2(esk2_0,X1),esk2_0)),inference(spm,[status(thm)],[17,40,theory(equality)])).
cnf(45,negated_conjecture,(esk4_2(esk2_0,X1)=X1|big_f(esk4_2(esk2_0,X1),esk2_0)),inference(spm,[status(thm)],[16,40,theory(equality)])).
cnf(47,negated_conjecture,(esk1_0=esk4_2(esk2_0,X1)|esk4_2(esk2_0,X1)=X1),inference(spm,[status(thm)],[10,45,theory(equality)])).
cnf(54,negated_conjecture,(esk4_2(esk2_0,X2)=X2|esk1_0!=X2),inference(ef,[status(thm)],[47,theory(equality)])).
cnf(78,negated_conjecture,(esk4_2(esk2_0,esk1_0)=esk1_0),inference(er,[status(thm)],[54,theory(equality)])).
cnf(80,negated_conjecture,(~big_f(esk1_0,esk2_0)),inference(spm,[status(thm)],[44,78,theory(equality)])).
cnf(84,negated_conjecture,(\$false),inference(rw,[status(thm)],[80,28,theory(equality)])).
cnf(85,negated_conjecture,(\$false),inference(cn,[status(thm)],[84,theory(equality)])).
cnf(86,negated_conjecture,(\$false),85,['proof']).
# SZS output end CNFRefutation
# SZS status Theorem
```

## Geo 2010C

Hans de Nivelle
Uniwersytetu Wroclawskiego, Poland

Transformation
Geo always starts with a transformation to geometric formulas. (GNF-transformation) The intermediate results are shown, but it is not really documented which steps were made in the transformation.

Proofs
Proofs contain the following rules:

• Pick(X) : Make X the selected formula.
• Disj(X) : Standard binary resolution between the selected formula and X.
• Exist(X) : Existential resolution between the selected formula and X.
• eq(X) : Equality simplification of the selected formula by X. This effectively means that the formula is instantiated by merging two variables.
Rules are either deleted or active. Deleted means that they are either subsumed or simplified away. Rules are either sound or unsound. Unsound rules are inductive consequences of the initial formulas. They can be used only in simplifications. (I will probably rename this into 'inductive' before CASC)

Models
Models are represented by listing the atoms that are true in them. The elements in the model have form E0, E1, E2, E3, E4, etc.

There are the following types of atoms in models:

• Atoms originating from the input problem.
• Atoms orginating from anti-Skolemization of functions symbols in the input problem. Such atoms normally have form P_f, where f was the function symbol, unless this name was occupied. Then it will be P_f_n, where n is the first integer for which the name P_f_n was not occupied. An n-ary function is represented by an (n+1)-ary predicate.
• Atoms resulting from subformula replacement. These have form ppppI where I is an integer. Which subformula they represent has to be read of from the GNF-transformation, the step called CUDEN.
• Atoms of form # Ei. Their only purpose is to introduce a new domain element Ei.

### Sample solution for SYN075+1

```--------------------------------------
0:
(nrappl = 1/0, lastappl = 7/0)    (deleted,sound)
-> # V0 /\ pppp3(V0)
--------------------------------------
1:
(nrappl = 1/0, lastappl = 7/0)    (deleted,sound)
pppp3(V0) -> # V1 /\ pppp2(V0,V1)
--------------------------------------
2:
(nrappl = 1/0, lastappl = 6/0)    (deleted,sound)
pppp2(V0,V1) /\ pppp0(V2,V3,V0,V1) -> big_f(V2,V3)
--------------------------------------
3:
(nrappl = 2/0, lastappl = 4/0)    (deleted,sound)
pppp2(V0,V1) /\ big_f(V2,V3) -> pppp0(V2,V3,V0,V1)
--------------------------------------
4:
(nrappl = 1/1, lastappl = 2/6)    (deleted,sound)
pppp0(V0,V1,V2,V3) /\ V0 != V2 -> FALSE
--------------------------------------
5:
(nrappl = 1/1, lastappl = 4/6)    (deleted,sound)
pppp0(V0,V1,V2,V3) /\ V1 != V3 -> FALSE
--------------------------------------
6:
(nrappl = 1/0, lastappl = 7/0)    (deleted,sound)
# V2 /\ # V3 -> pppp0(V2,V3,V2,V3)
--------------------------------------
7:
(nrappl = 1/0, lastappl = 6/0)    (deleted,sound)
# V0 -> # V1 /\ pppp4(V1,V0)
--------------------------------------
8:
(nrappl = 1/0, lastappl = 3/0)    (deleted,sound)
pppp4(V1,V1) /\ pppp1(V1) -> FALSE
--------------------------------------
9:
(nrappl = 1/0, lastappl = 6/0)    (deleted,sound)
pppp4(V0,V1) /\ V0 != V1 -> pppp1(V0)
--------------------------------------
10:
(nrappl = 1/0, lastappl = 6/0)    (deleted,sound)
pppp1(V0) -> # V1 /\ pppp5(V0,V1)
--------------------------------------
11:
(nrappl = 1/0, lastappl = 3/0)    (deleted,sound)
# V0 /\ # V1 -> pppp1(V0) \/ pppp7(V0,V1)
--------------------------------------
12:
(nrappl = 1/0, lastappl = 2/0)    (deleted,sound)
pppp7(V0,V1) -> # V2 /\ pppp6(V2,V0,V1)
--------------------------------------
13:
(nrappl = 2/0, lastappl = 2/0)    (deleted,sound)
pppp6(V2,V1,V2) /\ big_f(V2,V1) -> FALSE
--------------------------------------
14:
(nrappl = 1/0, lastappl = 2/0)    (deleted,sound)
pppp6(V0,V1,V2) /\ V0 != V2 -> big_f(V0,V1)
--------------------------------------
15:
(nrappl = 2/0, lastappl = 5/0)    (deleted,sound)
pppp5(V0,V1) -> big_f(V1,V0)
--------------------------------------
17: Pick(3),Disj(4)
(nrappl = 2/3, lastappl = 5/6)    (deleted,sound)
pppp2(V0,V1) /\ big_f(V2,V3) /\ V2 != V0 -> FALSE
--------------------------------------
18: Pick(14),Disj(17)
(nrappl = 1/0, lastappl = 2/0)    (deleted,sound)
pppp2(V3,V4) /\ pppp6(V0,V1,V2) /\ V0 != V2 /\ V0 != V3 -> FALSE
--------------------------------------
19: Pick(12),Exist(18),Disj(13),Disj(13)
(nrappl = 2/0, lastappl = 4/0)    (deleted,sound)
pppp2(V1,V2) /\ pppp7(V0,V1) /\ big_f(V1,V0) -> FALSE
--------------------------------------
20: Pick(11),Disj(8),Disj(19)
(nrappl = 1/0, lastappl = 4/0)    (deleted,sound)
pppp4(V0,V0) /\ big_f(V1,V0) /\ pppp2(V1,V2) -> FALSE
--------------------------------------
21: Pick(3),Disj(5),eq(17)
(nrappl = 1/2, lastappl = 4/4)    (deleted,sound)
pppp2(V0,V1) /\ big_f(V0,V3) /\ V3 != V1 -> FALSE
--------------------------------------
23: Pick(20),eq(21)
(nrappl = 2/0, lastappl = 6/0)    (deleted,sound)
pppp4(V2,V2) /\ big_f(V1,V2) /\ pppp2(V1,V2) -> FALSE
--------------------------------------
24: Pick(15),Disj(21)
(nrappl = 1/0, lastappl = 6/0)    (deleted,sound)
pppp5(V0,V1) /\ pppp2(V1,V2) /\ V0 != V2 -> FALSE
--------------------------------------
25: Pick(15),Disj(17)
(nrappl = 1/0, lastappl = 6/0)    (deleted,sound)
pppp5(V0,V1) /\ pppp2(V2,V3) /\ V1 != V2 -> FALSE
--------------------------------------
26: Pick(10),Exist(25),Disj(24)
(nrappl = 1/0, lastappl = 6/0)    (deleted,sound)
pppp1(V0) /\ pppp2(V1,V3) /\ V0 != V3 -> FALSE
--------------------------------------
27: Pick(9),Disj(26)
(nrappl = 1/0, lastappl = 6/0)    (deleted,sound)
pppp2(V2,V3) /\ pppp4(V0,V1) /\ V0 != V1 /\ V0 != V3 -> FALSE
--------------------------------------
28: Pick(7),Exist(27),Disj(23),Disj(23),eq(17),eq(17)
(nrappl = 1/0, lastappl = 6/0)    (deleted,sound)
pppp2(V1,V0) /\ big_f(V1,V0) -> FALSE
--------------------------------------
29: Pick(2),Disj(28),eq(4),eq(5)
(nrappl = 1/0, lastappl = 7/0)    (deleted,sound)
pppp2(V0,V1) /\ pppp0(V0,V1,V0,V1) -> FALSE
--------------------------------------
30: Pick(6),Disj(29)
(nrappl = 1/0, lastappl = 7/0)    (deleted,sound)
pppp2(V0,V1) -> FALSE
--------------------------------------
31: Pick(1),Exist(30)
(nrappl = 1/0, lastappl = 7/0)    (deleted,sound)
pppp3(V0) -> FALSE
--------------------------------------
32: Pick(0),Exist(31)
(nrappl = 0/0, lastappl = 0/0)    (active,sound)
-> FALSE
```

### Sample solution for MGT019+2

```0 : 17() (0/1)    [ 0; L0, W1 ]      # E0
1 : 17() (0/1)    [ 0; L0, W1 ]      P_first_movers(E0)
2 : 18() (0/2)    [ 0; L0, W1 ]      P_efficient_producers(E0)
3 : 0(1,2) (0/2)    [ 0; L1, W3 ]      pppp1(E0,E0,E0)
4 : 10(1,2) (0/2)    [ 0; L1, W3 ]      pppp4(E0,E0,E0)
5 : 12(4) (0/1)    [ 0; L2, W4 ]      stable(E0)
6 : 13(4) (0/1)    [ 0; L2, W4 ]      environment(E0)
7 : 19(0,0) (0/2)    [ 0; L1, W3 ]      P_disbanding_rate(E0,E0,E0)
8 : 20(0,0) (0/2)    [ 0; L1, W3 ]      P_founding_rate(E0,E0,E0)
9 : 21(0,0) (0/2)    [ 0; L1, W3 ]      P_growth_rate(E0,E0,E0)
10 : 1(3,7,7) (0/2)    [ 0; L2, W10 ]      pppp0(E0,E0,E0,E0)
11 : 3(10) (0/1)    [ 0; L3, W11 ]      subpopulations(E0,E0,E0,E0)
12 : 7(1,2,6,5) (0/2)    [ 0; L3, W11 ]      pppp2(E0,E0,E0,E0)
13 : 9(12) (0/1)    [ 0; L4, W12 ]      in_environment(E0,E0)
14 : 11(4,13) (0/2)    [ 0; L5, W16 ]      pppp3(E0,E0,E0,E0,E0)
15 : 15(14,9,9) (0/1)    [ 0; L6, W23 ]      greater_or_equal(E0,E0)
```

## iProver 0.8

Konstantin Korovin
University of Manchester, United Kingdom

iProver outputs a model if the model is found by instantiation. The model is represented as predicate definitions in the term algebra. (it is an effective representation and useful in applications).

### Sample solution for MGT019+2

```% SZS output start Model

%------ Positive definition of =
fof(lit_def,axiom,
(! [X0,X1] :
( iProver_=(X0,X1) <=>
(
(
( X0!=sK1 )
&
( X0!=first_movers )
&
( X0!=sK3 )
&
( X0!=sK4 )
&
! [X2] : ( X0!=founding_rate(X0,X2) )
&
( X0!=sK0(sK1) )
&
( X0!=sK2(sK0(sK1)) )
&
( X0!=founding_rate(efficient_producers,sK2(sK0(sK1))) )
&
( X0!=founding_rate(first_movers,sK2(sK0(sK1))) )
&
( X0!=founding_rate(X0,X1) )
&
( X0!=founding_rate(X0,sK2(sK0(sK1))) )
&
( X1!=sK1 )
&
( X1!=first_movers )
&
( X1!=sK3 )
&
( X1!=sK4 )
&
( X1!=sK0(sK1) )
&
( X1!=sK2(sK0(sK1)) )
&
! [X2] : ( X1!=founding_rate(X1,X2) )
&
( X1!=founding_rate(efficient_producers,sK2(sK0(sK1))) )
&
( X1!=founding_rate(first_movers,sK2(sK0(sK1))) )
&
( X1!=founding_rate(X1,sK2(sK0(sK1))) )
)

|
(
( X0=sK1 & X1=sK1 )
)

|
(
( X0=first_movers & X1=first_movers )
)

|
(
( X0=sK3 & X1=sK3 )
)

|
(
( X0=sK4 & X1=sK4 )
)

|
(
( X0=sK0(sK1) & X1=sK0(sK1) )
)

|
(
( X0=sK2(sK0(sK1)) & X1=sK2(sK0(sK1)) )
)

|
? [X2,X3] :
(
( X0=sK0(X2) & X1=sK0(X3) )
&
( X2!=sK1 )
&
( X3!=sK1 )
)

|
? [X2,X3] :
(
( X0=sK2(X2) & X1=sK2(X3) )
&
( X2!=sK0(sK1) )
&
( X3!=sK0(sK1) )
)

|
? [X2,X3] :
(
( X0=founding_rate(X2,X3) & X1=founding_rate(X2,X3) )
)

|
? [X2,X3,X4,X5] :
(
( X0=founding_rate(X2,X3) & X1=founding_rate(X4,X5) )
&
( X2!=first_movers | X3!=sK2(sK0(sK1)) )
&
( X2!=efficient_producers | X3!=sK2(sK0(sK1)) )
&
( X3!=sK2(sK0(sK1)) )
&
( X4!=first_movers | X5!=sK2(sK0(sK1)) )
&
( X4!=efficient_producers | X5!=sK2(sK0(sK1)) )
&
( X5!=sK2(sK0(sK1)) )
)

|
? [X2,X3,X4,X5] :
(
( X0=disbanding_rate(X2,X3) & X1=disbanding_rate(X4,X5) )
)

|
? [X2,X3,X4,X5] :
(
( X0=growth_rate(X2,X3) & X1=growth_rate(X4,X5) )
)

|
(
( X0=founding_rate(efficient_producers,sK2(sK0(sK1))) & X1=founding_rate(efficient_producers,sK2(sK0(sK1))) )
)

|
? [X2] :
(
( X0=founding_rate(efficient_producers,sK2(sK0(sK1))) & X1=founding_rate(X2,sK2(sK0(sK1))) )
)

|
(
( X0=founding_rate(first_movers,sK2(sK0(sK1))) & X1=founding_rate(first_movers,sK2(sK0(sK1))) )
)

|
? [X2] :
(
( X0=founding_rate(X2,sK2(sK0(sK1))) & X1=founding_rate(efficient_producers,sK2(sK0(sK1))) )
)

|
? [X2] :
(
( X0=founding_rate(X2,sK2(sK0(sK1))) & X1=founding_rate(X2,sK2(sK0(sK1))) )
)

|
? [X2,X3] :
(
( X0=founding_rate(X2,sK2(sK0(sK1))) & X1=founding_rate(X3,sK2(sK0(sK1))) )
&
( X2!=first_movers )
&
( X3!=first_movers )
)

|
(
( X1=X0 )
&
( X0!=sK1 )
&
( X0!=first_movers )
&
( X0!=sK3 )
&
( X0!=sK4 )
&
! [X2] : ( X0!=founding_rate(X0,X2) )
&
( X0!=sK0(sK1) )
&
( X0!=sK2(sK0(sK1)) )
&
( X0!=founding_rate(efficient_producers,sK2(sK0(sK1))) )
&
( X0!=founding_rate(first_movers,sK2(sK0(sK1))) )
&
( X0!=founding_rate(X0,sK2(sK0(sK1))) )
)

)
)
)
).

%------ Positive definition of stable
fof(lit_def,axiom,
(! [X0] :
( stable(X0) <=>
(
(
( X0=sK1 )
)

)
)
)
).

%------ Positive definition of environment
fof(lit_def,axiom,
(! [X0] :
( environment(X0) <=>
(
(
( X0=sK1 )
)

|
(
( X0=sK3 )
)

)
)
)
).

%------ Positive definition of in_environment
fof(lit_def,axiom,
(! [X0,X1] :
( in_environment(X0,X1) <=>
(
(
( X0=sK1 & X1=sK0(sK1) )
)

)
)
)
).

%------ Positive definition of subpopulations
fof(lit_def,axiom,
(! [X0,X1,X2,X3] :
( subpopulations(X0,X1,X2,X3) <=>
(
(
( X0=first_movers & X1=efficient_producers & X2=sK1 & X3=sK2(sK0(sK1)) )
)

|
(
( X0=first_movers & X1=efficient_producers & X2=sK3 & X3=sK4 )
)

|
(
( X0=first_movers & X2=sK1 & X3=sK2(sK0(sK1)) )
)

|
(
( X0=first_movers & X2=sK3 & X3=sK4 )
)

)
)
)
).

%------ Positive definition of greater_or_equal
fof(lit_def,axiom,
(! [X0,X1] :
( greater_or_equal(X0,X1) <=>
(
(
( X0=sK2(sK0(sK1)) & X1=sK0(sK1) )
)

|
(
( X0=founding_rate(efficient_producers,sK2(sK0(sK1))) & X1=founding_rate(first_movers,sK2(sK0(sK1))) )
)

|
? [X2] :
(
( X0=founding_rate(X2,sK2(sK0(sK1))) & X1=founding_rate(first_movers,sK2(sK0(sK1))) )
&
( X2!=first_movers )
)

)
)
)
).

%------ Positive definition of greater
fof(lit_def,axiom,
(! [X0,X1] :
( greater(X0,X1) <=>
(
(
( X0=sK2(sK0(sK1)) & X1=sK0(sK1) )
)

|
(
( X0=founding_rate(efficient_producers,sK2(sK0(sK1))) & X1=founding_rate(first_movers,sK2(sK0(sK1))) )
)

|
? [X2] :
(
( X0=founding_rate(X2,sK2(sK0(sK1))) & X1=founding_rate(first_movers,sK2(sK0(sK1))) )
)

)
)
)
).

% SZS output end Model
```

### Sample solution for SWV010+1

```No model output
```

## leanCoP 2.2

Jens Otten
University of Potsdam, Germany

### Sample solution for SYN075+1

```SYN075+1.p is a Theorem
Start of proof for SYN075+1.p
------------------------------------------------------
Proof for the following clauses:
(1)  [-8^[_G4118, _G3065], big_f(6^[_G4118, _G3065], 3^[_G3065])]
(2)  [-8^[_G4118, _G3065], - (6^[_G4118, _G3065]=_G4118)]
(3)  [-7^[_G4118, _G3065], 6^[_G4118, _G3065]=_G4118]
(4)  [-7^[_G4118, _G3065], -big_f(6^[_G4118, _G3065], 3^[_G3065])]
(5)  [-9^[_G3065], 7^[_G4118, _G3065], 8^[_G4118, _G3065]]
(6)  [-9^[_G3065], - (3^[_G3065]=_G3065)]
(7)  [-5^[_G3065], -big_f(_G4200, 3^[_G3065]), _G4200=4^[_G3065]]
(8)  [-5^[_G3065], big_f(_G4200, 3^[_G3065]), - (_G4200=4^[_G3065])]
(9)  [-5^[_G3065], 3^[_G3065]=_G3065]
(10)  [9^[_G3065], 5^[_G3065]]
(11)  [big_f(_G3930, _G3935), - (_G3930=1^[])]
(12)  [big_f(_G3930, _G3935), - (_G3935=2^[])]
(13)  [-big_f(_G3930, _G3935), _G3930=1^[], _G3935=2^[]]
(14)  [-big_f(_G2002, _G2143), big_f(_G1933, _G2072), _G1933=_G2002, _G2072=_G2143]
(15)  [- (_G1148=_G1148)]
(16)  [_G1249=_G1296, - (_G1296=_G1249)]
(17)  [- (_G1486=_G1603), _G1486=_G1544, _G1544=_G1603]

Connection Proof:
-----------------
1  [9^[2^[]], 5^[2^[]]]   (10)  substitution:[[_G3065], [2^[]]]
1.1  [-9^[2^[]], 7^[1^[], 2^[]], 8^[1^[], 2^[]]]   (5)  substitution:[[_G3065, _G4118], [2^[], 1^[]]]
1.1.1  [-7^[1^[], 2^[]], 6^[1^[], 2^[]]=1^[]]   (3)  substitution:[[_G4118, _G3065], [1^[], 2^[]]]
1.1.1.1  [- (6^[1^[], 2^[]]=1^[]), big_f(6^[1^[], 2^[]], 3^[2^[]])]   (11)  substitution:[[_G3930, _G3935], [6^[1^[], 2^[]], 3^[2^[]]]]
1.1.1.1.1  [-big_f(6^[1^[], 2^[]], 3^[2^[]]), -7^[1^[], 2^[]]]   (4)  substitution:[[_G4118, _G3065], [1^[], 2^[]]]
1.1.1.1.1.1  [7^[1^[], 2^[]]]   (reduction:1.1)
1.1.2  [-8^[1^[], 2^[]], big_f(6^[1^[], 2^[]], 3^[2^[]])]   (1)  substitution:[[_G4118, _G3065], [1^[], 2^[]]]
1.1.2.1  [-big_f(6^[1^[], 2^[]], 3^[2^[]]), 6^[1^[], 2^[]]=1^[], 3^[2^[]]=2^[]]   (13)  substitution:[[_G3930, _G3935], [6^[1^[], 2^[]], 3^[2^[]]]]
1.1.2.1.1  [- (6^[1^[], 2^[]]=1^[]), -8^[1^[], 2^[]]]   (2)  substitution:[[_G4118, _G3065], [1^[], 2^[]]]
1.1.2.1.1.1  [8^[1^[], 2^[]]]   (reduction:1.1)
1.1.2.1.2  [- (3^[2^[]]=2^[]), -9^[2^[]]]   (6)  substitution:[[_G3065], [2^[]]]
1.1.2.1.2.1  [9^[2^[]]]   (reduction:1)
1.2  [-5^[2^[]], -big_f(4^[2^[]], 3^[2^[]]), 4^[2^[]]=4^[2^[]]]   (7)  substitution:[[_G3065, _G4200], [2^[], 4^[2^[]]]]
1.2.1  [big_f(4^[2^[]], 3^[2^[]]), - (3^[2^[]]=2^[])]   (12)  substitution:[[_G3930, _G3935], [4^[2^[]], 3^[2^[]]]]
1.2.1.1  [3^[2^[]]=2^[], -5^[2^[]]]   (9)  substitution:[[_G3065], [2^[]]]
1.2.1.1.1  [5^[2^[]]]   (reduction:1)
1.2.2  [- (4^[2^[]]=4^[2^[]])]   (15)  substitution:[[_G1148], [4^[2^[]]]]
------------------------------------------------------
End of proof for SYN075+1.p
```

## LEO-II 1.2

Christoph Benzmüller1, Frank Theiss2
1Articulate Software, USA, 2Saarland University, Germany

### Sample solution for SYN075+1

```% SZS output start CNFRefutation
thf(1,axiom,(?[Z:\$i,W:\$i]: (![X:\$i,Y:\$i]: (((big_f@X)@Y) <=> ((X = Z) & (Y = W))))),file('SYN075^1.p',pel52_1)).
thf(2,conjecture,(?[W:\$i]: (![Y:\$i]: ((?[Z:\$i]: (![X:\$i]: (((big_f@X)@Y) <=> (X = Z)))) <=> (Y = W)))),file('SYN075^1.p',pel52)).
thf(3,negated_conjecture,(((?[W:\$i]: (![Y:\$i]: ((?[Z:\$i]: (![X:\$i]: (((big_f@X)@Y) <=> (X = Z)))) <=> (Y = W))))=\$false)),inference(negate_conjecture,[],[2])).
thf(4,plain,(((~ (?[W:\$i]: (![Y:\$i]: ((?[Z:\$i]: (![X:\$i]: (((big_f@X)@Y) <=> (X = Z)))) <=> (Y = W)))))=\$true)),inference(polarity_switch,[status(thm)],[3])).
thf(5,plain,(((![W:\$i]: (((~ ((sK1@W) = W)) | (![Vx0:\$i]: (((~ (((sK3@Vx0)@W) = Vx0)) | (~ ((big_f@((sK3@Vx0)@W))@(sK1@W)))) & ((((sK3@Vx0)@W) = Vx0) | ((big_f@((sK3@Vx0)@W))@(sK1@W)))))) & (((sK1@W) = W) | ((![Vx5:\$i]: ((~ (Vx5 = (sK2@W))) | ((big_f@Vx5)@(sK1@W)))) & (![Vx6:\$i]: ((~ ((big_f@Vx6)@(sK1@W))) | (Vx6 = (sK2@W))))))))=\$true)),inference(standard_extcnf,[status(thm)],[4])).
thf(6,plain,((((![Vx14:\$i,Vx15:\$i]: (((~ (Vx14 = sK4)) | (~ (Vx15 = sK5))) | ((big_f@Vx14)@Vx15))) & ((![Vx10:\$i]: ((![Y:\$i]: (~ ((big_f@Vx10)@Y))) | (Vx10 = sK4))) & (![Vx18:\$i,Vx19:\$i]: ((~ ((big_f@Vx18)@Vx19)) | (Vx19 = sK5)))))=\$true)),inference(standard_extcnf,[status(thm)],[1])).
thf(7,plain,((((![Vx14:\$i,Vx15:\$i]: (((~ (Vx14 = sK4)) | (~ (Vx15 = sK5))) | ((big_f@Vx14)@Vx15))) & ((![Vx10:\$i]: ((![Y:\$i]: (~ ((big_f@Vx10)@Y))) | (Vx10 = sK4))) & (![Vx18:\$i,Vx19:\$i]: ((~ ((big_f@Vx18)@Vx19)) | (Vx19 = sK5)))))=\$true)),inference(copy,[status(thm)],[6])).
thf(8,plain,(((![W:\$i]: (((~ ((sK1@W) = W)) | (![Vx0:\$i]: (((~ (((sK3@Vx0)@W) = Vx0)) | (~ ((big_f@((sK3@Vx0)@W))@(sK1@W)))) & ((((sK3@Vx0)@W) = Vx0) | ((big_f@((sK3@Vx0)@W))@(sK1@W)))))) & (((sK1@W) = W) | ((![Vx5:\$i]: ((~ (Vx5 = (sK2@W))) | ((big_f@Vx5)@(sK1@W)))) & (![Vx6:\$i]: ((~ ((big_f@Vx6)@(sK1@W))) | (Vx6 = (sK2@W))))))))=\$true)),inference(copy,[status(thm)],[5])).
thf(9,plain,(((![SV0:\$i]: (~ ((~ ((~ ((sK1@SV0) = SV0)) | (![SV1:\$i]: (~ ((~ ((~ (((sK3@SV1)@SV0) = SV1)) | (~ ((big_f@((sK3@SV1)@SV0))@(sK1@SV0))))) | (~ ((((sK3@SV1)@SV0) = SV1) | ((big_f@((sK3@SV1)@SV0))@(sK1@SV0))))))))) | (~ (((sK1@SV0) = SV0) | (~ ((~ (![SV1:\$i]: ((~ (SV1 = (sK2@SV0))) | ((big_f@SV1)@(sK1@SV0))))) | (~ (![SV1:\$i]: ((~ ((big_f@SV1)@(sK1@SV0))) | (SV1 = (sK2@SV0))))))))))))=\$true)),inference(unfold_def,[status(thm)],[8])).
thf(10,plain,(((~ ((~ (![SV0:\$i,SV1:\$i]: (((~ (SV0 = sK4)) | (~ (SV1 = sK5))) | ((big_f@SV0)@SV1)))) | (~ (~ ((~ (![SV0:\$i]: ((![SV1:\$i]: (~ ((big_f@SV0)@SV1))) | (SV0 = sK4)))) | (~ (![SV0:\$i,SV1:\$i]: ((~ ((big_f@SV0)@SV1)) | (SV1 = sK5)))))))))=\$true)),inference(unfold_def,[status(thm)],[7])).
thf(11,plain,(![SV1:\$i]: (((~ ((~ ((~ ((sK1@SV1) = SV1)) | (![Vx20:\$i]: (~ ((~ ((~ (((sK3@Vx20)@SV1) = Vx20)) | (~ ((big_f@((sK3@Vx20)@SV1))@(sK1@SV1))))) | (~ ((((sK3@Vx20)@SV1) = Vx20) | ((big_f@((sK3@Vx20)@SV1))@(sK1@SV1))))))))) | (~ (((sK1@SV1) = SV1) | (~ ((~ (![Vx21:\$i]: ((~ (Vx21 = (sK2@SV1))) | ((big_f@Vx21)@(sK1@SV1))))) | (~ (![Vx22:\$i]: ((~ ((big_f@Vx22)@(sK1@SV1))) | (Vx22 = (sK2@SV1)))))))))))=\$true))),inference(extcnf,[status(thm)],[9])).
thf(12,plain,((((~ (![SV0:\$i,SV1:\$i]: (((~ (SV0 = sK4)) | (~ (SV1 = sK5))) | ((big_f@SV0)@SV1)))) | (~ (~ ((~ (![SV0:\$i]: ((![SV1:\$i]: (~ ((big_f@SV0)@SV1))) | (SV0 = sK4)))) | (~ (![SV0:\$i,SV1:\$i]: ((~ ((big_f@SV0)@SV1)) | (SV1 = sK5))))))))=\$false)),inference(extcnf,[status(thm)],[10])).
thf(13,plain,(![SV1:\$i]: ((((~ ((~ ((sK1@SV1) = SV1)) | (![Vx20:\$i]: (~ ((~ ((~ (((sK3@Vx20)@SV1) = Vx20)) | (~ ((big_f@((sK3@Vx20)@SV1))@(sK1@SV1))))) | (~ ((((sK3@Vx20)@SV1) = Vx20) | ((big_f@((sK3@Vx20)@SV1))@(sK1@SV1))))))))) | (~ (((sK1@SV1) = SV1) | (~ ((~ (![Vx21:\$i]: ((~ (Vx21 = (sK2@SV1))) | ((big_f@Vx21)@(sK1@SV1))))) | (~ (![Vx22:\$i]: ((~ ((big_f@Vx22)@(sK1@SV1))) | (Vx22 = (sK2@SV1))))))))))=\$false))),inference(extcnf,[status(thm)],[11])).
thf(14,plain,(((~ (~ ((~ (![SV0:\$i]: ((![SV1:\$i]: (~ ((big_f@SV0)@SV1))) | (SV0 = sK4)))) | (~ (![SV0:\$i,SV1:\$i]: ((~ ((big_f@SV0)@SV1)) | (SV1 = sK5)))))))=\$false)),inference(extcnf,[status(thm)],[12])).
thf(15,plain,(((~ (![SV0:\$i,SV1:\$i]: (((~ (SV0 = sK4)) | (~ (SV1 = sK5))) | ((big_f@SV0)@SV1))))=\$false)),inference(extcnf,[status(thm)],[12])).
thf(16,plain,(![SV1:\$i]: (((~ (((sK1@SV1) = SV1) | (~ ((~ (![Vx21:\$i]: ((~ (Vx21 = (sK2@SV1))) | ((big_f@Vx21)@(sK1@SV1))))) | (~ (![Vx22:\$i]: ((~ ((big_f@Vx22)@(sK1@SV1))) | (Vx22 = (sK2@SV1)))))))))=\$false))),inference(extcnf,[status(thm)],[13])).
thf(17,plain,(![SV1:\$i]: (((~ ((~ ((sK1@SV1) = SV1)) | (![Vx20:\$i]: (~ ((~ ((~ (((sK3@Vx20)@SV1) = Vx20)) | (~ ((big_f@((sK3@Vx20)@SV1))@(sK1@SV1))))) | (~ ((((sK3@Vx20)@SV1) = Vx20) | ((big_f@((sK3@Vx20)@SV1))@(sK1@SV1)))))))))=\$false))),inference(extcnf,[status(thm)],[13])).
thf(18,plain,(((![SV0:\$i,SV1:\$i]: (((~ (SV0 = sK4)) | (~ (SV1 = sK5))) | ((big_f@SV0)@SV1)))=\$true)),inference(extcnf,[status(thm)],[15])).
thf(19,plain,(((~ ((~ (![SV0:\$i]: ((![SV1:\$i]: (~ ((big_f@SV0)@SV1))) | (SV0 = sK4)))) | (~ (![SV0:\$i,SV1:\$i]: ((~ ((big_f@SV0)@SV1)) | (SV1 = sK5))))))=\$true)),inference(extcnf,[status(thm)],[14])).
thf(20,plain,(![SV1:\$i]: ((((~ ((sK1@SV1) = SV1)) | (![Vx20:\$i]: (~ ((~ ((~ (((sK3@Vx20)@SV1) = Vx20)) | (~ ((big_f@((sK3@Vx20)@SV1))@(sK1@SV1))))) | (~ ((((sK3@Vx20)@SV1) = Vx20) | ((big_f@((sK3@Vx20)@SV1))@(sK1@SV1))))))))=\$true))),inference(extcnf,[status(thm)],[17])).
thf(21,plain,(![SV1:\$i]: (((((sK1@SV1) = SV1) | (~ ((~ (![Vx21:\$i]: ((~ (Vx21 = (sK2@SV1))) | ((big_f@Vx21)@(sK1@SV1))))) | (~ (![Vx22:\$i]: ((~ ((big_f@Vx22)@(sK1@SV1))) | (Vx22 = (sK2@SV1))))))))=\$true))),inference(extcnf,[status(thm)],[16])).
thf(22,plain,(![SV2:\$i]: (((![Vx23:\$i]: (((~ (SV2 = sK4)) | (~ (Vx23 = sK5))) | ((big_f@SV2)@Vx23)))=\$true))),inference(extcnf,[status(thm)],[18])).
thf(23,plain,((((~ (![SV0:\$i]: ((![SV1:\$i]: (~ ((big_f@SV0)@SV1))) | (SV0 = sK4)))) | (~ (![SV0:\$i,SV1:\$i]: ((~ ((big_f@SV0)@SV1)) | (SV1 = sK5)))))=\$false)),inference(extcnf,[status(thm)],[19])).
thf(24,plain,(![SV1:\$i]: (((~ ((sK1@SV1) = SV1))=\$true) | ((![Vx20:\$i]: (~ ((~ ((~ (((sK3@Vx20)@SV1) = Vx20)) | (~ ((big_f@((sK3@Vx20)@SV1))@(sK1@SV1))))) | (~ ((((sK3@Vx20)@SV1) = Vx20) | ((big_f@((sK3@Vx20)@SV1))@(sK1@SV1)))))))=\$true))),inference(extcnf,[status(thm)],[20])).
thf(25,plain,(![SV1:\$i]: ((((sK1@SV1) = SV1)=\$true) | ((~ ((~ (![Vx21:\$i]: ((~ (Vx21 = (sK2@SV1))) | ((big_f@Vx21)@(sK1@SV1))))) | (~ (![Vx22:\$i]: ((~ ((big_f@Vx22)@(sK1@SV1))) | (Vx22 = (sK2@SV1)))))))=\$true))),inference(extcnf,[status(thm)],[21])).
thf(26,plain,(![SV3:\$i,SV2:\$i]: (((((~ (SV2 = sK4)) | (~ (SV3 = sK5))) | ((big_f@SV2)@SV3))=\$true))),inference(extcnf,[status(thm)],[22])).
thf(27,plain,(((~ (![SV0:\$i,SV1:\$i]: ((~ ((big_f@SV0)@SV1)) | (SV1 = sK5))))=\$false)),inference(extcnf,[status(thm)],[23])).
thf(28,plain,(((~ (![SV0:\$i]: ((![SV1:\$i]: (~ ((big_f@SV0)@SV1))) | (SV0 = sK4))))=\$false)),inference(extcnf,[status(thm)],[23])).
thf(29,plain,(![SV1:\$i,SV4:\$i]: (((~ ((~ ((~ (((sK3@SV4)@SV1) = SV4)) | (~ ((big_f@((sK3@SV4)@SV1))@(sK1@SV1))))) | (~ ((((sK3@SV4)@SV1) = SV4) | ((big_f@((sK3@SV4)@SV1))@(sK1@SV1))))))=\$true) | ((~ ((sK1@SV1) = SV1))=\$true))),inference(extcnf,[status(thm)],[24])).
thf(30,plain,(![SV1:\$i]: ((((~ (![Vx21:\$i]: ((~ (Vx21 = (sK2@SV1))) | ((big_f@Vx21)@(sK1@SV1))))) | (~ (![Vx22:\$i]: ((~ ((big_f@Vx22)@(sK1@SV1))) | (Vx22 = (sK2@SV1))))))=\$false) | (((sK1@SV1) = SV1)=\$true))),inference(extcnf,[status(thm)],[25])).
thf(31,plain,(![SV3:\$i,SV2:\$i]: ((((~ (SV2 = sK4)) | (~ (SV3 = sK5)))=\$true) | (((big_f@SV2)@SV3)=\$true))),inference(extcnf,[status(thm)],[26])).
thf(32,plain,(((![SV0:\$i]: ((![SV1:\$i]: (~ ((big_f@SV0)@SV1))) | (SV0 = sK4)))=\$true)),inference(extcnf,[status(thm)],[28])).
thf(33,plain,(((![SV0:\$i,SV1:\$i]: ((~ ((big_f@SV0)@SV1)) | (SV1 = sK5)))=\$true)),inference(extcnf,[status(thm)],[27])).
thf(34,plain,(![SV4:\$i,SV1:\$i]: ((((sK1@SV1) = SV1)=\$false) | ((~ ((~ ((~ (((sK3@SV4)@SV1) = SV4)) | (~ ((big_f@((sK3@SV4)@SV1))@(sK1@SV1))))) | (~ ((((sK3@SV4)@SV1) = SV4) | ((big_f@((sK3@SV4)@SV1))@(sK1@SV1))))))=\$true))),inference(extcnf,[status(thm)],[29])).
thf(36,plain,(![SV1:\$i]: (((~ (![Vx21:\$i]: ((~ (Vx21 = (sK2@SV1))) | ((big_f@Vx21)@(sK1@SV1)))))=\$false) | (((sK1@SV1) = SV1)=\$true))),inference(extcnf,[status(thm)],[30])).
thf(37,plain,(![SV3:\$i,SV2:\$i]: (((~ (SV2 = sK4))=\$true) | ((~ (SV3 = sK5))=\$true) | (((big_f@SV2)@SV3)=\$true))),inference(extcnf,[status(thm)],[31])).
thf(38,plain,(![SV5:\$i]: ((((![Vx24:\$i]: (~ ((big_f@SV5)@Vx24))) | (SV5 = sK4))=\$true))),inference(extcnf,[status(thm)],[32])).
thf(39,plain,(![SV6:\$i]: (((![Vx25:\$i]: ((~ ((big_f@SV6)@Vx25)) | (Vx25 = sK5)))=\$true))),inference(extcnf,[status(thm)],[33])).
thf(40,plain,(![SV1:\$i,SV4:\$i]: ((((~ ((~ (((sK3@SV4)@SV1) = SV4)) | (~ ((big_f@((sK3@SV4)@SV1))@(sK1@SV1))))) | (~ ((((sK3@SV4)@SV1) = SV4) | ((big_f@((sK3@SV4)@SV1))@(sK1@SV1)))))=\$false) | (((sK1@SV1) = SV1)=\$false))),inference(extcnf,[status(thm)],[34])).
thf(41,plain,(![SV1:\$i]: (((![Vx21:\$i]: ((~ (Vx21 = (sK2@SV1))) | ((big_f@Vx21)@(sK1@SV1))))=\$true) | (((sK1@SV1) = SV1)=\$true))),inference(extcnf,[status(thm)],[36])).
thf(43,plain,(![SV3:\$i,SV2:\$i]: (((SV2 = sK4)=\$false) | ((~ (SV3 = sK5))=\$true) | (((big_f@SV2)@SV3)=\$true))),inference(extcnf,[status(thm)],[37])).
thf(44,plain,(![SV5:\$i]: (((![Vx24:\$i]: (~ ((big_f@SV5)@Vx24)))=\$true) | ((SV5 = sK4)=\$true))),inference(extcnf,[status(thm)],[38])).
thf(45,plain,(![SV7:\$i,SV6:\$i]: ((((~ ((big_f@SV6)@SV7)) | (SV7 = sK5))=\$true))),inference(extcnf,[status(thm)],[39])).
thf(46,plain,(![SV1:\$i,SV4:\$i]: (((~ ((((sK3@SV4)@SV1) = SV4) | ((big_f@((sK3@SV4)@SV1))@(sK1@SV1))))=\$false) | (((sK1@SV1) = SV1)=\$false))),inference(extcnf,[status(thm)],[40])).
thf(47,plain,(![SV1:\$i,SV4:\$i]: (((~ ((~ (((sK3@SV4)@SV1) = SV4)) | (~ ((big_f@((sK3@SV4)@SV1))@(sK1@SV1)))))=\$false) | (((sK1@SV1) = SV1)=\$false))),inference(extcnf,[status(thm)],[40])).
thf(48,plain,(![SV1:\$i,SV8:\$i]: ((((~ (SV8 = (sK2@SV1))) | ((big_f@SV8)@(sK1@SV1)))=\$true) | (((sK1@SV1) = SV1)=\$true))),inference(extcnf,[status(thm)],[41])).
thf(50,plain,(![SV2:\$i,SV3:\$i]: (((SV3 = sK5)=\$false) | ((SV2 = sK4)=\$false) | (((big_f@SV2)@SV3)=\$true))),inference(extcnf,[status(thm)],[43])).
thf(51,plain,(![SV10:\$i,SV5:\$i]: (((~ ((big_f@SV5)@SV10))=\$true) | ((SV5 = sK4)=\$true))),inference(extcnf,[status(thm)],[44])).
thf(52,plain,(![SV7:\$i,SV6:\$i]: (((~ ((big_f@SV6)@SV7))=\$true) | ((SV7 = sK5)=\$true))),inference(extcnf,[status(thm)],[45])).
thf(53,plain,(![SV1:\$i,SV4:\$i]: ((((~ (((sK3@SV4)@SV1) = SV4)) | (~ ((big_f@((sK3@SV4)@SV1))@(sK1@SV1))))=\$true) | (((sK1@SV1) = SV1)=\$false))),inference(extcnf,[status(thm)],[47])).
thf(54,plain,(![SV1:\$i,SV4:\$i]: ((((((sK3@SV4)@SV1) = SV4) | ((big_f@((sK3@SV4)@SV1))@(sK1@SV1)))=\$true) | (((sK1@SV1) = SV1)=\$false))),inference(extcnf,[status(thm)],[46])).
thf(55,plain,(![SV1:\$i,SV8:\$i]: (((~ (SV8 = (sK2@SV1)))=\$true) | (((big_f@SV8)@(sK1@SV1))=\$true) | (((sK1@SV1) = SV1)=\$true))),inference(extcnf,[status(thm)],[48])).
thf(57,plain,(![SV10:\$i,SV5:\$i]: ((((big_f@SV5)@SV10)=\$false) | ((SV5 = sK4)=\$true))),inference(extcnf,[status(thm)],[51])).
thf(58,plain,(![SV7:\$i,SV6:\$i]: ((((big_f@SV6)@SV7)=\$false) | ((SV7 = sK5)=\$true))),inference(extcnf,[status(thm)],[52])).
thf(59,plain,(![SV1:\$i,SV4:\$i]: (((~ (((sK3@SV4)@SV1) = SV4))=\$true) | ((~ ((big_f@((sK3@SV4)@SV1))@(sK1@SV1)))=\$true) | (((sK1@SV1) = SV1)=\$false))),inference(extcnf,[status(thm)],[53])).
thf(60,plain,(![SV1:\$i,SV4:\$i]: (((((sK3@SV4)@SV1) = SV4)=\$true) | (((big_f@((sK3@SV4)@SV1))@(sK1@SV1))=\$true) | (((sK1@SV1) = SV1)=\$false))),inference(extcnf,[status(thm)],[54])).
thf(61,plain,(![SV1:\$i,SV8:\$i]: (((SV8 = (sK2@SV1))=\$false) | (((sK1@SV1) = SV1)=\$true) | (((big_f@SV8)@(sK1@SV1))=\$true))),inference(extcnf,[status(thm)],[55])).
thf(63,plain,(![SV1:\$i,SV4:\$i]: (((((sK3@SV4)@SV1) = SV4)=\$false) | ((~ ((big_f@((sK3@SV4)@SV1))@(sK1@SV1)))=\$true) | (((sK1@SV1) = SV1)=\$false))),inference(extcnf,[status(thm)],[59])).
thf(64,plain,(![SV1:\$i,SV4:\$i]: ((((big_f@((sK3@SV4)@SV1))@(sK1@SV1))=\$false) | (((sK1@SV1) = SV1)=\$false) | ((((sK3@SV4)@SV1) = SV4)=\$false))),inference(extcnf,[status(thm)],[63])).
thf(65,plain,(((\$false)=\$true)),inference(fo_atp_e,[status(thm)],[64,50,61,60,58,57])).
thf(66,plain,(\$false),inference(solved_all_splitted_problems,[status(thm)],[65])).
% SZS output end CNFRefutation
```

## Metis 2.2

Joe Hurd
Galois, Inc., USA

Metis uses the following proof steps ...

```(* ========================================================================= *)
(* A LOGICAL KERNEL FOR FIRST ORDER CLAUSAL THEOREMS                         *)
(* ========================================================================= *)

signature Thm =
sig

(* ------------------------------------------------------------------------- *)
(* An abstract type of first order logic theorems.                           *)
(* ------------------------------------------------------------------------- *)

type thm

(* ------------------------------------------------------------------------- *)
(* Primitive rules of inference.                                             *)
(* ------------------------------------------------------------------------- *)

(* ------------------------------------------------------------------------- *)
(*                                                                           *)
(* ----- axiom C                                                             *)
(*   C                                                                       *)
(* ------------------------------------------------------------------------- *)

val axiom : clause -> thm

(* ------------------------------------------------------------------------- *)
(*                                                                           *)
(* ----------- assume L                                                      *)
(*   L \/ ~L                                                                 *)
(* ------------------------------------------------------------------------- *)

val assume : literal -> thm

(* ------------------------------------------------------------------------- *)
(*    C                                                                      *)
(* -------- subst s                                                          *)
(*   C[s]                                                                    *)
(* ------------------------------------------------------------------------- *)

val subst : subst -> thm -> thm

(* ------------------------------------------------------------------------- *)
(*   L \/ C    ~L \/ D                                                       *)
(* --------------------- resolve L                                           *)
(*        C \/ D                                                             *)
(*                                                                           *)
(* The literal L must occur in the first theorem, and the literal ~L must    *)
(* occur in the second theorem.                                              *)
(* ------------------------------------------------------------------------- *)

val resolve : literal -> thm -> thm -> thm

(* ------------------------------------------------------------------------- *)
(*                                                                           *)
(* --------- refl t                                                          *)
(*   t = t                                                                   *)
(* ------------------------------------------------------------------------- *)

val refl : term -> thm

(* ------------------------------------------------------------------------- *)
(*                                                                           *)
(* ------------------------ equality L p t                                   *)
(*   ~(s = t) \/ ~L \/ L'                                                    *)
(*                                                                           *)
(* where s is the subterm of L at path p, and L' is L with the subterm at    *)
(* path p being replaced by t.                                               *)
(* ------------------------------------------------------------------------- *)

val equality : literal -> path -> term -> thm

end
```

### Sample solution for SYN075+1

```SZS status Theorem for data/problems/all/SYN075+1.tptp

SZS output start CNFRefutation for data/problems/all/SYN075+1.tptp
fof(pel52_1, axiom,
(? [Z, W] : ! [X, Y] : (big_f(X, Y) <=> (X = Z & Y = W)))).

fof(pel52, conjecture,
(? [W] : ! [Y] : (? [Z] : ! [X] : (big_f(X, Y) <=> X = Z) <=> Y = W))).

fof(subgoal_0, plain,
(? [W] : ! [Y] : (? [Z] : ! [X] : (big_f(X, Y) <=> X = Z) <=> Y = W)),
inference(strip, [], [pel52])).

fof(negate_0_0, plain,
(~
? [W] :
! [Y] : (? [Z] : ! [X] : (big_f(X, Y) <=> X = Z) <=> Y = W)),
inference(negate, [], [subgoal_0])).

fof(normalize_0_0, plain,
(! [W] :
? [Y] : (Y != W <=> ? [Z] : ! [X] : (X != Z <=> ~ big_f(X, Y)))),
inference(canonicalize, [], [negate_0_0])).

fof(normalize_0_1, plain,
(! [W] :
? [Y] : (Y != W <=> ? [Z] : ! [X] : (X != Z <=> ~ big_f(X, Y)))),
inference(specialize, [], [normalize_0_0])).

fof(normalize_0_2, plain,
(! [W] :
(skolemFOFtoCNF_Y(W) != W <=>
? [Z] : ! [X] : (X != Z <=> ~ big_f(X, skolemFOFtoCNF_Y(W))))),
inference(skolemize, [], [normalize_0_1])).

fof(normalize_0_3, plain,
(! [W, X, Z] :
((X != skolemFOFtoCNF_Z_1(W) | skolemFOFtoCNF_Y(W) = W |
big_f(X, skolemFOFtoCNF_Y(W))) &
(skolemFOFtoCNF_X(W, Z) != Z | skolemFOFtoCNF_Y(W) != W |
~ big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W))) &
(skolemFOFtoCNF_Y(W) != W | skolemFOFtoCNF_X(W, Z) = Z |
big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W))) &
(~ big_f(X, skolemFOFtoCNF_Y(W)) | X = skolemFOFtoCNF_Z_1(W) |
skolemFOFtoCNF_Y(W) = W))),
inference(clausify, [], [normalize_0_2])).

fof(normalize_0_4, plain,
(! [W, Z] :
(skolemFOFtoCNF_X(W, Z) != Z | skolemFOFtoCNF_Y(W) != W |
~ big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W)))),
inference(conjunct, [], [normalize_0_3])).

fof(normalize_0_5, plain,
(? [W, Z] : ! [X, Y] : (~ big_f(X, Y) <=> (X != Z | Y != W))),
inference(canonicalize, [], [pel52_1])).

fof(normalize_0_6, plain,
(! [X, Y] :
(~ big_f(X, Y) <=>
(X != skolemFOFtoCNF_Z | Y != skolemFOFtoCNF_W))),
inference(skolemize, [], [normalize_0_5])).

fof(normalize_0_7, plain,
(! [X, Y] :
(~ big_f(X, Y) <=>
(X != skolemFOFtoCNF_Z | Y != skolemFOFtoCNF_W))),
inference(specialize, [], [normalize_0_6])).

fof(normalize_0_8, plain,
(! [X, Y] :
((~ big_f(X, Y) | X = skolemFOFtoCNF_Z) &
(~ big_f(X, Y) | Y = skolemFOFtoCNF_W) &
(X != skolemFOFtoCNF_Z | Y != skolemFOFtoCNF_W | big_f(X, Y)))),
inference(clausify, [], [normalize_0_7])).

fof(normalize_0_9, plain,
(! [X, Y] : (~ big_f(X, Y) | X = skolemFOFtoCNF_Z)),
inference(conjunct, [], [normalize_0_8])).

fof(normalize_0_10, plain,
(! [W, Z] :
(skolemFOFtoCNF_Y(W) != W | skolemFOFtoCNF_X(W, Z) = Z |
big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W)))),
inference(conjunct, [], [normalize_0_3])).

fof(normalize_0_11, plain,
(! [X, Y] : (~ big_f(X, Y) | Y = skolemFOFtoCNF_W)),
inference(conjunct, [], [normalize_0_8])).

fof(normalize_0_12, plain,
(! [W, X] :
(X != skolemFOFtoCNF_Z_1(W) | skolemFOFtoCNF_Y(W) = W |
big_f(X, skolemFOFtoCNF_Y(W)))),
inference(conjunct, [], [normalize_0_3])).

fof(normalize_0_13, plain,
(! [X, Y] :
(X != skolemFOFtoCNF_Z | Y != skolemFOFtoCNF_W | big_f(X, Y))),
inference(conjunct, [], [normalize_0_8])).

cnf(refute_0_0, plain,
(skolemFOFtoCNF_X(W, Z) != Z | skolemFOFtoCNF_Y(W) != W |
~ big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W))),
inference(canonicalize, [], [normalize_0_4])).

cnf(refute_0_1, plain,
(skolemFOFtoCNF_X(W, Z) != Z | ~ big_f(Z, skolemFOFtoCNF_Y(W)) |
big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W))),
introduced(tautology,
[equality,
[\$cnf(~ big_f(skolemFOFtoCNF_X(W, Z),
skolemFOFtoCNF_Y(W))), [0], \$fot(Z)]])).

cnf(refute_0_2, plain,
(skolemFOFtoCNF_Y(W) != W | ~ big_f(Z, W) |
big_f(Z, skolemFOFtoCNF_Y(W))),
introduced(tautology,
[equality,
[\$cnf(~ big_f(Z, skolemFOFtoCNF_Y(W))), [1], \$fot(W)]])).

cnf(refute_0_3, plain,
(skolemFOFtoCNF_X(W, Z) != Z | skolemFOFtoCNF_Y(W) != W |
~ big_f(Z, W) | big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W))),
inference(resolve, [\$cnf(big_f(Z, skolemFOFtoCNF_Y(W)))],
[refute_0_2, refute_0_1])).

cnf(refute_0_4, plain,
(skolemFOFtoCNF_X(W, Z) != Z | skolemFOFtoCNF_Y(W) != W |
~ big_f(Z, W)),
inference(resolve,
[\$cnf(big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W)))],
[refute_0_3, refute_0_0])).

cnf(refute_0_5, plain,
(skolemFOFtoCNF_X(skolemFOFtoCNF_W, skolemFOFtoCNF_Z) !=
skolemFOFtoCNF_Z |
skolemFOFtoCNF_Y(skolemFOFtoCNF_W) != skolemFOFtoCNF_W |
~ big_f(skolemFOFtoCNF_Z, skolemFOFtoCNF_W)),
inference(subst, [],
[refute_0_4 :
[bind(W, \$fot(skolemFOFtoCNF_W)),
bind(Z, \$fot(skolemFOFtoCNF_Z))]])).

cnf(refute_0_6, plain, (~ big_f(X, Y) | X = skolemFOFtoCNF_Z),
inference(canonicalize, [], [normalize_0_9])).

cnf(refute_0_7, plain,
(~ big_f(skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_21), skolemFOFtoCNF_W) |
skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_21) = skolemFOFtoCNF_Z),
inference(subst, [],
[refute_0_6 :
[bind(X, \$fot(skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_21))),
bind(Y, \$fot(skolemFOFtoCNF_W))]])).

cnf(refute_0_8, plain,
(skolemFOFtoCNF_Y(W) != W | skolemFOFtoCNF_X(W, Z) = Z |
big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W))),
inference(canonicalize, [], [normalize_0_10])).

cnf(refute_0_9, plain,
(skolemFOFtoCNF_Y(W) != W |
~ big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W)) |
big_f(skolemFOFtoCNF_X(W, Z), W)),
introduced(tautology,
[equality,
[\$cnf(big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W))),
[1], \$fot(W)]])).

cnf(refute_0_10, plain,
(skolemFOFtoCNF_Y(W) != W | skolemFOFtoCNF_X(W, Z) = Z |
big_f(skolemFOFtoCNF_X(W, Z), W)),
inference(resolve,
[\$cnf(big_f(skolemFOFtoCNF_X(W, Z), skolemFOFtoCNF_Y(W)))],
[refute_0_8, refute_0_9])).

cnf(refute_0_11, plain,
(skolemFOFtoCNF_Y(skolemFOFtoCNF_W) != skolemFOFtoCNF_W |
skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_20) = X_20 |
big_f(skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_20), skolemFOFtoCNF_W)),
inference(subst, [],
[refute_0_10 :
[bind(W, \$fot(skolemFOFtoCNF_W)), bind(Z, \$fot(X_20))]])).

cnf(refute_0_12, plain, (~ big_f(X, Y) | Y = skolemFOFtoCNF_W),
inference(canonicalize, [], [normalize_0_11])).

cnf(refute_0_13, plain,
(~ big_f(skolemFOFtoCNF_Z_1(X_4), skolemFOFtoCNF_Y(X_4)) |
skolemFOFtoCNF_Y(X_4) = skolemFOFtoCNF_W),
inference(subst, [],
[refute_0_12 :
[bind(X, \$fot(skolemFOFtoCNF_Z_1(X_4))),
bind(Y, \$fot(skolemFOFtoCNF_Y(X_4)))]])).

cnf(refute_0_14, plain,
(X != skolemFOFtoCNF_Z_1(W) | skolemFOFtoCNF_Y(W) = W |
big_f(X, skolemFOFtoCNF_Y(W))),
inference(canonicalize, [], [normalize_0_12])).

cnf(refute_0_15, plain,
(skolemFOFtoCNF_Z_1(W) != skolemFOFtoCNF_Z_1(W) |
skolemFOFtoCNF_Y(W) = W |
big_f(skolemFOFtoCNF_Z_1(W), skolemFOFtoCNF_Y(W))),
inference(subst, [],
[refute_0_14 : [bind(X, \$fot(skolemFOFtoCNF_Z_1(W)))]])).

cnf(refute_0_16, plain, (skolemFOFtoCNF_Z_1(W) = skolemFOFtoCNF_Z_1(W)),
introduced(tautology, [refl, [\$fot(skolemFOFtoCNF_Z_1(W))]])).

cnf(refute_0_17, plain,
(skolemFOFtoCNF_Y(W) = W |
big_f(skolemFOFtoCNF_Z_1(W), skolemFOFtoCNF_Y(W))),
inference(resolve,
[\$cnf(\$equal(skolemFOFtoCNF_Z_1(W), skolemFOFtoCNF_Z_1(W)))],
[refute_0_16, refute_0_15])).

cnf(refute_0_18, plain,
(skolemFOFtoCNF_Y(X_4) = X_4 |
big_f(skolemFOFtoCNF_Z_1(X_4), skolemFOFtoCNF_Y(X_4))),
inference(subst, [], [refute_0_17 : [bind(W, \$fot(X_4))]])).

cnf(refute_0_19, plain,
(skolemFOFtoCNF_Y(X_4) = X_4 |
skolemFOFtoCNF_Y(X_4) = skolemFOFtoCNF_W),
inference(resolve,
[\$cnf(big_f(skolemFOFtoCNF_Z_1(X_4),
skolemFOFtoCNF_Y(X_4)))],
[refute_0_18, refute_0_13])).

cnf(refute_0_20, plain,
(skolemFOFtoCNF_Y(skolemFOFtoCNF_W) = skolemFOFtoCNF_W),
inference(subst, [],
[refute_0_19 : [bind(X_4, \$fot(skolemFOFtoCNF_W))]])).

cnf(refute_0_21, plain,
(skolemFOFtoCNF_W != skolemFOFtoCNF_W |
skolemFOFtoCNF_Y(skolemFOFtoCNF_W) != skolemFOFtoCNF_W |
skolemFOFtoCNF_Y(skolemFOFtoCNF_W) = skolemFOFtoCNF_W),
introduced(tautology,
[equality,
[\$cnf(\$equal(skolemFOFtoCNF_Y(skolemFOFtoCNF_W),
skolemFOFtoCNF_W)), [0, 0],
\$fot(skolemFOFtoCNF_W)]])).

cnf(refute_0_22, plain,
(skolemFOFtoCNF_W != skolemFOFtoCNF_W |
skolemFOFtoCNF_Y(skolemFOFtoCNF_W) = skolemFOFtoCNF_W),
inference(resolve,
[\$cnf(\$equal(skolemFOFtoCNF_Y(skolemFOFtoCNF_W),
skolemFOFtoCNF_W))], [refute_0_20, refute_0_21])).

cnf(refute_0_23, plain,
(skolemFOFtoCNF_W != skolemFOFtoCNF_W |
skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_20) = X_20 |
big_f(skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_20), skolemFOFtoCNF_W)),
inference(resolve,
[\$cnf(\$equal(skolemFOFtoCNF_Y(skolemFOFtoCNF_W),
skolemFOFtoCNF_W))], [refute_0_22, refute_0_11])).

cnf(refute_0_24, plain, (skolemFOFtoCNF_W = skolemFOFtoCNF_W),
introduced(tautology, [refl, [\$fot(skolemFOFtoCNF_W)]])).

cnf(refute_0_25, plain,
(skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_20) = X_20 |
big_f(skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_20), skolemFOFtoCNF_W)),
inference(resolve, [\$cnf(\$equal(skolemFOFtoCNF_W, skolemFOFtoCNF_W))],
[refute_0_24, refute_0_23])).

cnf(refute_0_26, plain,
(skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_21) = X_21 |
big_f(skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_21), skolemFOFtoCNF_W)),
inference(subst, [], [refute_0_25 : [bind(X_20, \$fot(X_21))]])).

cnf(refute_0_27, plain,
(skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_21) = X_21 |
skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_21) = skolemFOFtoCNF_Z),
inference(resolve,
[\$cnf(big_f(skolemFOFtoCNF_X(skolemFOFtoCNF_W, X_21),
skolemFOFtoCNF_W))], [refute_0_26, refute_0_7])).

cnf(refute_0_28, plain,
(skolemFOFtoCNF_X(skolemFOFtoCNF_W, skolemFOFtoCNF_Z) =
skolemFOFtoCNF_Z),
inference(subst, [],
[refute_0_27 : [bind(X_21, \$fot(skolemFOFtoCNF_Z))]])).

cnf(refute_0_29, plain,
(skolemFOFtoCNF_X(skolemFOFtoCNF_W, skolemFOFtoCNF_Z) !=
skolemFOFtoCNF_Z | skolemFOFtoCNF_Z != skolemFOFtoCNF_Z |
skolemFOFtoCNF_X(skolemFOFtoCNF_W, skolemFOFtoCNF_Z) =
skolemFOFtoCNF_Z),
introduced(tautology,
[equality,
[\$cnf(~ \$equal(skolemFOFtoCNF_X(skolemFOFtoCNF_W,
skolemFOFtoCNF_Z), skolemFOFtoCNF_Z)), [0],
\$fot(skolemFOFtoCNF_Z)]])).

cnf(refute_0_30, plain,
(skolemFOFtoCNF_Z != skolemFOFtoCNF_Z |
skolemFOFtoCNF_X(skolemFOFtoCNF_W, skolemFOFtoCNF_Z) =
skolemFOFtoCNF_Z),
inference(resolve,
[\$cnf(\$equal(skolemFOFtoCNF_X(skolemFOFtoCNF_W,
skolemFOFtoCNF_Z), skolemFOFtoCNF_Z))],
[refute_0_28, refute_0_29])).

cnf(refute_0_31, plain,
(skolemFOFtoCNF_Y(skolemFOFtoCNF_W) != skolemFOFtoCNF_W |
skolemFOFtoCNF_Z != skolemFOFtoCNF_Z |
~ big_f(skolemFOFtoCNF_Z, skolemFOFtoCNF_W)),
inference(resolve,
[\$cnf(\$equal(skolemFOFtoCNF_X(skolemFOFtoCNF_W,
skolemFOFtoCNF_Z), skolemFOFtoCNF_Z))],
[refute_0_30, refute_0_5])).

cnf(refute_0_32, plain, (skolemFOFtoCNF_Z = skolemFOFtoCNF_Z),
introduced(tautology, [refl, [\$fot(skolemFOFtoCNF_Z)]])).

cnf(refute_0_33, plain,
(skolemFOFtoCNF_Y(skolemFOFtoCNF_W) != skolemFOFtoCNF_W |
~ big_f(skolemFOFtoCNF_Z, skolemFOFtoCNF_W)),
inference(resolve, [\$cnf(\$equal(skolemFOFtoCNF_Z, skolemFOFtoCNF_Z))],
[refute_0_32, refute_0_31])).

cnf(refute_0_34, plain,
(skolemFOFtoCNF_W != skolemFOFtoCNF_W |
~ big_f(skolemFOFtoCNF_Z, skolemFOFtoCNF_W)),
inference(resolve,
[\$cnf(\$equal(skolemFOFtoCNF_Y(skolemFOFtoCNF_W),
skolemFOFtoCNF_W))], [refute_0_22, refute_0_33])).

cnf(refute_0_35, plain, (~ big_f(skolemFOFtoCNF_Z, skolemFOFtoCNF_W)),
inference(resolve, [\$cnf(\$equal(skolemFOFtoCNF_W, skolemFOFtoCNF_W))],
[refute_0_24, refute_0_34])).

cnf(refute_0_36, plain,
(X != skolemFOFtoCNF_Z | Y != skolemFOFtoCNF_W | big_f(X, Y)),
inference(canonicalize, [], [normalize_0_13])).

cnf(refute_0_37, plain,
(skolemFOFtoCNF_W != skolemFOFtoCNF_W |
skolemFOFtoCNF_Z != skolemFOFtoCNF_Z |
big_f(skolemFOFtoCNF_Z, skolemFOFtoCNF_W)),
inference(subst, [],
[refute_0_36 :
[bind(X, \$fot(skolemFOFtoCNF_Z)),
bind(Y, \$fot(skolemFOFtoCNF_W))]])).

cnf(refute_0_38, plain,
(skolemFOFtoCNF_Z != skolemFOFtoCNF_Z |
big_f(skolemFOFtoCNF_Z, skolemFOFtoCNF_W)),
inference(resolve, [\$cnf(\$equal(skolemFOFtoCNF_W, skolemFOFtoCNF_W))],
[refute_0_24, refute_0_37])).

cnf(refute_0_39, plain, (big_f(skolemFOFtoCNF_Z, skolemFOFtoCNF_W)),
inference(resolve, [\$cnf(\$equal(skolemFOFtoCNF_Z, skolemFOFtoCNF_Z))],
[refute_0_32, refute_0_38])).

cnf(refute_0_40, plain, (\$false),
inference(resolve, [\$cnf(big_f(skolemFOFtoCNF_Z, skolemFOFtoCNF_W))],
[refute_0_39, refute_0_35])).
SZS output end CNFRefutation for data/problems/all/SYN075+1.tptp
```

### Sample solution for SYN075+1

```SZS status CounterSatisfiable for data/problems/all/MGT019+2.tptp

SZS output start Saturation for data/problems/all/MGT019+2.tptp
|- ~greater (disbanding_rate first_movers skolemFOFtoCNF_T)
(disbanding_rate efficient_producers skolemFOFtoCNF_T)
|- environment skolemFOFtoCNF_E
|- subpopulations first_movers efficient_producers skolemFOFtoCNF_E
skolemFOFtoCNF_T
|- ~greater (disbanding_rate first_movers \$T)
(disbanding_rate efficient_producers \$T) \/
~greater_or_equal (founding_rate efficient_producers \$T)
(founding_rate first_movers \$T) \/
greater (growth_rate efficient_producers \$T)
(growth_rate first_movers \$T)
|- ~greater_or_equal \$X \$Y \/ \$X = \$Y \/ greater \$X \$Y
|- ~environment \$E \/ ~stable \$E \/
in_environment \$E (skolemFOFtoCNF_To \$E)
|- ~environment \$E \/ ~greater_or_equal \$T (skolemFOFtoCNF_To \$E) \/
~stable \$E \/ ~subpopulations first_movers efficient_producers \$E \$T \/
greater_or_equal (founding_rate efficient_producers \$T)
(founding_rate first_movers \$T)
|- environment skolemFOFtoCNF_E_1
|- stable skolemFOFtoCNF_E_1
|- ~greater (growth_rate efficient_producers (skolemFOFtoCNF_T_1 \$To))
(growth_rate first_movers (skolemFOFtoCNF_T_1 \$To)) \/
~in_environment skolemFOFtoCNF_E_1 \$To
|- ~in_environment skolemFOFtoCNF_E_1 \$To \/
greater_or_equal (skolemFOFtoCNF_T_1 \$To) \$To
|- ~in_environment skolemFOFtoCNF_E_1 \$To \/
subpopulations first_movers efficient_producers skolemFOFtoCNF_E_1
(skolemFOFtoCNF_T_1 \$To)
|- in_environment skolemFOFtoCNF_E_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1)
|- subpopulations first_movers efficient_producers skolemFOFtoCNF_E_1
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1))
|- greater_or_equal
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1))
(skolemFOFtoCNF_To skolemFOFtoCNF_E_1)
|- skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1) =
skolemFOFtoCNF_To skolemFOFtoCNF_E_1 \/
greater (skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1))
(skolemFOFtoCNF_To skolemFOFtoCNF_E_1)
|- ~greater_or_equal skolemFOFtoCNF_T
(skolemFOFtoCNF_To skolemFOFtoCNF_E) \/ ~stable skolemFOFtoCNF_E \/
greater_or_equal (founding_rate efficient_producers skolemFOFtoCNF_T)
(founding_rate first_movers skolemFOFtoCNF_T)
|- greater_or_equal
(founding_rate efficient_producers
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1)))
(founding_rate first_movers
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1)))
|- founding_rate efficient_producers
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1)) =
founding_rate first_movers
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1)) \/
greater
(founding_rate efficient_producers
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1)))
(founding_rate first_movers
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1)))
|- ~greater
(disbanding_rate first_movers
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1)))
(disbanding_rate efficient_producers
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1))) \/
greater
(growth_rate efficient_producers
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1)))
(growth_rate first_movers
(skolemFOFtoCNF_T_1 (skolemFOFtoCNF_To skolemFOFtoCNF_E_1)))
SZS output end Saturation for data/problems/all/MGT019+2.tptp
```

Dominique Pastre
University Paris Descartes, France

### Sample solution for SYN075+1

```ZS status Theorem for SYN075+1.p

SZS output start proof for SYN075+1.p

* * * * * * * * * * * * * * * * * * * * * * * *
in the following, N is the number of a (sub)theorem
E is the current step
or the step when a hypothesis or conclusion has been added or modified
hyp(N,H,E) means that H is an hypothesis of (sub)theorem N
concl(N,C,E) means that C is the conclusion of (sub)theorem N
obj_ct(N,C) means that C is a created object or a given constant
newconcl(N,C,E) means that the new conclusion of N is C
(C replaces the precedent conclusion)
a subtheorem N-i or N+i is a subtheorem of the (sub)theorem N
N is proved if all N-i have been proved (&-node)
or if one N+i have been proved (|-node)
the initial theorem is numbered 0

* * * theorem to be proved
?[D]:![B]: (?[C]:![A]: (big_f(A, B)<=>A=C)<=>B=D)

* * * proof :

* * * * * * theoreme 0 * * * * * *
*** newconcl(0, ?[D]:![B]: (?[C]:![A]: (big_f(A, B)<=>A=C)<=>B=D), 1)
*** explanation : initial theorem
------------------------------------------------------- action ini
*** addhyp(0, ?[C, D]:![A, B]: (big_f(A, B)<=>A=C&B=D), 2)
*** explanation : rule addhyp(_, ?[C, D]:![A, B]: (big_f(A, B)<=>A=C&B=D), _)
built from the axiom pel52_1
------------------------------------------------------- rule pel52_1_exist
create object(s) z2 z1
*** addhyp(0, ![A, B]: (big_f(A, B)<=>A=z1&B=z2), 3)
*** because hyp(0, ?[C, D]:![A, B]: (big_f(A, B)<=>A=C&B=D), 2)
*** explanation : treatment of the existential hypothesis
------------------------------------------------------- rule hyp_exi
*** because obj_ct(0, z1), obj_ct(0, z2)
*** explanation : the rule r_hyp__3__2 : if (obj_ct(A, z1), obj_ct(A, z2))then a
ddhyp(A, big_f(z1, z2), _)
is a local rule built from the universal hypothesis ![A, B]: (big_f(A, B)<=>A=z1
&B=z2)
------------------------------------------------------- rule r_hyp__3__2

* * * * * * creation * * * * * * sub-theoreme 0+2 * * * * *
all the hypotheses of (sub)theorem 0 are hypotheses of subtheorem 0+2
*** newconcl(0+2, ![B]: (?[C]:![A]: (big_f(A, B)<=>A=C)<=>B=z2), 20)
*** because concl(0, ?[D]:![B]: (?[C]:![A]: (big_f(A, B)<=>A=C)<=>B=D), 1)
*** explanation : z2 is tried for the existential variable
------------------------------------------------------- action proconclexi
create object(s) z6
*** newconcl(0+2, ?[B]:![A]: (big_f(A, z6)<=>A=B)<=>z6=z2, 21)
*** because concl((0, ![B]: (?[C]:![A]: (big_f(A, B)<=>A=C)<=>B=z2)), 20)
*** explanation : the universal variable(s) of the conclusion is(are) instantiat
ed
------------------------------------------------------- rule !
*** newconcl(0+2, (?[B]:![A]: (big_f(A, z6)<=>A=B)=>z6=z2)& (z6=z2=> ?[B]:![A]:
(big_f(A, z6)<=>A=B)))
*** because concl(0+2, ?[B]:![A]: (big_f(A, z6)<=>A=B)<=>z6=z2, 21)
*** explanation : A<=>B is replaced by (A=>B)&(B=>A)
------------------------------------------------------- rule <=>

* * * * * * creation * * * * * * sub-theoreme 0+2-1 * * * * *
all the hypotheses of (sub)theorem 0+2 are hypotheses of subtheorem 0+2-1
*** newconcl(0+2-1, ?[B]:![A]: (big_f(A, z6)<=>A=B)=>z6=z2, 23)
*** because concl(0+2, (?[B]:![A]: (big_f(A, z6)<=>A=B)=>z6=z2)& (z6=z2=> ?[B]:!
[A]: (big_f(A, z6)<=>A=B)), 22)
*** explanation : to prove a conjunction, prove all the elements of the conjunct
ion
------------------------------------------------------- action proconj
*** addhyp(0+2-1, ?[B]:![A]: (big_f(A, z6)<=>A=B), 24)
*** newconcl(0+2-1, z6=z2, 24)
*** because concl(0+2-1, ?[B]:![A]: (big_f(A, z6)<=>A=B)=>z6=z2, 23)
*** explanation : to prove H=>C, assume H and prove C
------------------------------------------------------- rule =>
create object(s) z7
*** addhyp(0+2-1, ![A]: (big_f(A, z6)<=>A=z7), 25)
*** because hyp(0+2-1, ?[B]:![A]: (big_f(A, z6)<=>A=B), 24)
*** explanation : treatment of the existential hypothesis
------------------------------------------------------- rule hyp_exi
*** because obj_ct(0+2-1, z7)
*** explanation : the rule r_hyp__25__1 : if obj_ct(A, z7)then addhyp(A, big_f(z
7, z6), _)
is a local rule built from the universal hypothesis ![A]: (big_f(A, z6)<=>A=z7)
------------------------------------------------------- rule r_hyp__25__1
*** because hyp(0+2-1, big_f(z7, z6), 26), obj_ct(0+2-1, z7), obj_ct(0+2-1, z6)
*** explanation : the rule r_hyp__3__1 : if (hyp(A, big_f(B, C), _), obj_ct(A, B
), obj_ct(A, C))then addhyp(A, C=z2, _)
is a local rule built from the universal hypothesis ![A, B]: (big_f(A, B)<=>A=z1
&B=z2)
------------------------------------------------------- rule r_hyp__3__1
*** newconcl(0+2-1, z2=z2, 30)
*** because hyp(0+2-1, z2=z6, 27), concl(0+2-1, z6=z2, 24)
*** explanation : z6 is replaced by z2 in the conclusion
------------------------------------------------------- action treatequal_concl
*** newconcl(0+2-1, true, 31)
*** because concl(0+2-1, z2=z2, 30)
*** explanation : trivial conclusion
------------------------------------------------------- rule concl_stop_trivial
*** newconcl(0+2, z6=z2=> ?[B]:![A]: (big_f(A, z6)<=>A=B), 32)
*** because concl(0+2-1, true, 31)
*** explanation : the conclusion ?[B]:![A]: (big_f(A, z6)<=>A=B)=>z6=z2 of (sub)
theorem 0+2 has been proved ( subtheorem/ 0+2-1 )
------------------------------------------------------- action returnpro

* * * * * * creation * * * * * * sub-theoreme 0+2-2 * * * * *
all the hypotheses of (sub)theorem 0+2 are hypotheses of subtheorem 0+2-2
*** newconcl(0+2-2, z6=z2=> ?[B]:![A]: (big_f(A, z6)<=>A=B), 33)
*** explanation : proof of the last element of the conjunction
------------------------------------------------------- action proconj
*** newconcl(0+2-2, ?[B]:![A]: (big_f(A, z6)<=>A=B), 34)
*** because concl(0+2-2, z6=z2=> ?[B]:![A]: (big_f(A, z6)<=>A=B), 33)
*** explanation : to prove H=>C, assume H and prove C
------------------------------------------------------- rule =>
*** newconcl(0+2-2, ?[B]:![A]: (big_f(A, z2)<=>A=B), 35)
*** because hyp(0+2-2, z2=z6, 34), concl(0+2-2, ?[B]:![A]: (big_f(A, z6)<=>A=B),
34)
*** explanation : z6 is replaced by z2 in the conclusion
------------------------------------------------------- action treatequal_concl

* * * * * * creation * * * * * * sub-theoreme 0+2-2+1 * * * * *
all the hypotheses of (sub)theorem 0+2-2 are hypotheses of subtheorem 0+2-2+1
*** newconcl(0+2-2+1, ![A]: (big_f(A, z2)<=>A=z1), 36)
*** because concl(0+2-2, ?[B]:![A]: (big_f(A, z2)<=>A=B), 35)
*** explanation : z1 is tried for the existential variable
------------------------------------------------------- action proconclexi
create object(s) z8
*** newconcl(0+2-2+1, big_f(z8, z2)<=>z8=z1, 37)
*** because concl((0, ![A]: (big_f(A, z2)<=>A=z1)), 36)
*** explanation : the universal variable(s) of the conclusion is(are) instantiat
ed
------------------------------------------------------- rule !
*** newconcl(0+2-2+1, (big_f(z8, z2)=>z8=z1)& (z8=z1=>big_f(z8, z2)))
*** because concl(0+2-2+1, big_f(z8, z2)<=>z8=z1, 37)
*** explanation : A<=>B is replaced by (A=>B)&(B=>A)
------------------------------------------------------- rule <=>

* * * * * * creation * * * * * * sub-theoreme 0+2-2+1-1 * * * * *
all the hypotheses of (sub)theorem 0+2-2+1 are hypotheses of subtheorem 0+2-2+1-
1
*** newconcl(0+2-2+1-1, big_f(z8, z2)=>z8=z1, 39)
*** because concl(0+2-2+1, (big_f(z8, z2)=>z8=z1)& (z8=z1=>big_f(z8, z2)), 38)
*** explanation : to prove a conjunction, prove all the elements of the conjunct
ion
------------------------------------------------------- action proconj
*** newconcl(0+2-2+1-1, z8=z1, 40)
*** because concl(0+2-2+1-1, big_f(z8, z2)=>z8=z1, 39)
*** explanation : to prove H=>C, assume H and prove C
------------------------------------------------------- rule =>
*** because hyp(0+2-2+1-1, big_f(z8, z2), 40), obj_ct(0+2-2+1-1, z8), obj_ct(0+2
-2+1-1, z2)
*** explanation : the rule r_hyp__3__ : if (hyp(A, big_f(B, C), _), obj_ct(A, B)
, obj_ct(A, C))then addhyp(A, B=z1, _)
is a local rule built from the universal hypothesis ![A, B]: (big_f(A, B)<=>A=z1
&B=z2)
------------------------------------------------------- rule r_hyp__3__
*** newconcl(0+2-2+1-1, z1=z1, 42)
*** because hyp(0+2-2+1-1, z1=z8, 41), concl(0+2-2+1-1, z8=z1, 40)
*** explanation : z8 is replaced by z1 in the conclusion
------------------------------------------------------- action treatequal_concl
*** newconcl(0+2-2+1-1, true, 43)
*** because concl(0+2-2+1-1, z1=z1, 42)
*** explanation : trivial conclusion
------------------------------------------------------- rule concl_stop_trivial
*** newconcl(0+2-2+1, z8=z1=>big_f(z8, z2), 44)
*** because concl(0+2-2+1-1, true, 43)
*** explanation : the conclusion big_f(z8, z2)=>z8=z1 of (sub)theorem 0+2-2+1 ha
s been proved ( subtheorem/ 0+2-2+1-1 )
------------------------------------------------------- action returnpro

* * * * * * creation * * * * * * sub-theoreme 0+2-2+1-2 * * * * *
all the hypotheses of (sub)theorem 0+2-2+1 are hypotheses of subtheorem 0+2-2+1-
2
*** newconcl(0+2-2+1-2, z8=z1=>big_f(z8, z2), 45)
*** explanation : proof of the last element of the conjunction
------------------------------------------------------- action proconj
*** newconcl(0+2-2+1-2, big_f(z8, z2), 46)
*** because concl(0+2-2+1-2, z8=z1=>big_f(z8, z2), 45)
*** explanation : to prove H=>C, assume H and prove C
------------------------------------------------------- rule =>
*** newconcl(0+2-2+1-2, big_f(z1, z2), 47)
*** because hyp(0+2-2+1-2, z1=z8, 46), concl(0+2-2+1-2, big_f(z8, z2), 46)
*** explanation : z8 is replaced by z1 in the conclusion
------------------------------------------------------- action treatequal_concl
*** newconcl(0+2-2+1-2, true, 48)
*** because hyp(0+2-2+1-2, big_f(z1, z2), 4), concl(0+2-2+1-2, big_f(z1, z2), 47
)
*** explanation : the conclusion big_f(z1, z2) to be proved is a hypothesis
------------------------------------------------------- rule stop_hyp_concl
*** newconcl(0+2-2+1, true, 49)
*** because concl(0+2-2+1-2, true, 48)
*** explanation : the conclusion z8=z1=>big_f(z8, z2) of (sub)theorem 0+2-2+1 ha
s been proved ( subtheorem/ 0+2-2+1-2 )
------------------------------------------------------- action returnpro
*** newconcl(0+2-2, true, 50)
*** because concl(0+2-2+1, true, 49)
*** explanation : the conclusion of subtheorem 0+2-2 has been proved (subtheorem
0+2-2+1 )
------------------------------------------------------- action returnproexi
*** newconcl(0+2, true, 51)
*** because concl(0+2-2, true, 50)
*** explanation : the conclusion z6=z2=> ?[B]:![A]: (big_f(A, z6)<=>A=B) of (sub
)theorem 0+2 has been proved ( subtheorem/ 0+2-2 )
------------------------------------------------------- action returnpro
*** newconcl(0, true, 52)
*** because concl(0+2, true, 51)
*** explanation : the conclusion of subtheorem 0 has been proved (subtheorem 0+2
)
------------------------------------------------------- action returnproexi
then the initial theorem is proved
* * * * * * * * * * * * * * * * * * * * * * * *

SZS output end proof for SYN075+1.p
```

Koen Claessen
Chalmers University of Technology, Sweden

### Sample solution for MGT019+2

```% domain size is 1
disbanding_rate(!1,!1) = !1
efficient_producers = !1
environment(!1) <=> \$true
first_movers = !1
founding_rate(!1,!1) = !1
greater(!1,!1) <=> \$false
greater_or_equal(!1,!1) <=> \$true
growth_rate(!1,!1) = !1
in_environment(!1,!1) <=> \$true
stable(!1) <=> \$true
subpopulations(!1,!1,!1,!1) <=> \$true
```

### Sample solution for SWV010+1

```% domain size is 1
a_holds(X1)
a_stored(X1)
b_holds(X1)
b_stored(X1)
fresh_to_b(X1)
message(X1)
party_of_protocol(X1)
t_holds(X1)
```

## Vampire 11.0

Kryštof Hoder, Andrei Voronkov
The University of Manchester, United Kingdom

### Notes

A clause in the Vampire 11.0 kernel is in fact a disjunction of a propositional and a non-propositional part. The non-propositional part is, expectably, a disjunction of atoms. The propositional part is a general propositional formula. Input clauses have the propositional part equal to \$false, and non-trivial propositional parts are introduced by clause splitting rule. Consequently, clauses with propositional parts equal to \$true are tautologies.

If there is no propositional part involved, an inference step is output like this:

```    390. n1 != n3 (0:3) [CNF transformation 1]
```
otherwise the step is output as this:
```    124_1. well_founded_relation(\$sk10) | ( 1 ? \$false \$true )  (0:2) [clause naming 124_T]
```
The ID of a clause consists of a non-propositional clause part number (same for clauses sharing the non-propositional part) and a specifier of the concrete clause -- either "_T", "", or "_"+number, depending on whether the propositional part is \$true, \$false or some general formula (such clauses are numbered in order of appearance in the proof).

Non-propositional parts of clauses are being output in the if-then-else normal form. A formula is one of:

```    \$true
\$false
(  ?   )
```
so that holds, that variable numbers in nested formulas are smaller than those of parent formula.

Some perhaps non-obvious inference rules:

• The "clause naming" inference names its premise by a new propositional symbol, so that the named clause can become one of components during a splitting inference:
```    124_1. well_founded_relation(\$sk10) | ( 1 ? \$false \$true )  (0:2) [clause naming 124_T]
124_T. well_founded_relation(\$sk10) | \$true  (0:2) [tautology introduction]
```
• The "merge" inference takes two or more clauses with the same non-propositional part and merges them into one, removing the original two. The resulting clause's propositional part is the conjunction of the propositional parts of the premises.

### Sample solution for SYN075+1

```unspecified_test on Problems/SYN/SYN075+1.p
Refutation found. Thanks to Tanya!
173. \$false (7:0) [subsumption resolution 172,19]
19. big_f(\$sk0,\$sk1) (2:3) [equality resolution 18]
18. \$sk0 != X0 | big_f(X0,\$sk1) (1:6) [equality resolution 13]
13. \$sk1 != X3 | big_f(X2,X3) | \$sk0 != X2 (0:9) [CNF transformation 7]
172. ~big_f(\$sk0,\$sk1) (7:3) [forward demodulation 171,31]
31. \$sk1 = \$sk2(\$sk1) (3:4) [factoring 25]
25. \$sk2(X1) = X1 | \$sk1 = \$sk2(X1) (2:8) [resolution 20,12]
12. ~big_f(X2,X3) | \$sk1 = X3 (0:6) [CNF transformation 7]
20. big_f(\$sk3(X0),\$sk2(X0)) | \$sk2(X0) = X0 (1:9) [equality resolution 15]
15. \$sk3(X0) != X3 | big_f(X3,\$sk2(X0)) | \$sk2(X0) = X0 (0:12) [CNF transformation 10]
171. ~big_f(\$sk0,\$sk2(\$sk1)) (7:4) [forward demodulation 170,124]
124. \$sk0 = \$sk4(\$sk0,\$sk1) (6:5) [factoring 114]
114. \$sk4(X1,\$sk1) = X1 | \$sk0 = \$sk4(X1,\$sk1) (5:10) [resolution 54,11]
11. ~big_f(X2,X3) | \$sk0 = X2 (0:6) [CNF transformation 7]
54. big_f(\$sk4(X0,\$sk1),\$sk1) | \$sk4(X0,\$sk1) = X0 (4:10) [forward demodulation 53,31]
53. \$sk4(X0,\$sk1) = X0 | big_f(\$sk4(X0,\$sk1),\$sk2(\$sk1)) (4:11) [trivial inequality removal 52]
52. \$sk1 != \$sk1 | \$sk4(X0,\$sk1) = X0 | big_f(\$sk4(X0,\$sk1),\$sk2(\$sk1)) (4:14) [superposition 16,31]
16. \$sk2(X0) != X0 | \$sk4(X4,X0) = X4 | big_f(\$sk4(X4,X0),\$sk2(X0)) (0:15) [CNF transformation 10]
170. ~big_f(\$sk4(\$sk0,\$sk1),\$sk2(\$sk1)) (7:6) [trivial inequality removal 169]
169. \$sk1 != \$sk1 | ~big_f(\$sk4(\$sk0,\$sk1),\$sk2(\$sk1)) (7:9) [forward demodulation 168,31]
168. \$sk1 != \$sk2(\$sk1) | ~big_f(\$sk4(\$sk0,\$sk1),\$sk2(\$sk1)) (7:10) [trivial inequality removal 167]
167. \$sk0 != \$sk0 | \$sk1 != \$sk2(\$sk1) | ~big_f(\$sk4(\$sk0,\$sk1),\$sk2(\$sk1)) (7:13) [superposition 17,124]
17. \$sk4(X4,X0) != X4 | \$sk2(X0) != X0 | ~big_f(\$sk4(X4,X0),\$sk2(X0)) (0:15) [CNF transformation 10]
10. ! [X0] : ((! [X3] : ((~big_f(X3,\$sk2(X0)) | \$sk3(X0) = X3) & (\$sk3(X0) != X3 | big_f(X3,\$sk2(X0)))) | \$sk2(X0) = X0) & (! [X4] : ((big_f(\$sk4(X4,X0),\$sk2(X0)) | \$sk4(X4,X0) = X4) & (~big_f(\$sk4(X4,X0),\$sk2(X0)) | \$sk4(X4,X0) != X4)) | \$sk2(X0) != X0)) [skolemisation 9]
9. ! [X0] : ? [X1] : ((? [X2] : ! [X3] : ((~big_f(X3,X1) | X2 = X3) & (X2 != X3 | big_f(X3,X1))) | X0 = X1) & (! [X4] : ? [X5] : ((big_f(X5,X1) | X4 = X5) & (~big_f(X5,X1) | X4 != X5)) | X0 != X1)) [rectify 8]
8. ! [X0] : ? [X1] : ((? [X2] : ! [X3] : ((~big_f(X3,X1) | X2 = X3) & (X2 != X3 | big_f(X3,X1))) | X0 = X1) & (! [X2] : ? [X3] : ((big_f(X3,X1) | X2 = X3) & (~big_f(X3,X1) | X2 != X3)) | X0 != X1)) [nnf transformation 4]
4. ! [X0] : ? [X1] : (? [X2] : ! [X3] : (big_f(X3,X1) <=> X2 = X3) <~> X0 = X1) [ennf transformation 3]
3. ~? [X0] : ! [X1] : (? [X2] : ! [X3] : (big_f(X3,X1) <=> X2 = X3) <=> X0 = X1) [rectify 2]
2. ~? [X1] : ! [X3] : (? [X0] : ! [X2] : (big_f(X2,X3) <=> X0 = X2) <=> X1 = X3) [negated conjecture]
7. ! [X2,X3] : ((~big_f(X2,X3) | (\$sk0 = X2 & \$sk1 = X3)) & (\$sk0 != X2 | \$sk1 != X3 | big_f(X2,X3))) [skolemisation 6]
6. ? [X0,X1] : ! [X2,X3] : ((~big_f(X2,X3) | (X0 = X2 & X1 = X3)) & (X0 != X2 | X1 != X3 | big_f(X2,X3))) [flattening 5]
5. ? [X0,X1] : ! [X2,X3] : ((~big_f(X2,X3) | (X0 = X2 & X1 = X3)) & ((X0 != X2 | X1 != X3) | big_f(X2,X3))) [nnf transformation 1]
1. ? [X0,X1] : ! [X2,X3] : (big_f(X2,X3) <=> X0 = X2 & X1 = X3) [input]
------------------------------
Active clauses: 26
Passive clauses: 40
Generated clauses: 118
Final active clauses: 26
Final passive clauses: 14
Input formulas: 2
Initial clauses: 7

Duplicate literals: 12
Trivial inequalities: 11
Fw subsumption resolutions: 3
Fw demodulations: 22

Equational tautologies: 7
Forward subsumptions: 48
Fw demodulations to eq. taut.: 16

Binary resolution: 53
Factoring: 2
Forward superposition: 22
Backward superposition: 24
Equality factoring: 2
Equality resolution: 5

Unique components: 7

Memory used: 255KB
------------------------------
Time spent on BDDs: 0
```

## Vampire 0.6

Andrei Voronkov, Kryštof Hoder
University of Manchester, United Kingdom

### Sample solution for SYN075+1

```% SZS status Theorem for SYN075+1
% SZS output start Proof for SYN075+1
fof(f509,plain,(
\$false),
inference(subsumption_resolution,[],[f508,f145])).
fof(f145,plain,(
big_f(\$sk3,\$sk4)),
inference(backtracking_split_refutation,[],[f69,f70_D,f124])).
fof(f124,plain,(
\$false | \$spl1),
inference(subsumption_resolution,[],[f123,f110])).
fof(f110,plain,(
( ! [X0] : (~big_f(\$sk3,X0)) ) | \$spl1),
inference(forward_demodulation,[],[f106,f92])).
fof(f92,plain,(
( ! [X0] : (\$sk2(\$sk3,X0) = \$sk3) ) | \$spl1),
inference(factoring,[],[f85])).
fof(f85,plain,(
( ! [X2,X3] : (\$sk2(X2,X3) = X2 | \$sk2(X2,X3) = \$sk3) ) | \$spl1),
inference(resolution,[],[f82,f15])).
fof(f15,plain,(
( ! [X2,X3] : (~big_f(X2,X3) | \$sk3 = X2) )),
inference(cnf_transformation,[],[f10])).
fof(f10,plain,(
! [X2,X3] : ((~big_f(X2,X3) | (\$sk3 = X2 & \$sk4 = X3)) & (\$sk3 != X2 | \$sk4 != X3 | big_f(X2,X3)))),
inference(skolemisation,[status(esa)],[f9])).
fof(f9,plain,(
? [X0,X1] : ! [X2,X3] : ((~big_f(X2,X3) | (X0 = X2 & X1 = X3)) & (X0 != X2 | X1 != X3 | big_f(X2,X3)))),
inference(flattening,[],[f8])).
fof(f8,plain,(
? [X0,X1] : ! [X2,X3] : ((~big_f(X2,X3) | (X0 = X2 & X1 = X3)) & ((X0 != X2 | X1 != X3) | big_f(X2,X3)))),
inference(nnf_transformation,[],[f1])).
fof(f1,axiom,(
? [X0,X1] : ! [X2,X3] : (big_f(X2,X3) <=> (X0 = X2 & X1 = X3))),
file('/tmp/SystemOnTPTP10164/SYN075+1.tptp',pel52_1)).
fof(f82,plain,(
( ! [X4,X0] : (big_f(\$sk2(X4,X0),X0) | \$sk2(X4,X0) = X4) ) | \$spl1),
inference(subsumption_resolution,[],[f73,f70])).
fof(f73,plain,(
( ! [X4,X0] : (big_f(\$sk2(X4,X0),X0) | \$sk0(X0) != X0 | \$sk2(X4,X0) = X4) ) | \$spl1),
inference(backward_demodulation,[],[f70,f13])).
fof(f13,plain,(
( ! [X4,X0] : (\$sk0(X0) != X0 | \$sk2(X4,X0) = X4 | big_f(\$sk2(X4,X0),\$sk0(X0))) )),
inference(cnf_transformation,[],[f7])).
fof(f7,plain,(
! [X0] : ((! [X3] : ((~big_f(X3,\$sk0(X0)) | \$sk1(X0) = X3) & (\$sk1(X0) != X3 | big_f(X3,\$sk0(X0)))) | \$sk0(X0) = X0) & (! [X4] : ((big_f(\$sk2(X4,X0),\$sk0(X0)) | \$sk2(X4,X0) = X4) & (~big_f(\$sk2(X4,X0),\$sk0(X0)) | \$sk2(X4,X0) != X4)) | \$sk0(X0) != X0))),
inference(skolemisation,[status(esa)],[f6])).
fof(f6,plain,(
! [X0] : ? [X1] : ((? [X2] : ! [X3] : ((~big_f(X3,X1) | X2 = X3) & (X2 != X3 | big_f(X3,X1))) | X0 = X1) & (! [X4] : ? [X5] : ((big_f(X5,X1) | X4 = X5) & (~big_f(X5,X1) | X4 != X5)) | X0 != X1))),
inference(rectify,[],[f5])).
fof(f5,plain,(
! [X0] : ? [X1] : ((? [X2] : ! [X3] : ((~big_f(X3,X1) | X2 = X3) & (X2 != X3 | big_f(X3,X1))) | X0 = X1) & (! [X2] : ? [X3] : ((big_f(X3,X1) | X2 = X3) & (~big_f(X3,X1) | X2 != X3)) | X0 != X1))),
inference(nnf_transformation,[],[f4])).
fof(f4,plain,(
! [X0] : ? [X1] : (? [X2] : ! [X3] : (big_f(X3,X1) <=> X2 = X3) <~> X0 = X1)),
inference(ennf_transformation,[],[f3])).
fof(f3,plain,(
~? [X0] : ! [X1] : (? [X2] : ! [X3] : (big_f(X3,X1) <=> X2 = X3) <=> X0 = X1)),
inference(rectify,[],[f2])).
fof(f2,negated_conjecture,(
~? [X1] : ! [X3] : (? [X0] : ! [X2] : (big_f(X2,X3) <=> X0 = X2) <=> X1 = X3)),
file('/tmp/SystemOnTPTP10164/SYN075+1.tptp',pel52)).
fof(f106,plain,(
( ! [X0] : (~big_f(\$sk2(\$sk3,X0),X0)) ) | \$spl1),
inference(resolution,[],[f92,f83])).
fof(f83,plain,(
( ! [X4,X0] : (\$sk2(X4,X0) != X4 | ~big_f(\$sk2(X4,X0),X0)) ) | \$spl1),
inference(subsumption_resolution,[],[f74,f70])).
fof(f74,plain,(
( ! [X4,X0] : (~big_f(\$sk2(X4,X0),X0) | \$sk0(X0) != X0 | \$sk2(X4,X0) != X4) ) | \$spl1),
inference(backward_demodulation,[],[f70,f14])).
fof(f14,plain,(
( ! [X4,X0] : (\$sk2(X4,X0) != X4 | \$sk0(X0) != X0 | ~big_f(\$sk2(X4,X0),\$sk0(X0))) )),
inference(cnf_transformation,[],[f7])).
fof(f123,plain,(
big_f(\$sk3,\$sk4) | \$spl1),
inference(forward_demodulation,[],[f118,f92])).
fof(f118,plain,(
( ! [X2] : (big_f(\$sk2(\$sk3,X2),\$sk4)) ) | \$spl1),
inference(resolution,[],[f116,f92])).
fof(f116,plain,(
( ! [X0] : (\$sk3 != X0 | big_f(X0,\$sk4)) ) | \$spl1),
inference(forward_demodulation,[],[f112,f70])).
fof(f112,plain,(
( ! [X0] : (big_f(X0,\$sk0(\$sk4)) | \$sk3 != X0) ) | \$spl1),
inference(resolution,[],[f17,f70])).
fof(f17,plain,(
( ! [X2,X3] : (\$sk4 != X3 | big_f(X2,X3) | \$sk3 != X2) )),
inference(cnf_transformation,[],[f10])).
fof(f70,plain,(
( ! [X0] : (\$sk0(X0) = X0) ) | \$spl1),
inference(cnf_transformation,[],[f70_D])).
fof(f70_D,plain,(
( ! [X0] : (\$sk0(X0) = X0) ) <=> ~\$spl1),
introduced(backtracking_splitting_component,[])).
fof(f69,plain,(
( ! [X0] : (big_f(\$sk3,\$sk4) | \$sk0(X0) = X0) )),
inference(duplicate_literal_removal,[],[f68])).
fof(f68,plain,(
( ! [X0] : (big_f(\$sk3,\$sk4) | \$sk0(X0) = X0 | \$sk0(X0) = X0) )),
inference(superposition,[],[f34,f21])).
fof(f21,plain,(
( ! [X2] : (\$sk1(X2) = \$sk3 | \$sk0(X2) = X2) )),
inference(resolution,[],[f18,f15])).
fof(f18,plain,(
( ! [X0] : (big_f(\$sk1(X0),\$sk0(X0)) | \$sk0(X0) = X0) )),
inference(equality_resolution,[],[f12])).
fof(f12,plain,(
( ! [X0,X3] : (\$sk1(X0) != X3 | big_f(X3,\$sk0(X0)) | \$sk0(X0) = X0) )),
inference(cnf_transformation,[],[f7])).
fof(f34,plain,(
( ! [X0] : (big_f(\$sk1(X0),\$sk4) | \$sk0(X0) = X0) )),
inference(duplicate_literal_removal,[],[f29])).
fof(f29,plain,(
( ! [X0] : (big_f(\$sk1(X0),\$sk4) | \$sk0(X0) = X0 | \$sk0(X0) = X0) )),
inference(superposition,[],[f18,f20])).
fof(f20,plain,(
( ! [X1] : (\$sk0(X1) = X1 | \$sk0(X1) = \$sk4) )),
inference(resolution,[],[f18,f16])).
fof(f16,plain,(
( ! [X2,X3] : (~big_f(X2,X3) | \$sk4 = X3) )),
inference(cnf_transformation,[],[f10])).
fof(f508,plain,(
~big_f(\$sk3,\$sk4)),
inference(forward_demodulation,[],[f507,f24])).
fof(f24,plain,(
\$sk0(\$sk4) = \$sk4),
inference(factoring,[],[f20])).
fof(f507,plain,(
~big_f(\$sk3,\$sk0(\$sk4))),
inference(forward_demodulation,[],[f506,f293])).
fof(f293,plain,(
\$sk2(\$sk3,\$sk4) = \$sk3),
inference(factoring,[],[f234])).
fof(f234,plain,(
( ! [X1] : (\$sk2(X1,\$sk4) = X1 | \$sk2(X1,\$sk4) = \$sk3) )),
inference(resolution,[],[f64,f15])).
fof(f64,plain,(
( ! [X3] : (big_f(\$sk2(X3,\$sk4),\$sk4) | \$sk2(X3,\$sk4) = X3) )),
inference(forward_demodulation,[],[f57,f24])).
fof(f57,plain,(
( ! [X3] : (\$sk2(X3,\$sk4) = X3 | big_f(\$sk2(X3,\$sk4),\$sk0(\$sk4))) )),
inference(resolution,[],[f13,f24])).
fof(f506,plain,(
~big_f(\$sk2(\$sk3,\$sk4),\$sk0(\$sk4))),
inference(subsumption_resolution,[],[f496,f16])).
fof(f496,plain,(
\$sk0(\$sk4) != \$sk4 | ~big_f(\$sk2(\$sk3,\$sk4),\$sk0(\$sk4))),
inference(resolution,[],[f14,f293])).
% SZS output end Proof for SYN075+1
```

## Zenon 0.6.3

Damien Doligez
INRIA, France

### Sample solution for SYN073+1

```(* PROOF-FOUND *)
(* BEGIN-CONTEXT *)
Require Import zenon.
Parameter zenon_U : Set.
Parameter zenon_E : zenon_U.
Parameter big_f : zenon_U -> zenon_U -> Prop.
Parameter a : zenon_U.
(* END-CONTEXT *)
(* BEGIN-PROOF *)
Theorem pel50 : ((forall X : zenon_U, ((big_f (a) X)\/(forall Y : zenon_U, (big_f X Y))))->(exists X1 : zenon_U, (forall Y1 : zenon_U, (big_f X1 Y1)))).
Proof.
apply NNPP. intro zenon_G.
apply (zenon_notimply_s _ _ zenon_G). zenon_intro zenon_H2. zenon_intro zenon_H1.
apply zenon_H1. exists (a). apply NNPP. zenon_intro zenon_H3.
apply (zenon_notallex_s (fun Y1 : zenon_U => (big_f (a) Y1)) zenon_H3); [ zenon_intro zenon_H4; idtac ].
elim zenon_H4. zenon_intro zenon_TY1_f. zenon_intro zenon_H6.
generalize (zenon_H2 zenon_TY1_f). zenon_intro zenon_H7.
apply (zenon_or_s _ _ zenon_H7); [ zenon_intro zenon_H9 | zenon_intro zenon_H8 ].
exact (zenon_H6 zenon_H9).
apply zenon_H1. exists zenon_TY1_f. apply NNPP. zenon_intro zenon_Ha.
exact (zenon_Ha zenon_H8).
Qed.
(* END-PROOF *)
```