TPTP Problem File: SWX005_1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : SWX005_1 : TPTP v9.1.0. Released v9.1.0.
% Domain   : Software Verification
% Problem  : maximum-4
% Version  : Especial.
% English  :

% Refs     : [Kot17] Kotelnikov (2017), Email to Geoff Sutcliffe
% Source   : [Kot17]
% Names    : maximum-4 [Kot17]

% Status   : Theorem
% Rating   : ? v9.1.0
% Syntax   : Number of formulae    :   14 (   1 unt;   8 typ;   0 def)
%            Number of atoms       :   14 (   6 equ)
%            Maximal formula atoms :    4 (   2 avg)
%            Number of connectives :    9 (   1   ~;   1   |;   2   &)
%                                         (   0 <=>;   5  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    7 (   5 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of X terms     :   12 (   0  [];   0 ite;  12 let)
%            Number arithmetic     :   19 (   7 atm;   0 fun;   3 num;   9 var)
%            Number of types       :    3 (   1 usr;   1 ari)
%            Number of type conns  :    5 (   2   >;   3   *;   0   +;   0  <<)
%            Number of predicates  :    6 (   1 usr;   2 prp; 0-2 aty)
%            Number of functors    :    9 (   6 usr;   6 con; 0-3 aty)
%            Number of variables   :   13 (  13   !;   0   ?;  13   :)
% SPC      : TX0_THM_EQU_ARI

% Comments : This file was generated by Voogie.
%------------------------------------------------------------------------------
tff(array_int_int,type,
    array_int_int: $tType ).

tff(select_int_int,type,
    select_int_int: ( array_int_int * $int ) > $int ).

tff(store_int_int,type,
    store_int_int: ( array_int_int * $int * $int ) > array_int_int ).

tff(a,type,
    a: array_int_int ).

tff(bad,type,
    bad: $o ).

tff(i,type,
    i: $int ).

tff(max,type,
    max: $int ).

tff(n,type,
    n: $int ).

tff(voogie_precondition_1,axiom,
    ! [A: array_int_int,V: $int,I: $int,J: $int] :
      ( ( I = J )
     => ( select_int_int(store_int_int(A,I,V),J) = V ) ) ).

tff(voogie_precondition_2,axiom,
    ! [A: array_int_int,V: $int,I: $int,J: $int] :
      ( ( I != J )
     => ( select_int_int(store_int_int(A,I,V),J) = select_int_int(A,J) ) ) ).

tff(voogie_precondition_3,axiom,
    ! [A: array_int_int,B: array_int_int] :
      ( ! [I: $int] : ( select_int_int(A,I) = select_int_int(B,I) )
     => ( A = B ) ) ).

tff(voogie_precondition_4,axiom,
    $greater(n,0) ).

tff(voogie_precondition_5,axiom,
    ! [J: $int] :
      ( ( $greatereq(J,0)
        & $less(J,i) )
     => $greatereq(max,select_int_int(a,J)) ) ).

tff(voogie_conjecture,conjecture,
    $let(
      bad: $o,
      bad:= 
        $ite(~ $less(i,n),$true,bad),
      $let(
        max: $int,
        max:= 
          $ite($less(max,select_int_int(a,i)),select_int_int(a,i),max),
        $let(
          i: $int,
          i:= $sum(i,1),
          $let(
            bad: $o,
            bad:= 
              $ite(~ $less(i,n),$true,bad),
            $let(
              max: $int,
              max:= 
                $ite($less(max,select_int_int(a,i)),select_int_int(a,i),max),
              $let(
                i: $int,
                i:= $sum(i,1),
                $let(
                  bad: $o,
                  bad:= 
                    $ite(~ $less(i,n),$true,bad),
                  $let(
                    max: $int,
                    max:= 
                      $ite($less(max,select_int_int(a,i)),select_int_int(a,i),max),
                    $let(
                      i: $int,
                      i:= $sum(i,1),
                      $let(
                        bad: $o,
                        bad:= 
                          $ite(~ $less(i,n),$true,bad),
                        $let(
                          max: $int,
                          max:= 
                            $ite($less(max,select_int_int(a,i)),select_int_int(a,i),max),
                          $let(
                            i: $int,
                            i:= $sum(i,1),
                            ( bad
                            | ! [J: $int] :
                                ( ( $greatereq(J,0)
                                  & $less(J,i) )
                               => $greatereq(max,select_int_int(a,J)) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).

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