TPTP Problem File: SWX153_1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : SWX153_1 : TPTP v9.3.0. Released v9.3.0.
% Domain   : Software Verification
% Problem  : Bakery protocol example
% Version  : Especial.
% English  :

% Refs     : [Kru09] Kruglov (2009), Email to Geoff Sutcliffe
% Source   : [Kru09]
% Names    : bakery.dfg [Kru09]

% Status   : Theorem
% Rating   : 0.00 v9.3.0
% Syntax   : Number of formulae    :   28 (   0 unt;   9 typ;   0 def)
%            Number of atoms       :   52 (   6 equ)
%            Maximal formula atoms :    4 (   2 avg)
%            Number of connectives :   33 (   0   ~;   6   |;   7   &)
%                                         (   0 <=>;  20  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    6 (   5 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number arithmetic     :   74 (   8 atm;   6 fun;  20 num;  40 var)
%            Number of types       :    2 (   0 usr;   1 ari)
%            Number of type conns  :   18 (   9   >;   9   *;   0   +;   0  <<)
%            Number of predicates  :   12 (   9 usr;   0 prp; 2-2 aty)
%            Number of functors    :    3 (   0 usr;   2 con; 0-2 aty)
%            Number of variables   :   40 (  38   !;   2   ?;  40   :)
% SPC      : TF0_THM_EQU_ARI

% Comments :
%------------------------------------------------------------------------------
tff(type_sl1sl2,type,
    sl1sl2: ( $int * $int ) > $o ).

tff(type_w1w2,type,
    w1w2: ( $int * $int ) > $o ).

tff(type_cr1cr2,type,
    cr1cr2: ( $int * $int ) > $o ).

tff(type_sl1w2,type,
    sl1w2: ( $int * $int ) > $o ).

tff(type_w1cr2,type,
    w1cr2: ( $int * $int ) > $o ).

tff(type_sl1cr2,type,
    sl1cr2: ( $int * $int ) > $o ).

tff(type_w1sl2,type,
    w1sl2: ( $int * $int ) > $o ).

tff(type_cr1w2,type,
    cr1w2: ( $int * $int ) > $o ).

tff(type_cr1sl2,type,
    cr1sl2: ( $int * $int ) > $o ).

tff(ax1,axiom,
    ! [X: $int,Y: $int] :
      ( sl1sl2(X,Y)
     => sl1w2(X,$sum(X,1)) ) ).

tff(ax2,axiom,
    ! [X: $int,Y: $int] :
      ( ( sl1w2(X,Y)
        & ( ( X = 0 )
          | $less(Y,X) ) )
     => sl1cr2(X,Y) ) ).

tff(ax3,axiom,
    ! [X: $int,Y: $int] :
      ( sl1w2(X,Y)
     => w1w2($sum(Y,1),Y) ) ).

tff(ax4,axiom,
    ! [X: $int,Y: $int] :
      ( ( w1w2(X,Y)
        & ( ( X = 0 )
          | $less(Y,X) ) )
     => w1cr2(X,Y) ) ).

tff(ax5,axiom,
    ! [X: $int,Y: $int] :
      ( sl1cr2(X,Y)
     => w1cr2($sum(Y,1),Y) ) ).

tff(ax6,axiom,
    ! [X: $int,Y: $int] :
      ( sl1cr2(X,Y)
     => sl1sl2(X,0) ) ).

tff(ax7,axiom,
    ! [X: $int,Y: $int] :
      ( ( w1cr2(X,Y)
        & ( ( Y = 0 )
          | $less(X,Y) ) )
     => cr1cr2(X,Y) ) ).

tff(ax8,axiom,
    ! [X: $int,Y: $int] :
      ( w1cr2(X,Y)
     => w1sl2(X,0) ) ).

tff(ax9,axiom,
    ! [X: $int,Y: $int] :
      ( cr1cr2(X,Y)
     => sl1cr2(0,Y) ) ).

%-------- Bottom part ----------
tff(ax10,axiom,
    ! [X: $int,Y: $int] :
      ( sl1sl2(X,Y)
     => w1sl2($sum(Y,1),Y) ) ).

tff(ax11,axiom,
    ! [X: $int,Y: $int] :
      ( ( w1sl2(X,Y)
        & ( ( Y = 0 )
          | $less(X,Y) ) )
     => cr1sl2(X,Y) ) ).

tff(ax12,axiom,
    ! [X: $int,Y: $int] :
      ( w1sl2(X,Y)
     => w1w2(X,$sum(X,1)) ) ).

tff(ax13,axiom,
    ! [X: $int,Y: $int] :
      ( ( w1w2(X,Y)
        & ( ( Y = 0 )
          | $less(X,Y) ) )
     => cr1w2(X,Y) ) ).

tff(ax14,axiom,
    ! [X: $int,Y: $int] :
      ( cr1sl2(X,Y)
     => cr1w2(X,$sum(X,1)) ) ).

tff(ax15,axiom,
    ! [X: $int,Y: $int] :
      ( cr1sl2(X,Y)
     => sl1sl2(0,Y) ) ).

tff(ax16,axiom,
    ! [X: $int,Y: $int] :
      ( ( cr1w2(X,Y)
        & ( ( X = 0 )
          | $less(Y,X) ) )
     => cr1cr2(X,Y) ) ).

tff(ax17,axiom,
    ! [X: $int,Y: $int] :
      ( cr1w2(X,Y)
     => sl1w2(0,Y) ) ).

tff(ax18,axiom,
    ! [X: $int,Y: $int] :
      ( cr1cr2(X,Y)
     => cr1sl2(X,0) ) ).

tff(conj1,conjecture,
    ( ! [X: $int,Y: $int] :
        ( ( $greatereq(X,0)
          & $greatereq(Y,0) )
       => sl1sl2(X,Y) )
   => ? [U: $int,V: $int] : cr1w2(U,V) ) ).

%------------------------------------------------------------------------------
% End of file
%------------------------------------------------------------------------------