42.046/42.046 NO 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 Confluence Problem: 42.046/42.046 (VAR vNonEmpty w x y z) 42.046/42.046 (REPLACEMENT-MAP 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1, 2) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1, 2) 42.046/42.046 (s 1) 42.046/42.046 (tp 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1, 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 ihalf(s(y)) -> tp1(s(s(x))) | ihalf(y) ->* tp(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | imul(y) ->* tp2(x,z), ihalf(z) ->* tp1(s(x)) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 ) 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Inlining of Conditions Processor [STERN17]: 42.046/42.046 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 Confluence Problem: 42.046/42.046 (VAR vNonEmpty w x y z) 42.046/42.046 (REPLACEMENT-MAP 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1, 2) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1, 2) 42.046/42.046 (s 1) 42.046/42.046 (tp 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1, 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 ihalf(s(y)) -> tp1(s(s(x))) | ihalf(y) ->* tp(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 ) 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Clean CTRS Processor: 42.046/42.046 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 Confluence Problem: 42.046/42.046 (VAR w x y z) 42.046/42.046 (REPLACEMENT-MAP 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1, 2) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1, 2) 42.046/42.046 (s 1) 42.046/42.046 (tp 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1, 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 ) 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO_CONDS 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Infeasibility Problem: 42.046/42.046 [(VAR vNonEmpty w x y z vNonEmpty x y z) 42.046/42.046 (STRATEGY CONTEXTSENSITIVE 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1 2) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1 2) 42.046/42.046 (s 1) 42.046/42.046 (tp 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 ihalf(s(y)) -> tp1(s(s(x))) | ihalf(y) ->* tp(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 )] 42.046/42.046 42.046/42.046 Infeasibility Conditions: 42.046/42.046 iadd(z) ->* tp2(x,y) 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Obtaining a proof using Prover9: 42.046/42.046 42.046/42.046 -> Prover9 Output: 42.046/42.046 ============================== Prover9 =============================== 42.046/42.046 Prover9 (64) version 2009-11A, November 2009. 42.046/42.046 Process 10442 was started by ubuntu on ubuntu, 42.046/42.046 Wed Mar 9 09:13:13 2022 42.046/42.046 The command was "./prover9 -f /tmp/prover910433-0.in". 42.046/42.046 ============================== end of head =========================== 42.046/42.046 42.046/42.046 ============================== INPUT ================================= 42.046/42.046 42.046/42.046 % Reading from file /tmp/prover910433-0.in 42.046/42.046 42.046/42.046 assign(max_seconds,20). 42.046/42.046 42.046/42.046 formulas(assumptions). 42.046/42.046 ->_s0(x1,y) -> ->_s0(iadd(x1),iadd(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(ihalf(x1),ihalf(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(imh(x1),imh(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(imul(x1),imul(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(add(x1,x2),add(y,x2)) # label(congruence). 42.046/42.046 ->_s0(x2,y) -> ->_s0(add(x1,x2),add(x1,y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(half(x1),half(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(mh(x1),mh(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(mul(x1,x2),mul(y,x2)) # label(congruence). 42.046/42.046 ->_s0(x2,y) -> ->_s0(mul(x1,x2),mul(x1,y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(tp(x1),tp(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(tp1(x1),tp1(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence). 42.046/42.046 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence). 42.046/42.046 ->_s0(iadd(add(x2,x3)),tp2(x2,x3)) # label(replacement). 42.046/42.046 ->*_s0(iadd(x4),tp2(x2,x3)) -> ->_s0(iadd(s(x4)),tp2(s(x2),x3)) # label(replacement). 42.046/42.046 ->_s0(iadd(x3),tp2(0,x3)) # label(replacement). 42.046/42.046 ->_s0(ihalf(0),tp1(0)) # label(replacement). 42.046/42.046 ->_s0(ihalf(half(x2)),tp1(x2)) # label(replacement). 42.046/42.046 ->*_s0(ihalf(x3),tp(x2)) -> ->_s0(ihalf(s(x3)),tp1(s(s(x2)))) # label(replacement). 42.046/42.046 ->_s0(imh(mh(x2)),tp1(x2)) # label(replacement). 42.046/42.046 ->*_s0(ihalf(x4),tp1(s(x2))) & ->*_s0(imul(x3),tp2(x2,x4)) -> ->_s0(imh(x3),tp1(x2)) # label(replacement). 42.046/42.046 ->_s0(imul(0),tp2(0,x3)) # label(replacement). 42.046/42.046 ->_s0(imul(0),tp2(x2,0)) # label(replacement). 42.046/42.046 ->_s0(imul(mul(x2,x3)),tp2(x2,x3)) # label(replacement). 42.046/42.046 ->*_s0(iadd(x4),tp2(x1,x3)) & ->*_s0(imul(x1),tp2(x2,s(x3))) -> ->_s0(imul(s(x4)),tp2(s(x2),s(x3))) # label(replacement). 42.046/42.046 ->*_s0(x,x) # label(reflexivity). 42.046/42.046 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(goals). 42.046/42.046 (exists x6 exists x7 exists x8 ->*_s0(iadd(x8),tp2(x6,x7))) # label(goal). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== end of input ========================== 42.046/42.046 42.046/42.046 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 42.046/42.046 42.046/42.046 % Formulas that are not ordinary clauses: 42.046/42.046 1 ->_s0(x1,y) -> ->_s0(iadd(x1),iadd(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 2 ->_s0(x1,y) -> ->_s0(ihalf(x1),ihalf(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 3 ->_s0(x1,y) -> ->_s0(imh(x1),imh(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 4 ->_s0(x1,y) -> ->_s0(imul(x1),imul(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 5 ->_s0(x1,y) -> ->_s0(add(x1,x2),add(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 6 ->_s0(x2,y) -> ->_s0(add(x1,x2),add(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 7 ->_s0(x1,y) -> ->_s0(half(x1),half(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 8 ->_s0(x1,y) -> ->_s0(mh(x1),mh(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 9 ->_s0(x1,y) -> ->_s0(mul(x1,x2),mul(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 10 ->_s0(x2,y) -> ->_s0(mul(x1,x2),mul(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 11 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 12 ->_s0(x1,y) -> ->_s0(tp(x1),tp(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 13 ->_s0(x1,y) -> ->_s0(tp1(x1),tp1(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 14 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 15 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 16 ->*_s0(iadd(x4),tp2(x2,x3)) -> ->_s0(iadd(s(x4)),tp2(s(x2),x3)) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 17 ->*_s0(ihalf(x3),tp(x2)) -> ->_s0(ihalf(s(x3)),tp1(s(s(x2)))) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 18 ->*_s0(ihalf(x4),tp1(s(x2))) & ->*_s0(imul(x3),tp2(x2,x4)) -> ->_s0(imh(x3),tp1(x2)) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 19 ->*_s0(iadd(x4),tp2(x1,x3)) & ->*_s0(imul(x1),tp2(x2,s(x3))) -> ->_s0(imul(s(x4)),tp2(s(x2),s(x3))) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 20 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 42.046/42.046 21 (exists x6 exists x7 exists x8 ->*_s0(iadd(x8),tp2(x6,x7))) # label(goal) # label(non_clause) # label(goal). [goal]. 42.046/42.046 42.046/42.046 ============================== end of process non-clausal formulas === 42.046/42.046 42.046/42.046 ============================== PROCESS INITIAL CLAUSES =============== 42.046/42.046 42.046/42.046 % Clauses before input processing: 42.046/42.046 42.046/42.046 formulas(usable). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(sos). 42.046/42.046 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 -->_s0(x,y) | ->_s0(tp(x),tp(y)) # label(congruence). [clausify(12)]. 42.046/42.046 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(13)]. 42.046/42.046 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(14)]. 42.046/42.046 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(15)]. 42.046/42.046 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 -->*_s0(iadd(x),tp2(y,z)) | ->_s0(iadd(s(x)),tp2(s(y),z)) # label(replacement). [clausify(16)]. 42.046/42.046 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 -->*_s0(ihalf(x),tp(y)) | ->_s0(ihalf(s(x)),tp1(s(s(y)))) # label(replacement). [clausify(17)]. 42.046/42.046 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) | ->_s0(imh(z),tp1(y)) # label(replacement). [clausify(18)]. 42.046/42.046 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) | ->_s0(imul(s(x)),tp2(s(u),s(z))) # label(replacement). [clausify(19)]. 42.046/42.046 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(20)]. 42.046/42.046 -->*_s0(iadd(x),tp2(y,z)) # label(goal). [deny(21)]. 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(demodulators). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== PREDICATE ELIMINATION ================= 42.046/42.046 42.046/42.046 No predicates eliminated. 42.046/42.046 42.046/42.046 ============================== end predicate elimination ============= 42.046/42.046 42.046/42.046 Auto_denials: 42.046/42.046 % copying label goal to answer in negative clause 42.046/42.046 42.046/42.046 Term ordering decisions: 42.046/42.046 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 42.046/42.046 Function symbol precedence: function_order([ 0, tp2, mul, add, s, tp1, imul, iadd, ihalf, imh, mh, tp, half ]). 42.046/42.046 After inverse_order: (no changes). 42.046/42.046 Unfolding symbols: (none). 42.046/42.046 42.046/42.046 Auto_inference settings: 42.046/42.046 % set(neg_binary_resolution). % (HNE depth_diff=-17) 42.046/42.046 % clear(ordered_res). % (HNE depth_diff=-17) 42.046/42.046 % set(ur_resolution). % (HNE depth_diff=-17) 42.046/42.046 % set(ur_resolution) -> set(pos_ur_resolution). 42.046/42.046 % set(ur_resolution) -> set(neg_ur_resolution). 42.046/42.046 42.046/42.046 Auto_process settings: (no changes). 42.046/42.046 42.046/42.046 kept: 22 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 kept: 23 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 kept: 24 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 kept: 25 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 kept: 26 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 kept: 27 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 kept: 28 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 kept: 29 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 kept: 30 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 kept: 31 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 kept: 32 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 kept: 33 -->_s0(x,y) | ->_s0(tp(x),tp(y)) # label(congruence). [clausify(12)]. 42.046/42.046 kept: 34 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(13)]. 42.046/42.046 kept: 35 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(14)]. 42.046/42.046 kept: 36 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(15)]. 42.046/42.046 kept: 37 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 kept: 38 -->*_s0(iadd(x),tp2(y,z)) | ->_s0(iadd(s(x)),tp2(s(y),z)) # label(replacement). [clausify(16)]. 42.046/42.046 kept: 39 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 kept: 40 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 kept: 41 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 kept: 42 -->*_s0(ihalf(x),tp(y)) | ->_s0(ihalf(s(x)),tp1(s(s(y)))) # label(replacement). [clausify(17)]. 42.046/42.046 kept: 43 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 kept: 44 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) | ->_s0(imh(z),tp1(y)) # label(replacement). [clausify(18)]. 42.046/42.046 kept: 45 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 kept: 46 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 kept: 47 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 kept: 48 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) | ->_s0(imul(s(x)),tp2(s(u),s(z))) # label(replacement). [clausify(19)]. 42.046/42.046 kept: 49 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 kept: 50 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(20)]. 42.046/42.046 kept: 51 -->*_s0(iadd(x),tp2(y,z)) # label(goal) # answer(goal). [deny(21)]. 42.046/42.046 42.046/42.046 ============================== end of process initial clauses ======== 42.046/42.046 42.046/42.046 ============================== CLAUSES FOR SEARCH ==================== 42.046/42.046 42.046/42.046 % Clauses after input processing: 42.046/42.046 42.046/42.046 formulas(usable). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(sos). 42.046/42.046 22 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 23 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 24 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 25 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 26 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 27 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 28 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 29 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 30 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 31 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 32 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 33 -->_s0(x,y) | ->_s0(tp(x),tp(y)) # label(congruence). [clausify(12)]. 42.046/42.046 34 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(13)]. 42.046/42.046 35 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(14)]. 42.046/42.046 36 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(15)]. 42.046/42.046 37 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 39 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 40 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 41 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 42 -->*_s0(ihalf(x),tp(y)) | ->_s0(ihalf(s(x)),tp1(s(s(y)))) # label(replacement). [clausify(17)]. 42.046/42.046 43 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 44 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) | ->_s0(imh(z),tp1(y)) # label(replacement). [clausify(18)]. 42.046/42.046 45 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 46 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 47 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 49 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 50 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(20)]. 42.046/42.046 51 -->*_s0(iadd(x),tp2(y,z)) # label(goal) # answer(goal). [deny(21)]. 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(demodulators). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== end of clauses for search ============= 42.046/42.046 42.046/42.046 ============================== SEARCH ================================ 42.046/42.046 42.046/42.046 % Starting search at 0.00 seconds. 42.046/42.046 42.046/42.046 given #1 (I,wt=8): 22 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 42.046/42.046 given #2 (I,wt=8): 23 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 42.046/42.046 given #3 (I,wt=8): 24 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 42.046/42.046 given #4 (I,wt=8): 25 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 42.046/42.046 given #5 (I,wt=10): 26 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 42.046/42.046 given #6 (I,wt=10): 27 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 42.046/42.046 given #7 (I,wt=8): 28 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 42.046/42.046 given #8 (I,wt=8): 29 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 42.046/42.046 given #9 (I,wt=10): 30 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 42.046/42.046 given #10 (I,wt=10): 31 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 42.046/42.046 given #11 (I,wt=8): 32 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 42.046/42.046 given #12 (I,wt=8): 33 -->_s0(x,y) | ->_s0(tp(x),tp(y)) # label(congruence). [clausify(12)]. 42.046/42.046 42.046/42.046 given #13 (I,wt=8): 34 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(13)]. 42.046/42.046 42.046/42.046 given #14 (I,wt=10): 35 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(14)]. 42.046/42.046 42.046/42.046 given #15 (I,wt=10): 36 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(15)]. 42.046/42.046 42.046/42.046 given #16 (I,wt=8): 37 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #17 (I,wt=6): 39 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #18 (I,wt=5): 40 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #19 (I,wt=6): 41 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #20 (I,wt=13): 42 -->*_s0(ihalf(x),tp(y)) | ->_s0(ihalf(s(x)),tp1(s(s(y)))) # label(replacement). [clausify(17)]. 42.046/42.046 42.046/42.046 given #21 (I,wt=6): 43 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #22 (I,wt=17): 44 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) | ->_s0(imh(z),tp1(y)) # label(replacement). [clausify(18)]. 42.046/42.046 42.046/42.046 given #23 (I,wt=6): 45 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #24 (I,wt=6): 46 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #25 (I,wt=8): 47 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #26 (I,wt=3): 49 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 42.046/42.046 given #27 (I,wt=9): 50 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(20)]. 42.046/42.046 42.046/42.046 ============================== PROOF ================================= 42.046/42.046 42.046/42.046 % Proof 1 at 0.01 (+ 0.00) seconds: goal. 42.046/42.046 % Length of proof is 8. 42.046/42.046 % Level of proof is 3. 42.046/42.046 % Maximum clause weight is 9.000. 42.046/42.046 % Given clauses 27. 42.046/42.046 42.046/42.046 20 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 42.046/42.046 21 (exists x6 exists x7 exists x8 ->*_s0(iadd(x8),tp2(x6,x7))) # label(goal) # label(non_clause) # label(goal). [goal]. 42.046/42.046 39 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 49 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 50 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(20)]. 42.046/42.046 51 -->*_s0(iadd(x),tp2(y,z)) # label(goal) # answer(goal). [deny(21)]. 42.046/42.046 178 ->*_s0(iadd(x),tp2(0,x)). [ur(50,a,39,a,b,49,a)]. 42.046/42.046 179 $F # answer(goal). [resolve(178,a,51,a)]. 42.046/42.046 42.046/42.046 ============================== end of proof ========================== 42.046/42.046 42.046/42.046 ============================== STATISTICS ============================ 42.046/42.046 42.046/42.046 Given=27. Generated=157. Kept=157. proofs=1. 42.046/42.046 Usable=27. Sos=121. Demods=0. Limbo=6, Disabled=32. Hints=0. 42.046/42.046 Kept_by_rule=0, Deleted_by_rule=0. 42.046/42.046 Forward_subsumed=0. Back_subsumed=2. 42.046/42.046 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 42.046/42.046 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 42.046/42.046 Demod_attempts=0. Demod_rewrites=0. 42.046/42.046 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 42.046/42.046 Nonunit_fsub_feature_tests=3. Nonunit_bsub_feature_tests=29. 42.046/42.046 Megabytes=0.34. 42.046/42.046 User_CPU=0.01, System_CPU=0.00, Wall_clock=0. 42.046/42.046 42.046/42.046 ============================== end of statistics ===================== 42.046/42.046 42.046/42.046 ============================== end of search ========================= 42.046/42.046 42.046/42.046 THEOREM PROVED 42.046/42.046 42.046/42.046 Exiting with 1 proof. 42.046/42.046 42.046/42.046 Process 10442 exit (max_proofs) Wed Mar 9 09:13:13 2022 42.046/42.046 42.046/42.046 42.046/42.046 The problem is feasible. 42.046/42.046 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO_CONDS 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO_CONDS 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO_CONDS 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 ihalf(s(y)) -> tp1(s(s(x))) | ihalf(y) ->* tp(x) 42.046/42.046 Rule deleted 42.046/42.046 Proof: 42.046/42.046 YES 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Infeasibility Problem: 42.046/42.046 [(VAR vNonEmpty w x y z vNonEmpty x y) 42.046/42.046 (STRATEGY CONTEXTSENSITIVE 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1 2) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1 2) 42.046/42.046 (s 1) 42.046/42.046 (tp 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 ihalf(s(y)) -> tp1(s(s(x))) | ihalf(y) ->* tp(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 )] 42.046/42.046 42.046/42.046 Infeasibility Conditions: 42.046/42.046 ihalf(y) ->* tp(x) 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Obtaining a model using Mace4: 42.046/42.046 42.046/42.046 -> Usable Rules: 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 ihalf(s(y)) -> tp1(s(s(x))) | ihalf(y) ->* tp(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 42.046/42.046 -> Mace4 Output: 42.046/42.046 ============================== Mace4 ================================= 42.046/42.046 Mace4 (64) version 2009-11A, November 2009. 42.046/42.046 Process 10467 was started by ubuntu on ubuntu, 42.046/42.046 Wed Mar 9 09:13:13 2022 42.046/42.046 The command was "./mace4 -c -f /tmp/mace410455-2.in". 42.046/42.046 ============================== end of head =========================== 42.046/42.046 42.046/42.046 ============================== INPUT ================================= 42.046/42.046 42.046/42.046 % Reading from file /tmp/mace410455-2.in 42.046/42.046 42.046/42.046 assign(max_seconds,20). 42.046/42.046 42.046/42.046 formulas(assumptions). 42.046/42.046 ->(x1,y) -> ->(iadd(x1),iadd(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(ihalf(x1),ihalf(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(imh(x1),imh(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(imul(x1),imul(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(add(x1,x2),add(y,x2)) # label(congruence). 42.046/42.046 ->(x2,y) -> ->(add(x1,x2),add(x1,y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(half(x1),half(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(mh(x1),mh(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(mul(x1,x2),mul(y,x2)) # label(congruence). 42.046/42.046 ->(x2,y) -> ->(mul(x1,x2),mul(x1,y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(tp(x1),tp(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(tp1(x1),tp1(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(tp2(x1,x2),tp2(y,x2)) # label(congruence). 42.046/42.046 ->(x2,y) -> ->(tp2(x1,x2),tp2(x1,y)) # label(congruence). 42.046/42.046 ->(iadd(add(x2,x3)),tp2(x2,x3)) # label(replacement). 42.046/42.046 ->*(iadd(x4),tp2(x2,x3)) -> ->(iadd(s(x4)),tp2(s(x2),x3)) # label(replacement). 42.046/42.046 ->(iadd(x3),tp2(0,x3)) # label(replacement). 42.046/42.046 ->(ihalf(0),tp1(0)) # label(replacement). 42.046/42.046 ->(ihalf(half(x2)),tp1(x2)) # label(replacement). 42.046/42.046 ->*(ihalf(x3),tp(x2)) -> ->(ihalf(s(x3)),tp1(s(s(x2)))) # label(replacement). 42.046/42.046 ->(imh(mh(x2)),tp1(x2)) # label(replacement). 42.046/42.046 ->*(ihalf(x4),tp1(s(x2))) & ->*(imul(x3),tp2(x2,x4)) -> ->(imh(x3),tp1(x2)) # label(replacement). 42.046/42.046 ->(imul(0),tp2(0,x3)) # label(replacement). 42.046/42.046 ->(imul(0),tp2(x2,0)) # label(replacement). 42.046/42.046 ->(imul(mul(x2,x3)),tp2(x2,x3)) # label(replacement). 42.046/42.046 ->*(iadd(x4),tp2(x1,x3)) & ->*(imul(x1),tp2(x2,s(x3))) -> ->(imul(s(x4)),tp2(s(x2),s(x3))) # label(replacement). 42.046/42.046 ->*(x,x) # label(reflexivity). 42.046/42.046 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(goals). 42.046/42.046 (exists x6 exists x7 ->*(ihalf(x7),tp(x6))) # label(goal). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== end of input ========================== 42.046/42.046 42.046/42.046 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 42.046/42.046 42.046/42.046 % Formulas that are not ordinary clauses: 42.046/42.046 1 ->(x1,y) -> ->(iadd(x1),iadd(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 2 ->(x1,y) -> ->(ihalf(x1),ihalf(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 3 ->(x1,y) -> ->(imh(x1),imh(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 4 ->(x1,y) -> ->(imul(x1),imul(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 5 ->(x1,y) -> ->(add(x1,x2),add(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 6 ->(x2,y) -> ->(add(x1,x2),add(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 7 ->(x1,y) -> ->(half(x1),half(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 8 ->(x1,y) -> ->(mh(x1),mh(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 9 ->(x1,y) -> ->(mul(x1,x2),mul(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 10 ->(x2,y) -> ->(mul(x1,x2),mul(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 11 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 12 ->(x1,y) -> ->(tp(x1),tp(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 13 ->(x1,y) -> ->(tp1(x1),tp1(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 14 ->(x1,y) -> ->(tp2(x1,x2),tp2(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 15 ->(x2,y) -> ->(tp2(x1,x2),tp2(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 16 ->*(iadd(x4),tp2(x2,x3)) -> ->(iadd(s(x4)),tp2(s(x2),x3)) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 17 ->*(ihalf(x3),tp(x2)) -> ->(ihalf(s(x3)),tp1(s(s(x2)))) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 18 ->*(ihalf(x4),tp1(s(x2))) & ->*(imul(x3),tp2(x2,x4)) -> ->(imh(x3),tp1(x2)) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 19 ->*(iadd(x4),tp2(x1,x3)) & ->*(imul(x1),tp2(x2,s(x3))) -> ->(imul(s(x4)),tp2(s(x2),s(x3))) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 20 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity) # label(non_clause). [assumption]. 42.046/42.046 21 (exists x6 exists x7 ->*(ihalf(x7),tp(x6))) # label(goal) # label(non_clause) # label(goal). [goal]. 42.046/42.046 42.046/42.046 ============================== end of process non-clausal formulas === 42.046/42.046 42.046/42.046 ============================== CLAUSES FOR SEARCH ==================== 42.046/42.046 42.046/42.046 formulas(mace4_clauses). 42.046/42.046 -->(x,y) | ->(iadd(x),iadd(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(ihalf(x),ihalf(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(imh(x),imh(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(imul(x),imul(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(add(x,z),add(y,z)) # label(congruence). 42.046/42.046 -->(x,y) | ->(add(z,x),add(z,y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(half(x),half(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(mh(x),mh(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(mul(x,z),mul(y,z)) # label(congruence). 42.046/42.046 -->(x,y) | ->(mul(z,x),mul(z,y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(s(x),s(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(tp(x),tp(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(tp1(x),tp1(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(tp2(x,z),tp2(y,z)) # label(congruence). 42.046/42.046 -->(x,y) | ->(tp2(z,x),tp2(z,y)) # label(congruence). 42.046/42.046 ->(iadd(add(x,y)),tp2(x,y)) # label(replacement). 42.046/42.046 -->*(iadd(x),tp2(y,z)) | ->(iadd(s(x)),tp2(s(y),z)) # label(replacement). 42.046/42.046 ->(iadd(x),tp2(0,x)) # label(replacement). 42.046/42.046 ->(ihalf(0),tp1(0)) # label(replacement). 42.046/42.046 ->(ihalf(half(x)),tp1(x)) # label(replacement). 42.046/42.046 -->*(ihalf(x),tp(y)) | ->(ihalf(s(x)),tp1(s(s(y)))) # label(replacement). 42.046/42.046 ->(imh(mh(x)),tp1(x)) # label(replacement). 42.046/42.046 -->*(ihalf(x),tp1(s(y))) | -->*(imul(z),tp2(y,x)) | ->(imh(z),tp1(y)) # label(replacement). 42.046/42.046 ->(imul(0),tp2(0,x)) # label(replacement). 42.046/42.046 ->(imul(0),tp2(x,0)) # label(replacement). 42.046/42.046 ->(imul(mul(x,y)),tp2(x,y)) # label(replacement). 42.046/42.046 -->*(iadd(x),tp2(y,z)) | -->*(imul(y),tp2(u,s(z))) | ->(imul(s(x)),tp2(s(u),s(z))) # label(replacement). 42.046/42.046 ->*(x,x) # label(reflexivity). 42.046/42.046 -->(x,y) | -->*(y,z) | ->*(x,z) # label(transitivity). 42.046/42.046 -->*(ihalf(x),tp(y)) # label(goal). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== end of clauses for search ============= 42.046/42.046 42.046/42.046 % There are no natural numbers in the input. 42.046/42.046 42.046/42.046 ============================== DOMAIN SIZE 2 ========================= 42.046/42.046 42.046/42.046 ============================== MODEL ================================= 42.046/42.046 42.046/42.046 interpretation( 2, [number=1, seconds=0], [ 42.046/42.046 42.046/42.046 function(0, [ 0 ]), 42.046/42.046 42.046/42.046 function(mh(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(s(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(tp(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(tp1(_), [ 1, 1 ]), 42.046/42.046 42.046/42.046 function(iadd(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(ihalf(_), [ 1, 1 ]), 42.046/42.046 42.046/42.046 function(imh(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(imul(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(half(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(mul(_,_), [ 42.046/42.046 0, 0, 42.046/42.046 0, 0 ]), 42.046/42.046 42.046/42.046 function(tp2(_,_), [ 42.046/42.046 0, 0, 42.046/42.046 0, 0 ]), 42.046/42.046 42.046/42.046 function(add(_,_), [ 42.046/42.046 0, 0, 42.046/42.046 0, 0 ]), 42.046/42.046 42.046/42.046 relation(->*(_,_), [ 42.046/42.046 1, 1, 42.046/42.046 0, 1 ]), 42.046/42.046 42.046/42.046 relation(->(_,_), [ 42.046/42.046 1, 1, 42.046/42.046 0, 1 ]) 42.046/42.046 ]). 42.046/42.046 42.046/42.046 ============================== end of model ========================== 42.046/42.046 42.046/42.046 ============================== STATISTICS ============================ 42.046/42.046 42.046/42.046 For domain size 2. 42.046/42.046 42.046/42.046 Current CPU time: 0.00 seconds (total CPU time: 0.00 seconds). 42.046/42.046 Ground clauses: seen=153, kept=149. 42.046/42.046 Selections=26, assignments=26, propagations=13, current_models=1. 42.046/42.046 Rewrite_terms=530, rewrite_bools=218, indexes=64. 42.046/42.046 Rules_from_neg_clauses=5, cross_offs=5. 42.046/42.046 42.046/42.046 ============================== end of statistics ===================== 42.046/42.046 42.046/42.046 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 42.046/42.046 42.046/42.046 Exiting with 1 model. 42.046/42.046 42.046/42.046 Process 10467 exit (max_models) Wed Mar 9 09:13:13 2022 42.046/42.046 The process finished Wed Mar 9 09:13:13 2022 42.046/42.046 42.046/42.046 42.046/42.046 Mace4 cooked interpretation: 42.046/42.046 42.046/42.046 42.046/42.046 42.046/42.046 The problem is infeasible. 42.046/42.046 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO_CONDS 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Infeasibility Problem: 42.046/42.046 [(VAR vNonEmpty w x y z vNonEmpty x y z) 42.046/42.046 (STRATEGY CONTEXTSENSITIVE 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1 2) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1 2) 42.046/42.046 (s 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 )] 42.046/42.046 42.046/42.046 Infeasibility Conditions: 42.046/42.046 ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Obtaining a proof using Prover9: 42.046/42.046 42.046/42.046 -> Prover9 Output: 42.046/42.046 ============================== Prover9 =============================== 42.046/42.046 Prover9 (64) version 2009-11A, November 2009. 42.046/42.046 Process 10494 was started by ubuntu on ubuntu, 42.046/42.046 Wed Mar 9 09:13:33 2022 42.046/42.046 The command was "./prover9 -f /tmp/prover910486-0.in". 42.046/42.046 ============================== end of head =========================== 42.046/42.046 42.046/42.046 ============================== INPUT ================================= 42.046/42.046 42.046/42.046 % Reading from file /tmp/prover910486-0.in 42.046/42.046 42.046/42.046 assign(max_seconds,20). 42.046/42.046 42.046/42.046 formulas(assumptions). 42.046/42.046 ->_s0(x1,y) -> ->_s0(iadd(x1),iadd(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(ihalf(x1),ihalf(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(imh(x1),imh(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(imul(x1),imul(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(add(x1,x2),add(y,x2)) # label(congruence). 42.046/42.046 ->_s0(x2,y) -> ->_s0(add(x1,x2),add(x1,y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(half(x1),half(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(mh(x1),mh(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(mul(x1,x2),mul(y,x2)) # label(congruence). 42.046/42.046 ->_s0(x2,y) -> ->_s0(mul(x1,x2),mul(x1,y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(tp1(x1),tp1(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence). 42.046/42.046 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence). 42.046/42.046 ->_s0(iadd(add(x2,x3)),tp2(x2,x3)) # label(replacement). 42.046/42.046 ->*_s0(iadd(x4),tp2(x2,x3)) -> ->_s0(iadd(s(x4)),tp2(s(x2),x3)) # label(replacement). 42.046/42.046 ->_s0(iadd(x3),tp2(0,x3)) # label(replacement). 42.046/42.046 ->_s0(ihalf(0),tp1(0)) # label(replacement). 42.046/42.046 ->_s0(ihalf(half(x2)),tp1(x2)) # label(replacement). 42.046/42.046 ->_s0(imh(mh(x2)),tp1(x2)) # label(replacement). 42.046/42.046 ->*_s0(ihalf(x4),tp1(s(x2))) & ->*_s0(imul(x3),tp2(x2,x4)) -> ->_s0(imh(x3),tp1(x2)) # label(replacement). 42.046/42.046 ->_s0(imul(0),tp2(0,x3)) # label(replacement). 42.046/42.046 ->_s0(imul(0),tp2(x2,0)) # label(replacement). 42.046/42.046 ->_s0(imul(mul(x2,x3)),tp2(x2,x3)) # label(replacement). 42.046/42.046 ->*_s0(iadd(x4),tp2(x1,x3)) & ->*_s0(imul(x1),tp2(x2,s(x3))) -> ->_s0(imul(s(x4)),tp2(s(x2),s(x3))) # label(replacement). 42.046/42.046 ->*_s0(x,x) # label(reflexivity). 42.046/42.046 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(goals). 42.046/42.046 (exists x6 exists x7 exists x8 (->*_s0(ihalf(x8),tp1(s(x6))) & ->*_s0(imul(x7),tp2(x6,x8)))) # label(goal). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== end of input ========================== 42.046/42.046 42.046/42.046 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 42.046/42.046 42.046/42.046 % Formulas that are not ordinary clauses: 42.046/42.046 1 ->_s0(x1,y) -> ->_s0(iadd(x1),iadd(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 2 ->_s0(x1,y) -> ->_s0(ihalf(x1),ihalf(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 3 ->_s0(x1,y) -> ->_s0(imh(x1),imh(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 4 ->_s0(x1,y) -> ->_s0(imul(x1),imul(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 5 ->_s0(x1,y) -> ->_s0(add(x1,x2),add(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 6 ->_s0(x2,y) -> ->_s0(add(x1,x2),add(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 7 ->_s0(x1,y) -> ->_s0(half(x1),half(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 8 ->_s0(x1,y) -> ->_s0(mh(x1),mh(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 9 ->_s0(x1,y) -> ->_s0(mul(x1,x2),mul(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 10 ->_s0(x2,y) -> ->_s0(mul(x1,x2),mul(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 11 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 12 ->_s0(x1,y) -> ->_s0(tp1(x1),tp1(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 13 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 14 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 15 ->*_s0(iadd(x4),tp2(x2,x3)) -> ->_s0(iadd(s(x4)),tp2(s(x2),x3)) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 16 ->*_s0(ihalf(x4),tp1(s(x2))) & ->*_s0(imul(x3),tp2(x2,x4)) -> ->_s0(imh(x3),tp1(x2)) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 17 ->*_s0(iadd(x4),tp2(x1,x3)) & ->*_s0(imul(x1),tp2(x2,s(x3))) -> ->_s0(imul(s(x4)),tp2(s(x2),s(x3))) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 18 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 42.046/42.046 19 (exists x6 exists x7 exists x8 (->*_s0(ihalf(x8),tp1(s(x6))) & ->*_s0(imul(x7),tp2(x6,x8)))) # label(goal) # label(non_clause) # label(goal). [goal]. 42.046/42.046 42.046/42.046 ============================== end of process non-clausal formulas === 42.046/42.046 42.046/42.046 ============================== PROCESS INITIAL CLAUSES =============== 42.046/42.046 42.046/42.046 % Clauses before input processing: 42.046/42.046 42.046/42.046 formulas(usable). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(sos). 42.046/42.046 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(12)]. 42.046/42.046 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(13)]. 42.046/42.046 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(14)]. 42.046/42.046 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 -->*_s0(iadd(x),tp2(y,z)) | ->_s0(iadd(s(x)),tp2(s(y),z)) # label(replacement). [clausify(15)]. 42.046/42.046 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) | ->_s0(imh(z),tp1(y)) # label(replacement). [clausify(16)]. 42.046/42.046 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) | ->_s0(imul(s(x)),tp2(s(u),s(z))) # label(replacement). [clausify(17)]. 42.046/42.046 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(18)]. 42.046/42.046 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) # label(goal). [deny(19)]. 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(demodulators). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== PREDICATE ELIMINATION ================= 42.046/42.046 42.046/42.046 No predicates eliminated. 42.046/42.046 42.046/42.046 ============================== end predicate elimination ============= 42.046/42.046 42.046/42.046 Auto_denials: 42.046/42.046 % copying label goal to answer in negative clause 42.046/42.046 42.046/42.046 Term ordering decisions: 42.046/42.046 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 42.046/42.046 Function symbol precedence: function_order([ 0, tp2, mul, add, s, imul, tp1, iadd, ihalf, imh, mh, half ]). 42.046/42.046 After inverse_order: (no changes). 42.046/42.046 Unfolding symbols: (none). 42.046/42.046 42.046/42.046 Auto_inference settings: 42.046/42.046 % set(neg_binary_resolution). % (HNE depth_diff=-14) 42.046/42.046 % clear(ordered_res). % (HNE depth_diff=-14) 42.046/42.046 % set(ur_resolution). % (HNE depth_diff=-14) 42.046/42.046 % set(ur_resolution) -> set(pos_ur_resolution). 42.046/42.046 % set(ur_resolution) -> set(neg_ur_resolution). 42.046/42.046 42.046/42.046 Auto_process settings: 42.046/42.046 % set(unit_deletion). % (Horn set with negative nonunits) 42.046/42.046 42.046/42.046 kept: 20 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 kept: 21 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 kept: 22 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 kept: 23 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 kept: 24 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 kept: 25 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 kept: 26 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 kept: 27 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 kept: 28 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 kept: 29 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 kept: 30 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 kept: 31 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(12)]. 42.046/42.046 kept: 32 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(13)]. 42.046/42.046 kept: 33 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(14)]. 42.046/42.046 kept: 34 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 kept: 35 -->*_s0(iadd(x),tp2(y,z)) | ->_s0(iadd(s(x)),tp2(s(y),z)) # label(replacement). [clausify(15)]. 42.046/42.046 kept: 36 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 kept: 37 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 kept: 38 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 kept: 39 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 kept: 40 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) | ->_s0(imh(z),tp1(y)) # label(replacement). [clausify(16)]. 42.046/42.046 kept: 41 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 kept: 42 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 kept: 43 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 kept: 44 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) | ->_s0(imul(s(x)),tp2(s(u),s(z))) # label(replacement). [clausify(17)]. 42.046/42.046 kept: 45 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 kept: 46 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(18)]. 42.046/42.046 kept: 47 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) # label(goal) # answer(goal). [deny(19)]. 42.046/42.046 42.046/42.046 ============================== end of process initial clauses ======== 42.046/42.046 42.046/42.046 ============================== CLAUSES FOR SEARCH ==================== 42.046/42.046 42.046/42.046 % Clauses after input processing: 42.046/42.046 42.046/42.046 formulas(usable). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(sos). 42.046/42.046 20 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 21 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 22 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 23 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 24 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 25 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 26 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 27 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 28 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 29 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 30 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 31 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(12)]. 42.046/42.046 32 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(13)]. 42.046/42.046 33 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(14)]. 42.046/42.046 34 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 35 -->*_s0(iadd(x),tp2(y,z)) | ->_s0(iadd(s(x)),tp2(s(y),z)) # label(replacement). [clausify(15)]. 42.046/42.046 36 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 37 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 38 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 39 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 41 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 42 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 43 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 44 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) | ->_s0(imul(s(x)),tp2(s(u),s(z))) # label(replacement). [clausify(17)]. 42.046/42.046 45 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 46 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(18)]. 42.046/42.046 47 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) # label(goal) # answer(goal). [deny(19)]. 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(demodulators). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== end of clauses for search ============= 42.046/42.046 42.046/42.046 ============================== SEARCH ================================ 42.046/42.046 42.046/42.046 % Starting search at 0.00 seconds. 42.046/42.046 42.046/42.046 given #1 (I,wt=8): 20 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 42.046/42.046 given #2 (I,wt=8): 21 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 42.046/42.046 given #3 (I,wt=8): 22 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 42.046/42.046 given #4 (I,wt=8): 23 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 42.046/42.046 given #5 (I,wt=10): 24 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 42.046/42.046 given #6 (I,wt=10): 25 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 42.046/42.046 given #7 (I,wt=8): 26 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 42.046/42.046 given #8 (I,wt=8): 27 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 42.046/42.046 given #9 (I,wt=10): 28 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 42.046/42.046 given #10 (I,wt=10): 29 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 42.046/42.046 given #11 (I,wt=8): 30 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 42.046/42.046 given #12 (I,wt=8): 31 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(12)]. 42.046/42.046 42.046/42.046 given #13 (I,wt=10): 32 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(13)]. 42.046/42.046 42.046/42.046 given #14 (I,wt=10): 33 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(14)]. 42.046/42.046 42.046/42.046 given #15 (I,wt=8): 34 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #16 (I,wt=14): 35 -->*_s0(iadd(x),tp2(y,z)) | ->_s0(iadd(s(x)),tp2(s(y),z)) # label(replacement). [clausify(15)]. 42.046/42.046 42.046/42.046 given #17 (I,wt=6): 36 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #18 (I,wt=5): 37 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #19 (I,wt=6): 38 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #20 (I,wt=6): 39 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #21 (I,wt=6): 41 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #22 (I,wt=6): 42 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #23 (I,wt=8): 43 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #24 (I,wt=22): 44 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) | ->_s0(imul(s(x)),tp2(s(u),s(z))) # label(replacement). [clausify(17)]. 42.046/42.046 42.046/42.046 given #25 (I,wt=3): 45 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 42.046/42.046 given #26 (I,wt=9): 46 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(18)]. 42.046/42.046 42.046/42.046 given #27 (I,wt=12): 47 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) # label(goal) # answer(goal). [deny(19)]. 42.046/42.046 42.046/42.046 given #28 (A,wt=12): 48 ->_s0(tp2(x,iadd(add(y,z))),tp2(x,tp2(y,z))). [ur(33,a,34,a)]. 42.046/42.046 42.046/42.046 given #29 (F,wt=15): 168 -->*_s0(imul(x),tp2(y,z)) | -->_s0(ihalf(z),u) | -->*_s0(u,tp1(s(y))) # answer(goal). [resolve(47,a,46,c)]. 42.046/42.046 42.046/42.046 ============================== PROOF ================================= 42.046/42.046 42.046/42.046 % Proof 1 at 0.01 (+ 0.00) seconds: goal. 42.046/42.046 % Length of proof is 11. 42.046/42.046 % Level of proof is 4. 42.046/42.046 % Maximum clause weight is 15.000. 42.046/42.046 % Given clauses 29. 42.046/42.046 42.046/42.046 18 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 42.046/42.046 19 (exists x6 exists x7 exists x8 (->*_s0(ihalf(x8),tp1(s(x6))) & ->*_s0(imul(x7),tp2(x6,x8)))) # label(goal) # label(non_clause) # label(goal). [goal]. 42.046/42.046 38 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 41 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 45 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 46 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(18)]. 42.046/42.046 47 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) # label(goal) # answer(goal). [deny(19)]. 42.046/42.046 162 ->*_s0(imul(0),tp2(0,x)). [ur(46,a,41,a,b,45,a)]. 42.046/42.046 168 -->*_s0(imul(x),tp2(y,z)) | -->_s0(ihalf(z),u) | -->*_s0(u,tp1(s(y))) # answer(goal). [resolve(47,a,46,c)]. 42.046/42.046 191 -->*_s0(imul(x),tp2(y,half(s(y)))) # answer(goal). [ur(168,b,38,a,c,45,a)]. 42.046/42.046 192 $F # answer(goal). [resolve(191,a,162,a)]. 42.046/42.046 42.046/42.046 ============================== end of proof ========================== 42.046/42.046 42.046/42.046 ============================== STATISTICS ============================ 42.046/42.046 42.046/42.046 Given=29. Generated=172. Kept=172. proofs=1. 42.046/42.046 Usable=29. Sos=135. Demods=0. Limbo=6, Disabled=29. Hints=0. 42.046/42.046 Kept_by_rule=0, Deleted_by_rule=0. 42.046/42.046 Forward_subsumed=0. Back_subsumed=1. 42.046/42.046 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 42.046/42.046 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 42.046/42.046 Demod_attempts=0. Demod_rewrites=0. 42.046/42.046 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 42.046/42.046 Nonunit_fsub_feature_tests=17. Nonunit_bsub_feature_tests=31. 42.046/42.046 Megabytes=0.39. 42.046/42.046 User_CPU=0.01, System_CPU=0.00, Wall_clock=0. 42.046/42.046 42.046/42.046 ============================== end of statistics ===================== 42.046/42.046 42.046/42.046 ============================== end of search ========================= 42.046/42.046 42.046/42.046 THEOREM PROVED 42.046/42.046 42.046/42.046 Exiting with 1 proof. 42.046/42.046 42.046/42.046 Process 10494 exit (max_proofs) Wed Mar 9 09:13:33 2022 42.046/42.046 42.046/42.046 42.046/42.046 The problem is feasible. 42.046/42.046 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO_CONDS 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO_CONDS 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO_CONDS 42.046/42.046 42.046/42.046 CRule InfChecker Info: 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 Rule remains 42.046/42.046 Proof: 42.046/42.046 NO 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Infeasibility Problem: 42.046/42.046 [(VAR vNonEmpty w x y z vNonEmpty w x y z) 42.046/42.046 (STRATEGY CONTEXTSENSITIVE 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1 2) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1 2) 42.046/42.046 (s 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 )] 42.046/42.046 42.046/42.046 Infeasibility Conditions: 42.046/42.046 iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Obtaining a proof using Prover9: 42.046/42.046 42.046/42.046 -> Prover9 Output: 42.046/42.046 ============================== Prover9 =============================== 42.046/42.046 Prover9 (64) version 2009-11A, November 2009. 42.046/42.046 Process 10515 was started by ubuntu on ubuntu, 42.046/42.046 Wed Mar 9 09:13:33 2022 42.046/42.046 The command was "./prover9 -f /tmp/prover910508-0.in". 42.046/42.046 ============================== end of head =========================== 42.046/42.046 42.046/42.046 ============================== INPUT ================================= 42.046/42.046 42.046/42.046 % Reading from file /tmp/prover910508-0.in 42.046/42.046 42.046/42.046 assign(max_seconds,20). 42.046/42.046 42.046/42.046 formulas(assumptions). 42.046/42.046 ->_s0(x1,y) -> ->_s0(iadd(x1),iadd(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(ihalf(x1),ihalf(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(imh(x1),imh(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(imul(x1),imul(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(add(x1,x2),add(y,x2)) # label(congruence). 42.046/42.046 ->_s0(x2,y) -> ->_s0(add(x1,x2),add(x1,y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(half(x1),half(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(mh(x1),mh(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(mul(x1,x2),mul(y,x2)) # label(congruence). 42.046/42.046 ->_s0(x2,y) -> ->_s0(mul(x1,x2),mul(x1,y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(tp1(x1),tp1(y)) # label(congruence). 42.046/42.046 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence). 42.046/42.046 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence). 42.046/42.046 ->_s0(iadd(add(x2,x3)),tp2(x2,x3)) # label(replacement). 42.046/42.046 ->*_s0(iadd(x4),tp2(x2,x3)) -> ->_s0(iadd(s(x4)),tp2(s(x2),x3)) # label(replacement). 42.046/42.046 ->_s0(iadd(x3),tp2(0,x3)) # label(replacement). 42.046/42.046 ->_s0(ihalf(0),tp1(0)) # label(replacement). 42.046/42.046 ->_s0(ihalf(half(x2)),tp1(x2)) # label(replacement). 42.046/42.046 ->_s0(imh(mh(x2)),tp1(x2)) # label(replacement). 42.046/42.046 ->*_s0(ihalf(x4),tp1(s(x2))) & ->*_s0(imul(x3),tp2(x2,x4)) -> ->_s0(imh(x3),tp1(x2)) # label(replacement). 42.046/42.046 ->_s0(imul(0),tp2(0,x3)) # label(replacement). 42.046/42.046 ->_s0(imul(0),tp2(x2,0)) # label(replacement). 42.046/42.046 ->_s0(imul(mul(x2,x3)),tp2(x2,x3)) # label(replacement). 42.046/42.046 ->*_s0(iadd(x4),tp2(x1,x3)) & ->*_s0(imul(x1),tp2(x2,s(x3))) -> ->_s0(imul(s(x4)),tp2(s(x2),s(x3))) # label(replacement). 42.046/42.046 ->*_s0(x,x) # label(reflexivity). 42.046/42.046 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(goals). 42.046/42.046 (exists x6 exists x7 exists x8 exists x9 (->*_s0(iadd(x9),tp2(x6,x8)) & ->*_s0(imul(x6),tp2(x7,s(x8))))) # label(goal). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== end of input ========================== 42.046/42.046 42.046/42.046 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 42.046/42.046 42.046/42.046 % Formulas that are not ordinary clauses: 42.046/42.046 1 ->_s0(x1,y) -> ->_s0(iadd(x1),iadd(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 2 ->_s0(x1,y) -> ->_s0(ihalf(x1),ihalf(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 3 ->_s0(x1,y) -> ->_s0(imh(x1),imh(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 4 ->_s0(x1,y) -> ->_s0(imul(x1),imul(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 5 ->_s0(x1,y) -> ->_s0(add(x1,x2),add(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 6 ->_s0(x2,y) -> ->_s0(add(x1,x2),add(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 7 ->_s0(x1,y) -> ->_s0(half(x1),half(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 8 ->_s0(x1,y) -> ->_s0(mh(x1),mh(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 9 ->_s0(x1,y) -> ->_s0(mul(x1,x2),mul(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 10 ->_s0(x2,y) -> ->_s0(mul(x1,x2),mul(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 11 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 12 ->_s0(x1,y) -> ->_s0(tp1(x1),tp1(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 13 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 14 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 15 ->*_s0(iadd(x4),tp2(x2,x3)) -> ->_s0(iadd(s(x4)),tp2(s(x2),x3)) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 16 ->*_s0(ihalf(x4),tp1(s(x2))) & ->*_s0(imul(x3),tp2(x2,x4)) -> ->_s0(imh(x3),tp1(x2)) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 17 ->*_s0(iadd(x4),tp2(x1,x3)) & ->*_s0(imul(x1),tp2(x2,s(x3))) -> ->_s0(imul(s(x4)),tp2(s(x2),s(x3))) # label(replacement) # label(non_clause). [assumption]. 42.046/42.046 18 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 42.046/42.046 19 (exists x6 exists x7 exists x8 exists x9 (->*_s0(iadd(x9),tp2(x6,x8)) & ->*_s0(imul(x6),tp2(x7,s(x8))))) # label(goal) # label(non_clause) # label(goal). [goal]. 42.046/42.046 42.046/42.046 ============================== end of process non-clausal formulas === 42.046/42.046 42.046/42.046 ============================== PROCESS INITIAL CLAUSES =============== 42.046/42.046 42.046/42.046 % Clauses before input processing: 42.046/42.046 42.046/42.046 formulas(usable). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(sos). 42.046/42.046 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(12)]. 42.046/42.046 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(13)]. 42.046/42.046 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(14)]. 42.046/42.046 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 -->*_s0(iadd(x),tp2(y,z)) | ->_s0(iadd(s(x)),tp2(s(y),z)) # label(replacement). [clausify(15)]. 42.046/42.046 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) | ->_s0(imh(z),tp1(y)) # label(replacement). [clausify(16)]. 42.046/42.046 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) | ->_s0(imul(s(x)),tp2(s(u),s(z))) # label(replacement). [clausify(17)]. 42.046/42.046 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(18)]. 42.046/42.046 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) # label(goal). [deny(19)]. 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(demodulators). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== PREDICATE ELIMINATION ================= 42.046/42.046 42.046/42.046 No predicates eliminated. 42.046/42.046 42.046/42.046 ============================== end predicate elimination ============= 42.046/42.046 42.046/42.046 Auto_denials: 42.046/42.046 % copying label goal to answer in negative clause 42.046/42.046 42.046/42.046 Term ordering decisions: 42.046/42.046 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 42.046/42.046 Function symbol precedence: function_order([ 0, tp2, mul, add, s, imul, tp1, iadd, ihalf, imh, mh, half ]). 42.046/42.046 After inverse_order: (no changes). 42.046/42.046 Unfolding symbols: (none). 42.046/42.046 42.046/42.046 Auto_inference settings: 42.046/42.046 % set(neg_binary_resolution). % (HNE depth_diff=-14) 42.046/42.046 % clear(ordered_res). % (HNE depth_diff=-14) 42.046/42.046 % set(ur_resolution). % (HNE depth_diff=-14) 42.046/42.046 % set(ur_resolution) -> set(pos_ur_resolution). 42.046/42.046 % set(ur_resolution) -> set(neg_ur_resolution). 42.046/42.046 42.046/42.046 Auto_process settings: 42.046/42.046 % set(unit_deletion). % (Horn set with negative nonunits) 42.046/42.046 42.046/42.046 kept: 20 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 kept: 21 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 kept: 22 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 kept: 23 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 kept: 24 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 kept: 25 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 kept: 26 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 kept: 27 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 kept: 28 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 kept: 29 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 kept: 30 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 kept: 31 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(12)]. 42.046/42.046 kept: 32 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(13)]. 42.046/42.046 kept: 33 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(14)]. 42.046/42.046 kept: 34 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 kept: 35 -->*_s0(iadd(x),tp2(y,z)) | ->_s0(iadd(s(x)),tp2(s(y),z)) # label(replacement). [clausify(15)]. 42.046/42.046 kept: 36 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 kept: 37 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 kept: 38 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 kept: 39 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 kept: 40 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) | ->_s0(imh(z),tp1(y)) # label(replacement). [clausify(16)]. 42.046/42.046 kept: 41 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 kept: 42 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 kept: 43 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 kept: 44 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) | ->_s0(imul(s(x)),tp2(s(u),s(z))) # label(replacement). [clausify(17)]. 42.046/42.046 kept: 45 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 kept: 46 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(18)]. 42.046/42.046 kept: 47 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) # label(goal) # answer(goal). [deny(19)]. 42.046/42.046 42.046/42.046 ============================== end of process initial clauses ======== 42.046/42.046 42.046/42.046 ============================== CLAUSES FOR SEARCH ==================== 42.046/42.046 42.046/42.046 % Clauses after input processing: 42.046/42.046 42.046/42.046 formulas(usable). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(sos). 42.046/42.046 20 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 21 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 22 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 23 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 24 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 25 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 26 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 27 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 28 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 29 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 30 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 31 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(12)]. 42.046/42.046 32 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(13)]. 42.046/42.046 33 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(14)]. 42.046/42.046 34 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 35 -->*_s0(iadd(x),tp2(y,z)) | ->_s0(iadd(s(x)),tp2(s(y),z)) # label(replacement). [clausify(15)]. 42.046/42.046 36 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 37 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 38 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 39 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 40 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) | ->_s0(imh(z),tp1(y)) # label(replacement). [clausify(16)]. 42.046/42.046 41 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 42 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 43 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 45 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 46 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(18)]. 42.046/42.046 47 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) # label(goal) # answer(goal). [deny(19)]. 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(demodulators). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== end of clauses for search ============= 42.046/42.046 42.046/42.046 ============================== SEARCH ================================ 42.046/42.046 42.046/42.046 % Starting search at 0.01 seconds. 42.046/42.046 42.046/42.046 given #1 (I,wt=8): 20 -->_s0(x,y) | ->_s0(iadd(x),iadd(y)) # label(congruence). [clausify(1)]. 42.046/42.046 42.046/42.046 given #2 (I,wt=8): 21 -->_s0(x,y) | ->_s0(ihalf(x),ihalf(y)) # label(congruence). [clausify(2)]. 42.046/42.046 42.046/42.046 given #3 (I,wt=8): 22 -->_s0(x,y) | ->_s0(imh(x),imh(y)) # label(congruence). [clausify(3)]. 42.046/42.046 42.046/42.046 given #4 (I,wt=8): 23 -->_s0(x,y) | ->_s0(imul(x),imul(y)) # label(congruence). [clausify(4)]. 42.046/42.046 42.046/42.046 given #5 (I,wt=10): 24 -->_s0(x,y) | ->_s0(add(x,z),add(y,z)) # label(congruence). [clausify(5)]. 42.046/42.046 42.046/42.046 given #6 (I,wt=10): 25 -->_s0(x,y) | ->_s0(add(z,x),add(z,y)) # label(congruence). [clausify(6)]. 42.046/42.046 42.046/42.046 given #7 (I,wt=8): 26 -->_s0(x,y) | ->_s0(half(x),half(y)) # label(congruence). [clausify(7)]. 42.046/42.046 42.046/42.046 given #8 (I,wt=8): 27 -->_s0(x,y) | ->_s0(mh(x),mh(y)) # label(congruence). [clausify(8)]. 42.046/42.046 42.046/42.046 given #9 (I,wt=10): 28 -->_s0(x,y) | ->_s0(mul(x,z),mul(y,z)) # label(congruence). [clausify(9)]. 42.046/42.046 42.046/42.046 given #10 (I,wt=10): 29 -->_s0(x,y) | ->_s0(mul(z,x),mul(z,y)) # label(congruence). [clausify(10)]. 42.046/42.046 42.046/42.046 given #11 (I,wt=8): 30 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(11)]. 42.046/42.046 42.046/42.046 given #12 (I,wt=8): 31 -->_s0(x,y) | ->_s0(tp1(x),tp1(y)) # label(congruence). [clausify(12)]. 42.046/42.046 42.046/42.046 given #13 (I,wt=10): 32 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(13)]. 42.046/42.046 42.046/42.046 given #14 (I,wt=10): 33 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(14)]. 42.046/42.046 42.046/42.046 given #15 (I,wt=8): 34 ->_s0(iadd(add(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #16 (I,wt=14): 35 -->*_s0(iadd(x),tp2(y,z)) | ->_s0(iadd(s(x)),tp2(s(y),z)) # label(replacement). [clausify(15)]. 42.046/42.046 42.046/42.046 given #17 (I,wt=6): 36 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #18 (I,wt=5): 37 ->_s0(ihalf(0),tp1(0)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #19 (I,wt=6): 38 ->_s0(ihalf(half(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #20 (I,wt=6): 39 ->_s0(imh(mh(x)),tp1(x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #21 (I,wt=17): 40 -->*_s0(ihalf(x),tp1(s(y))) | -->*_s0(imul(z),tp2(y,x)) | ->_s0(imh(z),tp1(y)) # label(replacement). [clausify(16)]. 42.046/42.046 42.046/42.046 given #22 (I,wt=6): 41 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #23 (I,wt=6): 42 ->_s0(imul(0),tp2(x,0)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #24 (I,wt=8): 43 ->_s0(imul(mul(x,y)),tp2(x,y)) # label(replacement). [assumption]. 42.046/42.046 42.046/42.046 given #25 (I,wt=3): 45 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 42.046/42.046 given #26 (I,wt=9): 46 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(18)]. 42.046/42.046 42.046/42.046 given #27 (I,wt=13): 47 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) # label(goal) # answer(goal). [deny(19)]. 42.046/42.046 42.046/42.046 given #28 (A,wt=12): 48 ->_s0(tp2(x,iadd(add(y,z))),tp2(x,tp2(y,z))). [ur(33,a,34,a)]. 42.046/42.046 42.046/42.046 given #29 (F,wt=16): 168 -->*_s0(imul(x),tp2(y,s(z))) | -->_s0(iadd(u),w) | -->*_s0(w,tp2(x,z)) # answer(goal). [resolve(47,a,46,c)]. 42.046/42.046 42.046/42.046 ============================== PROOF ================================= 42.046/42.046 42.046/42.046 % Proof 1 at 0.01 (+ 0.00) seconds: goal. 42.046/42.046 % Length of proof is 11. 42.046/42.046 % Level of proof is 4. 42.046/42.046 % Maximum clause weight is 16.000. 42.046/42.046 % Given clauses 29. 42.046/42.046 42.046/42.046 18 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 42.046/42.046 19 (exists x6 exists x7 exists x8 exists x9 (->*_s0(iadd(x9),tp2(x6,x8)) & ->*_s0(imul(x6),tp2(x7,s(x8))))) # label(goal) # label(non_clause) # label(goal). [goal]. 42.046/42.046 36 ->_s0(iadd(x),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 41 ->_s0(imul(0),tp2(0,x)) # label(replacement). [assumption]. 42.046/42.046 45 ->*_s0(x,x) # label(reflexivity). [assumption]. 42.046/42.046 46 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(18)]. 42.046/42.046 47 -->*_s0(iadd(x),tp2(y,z)) | -->*_s0(imul(y),tp2(u,s(z))) # label(goal) # answer(goal). [deny(19)]. 42.046/42.046 162 ->*_s0(imul(0),tp2(0,x)). [ur(46,a,41,a,b,45,a)]. 42.046/42.046 168 -->*_s0(imul(x),tp2(y,s(z))) | -->_s0(iadd(u),w) | -->*_s0(w,tp2(x,z)) # answer(goal). [resolve(47,a,46,c)]. 42.046/42.046 191 -->*_s0(imul(0),tp2(x,s(y))) # answer(goal). [ur(168,b,36,a,c,45,a)]. 42.046/42.046 192 $F # answer(goal). [resolve(191,a,162,a)]. 42.046/42.046 42.046/42.046 ============================== end of proof ========================== 42.046/42.046 42.046/42.046 ============================== STATISTICS ============================ 42.046/42.046 42.046/42.046 Given=29. Generated=173. Kept=172. proofs=1. 42.046/42.046 Usable=29. Sos=135. Demods=0. Limbo=6, Disabled=29. Hints=0. 42.046/42.046 Kept_by_rule=0, Deleted_by_rule=0. 42.046/42.046 Forward_subsumed=1. Back_subsumed=1. 42.046/42.046 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 42.046/42.046 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 42.046/42.046 Demod_attempts=0. Demod_rewrites=0. 42.046/42.046 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 42.046/42.046 Nonunit_fsub_feature_tests=15. Nonunit_bsub_feature_tests=31. 42.046/42.046 Megabytes=0.39. 42.046/42.046 User_CPU=0.01, System_CPU=0.00, Wall_clock=0. 42.046/42.046 42.046/42.046 ============================== end of statistics ===================== 42.046/42.046 42.046/42.046 ============================== end of search ========================= 42.046/42.046 42.046/42.046 THEOREM PROVED 42.046/42.046 42.046/42.046 Exiting with 1 proof. 42.046/42.046 42.046/42.046 Process 10515 exit (max_proofs) Wed Mar 9 09:13:33 2022 42.046/42.046 42.046/42.046 42.046/42.046 The problem is feasible. 42.046/42.046 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 Confluence Problem: 42.046/42.046 (VAR w x y z) 42.046/42.046 (REPLACEMENT-MAP 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1, 2) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1, 2) 42.046/42.046 (s 1) 42.046/42.046 (tp 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1, 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 ) 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 42.046/42.046 Critical Pairs Processor: 42.046/42.046 -> Rules: 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 -> Vars: 42.046/42.046 "w", "x", "y", "z" 42.046/42.046 42.046/42.046 -> Rlps: 42.046/42.046 crule: iadd(add(x,y)) -> tp2(x,y), id: 1, possubterms: iadd(add(x,y))-> [], add(x,y)-> [1] 42.046/42.046 crule: iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y), id: 2, possubterms: iadd(s(z))-> [], s(z)-> [1] 42.046/42.046 crule: iadd(y) -> tp2(0,y), id: 3, possubterms: iadd(y)-> [] 42.046/42.046 crule: ihalf(0) -> tp1(0), id: 4, possubterms: ihalf(0)-> [], 0-> [1] 42.046/42.046 crule: ihalf(half(x)) -> tp1(x), id: 5, possubterms: ihalf(half(x))-> [], half(x)-> [1] 42.046/42.046 crule: imh(mh(x)) -> tp1(x), id: 6, possubterms: imh(mh(x))-> [], mh(x)-> [1] 42.046/42.046 crule: imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z), id: 7, possubterms: imh(y)-> [] 42.046/42.046 crule: imul(0) -> tp2(0,y), id: 8, possubterms: imul(0)-> [], 0-> [1] 42.046/42.046 crule: imul(0) -> tp2(x,0), id: 9, possubterms: imul(0)-> [], 0-> [1] 42.046/42.046 crule: imul(mul(x,y)) -> tp2(x,y), id: 10, possubterms: imul(mul(x,y))-> [], mul(x,y)-> [1] 42.046/42.046 crule: imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)), id: 11, possubterms: imul(s(z))-> [], s(z)-> [1] 42.046/42.046 42.046/42.046 -> Unifications: 42.046/42.046 R3 unifies with R1 at p: [], l: iadd(y), lp: iadd(y), conds: {}, sig: {y -> add(x,y')}, l': iadd(add(x,y')), r: tp2(0,y), r': tp2(x,y') 42.046/42.046 R3 unifies with R2 at p: [], l: iadd(y), lp: iadd(y), conds: {iadd(z) ->* tp2(x,y')}, sig: {y -> s(z)}, l': iadd(s(z)), r: tp2(0,y), r': tp2(s(x),y') 42.046/42.046 R7 unifies with R6 at p: [], l: imh(y), lp: imh(y), conds: {ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z)}, sig: {y -> mh(x')}, l': imh(mh(x')), r: tp1(x), r': tp1(x') 42.046/42.046 R9 unifies with R8 at p: [], l: imul(0), lp: imul(0), conds: {}, sig: {}, l': imul(0), r: tp2(x,0), r': tp2(0,y) 42.046/42.046 42.046/42.046 -> Critical pairs info: 42.046/42.046 => Not trivial, Overlay, NW2, N1 42.046/42.046 | iadd(z) ->* tp2(x,y') => Not trivial, Overlay, NW2, N2 42.046/42.046 => Not trivial, Overlay, NW2, N3 42.046/42.046 | ihalf(z) ->* tp1(s(x)), imul(mh(x')) ->* tp2(x,z) => Not trivial, Overlay, NW2, N4 42.046/42.046 42.046/42.046 -> Problem conclusions: 42.046/42.046 Left linear, Right linear, Linear 42.046/42.046 Not weakly orthogonal, Not almost orthogonal, Not orthogonal 42.046/42.046 CTRS Type: 4 42.046/42.046 Not deterministic, Maybe strongly deterministic 42.046/42.046 Oriented CTRS, Not properly oriented CTRS, Not join CTRS, Not semiequational CTRS 42.046/42.046 Maybe right-stable CTRS, Overlay CTRS 42.046/42.046 Maybe normal CTRS, Maybe almost normal CTRS 42.046/42.046 Maybe terminating CTRS, Maybe operational terminating CTRS, Maybe joinable CCPs 42.046/42.046 Maybe level confluent 42.046/42.046 Maybe confluent 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 Confluence Problem: 42.046/42.046 (VAR w x y z x y z) 42.046/42.046 (REPLACEMENT-MAP 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1, 2) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1, 2) 42.046/42.046 (s 1) 42.046/42.046 (tp 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1, 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 ) 42.046/42.046 Critical Pairs: 42.046/42.046 => Not trivial, Overlay, NW2, N1 42.046/42.046 | iadd(z) ->* tp2(x,y') => Not trivial, Overlay, NW2, N2 42.046/42.046 => Not trivial, Overlay, NW2, N3 42.046/42.046 | ihalf(z) ->* tp1(s(x)), imul(mh(x')) ->* tp2(x,z) => Not trivial, Overlay, NW2, N4 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 42.046/42.046 Conditional Critical Pairs Distributor Processor 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 Confluence Problem: 42.046/42.046 (VAR w x y z x y z) 42.046/42.046 (REPLACEMENT-MAP 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1, 2) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1, 2) 42.046/42.046 (s 1) 42.046/42.046 (tp 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1, 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 ) 42.046/42.046 Critical Pairs: 42.046/42.046 => Not trivial, Overlay, NW2, N1 42.046/42.046 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42.046/42.046 42.046/42.046 Infeasible Convergence No Conditions CCP Processor: 42.046/42.046 Infeasible convergence? 42.046/42.046 YES 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Infeasibility Problem: 42.046/42.046 [(VAR vNonEmpty w x y z vNonEmpty z) 42.046/42.046 (STRATEGY CONTEXTSENSITIVE 42.046/42.046 (iadd 1) 42.046/42.046 (ihalf 1) 42.046/42.046 (imh 1) 42.046/42.046 (imul 1) 42.046/42.046 (0) 42.046/42.046 (add 1 2) 42.046/42.046 (c_x) 42.046/42.046 (c_y) 42.046/42.046 (fSNonEmpty) 42.046/42.046 (half 1) 42.046/42.046 (mh 1) 42.046/42.046 (mul 1 2) 42.046/42.046 (s 1) 42.046/42.046 (tp1 1) 42.046/42.046 (tp2 1 2) 42.046/42.046 ) 42.046/42.046 (RULES 42.046/42.046 iadd(add(x,y)) -> tp2(x,y) 42.046/42.046 iadd(s(z)) -> tp2(s(x),y) | iadd(z) ->* tp2(x,y) 42.046/42.046 iadd(y) -> tp2(0,y) 42.046/42.046 ihalf(0) -> tp1(0) 42.046/42.046 ihalf(half(x)) -> tp1(x) 42.046/42.046 imh(mh(x)) -> tp1(x) 42.046/42.046 imh(y) -> tp1(x) | ihalf(z) ->* tp1(s(x)), imul(y) ->* tp2(x,z) 42.046/42.046 imul(0) -> tp2(0,y) 42.046/42.046 imul(0) -> tp2(x,0) 42.046/42.046 imul(mul(x,y)) -> tp2(x,y) 42.046/42.046 imul(s(z)) -> tp2(s(x),s(y)) | iadd(z) ->* tp2(w,y), imul(w) ->* tp2(x,s(y)) 42.046/42.046 )] 42.046/42.046 42.046/42.046 Infeasibility Conditions: 42.046/42.046 tp2(0,c_y) ->* z, tp2(c_x,0) ->* z 42.046/42.046 42.046/42.046 Problem 1: 42.046/42.046 42.046/42.046 Obtaining a model using Mace4: 42.046/42.046 42.046/42.046 -> Usable Rules: 42.046/42.046 Empty 42.046/42.046 42.046/42.046 -> Mace4 Output: 42.046/42.046 ============================== Mace4 ================================= 42.046/42.046 Mace4 (64) version 2009-11A, November 2009. 42.046/42.046 Process 10540 was started by ubuntu on ubuntu, 42.046/42.046 Wed Mar 9 09:13:33 2022 42.046/42.046 The command was "./mace4 -c -f /tmp/mace410530-2.in". 42.046/42.046 ============================== end of head =========================== 42.046/42.046 42.046/42.046 ============================== INPUT ================================= 42.046/42.046 42.046/42.046 % Reading from file /tmp/mace410530-2.in 42.046/42.046 42.046/42.046 assign(max_seconds,20). 42.046/42.046 42.046/42.046 formulas(assumptions). 42.046/42.046 ->(x1,y) -> ->(iadd(x1),iadd(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(ihalf(x1),ihalf(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(imh(x1),imh(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(imul(x1),imul(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(add(x1,x2),add(y,x2)) # label(congruence). 42.046/42.046 ->(x2,y) -> ->(add(x1,x2),add(x1,y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(half(x1),half(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(mh(x1),mh(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(mul(x1,x2),mul(y,x2)) # label(congruence). 42.046/42.046 ->(x2,y) -> ->(mul(x1,x2),mul(x1,y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(tp1(x1),tp1(y)) # label(congruence). 42.046/42.046 ->(x1,y) -> ->(tp2(x1,x2),tp2(y,x2)) # label(congruence). 42.046/42.046 ->(x2,y) -> ->(tp2(x1,x2),tp2(x1,y)) # label(congruence). 42.046/42.046 ->*(x,x) # label(reflexivity). 42.046/42.046 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 formulas(goals). 42.046/42.046 (exists x6 (->*(tp2(0,c_y),x6) & ->*(tp2(c_x,0),x6))) # label(goal). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== end of input ========================== 42.046/42.046 42.046/42.046 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 42.046/42.046 42.046/42.046 % Formulas that are not ordinary clauses: 42.046/42.046 1 ->(x1,y) -> ->(iadd(x1),iadd(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 2 ->(x1,y) -> ->(ihalf(x1),ihalf(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 3 ->(x1,y) -> ->(imh(x1),imh(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 4 ->(x1,y) -> ->(imul(x1),imul(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 5 ->(x1,y) -> ->(add(x1,x2),add(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 6 ->(x2,y) -> ->(add(x1,x2),add(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 7 ->(x1,y) -> ->(half(x1),half(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 8 ->(x1,y) -> ->(mh(x1),mh(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 9 ->(x1,y) -> ->(mul(x1,x2),mul(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 10 ->(x2,y) -> ->(mul(x1,x2),mul(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 11 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 12 ->(x1,y) -> ->(tp1(x1),tp1(y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 13 ->(x1,y) -> ->(tp2(x1,x2),tp2(y,x2)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 14 ->(x2,y) -> ->(tp2(x1,x2),tp2(x1,y)) # label(congruence) # label(non_clause). [assumption]. 42.046/42.046 15 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity) # label(non_clause). [assumption]. 42.046/42.046 16 (exists x6 (->*(tp2(0,c_y),x6) & ->*(tp2(c_x,0),x6))) # label(goal) # label(non_clause) # label(goal). [goal]. 42.046/42.046 42.046/42.046 ============================== end of process non-clausal formulas === 42.046/42.046 42.046/42.046 ============================== CLAUSES FOR SEARCH ==================== 42.046/42.046 42.046/42.046 formulas(mace4_clauses). 42.046/42.046 -->(x,y) | ->(iadd(x),iadd(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(ihalf(x),ihalf(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(imh(x),imh(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(imul(x),imul(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(add(x,z),add(y,z)) # label(congruence). 42.046/42.046 -->(x,y) | ->(add(z,x),add(z,y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(half(x),half(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(mh(x),mh(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(mul(x,z),mul(y,z)) # label(congruence). 42.046/42.046 -->(x,y) | ->(mul(z,x),mul(z,y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(s(x),s(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(tp1(x),tp1(y)) # label(congruence). 42.046/42.046 -->(x,y) | ->(tp2(x,z),tp2(y,z)) # label(congruence). 42.046/42.046 -->(x,y) | ->(tp2(z,x),tp2(z,y)) # label(congruence). 42.046/42.046 ->*(x,x) # label(reflexivity). 42.046/42.046 -->(x,y) | -->*(y,z) | ->*(x,z) # label(transitivity). 42.046/42.046 -->*(tp2(0,c_y),x) | -->*(tp2(c_x,0),x) # label(goal). 42.046/42.046 end_of_list. 42.046/42.046 42.046/42.046 ============================== end of clauses for search ============= 42.046/42.046 42.046/42.046 % There are no natural numbers in the input. 42.046/42.046 42.046/42.046 ============================== DOMAIN SIZE 2 ========================= 42.046/42.046 42.046/42.046 ============================== MODEL ================================= 42.046/42.046 42.046/42.046 interpretation( 2, [number=1, seconds=0], [ 42.046/42.046 42.046/42.046 function(0, [ 0 ]), 42.046/42.046 42.046/42.046 function(c_x, [ 0 ]), 42.046/42.046 42.046/42.046 function(c_y, [ 1 ]), 42.046/42.046 42.046/42.046 function(half(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(mh(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(s(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(tp1(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(iadd(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(ihalf(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(imh(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(imul(_), [ 0, 0 ]), 42.046/42.046 42.046/42.046 function(mul(_,_), [ 42.046/42.046 0, 0, 42.046/42.046 0, 0 ]), 42.046/42.046 42.046/42.046 function(tp2(_,_), [ 42.046/42.046 0, 1, 42.046/42.046 0, 0 ]), 42.046/42.046 42.046/42.046 function(add(_,_), [ 42.046/42.046 0, 0, 42.046/42.046 0, 0 ]), 42.046/42.046 42.046/42.046 relation(->*(_,_), [ 42.046/42.046 1, 0, 42.046/42.046 0, 1 ]), 42.046/42.046 42.046/42.046 relation(->(_,_), [ 42.046/42.046 0, 0, 42.046/42.046 0, 0 ]) 42.046/42.046 ]). 42.046/42.046 42.046/42.046 ============================== end of model ========================== 42.046/42.046 42.046/42.046 ============================== STATISTICS ============================ 42.046/42.046 42.046/42.046 For domain size 2. 42.046/42.046 42.046/42.046 Current CPU time: 0.00 seconds (total CPU time: 0.01 seconds). 42.046/42.046 Ground clauses: seen=92, kept=88. 42.046/42.046 Selections=1054, assignments=2078, propagations=8, current_models=1. 42.046/42.046 Rewrite_terms=9894, rewrite_bools=2160, indexes=3096. 42.046/42.046 Rules_from_neg_clauses=1, cross_offs=1. 42.046/42.046 42.046/42.046 ============================== end of statistics ===================== 42.046/42.046 42.046/42.046 User_CPU=0.01, System_CPU=0.00, Wall_clock=0. 42.046/42.046 42.046/42.046 Exiting with 1 model. 42.046/42.046 42.046/42.046 Process 10540 exit (max_models) Wed Mar 9 09:13:33 2022 42.046/42.046 The process finished Wed Mar 9 09:13:33 2022 42.046/42.046 42.046/42.046 42.046/42.046 Mace4 cooked interpretation: 42.046/42.046 42.046/42.046 42.046/42.046 42.046/42.046 The problem is infeasible. 42.046/42.046 42.046/42.046 42.046/42.046 The problem is not joinable. 42.046/42.046 55.08user 2.69system 0:42.46elapsed 136%CPU (0avgtext+0avgdata 877444maxresident)k 42.046/42.046 8inputs+0outputs (0major+330820minor)pagefaults 0swaps