YES Problem 1: Infeasibility Problem: [(VAR vNonEmpty x y vNonEmpty x2 x) (STRATEGY CONTEXTSENSITIVE (add 1 2) (gcd 1 2) (0) (fSNonEmpty) (false) (leq 1 2) (s 1) ) (RULES add(0,y) -> y add(s(x),y) -> s(add(x,y)) gcd(add(x,y),y) -> gcd(x,y) gcd(0,x) -> x gcd(x,0) -> x gcd(x,y) -> gcd(y,x) | leq(y,x) ->* false gcd(y,add(x,y)) -> gcd(x,y) ) ] Infeasibility Conditions: leq(x2,add(x,x2)) ->* false Problem 1: Obtaining a model using Mace4: -> Usable Rules: add(0,y) -> y add(s(x),y) -> s(add(x,y)) gcd(add(x,y),y) -> gcd(x,y) gcd(0,x) -> x gcd(x,0) -> x gcd(x,y) -> gcd(y,x) | leq(y,x) ->* false gcd(y,add(x,y)) -> gcd(x,y) -> Mace4 Output: ============================== Mace4 ================================= Mace4 (64) version 2009-11A, November 2009. Process 3187348 was started by sandbox2 on z029.star.cs.uiowa.edu, Tue Jul 30 08:40:55 2024 The command was "./mace4 -c -f /tmp/mace43187335-2.in". ============================== end of head =========================== ============================== INPUT ================================= % Reading from file /tmp/mace43187335-2.in assign(max_seconds,100). formulas(assumptions). ->(x1,y) -> ->(add(x1,x2),add(y,x2)) # label(congruence). ->(x2,y) -> ->(add(x1,x2),add(x1,y)) # label(congruence). ->(x1,y) -> ->(gcd(x1,x2),gcd(y,x2)) # label(congruence). ->(x2,y) -> ->(gcd(x1,x2),gcd(x1,y)) # label(congruence). ->(x1,y) -> ->(leq(x1,x2),leq(y,x2)) # label(congruence). ->(x2,y) -> ->(leq(x1,x2),leq(x1,y)) # label(congruence). ->(x1,y) -> ->(s(x1),s(y)) # label(congruence). ->(add(0,x2),x2) # label(replacement). ->(add(s(x1),x2),s(add(x1,x2))) # label(replacement). ->(gcd(add(x1,x2),x2),gcd(x1,x2)) # label(replacement). ->(gcd(0,x1),x1) # label(replacement). ->(gcd(x1,0),x1) # label(replacement). ->*(leq(x2,x1),false) -> ->(gcd(x1,x2),gcd(x2,x1)) # label(replacement). ->(gcd(x2,add(x1,x2)),gcd(x1,x2)) # label(replacement). ->*(x,x) # label(reflexivity). ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity). end_of_list. formulas(goals). (exists x4 exists x5 ->*(leq(x4,add(x5,x4)),false)) # label(goal). end_of_list. ============================== end of input ========================== ============================== PROCESS NON-CLAUSAL FORMULAS ========== % Formulas that are not ordinary clauses: 1 ->(x1,y) -> ->(add(x1,x2),add(y,x2)) # label(congruence) # label(non_clause). [assumption]. 2 ->(x2,y) -> ->(add(x1,x2),add(x1,y)) # label(congruence) # label(non_clause). [assumption]. 3 ->(x1,y) -> ->(gcd(x1,x2),gcd(y,x2)) # label(congruence) # label(non_clause). [assumption]. 4 ->(x2,y) -> ->(gcd(x1,x2),gcd(x1,y)) # label(congruence) # label(non_clause). [assumption]. 5 ->(x1,y) -> ->(leq(x1,x2),leq(y,x2)) # label(congruence) # label(non_clause). [assumption]. 6 ->(x2,y) -> ->(leq(x1,x2),leq(x1,y)) # label(congruence) # label(non_clause). [assumption]. 7 ->(x1,y) -> ->(s(x1),s(y)) # label(congruence) # label(non_clause). [assumption]. 8 ->*(leq(x2,x1),false) -> ->(gcd(x1,x2),gcd(x2,x1)) # label(replacement) # label(non_clause). [assumption]. 9 ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity) # label(non_clause). [assumption]. 10 (exists x4 exists x5 ->*(leq(x4,add(x5,x4)),false)) # label(goal) # label(non_clause) # label(goal). [goal]. ============================== end of process non-clausal formulas === ============================== CLAUSES FOR SEARCH ==================== formulas(mace4_clauses). -->(x,y) | ->(add(x,z),add(y,z)) # label(congruence). -->(x,y) | ->(add(z,x),add(z,y)) # label(congruence). -->(x,y) | ->(gcd(x,z),gcd(y,z)) # label(congruence). -->(x,y) | ->(gcd(z,x),gcd(z,y)) # label(congruence). -->(x,y) | ->(leq(x,z),leq(y,z)) # label(congruence). -->(x,y) | ->(leq(z,x),leq(z,y)) # label(congruence). -->(x,y) | ->(s(x),s(y)) # label(congruence). ->(add(0,x),x) # label(replacement). ->(add(s(x),y),s(add(x,y))) # label(replacement). ->(gcd(add(x,y),y),gcd(x,y)) # label(replacement). ->(gcd(0,x),x) # label(replacement). ->(gcd(x,0),x) # label(replacement). -->*(leq(x,y),false) | ->(gcd(y,x),gcd(x,y)) # label(replacement). ->(gcd(x,add(y,x)),gcd(y,x)) # label(replacement). ->*(x,x) # label(reflexivity). -->(x,y) | -->*(y,z) | ->*(x,z) # label(transitivity). -->*(leq(x,add(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(0, [ 0 ]), function(false, [ 0 ]), function(s(_), [ 0, 0 ]), function(add(_,_), [ 0, 0, 0, 0 ]), function(gcd(_,_), [ 0, 0, 0, 0 ]), function(leq(_,_), [ 1, 1, 1, 1 ]), 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.01 seconds). Ground clauses: seen=88, kept=84. Selections=11, assignments=11, propagations=13, current_models=1. Rewrite_terms=184, rewrite_bools=121, indexes=23. Rules_from_neg_clauses=5, cross_offs=5. ============================== end of statistics ===================== User_CPU=0.01, System_CPU=0.00, Wall_clock=0. Exiting with 1 model. Process 3187348 exit (max_models) Tue Jul 30 08:40:55 2024 The process finished Tue Jul 30 08:40:55 2024 Mace4 cooked interpretation: % number = 1 % seconds = 0 % Interpretation of size 2 0 = 0. false = 0. s(0) = 0. s(1) = 0. add(0,0) = 0. add(0,1) = 0. add(1,0) = 0. add(1,1) = 0. gcd(0,0) = 0. gcd(0,1) = 0. gcd(1,0) = 0. gcd(1,1) = 0. leq(0,0) = 1. leq(0,1) = 1. leq(1,0) = 1. leq(1,1) = 1. ->*(0,0). ->*(0,1). - ->*(1,0). ->*(1,1). ->(0,0). ->(0,1). - ->(1,0). ->(1,1). The problem is infeasible.