NO Problem 1: Infeasibility Problem: [(VAR vNonEmpty xs y' ws v ys' w x' xs' zs z y ys vNonEmpty x5 x3 w x4 ys' x6 x1 x2 x7) (STRATEGY CONTEXTSENSITIVE (get 1) (ssp' 1 2) (sub 1 2) (0) (cons 1 2) (fSNonEmpty) (nil) (s 1) (tp2 1 2) ) (RULES get(cons(x',xs')) -> tp2(y,cons(x',zs)) | get(xs') ->* tp2(y,zs) get(cons(y,ys)) -> tp2(y,ys) ssp'(cons(y',ws),v) -> cons(y',ys') | sub(v,y') ->* w, ssp'(ws,w) ->* ys' ssp'(cons(x',xs'),v) -> cons(y',ys') | get(xs') ->* tp2(y',zs), sub(v,y') ->* w, ssp'(cons(x',zs),w) ->* ys' ssp'(xs,0) -> nil sub(s(v),s(w)) -> z | sub(v,w) ->* z sub(z,0) -> z ) ] Infeasibility Conditions: sub(x5,x3) ->* w, ssp'(x4,w) ->* ys', get(x4) ->* tp2(x6,x1), sub(x5,x6) ->* x2, ssp'(cons(x3,x1),x2) ->* x7 Problem 1: Obtaining a proof using Prover9: -> Prover9 Output: ============================== Prover9 =============================== Prover9 (64) version 2009-11A, November 2009. Process 3317521 was started by sandbox on z026.star.cs.uiowa.edu, Tue Jul 30 09:21:25 2024 The command was "./prover9 -f /tmp/prover93317512-0.in". ============================== end of head =========================== ============================== INPUT ================================= % Reading from file /tmp/prover93317512-0.in assign(max_seconds,20). formulas(assumptions). ->_s0(x1,y) -> ->_s0(get(x1),get(y)) # label(congruence). ->_s0(x1,y) -> ->_s0(ssp'(x1,x2),ssp'(y,x2)) # label(congruence). ->_s0(x2,y) -> ->_s0(ssp'(x1,x2),ssp'(x1,y)) # label(congruence). ->_s0(x1,y) -> ->_s0(sub(x1,x2),sub(y,x2)) # label(congruence). ->_s0(x2,y) -> ->_s0(sub(x1,x2),sub(x1,y)) # label(congruence). ->_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(s(x1),s(y)) # label(congruence). ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence). ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence). ->*_s0(get(x8),tp2(x11,x9)) -> ->_s0(get(cons(x7,x8)),tp2(x11,cons(x7,x9))) # label(replacement). ->_s0(get(cons(x11,x12)),tp2(x11,x12)) # label(replacement). ->*_s0(sub(x4,x2),x6) & ->*_s0(ssp'(x3,x6),x5) -> ->_s0(ssp'(cons(x2,x3),x4),cons(x2,x5)) # label(replacement). ->*_s0(get(x8),tp2(x2,x9)) & ->*_s0(sub(x4,x2),x6) & ->*_s0(ssp'(cons(x7,x9),x6),x5) -> ->_s0(ssp'(cons(x7,x8),x4),cons(x2,x5)) # label(replacement). ->_s0(ssp'(x1,0),nil) # label(replacement). ->*_s0(sub(x4,x6),x10) -> ->_s0(sub(s(x4),s(x6)),x10) # label(replacement). ->_s0(sub(x10,0),x10) # label(replacement). ->*_s0(x,x) # label(reflexivity). ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity). end_of_list. formulas(goals). (exists x14 exists x15 exists x16 exists x17 exists x18 exists x19 exists x20 exists x21 exists x22 (->*_s0(sub(x14,x15),x16) & ->*_s0(ssp'(x17,x16),x18) & ->*_s0(get(x17),tp2(x19,x20)) & ->*_s0(sub(x14,x19),x21) & ->*_s0(ssp'(cons(x15,x20),x21),x22))) # label(goal). end_of_list. ============================== end of input ========================== ============================== PROCESS NON-CLAUSAL FORMULAS ========== % Formulas that are not ordinary clauses: 1 ->_s0(x1,y) -> ->_s0(get(x1),get(y)) # label(congruence) # label(non_clause). [assumption]. 2 ->_s0(x1,y) -> ->_s0(ssp'(x1,x2),ssp'(y,x2)) # label(congruence) # label(non_clause). [assumption]. 3 ->_s0(x2,y) -> ->_s0(ssp'(x1,x2),ssp'(x1,y)) # label(congruence) # label(non_clause). [assumption]. 4 ->_s0(x1,y) -> ->_s0(sub(x1,x2),sub(y,x2)) # label(congruence) # label(non_clause). [assumption]. 5 ->_s0(x2,y) -> ->_s0(sub(x1,x2),sub(x1,y)) # label(congruence) # label(non_clause). [assumption]. 6 ->_s0(x1,y) -> ->_s0(cons(x1,x2),cons(y,x2)) # label(congruence) # label(non_clause). [assumption]. 7 ->_s0(x2,y) -> ->_s0(cons(x1,x2),cons(x1,y)) # label(congruence) # label(non_clause). [assumption]. 8 ->_s0(x1,y) -> ->_s0(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 9 ->_s0(x1,y) -> ->_s0(tp2(x1,x2),tp2(y,x2)) # label(congruence) # label(non_clause). [assumption]. 10 ->_s0(x2,y) -> ->_s0(tp2(x1,x2),tp2(x1,y)) # label(congruence) # label(non_clause). [assumption]. 11 ->*_s0(get(x8),tp2(x11,x9)) -> ->_s0(get(cons(x7,x8)),tp2(x11,cons(x7,x9))) # label(replacement) # label(non_clause). [assumption]. 12 ->*_s0(sub(x4,x2),x6) & ->*_s0(ssp'(x3,x6),x5) -> ->_s0(ssp'(cons(x2,x3),x4),cons(x2,x5)) # label(replacement) # label(non_clause). [assumption]. 13 ->*_s0(get(x8),tp2(x2,x9)) & ->*_s0(sub(x4,x2),x6) & ->*_s0(ssp'(cons(x7,x9),x6),x5) -> ->_s0(ssp'(cons(x7,x8),x4),cons(x2,x5)) # label(replacement) # label(non_clause). [assumption]. 14 ->*_s0(sub(x4,x6),x10) -> ->_s0(sub(s(x4),s(x6)),x10) # label(replacement) # label(non_clause). [assumption]. 15 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 16 (exists x14 exists x15 exists x16 exists x17 exists x18 exists x19 exists x20 exists x21 exists x22 (->*_s0(sub(x14,x15),x16) & ->*_s0(ssp'(x17,x16),x18) & ->*_s0(get(x17),tp2(x19,x20)) & ->*_s0(sub(x14,x19),x21) & ->*_s0(ssp'(cons(x15,x20),x21),x22))) # 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(get(x),get(y)) # label(congruence). [clausify(1)]. -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. -->*_s0(get(x),tp2(y,z)) | ->_s0(get(cons(u,x)),tp2(y,cons(u,z))) # label(replacement). [clausify(11)]. ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. -->*_s0(sub(x,y),z) | -->*_s0(ssp'(u,z),w) | ->_s0(ssp'(cons(y,u),x),cons(y,w)) # label(replacement). [clausify(12)]. -->*_s0(get(x),tp2(y,z)) | -->*_s0(sub(u,y),w) | -->*_s0(ssp'(cons(v5,z),w),v6) | ->_s0(ssp'(cons(v5,x),u),cons(y,v6)) # label(replacement). [clausify(13)]. ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. -->*_s0(sub(x,y),z) | ->_s0(sub(s(x),s(y)),z) # label(replacement). [clausify(14)]. ->_s0(sub(x,0),x) # label(replacement). [assumption]. ->*_s0(x,x) # label(reflexivity). [assumption]. -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(15)]. -->*_s0(sub(x,y),z) | -->*_s0(ssp'(u,z),w) | -->*_s0(get(u),tp2(v5,v6)) | -->*_s0(sub(x,v5),v7) | -->*_s0(ssp'(cons(y,v6),v7),v8) # label(goal). [deny(16)]. 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, nil, cons, ssp', sub, tp2, get, s ]). After inverse_order: (no changes). Unfolding symbols: (none). Auto_inference settings: % set(neg_binary_resolution). % (HNE depth_diff=-13) % clear(ordered_res). % (HNE depth_diff=-13) % set(ur_resolution). % (HNE depth_diff=-13) % 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: 17 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. kept: 18 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. kept: 19 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. kept: 20 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. kept: 21 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. kept: 22 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. kept: 23 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. kept: 24 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. kept: 25 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. kept: 26 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. kept: 27 -->*_s0(get(x),tp2(y,z)) | ->_s0(get(cons(u,x)),tp2(y,cons(u,z))) # label(replacement). [clausify(11)]. kept: 28 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. kept: 29 -->*_s0(sub(x,y),z) | -->*_s0(ssp'(u,z),w) | ->_s0(ssp'(cons(y,u),x),cons(y,w)) # label(replacement). [clausify(12)]. kept: 30 -->*_s0(get(x),tp2(y,z)) | -->*_s0(sub(u,y),w) | -->*_s0(ssp'(cons(v5,z),w),v6) | ->_s0(ssp'(cons(v5,x),u),cons(y,v6)) # label(replacement). [clausify(13)]. kept: 31 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. kept: 32 -->*_s0(sub(x,y),z) | ->_s0(sub(s(x),s(y)),z) # label(replacement). [clausify(14)]. kept: 33 ->_s0(sub(x,0),x) # label(replacement). [assumption]. kept: 34 ->*_s0(x,x) # label(reflexivity). [assumption]. kept: 35 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(15)]. kept: 36 -->*_s0(sub(x,y),z) | -->*_s0(ssp'(u,z),w) | -->*_s0(get(u),tp2(v5,v6)) | -->*_s0(sub(x,v5),v7) | -->*_s0(ssp'(cons(y,v6),v7),v8) # label(goal) # answer(goal). [deny(16)]. ============================== end of process initial clauses ======== ============================== CLAUSES FOR SEARCH ==================== % Clauses after input processing: formulas(usable). end_of_list. formulas(sos). 17 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. 18 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. 19 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. 20 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. 21 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. 22 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. 23 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. 24 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. 25 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. 26 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. 27 -->*_s0(get(x),tp2(y,z)) | ->_s0(get(cons(u,x)),tp2(y,cons(u,z))) # label(replacement). [clausify(11)]. 28 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 29 -->*_s0(sub(x,y),z) | -->*_s0(ssp'(u,z),w) | ->_s0(ssp'(cons(y,u),x),cons(y,w)) # label(replacement). [clausify(12)]. 30 -->*_s0(get(x),tp2(y,z)) | -->*_s0(sub(u,y),w) | -->*_s0(ssp'(cons(v5,z),w),v6) | ->_s0(ssp'(cons(v5,x),u),cons(y,v6)) # label(replacement). [clausify(13)]. 31 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. 32 -->*_s0(sub(x,y),z) | ->_s0(sub(s(x),s(y)),z) # label(replacement). [clausify(14)]. 33 ->_s0(sub(x,0),x) # label(replacement). [assumption]. 34 ->*_s0(x,x) # label(reflexivity). [assumption]. 35 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(15)]. 36 -->*_s0(sub(x,y),z) | -->*_s0(ssp'(u,z),w) | -->*_s0(get(u),tp2(v5,v6)) | -->*_s0(sub(x,v5),v7) | -->*_s0(ssp'(cons(y,v6),v7),v8) # label(goal) # answer(goal). [deny(16)]. end_of_list. formulas(demodulators). end_of_list. ============================== end of clauses for search ============= ============================== SEARCH ================================ % Starting search at 0.01 seconds. given #1 (I,wt=8): 17 -->_s0(x,y) | ->_s0(get(x),get(y)) # label(congruence). [clausify(1)]. given #2 (I,wt=10): 18 -->_s0(x,y) | ->_s0(ssp'(x,z),ssp'(y,z)) # label(congruence). [clausify(2)]. given #3 (I,wt=10): 19 -->_s0(x,y) | ->_s0(ssp'(z,x),ssp'(z,y)) # label(congruence). [clausify(3)]. given #4 (I,wt=10): 20 -->_s0(x,y) | ->_s0(sub(x,z),sub(y,z)) # label(congruence). [clausify(4)]. given #5 (I,wt=10): 21 -->_s0(x,y) | ->_s0(sub(z,x),sub(z,y)) # label(congruence). [clausify(5)]. given #6 (I,wt=10): 22 -->_s0(x,y) | ->_s0(cons(x,z),cons(y,z)) # label(congruence). [clausify(6)]. given #7 (I,wt=10): 23 -->_s0(x,y) | ->_s0(cons(z,x),cons(z,y)) # label(congruence). [clausify(7)]. given #8 (I,wt=8): 24 -->_s0(x,y) | ->_s0(s(x),s(y)) # label(congruence). [clausify(8)]. given #9 (I,wt=10): 25 -->_s0(x,y) | ->_s0(tp2(x,z),tp2(y,z)) # label(congruence). [clausify(9)]. given #10 (I,wt=10): 26 -->_s0(x,y) | ->_s0(tp2(z,x),tp2(z,y)) # label(congruence). [clausify(10)]. given #11 (I,wt=16): 27 -->*_s0(get(x),tp2(y,z)) | ->_s0(get(cons(u,x)),tp2(y,cons(u,z))) # label(replacement). [clausify(11)]. given #12 (I,wt=8): 28 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. given #13 (I,wt=19): 29 -->*_s0(sub(x,y),z) | -->*_s0(ssp'(u,z),w) | ->_s0(ssp'(cons(y,u),x),cons(y,w)) # label(replacement). [clausify(12)]. given #14 (I,wt=27): 30 -->*_s0(get(x),tp2(y,z)) | -->*_s0(sub(u,y),w) | -->*_s0(ssp'(cons(v5,z),w),v6) | ->_s0(ssp'(cons(v5,x),u),cons(y,v6)) # label(replacement). [clausify(13)]. given #15 (I,wt=5): 31 ->_s0(ssp'(x,0),nil) # label(replacement). [assumption]. given #16 (I,wt=12): 32 -->*_s0(sub(x,y),z) | ->_s0(sub(s(x),s(y)),z) # label(replacement). [clausify(14)]. given #17 (I,wt=5): 33 ->_s0(sub(x,0),x) # label(replacement). [assumption]. given #18 (I,wt=3): 34 ->*_s0(x,x) # label(reflexivity). [assumption]. given #19 (I,wt=9): 35 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(15)]. given #20 (I,wt=28): 36 -->*_s0(sub(x,y),z) | -->*_s0(ssp'(u,z),w) | -->*_s0(get(u),tp2(v5,v6)) | -->*_s0(sub(x,v5),v7) | -->*_s0(ssp'(cons(y,v6),v7),v8) # label(goal) # answer(goal). [deny(16)]. ============================== PROOF ================================= % Proof 1 at 0.01 (+ 0.00) seconds: goal. % Length of proof is 9. % Level of proof is 3. % Maximum clause weight is 28.000. % Given clauses 20. 15 ->_s0(x,y) & ->*_s0(y,z) -> ->*_s0(x,z) # label(transitivity) # label(non_clause). [assumption]. 16 (exists x14 exists x15 exists x16 exists x17 exists x18 exists x19 exists x20 exists x21 exists x22 (->*_s0(sub(x14,x15),x16) & ->*_s0(ssp'(x17,x16),x18) & ->*_s0(get(x17),tp2(x19,x20)) & ->*_s0(sub(x14,x19),x21) & ->*_s0(ssp'(cons(x15,x20),x21),x22))) # label(goal) # label(non_clause) # label(goal). [goal]. 28 ->_s0(get(cons(x,y)),tp2(x,y)) # label(replacement). [assumption]. 34 ->*_s0(x,x) # label(reflexivity). [assumption]. 35 -->_s0(x,y) | -->*_s0(y,z) | ->*_s0(x,z) # label(transitivity). [clausify(15)]. 36 -->*_s0(sub(x,y),z) | -->*_s0(ssp'(u,z),w) | -->*_s0(get(u),tp2(v5,v6)) | -->*_s0(sub(x,v5),v7) | -->*_s0(ssp'(cons(y,v6),v7),v8) # label(goal) # answer(goal). [deny(16)]. 71 ->*_s0(get(cons(x,y)),tp2(x,y)). [ur(35,a,28,a,b,34,a)]. 81 -->*_s0(get(x),tp2(y,z)) # answer(goal). [ur(36,a,34,a,b,34,a,d,34,a,e,34,a)]. 82 $F # answer(goal). [resolve(81,a,71,a)]. ============================== end of proof ========================== ============================== STATISTICS ============================ Given=20. Generated=66. Kept=65. proofs=1. Usable=20. Sos=35. Demods=0. Limbo=9, Disabled=20. Hints=0. Kept_by_rule=0, Deleted_by_rule=0. Forward_subsumed=1. 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=25. Nonunit_bsub_feature_tests=27. Megabytes=0.22. User_CPU=0.01, System_CPU=0.00, Wall_clock=0. ============================== end of statistics ===================== ============================== end of search ========================= THEOREM PROVED Exiting with 1 proof. Process 3317521 exit (max_proofs) Tue Jul 30 09:21:25 2024 The problem is feasible.