20.048/20.048 NO 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 20.048/20.048 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 Confluence Problem: 20.048/20.048 (VAR vNonEmpty xs y' ws v ys' w x' xs' zs z ys y) 20.048/20.048 (REPLACEMENT-MAP 20.048/20.048 (get 1) 20.048/20.048 (ssp' 1, 2) 20.048/20.048 (sub 1, 2) 20.048/20.048 (0) 20.048/20.048 (cons 1, 2) 20.048/20.048 (fSNonEmpty) 20.048/20.048 (nil) 20.048/20.048 (s 1) 20.048/20.048 (tp2 1, 2) 20.048/20.048 ) 20.048/20.048 (RULES 20.048/20.048 get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp'(cons(y',ws),v) -> cons(y',ys') | sub(v,y') ->* w, ssp'(ws,w) ->* ys' 20.048/20.048 ssp'(cons(x',xs'),v) -> cons(y',ys') | get(xs') ->* tp2(y',zs), sub(v,y') ->* w, ssp'(cons(x',zs),w) ->* ys' 20.048/20.048 ssp'(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> z | sub(v,w) ->* z 20.048/20.048 sub(z,0) -> z 20.048/20.048 ) 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 20.048/20.048 Inlining of Conditions Processor [STERN17]: 20.048/20.048 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 Confluence Problem: 20.048/20.048 (VAR vNonEmpty xs y' ws v ys' w x' xs' zs z ys y) 20.048/20.048 (REPLACEMENT-MAP 20.048/20.048 (get 1) 20.048/20.048 (ssp' 1, 2) 20.048/20.048 (sub 1, 2) 20.048/20.048 (0) 20.048/20.048 (cons 1, 2) 20.048/20.048 (fSNonEmpty) 20.048/20.048 (nil) 20.048/20.048 (s 1) 20.048/20.048 (tp2 1, 2) 20.048/20.048 ) 20.048/20.048 (RULES 20.048/20.048 get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp'(cons(y',ws),v) -> cons(y',ssp'(ws,sub(v,y'))) 20.048/20.048 ssp'(cons(x',xs'),v) -> cons(y',ssp'(cons(x',zs),sub(v,y'))) | get(xs') ->* tp2(y',zs) 20.048/20.048 ssp'(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 sub(z,0) -> z 20.048/20.048 ) 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 20.048/20.048 Clean CTRS Processor: 20.048/20.048 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 Confluence Problem: 20.048/20.048 (VAR xs y' ws v w x' xs' zs z ys y) 20.048/20.048 (REPLACEMENT-MAP 20.048/20.048 (get 1) 20.048/20.048 (ssp' 1, 2) 20.048/20.048 (sub 1, 2) 20.048/20.048 (0) 20.048/20.048 (cons 1, 2) 20.048/20.048 (fSNonEmpty) 20.048/20.048 (nil) 20.048/20.048 (s 1) 20.048/20.048 (tp2 1, 2) 20.048/20.048 ) 20.048/20.048 (RULES 20.048/20.048 get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp'(cons(y',ws),v) -> cons(y',ssp'(ws,sub(v,y'))) 20.048/20.048 ssp'(cons(x',xs'),v) -> cons(y',ssp'(cons(x',zs),sub(v,y'))) | get(xs') ->* tp2(y',zs) 20.048/20.048 ssp'(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 sub(z,0) -> z 20.048/20.048 ) 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 20.048/20.048 CRule InfChecker Info: 20.048/20.048 get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) 20.048/20.048 Rule remains 20.048/20.048 Proof: 20.048/20.048 NO 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 20.048/20.048 Infeasibility Problem: 20.048/20.048 [(VAR vNonEmpty xs y' ws v ys' w x' xs' zs z ys y vNonEmpty xs' zs y) 20.048/20.048 (STRATEGY CONTEXTSENSITIVE 20.048/20.048 (get 1) 20.048/20.048 (ssp' 1 2) 20.048/20.048 (sub 1 2) 20.048/20.048 (0) 20.048/20.048 (cons 1 2) 20.048/20.048 (fSNonEmpty) 20.048/20.048 (nil) 20.048/20.048 (s 1) 20.048/20.048 (tp2 1 2) 20.048/20.048 ) 20.048/20.048 (RULES 20.048/20.048 get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp'(cons(y',ws),v) -> cons(y',ssp'(ws,sub(v,y'))) 20.048/20.048 ssp'(cons(x',xs'),v) -> cons(y',ssp'(cons(x',zs),sub(v,y'))) | get(xs') ->* tp2(y',zs) 20.048/20.048 ssp'(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 sub(z,0) -> z 20.048/20.048 )] 20.048/20.048 20.048/20.048 Infeasibility Conditions: 20.048/20.048 get(xs') ->* tp2(y,zs) 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 20.048/20.048 Obtaining a proof using Prover9: 20.048/20.048 20.048/20.048 -> Prover9 Output: 20.048/20.048 ============================== Prover9 =============================== 20.048/20.048 Prover9 (64) version 2009-11A, November 2009. 20.048/20.048 Process 58248 was started by ubuntu on ubuntu, 20.048/20.048 Wed Mar 9 09:36:38 2022 20.048/20.048 The command was "./prover9 -f /tmp/prover958241-0.in". 20.048/20.048 ============================== end of head =========================== 20.048/20.048 20.048/20.048 ============================== INPUT ================================= 20.048/20.048 20.048/20.048 % Reading from file /tmp/prover958241-0.in 20.048/20.048 20.048/20.048 assign(max_seconds,20). 20.048/20.048 20.048/20.048 formulas(assumptions). 20.048/20.048 ->_s0(x1,y) -> ->_s0(get(x1),get(y)) # label(congruence). 20.048/20.048 ->_s0(x1,y) -> ->_s0(ssp'(x1,x2),ssp'(y,x2)) # label(congruence). 20.048/20.048 ->_s0(x2,y) -> ->_s0(ssp'(x1,x2),ssp'(x1,y)) # label(congruence). 20.048/20.048 ->_s0(x1,y) -> ->_s0(sub(x1,x2),sub(y,x2)) # label(congruence). 20.048/20.048 ->_s0(x2,y) -> ->_s0(sub(x1,x2),sub(x1,y)) # label(congruence). 20.048/20.048 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence). 20.048/20.048 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence). 20.048/20.048 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 20.048/20.048 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence). 20.048/20.048 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence). 20.048/20.048 ->*_s0(get(x8),tp2(x12,x9)) -> ->_s0(get(cons(x7,x8)),tp2(x12,cons(x7,x9))) # label(replacement). 20.048/20.048 ->_s0(get(cons(x12,x11)),tp2(x12,x11)) # label(replacement). 20.048/20.048 ->_s0(ssp'(cons(x2,x3),x4),cons(x2,ssp'(x3,sub(x4,x2)))) # label(replacement). 20.048/20.048 ->*_s0(get(x8),tp2(x2,x9)) -> ->_s0(ssp'(cons(x7,x8),x4),cons(x2,ssp'(cons(x7,x9),sub(x4,x2)))) # label(replacement). 20.048/20.048 ->_s0(ssp'(x1,0),nil) # label(replacement). 20.048/20.048 ->_s0(sub(s(x4),s(x6)),sub(x4,x6)) # label(replacement). 20.048/20.048 ->_s0(sub(x10,0),x10) # label(replacement). 20.048/20.048 ->*_s0(x,x) # label(reflexivity). 20.048/20.048 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(goals). 20.048/20.048 (exists x14 exists x15 exists x16 ->*_s0(get(x14),tp2(x16,x15))) # label(goal). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 ============================== end of input ========================== 20.048/20.048 20.048/20.048 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 20.048/20.048 20.048/20.048 % Formulas that are not ordinary clauses: 20.048/20.048 1 ->_s0(x1,y) -> ->_s0(get(x1),get(y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 2 ->_s0(x1,y) -> ->_s0(ssp'(x1,x2),ssp'(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 3 ->_s0(x2,y) -> ->_s0(ssp'(x1,x2),ssp'(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 4 ->_s0(x1,y) -> ->_s0(sub(x1,x2),sub(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 5 ->_s0(x2,y) -> ->_s0(sub(x1,x2),sub(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 6 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 7 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 8 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 9 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 10 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 11 ->*_s0(get(x8),tp2(x12,x9)) -> ->_s0(get(cons(x7,x8)),tp2(x12,cons(x7,x9))) # label(replacement) # label(non_clause). [assumption]. 20.048/20.048 12 ->*_s0(get(x8),tp2(x2,x9)) -> ->_s0(ssp'(cons(x7,x8),x4),cons(x2,ssp'(cons(x7,x9),sub(x4,x2)))) # label(replacement) # label(non_clause). [assumption]. 20.048/20.048 13 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 20.048/20.048 14 (exists x14 exists x15 exists x16 ->*_s0(get(x14),tp2(x16,x15))) # label(goal) # label(non_clause) # label(goal). [goal]. 20.048/20.048 20.048/20.048 ============================== end of process non-clausal formulas === 20.048/20.048 20.048/20.048 ============================== PROCESS INITIAL CLAUSES =============== 20.048/20.048 20.048/20.048 % Clauses before input processing: 20.048/20.048 20.048/20.048 formulas(usable). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(sos). 20.048/20.048 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. 20.048/20.048 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. 20.048/20.048 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. 20.048/20.048 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. 20.048/20.048 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. 20.048/20.048 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. 20.048/20.048 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. 20.048/20.048 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. 20.048/20.048 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. 20.048/20.048 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. 20.048/20.048 -->*_s0(get(x),tp2(y,z)) | ->_s0(get(cons(u,x)),tp2(y,cons(u,z))) # label(replacement). [clausify(11)]. 20.048/20.048 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 20.048/20.048 ->_s0(ssp'(cons(x,y),z),cons(x,ssp'(y,sub(z,x)))) # label(replacement). [assumption]. 20.048/20.048 -->*_s0(get(x),tp2(y,z)) | ->_s0(ssp'(cons(u,x),w),cons(y,ssp'(cons(u,z),sub(w,y)))) # label(replacement). [clausify(12)]. 20.048/20.048 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. 20.048/20.048 ->_s0(sub(s(x),s(y)),sub(x,y)) # label(replacement). [assumption]. 20.048/20.048 ->_s0(sub(x,0),x) # label(replacement). [assumption]. 20.048/20.048 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.048/20.048 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(13)]. 20.048/20.048 -->*_s0(get(x),tp2(y,z)) # label(goal). [deny(14)]. 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(demodulators). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 ============================== PREDICATE ELIMINATION ================= 20.048/20.048 20.048/20.048 No predicates eliminated. 20.048/20.048 20.048/20.048 ============================== end predicate elimination ============= 20.048/20.048 20.048/20.048 Auto_denials: 20.048/20.048 % copying label goal to answer in negative clause 20.048/20.048 20.048/20.048 Term ordering decisions: 20.048/20.048 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 20.048/20.048 Function symbol precedence: function_order([ 0, nil, cons, ssp', sub, tp2, get, s ]). 20.048/20.048 After inverse_order: (no changes). 20.048/20.048 Unfolding symbols: (none). 20.048/20.048 20.048/20.048 Auto_inference settings: 20.048/20.048 % set(neg_binary_resolution). % (HNE depth_diff=-13) 20.048/20.048 % clear(ordered_res). % (HNE depth_diff=-13) 20.048/20.048 % set(ur_resolution). % (HNE depth_diff=-13) 20.048/20.048 % set(ur_resolution) -> set(pos_ur_resolution). 20.048/20.048 % set(ur_resolution) -> set(neg_ur_resolution). 20.048/20.048 20.048/20.048 Auto_process settings: (no changes). 20.048/20.048 20.048/20.048 kept: 15 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. 20.048/20.048 kept: 16 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. 20.048/20.048 kept: 17 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. 20.048/20.048 kept: 18 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. 20.048/20.048 kept: 19 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. 20.048/20.048 kept: 20 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. 20.048/20.048 kept: 21 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. 20.048/20.048 kept: 22 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. 20.048/20.048 kept: 23 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. 20.048/20.048 kept: 24 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. 20.048/20.048 kept: 25 -->*_s0(get(x),tp2(y,z)) | ->_s0(get(cons(u,x)),tp2(y,cons(u,z))) # label(replacement). [clausify(11)]. 20.048/20.048 kept: 26 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 20.048/20.048 kept: 27 ->_s0(ssp'(cons(x,y),z),cons(x,ssp'(y,sub(z,x)))) # label(replacement). [assumption]. 20.048/20.048 kept: 28 -->*_s0(get(x),tp2(y,z)) | ->_s0(ssp'(cons(u,x),w),cons(y,ssp'(cons(u,z),sub(w,y)))) # label(replacement). [clausify(12)]. 20.048/20.048 kept: 29 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. 20.048/20.048 kept: 30 ->_s0(sub(s(x),s(y)),sub(x,y)) # label(replacement). [assumption]. 20.048/20.048 kept: 31 ->_s0(sub(x,0),x) # label(replacement). [assumption]. 20.048/20.048 kept: 32 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.048/20.048 kept: 33 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(13)]. 20.048/20.048 kept: 34 -->*_s0(get(x),tp2(y,z)) # label(goal) # answer(goal). [deny(14)]. 20.048/20.048 20.048/20.048 ============================== end of process initial clauses ======== 20.048/20.048 20.048/20.048 ============================== CLAUSES FOR SEARCH ==================== 20.048/20.048 20.048/20.048 % Clauses after input processing: 20.048/20.048 20.048/20.048 formulas(usable). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(sos). 20.048/20.048 15 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. 20.048/20.048 16 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. 20.048/20.048 17 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. 20.048/20.048 18 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. 20.048/20.048 19 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. 20.048/20.048 20 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. 20.048/20.048 21 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. 20.048/20.048 22 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. 20.048/20.048 23 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. 20.048/20.048 24 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. 20.048/20.048 26 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 20.048/20.048 27 ->_s0(ssp'(cons(x,y),z),cons(x,ssp'(y,sub(z,x)))) # label(replacement). [assumption]. 20.048/20.048 29 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. 20.048/20.048 30 ->_s0(sub(s(x),s(y)),sub(x,y)) # label(replacement). [assumption]. 20.048/20.048 31 ->_s0(sub(x,0),x) # label(replacement). [assumption]. 20.048/20.048 32 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.048/20.048 33 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(13)]. 20.048/20.048 34 -->*_s0(get(x),tp2(y,z)) # label(goal) # answer(goal). [deny(14)]. 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(demodulators). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 ============================== end of clauses for search ============= 20.048/20.048 20.048/20.048 ============================== SEARCH ================================ 20.048/20.048 20.048/20.048 % Starting search at 0.00 seconds. 20.048/20.048 20.048/20.048 given #1 (I,wt=8): 15 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. 20.048/20.048 20.048/20.048 given #2 (I,wt=10): 16 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. 20.048/20.048 20.048/20.048 given #3 (I,wt=10): 17 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. 20.048/20.048 20.048/20.048 given #4 (I,wt=10): 18 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. 20.048/20.048 20.048/20.048 given #5 (I,wt=10): 19 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. 20.048/20.048 20.048/20.048 given #6 (I,wt=10): 20 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. 20.048/20.048 20.048/20.048 given #7 (I,wt=10): 21 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. 20.048/20.048 20.048/20.048 given #8 (I,wt=8): 22 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. 20.048/20.048 20.048/20.048 given #9 (I,wt=10): 23 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. 20.048/20.048 20.048/20.048 given #10 (I,wt=10): 24 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. 20.048/20.048 20.048/20.048 given #11 (I,wt=8): 26 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 20.048/20.048 20.048/20.048 given #12 (I,wt=13): 27 ->_s0(ssp'(cons(x,y),z),cons(x,ssp'(y,sub(z,x)))) # label(replacement). [assumption]. 20.048/20.048 20.048/20.048 given #13 (I,wt=5): 29 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. 20.048/20.048 20.048/20.048 given #14 (I,wt=9): 30 ->_s0(sub(s(x),s(y)),sub(x,y)) # label(replacement). [assumption]. 20.048/20.048 20.048/20.048 given #15 (I,wt=5): 31 ->_s0(sub(x,0),x) # label(replacement). [assumption]. 20.048/20.048 20.048/20.048 given #16 (I,wt=3): 32 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.048/20.048 20.048/20.048 given #17 (I,wt=9): 33 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(13)]. 20.048/20.048 20.048/20.048 ============================== PROOF ================================= 20.048/20.048 20.048/20.048 % Proof 1 at 0.00 (+ 0.00) seconds: goal. 20.048/20.048 % Length of proof is 8. 20.048/20.048 % Level of proof is 3. 20.048/20.048 % Maximum clause weight is 9.000. 20.048/20.048 % Given clauses 17. 20.048/20.048 20.048/20.048 13 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 20.048/20.048 14 (exists x14 exists x15 exists x16 ->*_s0(get(x14),tp2(x16,x15))) # label(goal) # label(non_clause) # label(goal). [goal]. 20.048/20.048 26 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 20.048/20.048 32 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.048/20.048 33 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(13)]. 20.048/20.048 34 -->*_s0(get(x),tp2(y,z)) # label(goal) # answer(goal). [deny(14)]. 20.048/20.048 89 ->*_s0(get(cons(x,y)),tp2(x,y)). [ur(33,a,26,a,b,32,a)]. 20.048/20.048 90 $F # answer(goal). [resolve(89,a,34,a)]. 20.048/20.048 20.048/20.048 ============================== end of proof ========================== 20.048/20.048 20.048/20.048 ============================== STATISTICS ============================ 20.048/20.048 20.048/20.048 Given=17. Generated=75. Kept=75. proofs=1. 20.048/20.048 Usable=17. Sos=51. Demods=0. Limbo=4, Disabled=22. Hints=0. 20.048/20.048 Kept_by_rule=0, Deleted_by_rule=0. 20.048/20.048 Forward_subsumed=0. Back_subsumed=2. 20.048/20.048 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 20.048/20.048 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 20.048/20.048 Demod_attempts=0. Demod_rewrites=0. 20.048/20.048 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 20.048/20.048 Nonunit_fsub_feature_tests=4. Nonunit_bsub_feature_tests=26. 20.048/20.048 Megabytes=0.24. 20.048/20.048 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 20.048/20.048 20.048/20.048 ============================== end of statistics ===================== 20.048/20.048 20.048/20.048 ============================== end of search ========================= 20.048/20.048 20.048/20.048 THEOREM PROVED 20.048/20.048 20.048/20.048 Exiting with 1 proof. 20.048/20.048 20.048/20.048 Process 58248 exit (max_proofs) Wed Mar 9 09:36:38 2022 20.048/20.048 20.048/20.048 20.048/20.048 The problem is feasible. 20.048/20.048 20.048/20.048 20.048/20.048 CRule InfChecker Info: 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 Rule remains 20.048/20.048 Proof: 20.048/20.048 NO_CONDS 20.048/20.048 20.048/20.048 CRule InfChecker Info: 20.048/20.048 ssp'(cons(y',ws),v) -> cons(y',ssp'(ws,sub(v,y'))) 20.048/20.048 Rule remains 20.048/20.048 Proof: 20.048/20.048 NO_CONDS 20.048/20.048 20.048/20.048 CRule InfChecker Info: 20.048/20.048 ssp'(cons(x',xs'),v) -> cons(y',ssp'(cons(x',zs),sub(v,y'))) | get(xs') ->* tp2(y',zs) 20.048/20.048 Rule remains 20.048/20.048 Proof: 20.048/20.048 NO 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 20.048/20.048 Infeasibility Problem: 20.048/20.048 [(VAR vNonEmpty xs y' ws v ys' w x' xs' zs z ys y vNonEmpty y' xs' zs) 20.048/20.048 (STRATEGY CONTEXTSENSITIVE 20.048/20.048 (get 1) 20.048/20.048 (ssp' 1 2) 20.048/20.048 (sub 1 2) 20.048/20.048 (0) 20.048/20.048 (cons 1 2) 20.048/20.048 (fSNonEmpty) 20.048/20.048 (nil) 20.048/20.048 (s 1) 20.048/20.048 (tp2 1 2) 20.048/20.048 ) 20.048/20.048 (RULES 20.048/20.048 get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp'(cons(y',ws),v) -> cons(y',ssp'(ws,sub(v,y'))) 20.048/20.048 ssp'(cons(x',xs'),v) -> cons(y',ssp'(cons(x',zs),sub(v,y'))) | get(xs') ->* tp2(y',zs) 20.048/20.048 ssp'(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 sub(z,0) -> z 20.048/20.048 )] 20.048/20.048 20.048/20.048 Infeasibility Conditions: 20.048/20.048 get(xs') ->* tp2(y',zs) 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 20.048/20.048 Obtaining a proof using Prover9: 20.048/20.048 20.048/20.048 -> Prover9 Output: 20.048/20.048 ============================== Prover9 =============================== 20.048/20.048 Prover9 (64) version 2009-11A, November 2009. 20.048/20.048 Process 58272 was started by ubuntu on ubuntu, 20.048/20.048 Wed Mar 9 09:36:38 2022 20.048/20.048 The command was "./prover9 -f /tmp/prover958263-0.in". 20.048/20.048 ============================== end of head =========================== 20.048/20.048 20.048/20.048 ============================== INPUT ================================= 20.048/20.048 20.048/20.048 % Reading from file /tmp/prover958263-0.in 20.048/20.048 20.048/20.048 assign(max_seconds,20). 20.048/20.048 20.048/20.048 formulas(assumptions). 20.048/20.048 ->_s0(x1,y) -> ->_s0(get(x1),get(y)) # label(congruence). 20.048/20.048 ->_s0(x1,y) -> ->_s0(ssp'(x1,x2),ssp'(y,x2)) # label(congruence). 20.048/20.048 ->_s0(x2,y) -> ->_s0(ssp'(x1,x2),ssp'(x1,y)) # label(congruence). 20.048/20.048 ->_s0(x1,y) -> ->_s0(sub(x1,x2),sub(y,x2)) # label(congruence). 20.048/20.048 ->_s0(x2,y) -> ->_s0(sub(x1,x2),sub(x1,y)) # label(congruence). 20.048/20.048 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence). 20.048/20.048 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence). 20.048/20.048 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 20.048/20.048 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence). 20.048/20.048 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence). 20.048/20.048 ->*_s0(get(x8),tp2(x12,x9)) -> ->_s0(get(cons(x7,x8)),tp2(x12,cons(x7,x9))) # label(replacement). 20.048/20.048 ->_s0(get(cons(x12,x11)),tp2(x12,x11)) # label(replacement). 20.048/20.048 ->_s0(ssp'(cons(x2,x3),x4),cons(x2,ssp'(x3,sub(x4,x2)))) # label(replacement). 20.048/20.048 ->*_s0(get(x8),tp2(x2,x9)) -> ->_s0(ssp'(cons(x7,x8),x4),cons(x2,ssp'(cons(x7,x9),sub(x4,x2)))) # label(replacement). 20.048/20.048 ->_s0(ssp'(x1,0),nil) # label(replacement). 20.048/20.048 ->_s0(sub(s(x4),s(x6)),sub(x4,x6)) # label(replacement). 20.048/20.048 ->_s0(sub(x10,0),x10) # label(replacement). 20.048/20.048 ->*_s0(x,x) # label(reflexivity). 20.048/20.048 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(goals). 20.048/20.048 (exists x14 exists x15 exists x16 ->*_s0(get(x15),tp2(x14,x16))) # label(goal). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 ============================== end of input ========================== 20.048/20.048 20.048/20.048 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 20.048/20.048 20.048/20.048 % Formulas that are not ordinary clauses: 20.048/20.048 1 ->_s0(x1,y) -> ->_s0(get(x1),get(y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 2 ->_s0(x1,y) -> ->_s0(ssp'(x1,x2),ssp'(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 3 ->_s0(x2,y) -> ->_s0(ssp'(x1,x2),ssp'(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 4 ->_s0(x1,y) -> ->_s0(sub(x1,x2),sub(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 5 ->_s0(x2,y) -> ->_s0(sub(x1,x2),sub(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 6 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 7 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 8 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 9 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 10 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 11 ->*_s0(get(x8),tp2(x12,x9)) -> ->_s0(get(cons(x7,x8)),tp2(x12,cons(x7,x9))) # label(replacement) # label(non_clause). [assumption]. 20.048/20.048 12 ->*_s0(get(x8),tp2(x2,x9)) -> ->_s0(ssp'(cons(x7,x8),x4),cons(x2,ssp'(cons(x7,x9),sub(x4,x2)))) # label(replacement) # label(non_clause). [assumption]. 20.048/20.048 13 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 20.048/20.048 14 (exists x14 exists x15 exists x16 ->*_s0(get(x15),tp2(x14,x16))) # label(goal) # label(non_clause) # label(goal). [goal]. 20.048/20.048 20.048/20.048 ============================== end of process non-clausal formulas === 20.048/20.048 20.048/20.048 ============================== PROCESS INITIAL CLAUSES =============== 20.048/20.048 20.048/20.048 % Clauses before input processing: 20.048/20.048 20.048/20.048 formulas(usable). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(sos). 20.048/20.048 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. 20.048/20.048 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. 20.048/20.048 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. 20.048/20.048 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. 20.048/20.048 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. 20.048/20.048 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. 20.048/20.048 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. 20.048/20.048 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. 20.048/20.048 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. 20.048/20.048 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. 20.048/20.048 -->*_s0(get(x),tp2(y,z)) | ->_s0(get(cons(u,x)),tp2(y,cons(u,z))) # label(replacement). [clausify(11)]. 20.048/20.048 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 20.048/20.048 ->_s0(ssp'(cons(x,y),z),cons(x,ssp'(y,sub(z,x)))) # label(replacement). [assumption]. 20.048/20.048 -->*_s0(get(x),tp2(y,z)) | ->_s0(ssp'(cons(u,x),w),cons(y,ssp'(cons(u,z),sub(w,y)))) # label(replacement). [clausify(12)]. 20.048/20.048 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. 20.048/20.048 ->_s0(sub(s(x),s(y)),sub(x,y)) # label(replacement). [assumption]. 20.048/20.048 ->_s0(sub(x,0),x) # label(replacement). [assumption]. 20.048/20.048 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.048/20.048 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(13)]. 20.048/20.048 -->*_s0(get(x),tp2(y,z)) # label(goal). [deny(14)]. 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(demodulators). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 ============================== PREDICATE ELIMINATION ================= 20.048/20.048 20.048/20.048 No predicates eliminated. 20.048/20.048 20.048/20.048 ============================== end predicate elimination ============= 20.048/20.048 20.048/20.048 Auto_denials: 20.048/20.048 % copying label goal to answer in negative clause 20.048/20.048 20.048/20.048 Term ordering decisions: 20.048/20.048 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 20.048/20.048 Function symbol precedence: function_order([ 0, nil, cons, ssp', sub, tp2, get, s ]). 20.048/20.048 After inverse_order: (no changes). 20.048/20.048 Unfolding symbols: (none). 20.048/20.048 20.048/20.048 Auto_inference settings: 20.048/20.048 % set(neg_binary_resolution). % (HNE depth_diff=-13) 20.048/20.048 % clear(ordered_res). % (HNE depth_diff=-13) 20.048/20.048 % set(ur_resolution). % (HNE depth_diff=-13) 20.048/20.048 % set(ur_resolution) -> set(pos_ur_resolution). 20.048/20.048 % set(ur_resolution) -> set(neg_ur_resolution). 20.048/20.048 20.048/20.048 Auto_process settings: (no changes). 20.048/20.048 20.048/20.048 kept: 15 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. 20.048/20.048 kept: 16 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. 20.048/20.048 kept: 17 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. 20.048/20.048 kept: 18 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. 20.048/20.048 kept: 19 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. 20.048/20.048 kept: 20 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. 20.048/20.048 kept: 21 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. 20.048/20.048 kept: 22 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. 20.048/20.048 kept: 23 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. 20.048/20.048 kept: 24 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. 20.048/20.048 kept: 25 -->*_s0(get(x),tp2(y,z)) | ->_s0(get(cons(u,x)),tp2(y,cons(u,z))) # label(replacement). [clausify(11)]. 20.048/20.048 kept: 26 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 20.048/20.048 kept: 27 ->_s0(ssp'(cons(x,y),z),cons(x,ssp'(y,sub(z,x)))) # label(replacement). [assumption]. 20.048/20.048 kept: 28 -->*_s0(get(x),tp2(y,z)) | ->_s0(ssp'(cons(u,x),w),cons(y,ssp'(cons(u,z),sub(w,y)))) # label(replacement). [clausify(12)]. 20.048/20.048 kept: 29 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. 20.048/20.048 kept: 30 ->_s0(sub(s(x),s(y)),sub(x,y)) # label(replacement). [assumption]. 20.048/20.048 kept: 31 ->_s0(sub(x,0),x) # label(replacement). [assumption]. 20.048/20.048 kept: 32 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.048/20.048 kept: 33 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(13)]. 20.048/20.048 kept: 34 -->*_s0(get(x),tp2(y,z)) # label(goal) # answer(goal). [deny(14)]. 20.048/20.048 20.048/20.048 ============================== end of process initial clauses ======== 20.048/20.048 20.048/20.048 ============================== CLAUSES FOR SEARCH ==================== 20.048/20.048 20.048/20.048 % Clauses after input processing: 20.048/20.048 20.048/20.048 formulas(usable). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(sos). 20.048/20.048 15 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. 20.048/20.048 16 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. 20.048/20.048 17 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. 20.048/20.048 18 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. 20.048/20.048 19 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. 20.048/20.048 20 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. 20.048/20.048 21 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. 20.048/20.048 22 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. 20.048/20.048 23 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. 20.048/20.048 24 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. 20.048/20.048 26 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 20.048/20.048 27 ->_s0(ssp'(cons(x,y),z),cons(x,ssp'(y,sub(z,x)))) # label(replacement). [assumption]. 20.048/20.048 29 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. 20.048/20.048 30 ->_s0(sub(s(x),s(y)),sub(x,y)) # label(replacement). [assumption]. 20.048/20.048 31 ->_s0(sub(x,0),x) # label(replacement). [assumption]. 20.048/20.048 32 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.048/20.048 33 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(13)]. 20.048/20.048 34 -->*_s0(get(x),tp2(y,z)) # label(goal) # answer(goal). [deny(14)]. 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(demodulators). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 ============================== end of clauses for search ============= 20.048/20.048 20.048/20.048 ============================== SEARCH ================================ 20.048/20.048 20.048/20.048 % Starting search at 0.00 seconds. 20.048/20.048 20.048/20.048 given #1 (I,wt=8): 15 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. 20.048/20.048 20.048/20.048 given #2 (I,wt=10): 16 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. 20.048/20.048 20.048/20.048 given #3 (I,wt=10): 17 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. 20.048/20.048 20.048/20.048 given #4 (I,wt=10): 18 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. 20.048/20.048 20.048/20.048 given #5 (I,wt=10): 19 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. 20.048/20.048 20.048/20.048 given #6 (I,wt=10): 20 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. 20.048/20.048 20.048/20.048 given #7 (I,wt=10): 21 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. 20.048/20.048 20.048/20.048 given #8 (I,wt=8): 22 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. 20.048/20.048 20.048/20.048 given #9 (I,wt=10): 23 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. 20.048/20.048 20.048/20.048 given #10 (I,wt=10): 24 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. 20.048/20.048 20.048/20.048 given #11 (I,wt=8): 26 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 20.048/20.048 20.048/20.048 given #12 (I,wt=13): 27 ->_s0(ssp'(cons(x,y),z),cons(x,ssp'(y,sub(z,x)))) # label(replacement). [assumption]. 20.048/20.048 20.048/20.048 given #13 (I,wt=5): 29 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. 20.048/20.048 20.048/20.048 given #14 (I,wt=9): 30 ->_s0(sub(s(x),s(y)),sub(x,y)) # label(replacement). [assumption]. 20.048/20.048 20.048/20.048 given #15 (I,wt=5): 31 ->_s0(sub(x,0),x) # label(replacement). [assumption]. 20.048/20.048 20.048/20.048 given #16 (I,wt=3): 32 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.048/20.048 20.048/20.048 given #17 (I,wt=9): 33 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(13)]. 20.048/20.048 20.048/20.048 ============================== PROOF ================================= 20.048/20.048 20.048/20.048 % Proof 1 at 0.00 (+ 0.00) seconds: goal. 20.048/20.048 % Length of proof is 8. 20.048/20.048 % Level of proof is 3. 20.048/20.048 % Maximum clause weight is 9.000. 20.048/20.048 % Given clauses 17. 20.048/20.048 20.048/20.048 13 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 20.048/20.048 14 (exists x14 exists x15 exists x16 ->*_s0(get(x15),tp2(x14,x16))) # label(goal) # label(non_clause) # label(goal). [goal]. 20.048/20.048 26 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 20.048/20.048 32 ->*_s0(x,x) # label(reflexivity). [assumption]. 20.048/20.048 33 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(13)]. 20.048/20.048 34 -->*_s0(get(x),tp2(y,z)) # label(goal) # answer(goal). [deny(14)]. 20.048/20.048 89 ->*_s0(get(cons(x,y)),tp2(x,y)). [ur(33,a,26,a,b,32,a)]. 20.048/20.048 90 $F # answer(goal). [resolve(89,a,34,a)]. 20.048/20.048 20.048/20.048 ============================== end of proof ========================== 20.048/20.048 20.048/20.048 ============================== STATISTICS ============================ 20.048/20.048 20.048/20.048 Given=17. Generated=75. Kept=75. proofs=1. 20.048/20.048 Usable=17. Sos=51. Demods=0. Limbo=4, Disabled=22. Hints=0. 20.048/20.048 Kept_by_rule=0, Deleted_by_rule=0. 20.048/20.048 Forward_subsumed=0. Back_subsumed=2. 20.048/20.048 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 20.048/20.048 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 20.048/20.048 Demod_attempts=0. Demod_rewrites=0. 20.048/20.048 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 20.048/20.048 Nonunit_fsub_feature_tests=4. Nonunit_bsub_feature_tests=26. 20.048/20.048 Megabytes=0.24. 20.048/20.048 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 20.048/20.048 20.048/20.048 ============================== end of statistics ===================== 20.048/20.048 20.048/20.048 ============================== end of search ========================= 20.048/20.048 20.048/20.048 THEOREM PROVED 20.048/20.048 20.048/20.048 Exiting with 1 proof. 20.048/20.048 20.048/20.048 Process 58272 exit (max_proofs) Wed Mar 9 09:36:38 2022 20.048/20.048 20.048/20.048 20.048/20.048 The problem is feasible. 20.048/20.048 20.048/20.048 20.048/20.048 CRule InfChecker Info: 20.048/20.048 ssp'(xs,0) -> nil 20.048/20.048 Rule remains 20.048/20.048 Proof: 20.048/20.048 NO_CONDS 20.048/20.048 20.048/20.048 CRule InfChecker Info: 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 Rule remains 20.048/20.048 Proof: 20.048/20.048 NO_CONDS 20.048/20.048 20.048/20.048 CRule InfChecker Info: 20.048/20.048 sub(z,0) -> z 20.048/20.048 Rule remains 20.048/20.048 Proof: 20.048/20.048 NO_CONDS 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 Confluence Problem: 20.048/20.048 (VAR xs y' ws v w x' xs' zs z ys y) 20.048/20.048 (REPLACEMENT-MAP 20.048/20.048 (get 1) 20.048/20.048 (ssp' 1, 2) 20.048/20.048 (sub 1, 2) 20.048/20.048 (0) 20.048/20.048 (cons 1, 2) 20.048/20.048 (fSNonEmpty) 20.048/20.048 (nil) 20.048/20.048 (s 1) 20.048/20.048 (tp2 1, 2) 20.048/20.048 ) 20.048/20.048 (RULES 20.048/20.048 get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp'(cons(y',ws),v) -> cons(y',ssp'(ws,sub(v,y'))) 20.048/20.048 ssp'(cons(x',xs'),v) -> cons(y',ssp'(cons(x',zs),sub(v,y'))) | get(xs') ->* tp2(y',zs) 20.048/20.048 ssp'(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 sub(z,0) -> z 20.048/20.048 ) 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 20.048/20.048 Critical Pairs Processor: 20.048/20.048 -> Rules: 20.048/20.048 get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp'(cons(y',ws),v) -> cons(y',ssp'(ws,sub(v,y'))) 20.048/20.048 ssp'(cons(x',xs'),v) -> cons(y',ssp'(cons(x',zs),sub(v,y'))) | get(xs') ->* tp2(y',zs) 20.048/20.048 ssp'(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 sub(z,0) -> z 20.048/20.048 -> Vars: 20.048/20.048 "xs", "y'", "ws", "v", "w", "x'", "xs'", "zs", "z", "ys", "y" 20.048/20.048 20.048/20.048 -> Rlps: 20.048/20.048 crule: get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs), id: 1, possubterms: get(cons(x',xs'))-> [], cons(x',xs')-> [1] 20.048/20.048 crule: get(cons(y,ys)) -> tp2(y,ys), id: 2, possubterms: get(cons(y,ys))-> [], cons(y,ys)-> [1] 20.048/20.048 crule: ssp'(cons(y',ws),v) -> cons(y',ssp'(ws,sub(v,y'))), id: 3, possubterms: ssp'(cons(y',ws),v)-> [], cons(y',ws)-> [1] 20.048/20.048 crule: ssp'(cons(x',xs'),v) -> cons(y',ssp'(cons(x',zs),sub(v,y'))) | get(xs') ->* tp2(y',zs), id: 4, possubterms: ssp'(cons(x',xs'),v)-> [], cons(x',xs')-> [1] 20.048/20.048 crule: ssp'(xs,0) -> nil, id: 5, possubterms: ssp'(xs,0)-> [], 0-> [2] 20.048/20.048 crule: sub(s(v),s(w)) -> sub(v,w), id: 6, possubterms: sub(s(v),s(w))-> [], s(v)-> [1], s(w)-> [2] 20.048/20.048 crule: sub(z,0) -> z, id: 7, possubterms: sub(z,0)-> [], 0-> [2] 20.048/20.048 20.048/20.048 -> Unifications: 20.048/20.048 R2 unifies with R1 at p: [], l: get(cons(y,ys)), lp: get(cons(y,ys)), conds: {get(xs') ->* tp2(y',zs)}, sig: {ys -> xs',y -> x'}, l': get(cons(x',xs')), r: tp2(y,ys), r': tp2(y',cons(x',zs)) 20.048/20.048 R4 unifies with R3 at p: [], l: ssp'(cons(x',xs'),v), lp: ssp'(cons(x',xs'),v), conds: {get(xs') ->* tp2(y',zs)}, sig: {v -> v',x' -> y'',xs' -> ws}, l': ssp'(cons(y'',ws),v'), r: cons(y',ssp'(cons(x',zs),sub(v,y'))), r': cons(y'',ssp'(ws,sub(v',y''))) 20.048/20.048 R5 unifies with R3 at p: [], l: ssp'(xs,0), lp: ssp'(xs,0), conds: {}, sig: {xs -> cons(y',ws),v -> 0}, l': ssp'(cons(y',ws),v), r: nil, r': cons(y',ssp'(ws,sub(v,y'))) 20.048/20.048 R5 unifies with R4 at p: [], l: ssp'(xs,0), lp: ssp'(xs,0), conds: {get(xs') ->* tp2(y',zs)}, sig: {xs -> cons(x',xs'),v -> 0}, l': ssp'(cons(x',xs'),v), r: nil, r': cons(y',ssp'(cons(x',zs),sub(v,y'))) 20.048/20.048 20.048/20.048 -> Critical pairs info: 20.048/20.048 => Not trivial, Overlay, NW2, N1 20.048/20.048 | get(xs') ->* tp2(y',zs) => Not trivial, Overlay, NW2, N2 20.048/20.048 | get(xs') ->* tp2(y',zs) => Not trivial, Overlay, NW1, N3 20.048/20.048 | get(ws) ->* tp2(y',zs) => Not trivial, Overlay, NW1, N4 20.048/20.048 20.048/20.048 -> Problem conclusions: 20.048/20.048 Left linear, Not right linear, Not linear 20.048/20.048 Not weakly orthogonal, Not almost orthogonal, Not orthogonal 20.048/20.048 CTRS Type: 3 20.048/20.048 Deterministic, Strongly deterministic 20.048/20.048 Oriented CTRS, Properly oriented CTRS, Not join CTRS, Not semiequational CTRS 20.048/20.048 Maybe right-stable CTRS, Overlay CTRS 20.048/20.048 Maybe normal CTRS, Maybe almost normal CTRS 20.048/20.048 Maybe terminating CTRS, Maybe operational terminating CTRS, Maybe joinable CCPs 20.048/20.048 Maybe level confluent 20.048/20.048 Maybe confluent 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 Confluence Problem: 20.048/20.048 (VAR xs y' ws v w x' xs' zs z ys y y' ws v' x' xs' zs y') 20.048/20.048 (REPLACEMENT-MAP 20.048/20.048 (get 1) 20.048/20.048 (ssp' 1, 2) 20.048/20.048 (sub 1, 2) 20.048/20.048 (0) 20.048/20.048 (cons 1, 2) 20.048/20.048 (fSNonEmpty) 20.048/20.048 (nil) 20.048/20.048 (s 1) 20.048/20.048 (tp2 1, 2) 20.048/20.048 ) 20.048/20.048 (RULES 20.048/20.048 get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp'(cons(y',ws),v) -> cons(y',ssp'(ws,sub(v,y'))) 20.048/20.048 ssp'(cons(x',xs'),v) -> cons(y',ssp'(cons(x',zs),sub(v,y'))) | get(xs') ->* tp2(y',zs) 20.048/20.048 ssp'(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 sub(z,0) -> z 20.048/20.048 ) 20.048/20.048 Critical Pairs: 20.048/20.048 => Not trivial, Overlay, NW2, N1 20.048/20.048 | get(xs') ->* tp2(y',zs) => Not trivial, Overlay, NW2, N2 20.048/20.048 | get(xs') ->* tp2(y',zs) => Not trivial, Overlay, NW1, N3 20.048/20.048 | get(ws) ->* tp2(y',zs) => Not trivial, Overlay, NW1, N4 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 20.048/20.048 Conditional Critical Pairs Distributor Processor 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 Confluence Problem: 20.048/20.048 (VAR xs y' ws v w x' xs' zs z ys y y' ws v' x' xs' zs y') 20.048/20.048 (REPLACEMENT-MAP 20.048/20.048 (get 1) 20.048/20.048 (ssp' 1, 2) 20.048/20.048 (sub 1, 2) 20.048/20.048 (0) 20.048/20.048 (cons 1, 2) 20.048/20.048 (fSNonEmpty) 20.048/20.048 (nil) 20.048/20.048 (s 1) 20.048/20.048 (tp2 1, 2) 20.048/20.048 ) 20.048/20.048 (RULES 20.048/20.048 get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp'(cons(y',ws),v) -> cons(y',ssp'(ws,sub(v,y'))) 20.048/20.048 ssp'(cons(x',xs'),v) -> cons(y',ssp'(cons(x',zs),sub(v,y'))) | get(xs') ->* tp2(y',zs) 20.048/20.048 ssp'(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 sub(z,0) -> z 20.048/20.048 ) 20.048/20.048 Critical Pairs: 20.048/20.048 => Not trivial, Overlay, NW2, N1 20.048/20.048 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20.048/20.048 20.048/20.048 Infeasible Convergence No Conditions CCP Processor: 20.048/20.048 Infeasible convergence? 20.048/20.048 YES 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 20.048/20.048 Infeasibility Problem: 20.048/20.048 [(VAR vNonEmpty xs y1 ws v w x1 xs1 zs z ys y v1 vNonEmpty z) 20.048/20.048 (STRATEGY CONTEXTSENSITIVE 20.048/20.048 (get 1) 20.048/20.048 (ssp1 1 2) 20.048/20.048 (sub 1 2) 20.048/20.048 (0) 20.048/20.048 (cons 1 2) 20.048/20.048 (c_ws) 20.048/20.048 (c_y1) 20.048/20.048 (fSNonEmpty) 20.048/20.048 (nil) 20.048/20.048 (s 1) 20.048/20.048 (tp2 1 2) 20.048/20.048 ) 20.048/20.048 (RULES 20.048/20.048 get(cons(x1,xs1)) -> tp2(y,cons(x1,zs)) | get(xs1) ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp1(cons(y1,ws),v) -> cons(y1,ssp1(ws,sub(v,y1))) 20.048/20.048 ssp1(cons(x1,xs1),v) -> cons(y1,ssp1(cons(x1,zs),sub(v,y1))) | get(xs1) ->* tp2(y1,zs) 20.048/20.048 ssp1(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 sub(z,0) -> z 20.048/20.048 )] 20.048/20.048 20.048/20.048 Infeasibility Conditions: 20.048/20.048 cons(c_y1,ssp1(c_ws,sub(0,c_y1))) ->* z, nil ->* z 20.048/20.048 20.048/20.048 Problem 1: 20.048/20.048 20.048/20.048 Obtaining a model using Mace4: 20.048/20.048 20.048/20.048 -> Usable Rules: 20.048/20.048 get(cons(x1,xs1)) -> tp2(y,cons(x1,zs)) | get(xs1) ->* tp2(y,zs) 20.048/20.048 get(cons(y,ys)) -> tp2(y,ys) 20.048/20.048 ssp1(cons(y1,ws),v) -> cons(y1,ssp1(ws,sub(v,y1))) 20.048/20.048 ssp1(cons(x1,xs1),v) -> cons(y1,ssp1(cons(x1,zs),sub(v,y1))) | get(xs1) ->* tp2(y1,zs) 20.048/20.048 ssp1(xs,0) -> nil 20.048/20.048 sub(s(v),s(w)) -> sub(v,w) 20.048/20.048 sub(z,0) -> z 20.048/20.048 20.048/20.048 -> Mace4 Output: 20.048/20.048 ============================== Mace4 ================================= 20.048/20.048 Mace4 (64) version 2009-11A, November 2009. 20.048/20.048 Process 58298 was started by ubuntu on ubuntu, 20.048/20.048 Wed Mar 9 09:36:38 2022 20.048/20.048 The command was "./mace4 -c -f /tmp/mace458285-2.in". 20.048/20.048 ============================== end of head =========================== 20.048/20.048 20.048/20.048 ============================== INPUT ================================= 20.048/20.048 20.048/20.048 % Reading from file /tmp/mace458285-2.in 20.048/20.048 20.048/20.048 assign(max_seconds,20). 20.048/20.048 20.048/20.048 formulas(assumptions). 20.048/20.048 ->(x1,y) -> ->(get(x1),get(y)) # label(congruence). 20.048/20.048 ->(x1,y) -> ->(ssp1(x1,x2),ssp1(y,x2)) # label(congruence). 20.048/20.048 ->(x2,y) -> ->(ssp1(x1,x2),ssp1(x1,y)) # label(congruence). 20.048/20.048 ->(x1,y) -> ->(sub(x1,x2),sub(y,x2)) # label(congruence). 20.048/20.048 ->(x2,y) -> ->(sub(x1,x2),sub(x1,y)) # label(congruence). 20.048/20.048 ->(x1,y) -> ->(cons(x1,x2),cons(y,x2)) # label(congruence). 20.048/20.048 ->(x2,y) -> ->(cons(x1,x2),cons(x1,y)) # label(congruence). 20.048/20.048 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence). 20.048/20.048 ->(x1,y) -> ->(tp2(x1,x2),tp2(y,x2)) # label(congruence). 20.048/20.048 ->(x2,y) -> ->(tp2(x1,x2),tp2(x1,y)) # label(congruence). 20.048/20.048 ->*(get(x7),tp2(x11,x8)) -> ->(get(cons(x6,x7)),tp2(x11,cons(x6,x8))) # label(replacement). 20.048/20.048 ->(get(cons(x11,x10)),tp2(x11,x10)) # label(replacement). 20.048/20.048 ->(ssp1(cons(x2,x3),x4),cons(x2,ssp1(x3,sub(x4,x2)))) # label(replacement). 20.048/20.048 ->*(get(x7),tp2(x2,x8)) -> ->(ssp1(cons(x6,x7),x4),cons(x2,ssp1(cons(x6,x8),sub(x4,x2)))) # label(replacement). 20.048/20.048 ->(ssp1(x1,0),nil) # label(replacement). 20.048/20.048 ->(sub(s(x4),s(x5)),sub(x4,x5)) # label(replacement). 20.048/20.048 ->(sub(x9,0),x9) # label(replacement). 20.048/20.048 ->*(x,x) # label(reflexivity). 20.048/20.048 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 formulas(goals). 20.048/20.048 (exists x14 (->*(cons(c_y1,ssp1(c_ws,sub(0,c_y1))),x14) & ->*(nil,x14))) # label(goal). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 ============================== end of input ========================== 20.048/20.048 20.048/20.048 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 20.048/20.048 20.048/20.048 % Formulas that are not ordinary clauses: 20.048/20.048 1 ->(x1,y) -> ->(get(x1),get(y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 2 ->(x1,y) -> ->(ssp1(x1,x2),ssp1(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 3 ->(x2,y) -> ->(ssp1(x1,x2),ssp1(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 4 ->(x1,y) -> ->(sub(x1,x2),sub(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 5 ->(x2,y) -> ->(sub(x1,x2),sub(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 6 ->(x1,y) -> ->(cons(x1,x2),cons(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 7 ->(x2,y) -> ->(cons(x1,x2),cons(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 8 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 9 ->(x1,y) -> ->(tp2(x1,x2),tp2(y,x2)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 10 ->(x2,y) -> ->(tp2(x1,x2),tp2(x1,y)) # label(congruence) # label(non_clause). [assumption]. 20.048/20.048 11 ->*(get(x7),tp2(x11,x8)) -> ->(get(cons(x6,x7)),tp2(x11,cons(x6,x8))) # label(replacement) # label(non_clause). [assumption]. 20.048/20.048 12 ->*(get(x7),tp2(x2,x8)) -> ->(ssp1(cons(x6,x7),x4),cons(x2,ssp1(cons(x6,x8),sub(x4,x2)))) # label(replacement) # label(non_clause). [assumption]. 20.048/20.048 13 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity) # label(non_clause). [assumption]. 20.048/20.048 14 (exists x14 (->*(cons(c_y1,ssp1(c_ws,sub(0,c_y1))),x14) & ->*(nil,x14))) # label(goal) # label(non_clause) # label(goal). [goal]. 20.048/20.048 20.048/20.048 ============================== end of process non-clausal formulas === 20.048/20.048 20.048/20.048 ============================== CLAUSES FOR SEARCH ==================== 20.048/20.048 20.048/20.048 formulas(mace4_clauses). 20.048/20.048 -->(x,y) | ->(get(x),get(y)) # label(congruence). 20.048/20.048 -->(x,y) | ->(ssp1(x,z),ssp1(y,z)) # label(congruence). 20.048/20.048 -->(x,y) | ->(ssp1(z,x),ssp1(z,y)) # label(congruence). 20.048/20.048 -->(x,y) | ->(sub(x,z),sub(y,z)) # label(congruence). 20.048/20.048 -->(x,y) | ->(sub(z,x),sub(z,y)) # label(congruence). 20.048/20.048 -->(x,y) | ->(cons(x,z),cons(y,z)) # label(congruence). 20.048/20.048 -->(x,y) | ->(cons(z,x),cons(z,y)) # label(congruence). 20.048/20.048 -->(x,y) | ->(s(x),s(y)) # label(congruence). 20.048/20.048 -->(x,y) | ->(tp2(x,z),tp2(y,z)) # label(congruence). 20.048/20.048 -->(x,y) | ->(tp2(z,x),tp2(z,y)) # label(congruence). 20.048/20.048 -->*(get(x),tp2(y,z)) | ->(get(cons(u,x)),tp2(y,cons(u,z))) # label(replacement). 20.048/20.048 ->(get(cons(x,y)),tp2(x,y)) # label(replacement). 20.048/20.048 ->(ssp1(cons(x,y),z),cons(x,ssp1(y,sub(z,x)))) # label(replacement). 20.048/20.048 -->*(get(x),tp2(y,z)) | ->(ssp1(cons(u,x),w),cons(y,ssp1(cons(u,z),sub(w,y)))) # label(replacement). 20.048/20.048 ->(ssp1(x,0),nil) # label(replacement). 20.048/20.048 ->(sub(s(x),s(y)),sub(x,y)) # label(replacement). 20.048/20.048 ->(sub(x,0),x) # label(replacement). 20.048/20.048 ->*(x,x) # label(reflexivity). 20.048/20.048 -->(x,y) | -->*(y,z) | ->*(x,z) # label(transitivity). 20.048/20.048 -->*(cons(c_y1,ssp1(c_ws,sub(0,c_y1))),x) | -->*(nil,x) # label(goal). 20.048/20.048 end_of_list. 20.048/20.048 20.048/20.048 ============================== end of clauses for search ============= 20.048/20.048 20.048/20.048 % There are no natural numbers in the input. 20.048/20.048 20.048/20.048 ============================== DOMAIN SIZE 2 ========================= 20.048/20.048 20.048/20.048 ============================== STATISTICS ============================ 20.048/20.048 20.048/20.048 For domain size 2. 20.048/20.048 20.048/20.048 Current CPU time: 0.00 seconds (total CPU time: 5.07 seconds). 20.048/20.048 Ground clauses: seen=152, kept=148. 20.048/20.048 Selections=474236, assignments=948471, propagations=541916, current_models=0. 20.048/20.048 Rewrite_terms=21793952, rewrite_bools=7673473, indexes=3420835. 20.048/20.048 Rules_from_neg_clauses=402033, cross_offs=402033. 20.048/20.048 20.048/20.048 ============================== end of statistics ===================== 20.048/20.048 20.048/20.048 ============================== DOMAIN SIZE 3 ========================= 20.048/20.048 20.048/20.048 ============================== MODEL ================================= 20.048/20.048 20.048/20.048 interpretation( 3, [number=1, seconds=5], [ 20.048/20.048 20.048/20.048 function(nil, [ 0 ]), 20.048/20.048 20.048/20.048 function(0, [ 0 ]), 20.048/20.048 20.048/20.048 function(c_ws, [ 0 ]), 20.048/20.048 20.048/20.048 function(c_y1, [ 0 ]), 20.048/20.048 20.048/20.048 function(s(_), [ 0, 1, 2 ]), 20.048/20.048 20.048/20.048 function(get(_), [ 0, 0, 0 ]), 20.048/20.048 20.048/20.048 function(tp2(_,_), [ 20.048/20.048 0, 0, 0, 20.048/20.048 0, 0, 0, 20.048/20.048 0, 0, 0 ]), 20.048/20.048 20.048/20.048 function(ssp1(_,_), [ 20.048/20.048 0, 0, 0, 20.048/20.048 2, 1, 2, 20.048/20.048 2, 2, 2 ]), 20.048/20.048 20.048/20.048 function(sub(_,_), [ 20.048/20.048 0, 0, 0, 20.048/20.048 1, 0, 2, 20.048/20.048 2, 0, 2 ]), 20.048/20.048 20.048/20.048 function(cons(_,_), [ 20.048/20.048 1, 1, 1, 20.048/20.048 1, 1, 1, 20.048/20.048 1, 1, 1 ]), 20.048/20.048 20.048/20.048 relation(->*(_,_), [ 20.048/20.048 1, 0, 0, 20.048/20.048 0, 1, 0, 20.048/20.048 1, 1, 1 ]), 20.048/20.048 20.048/20.048 relation(->(_,_), [ 20.048/20.048 1, 0, 0, 20.048/20.048 0, 1, 0, 20.048/20.048 1, 1, 1 ]) 20.048/20.048 ]). 20.048/20.048 20.048/20.048 ============================== end of model ========================== 20.048/20.048 20.048/20.048 ============================== STATISTICS ============================ 20.048/20.048 20.048/20.048 For domain size 3. 20.048/20.048 20.048/20.048 Current CPU time: 0.00 seconds (total CPU time: 5.08 seconds). 20.048/20.048 Ground clauses: seen=642, kept=633. 20.048/20.048 Selections=147, assignments=387, propagations=119, current_models=1. 20.048/20.048 Rewrite_terms=30394, rewrite_bools=8233, indexes=1298. 20.048/20.048 Rules_from_neg_clauses=91, cross_offs=263. 20.048/20.048 20.048/20.048 ============================== end of statistics ===================== 20.048/20.048 20.048/20.048 User_CPU=5.08, System_CPU=0.27, Wall_clock=5. 20.048/20.048 20.048/20.048 Exiting with 1 model. 20.048/20.048 20.048/20.048 Process 58298 exit (max_models) Wed Mar 9 09:36:43 2022 20.048/20.048 The process finished Wed Mar 9 09:36:43 2022 20.048/20.048 20.048/20.048 20.048/20.048 Mace4 cooked interpretation: 20.048/20.048 20.048/20.048 20.048/20.048 20.048/20.048 The problem is infeasible. 20.048/20.048 20.048/20.048 20.048/20.048 The problem is not joinable. 20.048/20.048 26.83user 1.07system 0:20.48elapsed 136%CPU (0avgtext+0avgdata 116704maxresident)k 20.048/20.048 8inputs+0outputs (0major+53827minor)pagefaults 0swaps