TPTP Problem File: ITP071^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : ITP071^1 : TPTP v9.0.0. Released v7.5.0.
% Domain   : Interactive Theorem Proving
% Problem  : Sledgehammer HeapImperative problem prob_933__5350368_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_933__5350368_1 [Des21]

% Status   : Theorem
% Rating   : 0.25 v9.0.0, 0.30 v8.2.0, 0.15 v8.1.0, 0.18 v7.5.0
% Syntax   : Number of formulae    :  484 ( 221 unt; 126 typ;   0 def)
%            Number of atoms       :  784 ( 429 equ;   0 cnn)
%            Maximal formula atoms :   12 (   2 avg)
%            Number of connectives : 3437 (  93   ~;   4   |;  57   &;2949   @)
%                                         (   0 <=>; 334  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   23 (   6 avg)
%            Number of types       :   13 (  12 usr)
%            Number of type conns  :  911 ( 911   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :  117 ( 114 usr;   5 con; 0-6 aty)
%            Number of variables   : 1245 ( 189   ^;1045   !;  11   ?;1245   :)
% SPC      : TH0_THM_EQU_NAR

% Comments : This file was generated by Sledgehammer 2021-02-23 15:31:34.981
%------------------------------------------------------------------------------
% Could-be-implicit typings (12)
thf(ty_n_t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mt__Heap__OTree_Itf__a_J_J,type,
    produc1689254567Tree_a: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_J,type,
    set_Pr1070816379Tree_a: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J_J,type,
    set_Pr921883667ee_a_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    produc143150363Tree_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    produc981471411ee_a_a: $tType ).

thf(ty_n_t__Set__Oset_It__Product____Type__Oprod_Itf__a_Mtf__a_J_J,type,
    set_Product_prod_a_a: $tType ).

thf(ty_n_t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    product_prod_a_a: $tType ).

thf(ty_n_t__Multiset__Omultiset_Itf__a_J,type,
    multiset_a: $tType ).

thf(ty_n_t__List__Olist_Itf__a_J,type,
    list_a: $tType ).

thf(ty_n_t__Heap__OTree_Itf__a_J,type,
    tree_a: $tType ).

thf(ty_n_t__Set__Oset_Itf__a_J,type,
    set_a: $tType ).

thf(ty_n_tf__a,type,
    a: $tType ).

% Explicit typings (114)
thf(sy_c_BNF__Def_Ocsquare_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mt__Heap__OTree_Itf__a_J_J,type,
    bNF_cs1091007358Tree_a: set_Pr1070816379Tree_a > ( produc143150363Tree_a > tree_a ) > ( produc1689254567Tree_a > tree_a ) > ( produc143150363Tree_a > produc143150363Tree_a ) > ( produc143150363Tree_a > produc1689254567Tree_a ) > $o ).

thf(sy_c_BNF__Def_Ocsquare_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    bNF_cs739966834Tree_a: set_Pr1070816379Tree_a > ( product_prod_a_a > a ) > ( produc143150363Tree_a > a ) > ( produc143150363Tree_a > product_prod_a_a ) > ( produc143150363Tree_a > produc143150363Tree_a ) > $o ).

thf(sy_c_BNF__Def_Ocsquare_001t__Product____Type__Oprod_Itf__a_Mtf__a_J_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    bNF_cs1095035134ee_a_a: set_Product_prod_a_a > ( produc143150363Tree_a > tree_a ) > ( produc981471411ee_a_a > tree_a ) > ( product_prod_a_a > produc143150363Tree_a ) > ( product_prod_a_a > produc981471411ee_a_a ) > $o ).

thf(sy_c_BNF__Def_OfstOp_001t__Heap__OTree_Itf__a_J_001tf__a_001tf__a,type,
    bNF_fstOp_Tree_a_a_a: ( tree_a > a > $o ) > ( a > a > $o ) > produc981471411ee_a_a > produc981471411ee_a_a ).

thf(sy_c_BNF__Def_OfstOp_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    bNF_fs1579355852Tree_a: ( a > tree_a > $o ) > ( tree_a > tree_a > $o ) > produc143150363Tree_a > produc143150363Tree_a ).

thf(sy_c_BNF__Def_OfstOp_001tf__a_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    bNF_fstOp_a_Tree_a_a: ( a > tree_a > $o ) > ( tree_a > a > $o ) > product_prod_a_a > produc143150363Tree_a ).

thf(sy_c_BNF__Def_OfstOp_001tf__a_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    bNF_fstOp_a_a_Tree_a: ( a > a > $o ) > ( a > tree_a > $o ) > produc143150363Tree_a > product_prod_a_a ).

thf(sy_c_BNF__Def_Opick__middlep_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    bNF_pi1059296282ee_a_a: ( tree_a > tree_a > $o ) > ( tree_a > a > $o ) > tree_a > a > tree_a ).

thf(sy_c_BNF__Def_Opick__middlep_001t__Heap__OTree_Itf__a_J_001tf__a_001tf__a,type,
    bNF_pi1407460238_a_a_a: ( tree_a > a > $o ) > ( a > a > $o ) > tree_a > a > a ).

thf(sy_c_BNF__Def_Opick__middlep_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    bNF_pi1536086554Tree_a: ( a > tree_a > $o ) > ( tree_a > tree_a > $o ) > a > tree_a > tree_a ).

thf(sy_c_BNF__Def_Opick__middlep_001tf__a_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    bNF_pi207687054Tree_a: ( a > a > $o ) > ( a > tree_a > $o ) > a > tree_a > a ).

thf(sy_c_BNF__Def_OsndOp_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    bNF_sn210385162ee_a_a: ( tree_a > tree_a > $o ) > ( tree_a > a > $o ) > produc981471411ee_a_a > produc981471411ee_a_a ).

thf(sy_c_BNF__Def_OsndOp_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    bNF_sn687175434Tree_a: ( a > tree_a > $o ) > ( tree_a > tree_a > $o ) > produc143150363Tree_a > produc1689254567Tree_a ).

thf(sy_c_BNF__Def_OsndOp_001tf__a_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    bNF_sndOp_a_Tree_a_a: ( a > tree_a > $o ) > ( tree_a > a > $o ) > product_prod_a_a > produc981471411ee_a_a ).

thf(sy_c_BNF__Def_OsndOp_001tf__a_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    bNF_sndOp_a_a_Tree_a: ( a > a > $o ) > ( a > tree_a > $o ) > produc143150363Tree_a > produc143150363Tree_a ).

thf(sy_c_BNF__Greatest__Fixpoint_Oimage2_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    bNF_Gr2005589581ee_a_a: set_Pr1070816379Tree_a > ( produc143150363Tree_a > tree_a ) > ( produc143150363Tree_a > a ) > set_Pr921883667ee_a_a ).

thf(sy_c_BNF__Greatest__Fixpoint_Oimage2_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    bNF_Gr2042500789Tree_a: set_Pr1070816379Tree_a > ( produc143150363Tree_a > a ) > ( produc143150363Tree_a > tree_a ) > set_Pr1070816379Tree_a ).

thf(sy_c_BNF__Greatest__Fixpoint_Oimage2_001tf__a_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    bNF_Gr614734384ee_a_a: set_a > ( a > tree_a ) > ( a > a ) > set_Pr921883667ee_a_a ).

thf(sy_c_BNF__Greatest__Fixpoint_Oimage2_001tf__a_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    bNF_Gr651645592Tree_a: set_a > ( a > a ) > ( a > tree_a ) > set_Pr1070816379Tree_a ).

thf(sy_c_Fun_Ocomp_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    comp_T59512783Tree_a: ( tree_a > tree_a ) > ( tree_a > tree_a ) > tree_a > tree_a ).

thf(sy_c_Fun_Ocomp_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    comp_T1074491280ee_a_a: ( tree_a > tree_a ) > ( produc981471411ee_a_a > tree_a ) > produc981471411ee_a_a > tree_a ).

thf(sy_c_Fun_Ocomp_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    comp_T236170232Tree_a: ( tree_a > tree_a ) > ( produc143150363Tree_a > tree_a ) > produc143150363Tree_a > tree_a ).

thf(sy_c_Fun_Ocomp_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    comp_P1066590417ee_a_a: ( produc981471411ee_a_a > tree_a ) > ( produc981471411ee_a_a > produc981471411ee_a_a ) > produc981471411ee_a_a > tree_a ).

thf(sy_c_Fun_Ocomp_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    comp_P228269369Tree_a: ( produc981471411ee_a_a > tree_a ) > ( produc143150363Tree_a > produc981471411ee_a_a ) > produc143150363Tree_a > tree_a ).

thf(sy_c_Fun_Ocomp_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    comp_P342079405Tree_a: ( produc981471411ee_a_a > a ) > ( produc143150363Tree_a > produc981471411ee_a_a ) > produc143150363Tree_a > a ).

thf(sy_c_Fun_Ocomp_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    comp_P1663859001ee_a_a: ( produc143150363Tree_a > tree_a ) > ( produc981471411ee_a_a > produc143150363Tree_a ) > produc981471411ee_a_a > tree_a ).

thf(sy_c_Fun_Ocomp_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    comp_P825537953Tree_a: ( produc143150363Tree_a > tree_a ) > ( produc143150363Tree_a > produc143150363Tree_a ) > produc143150363Tree_a > tree_a ).

thf(sy_c_Fun_Ocomp_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_001tf__a_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    comp_P1103783853ee_a_a: ( produc143150363Tree_a > a ) > ( produc981471411ee_a_a > produc143150363Tree_a ) > produc981471411ee_a_a > a ).

thf(sy_c_Fun_Ocomp_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    comp_P265462805Tree_a: ( produc143150363Tree_a > a ) > ( produc143150363Tree_a > produc143150363Tree_a ) > produc143150363Tree_a > a ).

thf(sy_c_Fun_Ocomp_001tf__a_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    comp_a608639864Tree_a: ( a > a ) > ( produc143150363Tree_a > a ) > produc143150363Tree_a > a ).

thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Oheapify_001tf__a,type,
    heapIm970322378pify_a: tree_a > tree_a ).

thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Ohs__is__empty_001tf__a,type,
    heapIm229596386mpty_a: tree_a > $o ).

thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Ohs__remove__max_001tf__a,type,
    heapIm915766629_max_a: tree_a > produc143150363Tree_a ).

thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Oleft_001tf__a,type,
    heapIm1140443833left_a: tree_a > tree_a ).

thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_OremoveLeaf_001tf__a,type,
    heapIm837449470Leaf_a: tree_a > produc143150363Tree_a ).

thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_Oright_001tf__a,type,
    heapIm1257206334ight_a: tree_a > tree_a ).

thf(sy_c_HeapImperative__Mirabelle__ksbqzsoydx_OsiftDown_001tf__a,type,
    heapIm1091024090Down_a: tree_a > tree_a ).

thf(sy_c_Heap_OHeap_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    heap_Tree_a_a: tree_a > ( tree_a > $o ) > ( list_a > tree_a ) > ( tree_a > multiset_a ) > ( tree_a > tree_a ) > ( tree_a > produc143150363Tree_a ) > $o ).

thf(sy_c_Heap_OHeap__axioms_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    heap_axioms_Tree_a_a: ( tree_a > $o ) > ( list_a > tree_a ) > ( tree_a > multiset_a ) > ( tree_a > tree_a ) > ( tree_a > produc143150363Tree_a ) > $o ).

thf(sy_c_Heap_OTree_OE_001tf__a,type,
    e_a: tree_a ).

thf(sy_c_Heap_OTree_OT_001tf__a,type,
    t_a: a > tree_a > tree_a > tree_a ).

thf(sy_c_Heap_Oin__tree_001tf__a,type,
    in_tree_a: a > tree_a > $o ).

thf(sy_c_Heap_Ois__heap_001tf__a,type,
    is_heap_a: tree_a > $o ).

thf(sy_c_Heap_Omultiset_001tf__a,type,
    multiset_a2: tree_a > multiset_a ).

thf(sy_c_Heap_Oval_001tf__a,type,
    val_a: tree_a > a ).

thf(sy_c_If_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    if_Pro1144176865Tree_a: $o > produc143150363Tree_a > produc143150363Tree_a > produc143150363Tree_a ).

thf(sy_c_Lattices__Big_Olinorder__class_OMax_001tf__a,type,
    lattic146396397_Max_a: set_a > a ).

thf(sy_c_Multiset_Oadd__mset_001tf__a,type,
    add_mset_a: a > multiset_a > multiset_a ).

thf(sy_c_Multiset_Oset__mset_001tf__a,type,
    set_mset_a: multiset_a > set_a ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_It__Heap__OTree_Itf__a_J_M_062_Itf__a_M_Eo_J_J,type,
    ord_le1748873858_a_a_o: ( tree_a > a > $o ) > ( tree_a > a > $o ) > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_It__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_M_Eo_J,type,
    ord_le1601593986ee_a_o: ( produc143150363Tree_a > $o ) > ( produc143150363Tree_a > $o ) > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_Itf__a_M_062_It__Heap__OTree_Itf__a_J_M_Eo_J_J,type,
    ord_le1327026842ee_a_o: ( a > tree_a > $o ) > ( a > tree_a > $o ) > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001_062_Itf__a_M_Eo_J,type,
    ord_less_eq_a_o: ( a > $o ) > ( a > $o ) > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J_J,type,
    ord_le864074675ee_a_a: set_Pr921883667ee_a_a > set_Pr921883667ee_a_a > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_It__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_J,type,
    ord_le1013007387Tree_a: set_Pr1070816379Tree_a > set_Pr1070816379Tree_a > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001t__Set__Oset_Itf__a_J,type,
    ord_less_eq_set_a: set_a > set_a > $o ).

thf(sy_c_Orderings_Oord__class_Oless__eq_001tf__a,type,
    ord_less_eq_a: a > a > $o ).

thf(sy_c_Orderings_Oorder__class_OGreatest_001tf__a,type,
    order_Greatest_a: ( a > $o ) > a ).

thf(sy_c_Product__Type_OPair_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    produc649172771ee_a_a: tree_a > a > produc981471411ee_a_a ).

thf(sy_c_Product__Type_OPair_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    produc686083979Tree_a: a > tree_a > produc143150363Tree_a ).

thf(sy_c_Product__Type_Oapfst_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    produc569472578ee_a_a: ( tree_a > tree_a ) > produc981471411ee_a_a > produc981471411ee_a_a ).

thf(sy_c_Product__Type_Oapfst_001t__Heap__OTree_Itf__a_J_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    produc606383786Tree_a: ( tree_a > a ) > produc1689254567Tree_a > produc143150363Tree_a ).

thf(sy_c_Product__Type_Oapfst_001t__Heap__OTree_Itf__a_J_001tf__a_001tf__a,type,
    produc159857078_a_a_a: ( tree_a > a ) > produc981471411ee_a_a > product_prod_a_a ).

thf(sy_c_Product__Type_Oapfst_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    produc1046262850Tree_a: ( a > tree_a ) > produc143150363Tree_a > produc1689254567Tree_a ).

thf(sy_c_Product__Type_Oapfst_001tf__a_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    produc1070656334ee_a_a: ( a > tree_a ) > product_prod_a_a > produc981471411ee_a_a ).

thf(sy_c_Product__Type_Oapfst_001tf__a_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    produc1107567542Tree_a: ( a > a ) > produc143150363Tree_a > produc143150363Tree_a ).

thf(sy_c_Product__Type_Oapsnd_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    produc819961216ee_a_a: ( tree_a > tree_a ) > produc143150363Tree_a > produc143150363Tree_a ).

thf(sy_c_Product__Type_Oapsnd_001t__Heap__OTree_Itf__a_J_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    produc856872424Tree_a: ( tree_a > a ) > produc1689254567Tree_a > produc981471411ee_a_a ).

thf(sy_c_Product__Type_Oapsnd_001t__Heap__OTree_Itf__a_J_001tf__a_001tf__a,type,
    produc21534708_a_a_a: ( tree_a > a ) > produc143150363Tree_a > product_prod_a_a ).

thf(sy_c_Product__Type_Oapsnd_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    produc1296751488Tree_a: ( a > tree_a ) > produc981471411ee_a_a > produc1689254567Tree_a ).

thf(sy_c_Product__Type_Oapsnd_001tf__a_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    produc932333964ee_a_a: ( a > tree_a ) > product_prod_a_a > produc143150363Tree_a ).

thf(sy_c_Product__Type_Oapsnd_001tf__a_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    produc969245172Tree_a: ( a > a ) > produc981471411ee_a_a > produc981471411ee_a_a ).

thf(sy_c_Product__Type_Ocurry_001t__Heap__OTree_Itf__a_J_001tf__a_001_Eo,type,
    produc1205515265_a_a_o: ( produc981471411ee_a_a > $o ) > tree_a > a > $o ).

thf(sy_c_Product__Type_Ocurry_001t__Heap__OTree_Itf__a_J_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    produc1808426884Tree_a: ( produc981471411ee_a_a > produc143150363Tree_a ) > tree_a > a > produc143150363Tree_a ).

thf(sy_c_Product__Type_Ocurry_001tf__a_001t__Heap__OTree_Itf__a_J_001_Eo,type,
    produc1291432345ee_a_o: ( produc143150363Tree_a > $o ) > a > tree_a > $o ).

thf(sy_c_Product__Type_Ocurry_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    produc740705523Tree_a: ( produc143150363Tree_a > tree_a ) > a > tree_a > tree_a ).

thf(sy_c_Product__Type_Ocurry_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    produc623433908ee_a_a: ( produc143150363Tree_a > produc981471411ee_a_a ) > a > tree_a > produc981471411ee_a_a ).

thf(sy_c_Product__Type_Ointernal__case__prod_001t__Heap__OTree_Itf__a_J_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    produc126329485Tree_a: ( tree_a > a > produc143150363Tree_a ) > produc981471411ee_a_a > produc143150363Tree_a ).

thf(sy_c_Product__Type_Ointernal__case__prod_001tf__a_001t__Heap__OTree_Itf__a_J_001_Eo,type,
    produc1405823650ee_a_o: ( a > tree_a > $o ) > produc143150363Tree_a > $o ).

thf(sy_c_Product__Type_Ointernal__case__prod_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    produc534868220Tree_a: ( a > tree_a > tree_a ) > produc143150363Tree_a > tree_a ).

thf(sy_c_Product__Type_Ointernal__case__prod_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    produc1088820157ee_a_a: ( a > tree_a > produc981471411ee_a_a ) > produc143150363Tree_a > produc981471411ee_a_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Heap__OTree_Itf__a_J_001tf__a_001_Eo,type,
    produc1587316832_a_a_o: ( tree_a > a > $o ) > produc981471411ee_a_a > $o ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Heap__OTree_Itf__a_J_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    produc433477818Tree_a: ( tree_a > a > tree_a ) > produc981471411ee_a_a > tree_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Heap__OTree_Itf__a_J_001tf__a_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    produc1207340411ee_a_a: ( tree_a > a > produc981471411ee_a_a ) > produc981471411ee_a_a > produc981471411ee_a_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Heap__OTree_Itf__a_J_001tf__a_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    produc369019363Tree_a: ( tree_a > a > produc143150363Tree_a ) > produc981471411ee_a_a > produc143150363Tree_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Heap__OTree_Itf__a_J_001tf__a_001t__Set__Oset_It__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_J,type,
    produc951236931Tree_a: ( tree_a > a > set_Pr1070816379Tree_a ) > produc981471411ee_a_a > set_Pr1070816379Tree_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Heap__OTree_Itf__a_J_001tf__a_001t__Set__Oset_Itf__a_J,type,
    produc136688934_set_a: ( tree_a > a > set_a ) > produc981471411ee_a_a > set_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001t__Heap__OTree_Itf__a_J_001_Eo,type,
    produc1673233912ee_a_o: ( a > tree_a > $o ) > produc143150363Tree_a > $o ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    produc873356882Tree_a: ( a > tree_a > tree_a ) > produc143150363Tree_a > tree_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    produc1331510035ee_a_a: ( a > tree_a > produc981471411ee_a_a ) > produc143150363Tree_a > produc981471411ee_a_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    produc493188987Tree_a: ( a > tree_a > produc143150363Tree_a ) > produc143150363Tree_a > produc143150363Tree_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Set__Oset_It__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_J,type,
    produc802621147Tree_a: ( a > tree_a > set_Pr1070816379Tree_a ) > produc143150363Tree_a > set_Pr1070816379Tree_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Set__Oset_Itf__a_J,type,
    produc1902270_set_a: ( a > tree_a > set_a ) > produc143150363Tree_a > set_a ).

thf(sy_c_Product__Type_Oprod_Ocase__prod_001tf__a_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    produc950721886ee_a_a: ( a > tree_a > a ) > produc143150363Tree_a > a ).

thf(sy_c_Product__Type_Oprod_Ofst_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    produc1206152067Tree_a: produc1689254567Tree_a > tree_a ).

thf(sy_c_Product__Type_Oprod_Ofst_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    product_fst_Tree_a_a: produc981471411ee_a_a > tree_a ).

thf(sy_c_Product__Type_Oprod_Ofst_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    product_fst_a_Tree_a: produc143150363Tree_a > a ).

thf(sy_c_Product__Type_Oprod_Osnd_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    product_snd_Tree_a_a: produc981471411ee_a_a > a ).

thf(sy_c_Product__Type_Oprod_Osnd_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    product_snd_a_Tree_a: produc143150363Tree_a > tree_a ).

thf(sy_c_Product__Type_Oprod_Osnd_001tf__a_001tf__a,type,
    product_snd_a_a: product_prod_a_a > a ).

thf(sy_c_Product__Type_Oprod_Oswap_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    produc1478296771ee_a_a: produc981471411ee_a_a > produc143150363Tree_a ).

thf(sy_c_Product__Type_Oprod_Oswap_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    produc1515207979Tree_a: produc143150363Tree_a > produc981471411ee_a_a ).

thf(sy_c_Relation_Orelcompp_001tf__a_001t__Heap__OTree_Itf__a_J_001t__Heap__OTree_Itf__a_J,type,
    relcom439193229Tree_a: ( a > tree_a > $o ) > ( tree_a > tree_a > $o ) > a > tree_a > $o ).

thf(sy_c_Relation_Orelcompp_001tf__a_001t__Heap__OTree_Itf__a_J_001tf__a,type,
    relcompp_a_Tree_a_a: ( a > tree_a > $o ) > ( tree_a > a > $o ) > a > a > $o ).

thf(sy_c_Relation_Orelcompp_001tf__a_001tf__a_001t__Heap__OTree_Itf__a_J,type,
    relcompp_a_a_Tree_a: ( a > a > $o ) > ( a > tree_a > $o ) > a > tree_a > $o ).

thf(sy_c_Set_OCollect_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    collec1324690334ee_a_a: ( produc981471411ee_a_a > $o ) > set_Pr921883667ee_a_a ).

thf(sy_c_Set_OCollect_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    collec486369286Tree_a: ( produc143150363Tree_a > $o ) > set_Pr1070816379Tree_a ).

thf(sy_c_Set_OCollect_001t__Product____Type__Oprod_Itf__a_Mtf__a_J,type,
    collec645855634od_a_a: ( product_prod_a_a > $o ) > set_Product_prod_a_a ).

thf(sy_c_Set_OCollect_001tf__a,type,
    collect_a: ( a > $o ) > set_a ).

thf(sy_c_member_001t__Product____Type__Oprod_It__Heap__OTree_Itf__a_J_Mtf__a_J,type,
    member1092636252ee_a_a: produc981471411ee_a_a > set_Pr921883667ee_a_a > $o ).

thf(sy_c_member_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J,type,
    member254315204Tree_a: produc143150363Tree_a > set_Pr1070816379Tree_a > $o ).

thf(sy_c_member_001tf__a,type,
    member_a: a > set_a > $o ).

thf(sy_v_t,type,
    t: tree_a ).

thf(sy_v_v____,type,
    v: a ).

% Relevant facts (354)
thf(fact_0_assms_I2_J,axiom,
    t != e_a ).

% assms(2)
thf(fact_1_assms_I1_J,axiom,
    is_heap_a @ t ).

% assms(1)
thf(fact_2__C1_Oprems_C_I2_J,axiom,
    ( ( t_a @ v @ e_a @ e_a )
   != e_a ) ).

% "1.prems"(2)
thf(fact_3__C1_Oprems_C_I1_J,axiom,
    is_heap_a @ ( t_a @ v @ e_a @ e_a ) ).

% "1.prems"(1)
thf(fact_4_siftDown_Ocases,axiom,
    ! [X: tree_a] :
      ( ( X != e_a )
     => ( ! [V: a] :
            ( X
           != ( t_a @ V @ e_a @ e_a ) )
       => ( ! [V: a,Va: a,Vb: tree_a,Vc: tree_a] :
              ( X
             != ( t_a @ V @ ( t_a @ Va @ Vb @ Vc ) @ e_a ) )
         => ( ! [V: a,Va: a,Vb: tree_a,Vc: tree_a] :
                ( X
               != ( t_a @ V @ e_a @ ( t_a @ Va @ Vb @ Vc ) ) )
           => ~ ! [V: a,Va: a,Vb: tree_a,Vc: tree_a,Vd: a,Ve: tree_a,Vf: tree_a] :
                  ( X
                 != ( t_a @ V @ ( t_a @ Va @ Vb @ Vc ) @ ( t_a @ Vd @ Ve @ Vf ) ) ) ) ) ) ) ).

% siftDown.cases
thf(fact_5_removeLeaf_Ocases,axiom,
    ! [X: tree_a] :
      ( ! [V: a] :
          ( X
         != ( t_a @ V @ e_a @ e_a ) )
     => ( ! [V: a,Va: a,Vb: tree_a,Vc: tree_a] :
            ( X
           != ( t_a @ V @ ( t_a @ Va @ Vb @ Vc ) @ e_a ) )
       => ( ! [V: a,Va: a,Vb: tree_a,Vc: tree_a] :
              ( X
             != ( t_a @ V @ e_a @ ( t_a @ Va @ Vb @ Vc ) ) )
         => ( ! [V: a,Va: a,Vb: tree_a,Vc: tree_a,Vd: a,Ve: tree_a,Vf: tree_a] :
                ( X
               != ( t_a @ V @ ( t_a @ Va @ Vb @ Vc ) @ ( t_a @ Vd @ Ve @ Vf ) ) )
           => ( ! [V: a,Vd: a,Ve: tree_a,Vf: tree_a,Va: a,Vb: tree_a,Vc: tree_a] :
                  ( X
                 != ( t_a @ V @ ( t_a @ Vd @ Ve @ Vf ) @ ( t_a @ Va @ Vb @ Vc ) ) )
             => ( X = e_a ) ) ) ) ) ) ).

% removeLeaf.cases
thf(fact_6_removeLeaf_Oinduct,axiom,
    ! [P: tree_a > $o,A0: tree_a] :
      ( ! [V: a] : ( P @ ( t_a @ V @ e_a @ e_a ) )
     => ( ! [V: a,Va: a,Vb: tree_a,Vc: tree_a] :
            ( ( P @ ( t_a @ Va @ Vb @ Vc ) )
           => ( ( P @ ( t_a @ Va @ Vb @ Vc ) )
             => ( P @ ( t_a @ V @ ( t_a @ Va @ Vb @ Vc ) @ e_a ) ) ) )
       => ( ! [V: a,Va: a,Vb: tree_a,Vc: tree_a] :
              ( ( P @ ( t_a @ Va @ Vb @ Vc ) )
             => ( ( P @ ( t_a @ Va @ Vb @ Vc ) )
               => ( P @ ( t_a @ V @ e_a @ ( t_a @ Va @ Vb @ Vc ) ) ) ) )
         => ( ! [V: a,Va: a,Vb: tree_a,Vc: tree_a,Vd: a,Ve: tree_a,Vf: tree_a] :
                ( ( P @ ( t_a @ Va @ Vb @ Vc ) )
               => ( ( P @ ( t_a @ Va @ Vb @ Vc ) )
                 => ( P @ ( t_a @ V @ ( t_a @ Va @ Vb @ Vc ) @ ( t_a @ Vd @ Ve @ Vf ) ) ) ) )
           => ( ! [V: a,Vd: a,Ve: tree_a,Vf: tree_a,Va: a,Vb: tree_a,Vc: tree_a] :
                  ( ( P @ ( t_a @ Vd @ Ve @ Vf ) )
                 => ( ( P @ ( t_a @ Vd @ Ve @ Vf ) )
                   => ( P @ ( t_a @ V @ ( t_a @ Vd @ Ve @ Vf ) @ ( t_a @ Va @ Vb @ Vc ) ) ) ) )
             => ( ( P @ e_a )
               => ( P @ A0 ) ) ) ) ) ) ) ).

% removeLeaf.induct
thf(fact_7_is__heap_Osimps_I2_J,axiom,
    ! [V2: a] : ( is_heap_a @ ( t_a @ V2 @ e_a @ e_a ) ) ).

% is_heap.simps(2)
thf(fact_8_Tree_Oinject,axiom,
    ! [X21: a,X22: tree_a,X23: tree_a,Y21: a,Y22: tree_a,Y23: tree_a] :
      ( ( ( t_a @ X21 @ X22 @ X23 )
        = ( t_a @ Y21 @ Y22 @ Y23 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y22 )
        & ( X23 = Y23 ) ) ) ).

% Tree.inject
thf(fact_9_hs__is__empty__def,axiom,
    ( heapIm229596386mpty_a
    = ( ^ [T: tree_a] : ( T = e_a ) ) ) ).

% hs_is_empty_def
thf(fact_10_is__heap_Osimps_I1_J,axiom,
    is_heap_a @ e_a ).

% is_heap.simps(1)
thf(fact_11_Tree_Odistinct_I1_J,axiom,
    ! [X21: a,X22: tree_a,X23: tree_a] :
      ( e_a
     != ( t_a @ X21 @ X22 @ X23 ) ) ).

% Tree.distinct(1)
thf(fact_12_Tree_Oinduct,axiom,
    ! [P: tree_a > $o,Tree: tree_a] :
      ( ( P @ e_a )
     => ( ! [X1: a,X2: tree_a,X3: tree_a] :
            ( ( P @ X2 )
           => ( ( P @ X3 )
             => ( P @ ( t_a @ X1 @ X2 @ X3 ) ) ) )
       => ( P @ Tree ) ) ) ).

% Tree.induct
thf(fact_13_Tree_Oexhaust,axiom,
    ! [Y: tree_a] :
      ( ( Y != e_a )
     => ~ ! [X212: a,X222: tree_a,X232: tree_a] :
            ( Y
           != ( t_a @ X212 @ X222 @ X232 ) ) ) ).

% Tree.exhaust
thf(fact_14_is__heap_Ocases,axiom,
    ! [X: tree_a] :
      ( ( X != e_a )
     => ( ! [V: a] :
            ( X
           != ( t_a @ V @ e_a @ e_a ) )
       => ( ! [V: a,Va: a,Vb: tree_a,Vc: tree_a] :
              ( X
             != ( t_a @ V @ e_a @ ( t_a @ Va @ Vb @ Vc ) ) )
         => ( ! [V: a,Va: a,Vb: tree_a,Vc: tree_a] :
                ( X
               != ( t_a @ V @ ( t_a @ Va @ Vb @ Vc ) @ e_a ) )
           => ~ ! [V: a,Va: a,Vb: tree_a,Vc: tree_a,Vd: a,Ve: tree_a,Vf: tree_a] :
                  ( X
                 != ( t_a @ V @ ( t_a @ Va @ Vb @ Vc ) @ ( t_a @ Vd @ Ve @ Vf ) ) ) ) ) ) ) ).

% is_heap.cases
thf(fact_15_removeLeaf__val__val,axiom,
    ! [T2: tree_a] :
      ( ( ( product_snd_a_Tree_a @ ( heapIm837449470Leaf_a @ T2 ) )
       != e_a )
     => ( ( T2 != e_a )
       => ( ( val_a @ T2 )
          = ( val_a @ ( product_snd_a_Tree_a @ ( heapIm837449470Leaf_a @ T2 ) ) ) ) ) ) ).

% removeLeaf_val_val
thf(fact_16_removeLeaf_Osimps_I1_J,axiom,
    ! [V2: a] :
      ( ( heapIm837449470Leaf_a @ ( t_a @ V2 @ e_a @ e_a ) )
      = ( produc686083979Tree_a @ V2 @ e_a ) ) ).

% removeLeaf.simps(1)
thf(fact_17_siftDown__heap__is__heap,axiom,
    ! [L: tree_a,R: tree_a,T2: tree_a,V2: a] :
      ( ( is_heap_a @ L )
     => ( ( is_heap_a @ R )
       => ( ( T2
            = ( t_a @ V2 @ L @ R ) )
         => ( is_heap_a @ ( heapIm1091024090Down_a @ T2 ) ) ) ) ) ).

% siftDown_heap_is_heap
thf(fact_18_siftDown_Osimps_I2_J,axiom,
    ! [V2: a] :
      ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ e_a @ e_a ) )
      = ( t_a @ V2 @ e_a @ e_a ) ) ).

% siftDown.simps(2)
thf(fact_19_val_Osimps,axiom,
    ! [V2: a,Uu: tree_a,Uv: tree_a] :
      ( ( val_a @ ( t_a @ V2 @ Uu @ Uv ) )
      = V2 ) ).

% val.simps
thf(fact_20_siftDown_Osimps_I1_J,axiom,
    ( ( heapIm1091024090Down_a @ e_a )
    = e_a ) ).

% siftDown.simps(1)
thf(fact_21_prod_Oinject,axiom,
    ! [X12: a,X24: tree_a,Y1: a,Y2: tree_a] :
      ( ( ( produc686083979Tree_a @ X12 @ X24 )
        = ( produc686083979Tree_a @ Y1 @ Y2 ) )
      = ( ( X12 = Y1 )
        & ( X24 = Y2 ) ) ) ).

% prod.inject
thf(fact_22_prod_Oinject,axiom,
    ! [X12: tree_a,X24: a,Y1: tree_a,Y2: a] :
      ( ( ( produc649172771ee_a_a @ X12 @ X24 )
        = ( produc649172771ee_a_a @ Y1 @ Y2 ) )
      = ( ( X12 = Y1 )
        & ( X24 = Y2 ) ) ) ).

% prod.inject
thf(fact_23_old_Oprod_Oinject,axiom,
    ! [A: a,B: tree_a,A2: a,B2: tree_a] :
      ( ( ( produc686083979Tree_a @ A @ B )
        = ( produc686083979Tree_a @ A2 @ B2 ) )
      = ( ( A = A2 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_24_old_Oprod_Oinject,axiom,
    ! [A: tree_a,B: a,A2: tree_a,B2: a] :
      ( ( ( produc649172771ee_a_a @ A @ B )
        = ( produc649172771ee_a_a @ A2 @ B2 ) )
      = ( ( A = A2 )
        & ( B = B2 ) ) ) ).

% old.prod.inject
thf(fact_25_siftDown__in__tree,axiom,
    ! [T2: tree_a] :
      ( ( T2 != e_a )
     => ( in_tree_a @ ( val_a @ ( heapIm1091024090Down_a @ T2 ) ) @ T2 ) ) ).

% siftDown_in_tree
thf(fact_26_eq__snd__iff,axiom,
    ! [B: a,P2: produc981471411ee_a_a] :
      ( ( B
        = ( product_snd_Tree_a_a @ P2 ) )
      = ( ? [A3: tree_a] :
            ( P2
            = ( produc649172771ee_a_a @ A3 @ B ) ) ) ) ).

% eq_snd_iff
thf(fact_27_eq__snd__iff,axiom,
    ! [B: tree_a,P2: produc143150363Tree_a] :
      ( ( B
        = ( product_snd_a_Tree_a @ P2 ) )
      = ( ? [A3: a] :
            ( P2
            = ( produc686083979Tree_a @ A3 @ B ) ) ) ) ).

% eq_snd_iff
thf(fact_28_snd__conv,axiom,
    ! [X12: tree_a,X24: a] :
      ( ( product_snd_Tree_a_a @ ( produc649172771ee_a_a @ X12 @ X24 ) )
      = X24 ) ).

% snd_conv
thf(fact_29_snd__conv,axiom,
    ! [X12: a,X24: tree_a] :
      ( ( product_snd_a_Tree_a @ ( produc686083979Tree_a @ X12 @ X24 ) )
      = X24 ) ).

% snd_conv
thf(fact_30_snd__eqD,axiom,
    ! [X: tree_a,Y: a,A: a] :
      ( ( ( product_snd_Tree_a_a @ ( produc649172771ee_a_a @ X @ Y ) )
        = A )
     => ( Y = A ) ) ).

% snd_eqD
thf(fact_31_snd__eqD,axiom,
    ! [X: a,Y: tree_a,A: tree_a] :
      ( ( ( product_snd_a_Tree_a @ ( produc686083979Tree_a @ X @ Y ) )
        = A )
     => ( Y = A ) ) ).

% snd_eqD
thf(fact_32_sndI,axiom,
    ! [X: produc981471411ee_a_a,Y: tree_a,Z: a] :
      ( ( X
        = ( produc649172771ee_a_a @ Y @ Z ) )
     => ( ( product_snd_Tree_a_a @ X )
        = Z ) ) ).

% sndI
thf(fact_33_sndI,axiom,
    ! [X: produc143150363Tree_a,Y: a,Z: tree_a] :
      ( ( X
        = ( produc686083979Tree_a @ Y @ Z ) )
     => ( ( product_snd_a_Tree_a @ X )
        = Z ) ) ).

% sndI
thf(fact_34_removeLeaf_Osimps_I2_J,axiom,
    ! [V2: a,Va2: a,Vb2: tree_a,Vc2: tree_a] :
      ( ( heapIm837449470Leaf_a @ ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ e_a ) )
      = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ ( heapIm837449470Leaf_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) @ ( t_a @ V2 @ ( product_snd_a_Tree_a @ ( heapIm837449470Leaf_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) @ e_a ) ) ) ).

% removeLeaf.simps(2)
thf(fact_35_removeLeaf_Osimps_I3_J,axiom,
    ! [V2: a,Va2: a,Vb2: tree_a,Vc2: tree_a] :
      ( ( heapIm837449470Leaf_a @ ( t_a @ V2 @ e_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
      = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ ( heapIm837449470Leaf_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) @ ( t_a @ V2 @ e_a @ ( product_snd_a_Tree_a @ ( heapIm837449470Leaf_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) ) ) ) ).

% removeLeaf.simps(3)
thf(fact_36_removeLeaf_Osimps_I4_J,axiom,
    ! [V2: a,Va2: a,Vb2: tree_a,Vc2: tree_a,Vd2: a,Ve2: tree_a,Vf2: tree_a] :
      ( ( heapIm837449470Leaf_a @ ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) )
      = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ ( heapIm837449470Leaf_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) @ ( t_a @ V2 @ ( product_snd_a_Tree_a @ ( heapIm837449470Leaf_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) ) ) ).

% removeLeaf.simps(4)
thf(fact_37_prod_Ocollapse,axiom,
    ! [Prod: produc981471411ee_a_a] :
      ( ( produc649172771ee_a_a @ ( product_fst_Tree_a_a @ Prod ) @ ( product_snd_Tree_a_a @ Prod ) )
      = Prod ) ).

% prod.collapse
thf(fact_38_prod_Ocollapse,axiom,
    ! [Prod: produc143150363Tree_a] :
      ( ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) )
      = Prod ) ).

% prod.collapse
thf(fact_39_eq__fst__iff,axiom,
    ! [A: a,P2: produc143150363Tree_a] :
      ( ( A
        = ( product_fst_a_Tree_a @ P2 ) )
      = ( ? [B3: tree_a] :
            ( P2
            = ( produc686083979Tree_a @ A @ B3 ) ) ) ) ).

% eq_fst_iff
thf(fact_40_eq__fst__iff,axiom,
    ! [A: tree_a,P2: produc981471411ee_a_a] :
      ( ( A
        = ( product_fst_Tree_a_a @ P2 ) )
      = ( ? [B3: a] :
            ( P2
            = ( produc649172771ee_a_a @ A @ B3 ) ) ) ) ).

% eq_fst_iff
thf(fact_41_fst__conv,axiom,
    ! [X12: a,X24: tree_a] :
      ( ( product_fst_a_Tree_a @ ( produc686083979Tree_a @ X12 @ X24 ) )
      = X12 ) ).

% fst_conv
thf(fact_42_fst__conv,axiom,
    ! [X12: tree_a,X24: a] :
      ( ( product_fst_Tree_a_a @ ( produc649172771ee_a_a @ X12 @ X24 ) )
      = X12 ) ).

% fst_conv
thf(fact_43_fst__eqD,axiom,
    ! [X: a,Y: tree_a,A: a] :
      ( ( ( product_fst_a_Tree_a @ ( produc686083979Tree_a @ X @ Y ) )
        = A )
     => ( X = A ) ) ).

% fst_eqD
thf(fact_44_fst__eqD,axiom,
    ! [X: tree_a,Y: a,A: tree_a] :
      ( ( ( product_fst_Tree_a_a @ ( produc649172771ee_a_a @ X @ Y ) )
        = A )
     => ( X = A ) ) ).

% fst_eqD
thf(fact_45_fstI,axiom,
    ! [X: produc143150363Tree_a,Y: a,Z: tree_a] :
      ( ( X
        = ( produc686083979Tree_a @ Y @ Z ) )
     => ( ( product_fst_a_Tree_a @ X )
        = Y ) ) ).

% fstI
thf(fact_46_fstI,axiom,
    ! [X: produc981471411ee_a_a,Y: tree_a,Z: a] :
      ( ( X
        = ( produc649172771ee_a_a @ Y @ Z ) )
     => ( ( product_fst_Tree_a_a @ X )
        = Y ) ) ).

% fstI
thf(fact_47_prod__eqI,axiom,
    ! [P2: produc981471411ee_a_a,Q: produc981471411ee_a_a] :
      ( ( ( product_fst_Tree_a_a @ P2 )
        = ( product_fst_Tree_a_a @ Q ) )
     => ( ( ( product_snd_Tree_a_a @ P2 )
          = ( product_snd_Tree_a_a @ Q ) )
       => ( P2 = Q ) ) ) ).

% prod_eqI
thf(fact_48_prod__eqI,axiom,
    ! [P2: produc143150363Tree_a,Q: produc143150363Tree_a] :
      ( ( ( product_fst_a_Tree_a @ P2 )
        = ( product_fst_a_Tree_a @ Q ) )
     => ( ( ( product_snd_a_Tree_a @ P2 )
          = ( product_snd_a_Tree_a @ Q ) )
       => ( P2 = Q ) ) ) ).

% prod_eqI
thf(fact_49_prod_Oexpand,axiom,
    ! [Prod: produc981471411ee_a_a,Prod2: produc981471411ee_a_a] :
      ( ( ( ( product_fst_Tree_a_a @ Prod )
          = ( product_fst_Tree_a_a @ Prod2 ) )
        & ( ( product_snd_Tree_a_a @ Prod )
          = ( product_snd_Tree_a_a @ Prod2 ) ) )
     => ( Prod = Prod2 ) ) ).

% prod.expand
thf(fact_50_prod_Oexpand,axiom,
    ! [Prod: produc143150363Tree_a,Prod2: produc143150363Tree_a] :
      ( ( ( ( product_fst_a_Tree_a @ Prod )
          = ( product_fst_a_Tree_a @ Prod2 ) )
        & ( ( product_snd_a_Tree_a @ Prod )
          = ( product_snd_a_Tree_a @ Prod2 ) ) )
     => ( Prod = Prod2 ) ) ).

% prod.expand
thf(fact_51_prod__eq__iff,axiom,
    ( ( ^ [Y3: produc981471411ee_a_a,Z2: produc981471411ee_a_a] : ( Y3 = Z2 ) )
    = ( ^ [S: produc981471411ee_a_a,T: produc981471411ee_a_a] :
          ( ( ( product_fst_Tree_a_a @ S )
            = ( product_fst_Tree_a_a @ T ) )
          & ( ( product_snd_Tree_a_a @ S )
            = ( product_snd_Tree_a_a @ T ) ) ) ) ) ).

% prod_eq_iff
thf(fact_52_prod__eq__iff,axiom,
    ( ( ^ [Y3: produc143150363Tree_a,Z2: produc143150363Tree_a] : ( Y3 = Z2 ) )
    = ( ^ [S: produc143150363Tree_a,T: produc143150363Tree_a] :
          ( ( ( product_fst_a_Tree_a @ S )
            = ( product_fst_a_Tree_a @ T ) )
          & ( ( product_snd_a_Tree_a @ S )
            = ( product_snd_a_Tree_a @ T ) ) ) ) ) ).

% prod_eq_iff
thf(fact_53_surjective__pairing,axiom,
    ! [T2: produc981471411ee_a_a] :
      ( T2
      = ( produc649172771ee_a_a @ ( product_fst_Tree_a_a @ T2 ) @ ( product_snd_Tree_a_a @ T2 ) ) ) ).

% surjective_pairing
thf(fact_54_surjective__pairing,axiom,
    ! [T2: produc143150363Tree_a] :
      ( T2
      = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ T2 ) @ ( product_snd_a_Tree_a @ T2 ) ) ) ).

% surjective_pairing
thf(fact_55_prod_Oexhaust__sel,axiom,
    ! [Prod: produc981471411ee_a_a] :
      ( Prod
      = ( produc649172771ee_a_a @ ( product_fst_Tree_a_a @ Prod ) @ ( product_snd_Tree_a_a @ Prod ) ) ) ).

% prod.exhaust_sel
thf(fact_56_prod_Oexhaust__sel,axiom,
    ! [Prod: produc143150363Tree_a] :
      ( Prod
      = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) ) ).

% prod.exhaust_sel
thf(fact_57_in__tree_Osimps_I2_J,axiom,
    ! [V2: a,V3: a,L: tree_a,R: tree_a] :
      ( ( in_tree_a @ V2 @ ( t_a @ V3 @ L @ R ) )
      = ( ( V2 = V3 )
        | ( in_tree_a @ V2 @ L )
        | ( in_tree_a @ V2 @ R ) ) ) ).

% in_tree.simps(2)
thf(fact_58_in__tree_Osimps_I1_J,axiom,
    ! [V2: a] :
      ~ ( in_tree_a @ V2 @ e_a ) ).

% in_tree.simps(1)
thf(fact_59_siftDown__in__tree__set,axiom,
    ( in_tree_a
    = ( ^ [V4: a,T: tree_a] : ( in_tree_a @ V4 @ ( heapIm1091024090Down_a @ T ) ) ) ) ).

% siftDown_in_tree_set
thf(fact_60_old_Oprod_Oinducts,axiom,
    ! [P: produc143150363Tree_a > $o,Prod: produc143150363Tree_a] :
      ( ! [A4: a,B4: tree_a] : ( P @ ( produc686083979Tree_a @ A4 @ B4 ) )
     => ( P @ Prod ) ) ).

% old.prod.inducts
thf(fact_61_old_Oprod_Oinducts,axiom,
    ! [P: produc981471411ee_a_a > $o,Prod: produc981471411ee_a_a] :
      ( ! [A4: tree_a,B4: a] : ( P @ ( produc649172771ee_a_a @ A4 @ B4 ) )
     => ( P @ Prod ) ) ).

% old.prod.inducts
thf(fact_62_mem__Collect__eq,axiom,
    ! [A: a,P: a > $o] :
      ( ( member_a @ A @ ( collect_a @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_63_mem__Collect__eq,axiom,
    ! [A: produc143150363Tree_a,P: produc143150363Tree_a > $o] :
      ( ( member254315204Tree_a @ A @ ( collec486369286Tree_a @ P ) )
      = ( P @ A ) ) ).

% mem_Collect_eq
thf(fact_64_Collect__mem__eq,axiom,
    ! [A5: set_a] :
      ( ( collect_a
        @ ^ [X4: a] : ( member_a @ X4 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_65_Collect__mem__eq,axiom,
    ! [A5: set_Pr1070816379Tree_a] :
      ( ( collec486369286Tree_a
        @ ^ [X4: produc143150363Tree_a] : ( member254315204Tree_a @ X4 @ A5 ) )
      = A5 ) ).

% Collect_mem_eq
thf(fact_66_Collect__cong,axiom,
    ! [P: produc143150363Tree_a > $o,Q2: produc143150363Tree_a > $o] :
      ( ! [X5: produc143150363Tree_a] :
          ( ( P @ X5 )
          = ( Q2 @ X5 ) )
     => ( ( collec486369286Tree_a @ P )
        = ( collec486369286Tree_a @ Q2 ) ) ) ).

% Collect_cong
thf(fact_67_old_Oprod_Oexhaust,axiom,
    ! [Y: produc143150363Tree_a] :
      ~ ! [A4: a,B4: tree_a] :
          ( Y
         != ( produc686083979Tree_a @ A4 @ B4 ) ) ).

% old.prod.exhaust
thf(fact_68_old_Oprod_Oexhaust,axiom,
    ! [Y: produc981471411ee_a_a] :
      ~ ! [A4: tree_a,B4: a] :
          ( Y
         != ( produc649172771ee_a_a @ A4 @ B4 ) ) ).

% old.prod.exhaust
thf(fact_69_Pair__inject,axiom,
    ! [A: a,B: tree_a,A2: a,B2: tree_a] :
      ( ( ( produc686083979Tree_a @ A @ B )
        = ( produc686083979Tree_a @ A2 @ B2 ) )
     => ~ ( ( A = A2 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_70_Pair__inject,axiom,
    ! [A: tree_a,B: a,A2: tree_a,B2: a] :
      ( ( ( produc649172771ee_a_a @ A @ B )
        = ( produc649172771ee_a_a @ A2 @ B2 ) )
     => ~ ( ( A = A2 )
         => ( B != B2 ) ) ) ).

% Pair_inject
thf(fact_71_prod__cases,axiom,
    ! [P: produc143150363Tree_a > $o,P2: produc143150363Tree_a] :
      ( ! [A4: a,B4: tree_a] : ( P @ ( produc686083979Tree_a @ A4 @ B4 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_72_prod__cases,axiom,
    ! [P: produc981471411ee_a_a > $o,P2: produc981471411ee_a_a] :
      ( ! [A4: tree_a,B4: a] : ( P @ ( produc649172771ee_a_a @ A4 @ B4 ) )
     => ( P @ P2 ) ) ).

% prod_cases
thf(fact_73_surj__pair,axiom,
    ! [P2: produc143150363Tree_a] :
    ? [X5: a,Y4: tree_a] :
      ( P2
      = ( produc686083979Tree_a @ X5 @ Y4 ) ) ).

% surj_pair
thf(fact_74_surj__pair,axiom,
    ! [P2: produc981471411ee_a_a] :
    ? [X5: tree_a,Y4: a] :
      ( P2
      = ( produc649172771ee_a_a @ X5 @ Y4 ) ) ).

% surj_pair
thf(fact_75_removeLeaf_Osimps_I5_J,axiom,
    ! [V2: a,Vd2: a,Ve2: tree_a,Vf2: tree_a,Va2: a,Vb2: tree_a,Vc2: tree_a] :
      ( ( heapIm837449470Leaf_a @ ( t_a @ V2 @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
      = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ ( heapIm837449470Leaf_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) ) @ ( t_a @ V2 @ ( product_snd_a_Tree_a @ ( heapIm837449470Leaf_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) ) ).

% removeLeaf.simps(5)
thf(fact_76_BNF__Greatest__Fixpoint_Osubst__Pair,axiom,
    ! [P: tree_a > a > $o,X: tree_a,Y: a,A: produc981471411ee_a_a] :
      ( ( P @ X @ Y )
     => ( ( A
          = ( produc649172771ee_a_a @ X @ Y ) )
       => ( P @ ( product_fst_Tree_a_a @ A ) @ ( product_snd_Tree_a_a @ A ) ) ) ) ).

% BNF_Greatest_Fixpoint.subst_Pair
thf(fact_77_BNF__Greatest__Fixpoint_Osubst__Pair,axiom,
    ! [P: a > tree_a > $o,X: a,Y: tree_a,A: produc143150363Tree_a] :
      ( ( P @ X @ Y )
     => ( ( A
          = ( produc686083979Tree_a @ X @ Y ) )
       => ( P @ ( product_fst_a_Tree_a @ A ) @ ( product_snd_a_Tree_a @ A ) ) ) ) ).

% BNF_Greatest_Fixpoint.subst_Pair
thf(fact_78_conjI__realizer,axiom,
    ! [P: tree_a > $o,P2: tree_a,Q2: a > $o,Q: a] :
      ( ( P @ P2 )
     => ( ( Q2 @ Q )
       => ( ( P @ ( product_fst_Tree_a_a @ ( produc649172771ee_a_a @ P2 @ Q ) ) )
          & ( Q2 @ ( product_snd_Tree_a_a @ ( produc649172771ee_a_a @ P2 @ Q ) ) ) ) ) ) ).

% conjI_realizer
thf(fact_79_conjI__realizer,axiom,
    ! [P: a > $o,P2: a,Q2: tree_a > $o,Q: tree_a] :
      ( ( P @ P2 )
     => ( ( Q2 @ Q )
       => ( ( P @ ( product_fst_a_Tree_a @ ( produc686083979Tree_a @ P2 @ Q ) ) )
          & ( Q2 @ ( product_snd_a_Tree_a @ ( produc686083979Tree_a @ P2 @ Q ) ) ) ) ) ) ).

% conjI_realizer
thf(fact_80_exI__realizer,axiom,
    ! [P: a > tree_a > $o,Y: a,X: tree_a] :
      ( ( P @ Y @ X )
     => ( P @ ( product_snd_Tree_a_a @ ( produc649172771ee_a_a @ X @ Y ) ) @ ( product_fst_Tree_a_a @ ( produc649172771ee_a_a @ X @ Y ) ) ) ) ).

% exI_realizer
thf(fact_81_exI__realizer,axiom,
    ! [P: tree_a > a > $o,Y: tree_a,X: a] :
      ( ( P @ Y @ X )
     => ( P @ ( product_snd_a_Tree_a @ ( produc686083979Tree_a @ X @ Y ) ) @ ( product_fst_a_Tree_a @ ( produc686083979Tree_a @ X @ Y ) ) ) ) ).

% exI_realizer
thf(fact_82_exE__realizer_H,axiom,
    ! [P: a > tree_a > $o,P2: produc981471411ee_a_a] :
      ( ( P @ ( product_snd_Tree_a_a @ P2 ) @ ( product_fst_Tree_a_a @ P2 ) )
     => ~ ! [X5: tree_a,Y4: a] :
            ~ ( P @ Y4 @ X5 ) ) ).

% exE_realizer'
thf(fact_83_exE__realizer_H,axiom,
    ! [P: tree_a > a > $o,P2: produc143150363Tree_a] :
      ( ( P @ ( product_snd_a_Tree_a @ P2 ) @ ( product_fst_a_Tree_a @ P2 ) )
     => ~ ! [X5: a,Y4: tree_a] :
            ~ ( P @ Y4 @ X5 ) ) ).

% exE_realizer'
thf(fact_84_prod_Oswap__def,axiom,
    ( produc1478296771ee_a_a
    = ( ^ [P3: produc981471411ee_a_a] : ( produc686083979Tree_a @ ( product_snd_Tree_a_a @ P3 ) @ ( product_fst_Tree_a_a @ P3 ) ) ) ) ).

% prod.swap_def
thf(fact_85_prod_Oswap__def,axiom,
    ( produc1515207979Tree_a
    = ( ^ [P3: produc143150363Tree_a] : ( produc649172771ee_a_a @ ( product_snd_a_Tree_a @ P3 ) @ ( product_fst_a_Tree_a @ P3 ) ) ) ) ).

% prod.swap_def
thf(fact_86_heapify_Osimps_I2_J,axiom,
    ! [V2: a,L: tree_a,R: tree_a] :
      ( ( heapIm970322378pify_a @ ( t_a @ V2 @ L @ R ) )
      = ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( heapIm970322378pify_a @ L ) @ ( heapIm970322378pify_a @ R ) ) ) ) ).

% heapify.simps(2)
thf(fact_87_is__heap_Osimps_I4_J,axiom,
    ! [V2: a,Va2: a,Vb2: tree_a,Vc2: tree_a] :
      ( ( is_heap_a @ ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ e_a ) )
      = ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
        & ( is_heap_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) ) ).

% is_heap.simps(4)
thf(fact_88_is__heap_Osimps_I3_J,axiom,
    ! [V2: a,Va2: a,Vb2: tree_a,Vc2: tree_a] :
      ( ( is_heap_a @ ( t_a @ V2 @ e_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
      = ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
        & ( is_heap_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) ) ).

% is_heap.simps(3)
thf(fact_89_swap__swap,axiom,
    ! [P2: produc981471411ee_a_a] :
      ( ( produc1515207979Tree_a @ ( produc1478296771ee_a_a @ P2 ) )
      = P2 ) ).

% swap_swap
thf(fact_90_swap__swap,axiom,
    ! [P2: produc143150363Tree_a] :
      ( ( produc1478296771ee_a_a @ ( produc1515207979Tree_a @ P2 ) )
      = P2 ) ).

% swap_swap
thf(fact_91_swap__simp,axiom,
    ! [X: a,Y: tree_a] :
      ( ( produc1515207979Tree_a @ ( produc686083979Tree_a @ X @ Y ) )
      = ( produc649172771ee_a_a @ Y @ X ) ) ).

% swap_simp
thf(fact_92_swap__simp,axiom,
    ! [X: tree_a,Y: a] :
      ( ( produc1478296771ee_a_a @ ( produc649172771ee_a_a @ X @ Y ) )
      = ( produc686083979Tree_a @ Y @ X ) ) ).

% swap_simp
thf(fact_93_fst__swap,axiom,
    ! [X: produc981471411ee_a_a] :
      ( ( product_fst_a_Tree_a @ ( produc1478296771ee_a_a @ X ) )
      = ( product_snd_Tree_a_a @ X ) ) ).

% fst_swap
thf(fact_94_fst__swap,axiom,
    ! [X: produc143150363Tree_a] :
      ( ( product_fst_Tree_a_a @ ( produc1515207979Tree_a @ X ) )
      = ( product_snd_a_Tree_a @ X ) ) ).

% fst_swap
thf(fact_95_snd__swap,axiom,
    ! [X: produc143150363Tree_a] :
      ( ( product_snd_Tree_a_a @ ( produc1515207979Tree_a @ X ) )
      = ( product_fst_a_Tree_a @ X ) ) ).

% snd_swap
thf(fact_96_snd__swap,axiom,
    ! [X: produc981471411ee_a_a] :
      ( ( product_snd_a_Tree_a @ ( produc1478296771ee_a_a @ X ) )
      = ( product_fst_Tree_a_a @ X ) ) ).

% snd_swap
thf(fact_97_siftDown__Node,axiom,
    ! [T2: tree_a,V2: a,L: tree_a,R: tree_a] :
      ( ( T2
        = ( t_a @ V2 @ L @ R ) )
     => ? [L2: tree_a,V5: a,R2: tree_a] :
          ( ( ( heapIm1091024090Down_a @ T2 )
            = ( t_a @ V5 @ L2 @ R2 ) )
          & ( ord_less_eq_a @ V2 @ V5 ) ) ) ).

% siftDown_Node
thf(fact_98_heapify_Osimps_I1_J,axiom,
    ( ( heapIm970322378pify_a @ e_a )
    = e_a ) ).

% heapify.simps(1)
thf(fact_99_heapify__heap__is__heap,axiom,
    ! [T2: tree_a] : ( is_heap_a @ ( heapIm970322378pify_a @ T2 ) ) ).

% heapify_heap_is_heap
thf(fact_100_is__heap_Osimps_I5_J,axiom,
    ! [V2: a,Va2: a,Vb2: tree_a,Vc2: tree_a,Vd2: a,Ve2: tree_a,Vf2: tree_a] :
      ( ( is_heap_a @ ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) )
      = ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ V2 )
        & ( is_heap_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) )
        & ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
        & ( is_heap_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) ) ).

% is_heap.simps(5)
thf(fact_101_is__heap_Osimps_I6_J,axiom,
    ! [V2: a,Vd2: a,Ve2: tree_a,Vf2: tree_a,Va2: a,Vb2: tree_a,Vc2: tree_a] :
      ( ( is_heap_a @ ( t_a @ V2 @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
      = ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
        & ( is_heap_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) )
        & ( ord_less_eq_a @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ V2 )
        & ( is_heap_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) ) ) ).

% is_heap.simps(6)
thf(fact_102_is__heap__max,axiom,
    ! [V2: a,T2: tree_a] :
      ( ( in_tree_a @ V2 @ T2 )
     => ( ( is_heap_a @ T2 )
       => ( ord_less_eq_a @ V2 @ ( val_a @ T2 ) ) ) ) ).

% is_heap_max
thf(fact_103_order__refl,axiom,
    ! [X: a] : ( ord_less_eq_a @ X @ X ) ).

% order_refl
thf(fact_104_siftDown_Osimps_I3_J,axiom,
    ! [Va2: a,Vb2: tree_a,Vc2: tree_a,V2: a] :
      ( ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
       => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ e_a ) )
          = ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ e_a ) ) )
      & ( ~ ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
       => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ e_a ) )
          = ( t_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( heapIm1140443833left_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ ( heapIm1257206334ight_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) ) @ e_a ) ) ) ) ).

% siftDown.simps(3)
thf(fact_105_siftDown_Osimps_I4_J,axiom,
    ! [Va2: a,Vb2: tree_a,Vc2: tree_a,V2: a] :
      ( ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
       => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ e_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
          = ( t_a @ V2 @ e_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) )
      & ( ~ ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
       => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ e_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
          = ( t_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ e_a @ ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( heapIm1140443833left_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ ( heapIm1257206334ight_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) ) ) ) ) ) ).

% siftDown.simps(4)
thf(fact_106_siftDown_Osimps_I6_J,axiom,
    ! [Va2: a,Vb2: tree_a,Vc2: tree_a,Vd2: a,Ve2: tree_a,Vf2: tree_a,V2: a] :
      ( ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) )
       => ( ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ V2 )
           => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
              = ( t_a @ V2 @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) )
          & ( ~ ( ord_less_eq_a @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ V2 )
           => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
              = ( t_a @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( heapIm1140443833left_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ ( heapIm1257206334ight_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) ) ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) ) ) )
      & ( ~ ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) )
       => ( ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
           => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
              = ( t_a @ V2 @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) )
          & ( ~ ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
           => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
              = ( t_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) @ ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( heapIm1140443833left_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ ( heapIm1257206334ight_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) ) ) ) ) ) ) ) ).

% siftDown.simps(6)
thf(fact_107_siftDown_Osimps_I5_J,axiom,
    ! [Vd2: a,Ve2: tree_a,Vf2: tree_a,Va2: a,Vb2: tree_a,Vc2: tree_a,V2: a] :
      ( ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
       => ( ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
           => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) )
              = ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) ) )
          & ( ~ ( ord_less_eq_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ V2 )
           => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) )
              = ( t_a @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( heapIm1140443833left_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) @ ( heapIm1257206334ight_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) ) ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) ) ) ) )
      & ( ~ ( ord_less_eq_a @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ ( val_a @ ( t_a @ Va2 @ Vb2 @ Vc2 ) ) )
       => ( ( ( ord_less_eq_a @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ V2 )
           => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) )
              = ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) ) )
          & ( ~ ( ord_less_eq_a @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ V2 )
           => ( ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) )
              = ( t_a @ ( val_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ ( t_a @ Va2 @ Vb2 @ Vc2 ) @ ( heapIm1091024090Down_a @ ( t_a @ V2 @ ( heapIm1140443833left_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) @ ( heapIm1257206334ight_a @ ( t_a @ Vd2 @ Ve2 @ Vf2 ) ) ) ) ) ) ) ) ) ) ).

% siftDown.simps(5)
thf(fact_108_left_Osimps,axiom,
    ! [V2: a,L: tree_a,R: tree_a] :
      ( ( heapIm1140443833left_a @ ( t_a @ V2 @ L @ R ) )
      = L ) ).

% left.simps
thf(fact_109_right_Osimps,axiom,
    ! [V2: a,L: tree_a,R: tree_a] :
      ( ( heapIm1257206334ight_a @ ( t_a @ V2 @ L @ R ) )
      = R ) ).

% right.simps
thf(fact_110_dual__order_Oantisym,axiom,
    ! [B: a,A: a] :
      ( ( ord_less_eq_a @ B @ A )
     => ( ( ord_less_eq_a @ A @ B )
       => ( A = B ) ) ) ).

% dual_order.antisym
thf(fact_111_dual__order_Oeq__iff,axiom,
    ( ( ^ [Y3: a,Z2: a] : ( Y3 = Z2 ) )
    = ( ^ [A3: a,B3: a] :
          ( ( ord_less_eq_a @ B3 @ A3 )
          & ( ord_less_eq_a @ A3 @ B3 ) ) ) ) ).

% dual_order.eq_iff
thf(fact_112_dual__order_Otrans,axiom,
    ! [B: a,A: a,C: a] :
      ( ( ord_less_eq_a @ B @ A )
     => ( ( ord_less_eq_a @ C @ B )
       => ( ord_less_eq_a @ C @ A ) ) ) ).

% dual_order.trans
thf(fact_113_linorder__wlog,axiom,
    ! [P: a > a > $o,A: a,B: a] :
      ( ! [A4: a,B4: a] :
          ( ( ord_less_eq_a @ A4 @ B4 )
         => ( P @ A4 @ B4 ) )
     => ( ! [A4: a,B4: a] :
            ( ( P @ B4 @ A4 )
           => ( P @ A4 @ B4 ) )
       => ( P @ A @ B ) ) ) ).

% linorder_wlog
thf(fact_114_dual__order_Orefl,axiom,
    ! [A: a] : ( ord_less_eq_a @ A @ A ) ).

% dual_order.refl
thf(fact_115_order__trans,axiom,
    ! [X: a,Y: a,Z: a] :
      ( ( ord_less_eq_a @ X @ Y )
     => ( ( ord_less_eq_a @ Y @ Z )
       => ( ord_less_eq_a @ X @ Z ) ) ) ).

% order_trans
thf(fact_116_order__class_Oorder_Oantisym,axiom,
    ! [A: a,B: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_eq_a @ B @ A )
       => ( A = B ) ) ) ).

% order_class.order.antisym
thf(fact_117_ord__le__eq__trans,axiom,
    ! [A: a,B: a,C: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( B = C )
       => ( ord_less_eq_a @ A @ C ) ) ) ).

% ord_le_eq_trans
thf(fact_118_ord__eq__le__trans,axiom,
    ! [A: a,B: a,C: a] :
      ( ( A = B )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ord_less_eq_a @ A @ C ) ) ) ).

% ord_eq_le_trans
thf(fact_119_order__class_Oorder_Oeq__iff,axiom,
    ( ( ^ [Y3: a,Z2: a] : ( Y3 = Z2 ) )
    = ( ^ [A3: a,B3: a] :
          ( ( ord_less_eq_a @ A3 @ B3 )
          & ( ord_less_eq_a @ B3 @ A3 ) ) ) ) ).

% order_class.order.eq_iff
thf(fact_120_antisym__conv,axiom,
    ! [Y: a,X: a] :
      ( ( ord_less_eq_a @ Y @ X )
     => ( ( ord_less_eq_a @ X @ Y )
        = ( X = Y ) ) ) ).

% antisym_conv
thf(fact_121_le__cases3,axiom,
    ! [X: a,Y: a,Z: a] :
      ( ( ( ord_less_eq_a @ X @ Y )
       => ~ ( ord_less_eq_a @ Y @ Z ) )
     => ( ( ( ord_less_eq_a @ Y @ X )
         => ~ ( ord_less_eq_a @ X @ Z ) )
       => ( ( ( ord_less_eq_a @ X @ Z )
           => ~ ( ord_less_eq_a @ Z @ Y ) )
         => ( ( ( ord_less_eq_a @ Z @ Y )
             => ~ ( ord_less_eq_a @ Y @ X ) )
           => ( ( ( ord_less_eq_a @ Y @ Z )
               => ~ ( ord_less_eq_a @ Z @ X ) )
             => ~ ( ( ord_less_eq_a @ Z @ X )
                 => ~ ( ord_less_eq_a @ X @ Y ) ) ) ) ) ) ) ).

% le_cases3
thf(fact_122_order_Otrans,axiom,
    ! [A: a,B: a,C: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ord_less_eq_a @ A @ C ) ) ) ).

% order.trans
thf(fact_123_le__cases,axiom,
    ! [X: a,Y: a] :
      ( ~ ( ord_less_eq_a @ X @ Y )
     => ( ord_less_eq_a @ Y @ X ) ) ).

% le_cases
thf(fact_124_eq__refl,axiom,
    ! [X: a,Y: a] :
      ( ( X = Y )
     => ( ord_less_eq_a @ X @ Y ) ) ).

% eq_refl
thf(fact_125_linear,axiom,
    ! [X: a,Y: a] :
      ( ( ord_less_eq_a @ X @ Y )
      | ( ord_less_eq_a @ Y @ X ) ) ).

% linear
thf(fact_126_antisym,axiom,
    ! [X: a,Y: a] :
      ( ( ord_less_eq_a @ X @ Y )
     => ( ( ord_less_eq_a @ Y @ X )
       => ( X = Y ) ) ) ).

% antisym
thf(fact_127_eq__iff,axiom,
    ( ( ^ [Y3: a,Z2: a] : ( Y3 = Z2 ) )
    = ( ^ [X4: a,Y5: a] :
          ( ( ord_less_eq_a @ X4 @ Y5 )
          & ( ord_less_eq_a @ Y5 @ X4 ) ) ) ) ).

% eq_iff
thf(fact_128_ord__le__eq__subst,axiom,
    ! [A: a,B: a,F: a > a,C: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ( F @ B )
          = C )
       => ( ! [X5: a,Y4: a] :
              ( ( ord_less_eq_a @ X5 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X5 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ ( F @ A ) @ C ) ) ) ) ).

% ord_le_eq_subst
thf(fact_129_ord__eq__le__subst,axiom,
    ! [A: a,F: a > a,B: a,C: a] :
      ( ( A
        = ( F @ B ) )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ! [X5: a,Y4: a] :
              ( ( ord_less_eq_a @ X5 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X5 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ A @ ( F @ C ) ) ) ) ) ).

% ord_eq_le_subst
thf(fact_130_order__subst2,axiom,
    ! [A: a,B: a,F: a > a,C: a] :
      ( ( ord_less_eq_a @ A @ B )
     => ( ( ord_less_eq_a @ ( F @ B ) @ C )
       => ( ! [X5: a,Y4: a] :
              ( ( ord_less_eq_a @ X5 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X5 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ ( F @ A ) @ C ) ) ) ) ).

% order_subst2
thf(fact_131_order__subst1,axiom,
    ! [A: a,F: a > a,B: a,C: a] :
      ( ( ord_less_eq_a @ A @ ( F @ B ) )
     => ( ( ord_less_eq_a @ B @ C )
       => ( ! [X5: a,Y4: a] :
              ( ( ord_less_eq_a @ X5 @ Y4 )
             => ( ord_less_eq_a @ ( F @ X5 ) @ ( F @ Y4 ) ) )
         => ( ord_less_eq_a @ A @ ( F @ C ) ) ) ) ) ).

% order_subst1
thf(fact_132_hs__remove__max__def,axiom,
    ( heapIm915766629_max_a
    = ( ^ [T: tree_a] :
          ( if_Pro1144176865Tree_a
          @ ( ( product_snd_a_Tree_a @ ( heapIm837449470Leaf_a @ T ) )
            = e_a )
          @ ( produc686083979Tree_a @ ( val_a @ T ) @ e_a )
          @ ( produc686083979Tree_a @ ( val_a @ T ) @ ( heapIm1091024090Down_a @ ( t_a @ ( product_fst_a_Tree_a @ ( heapIm837449470Leaf_a @ T ) ) @ ( heapIm1140443833left_a @ ( product_snd_a_Tree_a @ ( heapIm837449470Leaf_a @ T ) ) ) @ ( heapIm1257206334ight_a @ ( product_snd_a_Tree_a @ ( heapIm837449470Leaf_a @ T ) ) ) ) ) ) ) ) ) ).

% hs_remove_max_def
thf(fact_133_Heap_Oremove__max__is__heap,axiom,
    ! [Empty: tree_a,Is_empty: tree_a > $o,Of_list: list_a > tree_a,Multiset: tree_a > multiset_a,As_tree: tree_a > tree_a,Remove_max: tree_a > produc143150363Tree_a,L: tree_a,M: a,L3: tree_a] :
      ( ( heap_Tree_a_a @ Empty @ Is_empty @ Of_list @ Multiset @ As_tree @ Remove_max )
     => ( ~ ( Is_empty @ L )
       => ( ( is_heap_a @ ( As_tree @ L ) )
         => ( ( ( produc686083979Tree_a @ M @ L3 )
              = ( Remove_max @ L ) )
           => ( is_heap_a @ ( As_tree @ L3 ) ) ) ) ) ) ).

% Heap.remove_max_is_heap
thf(fact_134_Heap_Oremove__max__val,axiom,
    ! [Empty: tree_a,Is_empty: tree_a > $o,Of_list: list_a > tree_a,Multiset: tree_a > multiset_a,As_tree: tree_a > tree_a,Remove_max: tree_a > produc143150363Tree_a,T2: tree_a,M: a,T3: tree_a] :
      ( ( heap_Tree_a_a @ Empty @ Is_empty @ Of_list @ Multiset @ As_tree @ Remove_max )
     => ( ~ ( Is_empty @ T2 )
       => ( ( ( produc686083979Tree_a @ M @ T3 )
            = ( Remove_max @ T2 ) )
         => ( M
            = ( val_a @ ( As_tree @ T2 ) ) ) ) ) ) ).

% Heap.remove_max_val
thf(fact_135_sndOp__def,axiom,
    ( bNF_sn210385162ee_a_a
    = ( ^ [P4: tree_a > tree_a > $o,Q3: tree_a > a > $o,Ac: produc981471411ee_a_a] : ( produc649172771ee_a_a @ ( bNF_pi1059296282ee_a_a @ P4 @ Q3 @ ( product_fst_Tree_a_a @ Ac ) @ ( product_snd_Tree_a_a @ Ac ) ) @ ( product_snd_Tree_a_a @ Ac ) ) ) ) ).

% sndOp_def
thf(fact_136_sndOp__def,axiom,
    ( bNF_sndOp_a_a_Tree_a
    = ( ^ [P4: a > a > $o,Q3: a > tree_a > $o,Ac: produc143150363Tree_a] : ( produc686083979Tree_a @ ( bNF_pi207687054Tree_a @ P4 @ Q3 @ ( product_fst_a_Tree_a @ Ac ) @ ( product_snd_a_Tree_a @ Ac ) ) @ ( product_snd_a_Tree_a @ Ac ) ) ) ) ).

% sndOp_def
thf(fact_137_fstOp__def,axiom,
    ( bNF_fstOp_Tree_a_a_a
    = ( ^ [P4: tree_a > a > $o,Q3: a > a > $o,Ac: produc981471411ee_a_a] : ( produc649172771ee_a_a @ ( product_fst_Tree_a_a @ Ac ) @ ( bNF_pi1407460238_a_a_a @ P4 @ Q3 @ ( product_fst_Tree_a_a @ Ac ) @ ( product_snd_Tree_a_a @ Ac ) ) ) ) ) ).

% fstOp_def
thf(fact_138_fstOp__def,axiom,
    ( bNF_fs1579355852Tree_a
    = ( ^ [P4: a > tree_a > $o,Q3: tree_a > tree_a > $o,Ac: produc143150363Tree_a] : ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ Ac ) @ ( bNF_pi1536086554Tree_a @ P4 @ Q3 @ ( product_fst_a_Tree_a @ Ac ) @ ( product_snd_a_Tree_a @ Ac ) ) ) ) ) ).

% fstOp_def
thf(fact_139_pred__subset__eq2,axiom,
    ! [R3: set_Pr1070816379Tree_a,S2: set_Pr1070816379Tree_a] :
      ( ( ord_le1327026842ee_a_o
        @ ^ [X4: a,Y5: tree_a] : ( member254315204Tree_a @ ( produc686083979Tree_a @ X4 @ Y5 ) @ R3 )
        @ ^ [X4: a,Y5: tree_a] : ( member254315204Tree_a @ ( produc686083979Tree_a @ X4 @ Y5 ) @ S2 ) )
      = ( ord_le1013007387Tree_a @ R3 @ S2 ) ) ).

% pred_subset_eq2
thf(fact_140_pred__subset__eq2,axiom,
    ! [R3: set_Pr921883667ee_a_a,S2: set_Pr921883667ee_a_a] :
      ( ( ord_le1748873858_a_a_o
        @ ^ [X4: tree_a,Y5: a] : ( member1092636252ee_a_a @ ( produc649172771ee_a_a @ X4 @ Y5 ) @ R3 )
        @ ^ [X4: tree_a,Y5: a] : ( member1092636252ee_a_a @ ( produc649172771ee_a_a @ X4 @ Y5 ) @ S2 ) )
      = ( ord_le864074675ee_a_a @ R3 @ S2 ) ) ).

% pred_subset_eq2
thf(fact_141_pred__equals__eq2,axiom,
    ! [R3: set_Pr1070816379Tree_a,S2: set_Pr1070816379Tree_a] :
      ( ( ( ^ [X4: a,Y5: tree_a] : ( member254315204Tree_a @ ( produc686083979Tree_a @ X4 @ Y5 ) @ R3 ) )
        = ( ^ [X4: a,Y5: tree_a] : ( member254315204Tree_a @ ( produc686083979Tree_a @ X4 @ Y5 ) @ S2 ) ) )
      = ( R3 = S2 ) ) ).

% pred_equals_eq2
thf(fact_142_pred__equals__eq2,axiom,
    ! [R3: set_Pr921883667ee_a_a,S2: set_Pr921883667ee_a_a] :
      ( ( ( ^ [X4: tree_a,Y5: a] : ( member1092636252ee_a_a @ ( produc649172771ee_a_a @ X4 @ Y5 ) @ R3 ) )
        = ( ^ [X4: tree_a,Y5: a] : ( member1092636252ee_a_a @ ( produc649172771ee_a_a @ X4 @ Y5 ) @ S2 ) ) )
      = ( R3 = S2 ) ) ).

% pred_equals_eq2
thf(fact_143_csquare__fstOp__sndOp,axiom,
    ! [F: ( a > tree_a > $o ) > produc143150363Tree_a > $o,P: a > a > $o,Q2: a > tree_a > $o] : ( bNF_cs739966834Tree_a @ ( collec486369286Tree_a @ ( F @ ( relcompp_a_a_Tree_a @ P @ Q2 ) ) ) @ product_snd_a_a @ product_fst_a_Tree_a @ ( bNF_fstOp_a_a_Tree_a @ P @ Q2 ) @ ( bNF_sndOp_a_a_Tree_a @ P @ Q2 ) ) ).

% csquare_fstOp_sndOp
thf(fact_144_csquare__fstOp__sndOp,axiom,
    ! [F: ( a > tree_a > $o ) > produc143150363Tree_a > $o,P: a > tree_a > $o,Q2: tree_a > tree_a > $o] : ( bNF_cs1091007358Tree_a @ ( collec486369286Tree_a @ ( F @ ( relcom439193229Tree_a @ P @ Q2 ) ) ) @ product_snd_a_Tree_a @ produc1206152067Tree_a @ ( bNF_fs1579355852Tree_a @ P @ Q2 ) @ ( bNF_sn687175434Tree_a @ P @ Q2 ) ) ).

% csquare_fstOp_sndOp
thf(fact_145_csquare__fstOp__sndOp,axiom,
    ! [F: ( a > a > $o ) > product_prod_a_a > $o,P: a > tree_a > $o,Q2: tree_a > a > $o] : ( bNF_cs1095035134ee_a_a @ ( collec645855634od_a_a @ ( F @ ( relcompp_a_Tree_a_a @ P @ Q2 ) ) ) @ product_snd_a_Tree_a @ product_fst_Tree_a_a @ ( bNF_fstOp_a_Tree_a_a @ P @ Q2 ) @ ( bNF_sndOp_a_Tree_a_a @ P @ Q2 ) ) ).

% csquare_fstOp_sndOp
thf(fact_146_subset__Collect__iff,axiom,
    ! [B5: set_a,A5: set_a,P: a > $o] :
      ( ( ord_less_eq_set_a @ B5 @ A5 )
     => ( ( ord_less_eq_set_a @ B5
          @ ( collect_a
            @ ^ [X4: a] :
                ( ( member_a @ X4 @ A5 )
                & ( P @ X4 ) ) ) )
        = ( ! [X4: a] :
              ( ( member_a @ X4 @ B5 )
             => ( P @ X4 ) ) ) ) ) ).

% subset_Collect_iff
thf(fact_147_subset__Collect__iff,axiom,
    ! [B5: set_Pr1070816379Tree_a,A5: set_Pr1070816379Tree_a,P: produc143150363Tree_a > $o] :
      ( ( ord_le1013007387Tree_a @ B5 @ A5 )
     => ( ( ord_le1013007387Tree_a @ B5
          @ ( collec486369286Tree_a
            @ ^ [X4: produc143150363Tree_a] :
                ( ( member254315204Tree_a @ X4 @ A5 )
                & ( P @ X4 ) ) ) )
        = ( ! [X4: produc143150363Tree_a] :
              ( ( member254315204Tree_a @ X4 @ B5 )
             => ( P @ X4 ) ) ) ) ) ).

% subset_Collect_iff
thf(fact_148_subset__CollectI,axiom,
    ! [B5: set_a,A5: set_a,Q2: a > $o,P: a > $o] :
      ( ( ord_less_eq_set_a @ B5 @ A5 )
     => ( ! [X5: a] :
            ( ( member_a @ X5 @ B5 )
           => ( ( Q2 @ X5 )
             => ( P @ X5 ) ) )
       => ( ord_less_eq_set_a
          @ ( collect_a
            @ ^ [X4: a] :
                ( ( member_a @ X4 @ B5 )
                & ( Q2 @ X4 ) ) )
          @ ( collect_a
            @ ^ [X4: a] :
                ( ( member_a @ X4 @ A5 )
                & ( P @ X4 ) ) ) ) ) ) ).

% subset_CollectI
thf(fact_149_subset__CollectI,axiom,
    ! [B5: set_Pr1070816379Tree_a,A5: set_Pr1070816379Tree_a,Q2: produc143150363Tree_a > $o,P: produc143150363Tree_a > $o] :
      ( ( ord_le1013007387Tree_a @ B5 @ A5 )
     => ( ! [X5: produc143150363Tree_a] :
            ( ( member254315204Tree_a @ X5 @ B5 )
           => ( ( Q2 @ X5 )
             => ( P @ X5 ) ) )
       => ( ord_le1013007387Tree_a
          @ ( collec486369286Tree_a
            @ ^ [X4: produc143150363Tree_a] :
                ( ( member254315204Tree_a @ X4 @ B5 )
                & ( Q2 @ X4 ) ) )
          @ ( collec486369286Tree_a
            @ ^ [X4: produc143150363Tree_a] :
                ( ( member254315204Tree_a @ X4 @ A5 )
                & ( P @ X4 ) ) ) ) ) ) ).

% subset_CollectI
thf(fact_150_pred__subset__eq,axiom,
    ! [R3: set_a,S2: set_a] :
      ( ( ord_less_eq_a_o
        @ ^ [X4: a] : ( member_a @ X4 @ R3 )
        @ ^ [X4: a] : ( member_a @ X4 @ S2 ) )
      = ( ord_less_eq_set_a @ R3 @ S2 ) ) ).

% pred_subset_eq
thf(fact_151_pred__subset__eq,axiom,
    ! [R3: set_Pr1070816379Tree_a,S2: set_Pr1070816379Tree_a] :
      ( ( ord_le1601593986ee_a_o
        @ ^ [X4: produc143150363Tree_a] : ( member254315204Tree_a @ X4 @ R3 )
        @ ^ [X4: produc143150363Tree_a] : ( member254315204Tree_a @ X4 @ S2 ) )
      = ( ord_le1013007387Tree_a @ R3 @ S2 ) ) ).

% pred_subset_eq
thf(fact_152_subrelI,axiom,
    ! [R: set_Pr1070816379Tree_a,S3: set_Pr1070816379Tree_a] :
      ( ! [X5: a,Y4: tree_a] :
          ( ( member254315204Tree_a @ ( produc686083979Tree_a @ X5 @ Y4 ) @ R )
         => ( member254315204Tree_a @ ( produc686083979Tree_a @ X5 @ Y4 ) @ S3 ) )
     => ( ord_le1013007387Tree_a @ R @ S3 ) ) ).

% subrelI
thf(fact_153_subrelI,axiom,
    ! [R: set_Pr921883667ee_a_a,S3: set_Pr921883667ee_a_a] :
      ( ! [X5: tree_a,Y4: a] :
          ( ( member1092636252ee_a_a @ ( produc649172771ee_a_a @ X5 @ Y4 ) @ R )
         => ( member1092636252ee_a_a @ ( produc649172771ee_a_a @ X5 @ Y4 ) @ S3 ) )
     => ( ord_le864074675ee_a_a @ R @ S3 ) ) ).

% subrelI
thf(fact_154_subsetI,axiom,
    ! [A5: set_a,B5: set_a] :
      ( ! [X5: a] :
          ( ( member_a @ X5 @ A5 )
         => ( member_a @ X5 @ B5 ) )
     => ( ord_less_eq_set_a @ A5 @ B5 ) ) ).

% subsetI
thf(fact_155_subsetI,axiom,
    ! [A5: set_Pr1070816379Tree_a,B5: set_Pr1070816379Tree_a] :
      ( ! [X5: produc143150363Tree_a] :
          ( ( member254315204Tree_a @ X5 @ A5 )
         => ( member254315204Tree_a @ X5 @ B5 ) )
     => ( ord_le1013007387Tree_a @ A5 @ B5 ) ) ).

% subsetI
thf(fact_156_Collect__restrict,axiom,
    ! [X6: set_a,P: a > $o] :
      ( ord_less_eq_set_a
      @ ( collect_a
        @ ^ [X4: a] :
            ( ( member_a @ X4 @ X6 )
            & ( P @ X4 ) ) )
      @ X6 ) ).

% Collect_restrict
thf(fact_157_Collect__restrict,axiom,
    ! [X6: set_Pr1070816379Tree_a,P: produc143150363Tree_a > $o] :
      ( ord_le1013007387Tree_a
      @ ( collec486369286Tree_a
        @ ^ [X4: produc143150363Tree_a] :
            ( ( member254315204Tree_a @ X4 @ X6 )
            & ( P @ X4 ) ) )
      @ X6 ) ).

% Collect_restrict
thf(fact_158_ssubst__Pair__rhs,axiom,
    ! [R: a,S3: tree_a,R3: set_Pr1070816379Tree_a,S4: tree_a] :
      ( ( member254315204Tree_a @ ( produc686083979Tree_a @ R @ S3 ) @ R3 )
     => ( ( S4 = S3 )
       => ( member254315204Tree_a @ ( produc686083979Tree_a @ R @ S4 ) @ R3 ) ) ) ).

% ssubst_Pair_rhs
thf(fact_159_ssubst__Pair__rhs,axiom,
    ! [R: tree_a,S3: a,R3: set_Pr921883667ee_a_a,S4: a] :
      ( ( member1092636252ee_a_a @ ( produc649172771ee_a_a @ R @ S3 ) @ R3 )
     => ( ( S4 = S3 )
       => ( member1092636252ee_a_a @ ( produc649172771ee_a_a @ R @ S4 ) @ R3 ) ) ) ).

% ssubst_Pair_rhs
thf(fact_160_in__mono,axiom,
    ! [A5: set_a,B5: set_a,X: a] :
      ( ( ord_less_eq_set_a @ A5 @ B5 )
     => ( ( member_a @ X @ A5 )
       => ( member_a @ X @ B5 ) ) ) ).

% in_mono
thf(fact_161_in__mono,axiom,
    ! [A5: set_Pr1070816379Tree_a,B5: set_Pr1070816379Tree_a,X: produc143150363Tree_a] :
      ( ( ord_le1013007387Tree_a @ A5 @ B5 )
     => ( ( member254315204Tree_a @ X @ A5 )
       => ( member254315204Tree_a @ X @ B5 ) ) ) ).

% in_mono
thf(fact_162_subsetD,axiom,
    ! [A5: set_a,B5: set_a,C: a] :
      ( ( ord_less_eq_set_a @ A5 @ B5 )
     => ( ( member_a @ C @ A5 )
       => ( member_a @ C @ B5 ) ) ) ).

% subsetD
thf(fact_163_subsetD,axiom,
    ! [A5: set_Pr1070816379Tree_a,B5: set_Pr1070816379Tree_a,C: produc143150363Tree_a] :
      ( ( ord_le1013007387Tree_a @ A5 @ B5 )
     => ( ( member254315204Tree_a @ C @ A5 )
       => ( member254315204Tree_a @ C @ B5 ) ) ) ).

% subsetD
thf(fact_164_subset__eq,axiom,
    ( ord_less_eq_set_a
    = ( ^ [A6: set_a,B6: set_a] :
        ! [X4: a] :
          ( ( member_a @ X4 @ A6 )
         => ( member_a @ X4 @ B6 ) ) ) ) ).

% subset_eq
thf(fact_165_subset__eq,axiom,
    ( ord_le1013007387Tree_a
    = ( ^ [A6: set_Pr1070816379Tree_a,B6: set_Pr1070816379Tree_a] :
        ! [X4: produc143150363Tree_a] :
          ( ( member254315204Tree_a @ X4 @ A6 )
         => ( member254315204Tree_a @ X4 @ B6 ) ) ) ) ).

% subset_eq
thf(fact_166_subset__iff,axiom,
    ( ord_less_eq_set_a
    = ( ^ [A6: set_a,B6: set_a] :
        ! [T: a] :
          ( ( member_a @ T @ A6 )
         => ( member_a @ T @ B6 ) ) ) ) ).

% subset_iff
thf(fact_167_subset__iff,axiom,
    ( ord_le1013007387Tree_a
    = ( ^ [A6: set_Pr1070816379Tree_a,B6: set_Pr1070816379Tree_a] :
        ! [T: produc143150363Tree_a] :
          ( ( member254315204Tree_a @ T @ A6 )
         => ( member254315204Tree_a @ T @ B6 ) ) ) ) ).

% subset_iff
thf(fact_168_Collect__mono,axiom,
    ! [P: produc143150363Tree_a > $o,Q2: produc143150363Tree_a > $o] :
      ( ! [X5: produc143150363Tree_a] :
          ( ( P @ X5 )
         => ( Q2 @ X5 ) )
     => ( ord_le1013007387Tree_a @ ( collec486369286Tree_a @ P ) @ ( collec486369286Tree_a @ Q2 ) ) ) ).

% Collect_mono
thf(fact_169_Collect__mono__iff,axiom,
    ! [P: produc143150363Tree_a > $o,Q2: produc143150363Tree_a > $o] :
      ( ( ord_le1013007387Tree_a @ ( collec486369286Tree_a @ P ) @ ( collec486369286Tree_a @ Q2 ) )
      = ( ! [X4: produc143150363Tree_a] :
            ( ( P @ X4 )
           => ( Q2 @ X4 ) ) ) ) ).

% Collect_mono_iff
thf(fact_170_Collect__subset,axiom,
    ! [A5: set_a,P: a > $o] :
      ( ord_less_eq_set_a
      @ ( collect_a
        @ ^ [X4: a] :
            ( ( member_a @ X4 @ A5 )
            & ( P @ X4 ) ) )
      @ A5 ) ).

% Collect_subset
thf(fact_171_Collect__subset,axiom,
    ! [A5: set_Pr1070816379Tree_a,P: produc143150363Tree_a > $o] :
      ( ord_le1013007387Tree_a
      @ ( collec486369286Tree_a
        @ ^ [X4: produc143150363Tree_a] :
            ( ( member254315204Tree_a @ X4 @ A5 )
            & ( P @ X4 ) ) )
      @ A5 ) ).

% Collect_subset
thf(fact_172_less__eq__set__def,axiom,
    ( ord_less_eq_set_a
    = ( ^ [A6: set_a,B6: set_a] :
          ( ord_less_eq_a_o
          @ ^ [X4: a] : ( member_a @ X4 @ A6 )
          @ ^ [X4: a] : ( member_a @ X4 @ B6 ) ) ) ) ).

% less_eq_set_def
thf(fact_173_less__eq__set__def,axiom,
    ( ord_le1013007387Tree_a
    = ( ^ [A6: set_Pr1070816379Tree_a,B6: set_Pr1070816379Tree_a] :
          ( ord_le1601593986ee_a_o
          @ ^ [X4: produc143150363Tree_a] : ( member254315204Tree_a @ X4 @ A6 )
          @ ^ [X4: produc143150363Tree_a] : ( member254315204Tree_a @ X4 @ B6 ) ) ) ) ).

% less_eq_set_def
thf(fact_174_prop__restrict,axiom,
    ! [X: a,Z3: set_a,X6: set_a,P: a > $o] :
      ( ( member_a @ X @ Z3 )
     => ( ( ord_less_eq_set_a @ Z3
          @ ( collect_a
            @ ^ [X4: a] :
                ( ( member_a @ X4 @ X6 )
                & ( P @ X4 ) ) ) )
       => ( P @ X ) ) ) ).

% prop_restrict
thf(fact_175_prop__restrict,axiom,
    ! [X: produc143150363Tree_a,Z3: set_Pr1070816379Tree_a,X6: set_Pr1070816379Tree_a,P: produc143150363Tree_a > $o] :
      ( ( member254315204Tree_a @ X @ Z3 )
     => ( ( ord_le1013007387Tree_a @ Z3
          @ ( collec486369286Tree_a
            @ ^ [X4: produc143150363Tree_a] :
                ( ( member254315204Tree_a @ X4 @ X6 )
                & ( P @ X4 ) ) ) )
       => ( P @ X ) ) ) ).

% prop_restrict
thf(fact_176_conj__subset__def,axiom,
    ! [A5: set_Pr1070816379Tree_a,P: produc143150363Tree_a > $o,Q2: produc143150363Tree_a > $o] :
      ( ( ord_le1013007387Tree_a @ A5
        @ ( collec486369286Tree_a
          @ ^ [X4: produc143150363Tree_a] :
              ( ( P @ X4 )
              & ( Q2 @ X4 ) ) ) )
      = ( ( ord_le1013007387Tree_a @ A5 @ ( collec486369286Tree_a @ P ) )
        & ( ord_le1013007387Tree_a @ A5 @ ( collec486369286Tree_a @ Q2 ) ) ) ) ).

% conj_subset_def
thf(fact_177_image2__eqI,axiom,
    ! [B: a,F: a > a,X: a,C: tree_a,G: a > tree_a,A5: set_a] :
      ( ( B
        = ( F @ X ) )
     => ( ( C
          = ( G @ X ) )
       => ( ( member_a @ X @ A5 )
         => ( member254315204Tree_a @ ( produc686083979Tree_a @ B @ C ) @ ( bNF_Gr651645592Tree_a @ A5 @ F @ G ) ) ) ) ) ).

% image2_eqI
thf(fact_178_image2__eqI,axiom,
    ! [B: a,F: produc143150363Tree_a > a,X: produc143150363Tree_a,C: tree_a,G: produc143150363Tree_a > tree_a,A5: set_Pr1070816379Tree_a] :
      ( ( B
        = ( F @ X ) )
     => ( ( C
          = ( G @ X ) )
       => ( ( member254315204Tree_a @ X @ A5 )
         => ( member254315204Tree_a @ ( produc686083979Tree_a @ B @ C ) @ ( bNF_Gr2042500789Tree_a @ A5 @ F @ G ) ) ) ) ) ).

% image2_eqI
thf(fact_179_image2__eqI,axiom,
    ! [B: tree_a,F: a > tree_a,X: a,C: a,G: a > a,A5: set_a] :
      ( ( B
        = ( F @ X ) )
     => ( ( C
          = ( G @ X ) )
       => ( ( member_a @ X @ A5 )
         => ( member1092636252ee_a_a @ ( produc649172771ee_a_a @ B @ C ) @ ( bNF_Gr614734384ee_a_a @ A5 @ F @ G ) ) ) ) ) ).

% image2_eqI
thf(fact_180_image2__eqI,axiom,
    ! [B: tree_a,F: produc143150363Tree_a > tree_a,X: produc143150363Tree_a,C: a,G: produc143150363Tree_a > a,A5: set_Pr1070816379Tree_a] :
      ( ( B
        = ( F @ X ) )
     => ( ( C
          = ( G @ X ) )
       => ( ( member254315204Tree_a @ X @ A5 )
         => ( member1092636252ee_a_a @ ( produc649172771ee_a_a @ B @ C ) @ ( bNF_Gr2005589581ee_a_a @ A5 @ F @ G ) ) ) ) ) ).

% image2_eqI
thf(fact_181_GreatestI2__order,axiom,
    ! [P: a > $o,X: a,Q2: a > $o] :
      ( ( P @ X )
     => ( ! [Y4: a] :
            ( ( P @ Y4 )
           => ( ord_less_eq_a @ Y4 @ X ) )
       => ( ! [X5: a] :
              ( ( P @ X5 )
             => ( ! [Y6: a] :
                    ( ( P @ Y6 )
                   => ( ord_less_eq_a @ Y6 @ X5 ) )
               => ( Q2 @ X5 ) ) )
         => ( Q2 @ ( order_Greatest_a @ P ) ) ) ) ) ).

% GreatestI2_order
thf(fact_182_Greatest__equality,axiom,
    ! [P: a > $o,X: a] :
      ( ( P @ X )
     => ( ! [Y4: a] :
            ( ( P @ Y4 )
           => ( ord_less_eq_a @ Y4 @ X ) )
       => ( ( order_Greatest_a @ P )
          = X ) ) ) ).

% Greatest_equality
thf(fact_183_Heap__axioms__def,axiom,
    ( heap_axioms_Tree_a_a
    = ( ^ [Is_empty2: tree_a > $o,Of_list2: list_a > tree_a,Multiset2: tree_a > multiset_a,As_tree2: tree_a > tree_a,Remove_max2: tree_a > produc143150363Tree_a] :
          ( ! [L4: tree_a] :
              ( ( Multiset2 @ L4 )
              = ( multiset_a2 @ ( As_tree2 @ L4 ) ) )
          & ! [I: list_a] : ( is_heap_a @ ( As_tree2 @ ( Of_list2 @ I ) ) )
          & ! [T: tree_a] :
              ( ( ( As_tree2 @ T )
                = e_a )
              = ( Is_empty2 @ T ) )
          & ! [L4: tree_a,M2: a,L5: tree_a] :
              ( ~ ( Is_empty2 @ L4 )
             => ( ( ( produc686083979Tree_a @ M2 @ L5 )
                  = ( Remove_max2 @ L4 ) )
               => ( ( add_mset_a @ M2 @ ( Multiset2 @ L5 ) )
                  = ( Multiset2 @ L4 ) ) ) )
          & ! [L4: tree_a,M2: a,L5: tree_a] :
              ( ~ ( Is_empty2 @ L4 )
             => ( ( is_heap_a @ ( As_tree2 @ L4 ) )
               => ( ( ( produc686083979Tree_a @ M2 @ L5 )
                    = ( Remove_max2 @ L4 ) )
                 => ( is_heap_a @ ( As_tree2 @ L5 ) ) ) ) )
          & ! [T: tree_a,M2: a,T4: tree_a] :
              ( ~ ( Is_empty2 @ T )
             => ( ( ( produc686083979Tree_a @ M2 @ T4 )
                  = ( Remove_max2 @ T ) )
               => ( M2
                  = ( val_a @ ( As_tree2 @ T ) ) ) ) ) ) ) ) ).

% Heap_axioms_def
thf(fact_184_siftDown__multiset,axiom,
    ! [T2: tree_a] :
      ( ( multiset_a2 @ ( heapIm1091024090Down_a @ T2 ) )
      = ( multiset_a2 @ T2 ) ) ).

% siftDown_multiset
thf(fact_185_Heap_Oremove__max__multiset_H,axiom,
    ! [Empty: tree_a,Is_empty: tree_a > $o,Of_list: list_a > tree_a,Multiset: tree_a > multiset_a,As_tree: tree_a > tree_a,Remove_max: tree_a > produc143150363Tree_a,L: tree_a,M: a,L3: tree_a] :
      ( ( heap_Tree_a_a @ Empty @ Is_empty @ Of_list @ Multiset @ As_tree @ Remove_max )
     => ( ~ ( Is_empty @ L )
       => ( ( ( produc686083979Tree_a @ M @ L3 )
            = ( Remove_max @ L ) )
         => ( ( add_mset_a @ M @ ( Multiset @ L3 ) )
            = ( Multiset @ L ) ) ) ) ) ).

% Heap.remove_max_multiset'
thf(fact_186_multiset__heapify,axiom,
    ! [T2: tree_a] :
      ( ( multiset_a2 @ ( heapIm970322378pify_a @ T2 ) )
      = ( multiset_a2 @ T2 ) ) ).

% multiset_heapify
thf(fact_187_Heap__axioms_Ointro,axiom,
    ! [Multiset: tree_a > multiset_a,As_tree: tree_a > tree_a,Of_list: list_a > tree_a,Is_empty: tree_a > $o,Remove_max: tree_a > produc143150363Tree_a] :
      ( ! [L6: tree_a] :
          ( ( Multiset @ L6 )
          = ( multiset_a2 @ ( As_tree @ L6 ) ) )
     => ( ! [I2: list_a] : ( is_heap_a @ ( As_tree @ ( Of_list @ I2 ) ) )
       => ( ! [T5: tree_a] :
              ( ( ( As_tree @ T5 )
                = e_a )
              = ( Is_empty @ T5 ) )
         => ( ! [L6: tree_a,M3: a,L2: tree_a] :
                ( ~ ( Is_empty @ L6 )
               => ( ( ( produc686083979Tree_a @ M3 @ L2 )
                    = ( Remove_max @ L6 ) )
                 => ( ( add_mset_a @ M3 @ ( Multiset @ L2 ) )
                    = ( Multiset @ L6 ) ) ) )
           => ( ! [L6: tree_a,M3: a,L2: tree_a] :
                  ( ~ ( Is_empty @ L6 )
                 => ( ( is_heap_a @ ( As_tree @ L6 ) )
                   => ( ( ( produc686083979Tree_a @ M3 @ L2 )
                        = ( Remove_max @ L6 ) )
                     => ( is_heap_a @ ( As_tree @ L2 ) ) ) ) )
             => ( ! [T5: tree_a,M3: a,T6: tree_a] :
                    ( ~ ( Is_empty @ T5 )
                   => ( ( ( produc686083979Tree_a @ M3 @ T6 )
                        = ( Remove_max @ T5 ) )
                     => ( M3
                        = ( val_a @ ( As_tree @ T5 ) ) ) ) )
               => ( heap_axioms_Tree_a_a @ Is_empty @ Of_list @ Multiset @ As_tree @ Remove_max ) ) ) ) ) ) ) ).

% Heap_axioms.intro
thf(fact_188_heap__top__geq,axiom,
    ! [A: a,T2: tree_a] :
      ( ( member_a @ A @ ( set_mset_a @ ( multiset_a2 @ T2 ) ) )
     => ( ( is_heap_a @ T2 )
       => ( ord_less_eq_a @ A @ ( val_a @ T2 ) ) ) ) ).

% heap_top_geq
thf(fact_189_prod_Osplit__sel__asm,axiom,
    ! [P: $o > $o,F: a > tree_a > $o,Prod: produc143150363Tree_a] :
      ( ( P @ ( produc1673233912ee_a_o @ F @ Prod ) )
      = ( ~ ( ( Prod
              = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) )
            & ~ ( P @ ( F @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) ) ) ) ) ).

% prod.split_sel_asm
thf(fact_190_prod_Osplit__sel__asm,axiom,
    ! [P: tree_a > $o,F: a > tree_a > tree_a,Prod: produc143150363Tree_a] :
      ( ( P @ ( produc873356882Tree_a @ F @ Prod ) )
      = ( ~ ( ( Prod
              = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) )
            & ~ ( P @ ( F @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) ) ) ) ) ).

% prod.split_sel_asm
thf(fact_191_prod_Osplit__sel__asm,axiom,
    ! [P: produc143150363Tree_a > $o,F: tree_a > a > produc143150363Tree_a,Prod: produc981471411ee_a_a] :
      ( ( P @ ( produc369019363Tree_a @ F @ Prod ) )
      = ( ~ ( ( Prod
              = ( produc649172771ee_a_a @ ( product_fst_Tree_a_a @ Prod ) @ ( product_snd_Tree_a_a @ Prod ) ) )
            & ~ ( P @ ( F @ ( product_fst_Tree_a_a @ Prod ) @ ( product_snd_Tree_a_a @ Prod ) ) ) ) ) ) ).

% prod.split_sel_asm
thf(fact_192_prod_Osplit__sel__asm,axiom,
    ! [P: produc981471411ee_a_a > $o,F: a > tree_a > produc981471411ee_a_a,Prod: produc143150363Tree_a] :
      ( ( P @ ( produc1331510035ee_a_a @ F @ Prod ) )
      = ( ~ ( ( Prod
              = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) )
            & ~ ( P @ ( F @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) ) ) ) ) ).

% prod.split_sel_asm
thf(fact_193_prod_Osplit__sel,axiom,
    ! [P: $o > $o,F: a > tree_a > $o,Prod: produc143150363Tree_a] :
      ( ( P @ ( produc1673233912ee_a_o @ F @ Prod ) )
      = ( ( Prod
          = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) )
       => ( P @ ( F @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) ) ) ) ).

% prod.split_sel
thf(fact_194_prod_Osplit__sel,axiom,
    ! [P: tree_a > $o,F: a > tree_a > tree_a,Prod: produc143150363Tree_a] :
      ( ( P @ ( produc873356882Tree_a @ F @ Prod ) )
      = ( ( Prod
          = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) )
       => ( P @ ( F @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) ) ) ) ).

% prod.split_sel
thf(fact_195_prod_Osplit__sel,axiom,
    ! [P: produc143150363Tree_a > $o,F: tree_a > a > produc143150363Tree_a,Prod: produc981471411ee_a_a] :
      ( ( P @ ( produc369019363Tree_a @ F @ Prod ) )
      = ( ( Prod
          = ( produc649172771ee_a_a @ ( product_fst_Tree_a_a @ Prod ) @ ( product_snd_Tree_a_a @ Prod ) ) )
       => ( P @ ( F @ ( product_fst_Tree_a_a @ Prod ) @ ( product_snd_Tree_a_a @ Prod ) ) ) ) ) ).

% prod.split_sel
thf(fact_196_prod_Osplit__sel,axiom,
    ! [P: produc981471411ee_a_a > $o,F: a > tree_a > produc981471411ee_a_a,Prod: produc143150363Tree_a] :
      ( ( P @ ( produc1331510035ee_a_a @ F @ Prod ) )
      = ( ( Prod
          = ( produc686083979Tree_a @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) )
       => ( P @ ( F @ ( product_fst_a_Tree_a @ Prod ) @ ( product_snd_a_Tree_a @ Prod ) ) ) ) ) ).

% prod.split_sel
thf(fact_197_mem__case__prodI,axiom,
    ! [Z: a,C: a > tree_a > set_a,A: a,B: tree_a] :
      ( ( member_a @ Z @ ( C @ A @ B ) )
     => ( member_a @ Z @ ( produc1902270_set_a @ C @ ( produc686083979Tree_a @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_198_mem__case__prodI,axiom,
    ! [Z: produc143150363Tree_a,C: a > tree_a > set_Pr1070816379Tree_a,A: a,B: tree_a] :
      ( ( member254315204Tree_a @ Z @ ( C @ A @ B ) )
     => ( member254315204Tree_a @ Z @ ( produc802621147Tree_a @ C @ ( produc686083979Tree_a @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_199_mem__case__prodI,axiom,
    ! [Z: a,C: tree_a > a > set_a,A: tree_a,B: a] :
      ( ( member_a @ Z @ ( C @ A @ B ) )
     => ( member_a @ Z @ ( produc136688934_set_a @ C @ ( produc649172771ee_a_a @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_200_mem__case__prodI,axiom,
    ! [Z: produc143150363Tree_a,C: tree_a > a > set_Pr1070816379Tree_a,A: tree_a,B: a] :
      ( ( member254315204Tree_a @ Z @ ( C @ A @ B ) )
     => ( member254315204Tree_a @ Z @ ( produc951236931Tree_a @ C @ ( produc649172771ee_a_a @ A @ B ) ) ) ) ).

% mem_case_prodI
thf(fact_201_mem__case__prodI2,axiom,
    ! [P2: produc143150363Tree_a,Z: a,C: a > tree_a > set_a] :
      ( ! [A4: a,B4: tree_a] :
          ( ( P2
            = ( produc686083979Tree_a @ A4 @ B4 ) )
         => ( member_a @ Z @ ( C @ A4 @ B4 ) ) )
     => ( member_a @ Z @ ( produc1902270_set_a @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_202_mem__case__prodI2,axiom,
    ! [P2: produc143150363Tree_a,Z: produc143150363Tree_a,C: a > tree_a > set_Pr1070816379Tree_a] :
      ( ! [A4: a,B4: tree_a] :
          ( ( P2
            = ( produc686083979Tree_a @ A4 @ B4 ) )
         => ( member254315204Tree_a @ Z @ ( C @ A4 @ B4 ) ) )
     => ( member254315204Tree_a @ Z @ ( produc802621147Tree_a @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_203_mem__case__prodI2,axiom,
    ! [P2: produc981471411ee_a_a,Z: a,C: tree_a > a > set_a] :
      ( ! [A4: tree_a,B4: a] :
          ( ( P2
            = ( produc649172771ee_a_a @ A4 @ B4 ) )
         => ( member_a @ Z @ ( C @ A4 @ B4 ) ) )
     => ( member_a @ Z @ ( produc136688934_set_a @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_204_mem__case__prodI2,axiom,
    ! [P2: produc981471411ee_a_a,Z: produc143150363Tree_a,C: tree_a > a > set_Pr1070816379Tree_a] :
      ( ! [A4: tree_a,B4: a] :
          ( ( P2
            = ( produc649172771ee_a_a @ A4 @ B4 ) )
         => ( member254315204Tree_a @ Z @ ( C @ A4 @ B4 ) ) )
     => ( member254315204Tree_a @ Z @ ( produc951236931Tree_a @ C @ P2 ) ) ) ).

% mem_case_prodI2
thf(fact_205_case__prodI,axiom,
    ! [F: tree_a > a > $o,A: tree_a,B: a] :
      ( ( F @ A @ B )
     => ( produc1587316832_a_a_o @ F @ ( produc649172771ee_a_a @ A @ B ) ) ) ).

% case_prodI
thf(fact_206_case__prodI,axiom,
    ! [F: a > tree_a > $o,A: a,B: tree_a] :
      ( ( F @ A @ B )
     => ( produc1673233912ee_a_o @ F @ ( produc686083979Tree_a @ A @ B ) ) ) ).

% case_prodI
thf(fact_207_case__prodI2,axiom,
    ! [P2: produc981471411ee_a_a,C: tree_a > a > $o] :
      ( ! [A4: tree_a,B4: a] :
          ( ( P2
            = ( produc649172771ee_a_a @ A4 @ B4 ) )
         => ( C @ A4 @ B4 ) )
     => ( produc1587316832_a_a_o @ C @ P2 ) ) ).

% case_prodI2
thf(fact_208_case__prodI2,axiom,
    ! [P2: produc143150363Tree_a,C: a > tree_a > $o] :
      ( ! [A4: a,B4: tree_a] :
          ( ( P2
            = ( produc686083979Tree_a @ A4 @ B4 ) )
         => ( C @ A4 @ B4 ) )
     => ( produc1673233912ee_a_o @ C @ P2 ) ) ).

% case_prodI2
thf(fact_209_case__prod__conv,axiom,
    ! [F: a > tree_a > $o,A: a,B: tree_a] :
      ( ( produc1673233912ee_a_o @ F @ ( produc686083979Tree_a @ A @ B ) )
      = ( F @ A @ B ) ) ).

% case_prod_conv
thf(fact_210_case__prod__conv,axiom,
    ! [F: a > tree_a > tree_a,A: a,B: tree_a] :
      ( ( produc873356882Tree_a @ F @ ( produc686083979Tree_a @ A @ B ) )
      = ( F @ A @ B ) ) ).

% case_prod_conv
thf(fact_211_case__prod__conv,axiom,
    ! [F: tree_a > a > produc143150363Tree_a,A: tree_a,B: a] :
      ( ( produc369019363Tree_a @ F @ ( produc649172771ee_a_a @ A @ B ) )
      = ( F @ A @ B ) ) ).

% case_prod_conv
thf(fact_212_case__prod__conv,axiom,
    ! [F: a > tree_a > produc981471411ee_a_a,A: a,B: tree_a] :
      ( ( produc1331510035ee_a_a @ F @ ( produc686083979Tree_a @ A @ B ) )
      = ( F @ A @ B ) ) ).

% case_prod_conv
thf(fact_213_case__swap,axiom,
    ! [F: a > tree_a > $o,P2: produc143150363Tree_a] :
      ( ( produc1587316832_a_a_o
        @ ^ [Y5: tree_a,X4: a] : ( F @ X4 @ Y5 )
        @ ( produc1515207979Tree_a @ P2 ) )
      = ( produc1673233912ee_a_o @ F @ P2 ) ) ).

% case_swap
thf(fact_214_case__swap,axiom,
    ! [F: a > tree_a > tree_a,P2: produc143150363Tree_a] :
      ( ( produc433477818Tree_a
        @ ^ [Y5: tree_a,X4: a] : ( F @ X4 @ Y5 )
        @ ( produc1515207979Tree_a @ P2 ) )
      = ( produc873356882Tree_a @ F @ P2 ) ) ).

% case_swap
thf(fact_215_case__swap,axiom,
    ! [F: tree_a > a > produc143150363Tree_a,P2: produc981471411ee_a_a] :
      ( ( produc493188987Tree_a
        @ ^ [Y5: a,X4: tree_a] : ( F @ X4 @ Y5 )
        @ ( produc1478296771ee_a_a @ P2 ) )
      = ( produc369019363Tree_a @ F @ P2 ) ) ).

% case_swap
thf(fact_216_case__swap,axiom,
    ! [F: a > tree_a > produc981471411ee_a_a,P2: produc143150363Tree_a] :
      ( ( produc1207340411ee_a_a
        @ ^ [Y5: tree_a,X4: a] : ( F @ X4 @ Y5 )
        @ ( produc1515207979Tree_a @ P2 ) )
      = ( produc1331510035ee_a_a @ F @ P2 ) ) ).

% case_swap
thf(fact_217_case__swap,axiom,
    ! [F: tree_a > a > $o,P2: produc981471411ee_a_a] :
      ( ( produc1673233912ee_a_o
        @ ^ [Y5: a,X4: tree_a] : ( F @ X4 @ Y5 )
        @ ( produc1478296771ee_a_a @ P2 ) )
      = ( produc1587316832_a_a_o @ F @ P2 ) ) ).

% case_swap
thf(fact_218_case__swap,axiom,
    ! [F: tree_a > a > tree_a,P2: produc981471411ee_a_a] :
      ( ( produc873356882Tree_a
        @ ^ [Y5: a,X4: tree_a] : ( F @ X4 @ Y5 )
        @ ( produc1478296771ee_a_a @ P2 ) )
      = ( produc433477818Tree_a @ F @ P2 ) ) ).

% case_swap
thf(fact_219_case__swap,axiom,
    ! [F: a > tree_a > produc143150363Tree_a,P2: produc143150363Tree_a] :
      ( ( produc369019363Tree_a
        @ ^ [Y5: tree_a,X4: a] : ( F @ X4 @ Y5 )
        @ ( produc1515207979Tree_a @ P2 ) )
      = ( produc493188987Tree_a @ F @ P2 ) ) ).

% case_swap
thf(fact_220_case__swap,axiom,
    ! [F: tree_a > a > produc981471411ee_a_a,P2: produc981471411ee_a_a] :
      ( ( produc1331510035ee_a_a
        @ ^ [Y5: a,X4: tree_a] : ( F @ X4 @ Y5 )
        @ ( produc1478296771ee_a_a @ P2 ) )
      = ( produc1207340411ee_a_a @ F @ P2 ) ) ).

% case_swap
thf(fact_221_Product__Type_OCollect__case__prodD,axiom,
    ! [X: produc981471411ee_a_a,A5: tree_a > a > $o] :
      ( ( member1092636252ee_a_a @ X @ ( collec1324690334ee_a_a @ ( produc1587316832_a_a_o @ A5 ) ) )
     => ( A5 @ ( product_fst_Tree_a_a @ X ) @ ( product_snd_Tree_a_a @ X ) ) ) ).

% Product_Type.Collect_case_prodD
thf(fact_222_Product__Type_OCollect__case__prodD,axiom,
    ! [X: produc143150363Tree_a,A5: a > tree_a > $o] :
      ( ( member254315204Tree_a @ X @ ( collec486369286Tree_a @ ( produc1673233912ee_a_o @ A5 ) ) )
     => ( A5 @ ( product_fst_a_Tree_a @ X ) @ ( product_snd_a_Tree_a @ X ) ) ) ).

% Product_Type.Collect_case_prodD
thf(fact_223_prod_Ocase__distrib,axiom,
    ! [H: $o > $o,F: a > tree_a > $o,Prod: produc143150363Tree_a] :
      ( ( H @ ( produc1673233912ee_a_o @ F @ Prod ) )
      = ( produc1673233912ee_a_o
        @ ^ [X13: a,X25: tree_a] : ( H @ ( F @ X13 @ X25 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_224_prod_Ocase__distrib,axiom,
    ! [H: $o > tree_a,F: a > tree_a > $o,Prod: produc143150363Tree_a] :
      ( ( H @ ( produc1673233912ee_a_o @ F @ Prod ) )
      = ( produc873356882Tree_a
        @ ^ [X13: a,X25: tree_a] : ( H @ ( F @ X13 @ X25 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_225_prod_Ocase__distrib,axiom,
    ! [H: $o > produc981471411ee_a_a,F: a > tree_a > $o,Prod: produc143150363Tree_a] :
      ( ( H @ ( produc1673233912ee_a_o @ F @ Prod ) )
      = ( produc1331510035ee_a_a
        @ ^ [X13: a,X25: tree_a] : ( H @ ( F @ X13 @ X25 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_226_prod_Ocase__distrib,axiom,
    ! [H: tree_a > $o,F: a > tree_a > tree_a,Prod: produc143150363Tree_a] :
      ( ( H @ ( produc873356882Tree_a @ F @ Prod ) )
      = ( produc1673233912ee_a_o
        @ ^ [X13: a,X25: tree_a] : ( H @ ( F @ X13 @ X25 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_227_prod_Ocase__distrib,axiom,
    ! [H: tree_a > tree_a,F: a > tree_a > tree_a,Prod: produc143150363Tree_a] :
      ( ( H @ ( produc873356882Tree_a @ F @ Prod ) )
      = ( produc873356882Tree_a
        @ ^ [X13: a,X25: tree_a] : ( H @ ( F @ X13 @ X25 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_228_prod_Ocase__distrib,axiom,
    ! [H: tree_a > produc981471411ee_a_a,F: a > tree_a > tree_a,Prod: produc143150363Tree_a] :
      ( ( H @ ( produc873356882Tree_a @ F @ Prod ) )
      = ( produc1331510035ee_a_a
        @ ^ [X13: a,X25: tree_a] : ( H @ ( F @ X13 @ X25 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_229_prod_Ocase__distrib,axiom,
    ! [H: produc143150363Tree_a > produc143150363Tree_a,F: tree_a > a > produc143150363Tree_a,Prod: produc981471411ee_a_a] :
      ( ( H @ ( produc369019363Tree_a @ F @ Prod ) )
      = ( produc369019363Tree_a
        @ ^ [X13: tree_a,X25: a] : ( H @ ( F @ X13 @ X25 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_230_prod_Ocase__distrib,axiom,
    ! [H: produc981471411ee_a_a > $o,F: a > tree_a > produc981471411ee_a_a,Prod: produc143150363Tree_a] :
      ( ( H @ ( produc1331510035ee_a_a @ F @ Prod ) )
      = ( produc1673233912ee_a_o
        @ ^ [X13: a,X25: tree_a] : ( H @ ( F @ X13 @ X25 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_231_prod_Ocase__distrib,axiom,
    ! [H: produc981471411ee_a_a > tree_a,F: a > tree_a > produc981471411ee_a_a,Prod: produc143150363Tree_a] :
      ( ( H @ ( produc1331510035ee_a_a @ F @ Prod ) )
      = ( produc873356882Tree_a
        @ ^ [X13: a,X25: tree_a] : ( H @ ( F @ X13 @ X25 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_232_prod_Ocase__distrib,axiom,
    ! [H: produc981471411ee_a_a > produc981471411ee_a_a,F: a > tree_a > produc981471411ee_a_a,Prod: produc143150363Tree_a] :
      ( ( H @ ( produc1331510035ee_a_a @ F @ Prod ) )
      = ( produc1331510035ee_a_a
        @ ^ [X13: a,X25: tree_a] : ( H @ ( F @ X13 @ X25 ) )
        @ Prod ) ) ).

% prod.case_distrib
thf(fact_233_case__prodE,axiom,
    ! [C: tree_a > a > $o,P2: produc981471411ee_a_a] :
      ( ( produc1587316832_a_a_o @ C @ P2 )
     => ~ ! [X5: tree_a,Y4: a] :
            ( ( P2
              = ( produc649172771ee_a_a @ X5 @ Y4 ) )
           => ~ ( C @ X5 @ Y4 ) ) ) ).

% case_prodE
thf(fact_234_case__prodE,axiom,
    ! [C: a > tree_a > $o,P2: produc143150363Tree_a] :
      ( ( produc1673233912ee_a_o @ C @ P2 )
     => ~ ! [X5: a,Y4: tree_a] :
            ( ( P2
              = ( produc686083979Tree_a @ X5 @ Y4 ) )
           => ~ ( C @ X5 @ Y4 ) ) ) ).

% case_prodE
thf(fact_235_case__prodD,axiom,
    ! [F: tree_a > a > $o,A: tree_a,B: a] :
      ( ( produc1587316832_a_a_o @ F @ ( produc649172771ee_a_a @ A @ B ) )
     => ( F @ A @ B ) ) ).

% case_prodD
thf(fact_236_case__prodD,axiom,
    ! [F: a > tree_a > $o,A: a,B: tree_a] :
      ( ( produc1673233912ee_a_o @ F @ ( produc686083979Tree_a @ A @ B ) )
     => ( F @ A @ B ) ) ).

% case_prodD
thf(fact_237_old_Oprod_Ocase,axiom,
    ! [F: a > tree_a > $o,X12: a,X24: tree_a] :
      ( ( produc1673233912ee_a_o @ F @ ( produc686083979Tree_a @ X12 @ X24 ) )
      = ( F @ X12 @ X24 ) ) ).

% old.prod.case
thf(fact_238_old_Oprod_Ocase,axiom,
    ! [F: a > tree_a > tree_a,X12: a,X24: tree_a] :
      ( ( produc873356882Tree_a @ F @ ( produc686083979Tree_a @ X12 @ X24 ) )
      = ( F @ X12 @ X24 ) ) ).

% old.prod.case
thf(fact_239_old_Oprod_Ocase,axiom,
    ! [F: tree_a > a > produc143150363Tree_a,X12: tree_a,X24: a] :
      ( ( produc369019363Tree_a @ F @ ( produc649172771ee_a_a @ X12 @ X24 ) )
      = ( F @ X12 @ X24 ) ) ).

% old.prod.case
thf(fact_240_old_Oprod_Ocase,axiom,
    ! [F: a > tree_a > produc981471411ee_a_a,X12: a,X24: tree_a] :
      ( ( produc1331510035ee_a_a @ F @ ( produc686083979Tree_a @ X12 @ X24 ) )
      = ( F @ X12 @ X24 ) ) ).

% old.prod.case
thf(fact_241_mem__case__prodE,axiom,
    ! [Z: a,C: a > tree_a > set_a,P2: produc143150363Tree_a] :
      ( ( member_a @ Z @ ( produc1902270_set_a @ C @ P2 ) )
     => ~ ! [X5: a,Y4: tree_a] :
            ( ( P2
              = ( produc686083979Tree_a @ X5 @ Y4 ) )
           => ~ ( member_a @ Z @ ( C @ X5 @ Y4 ) ) ) ) ).

% mem_case_prodE
thf(fact_242_mem__case__prodE,axiom,
    ! [Z: produc143150363Tree_a,C: a > tree_a > set_Pr1070816379Tree_a,P2: produc143150363Tree_a] :
      ( ( member254315204Tree_a @ Z @ ( produc802621147Tree_a @ C @ P2 ) )
     => ~ ! [X5: a,Y4: tree_a] :
            ( ( P2
              = ( produc686083979Tree_a @ X5 @ Y4 ) )
           => ~ ( member254315204Tree_a @ Z @ ( C @ X5 @ Y4 ) ) ) ) ).

% mem_case_prodE
thf(fact_243_mem__case__prodE,axiom,
    ! [Z: a,C: tree_a > a > set_a,P2: produc981471411ee_a_a] :
      ( ( member_a @ Z @ ( produc136688934_set_a @ C @ P2 ) )
     => ~ ! [X5: tree_a,Y4: a] :
            ( ( P2
              = ( produc649172771ee_a_a @ X5 @ Y4 ) )
           => ~ ( member_a @ Z @ ( C @ X5 @ Y4 ) ) ) ) ).

% mem_case_prodE
thf(fact_244_mem__case__prodE,axiom,
    ! [Z: produc143150363Tree_a,C: tree_a > a > set_Pr1070816379Tree_a,P2: produc981471411ee_a_a] :
      ( ( member254315204Tree_a @ Z @ ( produc951236931Tree_a @ C @ P2 ) )
     => ~ ! [X5: tree_a,Y4: a] :
            ( ( P2
              = ( produc649172771ee_a_a @ X5 @ Y4 ) )
           => ~ ( member254315204Tree_a @ Z @ ( C @ X5 @ Y4 ) ) ) ) ).

% mem_case_prodE
thf(fact_245_snd__def,axiom,
    ( product_snd_a_Tree_a
    = ( produc873356882Tree_a
      @ ^ [X13: a,X25: tree_a] : X25 ) ) ).

% snd_def
thf(fact_246_fst__def,axiom,
    ( product_fst_a_Tree_a
    = ( produc950721886ee_a_a
      @ ^ [X13: a,X25: tree_a] : X13 ) ) ).

% fst_def
thf(fact_247_fst__def,axiom,
    ( product_fst_Tree_a_a
    = ( produc433477818Tree_a
      @ ^ [X13: tree_a,X25: a] : X13 ) ) ).

% fst_def
thf(fact_248_case__prodE2,axiom,
    ! [Q2: $o > $o,P: a > tree_a > $o,Z: produc143150363Tree_a] :
      ( ( Q2 @ ( produc1673233912ee_a_o @ P @ Z ) )
     => ~ ! [X5: a,Y4: tree_a] :
            ( ( Z
              = ( produc686083979Tree_a @ X5 @ Y4 ) )
           => ~ ( Q2 @ ( P @ X5 @ Y4 ) ) ) ) ).

% case_prodE2
thf(fact_249_case__prodE2,axiom,
    ! [Q2: tree_a > $o,P: a > tree_a > tree_a,Z: produc143150363Tree_a] :
      ( ( Q2 @ ( produc873356882Tree_a @ P @ Z ) )
     => ~ ! [X5: a,Y4: tree_a] :
            ( ( Z
              = ( produc686083979Tree_a @ X5 @ Y4 ) )
           => ~ ( Q2 @ ( P @ X5 @ Y4 ) ) ) ) ).

% case_prodE2
thf(fact_250_case__prodE2,axiom,
    ! [Q2: produc143150363Tree_a > $o,P: tree_a > a > produc143150363Tree_a,Z: produc981471411ee_a_a] :
      ( ( Q2 @ ( produc369019363Tree_a @ P @ Z ) )
     => ~ ! [X5: tree_a,Y4: a] :
            ( ( Z
              = ( produc649172771ee_a_a @ X5 @ Y4 ) )
           => ~ ( Q2 @ ( P @ X5 @ Y4 ) ) ) ) ).

% case_prodE2
thf(fact_251_case__prodE2,axiom,
    ! [Q2: produc981471411ee_a_a > $o,P: a > tree_a > produc981471411ee_a_a,Z: produc143150363Tree_a] :
      ( ( Q2 @ ( produc1331510035ee_a_a @ P @ Z ) )
     => ~ ! [X5: a,Y4: tree_a] :
            ( ( Z
              = ( produc686083979Tree_a @ X5 @ Y4 ) )
           => ~ ( Q2 @ ( P @ X5 @ Y4 ) ) ) ) ).

% case_prodE2
thf(fact_252_case__prod__eta,axiom,
    ! [F: produc143150363Tree_a > $o] :
      ( ( produc1673233912ee_a_o
        @ ^ [X4: a,Y5: tree_a] : ( F @ ( produc686083979Tree_a @ X4 @ Y5 ) ) )
      = F ) ).

% case_prod_eta
thf(fact_253_case__prod__eta,axiom,
    ! [F: produc143150363Tree_a > tree_a] :
      ( ( produc873356882Tree_a
        @ ^ [X4: a,Y5: tree_a] : ( F @ ( produc686083979Tree_a @ X4 @ Y5 ) ) )
      = F ) ).

% case_prod_eta
thf(fact_254_case__prod__eta,axiom,
    ! [F: produc981471411ee_a_a > produc143150363Tree_a] :
      ( ( produc369019363Tree_a
        @ ^ [X4: tree_a,Y5: a] : ( F @ ( produc649172771ee_a_a @ X4 @ Y5 ) ) )
      = F ) ).

% case_prod_eta
thf(fact_255_case__prod__eta,axiom,
    ! [F: produc143150363Tree_a > produc981471411ee_a_a] :
      ( ( produc1331510035ee_a_a
        @ ^ [X4: a,Y5: tree_a] : ( F @ ( produc686083979Tree_a @ X4 @ Y5 ) ) )
      = F ) ).

% case_prod_eta
thf(fact_256_cond__case__prod__eta,axiom,
    ! [F: a > tree_a > $o,G: produc143150363Tree_a > $o] :
      ( ! [X5: a,Y4: tree_a] :
          ( ( F @ X5 @ Y4 )
          = ( G @ ( produc686083979Tree_a @ X5 @ Y4 ) ) )
     => ( ( produc1673233912ee_a_o @ F )
        = G ) ) ).

% cond_case_prod_eta
thf(fact_257_cond__case__prod__eta,axiom,
    ! [F: a > tree_a > tree_a,G: produc143150363Tree_a > tree_a] :
      ( ! [X5: a,Y4: tree_a] :
          ( ( F @ X5 @ Y4 )
          = ( G @ ( produc686083979Tree_a @ X5 @ Y4 ) ) )
     => ( ( produc873356882Tree_a @ F )
        = G ) ) ).

% cond_case_prod_eta
thf(fact_258_cond__case__prod__eta,axiom,
    ! [F: tree_a > a > produc143150363Tree_a,G: produc981471411ee_a_a > produc143150363Tree_a] :
      ( ! [X5: tree_a,Y4: a] :
          ( ( F @ X5 @ Y4 )
          = ( G @ ( produc649172771ee_a_a @ X5 @ Y4 ) ) )
     => ( ( produc369019363Tree_a @ F )
        = G ) ) ).

% cond_case_prod_eta
thf(fact_259_cond__case__prod__eta,axiom,
    ! [F: a > tree_a > produc981471411ee_a_a,G: produc143150363Tree_a > produc981471411ee_a_a] :
      ( ! [X5: a,Y4: tree_a] :
          ( ( F @ X5 @ Y4 )
          = ( G @ ( produc686083979Tree_a @ X5 @ Y4 ) ) )
     => ( ( produc1331510035ee_a_a @ F )
        = G ) ) ).

% cond_case_prod_eta
thf(fact_260_case__prod__Pair__iden,axiom,
    ! [P2: produc143150363Tree_a] :
      ( ( produc493188987Tree_a @ produc686083979Tree_a @ P2 )
      = P2 ) ).

% case_prod_Pair_iden
thf(fact_261_case__prod__Pair__iden,axiom,
    ! [P2: produc981471411ee_a_a] :
      ( ( produc1207340411ee_a_a @ produc649172771ee_a_a @ P2 )
      = P2 ) ).

% case_prod_Pair_iden
thf(fact_262_Collect__case__prod__mono,axiom,
    ! [A5: a > tree_a > $o,B5: a > tree_a > $o] :
      ( ( ord_le1327026842ee_a_o @ A5 @ B5 )
     => ( ord_le1013007387Tree_a @ ( collec486369286Tree_a @ ( produc1673233912ee_a_o @ A5 ) ) @ ( collec486369286Tree_a @ ( produc1673233912ee_a_o @ B5 ) ) ) ) ).

% Collect_case_prod_mono
thf(fact_263_prod_Ocase__eq__if,axiom,
    ( produc1673233912ee_a_o
    = ( ^ [F2: a > tree_a > $o,Prod3: produc143150363Tree_a] : ( F2 @ ( product_fst_a_Tree_a @ Prod3 ) @ ( product_snd_a_Tree_a @ Prod3 ) ) ) ) ).

% prod.case_eq_if
thf(fact_264_prod_Ocase__eq__if,axiom,
    ( produc873356882Tree_a
    = ( ^ [F2: a > tree_a > tree_a,Prod3: produc143150363Tree_a] : ( F2 @ ( product_fst_a_Tree_a @ Prod3 ) @ ( product_snd_a_Tree_a @ Prod3 ) ) ) ) ).

% prod.case_eq_if
thf(fact_265_prod_Ocase__eq__if,axiom,
    ( produc369019363Tree_a
    = ( ^ [F2: tree_a > a > produc143150363Tree_a,Prod3: produc981471411ee_a_a] : ( F2 @ ( product_fst_Tree_a_a @ Prod3 ) @ ( product_snd_Tree_a_a @ Prod3 ) ) ) ) ).

% prod.case_eq_if
thf(fact_266_prod_Ocase__eq__if,axiom,
    ( produc1331510035ee_a_a
    = ( ^ [F2: a > tree_a > produc981471411ee_a_a,Prod3: produc143150363Tree_a] : ( F2 @ ( product_fst_a_Tree_a @ Prod3 ) @ ( product_snd_a_Tree_a @ Prod3 ) ) ) ) ).

% prod.case_eq_if
thf(fact_267_case__prod__beta,axiom,
    ( produc1673233912ee_a_o
    = ( ^ [F2: a > tree_a > $o,P3: produc143150363Tree_a] : ( F2 @ ( product_fst_a_Tree_a @ P3 ) @ ( product_snd_a_Tree_a @ P3 ) ) ) ) ).

% case_prod_beta
thf(fact_268_case__prod__beta,axiom,
    ( produc873356882Tree_a
    = ( ^ [F2: a > tree_a > tree_a,P3: produc143150363Tree_a] : ( F2 @ ( product_fst_a_Tree_a @ P3 ) @ ( product_snd_a_Tree_a @ P3 ) ) ) ) ).

% case_prod_beta
thf(fact_269_case__prod__beta,axiom,
    ( produc369019363Tree_a
    = ( ^ [F2: tree_a > a > produc143150363Tree_a,P3: produc981471411ee_a_a] : ( F2 @ ( product_fst_Tree_a_a @ P3 ) @ ( product_snd_Tree_a_a @ P3 ) ) ) ) ).

% case_prod_beta
thf(fact_270_case__prod__beta,axiom,
    ( produc1331510035ee_a_a
    = ( ^ [F2: a > tree_a > produc981471411ee_a_a,P3: produc143150363Tree_a] : ( F2 @ ( product_fst_a_Tree_a @ P3 ) @ ( product_snd_a_Tree_a @ P3 ) ) ) ) ).

% case_prod_beta
thf(fact_271_internal__case__prod__def,axiom,
    produc1405823650ee_a_o = produc1673233912ee_a_o ).

% internal_case_prod_def
thf(fact_272_internal__case__prod__def,axiom,
    produc534868220Tree_a = produc873356882Tree_a ).

% internal_case_prod_def
thf(fact_273_internal__case__prod__def,axiom,
    produc126329485Tree_a = produc369019363Tree_a ).

% internal_case_prod_def
thf(fact_274_internal__case__prod__def,axiom,
    produc1088820157ee_a_a = produc1331510035ee_a_a ).

% internal_case_prod_def
thf(fact_275_fstOp__in,axiom,
    ! [Ac2: produc143150363Tree_a,P: a > tree_a > $o,Q2: tree_a > tree_a > $o] :
      ( ( member254315204Tree_a @ Ac2 @ ( collec486369286Tree_a @ ( produc1673233912ee_a_o @ ( relcom439193229Tree_a @ P @ Q2 ) ) ) )
     => ( member254315204Tree_a @ ( bNF_fs1579355852Tree_a @ P @ Q2 @ Ac2 ) @ ( collec486369286Tree_a @ ( produc1673233912ee_a_o @ P ) ) ) ) ).

% fstOp_in
thf(fact_276_sndOp__in,axiom,
    ! [Ac2: produc143150363Tree_a,P: a > a > $o,Q2: a > tree_a > $o] :
      ( ( member254315204Tree_a @ Ac2 @ ( collec486369286Tree_a @ ( produc1673233912ee_a_o @ ( relcompp_a_a_Tree_a @ P @ Q2 ) ) ) )
     => ( member254315204Tree_a @ ( bNF_sndOp_a_a_Tree_a @ P @ Q2 @ Ac2 ) @ ( collec486369286Tree_a @ ( produc1673233912ee_a_o @ Q2 ) ) ) ) ).

% sndOp_in
thf(fact_277_case__prod__beta_H,axiom,
    ( produc1673233912ee_a_o
    = ( ^ [F2: a > tree_a > $o,X4: produc143150363Tree_a] : ( F2 @ ( product_fst_a_Tree_a @ X4 ) @ ( product_snd_a_Tree_a @ X4 ) ) ) ) ).

% case_prod_beta'
thf(fact_278_case__prod__beta_H,axiom,
    ( produc873356882Tree_a
    = ( ^ [F2: a > tree_a > tree_a,X4: produc143150363Tree_a] : ( F2 @ ( product_fst_a_Tree_a @ X4 ) @ ( product_snd_a_Tree_a @ X4 ) ) ) ) ).

% case_prod_beta'
thf(fact_279_case__prod__beta_H,axiom,
    ( produc369019363Tree_a
    = ( ^ [F2: tree_a > a > produc143150363Tree_a,X4: produc981471411ee_a_a] : ( F2 @ ( product_fst_Tree_a_a @ X4 ) @ ( product_snd_Tree_a_a @ X4 ) ) ) ) ).

% case_prod_beta'
thf(fact_280_case__prod__beta_H,axiom,
    ( produc1331510035ee_a_a
    = ( ^ [F2: a > tree_a > produc981471411ee_a_a,X4: produc143150363Tree_a] : ( F2 @ ( product_fst_a_Tree_a @ X4 ) @ ( product_snd_a_Tree_a @ X4 ) ) ) ) ).

% case_prod_beta'
thf(fact_281_case__prod__unfold,axiom,
    ( produc1673233912ee_a_o
    = ( ^ [C2: a > tree_a > $o,P3: produc143150363Tree_a] : ( C2 @ ( product_fst_a_Tree_a @ P3 ) @ ( product_snd_a_Tree_a @ P3 ) ) ) ) ).

% case_prod_unfold
thf(fact_282_case__prod__unfold,axiom,
    ( produc873356882Tree_a
    = ( ^ [C2: a > tree_a > tree_a,P3: produc143150363Tree_a] : ( C2 @ ( product_fst_a_Tree_a @ P3 ) @ ( product_snd_a_Tree_a @ P3 ) ) ) ) ).

% case_prod_unfold
thf(fact_283_case__prod__unfold,axiom,
    ( produc369019363Tree_a
    = ( ^ [C2: tree_a > a > produc143150363Tree_a,P3: produc981471411ee_a_a] : ( C2 @ ( product_fst_Tree_a_a @ P3 ) @ ( product_snd_Tree_a_a @ P3 ) ) ) ) ).

% case_prod_unfold
thf(fact_284_case__prod__unfold,axiom,
    ( produc1331510035ee_a_a
    = ( ^ [C2: a > tree_a > produc981471411ee_a_a,P3: produc143150363Tree_a] : ( C2 @ ( product_fst_a_Tree_a @ P3 ) @ ( product_snd_a_Tree_a @ P3 ) ) ) ) ).

% case_prod_unfold
thf(fact_285_exE__realizer,axiom,
    ! [P: tree_a > a > $o,P2: produc143150363Tree_a,Q2: $o > $o,F: a > tree_a > $o] :
      ( ( P @ ( product_snd_a_Tree_a @ P2 ) @ ( product_fst_a_Tree_a @ P2 ) )
     => ( ! [X5: a,Y4: tree_a] :
            ( ( P @ Y4 @ X5 )
           => ( Q2 @ ( F @ X5 @ Y4 ) ) )
       => ( Q2 @ ( produc1673233912ee_a_o @ F @ P2 ) ) ) ) ).

% exE_realizer
thf(fact_286_exE__realizer,axiom,
    ! [P: tree_a > a > $o,P2: produc143150363Tree_a,Q2: tree_a > $o,F: a > tree_a > tree_a] :
      ( ( P @ ( product_snd_a_Tree_a @ P2 ) @ ( product_fst_a_Tree_a @ P2 ) )
     => ( ! [X5: a,Y4: tree_a] :
            ( ( P @ Y4 @ X5 )
           => ( Q2 @ ( F @ X5 @ Y4 ) ) )
       => ( Q2 @ ( produc873356882Tree_a @ F @ P2 ) ) ) ) ).

% exE_realizer
thf(fact_287_exE__realizer,axiom,
    ! [P: a > tree_a > $o,P2: produc981471411ee_a_a,Q2: produc143150363Tree_a > $o,F: tree_a > a > produc143150363Tree_a] :
      ( ( P @ ( product_snd_Tree_a_a @ P2 ) @ ( product_fst_Tree_a_a @ P2 ) )
     => ( ! [X5: tree_a,Y4: a] :
            ( ( P @ Y4 @ X5 )
           => ( Q2 @ ( F @ X5 @ Y4 ) ) )
       => ( Q2 @ ( produc369019363Tree_a @ F @ P2 ) ) ) ) ).

% exE_realizer
thf(fact_288_exE__realizer,axiom,
    ! [P: tree_a > a > $o,P2: produc143150363Tree_a,Q2: produc981471411ee_a_a > $o,F: a > tree_a > produc981471411ee_a_a] :
      ( ( P @ ( product_snd_a_Tree_a @ P2 ) @ ( product_fst_a_Tree_a @ P2 ) )
     => ( ! [X5: a,Y4: tree_a] :
            ( ( P @ Y4 @ X5 )
           => ( Q2 @ ( F @ X5 @ Y4 ) ) )
       => ( Q2 @ ( produc1331510035ee_a_a @ F @ P2 ) ) ) ) ).

% exE_realizer
thf(fact_289_split__cong,axiom,
    ! [Q: produc143150363Tree_a,F: a > tree_a > $o,G: a > tree_a > $o,P2: produc143150363Tree_a] :
      ( ! [X5: a,Y4: tree_a] :
          ( ( ( produc686083979Tree_a @ X5 @ Y4 )
            = Q )
         => ( ( F @ X5 @ Y4 )
            = ( G @ X5 @ Y4 ) ) )
     => ( ( P2 = Q )
       => ( ( produc1673233912ee_a_o @ F @ P2 )
          = ( produc1673233912ee_a_o @ G @ Q ) ) ) ) ).

% split_cong
thf(fact_290_split__cong,axiom,
    ! [Q: produc143150363Tree_a,F: a > tree_a > tree_a,G: a > tree_a > tree_a,P2: produc143150363Tree_a] :
      ( ! [X5: a,Y4: tree_a] :
          ( ( ( produc686083979Tree_a @ X5 @ Y4 )
            = Q )
         => ( ( F @ X5 @ Y4 )
            = ( G @ X5 @ Y4 ) ) )
     => ( ( P2 = Q )
       => ( ( produc873356882Tree_a @ F @ P2 )
          = ( produc873356882Tree_a @ G @ Q ) ) ) ) ).

% split_cong
thf(fact_291_split__cong,axiom,
    ! [Q: produc981471411ee_a_a,F: tree_a > a > produc143150363Tree_a,G: tree_a > a > produc143150363Tree_a,P2: produc981471411ee_a_a] :
      ( ! [X5: tree_a,Y4: a] :
          ( ( ( produc649172771ee_a_a @ X5 @ Y4 )
            = Q )
         => ( ( F @ X5 @ Y4 )
            = ( G @ X5 @ Y4 ) ) )
     => ( ( P2 = Q )
       => ( ( produc369019363Tree_a @ F @ P2 )
          = ( produc369019363Tree_a @ G @ Q ) ) ) ) ).

% split_cong
thf(fact_292_split__cong,axiom,
    ! [Q: produc143150363Tree_a,F: a > tree_a > produc981471411ee_a_a,G: a > tree_a > produc981471411ee_a_a,P2: produc143150363Tree_a] :
      ( ! [X5: a,Y4: tree_a] :
          ( ( ( produc686083979Tree_a @ X5 @ Y4 )
            = Q )
         => ( ( F @ X5 @ Y4 )
            = ( G @ X5 @ Y4 ) ) )
     => ( ( P2 = Q )
       => ( ( produc1331510035ee_a_a @ F @ P2 )
          = ( produc1331510035ee_a_a @ G @ Q ) ) ) ) ).

% split_cong
thf(fact_293_heap__top__max,axiom,
    ! [T2: tree_a] :
      ( ( T2 != e_a )
     => ( ( is_heap_a @ T2 )
       => ( ( val_a @ T2 )
          = ( lattic146396397_Max_a @ ( set_mset_a @ ( multiset_a2 @ T2 ) ) ) ) ) ) ).

% heap_top_max
thf(fact_294_curry__case__prod,axiom,
    ! [F: a > tree_a > $o] :
      ( ( produc1291432345ee_a_o @ ( produc1673233912ee_a_o @ F ) )
      = F ) ).

% curry_case_prod
thf(fact_295_curry__case__prod,axiom,
    ! [F: a > tree_a > tree_a] :
      ( ( produc740705523Tree_a @ ( produc873356882Tree_a @ F ) )
      = F ) ).

% curry_case_prod
thf(fact_296_curry__case__prod,axiom,
    ! [F: tree_a > a > produc143150363Tree_a] :
      ( ( produc1808426884Tree_a @ ( produc369019363Tree_a @ F ) )
      = F ) ).

% curry_case_prod
thf(fact_297_curry__case__prod,axiom,
    ! [F: a > tree_a > produc981471411ee_a_a] :
      ( ( produc623433908ee_a_a @ ( produc1331510035ee_a_a @ F ) )
      = F ) ).

% curry_case_prod
thf(fact_298_curryI,axiom,
    ! [F: produc143150363Tree_a > $o,A: a,B: tree_a] :
      ( ( F @ ( produc686083979Tree_a @ A @ B ) )
     => ( produc1291432345ee_a_o @ F @ A @ B ) ) ).

% curryI
thf(fact_299_curryI,axiom,
    ! [F: produc981471411ee_a_a > $o,A: tree_a,B: a] :
      ( ( F @ ( produc649172771ee_a_a @ A @ B ) )
     => ( produc1205515265_a_a_o @ F @ A @ B ) ) ).

% curryI
thf(fact_300_split__part,axiom,
    ! [P: $o,Q2: a > tree_a > $o] :
      ( ( produc1673233912ee_a_o
        @ ^ [A3: a,B3: tree_a] :
            ( P
            & ( Q2 @ A3 @ B3 ) ) )
      = ( ^ [Ab: produc143150363Tree_a] :
            ( P
            & ( produc1673233912ee_a_o @ Q2 @ Ab ) ) ) ) ).

% split_part
thf(fact_301_case__prod__curry,axiom,
    ! [F: produc143150363Tree_a > $o] :
      ( ( produc1673233912ee_a_o @ ( produc1291432345ee_a_o @ F ) )
      = F ) ).

% case_prod_curry
thf(fact_302_case__prod__curry,axiom,
    ! [F: produc143150363Tree_a > tree_a] :
      ( ( produc873356882Tree_a @ ( produc740705523Tree_a @ F ) )
      = F ) ).

% case_prod_curry
thf(fact_303_case__prod__curry,axiom,
    ! [F: produc981471411ee_a_a > produc143150363Tree_a] :
      ( ( produc369019363Tree_a @ ( produc1808426884Tree_a @ F ) )
      = F ) ).

% case_prod_curry
thf(fact_304_case__prod__curry,axiom,
    ! [F: produc143150363Tree_a > produc981471411ee_a_a] :
      ( ( produc1331510035ee_a_a @ ( produc623433908ee_a_a @ F ) )
      = F ) ).

% case_prod_curry
thf(fact_305_prod_Odisc__eq__case,axiom,
    ! [Prod: produc143150363Tree_a] :
      ( produc1673233912ee_a_o
      @ ^ [Uu2: a,Uv2: tree_a] : $true
      @ Prod ) ).

% prod.disc_eq_case
thf(fact_306_curryD,axiom,
    ! [F: produc143150363Tree_a > $o,A: a,B: tree_a] :
      ( ( produc1291432345ee_a_o @ F @ A @ B )
     => ( F @ ( produc686083979Tree_a @ A @ B ) ) ) ).

% curryD
thf(fact_307_curryD,axiom,
    ! [F: produc981471411ee_a_a > $o,A: tree_a,B: a] :
      ( ( produc1205515265_a_a_o @ F @ A @ B )
     => ( F @ ( produc649172771ee_a_a @ A @ B ) ) ) ).

% curryD
thf(fact_308_curryE,axiom,
    ! [F: produc143150363Tree_a > $o,A: a,B: tree_a] :
      ( ( produc1291432345ee_a_o @ F @ A @ B )
     => ( F @ ( produc686083979Tree_a @ A @ B ) ) ) ).

% curryE
thf(fact_309_curryE,axiom,
    ! [F: produc981471411ee_a_a > $o,A: tree_a,B: a] :
      ( ( produc1205515265_a_a_o @ F @ A @ B )
     => ( F @ ( produc649172771ee_a_a @ A @ B ) ) ) ).

% curryE
thf(fact_310_fst__snd__flip,axiom,
    ( product_fst_a_Tree_a
    = ( comp_P342079405Tree_a @ product_snd_Tree_a_a
      @ ( produc1331510035ee_a_a
        @ ^ [X4: a,Y5: tree_a] : ( produc649172771ee_a_a @ Y5 @ X4 ) ) ) ) ).

% fst_snd_flip
thf(fact_311_fst__snd__flip,axiom,
    ( product_fst_Tree_a_a
    = ( comp_P1663859001ee_a_a @ product_snd_a_Tree_a
      @ ( produc369019363Tree_a
        @ ^ [X4: tree_a,Y5: a] : ( produc686083979Tree_a @ Y5 @ X4 ) ) ) ) ).

% fst_snd_flip
thf(fact_312_snd__fst__flip,axiom,
    ( product_snd_Tree_a_a
    = ( comp_P1103783853ee_a_a @ product_fst_a_Tree_a
      @ ( produc369019363Tree_a
        @ ^ [X4: tree_a,Y5: a] : ( produc686083979Tree_a @ Y5 @ X4 ) ) ) ) ).

% snd_fst_flip
thf(fact_313_snd__fst__flip,axiom,
    ( product_snd_a_Tree_a
    = ( comp_P228269369Tree_a @ product_fst_Tree_a_a
      @ ( produc1331510035ee_a_a
        @ ^ [X4: a,Y5: tree_a] : ( produc649172771ee_a_a @ Y5 @ X4 ) ) ) ) ).

% snd_fst_flip
thf(fact_314_fst__fstOp,axiom,
    ! [P: a > tree_a > $o,Q2: tree_a > tree_a > $o] :
      ( product_fst_a_Tree_a
      = ( comp_P265462805Tree_a @ product_fst_a_Tree_a @ ( bNF_fs1579355852Tree_a @ P @ Q2 ) ) ) ).

% fst_fstOp
thf(fact_315_fst__fstOp,axiom,
    ! [P: tree_a > a > $o,Q2: a > a > $o] :
      ( product_fst_Tree_a_a
      = ( comp_P1066590417ee_a_a @ product_fst_Tree_a_a @ ( bNF_fstOp_Tree_a_a_a @ P @ Q2 ) ) ) ).

% fst_fstOp
thf(fact_316_snd__sndOp,axiom,
    ! [P: a > a > $o,Q2: a > tree_a > $o] :
      ( product_snd_a_Tree_a
      = ( comp_P825537953Tree_a @ product_snd_a_Tree_a @ ( bNF_sndOp_a_a_Tree_a @ P @ Q2 ) ) ) ).

% snd_sndOp
thf(fact_317_comp__apply__eq,axiom,
    ! [F: produc143150363Tree_a > tree_a,G: produc981471411ee_a_a > produc143150363Tree_a,X: produc981471411ee_a_a,H: produc143150363Tree_a > tree_a,K: produc981471411ee_a_a > produc143150363Tree_a] :
      ( ( ( F @ ( G @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp_P1663859001ee_a_a @ F @ G @ X )
        = ( comp_P1663859001ee_a_a @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_318_comp__apply__eq,axiom,
    ! [F: produc981471411ee_a_a > tree_a,G: produc143150363Tree_a > produc981471411ee_a_a,X: produc143150363Tree_a,H: produc981471411ee_a_a > tree_a,K: produc143150363Tree_a > produc981471411ee_a_a] :
      ( ( ( F @ ( G @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp_P228269369Tree_a @ F @ G @ X )
        = ( comp_P228269369Tree_a @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_319_comp__apply__eq,axiom,
    ! [F: produc981471411ee_a_a > tree_a,G: produc143150363Tree_a > produc981471411ee_a_a,X: produc143150363Tree_a,H: produc143150363Tree_a > tree_a,K: produc143150363Tree_a > produc143150363Tree_a] :
      ( ( ( F @ ( G @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp_P228269369Tree_a @ F @ G @ X )
        = ( comp_P825537953Tree_a @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_320_comp__apply__eq,axiom,
    ! [F: produc981471411ee_a_a > tree_a,G: produc143150363Tree_a > produc981471411ee_a_a,X: produc143150363Tree_a,H: tree_a > tree_a,K: produc143150363Tree_a > tree_a] :
      ( ( ( F @ ( G @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp_P228269369Tree_a @ F @ G @ X )
        = ( comp_T236170232Tree_a @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_321_comp__apply__eq,axiom,
    ! [F: produc143150363Tree_a > tree_a,G: produc143150363Tree_a > produc143150363Tree_a,X: produc143150363Tree_a,H: produc981471411ee_a_a > tree_a,K: produc143150363Tree_a > produc981471411ee_a_a] :
      ( ( ( F @ ( G @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp_P825537953Tree_a @ F @ G @ X )
        = ( comp_P228269369Tree_a @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_322_comp__apply__eq,axiom,
    ! [F: produc143150363Tree_a > tree_a,G: produc143150363Tree_a > produc143150363Tree_a,X: produc143150363Tree_a,H: produc143150363Tree_a > tree_a,K: produc143150363Tree_a > produc143150363Tree_a] :
      ( ( ( F @ ( G @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp_P825537953Tree_a @ F @ G @ X )
        = ( comp_P825537953Tree_a @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_323_comp__apply__eq,axiom,
    ! [F: produc143150363Tree_a > tree_a,G: produc143150363Tree_a > produc143150363Tree_a,X: produc143150363Tree_a,H: tree_a > tree_a,K: produc143150363Tree_a > tree_a] :
      ( ( ( F @ ( G @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp_P825537953Tree_a @ F @ G @ X )
        = ( comp_T236170232Tree_a @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_324_comp__apply__eq,axiom,
    ! [F: tree_a > tree_a,G: produc143150363Tree_a > tree_a,X: produc143150363Tree_a,H: produc981471411ee_a_a > tree_a,K: produc143150363Tree_a > produc981471411ee_a_a] :
      ( ( ( F @ ( G @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp_T236170232Tree_a @ F @ G @ X )
        = ( comp_P228269369Tree_a @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_325_comp__apply__eq,axiom,
    ! [F: tree_a > tree_a,G: produc143150363Tree_a > tree_a,X: produc143150363Tree_a,H: produc143150363Tree_a > tree_a,K: produc143150363Tree_a > produc143150363Tree_a] :
      ( ( ( F @ ( G @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp_T236170232Tree_a @ F @ G @ X )
        = ( comp_P825537953Tree_a @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_326_comp__apply__eq,axiom,
    ! [F: tree_a > tree_a,G: produc143150363Tree_a > tree_a,X: produc143150363Tree_a,H: tree_a > tree_a,K: produc143150363Tree_a > tree_a] :
      ( ( ( F @ ( G @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp_T236170232Tree_a @ F @ G @ X )
        = ( comp_T236170232Tree_a @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_327_snd__comp__apsnd,axiom,
    ! [F: tree_a > tree_a] :
      ( ( comp_P825537953Tree_a @ product_snd_a_Tree_a @ ( produc819961216ee_a_a @ F ) )
      = ( comp_T236170232Tree_a @ F @ product_snd_a_Tree_a ) ) ).

% snd_comp_apsnd
thf(fact_328_fst__comp__apfst,axiom,
    ! [F: a > a] :
      ( ( comp_P265462805Tree_a @ product_fst_a_Tree_a @ ( produc1107567542Tree_a @ F ) )
      = ( comp_a608639864Tree_a @ F @ product_fst_a_Tree_a ) ) ).

% fst_comp_apfst
thf(fact_329_fst__comp__apfst,axiom,
    ! [F: tree_a > tree_a] :
      ( ( comp_P1066590417ee_a_a @ product_fst_Tree_a_a @ ( produc569472578ee_a_a @ F ) )
      = ( comp_T1074491280ee_a_a @ F @ product_fst_Tree_a_a ) ) ).

% fst_comp_apfst
thf(fact_330_apfst__conv,axiom,
    ! [F: tree_a > tree_a,X: tree_a,Y: a] :
      ( ( produc569472578ee_a_a @ F @ ( produc649172771ee_a_a @ X @ Y ) )
      = ( produc649172771ee_a_a @ ( F @ X ) @ Y ) ) ).

% apfst_conv
thf(fact_331_apfst__conv,axiom,
    ! [F: a > a,X: a,Y: tree_a] :
      ( ( produc1107567542Tree_a @ F @ ( produc686083979Tree_a @ X @ Y ) )
      = ( produc686083979Tree_a @ ( F @ X ) @ Y ) ) ).

% apfst_conv
thf(fact_332_apsnd__conv,axiom,
    ! [F: a > a,X: tree_a,Y: a] :
      ( ( produc969245172Tree_a @ F @ ( produc649172771ee_a_a @ X @ Y ) )
      = ( produc649172771ee_a_a @ X @ ( F @ Y ) ) ) ).

% apsnd_conv
thf(fact_333_apsnd__conv,axiom,
    ! [F: tree_a > tree_a,X: a,Y: tree_a] :
      ( ( produc819961216ee_a_a @ F @ ( produc686083979Tree_a @ X @ Y ) )
      = ( produc686083979Tree_a @ X @ ( F @ Y ) ) ) ).

% apsnd_conv
thf(fact_334_fst__apfst,axiom,
    ! [F: a > a,X: produc143150363Tree_a] :
      ( ( product_fst_a_Tree_a @ ( produc1107567542Tree_a @ F @ X ) )
      = ( F @ ( product_fst_a_Tree_a @ X ) ) ) ).

% fst_apfst
thf(fact_335_fst__apfst,axiom,
    ! [F: tree_a > tree_a,X: produc981471411ee_a_a] :
      ( ( product_fst_Tree_a_a @ ( produc569472578ee_a_a @ F @ X ) )
      = ( F @ ( product_fst_Tree_a_a @ X ) ) ) ).

% fst_apfst
thf(fact_336_apfst__eq__conv,axiom,
    ! [F: a > a,X: produc143150363Tree_a,G: a > a] :
      ( ( ( produc1107567542Tree_a @ F @ X )
        = ( produc1107567542Tree_a @ G @ X ) )
      = ( ( F @ ( product_fst_a_Tree_a @ X ) )
        = ( G @ ( product_fst_a_Tree_a @ X ) ) ) ) ).

% apfst_eq_conv
thf(fact_337_snd__apfst,axiom,
    ! [F: a > a,X: produc143150363Tree_a] :
      ( ( product_snd_a_Tree_a @ ( produc1107567542Tree_a @ F @ X ) )
      = ( product_snd_a_Tree_a @ X ) ) ).

% snd_apfst
thf(fact_338_fst__apsnd,axiom,
    ! [F: tree_a > tree_a,X: produc143150363Tree_a] :
      ( ( product_fst_a_Tree_a @ ( produc819961216ee_a_a @ F @ X ) )
      = ( product_fst_a_Tree_a @ X ) ) ).

% fst_apsnd
thf(fact_339_fst__apsnd,axiom,
    ! [F: a > a,X: produc981471411ee_a_a] :
      ( ( product_fst_Tree_a_a @ ( produc969245172Tree_a @ F @ X ) )
      = ( product_fst_Tree_a_a @ X ) ) ).

% fst_apsnd
thf(fact_340_apsnd__eq__conv,axiom,
    ! [F: tree_a > tree_a,X: produc143150363Tree_a,G: tree_a > tree_a] :
      ( ( ( produc819961216ee_a_a @ F @ X )
        = ( produc819961216ee_a_a @ G @ X ) )
      = ( ( F @ ( product_snd_a_Tree_a @ X ) )
        = ( G @ ( product_snd_a_Tree_a @ X ) ) ) ) ).

% apsnd_eq_conv
thf(fact_341_snd__apsnd,axiom,
    ! [F: tree_a > tree_a,X: produc143150363Tree_a] :
      ( ( product_snd_a_Tree_a @ ( produc819961216ee_a_a @ F @ X ) )
      = ( F @ ( product_snd_a_Tree_a @ X ) ) ) ).

% snd_apsnd
thf(fact_342_snd__comp__apfst,axiom,
    ! [F: a > a] :
      ( ( comp_P825537953Tree_a @ product_snd_a_Tree_a @ ( produc1107567542Tree_a @ F ) )
      = product_snd_a_Tree_a ) ).

% snd_comp_apfst
thf(fact_343_fst__comp__apsnd,axiom,
    ! [F: tree_a > tree_a] :
      ( ( comp_P265462805Tree_a @ product_fst_a_Tree_a @ ( produc819961216ee_a_a @ F ) )
      = product_fst_a_Tree_a ) ).

% fst_comp_apsnd
thf(fact_344_fst__comp__apsnd,axiom,
    ! [F: a > a] :
      ( ( comp_P1066590417ee_a_a @ product_fst_Tree_a_a @ ( produc969245172Tree_a @ F ) )
      = product_fst_Tree_a_a ) ).

% fst_comp_apsnd
thf(fact_345_apfst__apsnd,axiom,
    ! [F: tree_a > a,G: a > tree_a,X: produc981471411ee_a_a] :
      ( ( produc606383786Tree_a @ F @ ( produc1296751488Tree_a @ G @ X ) )
      = ( produc686083979Tree_a @ ( F @ ( product_fst_Tree_a_a @ X ) ) @ ( G @ ( product_snd_Tree_a_a @ X ) ) ) ) ).

% apfst_apsnd
thf(fact_346_apfst__apsnd,axiom,
    ! [F: tree_a > tree_a,G: a > a,X: produc981471411ee_a_a] :
      ( ( produc569472578ee_a_a @ F @ ( produc969245172Tree_a @ G @ X ) )
      = ( produc649172771ee_a_a @ ( F @ ( product_fst_Tree_a_a @ X ) ) @ ( G @ ( product_snd_Tree_a_a @ X ) ) ) ) ).

% apfst_apsnd
thf(fact_347_apfst__apsnd,axiom,
    ! [F: a > tree_a,G: tree_a > a,X: produc143150363Tree_a] :
      ( ( produc1070656334ee_a_a @ F @ ( produc21534708_a_a_a @ G @ X ) )
      = ( produc649172771ee_a_a @ ( F @ ( product_fst_a_Tree_a @ X ) ) @ ( G @ ( product_snd_a_Tree_a @ X ) ) ) ) ).

% apfst_apsnd
thf(fact_348_apfst__apsnd,axiom,
    ! [F: a > a,G: tree_a > tree_a,X: produc143150363Tree_a] :
      ( ( produc1107567542Tree_a @ F @ ( produc819961216ee_a_a @ G @ X ) )
      = ( produc686083979Tree_a @ ( F @ ( product_fst_a_Tree_a @ X ) ) @ ( G @ ( product_snd_a_Tree_a @ X ) ) ) ) ).

% apfst_apsnd
thf(fact_349_apsnd__apfst,axiom,
    ! [F: a > tree_a,G: tree_a > a,X: produc981471411ee_a_a] :
      ( ( produc932333964ee_a_a @ F @ ( produc159857078_a_a_a @ G @ X ) )
      = ( produc686083979Tree_a @ ( G @ ( product_fst_Tree_a_a @ X ) ) @ ( F @ ( product_snd_Tree_a_a @ X ) ) ) ) ).

% apsnd_apfst
thf(fact_350_apsnd__apfst,axiom,
    ! [F: a > a,G: tree_a > tree_a,X: produc981471411ee_a_a] :
      ( ( produc969245172Tree_a @ F @ ( produc569472578ee_a_a @ G @ X ) )
      = ( produc649172771ee_a_a @ ( G @ ( product_fst_Tree_a_a @ X ) ) @ ( F @ ( product_snd_Tree_a_a @ X ) ) ) ) ).

% apsnd_apfst
thf(fact_351_apsnd__apfst,axiom,
    ! [F: tree_a > a,G: a > tree_a,X: produc143150363Tree_a] :
      ( ( produc856872424Tree_a @ F @ ( produc1046262850Tree_a @ G @ X ) )
      = ( produc649172771ee_a_a @ ( G @ ( product_fst_a_Tree_a @ X ) ) @ ( F @ ( product_snd_a_Tree_a @ X ) ) ) ) ).

% apsnd_apfst
thf(fact_352_apsnd__apfst,axiom,
    ! [F: tree_a > tree_a,G: a > a,X: produc143150363Tree_a] :
      ( ( produc819961216ee_a_a @ F @ ( produc1107567542Tree_a @ G @ X ) )
      = ( produc686083979Tree_a @ ( G @ ( product_fst_a_Tree_a @ X ) ) @ ( F @ ( product_snd_a_Tree_a @ X ) ) ) ) ).

% apsnd_apfst
thf(fact_353_apsnd__compose,axiom,
    ! [F: tree_a > tree_a,G: tree_a > tree_a,X: produc143150363Tree_a] :
      ( ( produc819961216ee_a_a @ F @ ( produc819961216ee_a_a @ G @ X ) )
      = ( produc819961216ee_a_a @ ( comp_T59512783Tree_a @ F @ G ) @ X ) ) ).

% apsnd_compose

% Helper facts (3)
thf(help_If_3_1_If_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_T,axiom,
    ! [P: $o] :
      ( ( P = $true )
      | ( P = $false ) ) ).

thf(help_If_2_1_If_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_T,axiom,
    ! [X: produc143150363Tree_a,Y: produc143150363Tree_a] :
      ( ( if_Pro1144176865Tree_a @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_If_001t__Product____Type__Oprod_Itf__a_Mt__Heap__OTree_Itf__a_J_J_T,axiom,
    ! [X: produc143150363Tree_a,Y: produc143150363Tree_a] :
      ( ( if_Pro1144176865Tree_a @ $true @ X @ Y )
      = X ) ).

% Conjectures (1)
thf(conj_0,conjecture,
    is_heap_a @ ( product_snd_a_Tree_a @ ( heapIm837449470Leaf_a @ ( t_a @ v @ e_a @ e_a ) ) ) ).

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