%   ORIGINAL: h4/enumeral/bt__induction
% Assm: HL_TRUTH: T
% Assm: HL_FALSITY: ~F
% Assm: HL_BOOL_CASES: !t. (t <=> T) \/ (t <=> F)
% Assm: HL_EXT: !f g. (!x. f x = g x) ==> f = g
% Assm: h4/bool/ETA__AX: !t. (\x. t x) = t
% Assm: h4/bool/TRUTH: T
% Assm: h4/bool/IMP__ANTISYM__AX: !t2 t1. (t1 ==> t2) ==> (t2 ==> t1) ==> (t1 <=> t2)
% Assm: h4/bool/IMP__CLAUSES_c3: !t. t ==> t <=> T
% Assm: h4/bool/MONO__AND: !z y x w. (x ==> y) /\ (z ==> w) ==> x /\ z ==> y /\ w
% Assm: h4/bool/MONO__OR: !z y x w. (x ==> y) /\ (z ==> w) ==> x \/ z ==> y \/ w
% Assm: h4/bool/MONO__EXISTS: !Q P. (!x. P x ==> Q x) ==> (?x. P x) ==> (?x. Q x)
% Assm: h4/enumeral/bt__repfns_c0: !a. h4/enumeral/_20_40ind__typeenumeral2 (h4/enumeral/_20_40ind__typeenumeral3 a) = a
% Assm: h4/enumeral/bt__repfns_c1: !r. (\a0_27. !_27bt_27. (!a0_270. a0_270 = h4/ind__type/CONSTR h4/num/0 h4/bool/ARB (\n. h4/ind__type/BOTTOM) \/ (?a0 a1 a2. a0_270 = (\a00 a10 a20. h4/ind__type/CONSTR (h4/num/SUC h4/num/0) a10 (h4/ind__type/FCONS a00 (h4/ind__type/FCONS a20 (\n. h4/ind__type/BOTTOM)))) a0 a1 a2 /\ _27bt_27 a0 /\ _27bt_27 a2) ==> _27bt_27 a0_270) ==> _27bt_27 a0_27) r <=> h4/enumeral/_20_40ind__typeenumeral3 (h4/enumeral/_20_40ind__typeenumeral2 r) = r
% Assm: h4/enumeral/hidden____20__40ind____typeenumeral0____def: h4/enumeral/_20_40ind__typeenumeral0 = h4/enumeral/_20_40ind__typeenumeral2 (h4/ind__type/CONSTR h4/num/0 h4/bool/ARB (\n. h4/ind__type/BOTTOM))
% Assm: h4/enumeral/hidden____20__40ind____typeenumeral1____def: h4/enumeral/_20_40ind__typeenumeral1 = (\a0 a1 a2. h4/enumeral/_20_40ind__typeenumeral2 ((\a00 a10 a20. h4/ind__type/CONSTR (h4/num/SUC h4/num/0) a10 (h4/ind__type/FCONS a00 (h4/ind__type/FCONS a20 (\n. h4/ind__type/BOTTOM)))) (h4/enumeral/_20_40ind__typeenumeral3 a0) a1 (h4/enumeral/_20_40ind__typeenumeral3 a2)))
% Assm: h4/enumeral/nt0: h4/enumeral/nt = h4/enumeral/_20_40ind__typeenumeral0
% Assm: h4/enumeral/node0: h4/enumeral/node = h4/enumeral/_20_40ind__typeenumeral1
% Goal: !P. P h4/enumeral/nt /\ (!b b0. P b /\ P b0 ==> (!a. P (h4/enumeral/node b a b0))) ==> (!b. P b)
%   PROCESSED
% Assm [HLu_TRUTH]: T
% Assm [HLu_FALSITY]: ~F
% Assm [HLu_BOOLu_CASES]: !t. (t <=> T) \/ (t <=> F)
% Assm [HLu_EXT]: !f g. (!x. happ f x = happ g x) ==> f = g
% Assm [h4s_bools_ETAu_u_AX]: !t x. happ t x = happ t x
% Assm [h4s_bools_TRUTH]: T
% Assm [h4s_bools_IMPu_u_ANTISYMu_u_AX]: !t2 t1. (t1 ==> t2) ==> (t2 ==> t1) ==> (t1 <=> t2)
% Assm [h4s_bools_IMPu_u_CLAUSESu_c3]: !t. t ==> t <=> T
% Assm [h4s_bools_MONOu_u_AND]: !z y x w. (x ==> y) /\ (z ==> w) ==> x /\ z ==> y /\ w
% Assm [h4s_bools_MONOu_u_OR]: !z y x w. (x ==> y) /\ (z ==> w) ==> x \/ z ==> y \/ w
% Assm [h4s_bools_MONOu_u_EXISTS]: !Q P. (!x. happ P x ==> happ Q x) ==> (?x. happ P x) ==> (?x. happ Q x)
% Assm [h4s_enumerals_btu_u_repfnsu_c0]: !a. h4/enumeral/_20_40ind__typeenumeral2 (h4/enumeral/_20_40ind__typeenumeral3 a) = a
% Assm [h4s_enumerals_btu_u_repfnsu_c1]: !_0. (!n. happ _0 n = h4/ind__type/BOTTOM) ==> (!r. (!_27bt_27. (!a0_270. a0_270 = h4/ind__type/CONSTR h4/num/0 h4/bool/ARB _0 \/ (?a0 a1 a2. a0_270 = h4/ind__type/CONSTR (h4/num/SUC h4/num/0) a1 (h4/ind__type/FCONS a0 (h4/ind__type/FCONS a2 _0)) /\ happ _27bt_27 a0 /\ happ _27bt_27 a2) ==> happ _27bt_27 a0_270) ==> happ _27bt_27 r) <=> h4/enumeral/_20_40ind__typeenumeral3 (h4/enumeral/_20_40ind__typeenumeral2 r) = r)
% Assm [h4s_enumerals_hiddenu_u_u_u_20u_u_40indu_u_u_u_typeenumeral0u_u_u_u_def]: !_0. (!n. happ _0 n = h4/ind__type/BOTTOM) ==> h4/enumeral/_20_40ind__typeenumeral0 = h4/enumeral/_20_40ind__typeenumeral2 (h4/ind__type/CONSTR h4/num/0 h4/bool/ARB _0)
% Assm [h4s_enumerals_hiddenu_u_u_u_20u_u_40indu_u_u_u_typeenumeral1u_u_u_u_def]: !_0. (!n. happ _0 n = h4/ind__type/BOTTOM) ==> (!x x x'. happ (happ (happ h4/enumeral/_20_40ind__typeenumeral1 x) x) x' = h4/enumeral/_20_40ind__typeenumeral2 (h4/ind__type/CONSTR (h4/num/SUC h4/num/0) x (h4/ind__type/FCONS (h4/enumeral/_20_40ind__typeenumeral3 x) (h4/ind__type/FCONS (h4/enumeral/_20_40ind__typeenumeral3 x') _0))))
% Assm [h4s_enumerals_nt0]: h4/enumeral/nt = h4/enumeral/_20_40ind__typeenumeral0
% Assm [h4s_enumerals_node0]: h4/enumeral/node = h4/enumeral/_20_40ind__typeenumeral1
% Goal: !P. happ P h4/enumeral/nt /\ (!b b0. happ P b /\ happ P b0 ==> (!a. happ P (happ (happ (happ h4/enumeral/node b) a) b0))) ==> (!b. happ P b)
fof(aHLu_TRUTH, axiom, p(s(t_bool,t))).
fof(aHLu_FALSITY, axiom, ~ (p(s(t_bool,f)))).
fof(aHLu_BOOLu_CASES, axiom, ![V_t]: (s(t_bool,V_t) = s(t_bool,t) | s(t_bool,V_t) = s(t_bool,f))).
fof(aHLu_EXT, axiom, ![TV_Q332428,TV_Q332424]: ![V_f, V_g]: (![V_x]: s(TV_Q332424,happ(s(t_fun(TV_Q332428,TV_Q332424),V_f),s(TV_Q332428,V_x))) = s(TV_Q332424,happ(s(t_fun(TV_Q332428,TV_Q332424),V_g),s(TV_Q332428,V_x))) => s(t_fun(TV_Q332428,TV_Q332424),V_f) = s(t_fun(TV_Q332428,TV_Q332424),V_g))).
fof(ah4s_bools_ETAu_u_AX, axiom, ![TV_u_27b,TV_u_27a]: ![V_t, V_x]: s(TV_u_27b,happ(s(t_fun(TV_u_27a,TV_u_27b),V_t),s(TV_u_27a,V_x))) = s(TV_u_27b,happ(s(t_fun(TV_u_27a,TV_u_27b),V_t),s(TV_u_27a,V_x)))).
fof(ah4s_bools_TRUTH, axiom, p(s(t_bool,t))).
fof(ah4s_bools_IMPu_u_ANTISYMu_u_AX, axiom, ![V_t2, V_t1]: ((p(s(t_bool,V_t1)) => p(s(t_bool,V_t2))) => ((p(s(t_bool,V_t2)) => p(s(t_bool,V_t1))) => s(t_bool,V_t1) = s(t_bool,V_t2)))).
fof(ah4s_bools_IMPu_u_CLAUSESu_c3, axiom, ![V_t]: ((p(s(t_bool,V_t)) => p(s(t_bool,V_t))) <=> p(s(t_bool,t)))).
fof(ah4s_bools_MONOu_u_AND, axiom, ![V_z, V_y, V_x, V_w]: (((p(s(t_bool,V_x)) => p(s(t_bool,V_y))) & (p(s(t_bool,V_z)) => p(s(t_bool,V_w)))) => ((p(s(t_bool,V_x)) & p(s(t_bool,V_z))) => (p(s(t_bool,V_y)) & p(s(t_bool,V_w)))))).
fof(ah4s_bools_MONOu_u_OR, axiom, ![V_z, V_y, V_x, V_w]: (((p(s(t_bool,V_x)) => p(s(t_bool,V_y))) & (p(s(t_bool,V_z)) => p(s(t_bool,V_w)))) => ((p(s(t_bool,V_x)) | p(s(t_bool,V_z))) => (p(s(t_bool,V_y)) | p(s(t_bool,V_w)))))).
fof(ah4s_bools_MONOu_u_EXISTS, axiom, ![TV_u_27a]: ![V_Q, V_P]: (![V_x]: (p(s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),V_P),s(TV_u_27a,V_x)))) => p(s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),V_Q),s(TV_u_27a,V_x))))) => (?[V_x]: p(s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),V_P),s(TV_u_27a,V_x)))) => ?[V_x]: p(s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),V_Q),s(TV_u_27a,V_x))))))).
fof(ah4s_enumerals_btu_u_repfnsu_c0, axiom, ![TV_u_27a]: ![V_a]: s(t_h4s_enumerals_bt(TV_u_27a),h4s_enumerals_u_20u_40indu_u_typeenumeral2(s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_enumerals_u_20u_40indu_u_typeenumeral3(s(t_h4s_enumerals_bt(TV_u_27a),V_a))))) = s(t_h4s_enumerals_bt(TV_u_27a),V_a)).
fof(ah4s_enumerals_btu_u_repfnsu_c1, axiom, ![TV_u_27a]: ![V_uu_0]: (![V_n]: s(t_h4s_indu_u_types_recspace(TV_u_27a),happ(s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),V_uu_0),s(t_h4s_nums_num,V_n))) = s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_indu_u_types_bottom) => ![V_r]: (![V_uu_27btu_27]: (![V_a0u_270]: ((s(t_h4s_indu_u_types_recspace(TV_u_27a),V_a0u_270) = s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_indu_u_types_constr(s(t_h4s_nums_num,h4s_nums_0),s(TV_u_27a,h4s_bools_arb),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),V_uu_0))) | ?[V_a0, V_a1, V_a2]: (s(t_h4s_indu_u_types_recspace(TV_u_27a),V_a0u_270) = s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_indu_u_types_constr(s(t_h4s_nums_num,h4s_nums_suc(s(t_h4s_nums_num,h4s_nums_0))),s(TV_u_27a,V_a1),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),h4s_indu_u_types_fcons(s(t_h4s_indu_u_types_recspace(TV_u_27a),V_a0),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),h4s_indu_u_types_fcons(s(t_h4s_indu_u_types_recspace(TV_u_27a),V_a2),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),V_uu_0))))))) & (p(s(t_bool,happ(s(t_fun(t_h4s_indu_u_types_recspace(TV_u_27a),t_bool),V_uu_27btu_27),s(t_h4s_indu_u_types_recspace(TV_u_27a),V_a0)))) & p(s(t_bool,happ(s(t_fun(t_h4s_indu_u_types_recspace(TV_u_27a),t_bool),V_uu_27btu_27),s(t_h4s_indu_u_types_recspace(TV_u_27a),V_a2))))))) => p(s(t_bool,happ(s(t_fun(t_h4s_indu_u_types_recspace(TV_u_27a),t_bool),V_uu_27btu_27),s(t_h4s_indu_u_types_recspace(TV_u_27a),V_a0u_270))))) => p(s(t_bool,happ(s(t_fun(t_h4s_indu_u_types_recspace(TV_u_27a),t_bool),V_uu_27btu_27),s(t_h4s_indu_u_types_recspace(TV_u_27a),V_r))))) <=> s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_enumerals_u_20u_40indu_u_typeenumeral3(s(t_h4s_enumerals_bt(TV_u_27a),h4s_enumerals_u_20u_40indu_u_typeenumeral2(s(t_h4s_indu_u_types_recspace(TV_u_27a),V_r))))) = s(t_h4s_indu_u_types_recspace(TV_u_27a),V_r)))).
fof(ah4s_enumerals_hiddenu_u_u_u_20u_u_40indu_u_u_u_typeenumeral0u_u_u_u_def, axiom, ![TV_u_27a]: ![V_uu_0]: (![V_n]: s(t_h4s_indu_u_types_recspace(TV_u_27a),happ(s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),V_uu_0),s(t_h4s_nums_num,V_n))) = s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_indu_u_types_bottom) => s(t_h4s_enumerals_bt(TV_u_27a),h4s_enumerals_u_20u_40indu_u_typeenumeral0) = s(t_h4s_enumerals_bt(TV_u_27a),h4s_enumerals_u_20u_40indu_u_typeenumeral2(s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_indu_u_types_constr(s(t_h4s_nums_num,h4s_nums_0),s(TV_u_27a,h4s_bools_arb),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),V_uu_0))))))).
fof(ah4s_enumerals_hiddenu_u_u_u_20u_u_40indu_u_u_u_typeenumeral1u_u_u_u_def, axiom, ![TV_u_27a]: ![V_uu_0]: (![V_n]: s(t_h4s_indu_u_types_recspace(TV_u_27a),happ(s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),V_uu_0),s(t_h4s_nums_num,V_n))) = s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_indu_u_types_bottom) => ![V_x, V_x0, V_xi_]: s(t_h4s_enumerals_bt(TV_u_27a),happ(s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_h4s_enumerals_bt(TV_u_27a)),happ(s(t_fun(TV_u_27a,t_fun(t_h4s_enumerals_bt(TV_u_27a),t_h4s_enumerals_bt(TV_u_27a))),happ(s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_fun(TV_u_27a,t_fun(t_h4s_enumerals_bt(TV_u_27a),t_h4s_enumerals_bt(TV_u_27a)))),h4s_enumerals_u_20u_40indu_u_typeenumeral1),s(t_h4s_enumerals_bt(TV_u_27a),V_x))),s(TV_u_27a,V_x0))),s(t_h4s_enumerals_bt(TV_u_27a),V_xi_))) = s(t_h4s_enumerals_bt(TV_u_27a),h4s_enumerals_u_20u_40indu_u_typeenumeral2(s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_indu_u_types_constr(s(t_h4s_nums_num,h4s_nums_suc(s(t_h4s_nums_num,h4s_nums_0))),s(TV_u_27a,V_x0),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),h4s_indu_u_types_fcons(s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_enumerals_u_20u_40indu_u_typeenumeral3(s(t_h4s_enumerals_bt(TV_u_27a),V_x))),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),h4s_indu_u_types_fcons(s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_enumerals_u_20u_40indu_u_typeenumeral3(s(t_h4s_enumerals_bt(TV_u_27a),V_xi_))),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),V_uu_0))))))))))).
fof(ah4s_enumerals_nt0, axiom, ![TV_u_27a]: s(t_h4s_enumerals_bt(TV_u_27a),h4s_enumerals_nt) = s(t_h4s_enumerals_bt(TV_u_27a),h4s_enumerals_u_20u_40indu_u_typeenumeral0)).
fof(ah4s_enumerals_node0, axiom, ![TV_u_27a]: s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_fun(TV_u_27a,t_fun(t_h4s_enumerals_bt(TV_u_27a),t_h4s_enumerals_bt(TV_u_27a)))),h4s_enumerals_node) = s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_fun(TV_u_27a,t_fun(t_h4s_enumerals_bt(TV_u_27a),t_h4s_enumerals_bt(TV_u_27a)))),h4s_enumerals_u_20u_40indu_u_typeenumeral1)).
fof(ch4s_enumerals_btu_u_induction, conjecture, ![TV_u_27a]: ![V_P]: ((p(s(t_bool,happ(s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_bool),V_P),s(t_h4s_enumerals_bt(TV_u_27a),h4s_enumerals_nt)))) & ![V_b, V_b0]: ((p(s(t_bool,happ(s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_bool),V_P),s(t_h4s_enumerals_bt(TV_u_27a),V_b)))) & p(s(t_bool,happ(s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_bool),V_P),s(t_h4s_enumerals_bt(TV_u_27a),V_b0))))) => ![V_a]: p(s(t_bool,happ(s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_bool),V_P),s(t_h4s_enumerals_bt(TV_u_27a),happ(s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_h4s_enumerals_bt(TV_u_27a)),happ(s(t_fun(TV_u_27a,t_fun(t_h4s_enumerals_bt(TV_u_27a),t_h4s_enumerals_bt(TV_u_27a))),happ(s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_fun(TV_u_27a,t_fun(t_h4s_enumerals_bt(TV_u_27a),t_h4s_enumerals_bt(TV_u_27a)))),h4s_enumerals_node),s(t_h4s_enumerals_bt(TV_u_27a),V_b))),s(TV_u_27a,V_a))),s(t_h4s_enumerals_bt(TV_u_27a),V_b0)))))))) => ![V_b]: p(s(t_bool,happ(s(t_fun(t_h4s_enumerals_bt(TV_u_27a),t_bool),V_P),s(t_h4s_enumerals_bt(TV_u_27a),V_b)))))).
