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