46.018/46.018 YES 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 46.018/46.018 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46.018/46.018 Confluence Problem: 46.018/46.018 (VAR vNonEmpty:S x:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (0) 46.018/46.018 (fSNonEmpty) 46.018/46.018 (false) 46.018/46.018 (s 1) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S)) -> false | e(x:S) ->* true 46.018/46.018 e(s(x:S)) -> true | o(x:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S)) -> false | o(x:S) ->* true 46.018/46.018 o(s(x:S)) -> true | e(x:S) ->* true 46.018/46.018 ) 46.018/46.018 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46.018/46.018 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Inlining of Conditions Processor [STERN17]: 46.018/46.018 46.018/46.018 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46.018/46.018 Confluence Problem: 46.018/46.018 (VAR vNonEmpty:S x:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (0) 46.018/46.018 (fSNonEmpty) 46.018/46.018 (false) 46.018/46.018 (s 1) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S)) -> false | e(x:S) ->* true 46.018/46.018 e(s(x:S)) -> true | o(x:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S)) -> false | o(x:S) ->* true 46.018/46.018 o(s(x:S)) -> true | e(x:S) ->* true 46.018/46.018 ) 46.018/46.018 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46.018/46.018 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Clean CTRS Processor: 46.018/46.018 46.018/46.018 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46.018/46.018 Confluence Problem: 46.018/46.018 (VAR x:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (0) 46.018/46.018 (fSNonEmpty) 46.018/46.018 (false) 46.018/46.018 (s 1) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S)) -> false | e(x:S) ->* true 46.018/46.018 e(s(x:S)) -> true | o(x:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S)) -> false | o(x:S) ->* true 46.018/46.018 o(s(x:S)) -> true | e(x:S) ->* true 46.018/46.018 ) 46.018/46.018 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46.018/46.018 46.018/46.018 CRule InfChecker Info: 46.018/46.018 e(0) -> true 46.018/46.018 Rule remains 46.018/46.018 Proof: 46.018/46.018 NO_CONDS 46.018/46.018 46.018/46.018 CRule InfChecker Info: 46.018/46.018 e(s(x:S)) -> false | e(x:S) ->* true 46.018/46.018 Rule remains 46.018/46.018 Proof: 46.018/46.018 NO 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Infeasibility Problem: 46.018/46.018 [(VAR vNonEmpty:S vNonEmpty:S:S x:S:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (0) 46.018/46.018 (fSNonEmpty) 46.018/46.018 (false) 46.018/46.018 (s 1) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S:S)) -> false | e(x:S:S) ->* true 46.018/46.018 e(s(x:S:S)) -> true | o(x:S:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S:S)) -> false | o(x:S:S) ->* true 46.018/46.018 o(s(x:S:S)) -> true | e(x:S:S) ->* true 46.018/46.018 )] 46.018/46.018 46.018/46.018 Infeasibility Conditions: 46.018/46.018 e(x:S:S) ->* true 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Obtaining a proof using Prover9: 46.018/46.018 46.018/46.018 -> Prover9 Output: 46.018/46.018 ============================== Prover9 =============================== 46.018/46.018 Prover9 (64) version 2009-11A, November 2009. 46.018/46.018 Process 58717 was started by ubuntu on ubuntu, 46.018/46.018 Wed Jul 14 11:28:05 2021 46.018/46.018 The command was "./prover9 -f /tmp/prover958708-0.in". 46.018/46.018 ============================== end of head =========================== 46.018/46.018 46.018/46.018 ============================== INPUT ================================= 46.018/46.018 46.018/46.018 % Reading from file /tmp/prover958708-0.in 46.018/46.018 46.018/46.018 assign(max_seconds,20). 46.018/46.018 46.018/46.018 formulas(assumptions). 46.018/46.018 ->*_s0(x,x) # label(reflexivity). 46.018/46.018 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 46.018/46.018 ->_s0(x1,y) -> ->_s0(e(x1),e(y)) # label(congruence). 46.018/46.018 ->_s0(x1,y) -> ->_s0(o(x1),o(y)) # label(congruence). 46.018/46.018 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 46.018/46.018 ->_s0(e(0),true) # label(replacement). 46.018/46.018 ->*_s0(e(x2),true) -> ->_s0(e(s(x2)),false) # label(replacement). 46.018/46.018 ->*_s0(o(x2),true) -> ->_s0(e(s(x2)),true) # label(replacement). 46.018/46.018 ->_s0(o(0),false) # label(replacement). 46.018/46.018 ->*_s0(o(x2),true) -> ->_s0(o(s(x2)),false) # label(replacement). 46.018/46.018 ->*_s0(e(x2),true) -> ->_s0(o(s(x2)),true) # label(replacement). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(goals). 46.018/46.018 (exists x2 ->*_s0(e(x2),true)) # label(goal). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of input ========================== 46.018/46.018 46.018/46.018 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 46.018/46.018 46.018/46.018 % Formulas that are not ordinary clauses: 46.018/46.018 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 46.018/46.018 2 ->_s0(x1,y) -> ->_s0(e(x1),e(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 3 ->_s0(x1,y) -> ->_s0(o(x1),o(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 4 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 5 ->*_s0(e(x2),true) -> ->_s0(e(s(x2)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 6 ->*_s0(o(x2),true) -> ->_s0(e(s(x2)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 7 ->*_s0(o(x2),true) -> ->_s0(o(s(x2)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 8 ->*_s0(e(x2),true) -> ->_s0(o(s(x2)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 9 (exists x2 ->*_s0(e(x2),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 46.018/46.018 46.018/46.018 ============================== end of process non-clausal formulas === 46.018/46.018 46.018/46.018 ============================== PROCESS INITIAL CLAUSES =============== 46.018/46.018 46.018/46.018 % Clauses before input processing: 46.018/46.018 46.018/46.018 formulas(usable). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(sos). 46.018/46.018 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 -->*_s0(o(x),true) | ->_s0(e(s(x)),true) # label(replacement). [clausify(6)]. 46.018/46.018 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 -->*_s0(o(x),true) | ->_s0(o(s(x)),false) # label(replacement). [clausify(7)]. 46.018/46.018 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 -->*_s0(e(x),true) # label(goal). [deny(9)]. 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(demodulators). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== PREDICATE ELIMINATION ================= 46.018/46.018 46.018/46.018 No predicates eliminated. 46.018/46.018 46.018/46.018 ============================== end predicate elimination ============= 46.018/46.018 46.018/46.018 Auto_denials: 46.018/46.018 % copying label goal to answer in negative clause 46.018/46.018 46.018/46.018 Term ordering decisions: 46.018/46.018 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 46.018/46.018 Function symbol precedence: function_order([ true, false, 0, e, o, s ]). 46.018/46.018 After inverse_order: (no changes). 46.018/46.018 Unfolding symbols: (none). 46.018/46.018 46.018/46.018 Auto_inference settings: 46.018/46.018 % set(neg_binary_resolution). % (HNE depth_diff=-7) 46.018/46.018 % clear(ordered_res). % (HNE depth_diff=-7) 46.018/46.018 % set(ur_resolution). % (HNE depth_diff=-7) 46.018/46.018 % set(ur_resolution) -> set(pos_ur_resolution). 46.018/46.018 % set(ur_resolution) -> set(neg_ur_resolution). 46.018/46.018 46.018/46.018 Auto_process settings: (no changes). 46.018/46.018 46.018/46.018 kept: 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 kept: 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 kept: 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 kept: 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 kept: 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 kept: 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 kept: 16 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 kept: 17 -->*_s0(o(x),true) | ->_s0(e(s(x)),true) # label(replacement). [clausify(6)]. 46.018/46.018 kept: 18 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 kept: 19 -->*_s0(o(x),true) | ->_s0(o(s(x)),false) # label(replacement). [clausify(7)]. 46.018/46.018 kept: 20 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 kept: 21 -->*_s0(e(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 46.018/46.018 ============================== end of process initial clauses ======== 46.018/46.018 46.018/46.018 ============================== CLAUSES FOR SEARCH ==================== 46.018/46.018 46.018/46.018 % Clauses after input processing: 46.018/46.018 46.018/46.018 formulas(usable). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(sos). 46.018/46.018 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 17 -->*_s0(o(x),true) | ->_s0(e(s(x)),true) # label(replacement). [clausify(6)]. 46.018/46.018 18 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 19 -->*_s0(o(x),true) | ->_s0(o(s(x)),false) # label(replacement). [clausify(7)]. 46.018/46.018 21 -->*_s0(e(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(demodulators). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of clauses for search ============= 46.018/46.018 46.018/46.018 ============================== SEARCH ================================ 46.018/46.018 46.018/46.018 % Starting search at 0.00 seconds. 46.018/46.018 46.018/46.018 given #1 (I,wt=3): 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 46.018/46.018 given #2 (I,wt=9): 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 46.018/46.018 given #3 (I,wt=8): 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 46.018/46.018 given #4 (I,wt=8): 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 46.018/46.018 given #5 (I,wt=8): 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 46.018/46.018 given #6 (I,wt=4): 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 46.018/46.018 ============================== PROOF ================================= 46.018/46.018 46.018/46.018 % Proof 1 at 0.00 (+ 0.00) seconds: goal. 46.018/46.018 % Length of proof is 8. 46.018/46.018 % Level of proof is 3. 46.018/46.018 % Maximum clause weight is 9.000. 46.018/46.018 % Given clauses 6. 46.018/46.018 46.018/46.018 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 46.018/46.018 9 (exists x2 ->*_s0(e(x2),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 46.018/46.018 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 21 -->*_s0(e(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 25 ->*_s0(e(0),true). [ur(11,a,15,a,b,10,a)]. 46.018/46.018 26 $F # answer(goal). [resolve(25,a,21,a)]. 46.018/46.018 46.018/46.018 ============================== end of proof ========================== 46.018/46.018 46.018/46.018 ============================== STATISTICS ============================ 46.018/46.018 46.018/46.018 Given=6. Generated=16. Kept=16. proofs=1. 46.018/46.018 Usable=6. Sos=4. Demods=0. Limbo=3, Disabled=14. Hints=0. 46.018/46.018 Kept_by_rule=0, Deleted_by_rule=0. 46.018/46.018 Forward_subsumed=0. Back_subsumed=2. 46.018/46.018 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 46.018/46.018 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 46.018/46.018 Demod_attempts=0. Demod_rewrites=0. 46.018/46.018 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 46.018/46.018 Nonunit_fsub_feature_tests=0. Nonunit_bsub_feature_tests=11. 46.018/46.018 Megabytes=0.07. 46.018/46.018 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 46.018/46.018 46.018/46.018 ============================== end of statistics ===================== 46.018/46.018 46.018/46.018 ============================== end of search ========================= 46.018/46.018 46.018/46.018 THEOREM PROVED 46.018/46.018 46.018/46.018 Exiting with 1 proof. 46.018/46.018 46.018/46.018 Process 58717 exit (max_proofs) Wed Jul 14 11:28:05 2021 46.018/46.018 46.018/46.018 46.018/46.018 The problem is feasible. 46.018/46.018 46.018/46.018 46.018/46.018 CRule InfChecker Info: 46.018/46.018 e(s(x:S)) -> true | o(x:S) ->* true 46.018/46.018 Rule remains 46.018/46.018 Proof: 46.018/46.018 NO 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Infeasibility Problem: 46.018/46.018 [(VAR vNonEmpty:S vNonEmpty:S:S x:S:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (0) 46.018/46.018 (fSNonEmpty) 46.018/46.018 (false) 46.018/46.018 (s 1) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S:S)) -> false | e(x:S:S) ->* true 46.018/46.018 e(s(x:S:S)) -> true | o(x:S:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S:S)) -> false | o(x:S:S) ->* true 46.018/46.018 o(s(x:S:S)) -> true | e(x:S:S) ->* true 46.018/46.018 )] 46.018/46.018 46.018/46.018 Infeasibility Conditions: 46.018/46.018 o(x:S:S) ->* true 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Obtaining a proof using Prover9: 46.018/46.018 46.018/46.018 -> Prover9 Output: 46.018/46.018 ============================== Prover9 =============================== 46.018/46.018 Prover9 (64) version 2009-11A, November 2009. 46.018/46.018 Process 58739 was started by ubuntu on ubuntu, 46.018/46.018 Wed Jul 14 11:28:05 2021 46.018/46.018 The command was "./prover9 -f /tmp/prover958729-0.in". 46.018/46.018 ============================== end of head =========================== 46.018/46.018 46.018/46.018 ============================== INPUT ================================= 46.018/46.018 46.018/46.018 % Reading from file /tmp/prover958729-0.in 46.018/46.018 46.018/46.018 assign(max_seconds,20). 46.018/46.018 46.018/46.018 formulas(assumptions). 46.018/46.018 ->*_s0(x,x) # label(reflexivity). 46.018/46.018 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 46.018/46.018 ->_s0(x1,y) -> ->_s0(e(x1),e(y)) # label(congruence). 46.018/46.018 ->_s0(x1,y) -> ->_s0(o(x1),o(y)) # label(congruence). 46.018/46.018 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 46.018/46.018 ->_s0(e(0),true) # label(replacement). 46.018/46.018 ->*_s0(e(x2),true) -> ->_s0(e(s(x2)),false) # label(replacement). 46.018/46.018 ->*_s0(o(x2),true) -> ->_s0(e(s(x2)),true) # label(replacement). 46.018/46.018 ->_s0(o(0),false) # label(replacement). 46.018/46.018 ->*_s0(o(x2),true) -> ->_s0(o(s(x2)),false) # label(replacement). 46.018/46.018 ->*_s0(e(x2),true) -> ->_s0(o(s(x2)),true) # label(replacement). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(goals). 46.018/46.018 (exists x2 ->*_s0(o(x2),true)) # label(goal). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of input ========================== 46.018/46.018 46.018/46.018 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 46.018/46.018 46.018/46.018 % Formulas that are not ordinary clauses: 46.018/46.018 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 46.018/46.018 2 ->_s0(x1,y) -> ->_s0(e(x1),e(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 3 ->_s0(x1,y) -> ->_s0(o(x1),o(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 4 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 5 ->*_s0(e(x2),true) -> ->_s0(e(s(x2)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 6 ->*_s0(o(x2),true) -> ->_s0(e(s(x2)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 7 ->*_s0(o(x2),true) -> ->_s0(o(s(x2)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 8 ->*_s0(e(x2),true) -> ->_s0(o(s(x2)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 9 (exists x2 ->*_s0(o(x2),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 46.018/46.018 46.018/46.018 ============================== end of process non-clausal formulas === 46.018/46.018 46.018/46.018 ============================== PROCESS INITIAL CLAUSES =============== 46.018/46.018 46.018/46.018 % Clauses before input processing: 46.018/46.018 46.018/46.018 formulas(usable). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(sos). 46.018/46.018 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 -->*_s0(o(x),true) | ->_s0(e(s(x)),true) # label(replacement). [clausify(6)]. 46.018/46.018 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 -->*_s0(o(x),true) | ->_s0(o(s(x)),false) # label(replacement). [clausify(7)]. 46.018/46.018 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 -->*_s0(o(x),true) # label(goal). [deny(9)]. 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(demodulators). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== PREDICATE ELIMINATION ================= 46.018/46.018 46.018/46.018 No predicates eliminated. 46.018/46.018 46.018/46.018 ============================== end predicate elimination ============= 46.018/46.018 46.018/46.018 Auto_denials: 46.018/46.018 % copying label goal to answer in negative clause 46.018/46.018 46.018/46.018 Term ordering decisions: 46.018/46.018 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 46.018/46.018 Function symbol precedence: function_order([ true, false, 0, e, o, s ]). 46.018/46.018 After inverse_order: (no changes). 46.018/46.018 Unfolding symbols: (none). 46.018/46.018 46.018/46.018 Auto_inference settings: 46.018/46.018 % set(neg_binary_resolution). % (HNE depth_diff=-7) 46.018/46.018 % clear(ordered_res). % (HNE depth_diff=-7) 46.018/46.018 % set(ur_resolution). % (HNE depth_diff=-7) 46.018/46.018 % set(ur_resolution) -> set(pos_ur_resolution). 46.018/46.018 % set(ur_resolution) -> set(neg_ur_resolution). 46.018/46.018 46.018/46.018 Auto_process settings: (no changes). 46.018/46.018 46.018/46.018 kept: 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 kept: 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 kept: 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 kept: 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 kept: 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 kept: 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 kept: 16 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 kept: 17 -->*_s0(o(x),true) | ->_s0(e(s(x)),true) # label(replacement). [clausify(6)]. 46.018/46.018 kept: 18 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 kept: 19 -->*_s0(o(x),true) | ->_s0(o(s(x)),false) # label(replacement). [clausify(7)]. 46.018/46.018 kept: 20 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 kept: 21 -->*_s0(o(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 46.018/46.018 ============================== end of process initial clauses ======== 46.018/46.018 46.018/46.018 ============================== CLAUSES FOR SEARCH ==================== 46.018/46.018 46.018/46.018 % Clauses after input processing: 46.018/46.018 46.018/46.018 formulas(usable). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(sos). 46.018/46.018 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 16 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 18 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 20 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 21 -->*_s0(o(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(demodulators). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of clauses for search ============= 46.018/46.018 46.018/46.018 ============================== SEARCH ================================ 46.018/46.018 46.018/46.018 % Starting search at 0.00 seconds. 46.018/46.018 46.018/46.018 given #1 (I,wt=3): 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 46.018/46.018 given #2 (I,wt=9): 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 46.018/46.018 given #3 (I,wt=8): 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 46.018/46.018 given #4 (I,wt=8): 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 46.018/46.018 given #5 (I,wt=8): 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 46.018/46.018 given #6 (I,wt=4): 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 46.018/46.018 given #7 (I,wt=9): 16 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 46.018/46.018 given #8 (I,wt=4): 18 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 46.018/46.018 given #9 (I,wt=9): 20 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 46.018/46.018 given #10 (I,wt=4): 21 -->*_s0(o(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 46.018/46.018 given #11 (A,wt=6): 22 ->_s0(s(e(0)),s(true)). [ur(14,a,15,a)]. 46.018/46.018 46.018/46.018 given #12 (F,wt=3): 32 -->*_s0(false,true) # answer(goal). [ur(11,a,18,a,c,21,a)]. 46.018/46.018 46.018/46.018 given #13 (F,wt=3): 38 -->_s0(false,true) # answer(goal). [ur(11,b,10,a,c,32,a)]. 46.018/46.018 46.018/46.018 given #14 (F,wt=4): 31 -->_s0(o(x),true) # answer(goal). [ur(11,b,10,a,c,21,a)]. 46.018/46.018 46.018/46.018 ============================== PROOF ================================= 46.018/46.018 46.018/46.018 % Proof 1 at 0.00 (+ 0.00) seconds: goal. 46.018/46.018 % Length of proof is 12. 46.018/46.018 % Level of proof is 4. 46.018/46.018 % Maximum clause weight is 9.000. 46.018/46.018 % Given clauses 14. 46.018/46.018 46.018/46.018 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 46.018/46.018 8 ->*_s0(e(x2),true) -> ->_s0(o(s(x2)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 9 (exists x2 ->*_s0(o(x2),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 46.018/46.018 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 20 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 21 -->*_s0(o(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 25 ->*_s0(e(0),true). [ur(11,a,15,a,b,10,a)]. 46.018/46.018 31 -->_s0(o(x),true) # answer(goal). [ur(11,b,10,a,c,21,a)]. 46.018/46.018 39 -->*_s0(e(x),true) # answer(goal). [resolve(31,a,20,b)]. 46.018/46.018 40 $F # answer(goal). [resolve(39,a,25,a)]. 46.018/46.018 46.018/46.018 ============================== end of proof ========================== 46.018/46.018 46.018/46.018 ============================== STATISTICS ============================ 46.018/46.018 46.018/46.018 Given=14. Generated=30. Kept=30. proofs=1. 46.018/46.018 Usable=14. Sos=13. Demods=0. Limbo=0, Disabled=14. Hints=0. 46.018/46.018 Kept_by_rule=0, Deleted_by_rule=0. 46.018/46.018 Forward_subsumed=0. Back_subsumed=2. 46.018/46.018 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 46.018/46.018 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 46.018/46.018 Demod_attempts=0. Demod_rewrites=0. 46.018/46.018 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 46.018/46.018 Nonunit_fsub_feature_tests=0. Nonunit_bsub_feature_tests=15. 46.018/46.018 Megabytes=0.09. 46.018/46.018 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 46.018/46.018 46.018/46.018 ============================== end of statistics ===================== 46.018/46.018 46.018/46.018 ============================== end of search ========================= 46.018/46.018 46.018/46.018 THEOREM PROVED 46.018/46.018 46.018/46.018 Exiting with 1 proof. 46.018/46.018 46.018/46.018 Process 58739 exit (max_proofs) Wed Jul 14 11:28:05 2021 46.018/46.018 46.018/46.018 46.018/46.018 The problem is feasible. 46.018/46.018 46.018/46.018 46.018/46.018 CRule InfChecker Info: 46.018/46.018 o(0) -> false 46.018/46.018 Rule remains 46.018/46.018 Proof: 46.018/46.018 NO_CONDS 46.018/46.018 46.018/46.018 CRule InfChecker Info: 46.018/46.018 o(s(x:S)) -> false | o(x:S) ->* true 46.018/46.018 Rule remains 46.018/46.018 Proof: 46.018/46.018 NO 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Infeasibility Problem: 46.018/46.018 [(VAR vNonEmpty:S vNonEmpty:S:S x:S:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (0) 46.018/46.018 (fSNonEmpty) 46.018/46.018 (false) 46.018/46.018 (s 1) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S:S)) -> false | e(x:S:S) ->* true 46.018/46.018 e(s(x:S:S)) -> true | o(x:S:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S:S)) -> false | o(x:S:S) ->* true 46.018/46.018 o(s(x:S:S)) -> true | e(x:S:S) ->* true 46.018/46.018 )] 46.018/46.018 46.018/46.018 Infeasibility Conditions: 46.018/46.018 o(x:S:S) ->* true 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Obtaining a proof using Prover9: 46.018/46.018 46.018/46.018 -> Prover9 Output: 46.018/46.018 ============================== Prover9 =============================== 46.018/46.018 Prover9 (64) version 2009-11A, November 2009. 46.018/46.018 Process 58761 was started by ubuntu on ubuntu, 46.018/46.018 Wed Jul 14 11:28:05 2021 46.018/46.018 The command was "./prover9 -f /tmp/prover958752-0.in". 46.018/46.018 ============================== end of head =========================== 46.018/46.018 46.018/46.018 ============================== INPUT ================================= 46.018/46.018 46.018/46.018 % Reading from file /tmp/prover958752-0.in 46.018/46.018 46.018/46.018 assign(max_seconds,20). 46.018/46.018 46.018/46.018 formulas(assumptions). 46.018/46.018 ->*_s0(x,x) # label(reflexivity). 46.018/46.018 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 46.018/46.018 ->_s0(x1,y) -> ->_s0(e(x1),e(y)) # label(congruence). 46.018/46.018 ->_s0(x1,y) -> ->_s0(o(x1),o(y)) # label(congruence). 46.018/46.018 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 46.018/46.018 ->_s0(e(0),true) # label(replacement). 46.018/46.018 ->*_s0(e(x2),true) -> ->_s0(e(s(x2)),false) # label(replacement). 46.018/46.018 ->*_s0(o(x2),true) -> ->_s0(e(s(x2)),true) # label(replacement). 46.018/46.018 ->_s0(o(0),false) # label(replacement). 46.018/46.018 ->*_s0(o(x2),true) -> ->_s0(o(s(x2)),false) # label(replacement). 46.018/46.018 ->*_s0(e(x2),true) -> ->_s0(o(s(x2)),true) # label(replacement). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(goals). 46.018/46.018 (exists x2 ->*_s0(o(x2),true)) # label(goal). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of input ========================== 46.018/46.018 46.018/46.018 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 46.018/46.018 46.018/46.018 % Formulas that are not ordinary clauses: 46.018/46.018 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 46.018/46.018 2 ->_s0(x1,y) -> ->_s0(e(x1),e(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 3 ->_s0(x1,y) -> ->_s0(o(x1),o(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 4 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 5 ->*_s0(e(x2),true) -> ->_s0(e(s(x2)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 6 ->*_s0(o(x2),true) -> ->_s0(e(s(x2)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 7 ->*_s0(o(x2),true) -> ->_s0(o(s(x2)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 8 ->*_s0(e(x2),true) -> ->_s0(o(s(x2)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 9 (exists x2 ->*_s0(o(x2),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 46.018/46.018 46.018/46.018 ============================== end of process non-clausal formulas === 46.018/46.018 46.018/46.018 ============================== PROCESS INITIAL CLAUSES =============== 46.018/46.018 46.018/46.018 % Clauses before input processing: 46.018/46.018 46.018/46.018 formulas(usable). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(sos). 46.018/46.018 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 -->*_s0(o(x),true) | ->_s0(e(s(x)),true) # label(replacement). [clausify(6)]. 46.018/46.018 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 -->*_s0(o(x),true) | ->_s0(o(s(x)),false) # label(replacement). [clausify(7)]. 46.018/46.018 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 -->*_s0(o(x),true) # label(goal). [deny(9)]. 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(demodulators). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== PREDICATE ELIMINATION ================= 46.018/46.018 46.018/46.018 No predicates eliminated. 46.018/46.018 46.018/46.018 ============================== end predicate elimination ============= 46.018/46.018 46.018/46.018 Auto_denials: 46.018/46.018 % copying label goal to answer in negative clause 46.018/46.018 46.018/46.018 Term ordering decisions: 46.018/46.018 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 46.018/46.018 Function symbol precedence: function_order([ true, false, 0, e, o, s ]). 46.018/46.018 After inverse_order: (no changes). 46.018/46.018 Unfolding symbols: (none). 46.018/46.018 46.018/46.018 Auto_inference settings: 46.018/46.018 % set(neg_binary_resolution). % (HNE depth_diff=-7) 46.018/46.018 % clear(ordered_res). % (HNE depth_diff=-7) 46.018/46.018 % set(ur_resolution). % (HNE depth_diff=-7) 46.018/46.018 % set(ur_resolution) -> set(pos_ur_resolution). 46.018/46.018 % set(ur_resolution) -> set(neg_ur_resolution). 46.018/46.018 46.018/46.018 Auto_process settings: (no changes). 46.018/46.018 46.018/46.018 kept: 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 kept: 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 kept: 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 kept: 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 kept: 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 kept: 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 kept: 16 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 kept: 17 -->*_s0(o(x),true) | ->_s0(e(s(x)),true) # label(replacement). [clausify(6)]. 46.018/46.018 kept: 18 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 kept: 19 -->*_s0(o(x),true) | ->_s0(o(s(x)),false) # label(replacement). [clausify(7)]. 46.018/46.018 kept: 20 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 kept: 21 -->*_s0(o(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 46.018/46.018 ============================== end of process initial clauses ======== 46.018/46.018 46.018/46.018 ============================== CLAUSES FOR SEARCH ==================== 46.018/46.018 46.018/46.018 % Clauses after input processing: 46.018/46.018 46.018/46.018 formulas(usable). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(sos). 46.018/46.018 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 16 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 18 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 20 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 21 -->*_s0(o(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(demodulators). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of clauses for search ============= 46.018/46.018 46.018/46.018 ============================== SEARCH ================================ 46.018/46.018 46.018/46.018 % Starting search at 0.00 seconds. 46.018/46.018 46.018/46.018 given #1 (I,wt=3): 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 46.018/46.018 given #2 (I,wt=9): 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 46.018/46.018 given #3 (I,wt=8): 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 46.018/46.018 given #4 (I,wt=8): 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 46.018/46.018 given #5 (I,wt=8): 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 46.018/46.018 given #6 (I,wt=4): 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 46.018/46.018 given #7 (I,wt=9): 16 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 46.018/46.018 given #8 (I,wt=4): 18 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 46.018/46.018 given #9 (I,wt=9): 20 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 46.018/46.018 given #10 (I,wt=4): 21 -->*_s0(o(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 46.018/46.018 given #11 (A,wt=6): 22 ->_s0(s(e(0)),s(true)). [ur(14,a,15,a)]. 46.018/46.018 46.018/46.018 given #12 (F,wt=3): 32 -->*_s0(false,true) # answer(goal). [ur(11,a,18,a,c,21,a)]. 46.018/46.018 46.018/46.018 given #13 (F,wt=3): 38 -->_s0(false,true) # answer(goal). [ur(11,b,10,a,c,32,a)]. 46.018/46.018 46.018/46.018 given #14 (F,wt=4): 31 -->_s0(o(x),true) # answer(goal). [ur(11,b,10,a,c,21,a)]. 46.018/46.018 46.018/46.018 ============================== PROOF ================================= 46.018/46.018 46.018/46.018 % Proof 1 at 0.00 (+ 0.00) seconds: goal. 46.018/46.018 % Length of proof is 12. 46.018/46.018 % Level of proof is 4. 46.018/46.018 % Maximum clause weight is 9.000. 46.018/46.018 % Given clauses 14. 46.018/46.018 46.018/46.018 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 46.018/46.018 8 ->*_s0(e(x2),true) -> ->_s0(o(s(x2)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 9 (exists x2 ->*_s0(o(x2),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 46.018/46.018 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 20 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 21 -->*_s0(o(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 25 ->*_s0(e(0),true). [ur(11,a,15,a,b,10,a)]. 46.018/46.018 31 -->_s0(o(x),true) # answer(goal). [ur(11,b,10,a,c,21,a)]. 46.018/46.018 39 -->*_s0(e(x),true) # answer(goal). [resolve(31,a,20,b)]. 46.018/46.018 40 $F # answer(goal). [resolve(39,a,25,a)]. 46.018/46.018 46.018/46.018 ============================== end of proof ========================== 46.018/46.018 46.018/46.018 ============================== STATISTICS ============================ 46.018/46.018 46.018/46.018 Given=14. Generated=30. Kept=30. proofs=1. 46.018/46.018 Usable=14. Sos=13. Demods=0. Limbo=0, Disabled=14. Hints=0. 46.018/46.018 Kept_by_rule=0, Deleted_by_rule=0. 46.018/46.018 Forward_subsumed=0. Back_subsumed=2. 46.018/46.018 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 46.018/46.018 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 46.018/46.018 Demod_attempts=0. Demod_rewrites=0. 46.018/46.018 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 46.018/46.018 Nonunit_fsub_feature_tests=0. Nonunit_bsub_feature_tests=15. 46.018/46.018 Megabytes=0.09. 46.018/46.018 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 46.018/46.018 46.018/46.018 ============================== end of statistics ===================== 46.018/46.018 46.018/46.018 ============================== end of search ========================= 46.018/46.018 46.018/46.018 THEOREM PROVED 46.018/46.018 46.018/46.018 Exiting with 1 proof. 46.018/46.018 46.018/46.018 Process 58761 exit (max_proofs) Wed Jul 14 11:28:05 2021 46.018/46.018 46.018/46.018 46.018/46.018 The problem is feasible. 46.018/46.018 46.018/46.018 46.018/46.018 CRule InfChecker Info: 46.018/46.018 o(s(x:S)) -> true | e(x:S) ->* true 46.018/46.018 Rule remains 46.018/46.018 Proof: 46.018/46.018 NO 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Infeasibility Problem: 46.018/46.018 [(VAR vNonEmpty:S vNonEmpty:S:S x:S:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (0) 46.018/46.018 (fSNonEmpty) 46.018/46.018 (false) 46.018/46.018 (s 1) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S:S)) -> false | e(x:S:S) ->* true 46.018/46.018 e(s(x:S:S)) -> true | o(x:S:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S:S)) -> false | o(x:S:S) ->* true 46.018/46.018 o(s(x:S:S)) -> true | e(x:S:S) ->* true 46.018/46.018 )] 46.018/46.018 46.018/46.018 Infeasibility Conditions: 46.018/46.018 e(x:S:S) ->* true 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Obtaining a proof using Prover9: 46.018/46.018 46.018/46.018 -> Prover9 Output: 46.018/46.018 ============================== Prover9 =============================== 46.018/46.018 Prover9 (64) version 2009-11A, November 2009. 46.018/46.018 Process 58792 was started by ubuntu on ubuntu, 46.018/46.018 Wed Jul 14 11:28:05 2021 46.018/46.018 The command was "./prover9 -f /tmp/prover958774-0.in". 46.018/46.018 ============================== end of head =========================== 46.018/46.018 46.018/46.018 ============================== INPUT ================================= 46.018/46.018 46.018/46.018 % Reading from file /tmp/prover958774-0.in 46.018/46.018 46.018/46.018 assign(max_seconds,20). 46.018/46.018 46.018/46.018 formulas(assumptions). 46.018/46.018 ->*_s0(x,x) # label(reflexivity). 46.018/46.018 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). 46.018/46.018 ->_s0(x1,y) -> ->_s0(e(x1),e(y)) # label(congruence). 46.018/46.018 ->_s0(x1,y) -> ->_s0(o(x1),o(y)) # label(congruence). 46.018/46.018 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). 46.018/46.018 ->_s0(e(0),true) # label(replacement). 46.018/46.018 ->*_s0(e(x2),true) -> ->_s0(e(s(x2)),false) # label(replacement). 46.018/46.018 ->*_s0(o(x2),true) -> ->_s0(e(s(x2)),true) # label(replacement). 46.018/46.018 ->_s0(o(0),false) # label(replacement). 46.018/46.018 ->*_s0(o(x2),true) -> ->_s0(o(s(x2)),false) # label(replacement). 46.018/46.018 ->*_s0(e(x2),true) -> ->_s0(o(s(x2)),true) # label(replacement). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(goals). 46.018/46.018 (exists x2 ->*_s0(e(x2),true)) # label(goal). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of input ========================== 46.018/46.018 46.018/46.018 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 46.018/46.018 46.018/46.018 % Formulas that are not ordinary clauses: 46.018/46.018 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 46.018/46.018 2 ->_s0(x1,y) -> ->_s0(e(x1),e(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 3 ->_s0(x1,y) -> ->_s0(o(x1),o(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 4 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 5 ->*_s0(e(x2),true) -> ->_s0(e(s(x2)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 6 ->*_s0(o(x2),true) -> ->_s0(e(s(x2)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 7 ->*_s0(o(x2),true) -> ->_s0(o(s(x2)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 8 ->*_s0(e(x2),true) -> ->_s0(o(s(x2)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 9 (exists x2 ->*_s0(e(x2),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 46.018/46.018 46.018/46.018 ============================== end of process non-clausal formulas === 46.018/46.018 46.018/46.018 ============================== PROCESS INITIAL CLAUSES =============== 46.018/46.018 46.018/46.018 % Clauses before input processing: 46.018/46.018 46.018/46.018 formulas(usable). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(sos). 46.018/46.018 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 -->*_s0(o(x),true) | ->_s0(e(s(x)),true) # label(replacement). [clausify(6)]. 46.018/46.018 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 -->*_s0(o(x),true) | ->_s0(o(s(x)),false) # label(replacement). [clausify(7)]. 46.018/46.018 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 -->*_s0(e(x),true) # label(goal). [deny(9)]. 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(demodulators). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== PREDICATE ELIMINATION ================= 46.018/46.018 46.018/46.018 No predicates eliminated. 46.018/46.018 46.018/46.018 ============================== end predicate elimination ============= 46.018/46.018 46.018/46.018 Auto_denials: 46.018/46.018 % copying label goal to answer in negative clause 46.018/46.018 46.018/46.018 Term ordering decisions: 46.018/46.018 Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). 46.018/46.018 Function symbol precedence: function_order([ true, false, 0, e, o, s ]). 46.018/46.018 After inverse_order: (no changes). 46.018/46.018 Unfolding symbols: (none). 46.018/46.018 46.018/46.018 Auto_inference settings: 46.018/46.018 % set(neg_binary_resolution). % (HNE depth_diff=-7) 46.018/46.018 % clear(ordered_res). % (HNE depth_diff=-7) 46.018/46.018 % set(ur_resolution). % (HNE depth_diff=-7) 46.018/46.018 % set(ur_resolution) -> set(pos_ur_resolution). 46.018/46.018 % set(ur_resolution) -> set(neg_ur_resolution). 46.018/46.018 46.018/46.018 Auto_process settings: (no changes). 46.018/46.018 46.018/46.018 kept: 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 kept: 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 kept: 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 kept: 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 kept: 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 kept: 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 kept: 16 -->*_s0(e(x),true) | ->_s0(e(s(x)),false) # label(replacement). [clausify(5)]. 46.018/46.018 kept: 17 -->*_s0(o(x),true) | ->_s0(e(s(x)),true) # label(replacement). [clausify(6)]. 46.018/46.018 kept: 18 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 kept: 19 -->*_s0(o(x),true) | ->_s0(o(s(x)),false) # label(replacement). [clausify(7)]. 46.018/46.018 kept: 20 -->*_s0(e(x),true) | ->_s0(o(s(x)),true) # label(replacement). [clausify(8)]. 46.018/46.018 kept: 21 -->*_s0(e(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 46.018/46.018 ============================== end of process initial clauses ======== 46.018/46.018 46.018/46.018 ============================== CLAUSES FOR SEARCH ==================== 46.018/46.018 46.018/46.018 % Clauses after input processing: 46.018/46.018 46.018/46.018 formulas(usable). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(sos). 46.018/46.018 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 17 -->*_s0(o(x),true) | ->_s0(e(s(x)),true) # label(replacement). [clausify(6)]. 46.018/46.018 18 ->_s0(o(0),false) # label(replacement). [assumption]. 46.018/46.018 19 -->*_s0(o(x),true) | ->_s0(o(s(x)),false) # label(replacement). [clausify(7)]. 46.018/46.018 21 -->*_s0(e(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(demodulators). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of clauses for search ============= 46.018/46.018 46.018/46.018 ============================== SEARCH ================================ 46.018/46.018 46.018/46.018 % Starting search at 0.00 seconds. 46.018/46.018 46.018/46.018 given #1 (I,wt=3): 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 46.018/46.018 given #2 (I,wt=9): 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 46.018/46.018 given #3 (I,wt=8): 12 -->_s0(x,y) | ->_s0(e(x),e(y)) # label(congruence). [clausify(2)]. 46.018/46.018 46.018/46.018 given #4 (I,wt=8): 13 -->_s0(x,y) | ->_s0(o(x),o(y)) # label(congruence). [clausify(3)]. 46.018/46.018 46.018/46.018 given #5 (I,wt=8): 14 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(4)]. 46.018/46.018 46.018/46.018 given #6 (I,wt=4): 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 46.018/46.018 ============================== PROOF ================================= 46.018/46.018 46.018/46.018 % Proof 1 at 0.00 (+ 0.00) seconds: goal. 46.018/46.018 % Length of proof is 8. 46.018/46.018 % Level of proof is 3. 46.018/46.018 % Maximum clause weight is 9.000. 46.018/46.018 % Given clauses 6. 46.018/46.018 46.018/46.018 1 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 46.018/46.018 9 (exists x2 ->*_s0(e(x2),true)) # label(goal) # label(non_clause) # label(goal). [goal]. 46.018/46.018 10 ->*_s0(x,x) # label(reflexivity). [assumption]. 46.018/46.018 11 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(1)]. 46.018/46.018 15 ->_s0(e(0),true) # label(replacement). [assumption]. 46.018/46.018 21 -->*_s0(e(x),true) # label(goal) # answer(goal). [deny(9)]. 46.018/46.018 25 ->*_s0(e(0),true). [ur(11,a,15,a,b,10,a)]. 46.018/46.018 26 $F # answer(goal). [resolve(25,a,21,a)]. 46.018/46.018 46.018/46.018 ============================== end of proof ========================== 46.018/46.018 46.018/46.018 ============================== STATISTICS ============================ 46.018/46.018 46.018/46.018 Given=6. Generated=16. Kept=16. proofs=1. 46.018/46.018 Usable=6. Sos=4. Demods=0. Limbo=3, Disabled=14. Hints=0. 46.018/46.018 Kept_by_rule=0, Deleted_by_rule=0. 46.018/46.018 Forward_subsumed=0. Back_subsumed=2. 46.018/46.018 Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. 46.018/46.018 New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. 46.018/46.018 Demod_attempts=0. Demod_rewrites=0. 46.018/46.018 Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. 46.018/46.018 Nonunit_fsub_feature_tests=0. Nonunit_bsub_feature_tests=11. 46.018/46.018 Megabytes=0.07. 46.018/46.018 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 46.018/46.018 46.018/46.018 ============================== end of statistics ===================== 46.018/46.018 46.018/46.018 ============================== end of search ========================= 46.018/46.018 46.018/46.018 THEOREM PROVED 46.018/46.018 46.018/46.018 Exiting with 1 proof. 46.018/46.018 46.018/46.018 Process 58792 exit (max_proofs) Wed Jul 14 11:28:05 2021 46.018/46.018 46.018/46.018 46.018/46.018 The problem is feasible. 46.018/46.018 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46.018/46.018 Confluence Problem: 46.018/46.018 (VAR x:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (0) 46.018/46.018 (fSNonEmpty) 46.018/46.018 (false) 46.018/46.018 (s 1) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S)) -> false | e(x:S) ->* true 46.018/46.018 e(s(x:S)) -> true | o(x:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S)) -> false | o(x:S) ->* true 46.018/46.018 o(s(x:S)) -> true | e(x:S) ->* true 46.018/46.018 ) 46.018/46.018 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46.018/46.018 46.018/46.018 Critical Pairs Processor: 46.018/46.018 -> Rules: 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S)) -> false | e(x:S) ->* true 46.018/46.018 e(s(x:S)) -> true | o(x:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S)) -> false | o(x:S) ->* true 46.018/46.018 o(s(x:S)) -> true | e(x:S) ->* true 46.018/46.018 -> Vars: 46.018/46.018 "x", "x", "x", "x" 46.018/46.018 -> FVars: 46.018/46.018 "x2", "x3", "x4", "x5" 46.018/46.018 -> PVars: 46.018/46.018 "x": ["x2", "x3", "x4", "x5"] 46.018/46.018 46.018/46.018 -> Rlps: 46.018/46.018 crule: e(0) -> true, id: 1, possubterms: e(0)-> [], 0-> [1] 46.018/46.018 crule: e(s(x2:S)) -> false | e(x2:S) ->* true, id: 2, possubterms: e(s(x2:S))-> [], s(x2:S)-> [1] 46.018/46.018 crule: e(s(x3:S)) -> true | o(x3:S) ->* true, id: 3, possubterms: e(s(x3:S))-> [], s(x3:S)-> [1] 46.018/46.018 crule: o(0) -> false, id: 4, possubterms: o(0)-> [], 0-> [1] 46.018/46.018 crule: o(s(x4:S)) -> false | o(x4:S) ->* true, id: 5, possubterms: o(s(x4:S))-> [], s(x4:S)-> [1] 46.018/46.018 crule: o(s(x5:S)) -> true | e(x5:S) ->* true, id: 6, possubterms: o(s(x5:S))-> [], s(x5:S)-> [1] 46.018/46.018 46.018/46.018 -> Unifications: 46.018/46.018 R3 unifies with R2 at p: [], l: e(s(x3:S)), lp: e(s(x3:S)), conds: {o(x3:S) ->* true, e(x:S) ->* true}, sig: {x3:S -> x:S}, l': e(s(x:S)), r: true, r': false 46.018/46.018 R6 unifies with R5 at p: [], l: o(s(x5:S)), lp: o(s(x5:S)), conds: {e(x5:S) ->* true, o(x:S) ->* true}, sig: {x5:S -> x:S}, l': o(s(x:S)), r: true, r': false 46.018/46.018 46.018/46.018 -> Critical pairs info: 46.018/46.018 | e(x:S) ->* true, o(x:S) ->* true => Not trivial, Overlay, N1 46.018/46.018 | o(x:S) ->* true, e(x:S) ->* true => Not trivial, Overlay, N2 46.018/46.018 46.018/46.018 -> Problem conclusions: 46.018/46.018 Left linear, Right linear, Linear 46.018/46.018 Not weakly orthogonal, Not almost orthogonal, Not orthogonal 46.018/46.018 CTRS Type: 1 46.018/46.018 Deterministic, Strongly deterministic 46.018/46.018 Oriented CTRS, Properly oriented CTRS, Not join CTRS 46.018/46.018 Maybe right-stable CTRS, Overlay CTRS 46.018/46.018 Maybe normal CTRS, Maybe almost normal CTRS 46.018/46.018 Maybe terminating CTRS, Maybe joinable CCPs 46.018/46.018 Maybe level confluent 46.018/46.018 Maybe confluent 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 Clean Infeasible CCPs Processor: 46.018/46.018 Num of CPIs: 2 46.018/46.018 Timeout: 60 46.018/46.018 Timeout for each infeasibility problem: 60 s 46.018/46.018 | e(x:S) ->* true, o(x:S) ->* true => Not trivial, Overlay, N1 46.018/46.018 (PROBLEM INFEASIBILITY) 46.018/46.018 (VAR x) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x)) -> false | e(x) ->* true 46.018/46.018 e(s(x)) -> true | o(x) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x)) -> false | o(x) ->* true 46.018/46.018 o(s(x)) -> true | e(x) ->* true) 46.018/46.018 (VAR x2) 46.018/46.018 (CONDITION e(x2) ->* true, o(x2) ->* true) 46.018/46.018 46.018/46.018 Proof: 46.018/46.018 YES 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Infeasibility Problem: 46.018/46.018 [(VAR vNonEmpty:S x:S x2:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (0) 46.018/46.018 (fSNonEmpty) 46.018/46.018 (false) 46.018/46.018 (s 1) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S)) -> false | e(x:S) ->* true 46.018/46.018 e(s(x:S)) -> true | o(x:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S)) -> false | o(x:S) ->* true 46.018/46.018 o(s(x:S)) -> true | e(x:S) ->* true 46.018/46.018 )] 46.018/46.018 46.018/46.018 Infeasibility Conditions: 46.018/46.018 e(x2:S) ->* true, o(x2:S) ->* true 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Obtaining a model using Mace4: 46.018/46.018 46.018/46.018 -> Usable Rules: 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S)) -> false | e(x:S) ->* true 46.018/46.018 e(s(x:S)) -> true | o(x:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S)) -> false | o(x:S) ->* true 46.018/46.018 o(s(x:S)) -> true | e(x:S) ->* true 46.018/46.018 46.018/46.018 -> Mace4 Output: 46.018/46.018 ============================== Mace4 ================================= 46.018/46.018 Mace4 (64) version 2009-11A, November 2009. 46.018/46.018 Process 58829 was started by ubuntu on ubuntu, 46.018/46.018 Wed Jul 14 11:28:05 2021 46.018/46.018 The command was "./mace4 -c -f /tmp/mace458805-2.in". 46.018/46.018 ============================== end of head =========================== 46.018/46.018 46.018/46.018 ============================== INPUT ================================= 46.018/46.018 46.018/46.018 % Reading from file /tmp/mace458805-2.in 46.018/46.018 46.018/46.018 assign(max_seconds,20). 46.018/46.018 46.018/46.018 formulas(assumptions). 46.018/46.018 ->(x1,y) -> ->(e(x1),e(y)) # label(congruence). 46.018/46.018 ->(x1,y) -> ->(o(x1),o(y)) # label(congruence). 46.018/46.018 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence). 46.018/46.018 ->(e(0),true) # label(replacement). 46.018/46.018 ->*(e(x1),true) -> ->(e(s(x1)),false) # label(replacement). 46.018/46.018 ->*(o(x1),true) -> ->(e(s(x1)),true) # label(replacement). 46.018/46.018 ->(o(0),false) # label(replacement). 46.018/46.018 ->*(o(x1),true) -> ->(o(s(x1)),false) # label(replacement). 46.018/46.018 ->*(e(x1),true) -> ->(o(s(x1)),true) # label(replacement). 46.018/46.018 ->*(x,x) # label(reflexivity). 46.018/46.018 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(goals). 46.018/46.018 (exists x2 (->*(e(x2),true) & ->*(o(x2),true))) # label(goal). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of input ========================== 46.018/46.018 46.018/46.018 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 46.018/46.018 46.018/46.018 % Formulas that are not ordinary clauses: 46.018/46.018 1 ->(x1,y) -> ->(e(x1),e(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 2 ->(x1,y) -> ->(o(x1),o(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 3 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 4 ->*(e(x1),true) -> ->(e(s(x1)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 5 ->*(o(x1),true) -> ->(e(s(x1)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 6 ->*(o(x1),true) -> ->(o(s(x1)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 7 ->*(e(x1),true) -> ->(o(s(x1)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 8 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity) # label(non_clause). [assumption]. 46.018/46.018 9 (exists x2 (->*(e(x2),true) & ->*(o(x2),true))) # label(goal) # label(non_clause) # label(goal). [goal]. 46.018/46.018 46.018/46.018 ============================== end of process non-clausal formulas === 46.018/46.018 46.018/46.018 ============================== CLAUSES FOR SEARCH ==================== 46.018/46.018 46.018/46.018 formulas(mace4_clauses). 46.018/46.018 -->(x,y) | ->(e(x),e(y)) # label(congruence). 46.018/46.018 -->(x,y) | ->(o(x),o(y)) # label(congruence). 46.018/46.018 -->(x,y) | ->(s(x),s(y)) # label(congruence). 46.018/46.018 ->(e(0),true) # label(replacement). 46.018/46.018 -->*(e(x),true) | ->(e(s(x)),false) # label(replacement). 46.018/46.018 -->*(o(x),true) | ->(e(s(x)),true) # label(replacement). 46.018/46.018 ->(o(0),false) # label(replacement). 46.018/46.018 -->*(o(x),true) | ->(o(s(x)),false) # label(replacement). 46.018/46.018 -->*(e(x),true) | ->(o(s(x)),true) # label(replacement). 46.018/46.018 ->*(x,x) # label(reflexivity). 46.018/46.018 -->(x,y) | -->*(y,z) | ->*(x,z) # label(transitivity). 46.018/46.018 -->*(e(x),true) | -->*(o(x),true) # label(goal). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of clauses for search ============= 46.018/46.018 46.018/46.018 % There are no natural numbers in the input. 46.018/46.018 46.018/46.018 ============================== DOMAIN SIZE 2 ========================= 46.018/46.018 46.018/46.018 ============================== MODEL ================================= 46.018/46.018 46.018/46.018 interpretation( 2, [number=1, seconds=0], [ 46.018/46.018 46.018/46.018 function(0, [ 0 ]), 46.018/46.018 46.018/46.018 function(false, [ 0 ]), 46.018/46.018 46.018/46.018 function(true, [ 1 ]), 46.018/46.018 46.018/46.018 function(e(_), [ 1, 0 ]), 46.018/46.018 46.018/46.018 function(o(_), [ 0, 1 ]), 46.018/46.018 46.018/46.018 function(s(_), [ 1, 0 ]), 46.018/46.018 46.018/46.018 relation(->*(_,_), [ 46.018/46.018 1, 0, 46.018/46.018 0, 1 ]), 46.018/46.018 46.018/46.018 relation(->(_,_), [ 46.018/46.018 1, 0, 46.018/46.018 0, 1 ]) 46.018/46.018 ]). 46.018/46.018 46.018/46.018 ============================== end of model ========================== 46.018/46.018 46.018/46.018 ============================== STATISTICS ============================ 46.018/46.018 46.018/46.018 For domain size 2. 46.018/46.018 46.018/46.018 Current CPU time: 0.00 seconds (total CPU time: 0.00 seconds). 46.018/46.018 Ground clauses: seen=34, kept=30. 46.018/46.018 Selections=8, assignments=12, propagations=22, current_models=1. 46.018/46.018 Rewrite_terms=133, rewrite_bools=79, indexes=27. 46.018/46.018 Rules_from_neg_clauses=6, cross_offs=6. 46.018/46.018 46.018/46.018 ============================== end of statistics ===================== 46.018/46.018 46.018/46.018 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 46.018/46.018 46.018/46.018 Exiting with 1 model. 46.018/46.018 46.018/46.018 Process 58829 exit (max_models) Wed Jul 14 11:28:05 2021 46.018/46.018 The process finished Wed Jul 14 11:28:05 2021 46.018/46.018 46.018/46.018 46.018/46.018 Mace4 cooked interpretation: 46.018/46.018 46.018/46.018 46.018/46.018 46.018/46.018 The problem is infeasible. 46.018/46.018 46.018/46.018 46.018/46.018 46.018/46.018 46.018/46.018 | o(x:S) ->* true, e(x:S) ->* true => Not trivial, Overlay, N2 46.018/46.018 (PROBLEM INFEASIBILITY) 46.018/46.018 (VAR x) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x)) -> false | e(x) ->* true 46.018/46.018 e(s(x)) -> true | o(x) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x)) -> false | o(x) ->* true 46.018/46.018 o(s(x)) -> true | e(x) ->* true) 46.018/46.018 (VAR x2) 46.018/46.018 (CONDITION o(x2) ->* true, e(x2) ->* true) 46.018/46.018 46.018/46.018 Proof: 46.018/46.018 YES 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Infeasibility Problem: 46.018/46.018 [(VAR vNonEmpty:S x:S x2:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (0) 46.018/46.018 (fSNonEmpty) 46.018/46.018 (false) 46.018/46.018 (s 1) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S)) -> false | e(x:S) ->* true 46.018/46.018 e(s(x:S)) -> true | o(x:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S)) -> false | o(x:S) ->* true 46.018/46.018 o(s(x:S)) -> true | e(x:S) ->* true 46.018/46.018 )] 46.018/46.018 46.018/46.018 Infeasibility Conditions: 46.018/46.018 o(x2:S) ->* true, e(x2:S) ->* true 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Obtaining a model using Mace4: 46.018/46.018 46.018/46.018 -> Usable Rules: 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S)) -> false | e(x:S) ->* true 46.018/46.018 e(s(x:S)) -> true | o(x:S) ->* true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S)) -> false | o(x:S) ->* true 46.018/46.018 o(s(x:S)) -> true | e(x:S) ->* true 46.018/46.018 46.018/46.018 -> Mace4 Output: 46.018/46.018 ============================== Mace4 ================================= 46.018/46.018 Mace4 (64) version 2009-11A, November 2009. 46.018/46.018 Process 58874 was started by ubuntu on ubuntu, 46.018/46.018 Wed Jul 14 11:28:25 2021 46.018/46.018 The command was "./mace4 -c -f /tmp/mace458857-2.in". 46.018/46.018 ============================== end of head =========================== 46.018/46.018 46.018/46.018 ============================== INPUT ================================= 46.018/46.018 46.018/46.018 % Reading from file /tmp/mace458857-2.in 46.018/46.018 46.018/46.018 assign(max_seconds,20). 46.018/46.018 46.018/46.018 formulas(assumptions). 46.018/46.018 ->(x1,y) -> ->(e(x1),e(y)) # label(congruence). 46.018/46.018 ->(x1,y) -> ->(o(x1),o(y)) # label(congruence). 46.018/46.018 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence). 46.018/46.018 ->(e(0),true) # label(replacement). 46.018/46.018 ->*(e(x1),true) -> ->(e(s(x1)),false) # label(replacement). 46.018/46.018 ->*(o(x1),true) -> ->(e(s(x1)),true) # label(replacement). 46.018/46.018 ->(o(0),false) # label(replacement). 46.018/46.018 ->*(o(x1),true) -> ->(o(s(x1)),false) # label(replacement). 46.018/46.018 ->*(e(x1),true) -> ->(o(s(x1)),true) # label(replacement). 46.018/46.018 ->*(x,x) # label(reflexivity). 46.018/46.018 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 formulas(goals). 46.018/46.018 (exists x2 (->*(o(x2),true) & ->*(e(x2),true))) # label(goal). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of input ========================== 46.018/46.018 46.018/46.018 ============================== PROCESS NON-CLAUSAL FORMULAS ========== 46.018/46.018 46.018/46.018 % Formulas that are not ordinary clauses: 46.018/46.018 1 ->(x1,y) -> ->(e(x1),e(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 2 ->(x1,y) -> ->(o(x1),o(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 3 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 46.018/46.018 4 ->*(e(x1),true) -> ->(e(s(x1)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 5 ->*(o(x1),true) -> ->(e(s(x1)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 6 ->*(o(x1),true) -> ->(o(s(x1)),false) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 7 ->*(e(x1),true) -> ->(o(s(x1)),true) # label(replacement) # label(non_clause). [assumption]. 46.018/46.018 8 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity) # label(non_clause). [assumption]. 46.018/46.018 9 (exists x2 (->*(o(x2),true) & ->*(e(x2),true))) # label(goal) # label(non_clause) # label(goal). [goal]. 46.018/46.018 46.018/46.018 ============================== end of process non-clausal formulas === 46.018/46.018 46.018/46.018 ============================== CLAUSES FOR SEARCH ==================== 46.018/46.018 46.018/46.018 formulas(mace4_clauses). 46.018/46.018 -->(x,y) | ->(e(x),e(y)) # label(congruence). 46.018/46.018 -->(x,y) | ->(o(x),o(y)) # label(congruence). 46.018/46.018 -->(x,y) | ->(s(x),s(y)) # label(congruence). 46.018/46.018 ->(e(0),true) # label(replacement). 46.018/46.018 -->*(e(x),true) | ->(e(s(x)),false) # label(replacement). 46.018/46.018 -->*(o(x),true) | ->(e(s(x)),true) # label(replacement). 46.018/46.018 ->(o(0),false) # label(replacement). 46.018/46.018 -->*(o(x),true) | ->(o(s(x)),false) # label(replacement). 46.018/46.018 -->*(e(x),true) | ->(o(s(x)),true) # label(replacement). 46.018/46.018 ->*(x,x) # label(reflexivity). 46.018/46.018 -->(x,y) | -->*(y,z) | ->*(x,z) # label(transitivity). 46.018/46.018 -->*(o(x),true) | -->*(e(x),true) # label(goal). 46.018/46.018 end_of_list. 46.018/46.018 46.018/46.018 ============================== end of clauses for search ============= 46.018/46.018 46.018/46.018 % There are no natural numbers in the input. 46.018/46.018 46.018/46.018 ============================== DOMAIN SIZE 2 ========================= 46.018/46.018 46.018/46.018 ============================== MODEL ================================= 46.018/46.018 46.018/46.018 interpretation( 2, [number=1, seconds=0], [ 46.018/46.018 46.018/46.018 function(0, [ 0 ]), 46.018/46.018 46.018/46.018 function(false, [ 0 ]), 46.018/46.018 46.018/46.018 function(true, [ 1 ]), 46.018/46.018 46.018/46.018 function(e(_), [ 1, 0 ]), 46.018/46.018 46.018/46.018 function(o(_), [ 0, 1 ]), 46.018/46.018 46.018/46.018 function(s(_), [ 1, 0 ]), 46.018/46.018 46.018/46.018 relation(->*(_,_), [ 46.018/46.018 1, 0, 46.018/46.018 0, 1 ]), 46.018/46.018 46.018/46.018 relation(->(_,_), [ 46.018/46.018 1, 0, 46.018/46.018 0, 1 ]) 46.018/46.018 ]). 46.018/46.018 46.018/46.018 ============================== end of model ========================== 46.018/46.018 46.018/46.018 ============================== STATISTICS ============================ 46.018/46.018 46.018/46.018 For domain size 2. 46.018/46.018 46.018/46.018 Current CPU time: 0.00 seconds (total CPU time: 0.00 seconds). 46.018/46.018 Ground clauses: seen=34, kept=30. 46.018/46.018 Selections=8, assignments=12, propagations=22, current_models=1. 46.018/46.018 Rewrite_terms=133, rewrite_bools=79, indexes=27. 46.018/46.018 Rules_from_neg_clauses=6, cross_offs=6. 46.018/46.018 46.018/46.018 ============================== end of statistics ===================== 46.018/46.018 46.018/46.018 User_CPU=0.00, System_CPU=0.00, Wall_clock=0. 46.018/46.018 46.018/46.018 Exiting with 1 model. 46.018/46.018 46.018/46.018 Process 58874 exit (max_models) Wed Jul 14 11:28:25 2021 46.018/46.018 The process finished Wed Jul 14 11:28:25 2021 46.018/46.018 46.018/46.018 46.018/46.018 Mace4 cooked interpretation: 46.018/46.018 46.018/46.018 46.018/46.018 46.018/46.018 The problem is infeasible. 46.018/46.018 46.018/46.018 46.018/46.018 46.018/46.018 46.018/46.018 -> Problem conclusions: 46.018/46.018 Left linear, Right linear, Linear 46.018/46.018 Weakly orthogonal, Almost orthogonal, Orthogonal 46.018/46.018 CTRS Type: 1 46.018/46.018 Deterministic, Strongly deterministic 46.018/46.018 Oriented CTRS, Properly oriented CTRS, Not join CTRS 46.018/46.018 Maybe right-stable CTRS, Overlay CTRS 46.018/46.018 Maybe normal CTRS, Maybe almost normal CTRS 46.018/46.018 Maybe terminating CTRS, Joinable CCPs 46.018/46.018 Maybe level confluent 46.018/46.018 Maybe confluent 46.018/46.018 46.018/46.018 Resulting CCPs: 46.018/46.018 No CCPs left 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 Underlying TRS Termination Processor: 46.018/46.018 46.018/46.018 Resulting Underlying TRS: 46.018/46.018 (VAR x:S) 46.018/46.018 (STRATEGY CONTEXTSENSITIVE 46.018/46.018 (e 1) 46.018/46.018 (o 1) 46.018/46.018 (false) 46.018/46.018 (true) 46.018/46.018 ) 46.018/46.018 (RULES 46.018/46.018 e(0) -> true 46.018/46.018 e(s(x:S)) -> false 46.018/46.018 e(s(x:S)) -> true 46.018/46.018 o(0) -> false 46.018/46.018 o(s(x:S)) -> false 46.018/46.018 o(s(x:S)) -> true 46.018/46.018 ) 46.018/46.018 Underlying TRS terminating? 46.018/46.018 YES 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 (VAR vu95NonEmpty:S xu58S:S) 46.018/46.018 (RULES 46.018/46.018 e(num0) -> ftrue 46.018/46.018 e(s(xu58S:S)) -> ffalse 46.018/46.018 e(s(xu58S:S)) -> ftrue 46.018/46.018 o(num0) -> ffalse 46.018/46.018 o(s(xu58S:S)) -> ffalse 46.018/46.018 o(s(xu58S:S)) -> ftrue 46.018/46.018 ) 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 Dependency Pairs Processor: 46.018/46.018 -> Pairs: 46.018/46.018 Empty 46.018/46.018 -> Rules: 46.018/46.018 e(num0) -> ftrue 46.018/46.018 e(s(xu58S:S)) -> ffalse 46.018/46.018 e(s(xu58S:S)) -> ftrue 46.018/46.018 o(num0) -> ffalse 46.018/46.018 o(s(xu58S:S)) -> ffalse 46.018/46.018 o(s(xu58S:S)) -> ftrue 46.018/46.018 46.018/46.018 Problem 1: 46.018/46.018 46.018/46.018 SCC Processor: 46.018/46.018 -> Pairs: 46.018/46.018 Empty 46.018/46.018 -> Rules: 46.018/46.018 e(num0) -> ftrue 46.018/46.018 e(s(xu58S:S)) -> ffalse 46.018/46.018 e(s(xu58S:S)) -> ftrue 46.018/46.018 o(num0) -> ffalse 46.018/46.018 o(s(xu58S:S)) -> ffalse 46.018/46.018 o(s(xu58S:S)) -> ftrue 46.018/46.018 ->Strongly Connected Components: 46.018/46.018 There is no strongly connected component 46.018/46.018 46.018/46.018 The problem is finite. 46.018/46.018 46.018/46.018 46.018/46.018 -> Problem conclusions: 46.018/46.018 Left linear, Right linear, Linear 46.018/46.018 Weakly orthogonal, Almost orthogonal, Orthogonal 46.018/46.018 CTRS Type: 1 46.018/46.018 Deterministic, Strongly deterministic 46.018/46.018 Oriented CTRS, Properly oriented CTRS, Not join CTRS 46.018/46.018 Maybe right-stable CTRS, Overlay CTRS 46.018/46.018 Maybe normal CTRS, Maybe almost normal CTRS 46.018/46.018 Terminating CTRS, Joinable CCPs 46.018/46.018 Maybe level confluent 46.018/46.018 Confluent 46.018/46.018 46.018/46.018 The problem is joinable. 46.018/46.018 61.05user 1.64system 0:46.18elapsed 135%CPU (0avgtext+0avgdata 116652maxresident)k 46.018/46.018 8inputs+0outputs (0major+132368minor)pagefaults 0swaps