TPTP Problem File: SWX199+1.p

View Solutions - Solve Problem

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

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

% Status   : Theorem
% Rating   : 0.43 v9.3.0
% Syntax   : Number of formulae    :   13 (   9 unt;   0 def)
%            Number of atoms       :   18 (  12 equ)
%            Maximal formula atoms :    3 (   1 avg)
%            Number of connectives :   10 (   5   ~;   0   |;   0   &)
%                                         (   1 <=>;   4  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    7 (   4 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :    2 (   1 usr;   0 prp; 2-2 aty)
%            Number of functors    :    8 (   8 usr;   2 con; 0-2 aty)
%            Number of variables   :   26 (  23   !;   3   ?)
% 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,
    ! [Y] : leqNat(z,Y) ).

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

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

fof(axiom_009,axiom,
    ! [Y] : merge(nil,Y) = Y ).

fof(axiom_010,axiom,
    ! [Z,Xs] : merge(cons(Z,Xs),nil) = cons(Z,Xs) ).

fof(axiom_011,axiom,
    ! [Z,Xs,Y2,Ys] :
      ( leqNat(Z,Y2)
     => merge(cons(Z,Xs),cons(Y2,Ys)) = cons(Z,merge(Xs,cons(Y2,Ys))) ) ).

fof(axiom_012,axiom,
    ! [Z,Xs,Y2,Ys] :
      ( ~ leqNat(Z,Y2)
     => merge(cons(Z,Xs),cons(Y2,Ys)) = cons(Y2,merge(cons(Z,Xs),Ys)) ) ).

fof(goal_013,conjecture,
    ? [Xs,Ys,Zs] :
      ~ ( merge(Xs,Ys) = merge(Ys,Xs)
       => ( merge(Xs,Zs) = merge(Zs,Xs)
         => merge(Ys,Zs) = merge(Zs,Ys) ) ) ).

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