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))))) ).

%------------------------------------------------------------------------------