20.039/20.039 NO 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 20.039/20.039 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 Confluence Problem: 20.039/20.039 (VAR vNonEmpty:S x:S x1:S y:S y1:S ys:S) 20.039/20.039 (STRATEGY CONTEXTSENSITIVE 20.039/20.039 (cons 1 2) 20.039/20.039 (lt 1 2) 20.039/20.039 (s 1) 20.039/20.039 (0) 20.039/20.039 (arr 1 2 3) 20.039/20.039 (empty) 20.039/20.039 (fSNonEmpty) 20.039/20.039 (false) 20.039/20.039 (true) 20.039/20.039 ) 20.039/20.039 (RULES 20.039/20.039 cons(s(x:S),cons(s(y:S),arr(ys:S,empty,empty))) -> arr(x1:S,y1:S,ys:S) | lt(x1:S,y1:S) ->* true 20.039/20.039 cons(x:S,cons(y:S,arr(ys:S,empty,empty))) -> arr(x:S,y:S,ys:S) | lt(x:S,y:S) ->* true 20.039/20.039 lt(s(x:S),s(y:S)) -> lt(x:S,y:S) 20.039/20.039 lt(0,s(y:S)) -> true 20.039/20.039 lt(x:S,0) -> false 20.039/20.039 s(x:S) -> x1:S 20.039/20.039 ) 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 20.039/20.039 Inlining of Conditions Processor [STERN17]: 20.039/20.039 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 Confluence Problem: 20.039/20.039 (VAR vNonEmpty:S x:S x1:S y:S y1:S ys:S) 20.039/20.039 (STRATEGY CONTEXTSENSITIVE 20.039/20.039 (cons 1 2) 20.039/20.039 (lt 1 2) 20.039/20.039 (s 1) 20.039/20.039 (0) 20.039/20.039 (arr 1 2 3) 20.039/20.039 (empty) 20.039/20.039 (fSNonEmpty) 20.039/20.039 (false) 20.039/20.039 (true) 20.039/20.039 ) 20.039/20.039 (RULES 20.039/20.039 cons(s(x:S),cons(s(y:S),arr(ys:S,empty,empty))) -> arr(x1:S,y1:S,ys:S) | lt(x1:S,y1:S) ->* true 20.039/20.039 cons(x:S,cons(y:S,arr(ys:S,empty,empty))) -> arr(x:S,y:S,ys:S) | lt(x:S,y:S) ->* true 20.039/20.039 lt(s(x:S),s(y:S)) -> lt(x:S,y:S) 20.039/20.039 lt(0,s(y:S)) -> true 20.039/20.039 lt(x:S,0) -> false 20.039/20.039 s(x:S) -> x1:S 20.039/20.039 ) 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 20.039/20.039 Clean CTRS Processor: 20.039/20.039 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 Confluence Problem: 20.039/20.039 (VAR x:S x1:S y:S y1:S ys:S) 20.039/20.039 (STRATEGY CONTEXTSENSITIVE 20.039/20.039 (cons 1 2) 20.039/20.039 (lt 1 2) 20.039/20.039 (s 1) 20.039/20.039 (0) 20.039/20.039 (arr 1 2 3) 20.039/20.039 (empty) 20.039/20.039 (fSNonEmpty) 20.039/20.039 (false) 20.039/20.039 (true) 20.039/20.039 ) 20.039/20.039 (RULES 20.039/20.039 cons(s(x:S),cons(s(y:S),arr(ys:S,empty,empty))) -> arr(x1:S,y1:S,ys:S) | lt(x1:S,y1:S) ->* true 20.039/20.039 cons(x:S,cons(y:S,arr(ys:S,empty,empty))) -> arr(x:S,y:S,ys:S) | lt(x:S,y:S) ->* true 20.039/20.039 lt(s(x:S),s(y:S)) -> lt(x:S,y:S) 20.039/20.039 lt(0,s(y:S)) -> true 20.039/20.039 lt(x:S,0) -> false 20.039/20.039 s(x:S) -> x1:S 20.039/20.039 ) 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 20.039/20.039 CRule InfChecker Info: 20.039/20.039 cons(s(x:S),cons(s(y:S),arr(ys:S,empty,empty))) -> arr(x1:S,y1:S,ys:S) | lt(x1:S,y1:S) ->* true 20.039/20.039 Rule remains 20.039/20.039 Proof: 20.039/20.039 NO 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 20.039/20.039 Infeasibility Problem: 20.039/20.039 [(VAR vNonEmpty:S vNonEmpty:S:S x:S:S x1:S:S y:S:S y1:S:S ys:S:S) 20.039/20.039 (STRATEGY CONTEXTSENSITIVE 20.039/20.039 (cons 1 2) 20.039/20.039 (lt 1 2) 20.039/20.039 (s 1) 20.039/20.039 (0) 20.039/20.039 (arr 1 2 3) 20.039/20.039 (empty) 20.039/20.039 (fSNonEmpty) 20.039/20.039 (false) 20.039/20.039 (true) 20.039/20.039 ) 20.039/20.039 (RULES 20.039/20.039 cons(s(x:S:S),cons(s(y:S:S),arr(ys:S:S,empty,empty))) -> arr(x1:S:S,y1:S:S,ys:S:S) | lt(x1:S:S,y1:S:S) ->* true 20.039/20.039 cons(x:S:S,cons(y:S:S,arr(ys:S:S,empty,empty))) -> arr(x:S:S,y:S:S,ys:S:S) | lt(x:S:S,y:S:S) ->* true 20.039/20.039 lt(s(x:S:S),s(y:S:S)) -> lt(x:S:S,y:S:S) 20.039/20.039 lt(0,s(y:S:S)) -> true 20.039/20.039 lt(x:S:S,0) -> false 20.039/20.039 s(x:S:S) -> x1:S:S 20.039/20.039 )] 20.039/20.039 20.039/20.039 Infeasibility Conditions: 20.039/20.039 lt(x1:S:S,y1:S:S) ->* true 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 20.039/20.039 Obtaining a proof using Prover9: 20.039/20.039 20.039/20.039 -> Prover9 Output: 20.039/20.039 ============================== Prover9 =============================== 20.039/20.039 Prover9 (64) version 2009-11A, November 2009. 20.039/20.039 Process 31824 was started by ubuntu on ubuntu, 20.039/20.039 Wed Jul 14 09:40:14 2021 20.039/20.039 The command was "./prover9 -f /tmp/prover931817-0.in". 20.039/20.039 ============================== end of head =========================== 20.039/20.039 20.039/20.039 ============================== INPUT ================================= 20.039/20.039 20.039/20.039 % Reading from file /tmp/prover931817-0.in 20.039/20.039 20.039/20.039 assign(max_seconds,20). 20.039/20.039 20.039/20.039 formulas(assumptions). 20.039/20.039 ->*_s0(x,x) # label(reflexivity). 20.039/20.039 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 20.039/20.039 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence). 20.039/20.039 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence). 20.039/20.039 ->_s0(x1,y) -> ->_s0(lt(x1,x2),lt(y,x2)) # label(congruence). 20.039/20.039 ->_s0(x2,y) -> ->_s0(lt(x1,x2),lt(x1,y)) # label(congruence). 20.039/20.039 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 20.039/20.039 ->_s0(x1,y) -> ->_s0(arr(x1,x2,x3),arr(y,x2,x3)) # label(congruence). 20.039/20.039 ->_s0(x2,y) -> ->_s0(arr(x1,x2,x3),arr(x1,y,x3)) # label(congruence). 20.039/20.039 ->_s0(x3,y) -> ->_s0(arr(x1,x2,x3),arr(x1,x2,y)) # label(congruence). 20.039/20.039 ->*_s0(lt(x3,x5),true) -> ->_s0(cons(s(x2),cons(s(x4),arr(x6,empty,empty))),arr(x3,x5,x6)) # label(replacement). 20.039/20.039 ->*_s0(lt(x2,x4),true) -> ->_s0(cons(x2,cons(x4,arr(x6,empty,empty))),arr(x2,x4,x6)) # label(replacement). 20.039/20.039 ->_s0(lt(s(x2),s(x4)),lt(x2,x4)) # label(replacement). 20.039/20.039 ->_s0(lt(0,s(x4)),true) # label(replacement). 20.039/20.039 ->_s0(lt(x2,0),false) # label(replacement). 20.039/20.039 ->_s0(s(x2),x3) # label(replacement). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(goals). 20.039/20.039 (exists x3 exists x5 ->*_s0(lt(x3,x5),true)) # label(goal). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 ============================== end of input ========================== 20.039/20.039 20.039/20.039 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 20.039/20.039 20.039/20.039 % Formulas that are not ordinary clauses: 20.039/20.039 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 20.039/20.039 2 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 3 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 4 ->_s0(x1,y) -> ->_s0(lt(x1,x2),lt(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 5 ->_s0(x2,y) -> ->_s0(lt(x1,x2),lt(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 6 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 7 ->_s0(x1,y) -> ->_s0(arr(x1,x2,x3),arr(y,x2,x3)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 8 ->_s0(x2,y) -> ->_s0(arr(x1,x2,x3),arr(x1,y,x3)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 9 ->_s0(x3,y) -> ->_s0(arr(x1,x2,x3),arr(x1,x2,y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 10 ->*_s0(lt(x3,x5),true) -> ->_s0(cons(s(x2),cons(s(x4),arr(x6,empty,empty))),arr(x3,x5,x6)) # label(replacement) # label(non_clause). [assumption]. 20.039/20.039 11 ->*_s0(lt(x2,x4),true) -> ->_s0(cons(x2,cons(x4,arr(x6,empty,empty))),arr(x2,x4,x6)) # label(replacement) # label(non_clause). [assumption]. 20.039/20.039 12 (exists x3 exists x5 ->*_s0(lt(x3,x5),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 20.039/20.039 20.039/20.039 ============================== end of process non-clausal formulas === 20.039/20.039 20.039/20.039 ============================== PROCESS INITIAL CLAUSES =============== 20.039/20.039 20.039/20.039 % Clauses before input processing: 20.039/20.039 20.039/20.039 formulas(usable). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(sos). 20.039/20.039 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.039/20.039 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 20.039/20.039 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(2)]. 20.039/20.039 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(3)]. 20.039/20.039 -->_s0(x,y) | ->_s0(lt(x,z),lt(y,z)) # label(congruence). [clausify(4)]. 20.039/20.039 -->_s0(x,y) | ->_s0(lt(z,x),lt(z,y)) # label(congruence). [clausify(5)]. 20.039/20.039 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(6)]. 20.039/20.039 -->_s0(x,y) | ->_s0(arr(x,z,u),arr(y,z,u)) # label(congruence). [clausify(7)]. 20.039/20.039 -->_s0(x,y) | ->_s0(arr(z,x,u),arr(z,y,u)) # label(congruence). [clausify(8)]. 20.039/20.039 -->_s0(x,y) | ->_s0(arr(z,u,x),arr(z,u,y)) # label(congruence). [clausify(9)]. 20.039/20.039 -->*_s0(lt(x,y),true) | ->_s0(cons(s(z),cons(s(u),arr(w,empty,empty))),arr(x,y,w)) # label(replacement). [clausify(10)]. 20.039/20.039 -->*_s0(lt(x,y),true) | ->_s0(cons(x,cons(y,arr(z,empty,empty))),arr(x,y,z)) # label(replacement). [clausify(11)]. 20.039/20.039 ->_s0(lt(s(x),s(y)),lt(x,y)) # label(replacement). [assumption]. 20.039/20.039 ->_s0(lt(0,s(x)),true) # label(replacement). [assumption]. 20.039/20.039 ->_s0(lt(x,0),false) # label(replacement). [assumption]. 20.039/20.039 ->_s0(s(x),y) # label(replacement). [assumption]. 20.039/20.039 -->*_s0(lt(x,y),true) # label(goal). [deny(12)]. 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(demodulators). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 ============================== PREDICATE ELIMINATION ================= 20.039/20.039 20.039/20.039 No predicates eliminated. 20.039/20.039 20.039/20.039 ============================== end predicate elimination ============= 20.039/20.039 20.039/20.039 Auto_denials: 20.039/20.039 % copying label goal to answer in negative clause 20.039/20.039 20.039/20.039 Term ordering decisions: 20.039/20.039 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 20.039/20.039 Function symbol precedence: function_order([ empty, true, 0, false, lt, cons, s, arr ]). 20.039/20.039 After inverse_order: (no changes). 20.039/20.039 Unfolding symbols: (none). 20.039/20.039 20.039/20.039 Auto_inference settings: 20.039/20.039 % set(neg_binary_resolution). % (HNE depth_diff=-12) 20.039/20.039 % clear(ordered_res). % (HNE depth_diff=-12) 20.039/20.039 % set(ur_resolution). % (HNE depth_diff=-12) 20.039/20.039 % set(ur_resolution) -> set(pos_ur_resolution). 20.039/20.039 % set(ur_resolution) -> set(neg_ur_resolution). 20.039/20.039 20.039/20.039 Auto_process settings: (no changes). 20.039/20.039 20.039/20.039 kept: 13 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.039/20.039 kept: 14 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 20.039/20.039 kept: 15 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(2)]. 20.039/20.039 kept: 16 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(3)]. 20.039/20.039 kept: 17 -->_s0(x,y) | ->_s0(lt(x,z),lt(y,z)) # label(congruence). [clausify(4)]. 20.039/20.039 kept: 18 -->_s0(x,y) | ->_s0(lt(z,x),lt(z,y)) # label(congruence). [clausify(5)]. 20.039/20.039 kept: 19 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(6)]. 20.039/20.039 kept: 20 -->_s0(x,y) | ->_s0(arr(x,z,u),arr(y,z,u)) # label(congruence). [clausify(7)]. 20.039/20.039 kept: 21 -->_s0(x,y) | ->_s0(arr(z,x,u),arr(z,y,u)) # label(congruence). [clausify(8)]. 20.039/20.039 kept: 22 -->_s0(x,y) | ->_s0(arr(z,u,x),arr(z,u,y)) # label(congruence). [clausify(9)]. 20.039/20.039 kept: 23 -->*_s0(lt(x,y),true) | ->_s0(cons(s(z),cons(s(u),arr(w,empty,empty))),arr(x,y,w)) # label(replacement). [clausify(10)]. 20.039/20.039 kept: 24 -->*_s0(lt(x,y),true) | ->_s0(cons(x,cons(y,arr(z,empty,empty))),arr(x,y,z)) # label(replacement). [clausify(11)]. 20.039/20.039 kept: 25 ->_s0(lt(s(x),s(y)),lt(x,y)) # label(replacement). [assumption]. 20.039/20.039 kept: 26 ->_s0(lt(0,s(x)),true) # label(replacement). [assumption]. 20.039/20.039 kept: 27 ->_s0(lt(x,0),false) # label(replacement). [assumption]. 20.039/20.039 kept: 28 ->_s0(s(x),y) # label(replacement). [assumption]. 20.039/20.039 kept: 29 -->*_s0(lt(x,y),true) # label(goal) # answer(goal). [deny(12)]. 20.039/20.039 20.039/20.039 ============================== end of process initial clauses ======== 20.039/20.039 20.039/20.039 ============================== CLAUSES FOR SEARCH ==================== 20.039/20.039 20.039/20.039 % Clauses after input processing: 20.039/20.039 20.039/20.039 formulas(usable). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(sos). 20.039/20.039 13 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.039/20.039 14 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 20.039/20.039 15 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(2)]. 20.039/20.039 16 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(3)]. 20.039/20.039 17 -->_s0(x,y) | ->_s0(lt(x,z),lt(y,z)) # label(congruence). [clausify(4)]. 20.039/20.039 18 -->_s0(x,y) | ->_s0(lt(z,x),lt(z,y)) # label(congruence). [clausify(5)]. 20.039/20.039 20 -->_s0(x,y) | ->_s0(arr(x,z,u),arr(y,z,u)) # label(congruence). [clausify(7)]. 20.039/20.039 21 -->_s0(x,y) | ->_s0(arr(z,x,u),arr(z,y,u)) # label(congruence). [clausify(8)]. 20.039/20.039 22 -->_s0(x,y) | ->_s0(arr(z,u,x),arr(z,u,y)) # label(congruence). [clausify(9)]. 20.039/20.039 25 ->_s0(lt(s(x),s(y)),lt(x,y)) # label(replacement). [assumption]. 20.039/20.039 26 ->_s0(lt(0,s(x)),true) # label(replacement). [assumption]. 20.039/20.039 27 ->_s0(lt(x,0),false) # label(replacement). [assumption]. 20.039/20.039 28 ->_s0(s(x),y) # label(replacement). [assumption]. 20.039/20.039 29 -->*_s0(lt(x,y),true) # label(goal) # answer(goal). [deny(12)]. 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(demodulators). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 ============================== end of clauses for search ============= 20.039/20.039 20.039/20.039 ============================== SEARCH ================================ 20.039/20.039 20.039/20.039 % Starting search at 0.00 seconds. 20.039/20.039 20.039/20.039 given #1 (I,wt=3): 13 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.039/20.039 20.039/20.039 given #2 (I,wt=9): 14 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 20.039/20.039 20.039/20.039 given #3 (I,wt=10): 15 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(2)]. 20.039/20.039 20.039/20.039 given #4 (I,wt=10): 16 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(3)]. 20.039/20.039 20.039/20.039 given #5 (I,wt=10): 17 -->_s0(x,y) | ->_s0(lt(x,z),lt(y,z)) # label(congruence). [clausify(4)]. 20.039/20.039 20.039/20.039 given #6 (I,wt=10): 18 -->_s0(x,y) | ->_s0(lt(z,x),lt(z,y)) # label(congruence). [clausify(5)]. 20.039/20.039 20.039/20.039 given #7 (I,wt=12): 20 -->_s0(x,y) | ->_s0(arr(x,z,u),arr(y,z,u)) # label(congruence). [clausify(7)]. 20.039/20.039 20.039/20.039 given #8 (I,wt=12): 21 -->_s0(x,y) | ->_s0(arr(z,x,u),arr(z,y,u)) # label(congruence). [clausify(8)]. 20.039/20.039 20.039/20.039 given #9 (I,wt=12): 22 -->_s0(x,y) | ->_s0(arr(z,u,x),arr(z,u,y)) # label(congruence). [clausify(9)]. 20.039/20.039 20.039/20.039 given #10 (I,wt=9): 25 ->_s0(lt(s(x),s(y)),lt(x,y)) # label(replacement). [assumption]. 20.039/20.039 20.039/20.039 given #11 (I,wt=6): 26 ->_s0(lt(0,s(x)),true) # label(replacement). [assumption]. 20.039/20.039 20.039/20.039 ============================== PROOF ================================= 20.039/20.039 20.039/20.039 % Proof 1 at 0.00 (+ 0.00) seconds: goal. 20.039/20.039 % Length of proof is 8. 20.039/20.039 % Level of proof is 3. 20.039/20.039 % Maximum clause weight is 9.000. 20.039/20.039 % Given clauses 11. 20.039/20.039 20.039/20.039 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 20.039/20.039 12 (exists x3 exists x5 ->*_s0(lt(x3,x5),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 20.039/20.039 13 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.039/20.039 14 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 20.039/20.039 26 ->_s0(lt(0,s(x)),true) # label(replacement). [assumption]. 20.039/20.039 29 -->*_s0(lt(x,y),true) # label(goal) # answer(goal). [deny(12)]. 20.039/20.039 45 ->*_s0(lt(0,s(x)),true). [ur(14,a,26,a,b,13,a)]. 20.039/20.039 46 $F # answer(goal). [resolve(45,a,29,a)]. 20.039/20.039 20.039/20.039 ============================== end of proof ========================== 20.039/20.039 20.039/20.039 ============================== STATISTICS ============================ 20.039/20.039 20.039/20.039 Given=11. Generated=33. Kept=33. proofs=1. 20.039/20.039 Usable=11. Sos=11. Demods=0. Limbo=7, Disabled=20. Hints=0. 20.039/20.039 Kept_by_rule=0, Deleted_by_rule=0. 20.039/20.039 Forward_subsumed=0. Back_subsumed=3. 20.039/20.039 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 20.039/20.039 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 20.039/20.039 Demod_attempts=0. Demod_rewrites=0. 20.039/20.039 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 20.039/20.039 Nonunit_fsub_feature_tests=5. Nonunit_bsub_feature_tests=27. 20.039/20.039 Megabytes=0.12. 20.039/20.039 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 20.039/20.039 20.039/20.039 ============================== end of statistics ===================== 20.039/20.039 20.039/20.039 ============================== end of search ========================= 20.039/20.039 20.039/20.039 THEOREM PROVED 20.039/20.039 20.039/20.039 Exiting with 1 proof. 20.039/20.039 20.039/20.039 Process 31824 exit (max_proofs) Wed Jul 14 09:40:14 2021 20.039/20.039 20.039/20.039 20.039/20.039 The problem is feasible. 20.039/20.039 20.039/20.039 20.039/20.039 CRule InfChecker Info: 20.039/20.039 cons(x:S,cons(y:S,arr(ys:S,empty,empty))) -> arr(x:S,y:S,ys:S) | lt(x:S,y:S) ->* true 20.039/20.039 Rule remains 20.039/20.039 Proof: 20.039/20.039 NO 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 20.039/20.039 Infeasibility Problem: 20.039/20.039 [(VAR vNonEmpty:S vNonEmpty:S:S x:S:S x1:S:S y:S:S y1:S:S ys:S:S) 20.039/20.039 (STRATEGY CONTEXTSENSITIVE 20.039/20.039 (cons 1 2) 20.039/20.039 (lt 1 2) 20.039/20.039 (s 1) 20.039/20.039 (0) 20.039/20.039 (arr 1 2 3) 20.039/20.039 (empty) 20.039/20.039 (fSNonEmpty) 20.039/20.039 (false) 20.039/20.039 (true) 20.039/20.039 ) 20.039/20.039 (RULES 20.039/20.039 cons(s(x:S:S),cons(s(y:S:S),arr(ys:S:S,empty,empty))) -> arr(x1:S:S,y1:S:S,ys:S:S) | lt(x1:S:S,y1:S:S) ->* true 20.039/20.039 cons(x:S:S,cons(y:S:S,arr(ys:S:S,empty,empty))) -> arr(x:S:S,y:S:S,ys:S:S) | lt(x:S:S,y:S:S) ->* true 20.039/20.039 lt(s(x:S:S),s(y:S:S)) -> lt(x:S:S,y:S:S) 20.039/20.039 lt(0,s(y:S:S)) -> true 20.039/20.039 lt(x:S:S,0) -> false 20.039/20.039 s(x:S:S) -> x1:S:S 20.039/20.039 )] 20.039/20.039 20.039/20.039 Infeasibility Conditions: 20.039/20.039 lt(x:S:S,y:S:S) ->* true 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 20.039/20.039 Obtaining a proof using Prover9: 20.039/20.039 20.039/20.039 -> Prover9 Output: 20.039/20.039 ============================== Prover9 =============================== 20.039/20.039 Prover9 (64) version 2009-11A, November 2009. 20.039/20.039 Process 31846 was started by ubuntu on ubuntu, 20.039/20.039 Wed Jul 14 09:40:14 2021 20.039/20.039 The command was "./prover9 -f /tmp/prover931839-0.in". 20.039/20.039 ============================== end of head =========================== 20.039/20.039 20.039/20.039 ============================== INPUT ================================= 20.039/20.039 20.039/20.039 % Reading from file /tmp/prover931839-0.in 20.039/20.039 20.039/20.039 assign(max_seconds,20). 20.039/20.039 20.039/20.039 formulas(assumptions). 20.039/20.039 ->*_s0(x,x) # label(reflexivity). 20.039/20.039 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 20.039/20.039 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence). 20.039/20.039 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence). 20.039/20.039 ->_s0(x1,y) -> ->_s0(lt(x1,x2),lt(y,x2)) # label(congruence). 20.039/20.039 ->_s0(x2,y) -> ->_s0(lt(x1,x2),lt(x1,y)) # label(congruence). 20.039/20.039 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 20.039/20.039 ->_s0(x1,y) -> ->_s0(arr(x1,x2,x3),arr(y,x2,x3)) # label(congruence). 20.039/20.039 ->_s0(x2,y) -> ->_s0(arr(x1,x2,x3),arr(x1,y,x3)) # label(congruence). 20.039/20.039 ->_s0(x3,y) -> ->_s0(arr(x1,x2,x3),arr(x1,x2,y)) # label(congruence). 20.039/20.039 ->*_s0(lt(x3,x5),true) -> ->_s0(cons(s(x2),cons(s(x4),arr(x6,empty,empty))),arr(x3,x5,x6)) # label(replacement). 20.039/20.039 ->*_s0(lt(x2,x4),true) -> ->_s0(cons(x2,cons(x4,arr(x6,empty,empty))),arr(x2,x4,x6)) # label(replacement). 20.039/20.039 ->_s0(lt(s(x2),s(x4)),lt(x2,x4)) # label(replacement). 20.039/20.039 ->_s0(lt(0,s(x4)),true) # label(replacement). 20.039/20.039 ->_s0(lt(x2,0),false) # label(replacement). 20.039/20.039 ->_s0(s(x2),x3) # label(replacement). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(goals). 20.039/20.039 (exists x2 exists x4 ->*_s0(lt(x2,x4),true)) # label(goal). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 ============================== end of input ========================== 20.039/20.039 20.039/20.039 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 20.039/20.039 20.039/20.039 % Formulas that are not ordinary clauses: 20.039/20.039 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 20.039/20.039 2 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 3 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 4 ->_s0(x1,y) -> ->_s0(lt(x1,x2),lt(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 5 ->_s0(x2,y) -> ->_s0(lt(x1,x2),lt(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 6 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 7 ->_s0(x1,y) -> ->_s0(arr(x1,x2,x3),arr(y,x2,x3)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 8 ->_s0(x2,y) -> ->_s0(arr(x1,x2,x3),arr(x1,y,x3)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 9 ->_s0(x3,y) -> ->_s0(arr(x1,x2,x3),arr(x1,x2,y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 10 ->*_s0(lt(x3,x5),true) -> ->_s0(cons(s(x2),cons(s(x4),arr(x6,empty,empty))),arr(x3,x5,x6)) # label(replacement) # label(non_clause). [assumption]. 20.039/20.039 11 ->*_s0(lt(x2,x4),true) -> ->_s0(cons(x2,cons(x4,arr(x6,empty,empty))),arr(x2,x4,x6)) # label(replacement) # label(non_clause). [assumption]. 20.039/20.039 12 (exists x2 exists x4 ->*_s0(lt(x2,x4),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 20.039/20.039 20.039/20.039 ============================== end of process non-clausal formulas === 20.039/20.039 20.039/20.039 ============================== PROCESS INITIAL CLAUSES =============== 20.039/20.039 20.039/20.039 % Clauses before input processing: 20.039/20.039 20.039/20.039 formulas(usable). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(sos). 20.039/20.039 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.039/20.039 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 20.039/20.039 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(2)]. 20.039/20.039 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(3)]. 20.039/20.039 -->_s0(x,y) | ->_s0(lt(x,z),lt(y,z)) # label(congruence). [clausify(4)]. 20.039/20.039 -->_s0(x,y) | ->_s0(lt(z,x),lt(z,y)) # label(congruence). [clausify(5)]. 20.039/20.039 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(6)]. 20.039/20.039 -->_s0(x,y) | ->_s0(arr(x,z,u),arr(y,z,u)) # label(congruence). [clausify(7)]. 20.039/20.039 -->_s0(x,y) | ->_s0(arr(z,x,u),arr(z,y,u)) # label(congruence). [clausify(8)]. 20.039/20.039 -->_s0(x,y) | ->_s0(arr(z,u,x),arr(z,u,y)) # label(congruence). [clausify(9)]. 20.039/20.039 -->*_s0(lt(x,y),true) | ->_s0(cons(s(z),cons(s(u),arr(w,empty,empty))),arr(x,y,w)) # label(replacement). [clausify(10)]. 20.039/20.039 -->*_s0(lt(x,y),true) | ->_s0(cons(x,cons(y,arr(z,empty,empty))),arr(x,y,z)) # label(replacement). [clausify(11)]. 20.039/20.039 ->_s0(lt(s(x),s(y)),lt(x,y)) # label(replacement). [assumption]. 20.039/20.039 ->_s0(lt(0,s(x)),true) # label(replacement). [assumption]. 20.039/20.039 ->_s0(lt(x,0),false) # label(replacement). [assumption]. 20.039/20.039 ->_s0(s(x),y) # label(replacement). [assumption]. 20.039/20.039 -->*_s0(lt(x,y),true) # label(goal). [deny(12)]. 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(demodulators). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 ============================== PREDICATE ELIMINATION ================= 20.039/20.039 20.039/20.039 No predicates eliminated. 20.039/20.039 20.039/20.039 ============================== end predicate elimination ============= 20.039/20.039 20.039/20.039 Auto_denials: 20.039/20.039 % copying label goal to answer in negative clause 20.039/20.039 20.039/20.039 Term ordering decisions: 20.039/20.039 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 20.039/20.039 Function symbol precedence: function_order([ empty, true, 0, false, lt, cons, s, arr ]). 20.039/20.039 After inverse_order: (no changes). 20.039/20.039 Unfolding symbols: (none). 20.039/20.039 20.039/20.039 Auto_inference settings: 20.039/20.039 % set(neg_binary_resolution). % (HNE depth_diff=-12) 20.039/20.039 % clear(ordered_res). % (HNE depth_diff=-12) 20.039/20.039 % set(ur_resolution). % (HNE depth_diff=-12) 20.039/20.039 % set(ur_resolution) -> set(pos_ur_resolution). 20.039/20.039 % set(ur_resolution) -> set(neg_ur_resolution). 20.039/20.039 20.039/20.039 Auto_process settings: (no changes). 20.039/20.039 20.039/20.039 kept: 13 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.039/20.039 kept: 14 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 20.039/20.039 kept: 15 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(2)]. 20.039/20.039 kept: 16 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(3)]. 20.039/20.039 kept: 17 -->_s0(x,y) | ->_s0(lt(x,z),lt(y,z)) # label(congruence). [clausify(4)]. 20.039/20.039 kept: 18 -->_s0(x,y) | ->_s0(lt(z,x),lt(z,y)) # label(congruence). [clausify(5)]. 20.039/20.039 kept: 19 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(6)]. 20.039/20.039 kept: 20 -->_s0(x,y) | ->_s0(arr(x,z,u),arr(y,z,u)) # label(congruence). [clausify(7)]. 20.039/20.039 kept: 21 -->_s0(x,y) | ->_s0(arr(z,x,u),arr(z,y,u)) # label(congruence). [clausify(8)]. 20.039/20.039 kept: 22 -->_s0(x,y) | ->_s0(arr(z,u,x),arr(z,u,y)) # label(congruence). [clausify(9)]. 20.039/20.039 kept: 23 -->*_s0(lt(x,y),true) | ->_s0(cons(s(z),cons(s(u),arr(w,empty,empty))),arr(x,y,w)) # label(replacement). [clausify(10)]. 20.039/20.039 kept: 24 -->*_s0(lt(x,y),true) | ->_s0(cons(x,cons(y,arr(z,empty,empty))),arr(x,y,z)) # label(replacement). [clausify(11)]. 20.039/20.039 kept: 25 ->_s0(lt(s(x),s(y)),lt(x,y)) # label(replacement). [assumption]. 20.039/20.039 kept: 26 ->_s0(lt(0,s(x)),true) # label(replacement). [assumption]. 20.039/20.039 kept: 27 ->_s0(lt(x,0),false) # label(replacement). [assumption]. 20.039/20.039 kept: 28 ->_s0(s(x),y) # label(replacement). [assumption]. 20.039/20.039 kept: 29 -->*_s0(lt(x,y),true) # label(goal) # answer(goal). [deny(12)]. 20.039/20.039 20.039/20.039 ============================== end of process initial clauses ======== 20.039/20.039 20.039/20.039 ============================== CLAUSES FOR SEARCH ==================== 20.039/20.039 20.039/20.039 % Clauses after input processing: 20.039/20.039 20.039/20.039 formulas(usable). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(sos). 20.039/20.039 13 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.039/20.039 14 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 20.039/20.039 15 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(2)]. 20.039/20.039 16 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(3)]. 20.039/20.039 17 -->_s0(x,y) | ->_s0(lt(x,z),lt(y,z)) # label(congruence). [clausify(4)]. 20.039/20.039 18 -->_s0(x,y) | ->_s0(lt(z,x),lt(z,y)) # label(congruence). [clausify(5)]. 20.039/20.039 20 -->_s0(x,y) | ->_s0(arr(x,z,u),arr(y,z,u)) # label(congruence). [clausify(7)]. 20.039/20.039 21 -->_s0(x,y) | ->_s0(arr(z,x,u),arr(z,y,u)) # label(congruence). [clausify(8)]. 20.039/20.039 22 -->_s0(x,y) | ->_s0(arr(z,u,x),arr(z,u,y)) # label(congruence). [clausify(9)]. 20.039/20.039 25 ->_s0(lt(s(x),s(y)),lt(x,y)) # label(replacement). [assumption]. 20.039/20.039 26 ->_s0(lt(0,s(x)),true) # label(replacement). [assumption]. 20.039/20.039 27 ->_s0(lt(x,0),false) # label(replacement). [assumption]. 20.039/20.039 28 ->_s0(s(x),y) # label(replacement). [assumption]. 20.039/20.039 29 -->*_s0(lt(x,y),true) # label(goal) # answer(goal). [deny(12)]. 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(demodulators). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 ============================== end of clauses for search ============= 20.039/20.039 20.039/20.039 ============================== SEARCH ================================ 20.039/20.039 20.039/20.039 % Starting search at 0.00 seconds. 20.039/20.039 20.039/20.039 given #1 (I,wt=3): 13 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.039/20.039 20.039/20.039 given #2 (I,wt=9): 14 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 20.039/20.039 20.039/20.039 given #3 (I,wt=10): 15 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(2)]. 20.039/20.039 20.039/20.039 given #4 (I,wt=10): 16 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(3)]. 20.039/20.039 20.039/20.039 given #5 (I,wt=10): 17 -->_s0(x,y) | ->_s0(lt(x,z),lt(y,z)) # label(congruence). [clausify(4)]. 20.039/20.039 20.039/20.039 given #6 (I,wt=10): 18 -->_s0(x,y) | ->_s0(lt(z,x),lt(z,y)) # label(congruence). [clausify(5)]. 20.039/20.039 20.039/20.039 given #7 (I,wt=12): 20 -->_s0(x,y) | ->_s0(arr(x,z,u),arr(y,z,u)) # label(congruence). [clausify(7)]. 20.039/20.039 20.039/20.039 given #8 (I,wt=12): 21 -->_s0(x,y) | ->_s0(arr(z,x,u),arr(z,y,u)) # label(congruence). [clausify(8)]. 20.039/20.039 20.039/20.039 given #9 (I,wt=12): 22 -->_s0(x,y) | ->_s0(arr(z,u,x),arr(z,u,y)) # label(congruence). [clausify(9)]. 20.039/20.039 20.039/20.039 given #10 (I,wt=9): 25 ->_s0(lt(s(x),s(y)),lt(x,y)) # label(replacement). [assumption]. 20.039/20.039 20.039/20.039 given #11 (I,wt=6): 26 ->_s0(lt(0,s(x)),true) # label(replacement). [assumption]. 20.039/20.039 20.039/20.039 ============================== PROOF ================================= 20.039/20.039 20.039/20.039 % Proof 1 at 0.00 (+ 0.00) seconds: goal. 20.039/20.039 % Length of proof is 8. 20.039/20.039 % Level of proof is 3. 20.039/20.039 % Maximum clause weight is 9.000. 20.039/20.039 % Given clauses 11. 20.039/20.039 20.039/20.039 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 20.039/20.039 12 (exists x2 exists x4 ->*_s0(lt(x2,x4),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 20.039/20.039 13 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.039/20.039 14 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 20.039/20.039 26 ->_s0(lt(0,s(x)),true) # label(replacement). [assumption]. 20.039/20.039 29 -->*_s0(lt(x,y),true) # label(goal) # answer(goal). [deny(12)]. 20.039/20.039 45 ->*_s0(lt(0,s(x)),true). [ur(14,a,26,a,b,13,a)]. 20.039/20.039 46 $F # answer(goal). [resolve(45,a,29,a)]. 20.039/20.039 20.039/20.039 ============================== end of proof ========================== 20.039/20.039 20.039/20.039 ============================== STATISTICS ============================ 20.039/20.039 20.039/20.039 Given=11. Generated=33. Kept=33. proofs=1. 20.039/20.039 Usable=11. Sos=11. Demods=0. Limbo=7, Disabled=20. Hints=0. 20.039/20.039 Kept_by_rule=0, Deleted_by_rule=0. 20.039/20.039 Forward_subsumed=0. Back_subsumed=3. 20.039/20.039 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 20.039/20.039 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 20.039/20.039 Demod_attempts=0. Demod_rewrites=0. 20.039/20.039 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 20.039/20.039 Nonunit_fsub_feature_tests=5. Nonunit_bsub_feature_tests=27. 20.039/20.039 Megabytes=0.12. 20.039/20.039 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 20.039/20.039 20.039/20.039 ============================== end of statistics ===================== 20.039/20.039 20.039/20.039 ============================== end of search ========================= 20.039/20.039 20.039/20.039 THEOREM PROVED 20.039/20.039 20.039/20.039 Exiting with 1 proof. 20.039/20.039 20.039/20.039 Process 31846 exit (max_proofs) Wed Jul 14 09:40:14 2021 20.039/20.039 20.039/20.039 20.039/20.039 The problem is feasible. 20.039/20.039 20.039/20.039 20.039/20.039 CRule InfChecker Info: 20.039/20.039 lt(s(x:S),s(y:S)) -> lt(x:S,y:S) 20.039/20.039 Rule remains 20.039/20.039 Proof: 20.039/20.039 NO_CONDS 20.039/20.039 20.039/20.039 CRule InfChecker Info: 20.039/20.039 lt(0,s(y:S)) -> true 20.039/20.039 Rule remains 20.039/20.039 Proof: 20.039/20.039 NO_CONDS 20.039/20.039 20.039/20.039 CRule InfChecker Info: 20.039/20.039 lt(x:S,0) -> false 20.039/20.039 Rule remains 20.039/20.039 Proof: 20.039/20.039 NO_CONDS 20.039/20.039 20.039/20.039 CRule InfChecker Info: 20.039/20.039 s(x:S) -> x1:S 20.039/20.039 Rule remains 20.039/20.039 Proof: 20.039/20.039 NO_CONDS 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 Confluence Problem: 20.039/20.039 (VAR x:S x1:S y:S y1:S ys:S) 20.039/20.039 (STRATEGY CONTEXTSENSITIVE 20.039/20.039 (cons 1 2) 20.039/20.039 (lt 1 2) 20.039/20.039 (s 1) 20.039/20.039 (0) 20.039/20.039 (arr 1 2 3) 20.039/20.039 (empty) 20.039/20.039 (fSNonEmpty) 20.039/20.039 (false) 20.039/20.039 (true) 20.039/20.039 ) 20.039/20.039 (RULES 20.039/20.039 cons(s(x:S),cons(s(y:S),arr(ys:S,empty,empty))) -> arr(x1:S,y1:S,ys:S) | lt(x1:S,y1:S) ->* true 20.039/20.039 cons(x:S,cons(y:S,arr(ys:S,empty,empty))) -> arr(x:S,y:S,ys:S) | lt(x:S,y:S) ->* true 20.039/20.039 lt(s(x:S),s(y:S)) -> lt(x:S,y:S) 20.039/20.039 lt(0,s(y:S)) -> true 20.039/20.039 lt(x:S,0) -> false 20.039/20.039 s(x:S) -> x1:S 20.039/20.039 ) 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 20.039/20.039 Critical Pairs Processor: 20.039/20.039 -> Rules: 20.039/20.039 cons(s(x:S),cons(s(y:S),arr(ys:S,empty,empty))) -> arr(x1:S,y1:S,ys:S) | lt(x1:S,y1:S) ->* true 20.039/20.039 cons(x:S,cons(y:S,arr(ys:S,empty,empty))) -> arr(x:S,y:S,ys:S) | lt(x:S,y:S) ->* true 20.039/20.039 lt(s(x:S),s(y:S)) -> lt(x:S,y:S) 20.039/20.039 lt(0,s(y:S)) -> true 20.039/20.039 lt(x:S,0) -> false 20.039/20.039 s(x:S) -> x1:S 20.039/20.039 -> Vars: 20.039/20.039 "x", "x1", "y", "y1", "ys", "x", "y", "ys", "x", "y", "y", "x", "x", "x1" 20.039/20.039 -> FVars: 20.039/20.039 "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "x19" 20.039/20.039 -> PVars: 20.039/20.039 "x": ["x6", "x11", "x14", "x17", "x18"], "x1": ["x7", "x19"], "y": ["x8", "x12", "x15", "x16"], "y1": ["x9"], "ys": ["x10", "x13"] 20.039/20.039 20.039/20.039 -> Rlps: 20.039/20.039 crule: cons(s(x6:S),cons(s(x8:S),arr(x10:S,empty,empty))) -> arr(x7:S,x9:S,x10:S) | lt(x7:S,x9:S) ->* true, id: 1, possubterms: cons(s(x6:S),cons(s(x8:S),arr(x10:S,empty,empty)))-> [], s(x6:S)-> [1], cons(s(x8:S),arr(x10:S,empty,empty))-> [2], s(x8:S)-> [2,1], arr(x10:S,empty,empty)-> [2,2], empty-> [2,2,2], empty-> [2,2,3] 20.039/20.039 crule: cons(x11:S,cons(x12:S,arr(x13:S,empty,empty))) -> arr(x11:S,x12:S,x13:S) | lt(x11:S,x12:S) ->* true, id: 2, possubterms: cons(x11:S,cons(x12:S,arr(x13:S,empty,empty)))-> [], cons(x12:S,arr(x13:S,empty,empty))-> [2], arr(x13:S,empty,empty)-> [2,2], empty-> [2,2,2], empty-> [2,2,3] 20.039/20.039 crule: lt(s(x14:S),s(x15:S)) -> lt(x14:S,x15:S), id: 3, possubterms: lt(s(x14:S),s(x15:S))-> [], s(x14:S)-> [1], s(x15:S)-> [2] 20.039/20.039 crule: lt(0,s(x16:S)) -> true, id: 4, possubterms: lt(0,s(x16:S))-> [], 0-> [1], s(x16:S)-> [2] 20.039/20.039 crule: lt(x17:S,0) -> false, id: 5, possubterms: lt(x17:S,0)-> [], 0-> [2] 20.039/20.039 crule: s(x18:S) -> x19:S, id: 6, possubterms: s(x18:S)-> [] 20.039/20.039 20.039/20.039 -> Unifications: 20.039/20.039 R1 unifies with R6 at p: [1], l: cons(s(x6:S),cons(s(x8:S),arr(x10:S,empty,empty))), lp: s(x6:S), conds: {lt(x7:S,x9:S) ->* true}, sig: {x6:S -> x:S}, l': s(x:S), r: arr(x7:S,x9:S,x10:S), r': x1:S 20.039/20.039 R1 unifies with R6 at p: [2,1], l: cons(s(x6:S),cons(s(x8:S),arr(x10:S,empty,empty))), lp: s(x8:S), conds: {lt(x7:S,x9:S) ->* true}, sig: {x8:S -> x:S}, l': s(x:S), r: arr(x7:S,x9:S,x10:S), r': x1:S 20.039/20.039 R2 unifies with R1 at p: [], l: cons(x11:S,cons(x12:S,arr(x13:S,empty,empty))), lp: cons(x11:S,cons(x12:S,arr(x13:S,empty,empty))), conds: {lt(x11:S,x12:S) ->* true, lt(x1:S,y1:S) ->* true}, sig: {x11:S -> s(x:S),x12:S -> s(y:S),x13:S -> ys:S}, l': cons(s(x:S),cons(s(y:S),arr(ys:S,empty,empty))), r: arr(x11:S,x12:S,x13:S), r': arr(x1:S,y1:S,ys:S) 20.039/20.039 R3 unifies with R6 at p: [1], l: lt(s(x14:S),s(x15:S)), lp: s(x14:S), conds: {}, sig: {x14:S -> x:S}, l': s(x:S), r: lt(x14:S,x15:S), r': x1:S 20.039/20.039 R3 unifies with R6 at p: [2], l: lt(s(x14:S),s(x15:S)), lp: s(x15:S), conds: {}, sig: {x15:S -> x:S}, l': s(x:S), r: lt(x14:S,x15:S), r': x1:S 20.039/20.039 R4 unifies with R6 at p: [2], l: lt(0,s(x16:S)), lp: s(x16:S), conds: {}, sig: {x16:S -> x:S}, l': s(x:S), r: true, r': x1:S 20.039/20.039 20.039/20.039 -> Critical pairs info: 20.039/20.039 => Not trivial, Not overlay, N1 20.039/20.039 => Not trivial, Not overlay, N2 20.039/20.039 => Not trivial, Not overlay, N3 20.039/20.039 | lt(s(x:S),s(y:S)) ->* true, lt(x1:S,y1:S) ->* true => Not trivial, Overlay, N4 20.039/20.039 | lt(x1:S,y1:S) ->* true => Not trivial, Not overlay, N5 20.039/20.039 | lt(x1:S,y1:S) ->* true => Not trivial, Not overlay, N6 20.039/20.039 20.039/20.039 -> Problem conclusions: 20.039/20.039 Left linear, Right linear, Linear 20.039/20.039 Not weakly orthogonal, Not almost orthogonal, Not orthogonal 20.039/20.039 CTRS Type: 4 20.039/20.039 Not deterministic, Maybe strongly deterministic 20.039/20.039 Oriented CTRS, Not properly oriented CTRS, Not join CTRS 20.039/20.039 Maybe right-stable CTRS, Not overlay CTRS 20.039/20.039 Maybe normal CTRS, Maybe almost normal CTRS 20.039/20.039 Maybe terminating CTRS, Maybe joinable CCPs 20.039/20.039 Maybe level confluent 20.039/20.039 Maybe confluent 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 Confluence Problem: 20.039/20.039 (VAR x:S x1:S y:S y1:S ys:S) 20.039/20.039 (STRATEGY CONTEXTSENSITIVE 20.039/20.039 (cons 1 2) 20.039/20.039 (lt 1 2) 20.039/20.039 (s 1) 20.039/20.039 (0) 20.039/20.039 (arr 1 2 3) 20.039/20.039 (empty) 20.039/20.039 (fSNonEmpty) 20.039/20.039 (false) 20.039/20.039 (true) 20.039/20.039 ) 20.039/20.039 (RULES 20.039/20.039 cons(s(x:S),cons(s(y:S),arr(ys:S,empty,empty))) -> arr(x1:S,y1:S,ys:S) | lt(x1:S,y1:S) ->* true 20.039/20.039 cons(x:S,cons(y:S,arr(ys:S,empty,empty))) -> arr(x:S,y:S,ys:S) | lt(x:S,y:S) ->* true 20.039/20.039 lt(s(x:S),s(y:S)) -> lt(x:S,y:S) 20.039/20.039 lt(0,s(y:S)) -> true 20.039/20.039 lt(x:S,0) -> false 20.039/20.039 s(x:S) -> x1:S 20.039/20.039 ) 20.039/20.039 Critical Pairs: 20.039/20.039 => Not trivial, Not overlay, N1 20.039/20.039 => Not trivial, Not overlay, N2 20.039/20.039 => Not trivial, Not overlay, N3 20.039/20.039 | lt(s(x:S),s(y:S)) ->* true, lt(x1:S,y1:S) ->* true => Not trivial, Overlay, N4 20.039/20.039 | lt(x1:S,y1:S) ->* true => Not trivial, Not overlay, N5 20.039/20.039 | lt(x1:S,y1:S) ->* true => Not trivial, Not overlay, N6 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 20.039/20.039 Conditional Critical Pairs Distributor Processor 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 Confluence Problem: 20.039/20.039 (VAR x:S x1:S y:S y1:S ys:S) 20.039/20.039 (STRATEGY CONTEXTSENSITIVE 20.039/20.039 (cons 1 2) 20.039/20.039 (lt 1 2) 20.039/20.039 (s 1) 20.039/20.039 (0) 20.039/20.039 (arr 1 2 3) 20.039/20.039 (empty) 20.039/20.039 (fSNonEmpty) 20.039/20.039 (false) 20.039/20.039 (true) 20.039/20.039 ) 20.039/20.039 (RULES 20.039/20.039 cons(s(x:S),cons(s(y:S),arr(ys:S,empty,empty))) -> arr(x1:S,y1:S,ys:S) | lt(x1:S,y1:S) ->* true 20.039/20.039 cons(x:S,cons(y:S,arr(ys:S,empty,empty))) -> arr(x:S,y:S,ys:S) | lt(x:S,y:S) ->* true 20.039/20.039 lt(s(x:S),s(y:S)) -> lt(x:S,y:S) 20.039/20.039 lt(0,s(y:S)) -> true 20.039/20.039 lt(x:S,0) -> false 20.039/20.039 s(x:S) -> x1:S 20.039/20.039 ) 20.039/20.039 Critical Pairs: 20.039/20.039 => Not trivial, Not overlay, N1 20.039/20.039 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.039/20.039 20.039/20.039 Infeasible Convergence No Conditions CCP Processor: 20.039/20.039 Infeasible convergence? 20.039/20.039 YES 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 20.039/20.039 Infeasibility Problem: 20.039/20.039 [(VAR vNonEmpty:S x:S x1:S y:S y1:S ys:S z:S) 20.039/20.039 (STRATEGY CONTEXTSENSITIVE 20.039/20.039 (cons 1 2) 20.039/20.039 (lt 1 2) 20.039/20.039 (s 1) 20.039/20.039 (0) 20.039/20.039 (arr 1 2 3) 20.039/20.039 (cx1) 20.039/20.039 (empty) 20.039/20.039 (fSNonEmpty) 20.039/20.039 (false) 20.039/20.039 (true) 20.039/20.039 ) 20.039/20.039 (RULES 20.039/20.039 cons(s(x:S),cons(s(y:S),arr(ys:S,empty,empty))) -> arr(x1:S,y1:S,ys:S) | lt(x1:S,y1:S) ->* true 20.039/20.039 cons(x:S,cons(y:S,arr(ys:S,empty,empty))) -> arr(x:S,y:S,ys:S) | lt(x:S,y:S) ->* true 20.039/20.039 lt(s(x:S),s(y:S)) -> lt(x:S,y:S) 20.039/20.039 lt(0,s(y:S)) -> true 20.039/20.039 lt(x:S,0) -> false 20.039/20.039 s(x:S) -> x1:S 20.039/20.039 )] 20.039/20.039 20.039/20.039 Infeasibility Conditions: 20.039/20.039 lt(0,cx1) ->* z:S, true ->* z:S 20.039/20.039 20.039/20.039 Problem 1: 20.039/20.039 20.039/20.039 Obtaining a model using Mace4: 20.039/20.039 20.039/20.039 -> Usable Rules: 20.039/20.039 lt(s(x:S),s(y:S)) -> lt(x:S,y:S) 20.039/20.039 lt(0,s(y:S)) -> true 20.039/20.039 lt(x:S,0) -> false 20.039/20.039 20.039/20.039 -> Mace4 Output: 20.039/20.039 ============================== Mace4 ================================= 20.039/20.039 Mace4 (64) version 2009-11A, November 2009. 20.039/20.039 Process 31874 was started by ubuntu on ubuntu, 20.039/20.039 Wed Jul 14 09:40:14 2021 20.039/20.039 The command was "./mace4 -c -f /tmp/mace431861-2.in". 20.039/20.039 ============================== end of head =========================== 20.039/20.039 20.039/20.039 ============================== INPUT ================================= 20.039/20.039 20.039/20.039 % Reading from file /tmp/mace431861-2.in 20.039/20.039 20.039/20.039 assign(max_seconds,20). 20.039/20.039 20.039/20.039 formulas(assumptions). 20.039/20.039 ->(x1,y) -> ->(cons(x1,x2),cons(y,x2)) # label(congruence). 20.039/20.039 ->(x2,y) -> ->(cons(x1,x2),cons(x1,y)) # label(congruence). 20.039/20.039 ->(x1,y) -> ->(lt(x1,x2),lt(y,x2)) # label(congruence). 20.039/20.039 ->(x2,y) -> ->(lt(x1,x2),lt(x1,y)) # label(congruence). 20.039/20.039 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence). 20.039/20.039 ->(x1,y) -> ->(arr(x1,x2,x3),arr(y,x2,x3)) # label(congruence). 20.039/20.039 ->(x2,y) -> ->(arr(x1,x2,x3),arr(x1,y,x3)) # label(congruence). 20.039/20.039 ->(x3,y) -> ->(arr(x1,x2,x3),arr(x1,x2,y)) # label(congruence). 20.039/20.039 ->(lt(s(x1),s(x3)),lt(x1,x3)) # label(replacement). 20.039/20.039 ->(lt(0,s(x3)),true) # label(replacement). 20.039/20.039 ->(lt(x1,0),false) # label(replacement). 20.039/20.039 ->*(x,x) # label(reflexivity). 20.039/20.039 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 formulas(goals). 20.039/20.039 (exists x6 (->*(lt(0,cx1),x6) & ->*(true,x6))) # label(goal). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 ============================== end of input ========================== 20.039/20.039 20.039/20.039 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 20.039/20.039 20.039/20.039 % Formulas that are not ordinary clauses: 20.039/20.039 1 ->(x1,y) -> ->(cons(x1,x2),cons(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 2 ->(x2,y) -> ->(cons(x1,x2),cons(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 3 ->(x1,y) -> ->(lt(x1,x2),lt(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 4 ->(x2,y) -> ->(lt(x1,x2),lt(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 5 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 6 ->(x1,y) -> ->(arr(x1,x2,x3),arr(y,x2,x3)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 7 ->(x2,y) -> ->(arr(x1,x2,x3),arr(x1,y,x3)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 8 ->(x3,y) -> ->(arr(x1,x2,x3),arr(x1,x2,y)) # label(congruence) # label(non_clause). [assumption]. 20.039/20.039 9 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity) # label(non_clause). [assumption]. 20.039/20.039 10 (exists x6 (->*(lt(0,cx1),x6) & ->*(true,x6))) # label(goal) # label(non_clause) # label(goal). [goal]. 20.039/20.039 20.039/20.039 ============================== end of process non-clausal formulas === 20.039/20.039 20.039/20.039 ============================== CLAUSES FOR SEARCH ==================== 20.039/20.039 20.039/20.039 formulas(mace4_clauses). 20.039/20.039 -->(x,y) | ->(cons(x,z),cons(y,z)) # label(congruence). 20.039/20.039 -->(x,y) | ->(cons(z,x),cons(z,y)) # label(congruence). 20.039/20.039 -->(x,y) | ->(lt(x,z),lt(y,z)) # label(congruence). 20.039/20.039 -->(x,y) | ->(lt(z,x),lt(z,y)) # label(congruence). 20.039/20.039 -->(x,y) | ->(s(x),s(y)) # label(congruence). 20.039/20.039 -->(x,y) | ->(arr(x,z,u),arr(y,z,u)) # label(congruence). 20.039/20.039 -->(x,y) | ->(arr(z,x,u),arr(z,y,u)) # label(congruence). 20.039/20.039 -->(x,y) | ->(arr(z,u,x),arr(z,u,y)) # label(congruence). 20.039/20.039 ->(lt(s(x),s(y)),lt(x,y)) # label(replacement). 20.039/20.039 ->(lt(0,s(x)),true) # label(replacement). 20.039/20.039 ->(lt(x,0),false) # label(replacement). 20.039/20.039 ->*(x,x) # label(reflexivity). 20.039/20.039 -->(x,y) | -->*(y,z) | ->*(x,z) # label(transitivity). 20.039/20.039 -->*(lt(0,cx1),x) | -->*(true,x) # label(goal). 20.039/20.039 end_of_list. 20.039/20.039 20.039/20.039 ============================== end of clauses for search ============= 20.039/20.039 20.039/20.039 % There are no natural numbers in the input. 20.039/20.039 20.039/20.039 ============================== DOMAIN SIZE 2 ========================= 20.039/20.039 20.039/20.039 ============================== STATISTICS ============================ 20.039/20.039 20.039/20.039 For domain size 2. 20.039/20.039 20.039/20.039 Current CPU time: 0.00 seconds (total CPU time: 0.00 seconds). 20.039/20.039 Ground clauses: seen=104, kept=100. 20.039/20.039 Selections=50, assignments=99, propagations=63, current_models=0. 20.039/20.039 Rewrite_terms=859, rewrite_bools=757, indexes=60. 20.039/20.039 Rules_from_neg_clauses=21, cross_offs=21. 20.039/20.039 20.039/20.039 ============================== end of statistics ===================== 20.039/20.039 20.039/20.039 ============================== DOMAIN SIZE 3 ========================= 20.039/20.039 20.039/20.039 ============================== MODEL ================================= 20.039/20.039 20.039/20.039 interpretation( 3, [number=1, seconds=0], [ 20.039/20.039 20.039/20.039 function(false, [ 0 ]), 20.039/20.039 20.039/20.039 function(true, [ 0 ]), 20.039/20.039 20.039/20.039 function(0, [ 0 ]), 20.039/20.039 20.039/20.039 function(cx1, [ 1 ]), 20.039/20.039 20.039/20.039 function(s(_), [ 0, 2, 2 ]), 20.039/20.039 20.039/20.039 function(cons(_,_), [ 20.039/20.039 0, 0, 0, 20.039/20.039 0, 0, 0, 20.039/20.039 0, 0, 0 ]), 20.039/20.039 20.039/20.039 function(lt(_,_), [ 20.039/20.039 0, 1, 2, 20.039/20.039 0, 0, 0, 20.039/20.039 0, 2, 2 ]), 20.039/20.039 20.039/20.039 function(arr(_,_,_), [ 20.039/20.039 0, 0, 0, 20.039/20.039 0, 0, 0, 20.039/20.039 0, 0, 0, 20.039/20.039 0, 0, 0, 20.039/20.039 0, 0, 0, 20.039/20.039 0, 0, 0, 20.039/20.039 0, 0, 0, 20.039/20.039 0, 0, 0, 20.039/20.039 0, 0, 0 ]), 20.039/20.039 20.039/20.039 relation(->*(_,_), [ 20.039/20.039 1, 0, 0, 20.039/20.039 0, 1, 0, 20.039/20.039 1, 1, 1 ]), 20.039/20.039 20.039/20.039 relation(->(_,_), [ 20.039/20.039 1, 0, 0, 20.039/20.039 0, 1, 0, 20.039/20.039 1, 1, 1 ]) 20.039/20.039 ]). 20.039/20.039 20.039/20.039 ============================== end of model ========================== 20.039/20.039 20.039/20.039 ============================== STATISTICS ============================ 20.039/20.039 20.039/20.039 For domain size 3. 20.039/20.039 20.039/20.039 Current CPU time: 0.00 seconds (total CPU time: 0.01 seconds). 20.039/20.039 Ground clauses: seen=408, kept=399. 20.039/20.039 Selections=40, assignments=45, propagations=34, current_models=1. 20.039/20.039 Rewrite_terms=824, rewrite_bools=624, indexes=33. 20.039/20.039 Rules_from_neg_clauses=15, cross_offs=60. 20.039/20.039 20.039/20.039 ============================== end of statistics ===================== 20.039/20.039 20.039/20.039 User_CPU=0.01, System_CPU=0.00, Wall_clock=0. 20.039/20.039 20.039/20.039 Exiting with 1 model. 20.039/20.039 20.039/20.039 Process 31874 exit (max_models) Wed Jul 14 09:40:14 2021 20.039/20.039 The process finished Wed Jul 14 09:40:14 2021 20.039/20.039 20.039/20.039 20.039/20.039 Mace4 cooked interpretation: 20.039/20.039 20.039/20.039 20.039/20.039 20.039/20.039 The problem is infeasible. 20.039/20.039 20.039/20.039 20.039/20.039 The problem is not joinable. 20.039/20.039 20.22user 0.54system 0:20.39elapsed 101%CPU (0avgtext+0avgdata 62160maxresident)k 20.039/20.039 0inputs+0outputs (0major+33861minor)pagefaults 0swaps