TPTP Problem File: SWW469+5.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : SWW469+5 : TPTP v9.0.0. Released v5.3.0.
% Domain : Software Verification
% Problem : Hoare's Logic with Procedures line 112, 100 axioms selected
% Version : Especial.
% English :
% Refs : [BN10] Boehme & Nipkow (2010), Sledgehammer: Judgement Day
% : [Bla11] Blanchette (2011), Email to Geoff Sutcliffe
% Source : [Bla11]
% Names : hoare_100_fofpt_l112 [Bla11]
% Status : Theorem
% Rating : 0.06 v9.0.0, 0.08 v7.5.0, 0.09 v7.4.0, 0.10 v7.1.0, 0.13 v7.0.0, 0.10 v6.4.0, 0.15 v6.3.0, 0.08 v6.2.0, 0.16 v6.1.0, 0.10 v6.0.0, 0.09 v5.5.0, 0.22 v5.4.0, 0.25 v5.3.0
% Syntax : Number of formulae : 63 ( 31 unt; 0 def)
% Number of atoms : 114 ( 45 equ)
% Maximal formula atoms : 5 ( 1 avg)
% Number of connectives : 64 ( 13 ~; 2 |; 3 &)
% ( 10 <=>; 36 =>; 0 <=; 0 <~>)
% Maximal formula depth : 12 ( 5 avg)
% Maximal term depth : 12 ( 2 avg)
% Number of predicates : 4 ( 3 usr; 0 prp; 1-2 aty)
% Number of functors : 22 ( 22 usr; 6 con; 0-4 aty)
% Number of variables : 157 ( 155 !; 2 ?)
% SPC : FOF_THM_RFO_SEQ
% Comments : This file was generated by Isabelle (most likely Sledgehammer)
% 2011-08-09 13:53:52
% : Encoded with polymorphic tags.
%------------------------------------------------------------------------------
%----Explicit typings (17)
fof(tsy_c_HOL_Oequal__class_Oequal_res,axiom,
! [X_a] :
( cl_HOL_Oequal(X_a)
=> ti(fun(X_a,fun(X_a,bool)),equal_equal(X_a)) = equal_equal(X_a) ) ).
fof(tsy_c_HOL_Oinduct__equal_res,axiom,
! [X_a] : ti(fun(X_a,fun(X_a,bool)),induct_equal(X_a)) = induct_equal(X_a) ).
fof(tsy_c_HOL_Oinduct__false_res,axiom,
ti(bool,induct_false) = induct_false ).
fof(tsy_c_HOL_Oinduct__true_res,axiom,
ti(bool,induct_true) = induct_true ).
fof(tsy_c_HOL_Oundefined_res,axiom,
! [X_a] : ti(X_a,undefined(X_a)) = undefined(X_a) ).
fof(tsy_c_Hoare__Mirabelle__pjuwniqynr_OAbs__triple_res,axiom,
! [X_a] : ti(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_509422987triple(X_a)),hoare_244953527triple(X_a)) = hoare_244953527triple(X_a) ).
fof(tsy_c_Hoare__Mirabelle__pjuwniqynr_ORep__triple_res,axiom,
! [X_a] : ti(fun(hoare_509422987triple(X_a),fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_2037801986triple(X_a)) = hoare_2037801986triple(X_a) ).
fof(tsy_c_Hoare__Mirabelle__pjuwniqynr_Ostate__not__singleton_res,hypothesis,
ti(bool,hoare_1883395792gleton) = hoare_1883395792gleton ).
fof(tsy_c_Hoare__Mirabelle__pjuwniqynr_Otriple_Otriple__rep__set_res,axiom,
! [X_a] : ti(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),hoare_1580379338ep_set(X_a)) = hoare_1580379338ep_set(X_a) ).
fof(tsy_c_Set_OCollect_res,axiom,
! [X_a] : ti(fun(fun(X_a,bool),fun(X_a,bool)),collect(X_a)) = collect(X_a) ).
fof(tsy_c_Typedef_Otype__definition_res,axiom,
! [X_a,X_b] : ti(fun(fun(X_a,X_b),fun(fun(X_b,X_a),fun(fun(X_b,bool),bool))),type_definition(X_a,X_b)) = type_definition(X_a,X_b) ).
fof(tsy_c_fequal_res,axiom,
! [X_a] : ti(fun(X_a,fun(X_a,bool)),fequal(X_a)) = fequal(X_a) ).
fof(tsy_c_hAPP_arg1,axiom,
! [X_b,X_a,B_1,B_2] : hAPP(X_b,X_a,ti(fun(X_b,X_a),B_1),B_2) = hAPP(X_b,X_a,B_1,B_2) ).
fof(tsy_c_hAPP_arg2,axiom,
! [X_b,X_a,B_1,B_2] : hAPP(X_b,X_a,B_1,ti(X_b,B_2)) = hAPP(X_b,X_a,B_1,B_2) ).
fof(tsy_c_hAPP_res,axiom,
! [X_a,X_b,B_1,B_2] : ti(X_a,hAPP(X_b,X_a,B_1,B_2)) = hAPP(X_b,X_a,B_1,B_2) ).
fof(tsy_c_hBOOL_arg1,hypothesis,
! [B_1] :
( hBOOL(ti(bool,B_1))
<=> hBOOL(B_1) ) ).
fof(tsy_c_member_res,axiom,
! [X_b] : ti(fun(X_b,fun(fun(X_b,bool),bool)),member(X_b)) = member(X_b) ).
%----Relevant facts (32)
fof(fact_0_state__not__singleton__def,axiom,
( hBOOL(hoare_1883395792gleton)
<=> ? [S,T] : ti(state,S) != ti(state,T) ) ).
fof(fact_1_equal__triple__def,axiom,
! [X_a,X_1,Y_1] :
( hBOOL(hAPP(hoare_509422987triple(X_a),bool,hAPP(hoare_509422987triple(X_a),fun(hoare_509422987triple(X_a),bool),equal_equal(hoare_509422987triple(X_a)),X_1),Y_1))
<=> X_1 = Y_1 ) ).
fof(fact_2_Rep__triple__inject,axiom,
! [X_a,X_1,Y_1] :
( hAPP(hoare_509422987triple(X_a),fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_2037801986triple(X_a),X_1) = hAPP(hoare_509422987triple(X_a),fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_2037801986triple(X_a),Y_1)
<=> X_1 = Y_1 ) ).
fof(fact_3_equal,axiom,
! [X_a] :
( cl_HOL_Oequal(X_a)
=> equal_equal(X_a) = fequal(X_a) ) ).
fof(fact_4_equal__refl,axiom,
! [X_a] :
( cl_HOL_Oequal(X_a)
=> ! [X] : hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),equal_equal(X_a),X),X)) ) ).
fof(fact_5_equal__eq,axiom,
! [X_a] :
( cl_HOL_Oequal(X_a)
=> ! [X_1,Y_1] :
( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),equal_equal(X_a),X_1),Y_1))
<=> ti(X_a,X_1) = ti(X_a,Y_1) ) ) ).
fof(fact_6_eq__equal,axiom,
! [X_a] :
( cl_HOL_Oequal(X_a)
=> fequal(X_a) = equal_equal(X_a) ) ).
fof(fact_7_Rep__triple__inverse,axiom,
! [X_a,X_1] : hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_509422987triple(X_a),hoare_244953527triple(X_a),hAPP(hoare_509422987triple(X_a),fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_2037801986triple(X_a),X_1)) = X_1 ).
fof(fact_8_Rep__triple,axiom,
! [X_a,X_1] : hBOOL(hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool,hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool),member(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hAPP(hoare_509422987triple(X_a),fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_2037801986triple(X_a),X_1)),hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),collect(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_1580379338ep_set(X_a)))) ).
fof(fact_9_Rep__triple__induct,axiom,
! [X_a,P,Y_1] :
( hBOOL(hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool,hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool),member(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),Y_1),hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),collect(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_1580379338ep_set(X_a))))
=> ( ! [X_2] : hBOOL(hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool,P,hAPP(hoare_509422987triple(X_a),fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_2037801986triple(X_a),X_2)))
=> hBOOL(hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool,P,Y_1)) ) ) ).
fof(fact_10_Rep__triple__cases,axiom,
! [X_a,Y_1] :
( hBOOL(hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool,hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool),member(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),Y_1),hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),collect(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_1580379338ep_set(X_a))))
=> ~ ! [X_2] : Y_1 != hAPP(hoare_509422987triple(X_a),fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_2037801986triple(X_a),X_2) ) ).
fof(fact_11_Abs__triple__inverse,axiom,
! [X_a,Y_1] :
( hBOOL(hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool,hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool),member(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),Y_1),hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),collect(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_1580379338ep_set(X_a))))
=> hAPP(hoare_509422987triple(X_a),fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_2037801986triple(X_a),hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_509422987triple(X_a),hoare_244953527triple(X_a),Y_1)) = Y_1 ) ).
fof(fact_12_type__definition__triple,axiom,
! [X_a] : hBOOL(hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool,hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_509422987triple(X_a)),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool),hAPP(fun(hoare_509422987triple(X_a),fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_509422987triple(X_a)),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool)),type_definition(hoare_509422987triple(X_a),fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_2037801986triple(X_a)),hoare_244953527triple(X_a)),hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),collect(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_1580379338ep_set(X_a)))) ).
fof(fact_13_Abs__triple__inject,axiom,
! [X_a,Y_1,X_1] :
( hBOOL(hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool,hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool),member(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),X_1),hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),collect(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_1580379338ep_set(X_a))))
=> ( hBOOL(hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool,hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool),member(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),Y_1),hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),collect(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_1580379338ep_set(X_a))))
=> ( hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_509422987triple(X_a),hoare_244953527triple(X_a),X_1) = hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_509422987triple(X_a),hoare_244953527triple(X_a),Y_1)
<=> X_1 = Y_1 ) ) ) ).
fof(fact_14_Abs__triple__induct,axiom,
! [X_a,X_1,P] :
( ! [Y_2] :
( hBOOL(hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool,hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool),member(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),Y_2),hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),collect(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_1580379338ep_set(X_a))))
=> hBOOL(hAPP(hoare_509422987triple(X_a),bool,P,hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_509422987triple(X_a),hoare_244953527triple(X_a),Y_2))) )
=> hBOOL(hAPP(hoare_509422987triple(X_a),bool,P,X_1)) ) ).
fof(fact_15_Abs__triple__cases,axiom,
! [X_a,X_1] :
~ ! [Y_2] :
( X_1 = hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),hoare_509422987triple(X_a),hoare_244953527triple(X_a),Y_2)
=> ~ hBOOL(hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool,hAPP(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),fun(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),bool),member(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),Y_2),hAPP(fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),fun(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool),bool),collect(fun(node(sum_sum(com,fun(X_a,fun(state,bool))),sum_sum(state,X_a)),bool)),hoare_1580379338ep_set(X_a)))) ) ).
fof(fact_16_type__definition_OAbs__inject,axiom,
! [X_b,X_a,Y_1,X_1,Rep,Abs,A_1] :
( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(fun(X_b,X_a),fun(fun(X_b,bool),bool),hAPP(fun(X_a,X_b),fun(fun(X_b,X_a),fun(fun(X_b,bool),bool)),type_definition(X_a,X_b),Rep),Abs),A_1))
=> ( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(X_b,fun(fun(X_b,bool),bool),member(X_b),X_1),A_1))
=> ( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(X_b,fun(fun(X_b,bool),bool),member(X_b),Y_1),A_1))
=> ( hAPP(X_b,X_a,Abs,X_1) = hAPP(X_b,X_a,Abs,Y_1)
<=> ti(X_b,X_1) = ti(X_b,Y_1) ) ) ) ) ).
fof(fact_17_type__definition_OAbs__inverse,axiom,
! [X_b,X_a,Y_1,Rep,Abs,A_1] :
( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(fun(X_b,X_a),fun(fun(X_b,bool),bool),hAPP(fun(X_a,X_b),fun(fun(X_b,X_a),fun(fun(X_b,bool),bool)),type_definition(X_a,X_b),Rep),Abs),A_1))
=> ( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(X_b,fun(fun(X_b,bool),bool),member(X_b),Y_1),A_1))
=> hAPP(X_a,X_b,Rep,hAPP(X_b,X_a,Abs,Y_1)) = ti(X_b,Y_1) ) ) ).
fof(fact_18_type__definition_ORep__inject,axiom,
! [X_b,X_a,X_1,Y_1,Rep,Abs,A_1] :
( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(fun(X_b,X_a),fun(fun(X_b,bool),bool),hAPP(fun(X_a,X_b),fun(fun(X_b,X_a),fun(fun(X_b,bool),bool)),type_definition(X_a,X_b),Rep),Abs),A_1))
=> ( hAPP(X_a,X_b,Rep,X_1) = hAPP(X_a,X_b,Rep,Y_1)
<=> ti(X_a,X_1) = ti(X_a,Y_1) ) ) ).
fof(fact_19_type__definition_ORep__inverse,axiom,
! [X_b,X_a,X_1,Rep,Abs,A_1] :
( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(fun(X_b,X_a),fun(fun(X_b,bool),bool),hAPP(fun(X_a,X_b),fun(fun(X_b,X_a),fun(fun(X_b,bool),bool)),type_definition(X_a,X_b),Rep),Abs),A_1))
=> hAPP(X_b,X_a,Abs,hAPP(X_a,X_b,Rep,X_1)) = ti(X_a,X_1) ) ).
fof(fact_20_type__definition_ORep,axiom,
! [X_b,X_a,X_1,Rep,Abs,A_1] :
( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(fun(X_b,X_a),fun(fun(X_b,bool),bool),hAPP(fun(X_a,X_b),fun(fun(X_b,X_a),fun(fun(X_b,bool),bool)),type_definition(X_a,X_b),Rep),Abs),A_1))
=> hBOOL(hAPP(fun(X_b,bool),bool,hAPP(X_b,fun(fun(X_b,bool),bool),member(X_b),hAPP(X_a,X_b,Rep,X_1)),A_1)) ) ).
fof(fact_21_induct__false__def,axiom,
~ hBOOL(induct_false) ).
fof(fact_22_type__definition_ORep__cases,axiom,
! [X_b,X_a,Y_1,Rep,Abs,A_1] :
( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(fun(X_b,X_a),fun(fun(X_b,bool),bool),hAPP(fun(X_a,X_b),fun(fun(X_b,X_a),fun(fun(X_b,bool),bool)),type_definition(X_a,X_b),Rep),Abs),A_1))
=> ( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(X_b,fun(fun(X_b,bool),bool),member(X_b),Y_1),A_1))
=> ~ ! [X_2] : ti(X_b,Y_1) != hAPP(X_a,X_b,Rep,X_2) ) ) ).
fof(fact_23_type__definition_OAbs__cases,axiom,
! [X_b,X_a,X_1,Rep,Abs,A_1] :
( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(fun(X_b,X_a),fun(fun(X_b,bool),bool),hAPP(fun(X_a,X_b),fun(fun(X_b,X_a),fun(fun(X_b,bool),bool)),type_definition(X_a,X_b),Rep),Abs),A_1))
=> ~ ! [Y_2] :
( ti(X_a,X_1) = hAPP(X_b,X_a,Abs,Y_2)
=> ~ hBOOL(hAPP(fun(X_b,bool),bool,hAPP(X_b,fun(fun(X_b,bool),bool),member(X_b),Y_2),A_1)) ) ) ).
fof(fact_24_type__definition_OAbs__induct,axiom,
! [X_b,X_a,X_1,P,Rep,Abs,A_1] :
( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(fun(X_b,X_a),fun(fun(X_b,bool),bool),hAPP(fun(X_a,X_b),fun(fun(X_b,X_a),fun(fun(X_b,bool),bool)),type_definition(X_a,X_b),Rep),Abs),A_1))
=> ( ! [Y_2] :
( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(X_b,fun(fun(X_b,bool),bool),member(X_b),Y_2),A_1))
=> hBOOL(hAPP(X_a,bool,P,hAPP(X_b,X_a,Abs,Y_2))) )
=> hBOOL(hAPP(X_a,bool,P,X_1)) ) ) ).
fof(fact_25_type__definition_ORep__induct,axiom,
! [X_b,X_a,P,Y_1,Rep,Abs,A_1] :
( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(fun(X_b,X_a),fun(fun(X_b,bool),bool),hAPP(fun(X_a,X_b),fun(fun(X_b,X_a),fun(fun(X_b,bool),bool)),type_definition(X_a,X_b),Rep),Abs),A_1))
=> ( hBOOL(hAPP(fun(X_b,bool),bool,hAPP(X_b,fun(fun(X_b,bool),bool),member(X_b),Y_1),A_1))
=> ( ! [X_2] : hBOOL(hAPP(X_b,bool,P,hAPP(X_a,X_b,Rep,X_2)))
=> hBOOL(hAPP(X_b,bool,P,Y_1)) ) ) ) ).
fof(fact_26_induct__trueI,axiom,
hBOOL(induct_true) ).
fof(fact_27_induct__true__def,axiom,
hBOOL(induct_true) ).
fof(fact_28_induct__equal__def,axiom,
! [X_a,X_1,Y_1] :
( hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),induct_equal(X_a),X_1),Y_1))
<=> ti(X_a,X_1) = ti(X_a,Y_1) ) ).
fof(fact_29_ext,axiom,
! [X_a,X_b,F,G] :
( ! [X_2] : hAPP(X_a,X_b,F,X_2) = hAPP(X_a,X_b,G,X_2)
=> ti(fun(X_a,X_b),F) = ti(fun(X_a,X_b),G) ) ).
fof(fact_30_mem__def,axiom,
! [X_a,X_1,A_1] :
( hBOOL(hAPP(fun(X_a,bool),bool,hAPP(X_a,fun(fun(X_a,bool),bool),member(X_a),X_1),A_1))
<=> hBOOL(hAPP(X_a,bool,A_1,X_1)) ) ).
fof(fact_31_Collect__def,axiom,
! [X_a,P] : hAPP(fun(X_a,bool),fun(X_a,bool),collect(X_a),P) = ti(fun(X_a,bool),P) ).
%----Arities (9)
fof(arity_sum___Enum_Oenum,axiom,
! [T_2,T_1_1] :
( ( enum(T_1_1)
& enum(T_2) )
=> enum(sum_sum(T_2,T_1_1)) ) ).
fof(arity_HOL_Obool___Enum_Oenum,axiom,
enum(bool) ).
fof(arity_fun___Enum_Oenum,axiom,
! [T_2,T_1_1] :
( ( enum(T_1_1)
& enum(T_2) )
=> enum(fun(T_2,T_1_1)) ) ).
fof(arity_fun___HOL_Oequal,axiom,
! [T_2,T_1_1] :
( ( cl_HOL_Oequal(T_1_1)
& enum(T_2) )
=> cl_HOL_Oequal(fun(T_2,T_1_1)) ) ).
fof(arity_Com_Ocom___HOL_Oequal,axiom,
cl_HOL_Oequal(com) ).
fof(arity_HOL_Obool___HOL_Oequal,axiom,
cl_HOL_Oequal(bool) ).
fof(arity_Com_Ostate___HOL_Oequal,axiom,
cl_HOL_Oequal(state) ).
fof(arity_sum___HOL_Oequal,axiom,
! [T_2,T_1_1] : cl_HOL_Oequal(sum_sum(T_2,T_1_1)) ).
fof(arity_Hoare__Mirabelle__pjuwniqynr_Otriple___HOL_Oequal,axiom,
! [T_1_1] : cl_HOL_Oequal(hoare_509422987triple(T_1_1)) ).
%----Helper facts (3)
fof(help_ti_idem,axiom,
! [T_1,A] : ti(T_1,ti(T_1,A)) = ti(T_1,A) ).
fof(help_fequal_1_1_T,axiom,
! [X_a,X,Y] :
( ~ hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),fequal(X_a),X),Y))
| ti(X_a,X) = ti(X_a,Y) ) ).
fof(help_fequal_2_1_T,axiom,
! [X_a,X,Y] :
( ti(X_a,X) != ti(X_a,Y)
| hBOOL(hAPP(X_a,bool,hAPP(X_a,fun(X_a,bool),fequal(X_a),X),Y)) ) ).
%----Conjectures (2)
fof(conj_0,hypothesis,
hBOOL(hoare_1883395792gleton) ).
fof(conj_1,conjecture,
! [T] :
~ ! [S] : ti(state,S) = ti(state,T) ).
%------------------------------------------------------------------------------