TPTP Problem File: SWX198+1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : SWX198+1 : TPTP v9.3.0. Released v9.3.0.
% Domain   : Software Verification
% Problem  : Faulty property about orderedness
% Version  : Especial.
% English  :

% Refs     : [CST26] Claessen et al. (2026), Email to Geoff Sutcliffe
% Source   : [CST26]
% Names    : MergeSort_pallsmall.p [CST26]

% Status   : Theorem
% Rating   : 1.00 v9.3.0
% Syntax   : Number of formulae    :   24 (  19 unt;   0 def)
%            Number of atoms       :   32 (  11 equ)
%            Maximal formula atoms :    3 (   1 avg)
%            Number of connectives :   14 (   6   ~;   0   |;   2   &)
%                                         (   4 <=>;   2  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    6 (   3 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of predicates  :    5 (   4 usr;   0 prp; 1-2 aty)
%            Number of functors    :   10 (  10 usr;   2 con; 0-2 aty)
%            Number of variables   :   33 (  32   !;   1   ?)
% SPC      : FOF_THM_RFO_SEQ

% Comments :
%------------------------------------------------------------------------------
fof(axiom_001,axiom,
    ! [X,X2] : head(cons(X,X2)) = X ).

fof(axiom_002,axiom,
    ! [X,X2] : tail(cons(X,X2)) = X2 ).

fof(axiom_003,axiom,
    ! [X,X2] : nil != cons(X,X2) ).

fof(axiom_004,axiom,
    ! [X] : proj1S(s(X)) = X ).

fof(axiom_005,axiom,
    ! [X] : z != s(X) ).

fof(axiom_006,axiom,
    ~ ltNat(z,z) ).

fof(axiom_007,axiom,
    ! [Z] : ltNat(z,s(Z)) ).

fof(axiom_008,axiom,
    ! [X2] : ~ ltNat(s(X2),z) ).

fof(axiom_009,axiom,
    ! [X2,M] :
      ( ltNat(s(X2),s(M))
    <=> ltNat(X2,M) ) ).

fof(axiom_010,axiom,
    usorted(nil) ).

fof(axiom_011,axiom,
    ! [Y] : usorted(cons(Y,nil)) ).

fof(axiom_012,axiom,
    ! [Y,Y2,Xs] :
      ( usorted(cons(Y,cons(Y2,Xs)))
    <=> ( ltNat(Y,Y2)
        & usorted(cons(Y2,Xs)) ) ) ).

fof(axiom_013,axiom,
    ! [Y] : leqNat(z,Y) ).

fof(axiom_014,axiom,
    ! [Z] : ~ leqNat(s(Z),z) ).

fof(axiom_015,axiom,
    ! [Z,M] :
      ( leqNat(s(Z),s(M))
    <=> leqNat(Z,M) ) ).

fof(axiom_016,axiom,
    lengthNat(nil) = z ).

fof(axiom_017,axiom,
    ! [Y,Xs] : lengthNat(cons(Y,Xs)) = s(lengthNat(Xs)) ).

fof(axiom_018,axiom,
    ! [Y] : append(nil,Y) = Y ).

fof(axiom_019,axiom,
    ! [Y,Z,Xs] : append(cons(Z,Xs),Y) = cons(Z,append(Xs,Y)) ).

fof(axiom_020,axiom,
    rev(nil) = nil ).

fof(axiom_021,axiom,
    ! [Y,Xs] : rev(cons(Y,Xs)) = append(rev(Xs),cons(Y,nil)) ).

fof(axiom_022,axiom,
    ! [X] : allsmall(X,nil) ).

fof(axiom_023,axiom,
    ! [X,Z,Xs] :
      ( allsmall(X,cons(Z,Xs))
    <=> ( ltNat(Z,X)
        & allsmall(X,Xs) ) ) ).

fof(goal_024,conjecture,
    ? [Xs] :
      ~ ( usorted(rev(Xs))
       => ( allsmall(s(z),Xs)
         => leqNat(lengthNat(Xs),s(s(z))) ) ) ).

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