NO

Problem 1: 

Infeasibility Problem:
[(VAR vNonEmpty x n h t m pid st1 in2 st2 in3 st3 vNonEmpty x6 x1 x4)
(STRATEGY CONTEXTSENSITIVE
(app 1 2)
(empty 1)
(fstsplit 1 2)
(head 1)
(length 1)
(leq 1 2)
(mapf 1 2)
(ring 1 2 3 4 5 6)
(sndsplit 1 2)
(tail 1)
(0)
(cons 1 2)
(f 1 2)
(fSNonEmpty)
(false)
(nil)
(s 1)
(three)
(true)
(two)
)
(RULES
app(cons(h,t),x) -> cons(h,app(t,x))
app(nil,x) -> x
empty(cons(h,t)) -> false
empty(nil) -> true
fstsplit(0,x) -> nil
fstsplit(s(n),cons(h,t)) -> cons(h,fstsplit(n,t))
fstsplit(s(n),nil) -> nil
head(cons(h,t)) -> h
length(cons(h,t)) -> s(length(t))
length(nil) -> 0
leq(0,m) -> true
leq(s(n),0) -> false
leq(s(n),s(m)) -> leq(n,m)
mapf(pid,cons(h,t)) -> app(f(pid,h),mapf(pid,t))
mapf(pid,nil) -> nil
ring(st1,in2,st2,in3,st3,m) -> ring(sndsplit(m,st1),cons(fstsplit(m,st1),in2),st2,in3,st3,m) | empty(fstsplit(m,st1)) ->* false
ring(st1,in2,st2,in3,st3,m) -> ring(st1,tail(in2),sndsplit(m,app(mapf(two,head(in2)),st2)),cons(fstsplit(m,app(mapf(two,head(in2)),st2)),in3),st3,m) | leq(m,length(st2)) ->* false, empty(fstsplit(m,app(mapf(two,head(in2)),st2))) ->* false
ring(st1,in2,st2,in3,st3,m) -> ring(st1,tail(in2),st2,in3,st3,m) | empty(mapf(two,head(in2))) ->* true
ring(st1,in2,st2,in3,st3,m) -> ring(st1,in2,sndsplit(m,st2),cons(fstsplit(m,st2),in3),st3,m) | leq(m,length(st2)) ->* true, empty(fstsplit(m,st2)) ->* false
ring(st1,in2,st2,in3,st3,m) -> ring(st1,in2,st2,tail(in3),sndsplit(m,app(mapf(three,head(in3)),st3)),m) | leq(m,length(st3)) ->* false, empty(fstsplit(m,app(mapf(three,head(in3)),st3))) ->* false
ring(st1,in2,st2,in3,st3,m) -> ring(st1,in2,st2,tail(in3),st3,m) | empty(mapf(three,head(in3))) ->* true
ring(st1,in2,st2,in3,st3,m) -> ring(st1,in2,st2,in3,sndsplit(m,st3),m) | leq(m,length(st3)) ->* true, empty(fstsplit(m,st3)) ->* false
sndsplit(0,x) -> x
sndsplit(s(n),cons(h,t)) -> sndsplit(n,t)
sndsplit(s(n),nil) -> nil
tail(cons(h,t)) -> t
)
]

Infeasibility Conditions:
empty(fstsplit(x6,x1)) ->* false, empty(mapf(three,head(x4))) ->* true

Problem 1: 

Obtaining a proof using Prover9:

 -> Prover9 Output:
============================== Prover9 ===============================
Prover9 (64) version 2009-11A, November 2009.
Process 3136747 was started by sandbox2 on z020.star.cs.uiowa.edu,
Tue Jul 30 08:23:10 2024
The command was "./prover9 -f /tmp/prover93136740-0.in".
============================== end of head ===========================

============================== INPUT =================================

% Reading from file /tmp/prover93136740-0.in

assign(max_seconds,20).

formulas(assumptions).
->_s0(x1,y) -> ->_s0(app(x1,x2),app(y,x2)) # label(congruence).
->_s0(x2,y) -> ->_s0(app(x1,x2),app(x1,y)) # label(congruence).
->_s0(x1,y) -> ->_s0(empty(x1),empty(y)) # label(congruence).
->_s0(x1,y) -> ->_s0(fstsplit(x1,x2),fstsplit(y,x2)) # label(congruence).
->_s0(x2,y) -> ->_s0(fstsplit(x1,x2),fstsplit(x1,y)) # label(congruence).
->_s0(x1,y) -> ->_s0(head(x1),head(y)) # label(congruence).
->_s0(x1,y) -> ->_s0(length(x1),length(y)) # label(congruence).
->_s0(x1,y) -> ->_s0(leq(x1,x2),leq(y,x2)) # label(congruence).
->_s0(x2,y) -> ->_s0(leq(x1,x2),leq(x1,y)) # label(congruence).
->_s0(x1,y) -> ->_s0(mapf(x1,x2),mapf(y,x2)) # label(congruence).
->_s0(x2,y) -> ->_s0(mapf(x1,x2),mapf(x1,y)) # label(congruence).
->_s0(x1,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(y,x2,x3,x4,x5,x6)) # label(congruence).
->_s0(x2,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(x1,y,x3,x4,x5,x6)) # label(congruence).
->_s0(x3,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(x1,x2,y,x4,x5,x6)) # label(congruence).
->_s0(x4,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(x1,x2,x3,y,x5,x6)) # label(congruence).
->_s0(x5,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(x1,x2,x3,x4,y,x6)) # label(congruence).
->_s0(x6,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(x1,x2,x3,x4,x5,y)) # label(congruence).
->_s0(x1,y) -> ->_s0(sndsplit(x1,x2),sndsplit(y,x2)) # label(congruence).
->_s0(x2,y) -> ->_s0(sndsplit(x1,x2),sndsplit(x1,y)) # label(congruence).
->_s0(x1,y) -> ->_s0(tail(x1),tail(y)) # label(congruence).
->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence).
->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence).
->_s0(x1,y) -> ->_s0(f(x1,x2),f(y,x2)) # label(congruence).
->_s0(x2,y) -> ->_s0(f(x1,x2),f(x1,y)) # label(congruence).
->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence).
->_s0(app(cons(x3,x4),x1),cons(x3,app(x4,x1))) # label(replacement).
->_s0(app(nil,x1),x1) # label(replacement).
->_s0(empty(cons(x3,x4)),false) # label(replacement).
->_s0(empty(nil),true) # label(replacement).
->_s0(fstsplit(0,x1),nil) # label(replacement).
->_s0(fstsplit(s(x2),cons(x3,x4)),cons(x3,fstsplit(x2,x4))) # label(replacement).
->_s0(fstsplit(s(x2),nil),nil) # label(replacement).
->_s0(head(cons(x3,x4)),x3) # label(replacement).
->_s0(length(cons(x3,x4)),s(length(x4))) # label(replacement).
->_s0(length(nil),0) # label(replacement).
->_s0(leq(0,x5),true) # label(replacement).
->_s0(leq(s(x2),0),false) # label(replacement).
->_s0(leq(s(x2),s(x5)),leq(x2,x5)) # label(replacement).
->_s0(mapf(x6,cons(x3,x4)),app(f(x6,x3),mapf(x6,x4))) # label(replacement).
->_s0(mapf(x6,nil),nil) # label(replacement).
->*_s0(empty(fstsplit(x5,x7)),false) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(sndsplit(x5,x7),cons(fstsplit(x5,x7),x8),x9,x10,x11,x5)) # label(replacement).
->*_s0(leq(x5,length(x9)),false) & ->*_s0(empty(fstsplit(x5,app(mapf(two,head(x8)),x9))),false) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,tail(x8),sndsplit(x5,app(mapf(two,head(x8)),x9)),cons(fstsplit(x5,app(mapf(two,head(x8)),x9)),x10),x11,x5)) # label(replacement).
->*_s0(empty(mapf(two,head(x8))),true) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,tail(x8),x9,x10,x11,x5)) # label(replacement).
->*_s0(leq(x5,length(x9)),true) & ->*_s0(empty(fstsplit(x5,x9)),false) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,x8,sndsplit(x5,x9),cons(fstsplit(x5,x9),x10),x11,x5)) # label(replacement).
->*_s0(leq(x5,length(x11)),false) & ->*_s0(empty(fstsplit(x5,app(mapf(three,head(x10)),x11))),false) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,x8,x9,tail(x10),sndsplit(x5,app(mapf(three,head(x10)),x11)),x5)) # label(replacement).
->*_s0(empty(mapf(three,head(x10))),true) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,x8,x9,tail(x10),x11,x5)) # label(replacement).
->*_s0(leq(x5,length(x11)),true) & ->*_s0(empty(fstsplit(x5,x11)),false) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,x8,x9,x10,sndsplit(x5,x11),x5)) # label(replacement).
->_s0(sndsplit(0,x1),x1) # label(replacement).
->_s0(sndsplit(s(x2),cons(x3,x4)),sndsplit(x2,x4)) # label(replacement).
->_s0(sndsplit(s(x2),nil),nil) # label(replacement).
->_s0(tail(cons(x3,x4)),x4) # label(replacement).
->*_s0(x,x) # label(reflexivity).
->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity).
end_of_list.

formulas(goals).
(exists x13 exists x14 exists x15 (->*_s0(empty(fstsplit(x13,x14)),false) & ->*_s0(empty(mapf(three,head(x15))),true))) # label(goal).
end_of_list.

============================== end of input ==========================

============================== PROCESS NON-CLAUSAL FORMULAS ==========

% Formulas that are not ordinary clauses:
1 ->_s0(x1,y) -> ->_s0(app(x1,x2),app(y,x2)) # label(congruence) # label(non_clause).  [assumption].
2 ->_s0(x2,y) -> ->_s0(app(x1,x2),app(x1,y)) # label(congruence) # label(non_clause).  [assumption].
3 ->_s0(x1,y) -> ->_s0(empty(x1),empty(y)) # label(congruence) # label(non_clause).  [assumption].
4 ->_s0(x1,y) -> ->_s0(fstsplit(x1,x2),fstsplit(y,x2)) # label(congruence) # label(non_clause).  [assumption].
5 ->_s0(x2,y) -> ->_s0(fstsplit(x1,x2),fstsplit(x1,y)) # label(congruence) # label(non_clause).  [assumption].
6 ->_s0(x1,y) -> ->_s0(head(x1),head(y)) # label(congruence) # label(non_clause).  [assumption].
7 ->_s0(x1,y) -> ->_s0(length(x1),length(y)) # label(congruence) # label(non_clause).  [assumption].
8 ->_s0(x1,y) -> ->_s0(leq(x1,x2),leq(y,x2)) # label(congruence) # label(non_clause).  [assumption].
9 ->_s0(x2,y) -> ->_s0(leq(x1,x2),leq(x1,y)) # label(congruence) # label(non_clause).  [assumption].
10 ->_s0(x1,y) -> ->_s0(mapf(x1,x2),mapf(y,x2)) # label(congruence) # label(non_clause).  [assumption].
11 ->_s0(x2,y) -> ->_s0(mapf(x1,x2),mapf(x1,y)) # label(congruence) # label(non_clause).  [assumption].
12 ->_s0(x1,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(y,x2,x3,x4,x5,x6)) # label(congruence) # label(non_clause).  [assumption].
13 ->_s0(x2,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(x1,y,x3,x4,x5,x6)) # label(congruence) # label(non_clause).  [assumption].
14 ->_s0(x3,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(x1,x2,y,x4,x5,x6)) # label(congruence) # label(non_clause).  [assumption].
15 ->_s0(x4,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(x1,x2,x3,y,x5,x6)) # label(congruence) # label(non_clause).  [assumption].
16 ->_s0(x5,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(x1,x2,x3,x4,y,x6)) # label(congruence) # label(non_clause).  [assumption].
17 ->_s0(x6,y) -> ->_s0(ring(x1,x2,x3,x4,x5,x6),ring(x1,x2,x3,x4,x5,y)) # label(congruence) # label(non_clause).  [assumption].
18 ->_s0(x1,y) -> ->_s0(sndsplit(x1,x2),sndsplit(y,x2)) # label(congruence) # label(non_clause).  [assumption].
19 ->_s0(x2,y) -> ->_s0(sndsplit(x1,x2),sndsplit(x1,y)) # label(congruence) # label(non_clause).  [assumption].
20 ->_s0(x1,y) -> ->_s0(tail(x1),tail(y)) # label(congruence) # label(non_clause).  [assumption].
21 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence) # label(non_clause).  [assumption].
22 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence) # label(non_clause).  [assumption].
23 ->_s0(x1,y) -> ->_s0(f(x1,x2),f(y,x2)) # label(congruence) # label(non_clause).  [assumption].
24 ->_s0(x2,y) -> ->_s0(f(x1,x2),f(x1,y)) # label(congruence) # label(non_clause).  [assumption].
25 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause).  [assumption].
26 ->*_s0(empty(fstsplit(x5,x7)),false) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(sndsplit(x5,x7),cons(fstsplit(x5,x7),x8),x9,x10,x11,x5)) # label(replacement) # label(non_clause).  [assumption].
27 ->*_s0(leq(x5,length(x9)),false) & ->*_s0(empty(fstsplit(x5,app(mapf(two,head(x8)),x9))),false) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,tail(x8),sndsplit(x5,app(mapf(two,head(x8)),x9)),cons(fstsplit(x5,app(mapf(two,head(x8)),x9)),x10),x11,x5)) # label(replacement) # label(non_clause).  [assumption].
28 ->*_s0(empty(mapf(two,head(x8))),true) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,tail(x8),x9,x10,x11,x5)) # label(replacement) # label(non_clause).  [assumption].
29 ->*_s0(leq(x5,length(x9)),true) & ->*_s0(empty(fstsplit(x5,x9)),false) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,x8,sndsplit(x5,x9),cons(fstsplit(x5,x9),x10),x11,x5)) # label(replacement) # label(non_clause).  [assumption].
30 ->*_s0(leq(x5,length(x11)),false) & ->*_s0(empty(fstsplit(x5,app(mapf(three,head(x10)),x11))),false) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,x8,x9,tail(x10),sndsplit(x5,app(mapf(three,head(x10)),x11)),x5)) # label(replacement) # label(non_clause).  [assumption].
31 ->*_s0(empty(mapf(three,head(x10))),true) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,x8,x9,tail(x10),x11,x5)) # label(replacement) # label(non_clause).  [assumption].
32 ->*_s0(leq(x5,length(x11)),true) & ->*_s0(empty(fstsplit(x5,x11)),false) -> ->_s0(ring(x7,x8,x9,x10,x11,x5),ring(x7,x8,x9,x10,sndsplit(x5,x11),x5)) # label(replacement) # label(non_clause).  [assumption].
33 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause).  [assumption].
34 (exists x13 exists x14 exists x15 (->*_s0(empty(fstsplit(x13,x14)),false) & ->*_s0(empty(mapf(three,head(x15))),true))) # label(goal) # label(non_clause) # label(goal).  [goal].

============================== end of process non-clausal formulas ===

============================== PROCESS INITIAL CLAUSES ===============

% Clauses before input processing:

formulas(usable).
end_of_list.

formulas(sos).
-->_s0(x,y) | ->_s0(app(x,z),app(y,z)) # label(congruence).  [clausify(1)].
-->_s0(x,y) | ->_s0(app(z,x),app(z,y)) # label(congruence).  [clausify(2)].
-->_s0(x,y) | ->_s0(empty(x),empty(y)) # label(congruence).  [clausify(3)].
-->_s0(x,y) | ->_s0(fstsplit(x,z),fstsplit(y,z)) # label(congruence).  [clausify(4)].
-->_s0(x,y) | ->_s0(fstsplit(z,x),fstsplit(z,y)) # label(congruence).  [clausify(5)].
-->_s0(x,y) | ->_s0(head(x),head(y)) # label(congruence).  [clausify(6)].
-->_s0(x,y) | ->_s0(length(x),length(y)) # label(congruence).  [clausify(7)].
-->_s0(x,y) | ->_s0(leq(x,z),leq(y,z)) # label(congruence).  [clausify(8)].
-->_s0(x,y) | ->_s0(leq(z,x),leq(z,y)) # label(congruence).  [clausify(9)].
-->_s0(x,y) | ->_s0(mapf(x,z),mapf(y,z)) # label(congruence).  [clausify(10)].
-->_s0(x,y) | ->_s0(mapf(z,x),mapf(z,y)) # label(congruence).  [clausify(11)].
-->_s0(x,y) | ->_s0(ring(x,z,u,w,v5,v6),ring(y,z,u,w,v5,v6)) # label(congruence).  [clausify(12)].
-->_s0(x,y) | ->_s0(ring(z,x,u,w,v5,v6),ring(z,y,u,w,v5,v6)) # label(congruence).  [clausify(13)].
-->_s0(x,y) | ->_s0(ring(z,u,x,w,v5,v6),ring(z,u,y,w,v5,v6)) # label(congruence).  [clausify(14)].
-->_s0(x,y) | ->_s0(ring(z,u,w,x,v5,v6),ring(z,u,w,y,v5,v6)) # label(congruence).  [clausify(15)].
-->_s0(x,y) | ->_s0(ring(z,u,w,v5,x,v6),ring(z,u,w,v5,y,v6)) # label(congruence).  [clausify(16)].
-->_s0(x,y) | ->_s0(ring(z,u,w,v5,v6,x),ring(z,u,w,v5,v6,y)) # label(congruence).  [clausify(17)].
-->_s0(x,y) | ->_s0(sndsplit(x,z),sndsplit(y,z)) # label(congruence).  [clausify(18)].
-->_s0(x,y) | ->_s0(sndsplit(z,x),sndsplit(z,y)) # label(congruence).  [clausify(19)].
-->_s0(x,y) | ->_s0(tail(x),tail(y)) # label(congruence).  [clausify(20)].
-->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence).  [clausify(21)].
-->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence).  [clausify(22)].
-->_s0(x,y) | ->_s0(f(x,z),f(y,z)) # label(congruence).  [clausify(23)].
-->_s0(x,y) | ->_s0(f(z,x),f(z,y)) # label(congruence).  [clausify(24)].
-->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence).  [clausify(25)].
->_s0(app(cons(x,y),z),cons(x,app(y,z))) # label(replacement).  [assumption].
->_s0(app(nil,x),x) # label(replacement).  [assumption].
->_s0(empty(cons(x,y)),false) # label(replacement).  [assumption].
->_s0(empty(nil),true) # label(replacement).  [assumption].
->_s0(fstsplit(0,x),nil) # label(replacement).  [assumption].
->_s0(fstsplit(s(x),cons(y,z)),cons(y,fstsplit(x,z))) # label(replacement).  [assumption].
->_s0(fstsplit(s(x),nil),nil) # label(replacement).  [assumption].
->_s0(head(cons(x,y)),x) # label(replacement).  [assumption].
->_s0(length(cons(x,y)),s(length(y))) # label(replacement).  [assumption].
->_s0(length(nil),0) # label(replacement).  [assumption].
->_s0(leq(0,x),true) # label(replacement).  [assumption].
->_s0(leq(s(x),0),false) # label(replacement).  [assumption].
->_s0(leq(s(x),s(y)),leq(x,y)) # label(replacement).  [assumption].
->_s0(mapf(x,cons(y,z)),app(f(x,y),mapf(x,z))) # label(replacement).  [assumption].
->_s0(mapf(x,nil),nil) # label(replacement).  [assumption].
-->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(y,z,u,w,v5,x),ring(sndsplit(x,y),cons(fstsplit(x,y),z),u,w,v5,x)) # label(replacement).  [clausify(26)].
-->*_s0(leq(x,length(y)),false) | -->*_s0(empty(fstsplit(x,app(mapf(two,head(z)),y))),false) | ->_s0(ring(u,z,y,w,v5,x),ring(u,tail(z),sndsplit(x,app(mapf(two,head(z)),y)),cons(fstsplit(x,app(mapf(two,head(z)),y)),w),v5,x)) # label(replacement).  [clausify(27)].
-->*_s0(empty(mapf(two,head(x))),true) | ->_s0(ring(y,x,z,u,w,v5),ring(y,tail(x),z,u,w,v5)) # label(replacement).  [clausify(28)].
-->*_s0(leq(x,length(y)),true) | -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(z,u,y,w,v5,x),ring(z,u,sndsplit(x,y),cons(fstsplit(x,y),w),v5,x)) # label(replacement).  [clausify(29)].
-->*_s0(leq(x,length(y)),false) | -->*_s0(empty(fstsplit(x,app(mapf(three,head(z)),y))),false) | ->_s0(ring(u,w,v5,z,y,x),ring(u,w,v5,tail(z),sndsplit(x,app(mapf(three,head(z)),y)),x)) # label(replacement).  [clausify(30)].
-->*_s0(empty(mapf(three,head(x))),true) | ->_s0(ring(y,z,u,x,w,v5),ring(y,z,u,tail(x),w,v5)) # label(replacement).  [clausify(31)].
-->*_s0(leq(x,length(y)),true) | -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(z,u,w,v5,y,x),ring(z,u,w,v5,sndsplit(x,y),x)) # label(replacement).  [clausify(32)].
->_s0(sndsplit(0,x),x) # label(replacement).  [assumption].
->_s0(sndsplit(s(x),cons(y,z)),sndsplit(x,z)) # label(replacement).  [assumption].
->_s0(sndsplit(s(x),nil),nil) # label(replacement).  [assumption].
->_s0(tail(cons(x,y)),y) # label(replacement).  [assumption].
->*_s0(x,x) # label(reflexivity).  [assumption].
-->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity).  [clausify(33)].
-->*_s0(empty(fstsplit(x,y)),false) | -->*_s0(empty(mapf(three,head(z))),true) # label(goal).  [deny(34)].
end_of_list.

formulas(demodulators).
end_of_list.

============================== PREDICATE ELIMINATION =================

No predicates eliminated.

============================== end predicate elimination =============

Auto_denials:
  % copying label goal to answer in negative clause

Term ordering decisions:
Predicate symbol precedence:  predicate_order([ ->_s0, ->*_s0 ]).
Function symbol precedence:  function_order([ nil, false, true, 0, two, three, cons, fstsplit, mapf, sndsplit, app, leq, f, empty, s, head, length, tail, ring ]).
After inverse_order:  (no changes).
Unfolding symbols: (none).

Auto_inference settings:
  % set(neg_binary_resolution).  % (HNE depth_diff=-26)
  % clear(ordered_res).  % (HNE depth_diff=-26)
  % set(ur_resolution).  % (HNE depth_diff=-26)
    % set(ur_resolution) -> set(pos_ur_resolution).
    % set(ur_resolution) -> set(neg_ur_resolution).

Auto_process settings:
  % set(unit_deletion).  % (Horn set with negative nonunits)

kept:      35 -->_s0(x,y) | ->_s0(app(x,z),app(y,z)) # label(congruence).  [clausify(1)].
kept:      36 -->_s0(x,y) | ->_s0(app(z,x),app(z,y)) # label(congruence).  [clausify(2)].
kept:      37 -->_s0(x,y) | ->_s0(empty(x),empty(y)) # label(congruence).  [clausify(3)].
kept:      38 -->_s0(x,y) | ->_s0(fstsplit(x,z),fstsplit(y,z)) # label(congruence).  [clausify(4)].
kept:      39 -->_s0(x,y) | ->_s0(fstsplit(z,x),fstsplit(z,y)) # label(congruence).  [clausify(5)].
kept:      40 -->_s0(x,y) | ->_s0(head(x),head(y)) # label(congruence).  [clausify(6)].
kept:      41 -->_s0(x,y) | ->_s0(length(x),length(y)) # label(congruence).  [clausify(7)].
kept:      42 -->_s0(x,y) | ->_s0(leq(x,z),leq(y,z)) # label(congruence).  [clausify(8)].
kept:      43 -->_s0(x,y) | ->_s0(leq(z,x),leq(z,y)) # label(congruence).  [clausify(9)].
kept:      44 -->_s0(x,y) | ->_s0(mapf(x,z),mapf(y,z)) # label(congruence).  [clausify(10)].
kept:      45 -->_s0(x,y) | ->_s0(mapf(z,x),mapf(z,y)) # label(congruence).  [clausify(11)].
kept:      46 -->_s0(x,y) | ->_s0(ring(x,z,u,w,v5,v6),ring(y,z,u,w,v5,v6)) # label(congruence).  [clausify(12)].
kept:      47 -->_s0(x,y) | ->_s0(ring(z,x,u,w,v5,v6),ring(z,y,u,w,v5,v6)) # label(congruence).  [clausify(13)].
kept:      48 -->_s0(x,y) | ->_s0(ring(z,u,x,w,v5,v6),ring(z,u,y,w,v5,v6)) # label(congruence).  [clausify(14)].
kept:      49 -->_s0(x,y) | ->_s0(ring(z,u,w,x,v5,v6),ring(z,u,w,y,v5,v6)) # label(congruence).  [clausify(15)].
kept:      50 -->_s0(x,y) | ->_s0(ring(z,u,w,v5,x,v6),ring(z,u,w,v5,y,v6)) # label(congruence).  [clausify(16)].
kept:      51 -->_s0(x,y) | ->_s0(ring(z,u,w,v5,v6,x),ring(z,u,w,v5,v6,y)) # label(congruence).  [clausify(17)].
kept:      52 -->_s0(x,y) | ->_s0(sndsplit(x,z),sndsplit(y,z)) # label(congruence).  [clausify(18)].
kept:      53 -->_s0(x,y) | ->_s0(sndsplit(z,x),sndsplit(z,y)) # label(congruence).  [clausify(19)].
kept:      54 -->_s0(x,y) | ->_s0(tail(x),tail(y)) # label(congruence).  [clausify(20)].
kept:      55 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence).  [clausify(21)].
kept:      56 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence).  [clausify(22)].
kept:      57 -->_s0(x,y) | ->_s0(f(x,z),f(y,z)) # label(congruence).  [clausify(23)].
kept:      58 -->_s0(x,y) | ->_s0(f(z,x),f(z,y)) # label(congruence).  [clausify(24)].
kept:      59 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence).  [clausify(25)].
kept:      60 ->_s0(app(cons(x,y),z),cons(x,app(y,z))) # label(replacement).  [assumption].
kept:      61 ->_s0(app(nil,x),x) # label(replacement).  [assumption].
kept:      62 ->_s0(empty(cons(x,y)),false) # label(replacement).  [assumption].
kept:      63 ->_s0(empty(nil),true) # label(replacement).  [assumption].
kept:      64 ->_s0(fstsplit(0,x),nil) # label(replacement).  [assumption].
kept:      65 ->_s0(fstsplit(s(x),cons(y,z)),cons(y,fstsplit(x,z))) # label(replacement).  [assumption].
kept:      66 ->_s0(fstsplit(s(x),nil),nil) # label(replacement).  [assumption].
kept:      67 ->_s0(head(cons(x,y)),x) # label(replacement).  [assumption].
kept:      68 ->_s0(length(cons(x,y)),s(length(y))) # label(replacement).  [assumption].
kept:      69 ->_s0(length(nil),0) # label(replacement).  [assumption].
kept:      70 ->_s0(leq(0,x),true) # label(replacement).  [assumption].
kept:      71 ->_s0(leq(s(x),0),false) # label(replacement).  [assumption].
kept:      72 ->_s0(leq(s(x),s(y)),leq(x,y)) # label(replacement).  [assumption].
kept:      73 ->_s0(mapf(x,cons(y,z)),app(f(x,y),mapf(x,z))) # label(replacement).  [assumption].
kept:      74 ->_s0(mapf(x,nil),nil) # label(replacement).  [assumption].
kept:      75 -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(y,z,u,w,v5,x),ring(sndsplit(x,y),cons(fstsplit(x,y),z),u,w,v5,x)) # label(replacement).  [clausify(26)].
kept:      76 -->*_s0(leq(x,length(y)),false) | -->*_s0(empty(fstsplit(x,app(mapf(two,head(z)),y))),false) | ->_s0(ring(u,z,y,w,v5,x),ring(u,tail(z),sndsplit(x,app(mapf(two,head(z)),y)),cons(fstsplit(x,app(mapf(two,head(z)),y)),w),v5,x)) # label(replacement).  [clausify(27)].
kept:      77 -->*_s0(empty(mapf(two,head(x))),true) | ->_s0(ring(y,x,z,u,w,v5),ring(y,tail(x),z,u,w,v5)) # label(replacement).  [clausify(28)].
kept:      78 -->*_s0(leq(x,length(y)),true) | -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(z,u,y,w,v5,x),ring(z,u,sndsplit(x,y),cons(fstsplit(x,y),w),v5,x)) # label(replacement).  [clausify(29)].
kept:      79 -->*_s0(leq(x,length(y)),false) | -->*_s0(empty(fstsplit(x,app(mapf(three,head(z)),y))),false) | ->_s0(ring(u,w,v5,z,y,x),ring(u,w,v5,tail(z),sndsplit(x,app(mapf(three,head(z)),y)),x)) # label(replacement).  [clausify(30)].
kept:      80 -->*_s0(empty(mapf(three,head(x))),true) | ->_s0(ring(y,z,u,x,w,v5),ring(y,z,u,tail(x),w,v5)) # label(replacement).  [clausify(31)].
kept:      81 -->*_s0(leq(x,length(y)),true) | -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(z,u,w,v5,y,x),ring(z,u,w,v5,sndsplit(x,y),x)) # label(replacement).  [clausify(32)].
kept:      82 ->_s0(sndsplit(0,x),x) # label(replacement).  [assumption].
kept:      83 ->_s0(sndsplit(s(x),cons(y,z)),sndsplit(x,z)) # label(replacement).  [assumption].
kept:      84 ->_s0(sndsplit(s(x),nil),nil) # label(replacement).  [assumption].
kept:      85 ->_s0(tail(cons(x,y)),y) # label(replacement).  [assumption].
kept:      86 ->*_s0(x,x) # label(reflexivity).  [assumption].
kept:      87 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity).  [clausify(33)].
kept:      88 -->*_s0(empty(fstsplit(x,y)),false) | -->*_s0(empty(mapf(three,head(z))),true) # label(goal) # answer(goal).  [deny(34)].

============================== end of process initial clauses ========

============================== CLAUSES FOR SEARCH ====================

% Clauses after input processing:

formulas(usable).
end_of_list.

formulas(sos).
35 -->_s0(x,y) | ->_s0(app(x,z),app(y,z)) # label(congruence).  [clausify(1)].
36 -->_s0(x,y) | ->_s0(app(z,x),app(z,y)) # label(congruence).  [clausify(2)].
37 -->_s0(x,y) | ->_s0(empty(x),empty(y)) # label(congruence).  [clausify(3)].
38 -->_s0(x,y) | ->_s0(fstsplit(x,z),fstsplit(y,z)) # label(congruence).  [clausify(4)].
39 -->_s0(x,y) | ->_s0(fstsplit(z,x),fstsplit(z,y)) # label(congruence).  [clausify(5)].
40 -->_s0(x,y) | ->_s0(head(x),head(y)) # label(congruence).  [clausify(6)].
41 -->_s0(x,y) | ->_s0(length(x),length(y)) # label(congruence).  [clausify(7)].
42 -->_s0(x,y) | ->_s0(leq(x,z),leq(y,z)) # label(congruence).  [clausify(8)].
43 -->_s0(x,y) | ->_s0(leq(z,x),leq(z,y)) # label(congruence).  [clausify(9)].
44 -->_s0(x,y) | ->_s0(mapf(x,z),mapf(y,z)) # label(congruence).  [clausify(10)].
45 -->_s0(x,y) | ->_s0(mapf(z,x),mapf(z,y)) # label(congruence).  [clausify(11)].
46 -->_s0(x,y) | ->_s0(ring(x,z,u,w,v5,v6),ring(y,z,u,w,v5,v6)) # label(congruence).  [clausify(12)].
47 -->_s0(x,y) | ->_s0(ring(z,x,u,w,v5,v6),ring(z,y,u,w,v5,v6)) # label(congruence).  [clausify(13)].
48 -->_s0(x,y) | ->_s0(ring(z,u,x,w,v5,v6),ring(z,u,y,w,v5,v6)) # label(congruence).  [clausify(14)].
49 -->_s0(x,y) | ->_s0(ring(z,u,w,x,v5,v6),ring(z,u,w,y,v5,v6)) # label(congruence).  [clausify(15)].
50 -->_s0(x,y) | ->_s0(ring(z,u,w,v5,x,v6),ring(z,u,w,v5,y,v6)) # label(congruence).  [clausify(16)].
51 -->_s0(x,y) | ->_s0(ring(z,u,w,v5,v6,x),ring(z,u,w,v5,v6,y)) # label(congruence).  [clausify(17)].
52 -->_s0(x,y) | ->_s0(sndsplit(x,z),sndsplit(y,z)) # label(congruence).  [clausify(18)].
53 -->_s0(x,y) | ->_s0(sndsplit(z,x),sndsplit(z,y)) # label(congruence).  [clausify(19)].
54 -->_s0(x,y) | ->_s0(tail(x),tail(y)) # label(congruence).  [clausify(20)].
55 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence).  [clausify(21)].
56 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence).  [clausify(22)].
57 -->_s0(x,y) | ->_s0(f(x,z),f(y,z)) # label(congruence).  [clausify(23)].
58 -->_s0(x,y) | ->_s0(f(z,x),f(z,y)) # label(congruence).  [clausify(24)].
59 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence).  [clausify(25)].
60 ->_s0(app(cons(x,y),z),cons(x,app(y,z))) # label(replacement).  [assumption].
61 ->_s0(app(nil,x),x) # label(replacement).  [assumption].
62 ->_s0(empty(cons(x,y)),false) # label(replacement).  [assumption].
63 ->_s0(empty(nil),true) # label(replacement).  [assumption].
64 ->_s0(fstsplit(0,x),nil) # label(replacement).  [assumption].
65 ->_s0(fstsplit(s(x),cons(y,z)),cons(y,fstsplit(x,z))) # label(replacement).  [assumption].
66 ->_s0(fstsplit(s(x),nil),nil) # label(replacement).  [assumption].
67 ->_s0(head(cons(x,y)),x) # label(replacement).  [assumption].
68 ->_s0(length(cons(x,y)),s(length(y))) # label(replacement).  [assumption].
69 ->_s0(length(nil),0) # label(replacement).  [assumption].
70 ->_s0(leq(0,x),true) # label(replacement).  [assumption].
71 ->_s0(leq(s(x),0),false) # label(replacement).  [assumption].
72 ->_s0(leq(s(x),s(y)),leq(x,y)) # label(replacement).  [assumption].
73 ->_s0(mapf(x,cons(y,z)),app(f(x,y),mapf(x,z))) # label(replacement).  [assumption].
74 ->_s0(mapf(x,nil),nil) # label(replacement).  [assumption].
75 -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(y,z,u,w,v5,x),ring(sndsplit(x,y),cons(fstsplit(x,y),z),u,w,v5,x)) # label(replacement).  [clausify(26)].
76 -->*_s0(leq(x,length(y)),false) | -->*_s0(empty(fstsplit(x,app(mapf(two,head(z)),y))),false) | ->_s0(ring(u,z,y,w,v5,x),ring(u,tail(z),sndsplit(x,app(mapf(two,head(z)),y)),cons(fstsplit(x,app(mapf(two,head(z)),y)),w),v5,x)) # label(replacement).  [clausify(27)].
77 -->*_s0(empty(mapf(two,head(x))),true) | ->_s0(ring(y,x,z,u,w,v5),ring(y,tail(x),z,u,w,v5)) # label(replacement).  [clausify(28)].
78 -->*_s0(leq(x,length(y)),true) | -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(z,u,y,w,v5,x),ring(z,u,sndsplit(x,y),cons(fstsplit(x,y),w),v5,x)) # label(replacement).  [clausify(29)].
79 -->*_s0(leq(x,length(y)),false) | -->*_s0(empty(fstsplit(x,app(mapf(three,head(z)),y))),false) | ->_s0(ring(u,w,v5,z,y,x),ring(u,w,v5,tail(z),sndsplit(x,app(mapf(three,head(z)),y)),x)) # label(replacement).  [clausify(30)].
80 -->*_s0(empty(mapf(three,head(x))),true) | ->_s0(ring(y,z,u,x,w,v5),ring(y,z,u,tail(x),w,v5)) # label(replacement).  [clausify(31)].
81 -->*_s0(leq(x,length(y)),true) | -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(z,u,w,v5,y,x),ring(z,u,w,v5,sndsplit(x,y),x)) # label(replacement).  [clausify(32)].
82 ->_s0(sndsplit(0,x),x) # label(replacement).  [assumption].
83 ->_s0(sndsplit(s(x),cons(y,z)),sndsplit(x,z)) # label(replacement).  [assumption].
84 ->_s0(sndsplit(s(x),nil),nil) # label(replacement).  [assumption].
85 ->_s0(tail(cons(x,y)),y) # label(replacement).  [assumption].
86 ->*_s0(x,x) # label(reflexivity).  [assumption].
87 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity).  [clausify(33)].
88 -->*_s0(empty(fstsplit(x,y)),false) | -->*_s0(empty(mapf(three,head(z))),true) # label(goal) # answer(goal).  [deny(34)].
end_of_list.

formulas(demodulators).
end_of_list.

============================== end of clauses for search =============

============================== SEARCH ================================

% Starting search at 0.02 seconds.

given #1 (I,wt=10): 35 -->_s0(x,y) | ->_s0(app(x,z),app(y,z)) # label(congruence).  [clausify(1)].

given #2 (I,wt=10): 36 -->_s0(x,y) | ->_s0(app(z,x),app(z,y)) # label(congruence).  [clausify(2)].

given #3 (I,wt=8): 37 -->_s0(x,y) | ->_s0(empty(x),empty(y)) # label(congruence).  [clausify(3)].

given #4 (I,wt=10): 38 -->_s0(x,y) | ->_s0(fstsplit(x,z),fstsplit(y,z)) # label(congruence).  [clausify(4)].

given #5 (I,wt=10): 39 -->_s0(x,y) | ->_s0(fstsplit(z,x),fstsplit(z,y)) # label(congruence).  [clausify(5)].

given #6 (I,wt=8): 40 -->_s0(x,y) | ->_s0(head(x),head(y)) # label(congruence).  [clausify(6)].

given #7 (I,wt=8): 41 -->_s0(x,y) | ->_s0(length(x),length(y)) # label(congruence).  [clausify(7)].

given #8 (I,wt=10): 42 -->_s0(x,y) | ->_s0(leq(x,z),leq(y,z)) # label(congruence).  [clausify(8)].

given #9 (I,wt=10): 43 -->_s0(x,y) | ->_s0(leq(z,x),leq(z,y)) # label(congruence).  [clausify(9)].

given #10 (I,wt=10): 44 -->_s0(x,y) | ->_s0(mapf(x,z),mapf(y,z)) # label(congruence).  [clausify(10)].

given #11 (I,wt=10): 45 -->_s0(x,y) | ->_s0(mapf(z,x),mapf(z,y)) # label(congruence).  [clausify(11)].

given #12 (I,wt=18): 46 -->_s0(x,y) | ->_s0(ring(x,z,u,w,v5,v6),ring(y,z,u,w,v5,v6)) # label(congruence).  [clausify(12)].

given #13 (I,wt=18): 47 -->_s0(x,y) | ->_s0(ring(z,x,u,w,v5,v6),ring(z,y,u,w,v5,v6)) # label(congruence).  [clausify(13)].

given #14 (I,wt=18): 48 -->_s0(x,y) | ->_s0(ring(z,u,x,w,v5,v6),ring(z,u,y,w,v5,v6)) # label(congruence).  [clausify(14)].

given #15 (I,wt=18): 49 -->_s0(x,y) | ->_s0(ring(z,u,w,x,v5,v6),ring(z,u,w,y,v5,v6)) # label(congruence).  [clausify(15)].

given #16 (I,wt=18): 50 -->_s0(x,y) | ->_s0(ring(z,u,w,v5,x,v6),ring(z,u,w,v5,y,v6)) # label(congruence).  [clausify(16)].

given #17 (I,wt=18): 51 -->_s0(x,y) | ->_s0(ring(z,u,w,v5,v6,x),ring(z,u,w,v5,v6,y)) # label(congruence).  [clausify(17)].

given #18 (I,wt=10): 52 -->_s0(x,y) | ->_s0(sndsplit(x,z),sndsplit(y,z)) # label(congruence).  [clausify(18)].

given #19 (I,wt=10): 53 -->_s0(x,y) | ->_s0(sndsplit(z,x),sndsplit(z,y)) # label(congruence).  [clausify(19)].

given #20 (I,wt=8): 54 -->_s0(x,y) | ->_s0(tail(x),tail(y)) # label(congruence).  [clausify(20)].

given #21 (I,wt=10): 55 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence).  [clausify(21)].

given #22 (I,wt=10): 56 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence).  [clausify(22)].

given #23 (I,wt=10): 57 -->_s0(x,y) | ->_s0(f(x,z),f(y,z)) # label(congruence).  [clausify(23)].

given #24 (I,wt=10): 58 -->_s0(x,y) | ->_s0(f(z,x),f(z,y)) # label(congruence).  [clausify(24)].

given #25 (I,wt=8): 59 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence).  [clausify(25)].

given #26 (I,wt=11): 60 ->_s0(app(cons(x,y),z),cons(x,app(y,z))) # label(replacement).  [assumption].

given #27 (I,wt=5): 61 ->_s0(app(nil,x),x) # label(replacement).  [assumption].

given #28 (I,wt=6): 62 ->_s0(empty(cons(x,y)),false) # label(replacement).  [assumption].

given #29 (I,wt=4): 63 ->_s0(empty(nil),true) # label(replacement).  [assumption].

given #30 (I,wt=5): 64 ->_s0(fstsplit(0,x),nil) # label(replacement).  [assumption].

given #31 (I,wt=12): 65 ->_s0(fstsplit(s(x),cons(y,z)),cons(y,fstsplit(x,z))) # label(replacement).  [assumption].

given #32 (I,wt=6): 66 ->_s0(fstsplit(s(x),nil),nil) # label(replacement).  [assumption].

given #33 (I,wt=6): 67 ->_s0(head(cons(x,y)),x) # label(replacement).  [assumption].

given #34 (I,wt=8): 68 ->_s0(length(cons(x,y)),s(length(y))) # label(replacement).  [assumption].

given #35 (I,wt=4): 69 ->_s0(length(nil),0) # label(replacement).  [assumption].

given #36 (I,wt=5): 70 ->_s0(leq(0,x),true) # label(replacement).  [assumption].

given #37 (I,wt=6): 71 ->_s0(leq(s(x),0),false) # label(replacement).  [assumption].

given #38 (I,wt=9): 72 ->_s0(leq(s(x),s(y)),leq(x,y)) # label(replacement).  [assumption].

given #39 (I,wt=13): 73 ->_s0(mapf(x,cons(y,z)),app(f(x,y),mapf(x,z))) # label(replacement).  [assumption].

given #40 (I,wt=5): 74 ->_s0(mapf(x,nil),nil) # label(replacement).  [assumption].

given #41 (I,wt=27): 75 -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(y,z,u,w,v5,x),ring(sndsplit(x,y),cons(fstsplit(x,y),z),u,w,v5,x)) # label(replacement).  [clausify(26)].

given #42 (I,wt=49): 76 -->*_s0(leq(x,length(y)),false) | -->*_s0(empty(fstsplit(x,app(mapf(two,head(z)),y))),false) | ->_s0(ring(u,z,y,w,v5,x),ring(u,tail(z),sndsplit(x,app(mapf(two,head(z)),y)),cons(fstsplit(x,app(mapf(two,head(z)),y)),w),v5,x)) # label(replacement).  [clausify(27)].

given #43 (I,wt=23): 77 -->*_s0(empty(mapf(two,head(x))),true) | ->_s0(ring(y,x,z,u,w,v5),ring(y,tail(x),z,u,w,v5)) # label(replacement).  [clausify(28)].

given #44 (I,wt=33): 78 -->*_s0(leq(x,length(y)),true) | -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(z,u,y,w,v5,x),ring(z,u,sndsplit(x,y),cons(fstsplit(x,y),w),v5,x)) # label(replacement).  [clausify(29)].

given #45 (I,wt=40): 79 -->*_s0(leq(x,length(y)),false) | -->*_s0(empty(fstsplit(x,app(mapf(three,head(z)),y))),false) | ->_s0(ring(u,w,v5,z,y,x),ring(u,w,v5,tail(z),sndsplit(x,app(mapf(three,head(z)),y)),x)) # label(replacement).  [clausify(30)].

given #46 (I,wt=23): 80 -->*_s0(empty(mapf(three,head(x))),true) | ->_s0(ring(y,z,u,x,w,v5),ring(y,z,u,tail(x),w,v5)) # label(replacement).  [clausify(31)].

given #47 (I,wt=29): 81 -->*_s0(leq(x,length(y)),true) | -->*_s0(empty(fstsplit(x,y)),false) | ->_s0(ring(z,u,w,v5,y,x),ring(z,u,w,v5,sndsplit(x,y),x)) # label(replacement).  [clausify(32)].

given #48 (I,wt=5): 82 ->_s0(sndsplit(0,x),x) # label(replacement).  [assumption].

given #49 (I,wt=10): 83 ->_s0(sndsplit(s(x),cons(y,z)),sndsplit(x,z)) # label(replacement).  [assumption].

given #50 (I,wt=6): 84 ->_s0(sndsplit(s(x),nil),nil) # label(replacement).  [assumption].

given #51 (I,wt=6): 85 ->_s0(tail(cons(x,y)),y) # label(replacement).  [assumption].

given #52 (I,wt=3): 86 ->*_s0(x,x) # label(reflexivity).  [assumption].

given #53 (I,wt=9): 87 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity).  [clausify(33)].

given #54 (I,wt=13): 88 -->*_s0(empty(fstsplit(x,y)),false) | -->*_s0(empty(mapf(three,head(z))),true) # label(goal) # answer(goal).  [deny(34)].

given #55 (A,wt=13): 89 ->_s0(s(app(cons(x,y),z)),s(cons(x,app(y,z)))).  [ur(59,a,60,a)].

given #56 (F,wt=16): 583 -->*_s0(empty(mapf(three,head(x))),true) | -->_s0(empty(fstsplit(y,z)),u) | -->*_s0(u,false) # answer(goal).  [resolve(88,a,87,c)].

given #57 (F,wt=13): 614 -->*_s0(empty(mapf(three,head(x))),true) | -->_s0(empty(fstsplit(y,z)),false) # answer(goal).  [resolve(583,c,86,a)].

given #58 (F,wt=16): 584 -->*_s0(empty(fstsplit(x,y)),false) | -->_s0(empty(mapf(three,head(z))),u) | -->*_s0(u,true) # answer(goal).  [resolve(88,b,87,c)].

given #59 (F,wt=13): 618 -->*_s0(empty(fstsplit(x,y)),false) | -->_s0(empty(mapf(three,head(z))),true) # answer(goal).  [resolve(584,c,86,a)].

given #60 (T,wt=4): 573 ->*_s0(length(nil),0).  [ur(87,a,69,a,b,86,a)].

given #61 (T,wt=4): 579 ->*_s0(empty(nil),true).  [ur(87,a,63,a,b,86,a)].

given #62 (T,wt=5): 567 ->*_s0(sndsplit(0,x),x).  [ur(87,a,82,a,b,86,a)].

given #63 (T,wt=5): 568 ->*_s0(mapf(x,nil),nil).  [ur(87,a,74,a,b,86,a)].

given #64 (A,wt=15): 90 ->_s0(f(x,app(cons(y,z),u)),f(x,cons(y,app(z,u)))).  [ur(58,a,60,a)].

given #65 (F,wt=14): 624 -->*_s0(empty(fstsplit(x,y)),false) | -->_s0(empty(mapf(three,head(z))),empty(nil)) # answer(goal).  [resolve(579,a,584,c)].

given #66 (F,wt=12): 667 -->*_s0(empty(fstsplit(x,y)),false) | -->_s0(mapf(three,head(z)),nil) # answer(goal).  [resolve(624,b,37,b)].

given #67 (F,wt=15): 629 -->*_s0(empty(fstsplit(x,y)),false) | -->_s0(empty(mapf(three,head(z))),sndsplit(0,true)) # answer(goal).  [resolve(567,a,584,c)].

given #68 (F,wt=15): 630 -->*_s0(empty(mapf(three,head(x))),true) | -->_s0(empty(fstsplit(y,z)),sndsplit(0,false)) # answer(goal).  [resolve(567,a,583,c)].

given #69 (T,wt=5): 572 ->*_s0(leq(0,x),true).  [ur(87,a,70,a,b,86,a)].

given #70 (T,wt=5): 578 ->*_s0(fstsplit(0,x),nil).  [ur(87,a,64,a,b,86,a)].

given #71 (T,wt=5): 581 ->*_s0(app(nil,x),x).  [ur(87,a,61,a,b,86,a)].

given #72 (T,wt=6): 164 ->_s0(s(empty(nil)),s(true)).  [ur(59,a,63,a)].

given #73 (A,wt=15): 91 ->_s0(f(app(cons(x,y),z),u),f(cons(x,app(y,z)),u)).  [ur(57,a,60,a)].

given #74 (F,wt=15): 668 -->_s0(mapf(three,head(x)),nil) | -->_s0(empty(fstsplit(y,z)),u) | -->*_s0(u,false) # answer(goal).  [resolve(667,a,87,c)].

given #75 (F,wt=12): 743 -->_s0(mapf(three,head(x)),nil) | -->_s0(empty(fstsplit(y,z)),false) # answer(goal).  [resolve(668,c,86,a)].

given #76 (F,wt=14): 740 -->_s0(mapf(three,head(x)),nil) | -->_s0(empty(fstsplit(y,z)),app(nil,false)) # answer(goal).  [resolve(668,c,581,a)].

given #77 (F,wt=14): 741 -->_s0(mapf(three,head(x)),nil) | -->_s0(empty(fstsplit(y,z)),sndsplit(0,false)) # answer(goal).  [resolve(668,c,567,a)].

given #78 (T,wt=6): 169 ->_s0(tail(empty(nil)),tail(true)).  [ur(54,a,63,a)].

given #79 (T,wt=6): 182 ->_s0(length(empty(nil)),length(true)).  [ur(41,a,63,a)].

given #80 (T,wt=6): 183 ->_s0(head(empty(nil)),head(true)).  [ur(40,a,63,a)].

given #81 (T,wt=6): 186 ->_s0(empty(empty(nil)),empty(true)).  [ur(37,a,63,a)].

given #82 (A,wt=15): 92 ->_s0(cons(x,app(cons(y,z),u)),cons(x,cons(y,app(z,u)))).  [ur(56,a,60,a)].

given #83 (F,wt=15): 671 -->*_s0(empty(fstsplit(x,y)),false) | -->_s0(empty(mapf(three,head(z))),leq(0,u)) # answer(goal).  [resolve(572,a,584,c)].

given #84 (F,wt=15): 681 -->*_s0(empty(fstsplit(x,y)),false) | -->_s0(empty(mapf(three,head(z))),app(nil,true)) # answer(goal).  [resolve(581,a,584,c)].

given #85 (F,wt=15): 682 -->*_s0(empty(mapf(three,head(x))),true) | -->_s0(empty(fstsplit(y,z)),app(nil,false)) # answer(goal).  [resolve(581,a,583,c)].

given #86 (F,wt=15): 739 -->_s0(mapf(three,head(x)),nil) | -->*_s0(empty(y),false) | -->_s0(fstsplit(z,u),y) # answer(goal).  [resolve(668,b,37,b)].

given #87 (T,wt=6): 314 ->_s0(s(length(nil)),s(0)).  [ur(59,a,69,a)].

given #88 (T,wt=6): 319 ->_s0(tail(length(nil)),tail(0)).  [ur(54,a,69,a)].

given #89 (T,wt=6): 332 ->_s0(length(length(nil)),length(0)).  [ur(41,a,69,a)].

given #90 (T,wt=6): 333 ->_s0(head(length(nil)),head(0)).  [ur(40,a,69,a)].

given #91 (A,wt=15): 93 ->_s0(cons(app(cons(x,y),z),u),cons(cons(x,app(y,z)),u)).  [ur(55,a,60,a)].

given #92 (F,wt=6): 879 -->_s0(mapf(three,head(x)),nil) # answer(goal).  [resolve(739,c,65,a),unit_del(b,580)].

given #93 (F,wt=16): 612 -->*_s0(empty(mapf(three,head(x))),true) | -->*_s0(empty(y),false) | -->_s0(fstsplit(z,u),y) # answer(goal).  [resolve(583,b,37,b)].

given #94 (F,wt=7): 1013 -->*_s0(empty(mapf(three,head(x))),true) # answer(goal).  [resolve(612,c,65,a),unit_del(b,580)].

given #95 (F,wt=7): 1019 -->_s0(empty(mapf(three,head(x))),true) # answer(goal).  [ur(87,b,86,a,c,1013,a)].

given #96 (T,wt=6): 336 ->_s0(empty(length(nil)),empty(0)).  [ur(37,a,69,a)].

given #97 (T,wt=6): 564 ->*_s0(tail(cons(x,y)),y).  [ur(87,a,85,a,b,86,a)].

given #98 (T,wt=6): 565 ->*_s0(sndsplit(s(x),nil),nil).  [ur(87,a,84,a,b,86,a)].

given #99 (T,wt=6): 571 ->*_s0(leq(s(x),0),false).  [ur(87,a,71,a,b,86,a)].

given #100 (A,wt=13): 94 ->_s0(tail(app(cons(x,y),z)),tail(cons(x,app(y,z)))).  [ur(54,a,60,a)].

given #101 (F,wt=8): 1016 -->_s0(empty(mapf(three,head(x))),empty(nil)) # answer(goal).  [ur(87,b,579,a,c,1013,a)].

given #102 (F,wt=9): 1015 -->_s0(empty(mapf(three,head(x))),app(nil,true)) # answer(goal).  [ur(87,b,581,a,c,1013,a)].

given #103 (F,wt=9): 1017 -->_s0(empty(mapf(three,head(x))),leq(0,y)) # answer(goal).  [ur(87,b,572,a,c,1013,a)].

given #104 (F,wt=9): 1018 -->_s0(empty(mapf(three,head(x))),sndsplit(0,true)) # answer(goal).  [ur(87,b,567,a,c,1013,a)].

given #105 (T,wt=6): 575 ->*_s0(head(cons(x,y)),x).  [ur(87,a,67,a,b,86,a)].

given #106 (T,wt=6): 576 ->*_s0(fstsplit(s(x),nil),nil).  [ur(87,a,66,a,b,86,a)].

given #107 (T,wt=6): 580 ->*_s0(empty(cons(x,y)),false).  [ur(87,a,62,a,b,86,a)].

given #108 (T,wt=6): 621 ->*_s0(sndsplit(0,length(nil)),0).  [ur(87,a,82,a,b,573,a)].

given #109 (A,wt=15): 95 ->_s0(sndsplit(x,app(cons(y,z),u)),sndsplit(x,cons(y,app(z,u)))).  [ur(53,a,60,a)].

given #110 (F,wt=10): 1014 -->_s0(empty(mapf(three,head(x))),y) | -->*_s0(y,true) # answer(goal).  [resolve(1013,a,87,c)].

given #111 (F,wt=10): 1050 -->_s0(empty(mapf(three,head(x))),tail(cons(y,true))) # answer(goal).  [ur(87,b,564,a,c,1013,a)].

given #112 (F,wt=10): 1092 -->_s0(empty(mapf(three,head(x))),head(cons(true,y))) # answer(goal).  [ur(87,b,575,a,c,1013,a)].

given #113 (F,wt=10): 1133 -->*_s0(empty(x),true) | -->_s0(mapf(three,head(y)),x) # answer(goal).  [resolve(1014,a,37,b)].

given #114 (T,wt=6): 623 ->*_s0(app(nil,length(nil)),0).  [ur(87,a,61,a,b,573,a)].

given #115 (T,wt=6): 626 ->*_s0(sndsplit(0,empty(nil)),true).  [ur(87,a,82,a,b,579,a)].

given #116 (T,wt=6): 628 ->*_s0(app(nil,empty(nil)),true).  [ur(87,a,61,a,b,579,a)].

given #117 (T,wt=6): 687 ->*_s0(s(empty(nil)),s(true)).  [ur(87,a,164,a,b,86,a)].

given #118 (A,wt=15): 96 ->_s0(sndsplit(app(cons(x,y),z),u),sndsplit(cons(x,app(y,z)),u)).  [ur(52,a,60,a)].

given #119 (F,wt=10): 1136 -->*_s0(empty(mapf(three,x)),true) | -->_s0(head(y),x) # answer(goal).  [resolve(1133,b,45,b)].

given #120 (F,wt=6): 1184 -->*_s0(empty(mapf(three,x)),true) # answer(goal).  [resolve(1136,b,67,a)].

============================== PROOF =================================

% Proof 1 at 0.04 (+ 0.00) seconds: goal.
% Length of proof is 26.
% Level of proof is 10.
% Maximum clause weight is 16.000.
% Given clauses 120.

3 ->_s0(x1,y) -> ->_s0(empty(x1),empty(y)) # label(congruence) # label(non_clause).  [assumption].
11 ->_s0(x2,y) -> ->_s0(mapf(x1,x2),mapf(x1,y)) # label(congruence) # label(non_clause).  [assumption].
33 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause).  [assumption].
34 (exists x13 exists x14 exists x15 (->*_s0(empty(fstsplit(x13,x14)),false) & ->*_s0(empty(mapf(three,head(x15))),true))) # label(goal) # label(non_clause) # label(goal).  [goal].
37 -->_s0(x,y) | ->_s0(empty(x),empty(y)) # label(congruence).  [clausify(3)].
45 -->_s0(x,y) | ->_s0(mapf(z,x),mapf(z,y)) # label(congruence).  [clausify(11)].
62 ->_s0(empty(cons(x,y)),false) # label(replacement).  [assumption].
63 ->_s0(empty(nil),true) # label(replacement).  [assumption].
65 ->_s0(fstsplit(s(x),cons(y,z)),cons(y,fstsplit(x,z))) # label(replacement).  [assumption].
67 ->_s0(head(cons(x,y)),x) # label(replacement).  [assumption].
74 ->_s0(mapf(x,nil),nil) # label(replacement).  [assumption].
86 ->*_s0(x,x) # label(reflexivity).  [assumption].
87 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity).  [clausify(33)].
88 -->*_s0(empty(fstsplit(x,y)),false) | -->*_s0(empty(mapf(three,head(z))),true) # label(goal) # answer(goal).  [deny(34)].
461 ->_s0(empty(mapf(x,nil)),empty(nil)).  [ur(37,a,74,a)].
579 ->*_s0(empty(nil),true).  [ur(87,a,63,a,b,86,a)].
580 ->*_s0(empty(cons(x,y)),false).  [ur(87,a,62,a,b,86,a)].
583 -->*_s0(empty(mapf(three,head(x))),true) | -->_s0(empty(fstsplit(y,z)),u) | -->*_s0(u,false) # answer(goal).  [resolve(88,a,87,c)].
612 -->*_s0(empty(mapf(three,head(x))),true) | -->*_s0(empty(y),false) | -->_s0(fstsplit(z,u),y) # answer(goal).  [resolve(583,b,37,b)].
1013 -->*_s0(empty(mapf(three,head(x))),true) # answer(goal).  [resolve(612,c,65,a),unit_del(b,580)].
1014 -->_s0(empty(mapf(three,head(x))),y) | -->*_s0(y,true) # answer(goal).  [resolve(1013,a,87,c)].
1133 -->*_s0(empty(x),true) | -->_s0(mapf(three,head(y)),x) # answer(goal).  [resolve(1014,a,37,b)].
1136 -->*_s0(empty(mapf(three,x)),true) | -->_s0(head(y),x) # answer(goal).  [resolve(1133,b,45,b)].
1184 -->*_s0(empty(mapf(three,x)),true) # answer(goal).  [resolve(1136,b,67,a)].
1189 -->_s0(empty(mapf(three,x)),empty(nil)) # answer(goal).  [ur(87,b,579,a,c,1184,a)].
1190 $F # answer(goal).  [resolve(1189,a,461,a)].

============================== end of proof ==========================

============================== STATISTICS ============================

Given=120. Generated=1190. Kept=1155. proofs=1.
Usable=99. Sos=1012. Demods=0. Limbo=4, Disabled=93. Hints=0.
Kept_by_rule=0, Deleted_by_rule=0.
Forward_subsumed=35. Back_subsumed=39.
Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0.
New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0.
Demod_attempts=0. Demod_rewrites=0.
Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0.
Nonunit_fsub_feature_tests=109. Nonunit_bsub_feature_tests=256.
Megabytes=2.79.
User_CPU=0.04, System_CPU=0.00, Wall_clock=0.

============================== end of statistics =====================

============================== end of search =========================

THEOREM PROVED

Exiting with 1 proof.

Process 3136747 exit (max_proofs) Tue Jul 30 08:23:10 2024


The problem is feasible.