TPTP Problem File: DAT436-2.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : DAT436-2 : TPTP v9.3.1. Released v9.3.0.
% Domain : Data Structures
% Problem : Find X such that selsort(X : [1, 2, 4, 0]) = [0, 1, 2, 3, 4].
% Version : Especial
% English :
% Refs : [Sai24] Saito (2024), Email to Geoff Sutcliffe
% Source : [Sai24]
% Names : selsort_exist.p [Sai24]
% Status : Unsatisfiable
% Rating : 0.78 v9.3.0
% Syntax : Number of clauses : 21 ( 21 unt; 0 nHn; 4 RR)
% Number of literals : 21 ( 21 equ; 1 neg)
% Maximal clause size : 1 ( 1 avg)
% Maximal term depth : 10 ( 2 avg)
% Number of predicates : 1 ( 0 usr; 0 prp; 2-2 aty)
% Number of functors : 14 ( 14 usr; 4 con; 0-4 aty)
% Number of variables : 39 ( 11 sgn)
% SPC : CNF_UNS_RFO_PEQ_UEQ
% Comments : The rules are of TRS_Standard/Rubio_04/selsort.ari from TPDB.
%------------------------------------------------------------------------------
cnf(rule1,axiom,
eq(zero,zero) = true ).
cnf(rule2,axiom,
eq(zero,s(Y)) = false ).
cnf(rule3,axiom,
eq(s(X),zero) = false ).
cnf(rule4,axiom,
eq(s(X),s(Y)) = eq(X,Y) ).
cnf(rule5,axiom,
le(zero,Y) = true ).
cnf(rule6,axiom,
le(s(X),zero) = false ).
cnf(rule7,axiom,
le(s(X),s(Y)) = le(X,Y) ).
cnf(rule8,axiom,
min(cons(zero,nil)) = zero ).
cnf(rule9,axiom,
min(cons(s(N),nil)) = s(N) ).
cnf(rule10,axiom,
min(cons(N,cons(M,L))) = ifmin(le(N,M),cons(N,cons(M,L))) ).
cnf(rule11,axiom,
ifmin(true,cons(N,cons(M,L))) = min(cons(N,L)) ).
cnf(rule12,axiom,
ifmin(false,cons(N,cons(M,L))) = min(cons(M,L)) ).
cnf(rule13,axiom,
replace(N,M,nil) = nil ).
cnf(rule14,axiom,
replace(N,M,cons(K,L)) = ifrepl(eq(N,K),N,M,cons(K,L)) ).
cnf(rule15,axiom,
ifrepl(true,N,M,cons(K,L)) = cons(M,L) ).
cnf(rule16,axiom,
ifrepl(false,N,M,cons(K,L)) = cons(K,replace(N,M,L)) ).
cnf(rule17,axiom,
selsort(nil) = nil ).
cnf(rule18,axiom,
selsort(cons(N,L)) = ifselsort(eq(N,min(cons(N,L))),cons(N,L)) ).
cnf(rule19,axiom,
ifselsort(true,cons(N,L)) = cons(N,selsort(L)) ).
cnf(rule20,axiom,
ifselsort(false,cons(N,L)) = cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) ).
cnf(goal,negated_conjecture,
selsort(cons(X,cons(s(zero),cons(s(s(zero)),cons(s(s(s(s(zero)))),cons(zero,nil)))))) != cons(zero,cons(s(zero),cons(s(s(zero)),cons(s(s(s(zero))),cons(s(s(s(s(zero)))),nil))))) ).
%------------------------------------------------------------------------------