## TPTP Axioms File: DAT004=0.ax

```%------------------------------------------------------------------------------
% File     : DAT004=0 : TPTP v7.5.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 unit;   6 type)
%            Number of atoms       :    7 (   7 equality)
%            Maximal formula depth :    7 (   4 average)
%            Number of connectives :    3 (   1   ~;   0   |;   0   &)
%                                         (   1 <=>;   1  =>;   0  <=;   0 <~>)
%                                         (   0  ~|;   0  ~&)
%            Number of type conns  :    5 (   2   >;   3   *;   0   +;   0  <<)
%            Number of predicates  :    9 (   8 propositional; 0-2 arity)
%            Number of functors    :    4 (   2 constant; 0-3 arity)
%            Number of variables   :   15 (   0 sgn;  15   !;   0   ?)
%                                         (  15   :;   0  !>;   0  ?*)
%            Maximal term depth    :    3 (   2 average)
%            Arithmetic symbols    :    6 (   0 prd;   0 fun;   0 num;   6 var)
% SPC      : TFF_SAT_EQU_ARI

%            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) ) )).

%------------------------------------------------------------------------------
```