TPTP Problem File: ITP065^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : ITP065^1 : TPTP v9.0.0. Released v7.5.0.
% Domain : Interactive Theorem Proving
% Problem : Sledgehammer HeapImperative problem prob_1087__5351268_1
% Version : Especial.
% English :
% Refs : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
% : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% Source : [Des21]
% Names : HeapImperative/prob_1087__5351268_1 [Des21]
% Status : Theorem
% Rating : 0.12 v9.0.0, 0.30 v8.2.0, 0.15 v8.1.0, 0.18 v7.5.0
% Syntax : Number of formulae : 26 ( 11 unt; 12 typ; 0 def)
% Number of atoms : 30 ( 16 equ; 0 cnn)
% Maximal formula atoms : 4 ( 2 avg)
% Number of connectives : 79 ( 5 ~; 2 |; 4 &; 62 @)
% ( 0 <=>; 6 =>; 0 <=; 0 <~>)
% Maximal formula depth : 14 ( 5 avg)
% Number of types : 3 ( 2 usr)
% Number of type conns : 25 ( 25 >; 0 *; 0 +; 0 <<)
% Number of symbols : 11 ( 10 usr; 1 con; 0-3 aty)
% Number of variables : 40 ( 1 ^; 39 !; 0 ?; 40 :)
% SPC : TH0_THM_EQU_NAR
% Comments : This file was generated by Sledgehammer 2021-02-23 15:31:56.775
%------------------------------------------------------------------------------
% Could-be-implicit typings (2)
thf(ty_n_t__Heap__OTree_Itf__b_J,type,
tree_b: $tType ).
thf(ty_n_tf__b,type,
b: $tType ).
% Explicit typings (10)
thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Ohs__is__empty_001tf__b,type,
heapIm229596387mpty_b: tree_b > $o ).
thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Oleft_001tf__b,type,
heapIm1140443834left_b: tree_b > tree_b ).
thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Oright_001tf__b,type,
heapIm1257206335ight_b: tree_b > tree_b ).
thf(sy_c_Heap_OTree_OE_001tf__b,type,
e_b: tree_b ).
thf(sy_c_Heap_OTree_OT_001tf__b,type,
t_b: b > tree_b > tree_b > tree_b ).
thf(sy_c_Heap_OTree_Opred__Tree_001tf__b,type,
pred_Tree_b: ( b > $o ) > tree_b > $o ).
thf(sy_c_Heap_Oin__tree_001tf__b,type,
in_tree_b: b > tree_b > $o ).
thf(sy_c_Heap_Oval_001tf__b,type,
val_b: tree_b > b ).
thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_It__Heap__OTree_Itf__b_J_M_Eo_J,type,
ord_less_eq_Tree_b_o: ( tree_b > $o ) > ( tree_b > $o ) > $o ).
thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_Itf__b_M_Eo_J,type,
ord_less_eq_b_o: ( b > $o ) > ( b > $o ) > $o ).
% Relevant facts (13)
thf(fact_0_hs__is__empty__def,axiom,
( heapIm229596387mpty_b
= ( ^ [T: tree_b] : ( T = e_b ) ) ) ).
% hs_is_empty_def
thf(fact_1_in__tree_Osimps_I1_J,axiom,
! [V: b] :
~ ( in_tree_b @ V @ e_b ) ).
% in_tree.simps(1)
thf(fact_2_Tree_Opred__inject_I1_J,axiom,
! [P: b > $o] : ( pred_Tree_b @ P @ e_b ) ).
% Tree.pred_inject(1)
thf(fact_3_Tree_Oinject,axiom,
! [X21: b,X22: tree_b,X23: tree_b,Y21: b,Y22: tree_b,Y23: tree_b] :
( ( ( t_b @ X21 @ X22 @ X23 )
= ( t_b @ Y21 @ Y22 @ Y23 ) )
= ( ( X21 = Y21 )
& ( X22 = Y22 )
& ( X23 = Y23 ) ) ) ).
% Tree.inject
thf(fact_4_Tree_Opred__inject_I2_J,axiom,
! [P: b > $o,A: b,Aa: tree_b,Ab: tree_b] :
( ( pred_Tree_b @ P @ ( t_b @ A @ Aa @ Ab ) )
= ( ( P @ A )
& ( pred_Tree_b @ P @ Aa )
& ( pred_Tree_b @ P @ Ab ) ) ) ).
% Tree.pred_inject(2)
thf(fact_5_in__tree_Osimps_I2_J,axiom,
! [V: b,V2: b,L: tree_b,R: tree_b] :
( ( in_tree_b @ V @ ( t_b @ V2 @ L @ R ) )
= ( ( V = V2 )
| ( in_tree_b @ V @ L )
| ( in_tree_b @ V @ R ) ) ) ).
% in_tree.simps(2)
thf(fact_6_Tree_Oexhaust,axiom,
! [Y: tree_b] :
( ( Y != e_b )
=> ~ ! [X212: b,X222: tree_b,X232: tree_b] :
( Y
!= ( t_b @ X212 @ X222 @ X232 ) ) ) ).
% Tree.exhaust
thf(fact_7_Tree_Oinduct,axiom,
! [P: tree_b > $o,Tree: tree_b] :
( ( P @ e_b )
=> ( ! [X1: b,X2: tree_b,X3: tree_b] :
( ( P @ X2 )
=> ( ( P @ X3 )
=> ( P @ ( t_b @ X1 @ X2 @ X3 ) ) ) )
=> ( P @ Tree ) ) ) ).
% Tree.induct
thf(fact_8_Tree_Odistinct_I1_J,axiom,
! [X21: b,X22: tree_b,X23: tree_b] :
( e_b
!= ( t_b @ X21 @ X22 @ X23 ) ) ).
% Tree.distinct(1)
thf(fact_9_left_Osimps,axiom,
! [V: b,L: tree_b,R: tree_b] :
( ( heapIm1140443834left_b @ ( t_b @ V @ L @ R ) )
= L ) ).
% left.simps
thf(fact_10_right_Osimps,axiom,
! [V: b,L: tree_b,R: tree_b] :
( ( heapIm1257206335ight_b @ ( t_b @ V @ L @ R ) )
= R ) ).
% right.simps
thf(fact_11_Tree_Opred__mono,axiom,
! [P: b > $o,Pa: b > $o] :
( ( ord_less_eq_b_o @ P @ Pa )
=> ( ord_less_eq_Tree_b_o @ ( pred_Tree_b @ P ) @ ( pred_Tree_b @ Pa ) ) ) ).
% Tree.pred_mono
thf(fact_12_val_Osimps,axiom,
! [V: b,Uu: tree_b,Uv: tree_b] :
( ( val_b @ ( t_b @ V @ Uu @ Uv ) )
= V ) ).
% val.simps
% Conjectures (1)
thf(conj_0,conjecture,
heapIm229596387mpty_b @ e_b ).
%------------------------------------------------------------------------------