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