%------------------------------------------------------------------------------ % File : DAT003=0 : TPTP v7.2.0. Released v5.0.0. % Domain : Data Structures % Axioms : Pointer data types % Version : [Wal10] axioms. % English : % Refs : [PW06] Prevosto & Waldmann (2006), SPASS+T % : [Wal10] Waldmann (2010), Email to Geoff Sutcliffe % Source : [Wal10] % Names : % Status : Satisfiable % Syntax : Number of formulae : 20 ( 0 unit; 7 type) % Number of atoms : 31 ( 6 equality) % Maximal formula depth : 5 ( 3 average) % Number of connectives : 27 ( 9 ~; 0 |; 5 &) % ( 0 <=>; 13 =>; 0 <=; 0 <~>) % ( 0 ~|; 0 ~&) % Number of type conns : 6 ( 6 >; 0 *; 0 +; 0 <<) % Number of predicates : 13 ( 10 propositional; 0-2 arity) % Number of functors : 8 ( 2 constant; 0-2 arity) % Number of variables : 13 ( 0 sgn; 13 !; 0 ?) % ( 13 :; 0 !>; 0 ?*) % Maximal term depth : 4 ( 2 average) % Arithmetic symbols : 4 ( 1 prd; 1 fun; 2 num; 0 var) % SPC : TFF_SAT_RFO_SEQ_SAR % Comments : %------------------------------------------------------------------------------ tff(record_type,type,( record: $tType )). tff(length_type,type,( length: record > $int )). tff(next_type,type,( next: record > record )). tff(data_type,type,( data: record > $int )). tff(split1_type,type,( split1: record > record )). tff(split2_type,type,( split2: record > record )). tff(isrecord_type,type,( isrecord: record > $o )). tff(ax1,axiom,( ! [U: record] : ( ~ isrecord(U) => length(U) = 0 ) )). tff(ax2,axiom,( ! [U: record] : ( isrecord(U) => $greatereq(length(U),1) ) )). tff(ax3,axiom,( ! [U: record] : ( isrecord(U) => length(U) = $sum(length(next(U)),1) ) )). tff(ax4,axiom,( ! [U: record] : ( ~ isrecord(U) => ~ isrecord(split1(U)) ) )). tff(ax5,axiom,( ! [U: record] : ( isrecord(U) => isrecord(split1(U)) ) )). tff(ax6,axiom,( ! [U: record] : ( isrecord(U) => data(split1(U)) = data(U) ) )). tff(ax7,axiom,( ! [U: record] : ( ( isrecord(U) & ~ isrecord(next(U)) ) => ~ isrecord(next(split1(U))) ) )). tff(ax8,axiom,( ! [U: record] : ( ( isrecord(U) & isrecord(next(U)) ) => next(split1(U)) = split1(next(next(U))) ) )). tff(ax9,axiom,( ! [U: record] : ( ~ isrecord(U) => ~ isrecord(split2(U)) ) )). tff(ax10,axiom,( ! [U: record] : ( ~ isrecord(next(U)) => ~ isrecord(split2(U)) ) )). tff(ax11,axiom,( ! [U: record] : ( ( isrecord(U) & isrecord(next(U)) ) => isrecord(split2(U)) ) )). tff(ax12,axiom,( ! [U: record] : ( ( isrecord(U) & isrecord(next(U)) ) => data(split2(U)) = data(next(U)) ) )). tff(ax13,axiom,( ! [U: record] : ( ( isrecord(U) & isrecord(next(U)) ) => next(split2(U)) = split2(next(next(U))) ) )). %------------------------------------------------------------------------------