TPTP Axioms File: DAT004_0.ax


%------------------------------------------------------------------------------
% File     : DAT004_0 : TPTP v9.0.0. Released v5.5.0.
% Domain   : Data Structures
% Axioms   : Array data types
% Version  : [KIV] axioms.
% English  :

% Refs     : [Rei99] Reif (1999), Email to Geoff Sutcliffe
% Source   : [Rei99]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of formulae    :   11 (   3 unt;   6 typ;   0 def)
%            Number of atoms       :    7 (   7 equ)
%            Maximal formula atoms :    2 (   0 avg)
%            Number of connectives :    3 (   1   ~;   0   |;   0   &)
%                                         (   1 <=>;   1  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    7 (   5 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number arithmetic     :    6 (   0 atm;   0 fun;   0 num;   6 var)
%            Number of types       :    3 (   2 usr;   1 ari)
%            Number of type conns  :    5 (   2   >;   3   *;   0   +;   0  <<)
%            Number of predicates  :    1 (   0 usr;   0 prp; 2-2 aty)
%            Number of functors    :    4 (   4 usr;   2 con; 0-3 aty)
%            Number of variables   :   15 (  15   !;   0   ?;  15   :)
% SPC      : TFF_SAT_EQU_ARI

% Comments : From: /home/magenta/KIV/newtppl/case-studies/hashtable/
%            specifications/array/
%------------------------------------------------------------------------------
tff(data_type,type,
    data: $tType ).

tff(array_type,type,
    array: $tType ).

tff(mkarray_type,type,
    mkarray: array ).

tff(none_type,type,
    none: data ).

tff(put_type,type,
    put: ( array * $int * data ) > array ).

tff(get_type,type,
    get: ( array * $int ) > data ).

tff(ax_17,axiom,
    ! [M: $int] : ( get(mkarray,M) = none ) ).

tff(ax_18,axiom,
    ! [Ar: array,M: $int,D: data] : ( get(put(Ar,M,D),M) = D ) ).

tff(ax_19,axiom,
    ! [N: $int,D: data,Ar: array,M: $int] :
      ( ( M != N )
     => ( get(put(Ar,N,D),M) = get(Ar,M) ) ) ).

tff(ax_20,axiom,
    ! [D2: data,Ar: array,M: $int,D1: data] : ( put(put(Ar,M,D2),M,D1) = put(Ar,M,D1) ) ).

tff(ax_21,axiom,
    ! [Ar: array,Ar0: array] :
      ( ( Ar = Ar0 )
    <=> ! [N: $int] : ( get(Ar,N) = get(Ar0,N) ) ) ).

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