YES Problem 1: Infeasibility Problem: [(VAR vNonEmpty y x z vNonEmpty x y z) (STRATEGY CONTEXTSENSITIVE (a) (f 1 2) (g 1 2) (k 1) (b) (fSNonEmpty) (h 1) ) (RULES a -> b f(y,a) -> g(x,x) | h(z) ->* x, y ->* k(z), x ->* b f(y,z) -> k(x) | z ->* h(a), y ->* k(a), a ->* x g(x,x) -> a k(x) -> a k(x) -> b k(x) -> h(x) ) ] Infeasibility Conditions: f(x,y) ->* g(z,z) Problem 1: Obtaining a model using Mace4: -> Usable Rules: a -> b f(y,a) -> g(x,x) | h(z) ->* x, y ->* k(z), x ->* b f(y,z) -> k(x) | z ->* h(a), y ->* k(a), a ->* x g(x,x) -> a k(x) -> a k(x) -> b k(x) -> h(x) -> Mace4 Output: ============================== Mace4 ================================= Mace4 (64) version 2009-11A, November 2009. Process 3232404 was started by sandbox on z029.star.cs.uiowa.edu, Tue Jul 30 08:54:55 2024 The command was "./mace4 -c -f /tmp/mace43232393-2.in". ============================== end of head =========================== ============================== INPUT ================================= % Reading from file /tmp/mace43232393-2.in assign(max_seconds,100). formulas(assumptions). ->(x1,y) -> ->(f(x1,x2),f(y,x2)) # label(congruence). ->(x2,y) -> ->(f(x1,x2),f(x1,y)) # label(congruence). ->(x1,y) -> ->(g(x1,x2),g(y,x2)) # label(congruence). ->(x2,y) -> ->(g(x1,x2),g(x1,y)) # label(congruence). ->(x1,y) -> ->(k(x1),k(y)) # label(congruence). ->(x1,y) -> ->(h(x1),h(y)) # label(congruence). ->(a,b) # label(replacement). ->*(h(x3),x2) & ->*(x1,k(x3)) & ->*(x2,b) -> ->(f(x1,a),g(x2,x2)) # label(replacement). ->*(x3,h(a)) & ->*(x1,k(a)) & ->*(a,x2) -> ->(f(x1,x3),k(x2)) # label(replacement). ->(g(x2,x2),a) # label(replacement). ->(k(x2),a) # label(replacement). ->(k(x2),b) # label(replacement). ->(k(x2),h(x2)) # label(replacement). ->*(x,x) # label(reflexivity). ->(x,y) & ->*(y,z) -> ->*(x,z) # label(transitivity). end_of_list. formulas(goals). (exists x5 exists x6 exists x7 ->*(f(x5,x6),g(x7,x7))) # label(goal). end_of_list. ============================== end of input ========================== ============================== PROCESS NON-CLAUSAL FORMULAS ========== % Formulas that are not ordinary clauses: 1 ->(x1,y) -> ->(f(x1,x2),f(y,x2)) # label(congruence) # label(non_clause). [assumption]. 2 ->(x2,y) -> ->(f(x1,x2),f(x1,y)) # label(congruence) # label(non_clause). [assumption]. 3 ->(x1,y) -> ->(g(x1,x2),g(y,x2)) # label(congruence) # label(non_clause). [assumption]. 4 ->(x2,y) -> ->(g(x1,x2),g(x1,y)) # label(congruence) # label(non_clause). [assumption]. 5 ->(x1,y) -> ->(k(x1),k(y)) # label(congruence) # label(non_clause). [assumption]. 6 ->(x1,y) -> ->(h(x1),h(y)) # label(congruence) # label(non_clause). [assumption]. 7 ->*(h(x3),x2) & ->*(x1,k(x3)) & ->*(x2,b) -> ->(f(x1,a),g(x2,x2)) # label(replacement) # label(non_clause). [assumption]. 8 ->*(x3,h(a)) & ->*(x1,k(a)) & ->*(a,x2) -> ->(f(x1,x3),k(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 exists x7 ->*(f(x5,x6),g(x7,x7))) # label(goal) # label(non_clause) # label(goal). [goal]. ============================== end of process non-clausal formulas === ============================== CLAUSES FOR SEARCH ==================== formulas(mace4_clauses). -->(x,y) | ->(f(x,z),f(y,z)) # label(congruence). -->(x,y) | ->(f(z,x),f(z,y)) # label(congruence). -->(x,y) | ->(g(x,z),g(y,z)) # label(congruence). -->(x,y) | ->(g(z,x),g(z,y)) # label(congruence). -->(x,y) | ->(k(x),k(y)) # label(congruence). -->(x,y) | ->(h(x),h(y)) # label(congruence). ->(a,b) # label(replacement). -->*(h(x),y) | -->*(z,k(x)) | -->*(y,b) | ->(f(z,a),g(y,y)) # label(replacement). -->*(x,h(a)) | -->*(y,k(a)) | -->*(a,z) | ->(f(y,x),k(z)) # label(replacement). ->(g(x,x),a) # label(replacement). ->(k(x),a) # label(replacement). ->(k(x),b) # label(replacement). ->(k(x),h(x)) # label(replacement). ->*(x,x) # label(reflexivity). -->(x,y) | -->*(y,z) | ->*(x,z) # label(transitivity). -->*(f(x,y),g(z,z)) # 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=83, kept=79. Selections=16, assignments=31, propagations=65, current_models=0. Rewrite_terms=644, rewrite_bools=534, indexes=112. Rules_from_neg_clauses=31, cross_offs=31. ============================== end of statistics ===================== ============================== DOMAIN SIZE 3 ========================= ============================== MODEL ================================= interpretation( 3, [number=1, seconds=0], [ function(a, [ 0 ]), function(b, [ 0 ]), function(k(_), [ 0, 0, 0 ]), function(h(_), [ 1, 1, 1 ]), function(f(_,_), [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]), function(g(_,_), [ 2, 2, 2, 2, 2, 2, 2, 2, 2 ]), relation(->*(_,_), [ 1, 1, 0, 0, 1, 0, 1, 1, 1 ]), relation(->(_,_), [ 1, 1, 0, 0, 1, 0, 1, 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=250, kept=241. Selections=11, assignments=14, propagations=47, current_models=1. Rewrite_terms=851, rewrite_bools=565, indexes=212. Rules_from_neg_clauses=19, cross_offs=46. ============================== end of statistics ===================== User_CPU=0.01, System_CPU=0.00, Wall_clock=0. Exiting with 1 model. Process 3232404 exit (max_models) Tue Jul 30 08:54:55 2024 The process finished Tue Jul 30 08:54:55 2024 Mace4 cooked interpretation: % number = 1 % seconds = 0 % Interpretation of size 3 a = 0. b = 0. k(0) = 0. k(1) = 0. k(2) = 0. h(0) = 1. h(1) = 1. h(2) = 1. f(0,0) = 0. f(0,1) = 0. f(0,2) = 0. f(1,0) = 0. f(1,1) = 0. f(1,2) = 0. f(2,0) = 0. f(2,1) = 0. f(2,2) = 0. g(0,0) = 2. g(0,1) = 2. g(0,2) = 2. g(1,0) = 2. g(1,1) = 2. g(1,2) = 2. g(2,0) = 2. g(2,1) = 2. g(2,2) = 2. ->*(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.