TPTP Axioms File: DAT006_0.ax
%------------------------------------------------------------------------------
% File : DAT006_0 : TPTP v9.0.0. Released v5.5.0.
% Domain : Data Structures
% Axioms : Tree-heap data types
% Version : [KIV] axioms.
% English :
% Refs : [Rei99] Reif (1999), Email to Geoff Sutcliffe
% Source : [Rei99]
% Names :
% Status : Satisfiable
% Syntax : Number of formulae : 22 ( 8 unt; 8 typ; 0 def)
% Number of atoms : 23 ( 16 equ)
% Maximal formula atoms : 3 ( 1 avg)
% Number of connectives : 13 ( 4 ~; 2 |; 2 &)
% ( 2 <=>; 3 =>; 0 <=; 0 <~>)
% Maximal formula depth : 7 ( 4 avg)
% Maximal term depth : 3 ( 1 avg)
% Number arithmetic : 20 ( 0 atm; 3 fun; 5 num; 12 var)
% Number of types : 3 ( 1 usr; 1 ari)
% Number of type conns : 9 ( 6 >; 3 *; 0 +; 0 <<)
% Number of predicates : 2 ( 1 usr; 0 prp; 2-2 aty)
% Number of functors : 9 ( 6 usr; 3 con; 0-2 aty)
% Number of variables : 28 ( 28 !; 0 ?; 28 :)
% SPC : TFF_SAT_EQU_ARI
% Comments : From: /home/magenta/KIV/newtppl/case-studies/tree-heap/
% specifications/sel/
%------------------------------------------------------------------------------
tff(heap_type,type,
heap: $tType ).
tff(empty_type,type,
empty: heap ).
tff(toop_type,type,
toop: heap > $int ).
tff(sel_type,type,
sel: ( heap * $int ) > $int ).
tff(length_type,type,
length: heap > $int ).
tff(app_type,type,
app: ( heap * $int ) > heap ).
tff(get_type,type,
get: heap > heap ).
tff(lsls_type,type,
lsls: ( heap * heap ) > $o ).
tff(ax_1,axiom,
! [M: $int] : ( sel(empty,M) = 0 ) ).
tff(ax_2,axiom,
! [H: heap,M: $int,N: $int] :
( ( M = $sum(1,length(H)) )
=> ( sel(app(H,N),M) = N ) ) ).
tff(ax_3,axiom,
! [N: $int,H: heap,M: $int] :
( ( M != $sum(1,length(H)) )
=> ( sel(app(H,N),M) = sel(H,M) ) ) ).
tff(ax_20,axiom,
! [N: $int,H: heap] : ( get(app(H,N)) = H ) ).
tff(ax_21,axiom,
! [H: heap,N: $int] : ( toop(app(H,N)) = N ) ).
tff(ax_22,axiom,
! [H: heap,H0: heap,N: $int,N0: $int] :
( ( app(H,N) = app(H0,N0) )
<=> ( ( H = H0 )
& ( N = N0 ) ) ) ).
tff(ax_23,axiom,
! [H: heap,N: $int] : ( empty != app(H,N) ) ).
tff(ax_24,axiom,
! [H: heap] :
( ( H = empty )
| ( H = app(get(H),toop(H)) ) ) ).
tff(ax_25,axiom,
length(empty) = 0 ).
tff(ax_26,axiom,
! [N: $int,H: heap] : ( length(app(H,N)) = $sum(1,length(H)) ) ).
tff(ax_27,axiom,
! [H: heap] : ~ lsls(H,H) ).
tff(ax_28,axiom,
! [H0: heap,H: heap,H1: heap] :
( ( lsls(H,H0)
& lsls(H0,H1) )
=> lsls(H,H1) ) ).
tff(ax_29,axiom,
! [H: heap] : ~ lsls(H,empty) ).
tff(ax_30,axiom,
! [N: $int,H0: heap,H: heap] :
( lsls(H0,app(H,N))
<=> ( ( H0 = H )
| lsls(H0,H) ) ) ).
%------------------------------------------------------------------------------