NO Problem 1: Infeasibility Problem: [(VAR vNonEmpty x vNonEmpty x) (STRATEGY CONTEXTSENSITIVE (p 1) (pos 1) (s 1) (0) (fSNonEmpty) (false) (true) ) (RULES p(s(x)) -> x pos(p(x)) -> false | pos(x) ->* false pos(s(0)) -> true pos(s(x)) -> true | pos(x) ->* true pos(0) -> false s(p(x)) -> x ) ] Infeasibility Conditions: pos(s(x)) ->* false Problem 1: Obtaining a proof using Prover9: -> Prover9 Output: ============================== Prover9 =============================== Prover9 (64) version 2009-11A, November 2009. Process 3327435 was started by sandbox on z031.star.cs.uiowa.edu, Tue Jul 30 09:24:55 2024 The command was "./prover9 -f /tmp/prover93327424-0.in". ============================== end of head =========================== ============================== INPUT ================================= % Reading from file /tmp/prover93327424-0.in assign(max_seconds,20). formulas(assumptions). ->_s0(x1,y) -> ->_s0(p(x1),p(y)) # label(congruence). ->_s0(x1,y) -> ->_s0(pos(x1),pos(y)) # label(congruence). ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). ->_s0(p(s(x1)),x1) # label(replacement). ->*_s0(pos(x1),false) -> ->_s0(pos(p(x1)),false) # label(replacement). ->_s0(pos(s(0)),true) # label(replacement). ->*_s0(pos(x1),true) -> ->_s0(pos(s(x1)),true) # label(replacement). ->_s0(pos(0),false) # label(replacement). ->_s0(s(p(x1)),x1) # label(replacement). ->*_s0(x,x) # label(reflexivity). ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). end_of_list. formulas(goals). (exists x3 ->*_s0(pos(s(x3)),false)) # label(goal). end_of_list. ============================== end of input ========================== ============================== PROCESS NON-CLAUSAL FORMULAS ========== % Formulas that are not ordinary clauses: 1 ->_s0(x1,y) -> ->_s0(p(x1),p(y)) # label(congruence) # label(non_clause). [assumption]. 2 ->_s0(x1,y) -> ->_s0(pos(x1),pos(y)) # label(congruence) # label(non_clause). [assumption]. 3 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 4 ->*_s0(pos(x1),false) -> ->_s0(pos(p(x1)),false) # label(replacement) # label(non_clause). [assumption]. 5 ->*_s0(pos(x1),true) -> ->_s0(pos(s(x1)),true) # label(replacement) # label(non_clause). [assumption]. 6 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 7 (exists x3 ->*_s0(pos(s(x3)),false)) # label(goal) # label(non_clause) # label(goal). [goal]. ============================== end of process non-clausal formulas === ============================== PROCESS INITIAL CLAUSES =============== % Clauses before input processing: formulas(usable). end_of_list. formulas(sos). -->_s0(x,y) | ->_s0(p(x),p(y)) # label(congruence). [clausify(1)]. -->_s0(x,y) | ->_s0(pos(x),pos(y)) # label(congruence). [clausify(2)]. -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(3)]. ->_s0(p(s(x)),x) # label(replacement). [assumption]. -->*_s0(pos(x),false) | ->_s0(pos(p(x)),false) # label(replacement). [clausify(4)]. ->_s0(pos(s(0)),true) # label(replacement). [assumption]. -->*_s0(pos(x),true) | ->_s0(pos(s(x)),true) # label(replacement). [clausify(5)]. ->_s0(pos(0),false) # label(replacement). [assumption]. ->_s0(s(p(x)),x) # label(replacement). [assumption]. ->*_s0(x,x) # label(reflexivity). [assumption]. -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(6)]. -->*_s0(pos(s(x)),false) # label(goal). [deny(7)]. end_of_list. formulas(demodulators). end_of_list. ============================== PREDICATE ELIMINATION ================= No predicates eliminated. ============================== end predicate elimination ============= Auto_denials: % copying label goal to answer in negative clause Term ordering decisions: Predicate symbol precedence: predicate_order([ ->_s0, ->*_s0 ]). Function symbol precedence: function_order([ false, true, 0, pos, s, p ]). After inverse_order: (no changes). Unfolding symbols: (none). Auto_inference settings: % set(neg_binary_resolution). % (HNE depth_diff=-5) % clear(ordered_res). % (HNE depth_diff=-5) % set(ur_resolution). % (HNE depth_diff=-5) % set(ur_resolution) -> set(pos_ur_resolution). % set(ur_resolution) -> set(neg_ur_resolution). Auto_process settings: (no changes). kept: 8 -->_s0(x,y) | ->_s0(p(x),p(y)) # label(congruence). [clausify(1)]. kept: 9 -->_s0(x,y) | ->_s0(pos(x),pos(y)) # label(congruence). [clausify(2)]. kept: 10 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(3)]. kept: 11 ->_s0(p(s(x)),x) # label(replacement). [assumption]. kept: 12 -->*_s0(pos(x),false) | ->_s0(pos(p(x)),false) # label(replacement). [clausify(4)]. kept: 13 ->_s0(pos(s(0)),true) # label(replacement). [assumption]. kept: 14 -->*_s0(pos(x),true) | ->_s0(pos(s(x)),true) # label(replacement). [clausify(5)]. kept: 15 ->_s0(pos(0),false) # label(replacement). [assumption]. kept: 16 ->_s0(s(p(x)),x) # label(replacement). [assumption]. kept: 17 ->*_s0(x,x) # label(reflexivity). [assumption]. kept: 18 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(6)]. kept: 19 -->*_s0(pos(s(x)),false) # label(goal) # answer(goal). [deny(7)]. ============================== end of process initial clauses ======== ============================== CLAUSES FOR SEARCH ==================== % Clauses after input processing: formulas(usable). end_of_list. formulas(sos). 8 -->_s0(x,y) | ->_s0(p(x),p(y)) # label(congruence). [clausify(1)]. 9 -->_s0(x,y) | ->_s0(pos(x),pos(y)) # label(congruence). [clausify(2)]. 10 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(3)]. 11 ->_s0(p(s(x)),x) # label(replacement). [assumption]. 12 -->*_s0(pos(x),false) | ->_s0(pos(p(x)),false) # label(replacement). [clausify(4)]. 13 ->_s0(pos(s(0)),true) # label(replacement). [assumption]. 14 -->*_s0(pos(x),true) | ->_s0(pos(s(x)),true) # label(replacement). [clausify(5)]. 15 ->_s0(pos(0),false) # label(replacement). [assumption]. 16 ->_s0(s(p(x)),x) # label(replacement). [assumption]. 17 ->*_s0(x,x) # label(reflexivity). [assumption]. 18 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(6)]. 19 -->*_s0(pos(s(x)),false) # label(goal) # answer(goal). [deny(7)]. end_of_list. formulas(demodulators). end_of_list. ============================== end of clauses for search ============= ============================== SEARCH ================================ % Starting search at 0.00 seconds. given #1 (I,wt=8): 8 -->_s0(x,y) | ->_s0(p(x),p(y)) # label(congruence). [clausify(1)]. given #2 (I,wt=8): 9 -->_s0(x,y) | ->_s0(pos(x),pos(y)) # label(congruence). [clausify(2)]. given #3 (I,wt=8): 10 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(3)]. given #4 (I,wt=5): 11 ->_s0(p(s(x)),x) # label(replacement). [assumption]. given #5 (I,wt=9): 12 -->*_s0(pos(x),false) | ->_s0(pos(p(x)),false) # label(replacement). [clausify(4)]. given #6 (I,wt=5): 13 ->_s0(pos(s(0)),true) # label(replacement). [assumption]. given #7 (I,wt=9): 14 -->*_s0(pos(x),true) | ->_s0(pos(s(x)),true) # label(replacement). [clausify(5)]. given #8 (I,wt=4): 15 ->_s0(pos(0),false) # label(replacement). [assumption]. given #9 (I,wt=5): 16 ->_s0(s(p(x)),x) # label(replacement). [assumption]. given #10 (I,wt=3): 17 ->*_s0(x,x) # label(reflexivity). [assumption]. given #11 (I,wt=9): 18 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(6)]. given #12 (I,wt=5): 19 -->*_s0(pos(s(x)),false) # label(goal) # answer(goal). [deny(7)]. given #13 (A,wt=7): 20 ->_s0(pos(p(s(x))),pos(x)). [ur(9,a,11,a)]. given #14 (F,wt=3): 36 -->*_s0(true,false) # answer(goal). [ur(18,a,13,a,c,19,a)]. given #15 (F,wt=3): 42 -->_s0(true,false) # answer(goal). [ur(18,b,17,a,c,36,a)]. given #16 (F,wt=5): 35 -->_s0(pos(s(x)),false) # answer(goal). [ur(18,b,17,a,c,19,a)]. given #17 (F,wt=6): 41 -->_s0(true,x) | -->*_s0(x,false) # answer(goal). [resolve(36,a,18,c)]. given #18 (T,wt=4): 31 ->*_s0(pos(0),false). [ur(18,a,15,a,b,17,a)]. ============================== PROOF ================================= % Proof 1 at 0.00 (+ 0.00) seconds: goal. % Length of proof is 13. % Level of proof is 4. % Maximum clause weight is 9.000. % Given clauses 18. 2 ->_s0(x1,y) -> ->_s0(pos(x1),pos(y)) # label(congruence) # label(non_clause). [assumption]. 6 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 7 (exists x3 ->*_s0(pos(s(x3)),false)) # label(goal) # label(non_clause) # label(goal). [goal]. 9 -->_s0(x,y) | ->_s0(pos(x),pos(y)) # label(congruence). [clausify(2)]. 15 ->_s0(pos(0),false) # label(replacement). [assumption]. 16 ->_s0(s(p(x)),x) # label(replacement). [assumption]. 17 ->*_s0(x,x) # label(reflexivity). [assumption]. 18 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(6)]. 19 -->*_s0(pos(s(x)),false) # label(goal) # answer(goal). [deny(7)]. 29 ->_s0(pos(s(p(x))),pos(x)). [ur(9,a,16,a)]. 31 ->*_s0(pos(0),false). [ur(18,a,15,a,b,17,a)]. 49 -->_s0(pos(s(x)),pos(0)) # answer(goal). [ur(18,b,31,a,c,19,a)]. 50 $F # answer(goal). [resolve(49,a,29,a)]. ============================== end of proof ========================== ============================== STATISTICS ============================ Given=18. Generated=48. Kept=42. proofs=1. Usable=18. Sos=18. Demods=0. Limbo=5, Disabled=12. Hints=0. Kept_by_rule=0, Deleted_by_rule=0. Forward_subsumed=6. Back_subsumed=0. Sos_limit_deleted=0. Sos_displaced=0. Sos_removed=0. New_demodulators=0 (0 lex), Back_demodulated=0. Back_unit_deleted=0. Demod_attempts=0. Demod_rewrites=0. Res_instance_prunes=0. Para_instance_prunes=0. Basic_paramod_prunes=0. Nonunit_fsub_feature_tests=1. Nonunit_bsub_feature_tests=12. Megabytes=0.10. User_CPU=0.00, System_CPU=0.00, Wall_clock=0. ============================== end of statistics ===================== ============================== end of search ========================= THEOREM PROVED Exiting with 1 proof. Process 3327435 exit (max_proofs) Tue Jul 30 09:24:55 2024 The problem is feasible.