YES Problem 1: Infeasibility Problem: [(VAR vNonEmpty x y xs vNonEmpty x3 x1) (STRATEGY CONTEXTSENSITIVE (le 1 2) (min 1) (0) (cons 1 2) (fSNonEmpty) (false) (nil) (s 1) (true) ) (RULES le(0,s(y)) -> true le(s(x),s(y)) -> le(x,y) le(x,0) -> false min(cons(x,nil)) -> x min(cons(x,xs)) -> x | min(xs) ->* y, le(x,y) ->* true min(cons(x,xs)) -> y | min(xs) ->* y, le(x,y) ->* false ) ] Infeasibility Conditions: min(nil) ->* x3, le(x1,x3) ->* false Problem 1: Obtaining a model using Mace4: -> Usable Rules: le(0,s(y)) -> true le(s(x),s(y)) -> le(x,y) le(x,0) -> false min(cons(x,nil)) -> x min(cons(x,xs)) -> x | min(xs) ->* y, le(x,y) ->* true min(cons(x,xs)) -> y | min(xs) ->* y, le(x,y) ->* false -> Mace4 Output: ============================== Mace4 ================================= Mace4 (64) version 2009-11A, November 2009. Process 3449932 was started by sandbox on z024.star.cs.uiowa.edu, Tue Jul 30 09:54:40 2024 The command was "./mace4 -c -f /tmp/mace43449921-2.in". ============================== end of head =========================== ============================== INPUT ================================= % Reading from file /tmp/mace43449921-2.in assign(max_seconds,100). formulas(assumptions). ->(x1,y) -> ->(le(x1,x2),le(y,x2)) # label(congruence). ->(x2,y) -> ->(le(x1,x2),le(x1,y)) # label(congruence). ->(x1,y) -> ->(min(x1),min(y)) # label(congruence). ->(x1,y) -> ->(cons(x1,x2),cons(y,x2)) # label(congruence). ->(x2,y) -> ->(cons(x1,x2),cons(x1,y)) # label(congruence). ->(x1,y) -> ->(s(x1),s(y)) # label(congruence). ->(le(0,s(x2)),true) # label(replacement). ->(le(s(x1),s(x2)),le(x1,x2)) # label(replacement). ->(le(x1,0),false) # label(replacement). ->(min(cons(x1,nil)),x1) # label(replacement). ->*(min(x3),x2) & ->*(le(x1,x2),true) -> ->(min(cons(x1,x3)),x1) # label(replacement). ->*(min(x3),x2) & ->*(le(x1,x2),false) -> ->(min(cons(x1,x3)),x2) # label(replacement). ->*(x,x) # label(reflexivity). ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity). end_of_list. formulas(goals). (exists x5 exists x6 (->*(min(nil),x5) & ->*(le(x6,x5),false))) # label(goal). end_of_list. ============================== end of input ========================== ============================== PROCESS NON-CLAUSAL FORMULAS ========== % Formulas that are not ordinary clauses: 1 ->(x1,y) -> ->(le(x1,x2),le(y,x2)) # label(congruence) # label(non_clause). [assumption]. 2 ->(x2,y) -> ->(le(x1,x2),le(x1,y)) # label(congruence) # label(non_clause). [assumption]. 3 ->(x1,y) -> ->(min(x1),min(y)) # label(congruence) # label(non_clause). [assumption]. 4 ->(x1,y) -> ->(cons(x1,x2),cons(y,x2)) # label(congruence) # label(non_clause). [assumption]. 5 ->(x2,y) -> ->(cons(x1,x2),cons(x1,y)) # label(congruence) # label(non_clause). [assumption]. 6 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 7 ->*(min(x3),x2) & ->*(le(x1,x2),true) -> ->(min(cons(x1,x3)),x1) # label(replacement) # label(non_clause). [assumption]. 8 ->*(min(x3),x2) & ->*(le(x1,x2),false) -> ->(min(cons(x1,x3)),x2) # label(replacement) # label(non_clause). [assumption]. 9 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity) # label(non_clause). [assumption]. 10 (exists x5 exists x6 (->*(min(nil),x5) & ->*(le(x6,x5),false))) # label(goal) # label(non_clause) # label(goal). [goal]. ============================== end of process non-clausal formulas === ============================== CLAUSES FOR SEARCH ==================== formulas(mace4_clauses). -->(x,y) | ->(le(x,z),le(y,z)) # label(congruence). -->(x,y) | ->(le(z,x),le(z,y)) # label(congruence). -->(x,y) | ->(min(x),min(y)) # label(congruence). -->(x,y) | ->(cons(x,z),cons(y,z)) # label(congruence). -->(x,y) | ->(cons(z,x),cons(z,y)) # label(congruence). -->(x,y) | ->(s(x),s(y)) # label(congruence). ->(le(0,s(x)),true) # label(replacement). ->(le(s(x),s(y)),le(x,y)) # label(replacement). ->(le(x,0),false) # label(replacement). ->(min(cons(x,nil)),x) # label(replacement). -->*(min(x),y) | -->*(le(z,y),true) | ->(min(cons(z,x)),z) # label(replacement). -->*(min(x),y) | -->*(le(z,y),false) | ->(min(cons(z,x)),y) # label(replacement). ->*(x,x) # label(reflexivity). -->(x,y) | -->*(y,z) | ->*(x,z) # label(transitivity). -->*(min(nil),x) | -->*(le(y,x),false) # label(goal). end_of_list. ============================== end of clauses for search ============= % There are no natural numbers in the input. ============================== DOMAIN SIZE 2 ========================= ============================== MODEL ================================= interpretation( 2, [number=1, seconds=0], [ function(true, [ 0 ]), function(0, [ 0 ]), function(false, [ 0 ]), function(nil, [ 1 ]), function(min(_), [ 0, 1 ]), function(s(_), [ 0, 0 ]), function(le(_,_), [ 0, 1, 0, 1 ]), function(cons(_,_), [ 0, 0, 0, 0 ]), relation(->*(_,_), [ 1, 1, 0, 1 ]), relation(->(_,_), [ 1, 1, 0, 1 ]) ]). ============================== end of model ========================== ============================== STATISTICS ============================ For domain size 2. Current CPU time: 0.00 seconds (total CPU time: 0.00 seconds). Ground clauses: seen=80, kept=76. Selections=17, assignments=22, propagations=24, current_models=1. Rewrite_terms=383, rewrite_bools=231, indexes=72. Rules_from_neg_clauses=9, cross_offs=9. ============================== end of statistics ===================== User_CPU=0.00, System_CPU=0.01, Wall_clock=0. Exiting with 1 model. Process 3449932 exit (max_models) Tue Jul 30 09:54:40 2024 The process finished Tue Jul 30 09:54:40 2024 Mace4 cooked interpretation: % number = 1 % seconds = 0 % Interpretation of size 2 true = 0. 0 = 0. false = 0. nil = 1. min(0) = 0. min(1) = 1. s(0) = 0. s(1) = 0. le(0,0) = 0. le(0,1) = 1. le(1,0) = 0. le(1,1) = 1. cons(0,0) = 0. cons(0,1) = 0. cons(1,0) = 0. cons(1,1) = 0. ->*(0,0). ->*(0,1). - ->*(1,0). ->*(1,1). ->(0,0). ->(0,1). - ->(1,0). ->(1,1). The problem is infeasible.