NO Problem 1: Infeasibility Problem: [(VAR vNonEmpty x y rest z1 z2 vNonEmpty x x1 z1 z2 x2 x4 x5) (STRATEGY CONTEXTSENSITIVE (cons 1 2) (orient 1 2) (0) (fSNonEmpty) (pair 1 2) (s 1) ) (RULES cons(x,cons(x,rest)) -> cons(x,rest) cons(x,cons(y,rest)) -> cons(z1,cons(z2,rest)) | orient(x,y) ->* pair(z1,z2) orient(s(x),0) -> pair(0,s(x)) orient(s(x),s(y)) -> pair(s(z1),s(z2)) | orient(x,y) ->* pair(z1,z2) ) ] Infeasibility Conditions: orient(x,x1) ->* pair(z1,z2), orient(x1,x2) ->* pair(x4,x5) Problem 1: Obtaining a proof using Prover9: -> Prover9 Output: ============================== Prover9 =============================== Prover9 (64) version 2009-11A, November 2009. Process 3214626 was started by sandbox on z033.star.cs.uiowa.edu, Tue Jul 30 08:54:55 2024 The command was "./prover9 -f /tmp/prover93214619-0.in". ============================== end of head =========================== ============================== INPUT ================================= % Reading from file /tmp/prover93214619-0.in assign(max_seconds,20). formulas(assumptions). ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence). ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence). ->_s0(x1,y) -> ->_s0(orient(x1,x2),orient(y,x2)) # label(congruence). ->_s0(x2,y) -> ->_s0(orient(x1,x2),orient(x1,y)) # label(congruence). ->_s0(x1,y) -> ->_s0(pair(x1,x2),pair(y,x2)) # label(congruence). ->_s0(x2,y) -> ->_s0(pair(x1,x2),pair(x1,y)) # label(congruence). ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence). ->_s0(cons(x1,cons(x1,x3)),cons(x1,x3)) # label(replacement). ->*_s0(orient(x1,x2),pair(x4,x5)) -> ->_s0(cons(x1,cons(x2,x3)),cons(x4,cons(x5,x3))) # label(replacement). ->_s0(orient(s(x1),0),pair(0,s(x1))) # label(replacement). ->*_s0(orient(x1,x2),pair(x4,x5)) -> ->_s0(orient(s(x1),s(x2)),pair(s(x4),s(x5))) # label(replacement). ->*_s0(x,x) # label(reflexivity). ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). end_of_list. formulas(goals). (exists x7 exists x8 exists x9 exists x10 exists x11 exists x12 exists x13 (->*_s0(orient(x7,x8),pair(x9,x10)) & ->*_s0(orient(x8,x11),pair(x12,x13)))) # label(goal). end_of_list. ============================== end of input ========================== ============================== PROCESS NON-CLAUSAL FORMULAS ========== % Formulas that are not ordinary clauses: 1 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence) # label(non_clause). [assumption]. 2 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence) # label(non_clause). [assumption]. 3 ->_s0(x1,y) -> ->_s0(orient(x1,x2),orient(y,x2)) # label(congruence) # label(non_clause). [assumption]. 4 ->_s0(x2,y) -> ->_s0(orient(x1,x2),orient(x1,y)) # label(congruence) # label(non_clause). [assumption]. 5 ->_s0(x1,y) -> ->_s0(pair(x1,x2),pair(y,x2)) # label(congruence) # label(non_clause). [assumption]. 6 ->_s0(x2,y) -> ->_s0(pair(x1,x2),pair(x1,y)) # label(congruence) # label(non_clause). [assumption]. 7 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 8 ->*_s0(orient(x1,x2),pair(x4,x5)) -> ->_s0(cons(x1,cons(x2,x3)),cons(x4,cons(x5,x3))) # label(replacement) # label(non_clause). [assumption]. 9 ->*_s0(orient(x1,x2),pair(x4,x5)) -> ->_s0(orient(s(x1),s(x2)),pair(s(x4),s(x5))) # label(replacement) # label(non_clause). [assumption]. 10 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 11 (exists x7 exists x8 exists x9 exists x10 exists x11 exists x12 exists x13 (->*_s0(orient(x7,x8),pair(x9,x10)) & ->*_s0(orient(x8,x11),pair(x12,x13)))) # 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(cons(x,z),cons(y,z)) # label(congruence). [clausify(1)]. -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(2)]. -->_s0(x,y) | ->_s0(orient(x,z),orient(y,z)) # label(congruence). [clausify(3)]. -->_s0(x,y) | ->_s0(orient(z,x),orient(z,y)) # label(congruence). [clausify(4)]. -->_s0(x,y) | ->_s0(pair(x,z),pair(y,z)) # label(congruence). [clausify(5)]. -->_s0(x,y) | ->_s0(pair(z,x),pair(z,y)) # label(congruence). [clausify(6)]. -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(7)]. ->_s0(cons(x,cons(x,y)),cons(x,y)) # label(replacement). [assumption]. -->*_s0(orient(x,y),pair(z,u)) | ->_s0(cons(x,cons(y,w)),cons(z,cons(u,w))) # label(replacement). [clausify(8)]. ->_s0(orient(s(x),0),pair(0,s(x))) # label(replacement). [assumption]. -->*_s0(orient(x,y),pair(z,u)) | ->_s0(orient(s(x),s(y)),pair(s(z),s(u))) # label(replacement). [clausify(9)]. ->*_s0(x,x) # label(reflexivity). [assumption]. -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(10)]. -->*_s0(orient(x,y),pair(z,u)) | -->*_s0(orient(y,w),pair(v5,v6)) # label(goal). [deny(11)]. 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([ 0, cons, orient, pair, s ]). After inverse_order: (no changes). Unfolding symbols: (none). Auto_inference settings: % set(neg_binary_resolution). % (HNE depth_diff=-9) % clear(ordered_res). % (HNE depth_diff=-9) % set(ur_resolution). % (HNE depth_diff=-9) % set(ur_resolution) -> set(pos_ur_resolution). % set(ur_resolution) -> set(neg_ur_resolution). Auto_process settings: % set(unit_deletion). % (Horn set with negative nonunits) kept: 12 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(1)]. kept: 13 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(2)]. kept: 14 -->_s0(x,y) | ->_s0(orient(x,z),orient(y,z)) # label(congruence). [clausify(3)]. kept: 15 -->_s0(x,y) | ->_s0(orient(z,x),orient(z,y)) # label(congruence). [clausify(4)]. kept: 16 -->_s0(x,y) | ->_s0(pair(x,z),pair(y,z)) # label(congruence). [clausify(5)]. kept: 17 -->_s0(x,y) | ->_s0(pair(z,x),pair(z,y)) # label(congruence). [clausify(6)]. kept: 18 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(7)]. kept: 19 ->_s0(cons(x,cons(x,y)),cons(x,y)) # label(replacement). [assumption]. kept: 20 -->*_s0(orient(x,y),pair(z,u)) | ->_s0(cons(x,cons(y,w)),cons(z,cons(u,w))) # label(replacement). [clausify(8)]. kept: 21 ->_s0(orient(s(x),0),pair(0,s(x))) # label(replacement). [assumption]. kept: 22 -->*_s0(orient(x,y),pair(z,u)) | ->_s0(orient(s(x),s(y)),pair(s(z),s(u))) # label(replacement). [clausify(9)]. kept: 23 ->*_s0(x,x) # label(reflexivity). [assumption]. kept: 24 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(10)]. kept: 25 -->*_s0(orient(x,y),pair(z,u)) | -->*_s0(orient(y,w),pair(v5,v6)) # label(goal) # answer(goal). [deny(11)]. ============================== end of process initial clauses ======== ============================== CLAUSES FOR SEARCH ==================== % Clauses after input processing: formulas(usable). end_of_list. formulas(sos). 12 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(1)]. 13 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(2)]. 14 -->_s0(x,y) | ->_s0(orient(x,z),orient(y,z)) # label(congruence). [clausify(3)]. 15 -->_s0(x,y) | ->_s0(orient(z,x),orient(z,y)) # label(congruence). [clausify(4)]. 16 -->_s0(x,y) | ->_s0(pair(x,z),pair(y,z)) # label(congruence). [clausify(5)]. 17 -->_s0(x,y) | ->_s0(pair(z,x),pair(z,y)) # label(congruence). [clausify(6)]. 18 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(7)]. 19 ->_s0(cons(x,cons(x,y)),cons(x,y)) # label(replacement). [assumption]. 20 -->*_s0(orient(x,y),pair(z,u)) | ->_s0(cons(x,cons(y,w)),cons(z,cons(u,w))) # label(replacement). [clausify(8)]. 21 ->_s0(orient(s(x),0),pair(0,s(x))) # label(replacement). [assumption]. 22 -->*_s0(orient(x,y),pair(z,u)) | ->_s0(orient(s(x),s(y)),pair(s(z),s(u))) # label(replacement). [clausify(9)]. 23 ->*_s0(x,x) # label(reflexivity). [assumption]. 24 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(10)]. 25 -->*_s0(orient(x,y),pair(z,u)) | -->*_s0(orient(y,w),pair(v5,v6)) # label(goal) # answer(goal). [deny(11)]. end_of_list. formulas(demodulators). end_of_list. ============================== end of clauses for search ============= ============================== SEARCH ================================ % Starting search at 0.01 seconds. given #1 (I,wt=10): 12 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(1)]. given #2 (I,wt=10): 13 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(2)]. given #3 (I,wt=10): 14 -->_s0(x,y) | ->_s0(orient(x,z),orient(y,z)) # label(congruence). [clausify(3)]. given #4 (I,wt=10): 15 -->_s0(x,y) | ->_s0(orient(z,x),orient(z,y)) # label(congruence). [clausify(4)]. given #5 (I,wt=10): 16 -->_s0(x,y) | ->_s0(pair(x,z),pair(y,z)) # label(congruence). [clausify(5)]. given #6 (I,wt=10): 17 -->_s0(x,y) | ->_s0(pair(z,x),pair(z,y)) # label(congruence). [clausify(6)]. given #7 (I,wt=8): 18 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(7)]. given #8 (I,wt=9): 19 ->_s0(cons(x,cons(x,y)),cons(x,y)) # label(replacement). [assumption]. given #9 (I,wt=18): 20 -->*_s0(orient(x,y),pair(z,u)) | ->_s0(cons(x,cons(y,w)),cons(z,cons(u,w))) # label(replacement). [clausify(8)]. given #10 (I,wt=9): 21 ->_s0(orient(s(x),0),pair(0,s(x))) # label(replacement). [assumption]. given #11 (I,wt=18): 22 -->*_s0(orient(x,y),pair(z,u)) | ->_s0(orient(s(x),s(y)),pair(s(z),s(u))) # label(replacement). [clausify(9)]. given #12 (I,wt=3): 23 ->*_s0(x,x) # label(reflexivity). [assumption]. given #13 (I,wt=9): 24 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(10)]. given #14 (I,wt=14): 25 -->*_s0(orient(x,y),pair(z,u)) | -->*_s0(orient(y,w),pair(v5,v6)) # label(goal) # answer(goal). [deny(11)]. given #15 (A,wt=11): 26 ->_s0(s(cons(x,cons(x,y))),s(cons(x,y))). [ur(18,a,19,a)]. given #16 (F,wt=17): 42 -->*_s0(orient(x,y),pair(z,u)) | -->_s0(orient(w,x),v5) | -->*_s0(v5,pair(v6,v7)) # answer(goal). [resolve(25,a,24,c)]. given #17 (F,wt=7): 58 -->*_s0(orient(0,x),pair(y,z)) # answer(goal). [ur(42,b,21,a,c,23,a)]. given #18 (F,wt=7): 60 -->_s0(orient(0,x),pair(y,z)) # answer(goal). [ur(24,b,23,a,c,58,a)]. given #19 (F,wt=10): 59 -->_s0(orient(0,x),y) | -->*_s0(y,pair(z,u)) # answer(goal). [resolve(58,a,24,c)]. given #20 (T,wt=9): 40 ->*_s0(orient(s(x),0),pair(0,s(x))). [ur(24,a,21,a,b,23,a)]. ============================== PROOF ================================= % Proof 1 at 0.01 (+ 0.00) seconds: goal. % Length of proof is 13. % Level of proof is 4. % Maximum clause weight is 18.000. % Given clauses 20. 9 ->*_s0(orient(x1,x2),pair(x4,x5)) -> ->_s0(orient(s(x1),s(x2)),pair(s(x4),s(x5))) # label(replacement) # label(non_clause). [assumption]. 10 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 11 (exists x7 exists x8 exists x9 exists x10 exists x11 exists x12 exists x13 (->*_s0(orient(x7,x8),pair(x9,x10)) & ->*_s0(orient(x8,x11),pair(x12,x13)))) # label(goal) # label(non_clause) # label(goal). [goal]. 21 ->_s0(orient(s(x),0),pair(0,s(x))) # label(replacement). [assumption]. 22 -->*_s0(orient(x,y),pair(z,u)) | ->_s0(orient(s(x),s(y)),pair(s(z),s(u))) # label(replacement). [clausify(9)]. 23 ->*_s0(x,x) # label(reflexivity). [assumption]. 24 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(10)]. 25 -->*_s0(orient(x,y),pair(z,u)) | -->*_s0(orient(y,w),pair(v5,v6)) # label(goal) # answer(goal). [deny(11)]. 40 ->*_s0(orient(s(x),0),pair(0,s(x))). [ur(24,a,21,a,b,23,a)]. 42 -->*_s0(orient(x,y),pair(z,u)) | -->_s0(orient(w,x),v5) | -->*_s0(v5,pair(v6,v7)) # answer(goal). [resolve(25,a,24,c)]. 67 ->_s0(orient(s(s(x)),s(0)),pair(s(0),s(s(x)))). [ur(22,a,40,a)]. 70 -->_s0(orient(x,s(y)),pair(z,u)) # answer(goal). [ur(42,a,40,a,c,23,a)]. 71 $F # answer(goal). [resolve(70,a,67,a)]. ============================== end of proof ========================== ============================== STATISTICS ============================ Given=20. Generated=66. Kept=59. proofs=1. Usable=20. Sos=30. Demods=0. Limbo=7, Disabled=15. Hints=0. Kept_by_rule=0, Deleted_by_rule=0. Forward_subsumed=7. Back_subsumed=1. 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=23. Nonunit_bsub_feature_tests=47. Megabytes=0.19. User_CPU=0.01, System_CPU=0.00, Wall_clock=0. ============================== end of statistics ===================== ============================== end of search ========================= THEOREM PROVED Exiting with 1 proof. Process 3214626 exit (max_proofs) Tue Jul 30 08:54:55 2024 The problem is feasible.