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