YES Problem 1: Infeasibility Problem: [(VAR vNonEmpty m n vNonEmpty) (STRATEGY CONTEXTSENSITIVE (ack 1 2) (isNat 1) (seven) (O) (fSNonEmpty) (false) (s 1) (true) ) (RULES ack(O,n) -> s(n) ack(s(m),O) -> ack(m,s(O)) ack(s(m),s(n)) -> ack(m,ack(s(m),n)) isNat(O) -> true isNat(false) -> false isNat(s(m)) -> isNat(m) isNat(true) -> false seven -> s(s(s(s(s(s(s(O))))))) ) ] Infeasibility Conditions: isNat(ack(seven,seven)) ->* false Problem 1: Obtaining a model using Mace4: -> Usable Rules: ack(O,n) -> s(n) ack(s(m),O) -> ack(m,s(O)) ack(s(m),s(n)) -> ack(m,ack(s(m),n)) isNat(O) -> true isNat(false) -> false isNat(s(m)) -> isNat(m) isNat(true) -> false seven -> s(s(s(s(s(s(s(O))))))) -> Mace4 Output: ============================== Mace4 ================================= Mace4 (64) version 2009-11A, November 2009. Process 3206038 was started by sandbox on z029.star.cs.uiowa.edu, Tue Jul 30 08:46:25 2024 The command was "./mace4 -c -f /tmp/mace43206027-2.in". ============================== end of head =========================== ============================== INPUT ================================= % Reading from file /tmp/mace43206027-2.in assign(max_seconds,100). formulas(assumptions). ->(x1,y) -> ->(ack(x1,x2),ack(y,x2)) # label(congruence). ->(x2,y) -> ->(ack(x1,x2),ack(x1,y)) # label(congruence). ->(x1,y) -> ->(isNat(x1),isNat(y)) # label(congruence). ->(x1,y) -> ->(s(x1),s(y)) # label(congruence). ->(ack(O,x2),s(x2)) # label(replacement). ->(ack(s(x1),O),ack(x1,s(O))) # label(replacement). ->(ack(s(x1),s(x2)),ack(x1,ack(s(x1),x2))) # label(replacement). ->(isNat(O),true) # label(replacement). ->(isNat(false),false) # label(replacement). ->(isNat(s(x1)),isNat(x1)) # label(replacement). ->(isNat(true),false) # label(replacement). ->(seven,s(s(s(s(s(s(s(O)))))))) # label(replacement). ->*(x,x) # label(reflexivity). ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity). end_of_list. formulas(goals). ->*(isNat(ack(seven,seven)),false) # label(goal). end_of_list. ============================== end of input ========================== ============================== PROCESS NON-CLAUSAL FORMULAS ========== % Formulas that are not ordinary clauses: 1 ->(x1,y) -> ->(ack(x1,x2),ack(y,x2)) # label(congruence) # label(non_clause). [assumption]. 2 ->(x2,y) -> ->(ack(x1,x2),ack(x1,y)) # label(congruence) # label(non_clause). [assumption]. 3 ->(x1,y) -> ->(isNat(x1),isNat(y)) # label(congruence) # label(non_clause). [assumption]. 4 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 5 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity) # label(non_clause). [assumption]. 6 ->*(isNat(ack(seven,seven)),false) # label(goal) # label(non_clause) # label(goal). [goal]. ============================== end of process non-clausal formulas === ============================== CLAUSES FOR SEARCH ==================== formulas(mace4_clauses). -->(x,y) | ->(ack(x,z),ack(y,z)) # label(congruence). -->(x,y) | ->(ack(z,x),ack(z,y)) # label(congruence). -->(x,y) | ->(isNat(x),isNat(y)) # label(congruence). -->(x,y) | ->(s(x),s(y)) # label(congruence). ->(ack(O,x),s(x)) # label(replacement). ->(ack(s(x),O),ack(x,s(O))) # label(replacement). ->(ack(s(x),s(y)),ack(x,ack(s(x),y))) # label(replacement). ->(isNat(O),true) # label(replacement). ->(isNat(false),false) # label(replacement). ->(isNat(s(x)),isNat(x)) # label(replacement). ->(isNat(true),false) # label(replacement). ->(seven,s(s(s(s(s(s(s(O)))))))) # label(replacement). ->*(x,x) # label(reflexivity). -->(x,y) | -->*(y,z) | ->*(x,z) # label(transitivity). -->*(isNat(ack(seven,seven)),false) # label(goal). end_of_list. ============================== end of clauses for search ============= % There are no natural numbers in the input. ============================== DOMAIN SIZE 2 ========================= ============================== STATISTICS ============================ For domain size 2. Current CPU time: 0.00 seconds (total CPU time: 0.01 seconds). Ground clauses: seen=49, kept=45. Selections=65, assignments=129, propagations=153, current_models=0. Rewrite_terms=1389, rewrite_bools=651, indexes=408. Rules_from_neg_clauses=36, cross_offs=36. ============================== end of statistics ===================== ============================== DOMAIN SIZE 3 ========================= ============================== MODEL ================================= interpretation( 3, [number=1, seconds=0], [ function(seven, [ 0 ]), function(O, [ 0 ]), function(false, [ 1 ]), function(true, [ 2 ]), function(isNat(_), [ 2, 1, 1 ]), function(s(_), [ 0, 1, 1 ]), function(ack(_,_), [ 0, 1, 1, 0, 0, 0, 0, 0, 0 ]), relation(->*(_,_), [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ]), relation(->(_,_), [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ]) ]). ============================== end of model ========================== ============================== STATISTICS ============================ For domain size 3. Current CPU time: 0.00 seconds (total CPU time: 0.01 seconds). Ground clauses: seen=125, kept=116. Selections=102, assignments=270, propagations=565, current_models=1. Rewrite_terms=3656, rewrite_bools=2448, indexes=1047. Rules_from_neg_clauses=62, cross_offs=165. ============================== end of statistics ===================== User_CPU=0.01, System_CPU=0.00, Wall_clock=0. Exiting with 1 model. Process 3206038 exit (max_models) Tue Jul 30 08:46:25 2024 The process finished Tue Jul 30 08:46:25 2024 Mace4 cooked interpretation: % number = 1 % seconds = 0 % Interpretation of size 3 seven = 0. O = 0. false = 1. true = 2. isNat(0) = 2. isNat(1) = 1. isNat(2) = 1. s(0) = 0. s(1) = 1. s(2) = 1. ack(0,0) = 0. ack(0,1) = 1. ack(0,2) = 1. ack(1,0) = 0. ack(1,1) = 0. ack(1,2) = 0. ack(2,0) = 0. ack(2,1) = 0. ack(2,2) = 0. ->*(0,0). - ->*(0,1). - ->*(0,2). - ->*(1,0). ->*(1,1). - ->*(1,2). - ->*(2,0). - ->*(2,1). ->*(2,2). ->(0,0). - ->(0,1). - ->(0,2). - ->(1,0). ->(1,1). - ->(1,2). - ->(2,0). - ->(2,1). ->(2,2). The problem is infeasible.