%   ORIGINAL: h4/fcp/bit0__case__cong
% 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/IMP__ANTISYM__AX: !t2 t1. (t1 ==> t2) ==> (t2 ==> t1) ==> (t1 <=> t2)
% Assm: h4/bool/JRH__INDUCT__UTIL: !t P. (!x. x = t ==> P x) ==> $exists P
% Assm: h4/fcp/bit0__repfns_c0: !a. h4/fcp/_20_40ind__typefcp2 (h4/fcp/_20_40ind__typefcp3 a) = a
% Assm: h4/fcp/bit0__repfns_c1: !r. (\a0. !_27bit0_27. (!a00. (?a. a00 = (\a1. h4/ind__type/CONSTR h4/num/0 a1 (\n. h4/ind__type/BOTTOM)) a) \/ (?a. a00 = (\a1. h4/ind__type/CONSTR (h4/num/SUC h4/num/0) a1 (\n. h4/ind__type/BOTTOM)) a) ==> _27bit0_27 a00) ==> _27bit0_27 a0) r <=> h4/fcp/_20_40ind__typefcp3 (h4/fcp/_20_40ind__typefcp2 r) = r
% Assm: h4/fcp/hidden____20__40ind____typefcp0____def: h4/fcp/_20_40ind__typefcp0 = (\a. h4/fcp/_20_40ind__typefcp2 ((\a0. h4/ind__type/CONSTR h4/num/0 a0 (\n. h4/ind__type/BOTTOM)) a))
% Assm: h4/fcp/hidden____20__40ind____typefcp1____def: h4/fcp/_20_40ind__typefcp1 = (\a. h4/fcp/_20_40ind__typefcp2 ((\a0. h4/ind__type/CONSTR (h4/num/SUC h4/num/0) a0 (\n. h4/ind__type/BOTTOM)) a))
% Assm: h4/fcp/BIT0A0: h4/fcp/BIT0A = h4/fcp/_20_40ind__typefcp0
% Assm: h4/fcp/BIT0B0: h4/fcp/BIT0B = h4/fcp/_20_40ind__typefcp1
% Assm: h4/fcp/bit0__case__def_c0: !f1 f a. h4/fcp/bit0__CASE (h4/fcp/BIT0A a) f f1 = f a
% Assm: h4/fcp/bit0__case__def_c1: !f1 f a. h4/fcp/bit0__CASE (h4/fcp/BIT0B a) f f1 = f1 a
% Goal: !f1_27 f1 f_27 f M_27 M. M = M_27 /\ (!a. M_27 = h4/fcp/BIT0A a ==> f a = f_27 a) /\ (!a. M_27 = h4/fcp/BIT0B a ==> f1 a = f1_27 a) ==> h4/fcp/bit0__CASE M f f1 = h4/fcp/bit0__CASE M_27 f_27 f1_27
%   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_IMPu_u_ANTISYMu_u_AX]: !t2 t1. (t1 ==> t2) ==> (t2 ==> t1) ==> (t1 <=> t2)
% Assm [h4s_bools_JRHu_u_INDUCTu_u_UTIL]: !t P. (!x. x = t ==> happ P x) ==> $exists P
% Assm [h4s_fcps_bit0u_u_repfnsu_c0]: !a. h4/fcp/_20_40ind__typefcp2 (h4/fcp/_20_40ind__typefcp3 a) = a
% Assm [h4s_fcps_bit0u_u_repfnsu_c1]: !_0. (!n. happ _0 n = h4/ind__type/BOTTOM) ==> (!r. (!_27bit0_27. (!a00. (?a. a00 = h4/ind__type/CONSTR h4/num/0 a _0) \/ (?a. a00 = h4/ind__type/CONSTR (h4/num/SUC h4/num/0) a _0) ==> happ _27bit0_27 a00) ==> happ _27bit0_27 r) <=> h4/fcp/_20_40ind__typefcp3 (h4/fcp/_20_40ind__typefcp2 r) = r)
% Assm [h4s_fcps_hiddenu_u_u_u_20u_u_40indu_u_u_u_typefcp0u_u_u_u_def]: !_0. (!n. happ _0 n = h4/ind__type/BOTTOM) ==> (!x. happ h4/fcp/_20_40ind__typefcp0 x = h4/fcp/_20_40ind__typefcp2 (h4/ind__type/CONSTR h4/num/0 x _0))
% Assm [h4s_fcps_hiddenu_u_u_u_20u_u_40indu_u_u_u_typefcp1u_u_u_u_def]: !_0. (!n. happ _0 n = h4/ind__type/BOTTOM) ==> (!x. happ h4/fcp/_20_40ind__typefcp1 x = h4/fcp/_20_40ind__typefcp2 (h4/ind__type/CONSTR (h4/num/SUC h4/num/0) x _0))
% Assm [h4s_fcps_BIT0A0]: h4/fcp/BIT0A = h4/fcp/_20_40ind__typefcp0
% Assm [h4s_fcps_BIT0B0]: h4/fcp/BIT0B = h4/fcp/_20_40ind__typefcp1
% Assm [h4s_fcps_bit0u_u_caseu_u_defu_c0]: !f1 f a. h4/fcp/bit0__CASE (happ h4/fcp/BIT0A a) f f1 = happ f a
% Assm [h4s_fcps_bit0u_u_caseu_u_defu_c1]: !f1 f a. h4/fcp/bit0__CASE (happ h4/fcp/BIT0B a) f f1 = happ f1 a
% Goal: !f1_27 f1 f_27 f M_27 M. M = M_27 /\ (!a. M_27 = happ h4/fcp/BIT0A a ==> happ f a = happ f_27 a) /\ (!a. M_27 = happ h4/fcp/BIT0B a ==> happ f1 a = happ f1_27 a) ==> h4/fcp/bit0__CASE M f f1 = h4/fcp/bit0__CASE M_27 f_27 f1_27
fof(aHLu_TRUTH, axiom, p(s(t_bool,t))).
fof(aHLu_FALSITY, axiom, ~ (p(s(t_bool,f0)))).
fof(aHLu_BOOLu_CASES, axiom, ![V_t]: (s(t_bool,V_t) = s(t_bool,t) | s(t_bool,V_t) = s(t_bool,f0))).
fof(aHLu_EXT, axiom, ![TV_Q190352,TV_Q190348]: ![V_f, V_g]: (![V_x]: s(TV_Q190348,happ(s(t_fun(TV_Q190352,TV_Q190348),V_f),s(TV_Q190352,V_x))) = s(TV_Q190348,happ(s(t_fun(TV_Q190352,TV_Q190348),V_g),s(TV_Q190352,V_x))) => s(t_fun(TV_Q190352,TV_Q190348),V_f) = s(t_fun(TV_Q190352,TV_Q190348),V_g))).
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_JRHu_u_INDUCTu_u_UTIL, axiom, ![TV_u_27a]: ![V_t, V_P]: (![V_x]: (s(TV_u_27a,V_x) = s(TV_u_27a,V_t) => 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,d_exists(s(t_fun(TV_u_27a,t_bool),V_P)))))).
fof(ah4s_fcps_bit0u_u_repfnsu_c0, axiom, ![TV_u_27a]: ![V_a]: s(t_h4s_fcps_bit0(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp2(s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp3(s(t_h4s_fcps_bit0(TV_u_27a),V_a))))) = s(t_h4s_fcps_bit0(TV_u_27a),V_a)).
fof(ah4s_fcps_bit0u_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_27bit0u_27]: (![V_a00]: ((?[V_a]: s(t_h4s_indu_u_types_recspace(TV_u_27a),V_a00) = 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,V_a),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),V_uu_0))) | ?[V_a]: s(t_h4s_indu_u_types_recspace(TV_u_27a),V_a00) = 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_a),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_27bit0u_27),s(t_h4s_indu_u_types_recspace(TV_u_27a),V_a00))))) => p(s(t_bool,happ(s(t_fun(t_h4s_indu_u_types_recspace(TV_u_27a),t_bool),V_uu_27bit0u_27),s(t_h4s_indu_u_types_recspace(TV_u_27a),V_r))))) <=> s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp3(s(t_h4s_fcps_bit0(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp2(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_fcps_hiddenu_u_u_u_20u_u_40indu_u_u_u_typefcp0u_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]: s(t_h4s_fcps_bit0(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit0(TV_u_27a)),h4s_fcps_u_20u_40indu_u_typefcp0),s(TV_u_27a,V_x))) = s(t_h4s_fcps_bit0(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp2(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,V_x),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),V_uu_0))))))).
fof(ah4s_fcps_hiddenu_u_u_u_20u_u_40indu_u_u_u_typefcp1u_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]: s(t_h4s_fcps_bit0(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit0(TV_u_27a)),h4s_fcps_u_20u_40indu_u_typefcp1),s(TV_u_27a,V_x))) = s(t_h4s_fcps_bit0(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp2(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_x),s(t_fun(t_h4s_nums_num,t_h4s_indu_u_types_recspace(TV_u_27a)),V_uu_0))))))).
fof(ah4s_fcps_BIT0A0, axiom, ![TV_u_27a]: s(t_fun(TV_u_27a,t_h4s_fcps_bit0(TV_u_27a)),h4s_fcps_bit0a) = s(t_fun(TV_u_27a,t_h4s_fcps_bit0(TV_u_27a)),h4s_fcps_u_20u_40indu_u_typefcp0)).
fof(ah4s_fcps_BIT0B0, axiom, ![TV_u_27a]: s(t_fun(TV_u_27a,t_h4s_fcps_bit0(TV_u_27a)),h4s_fcps_bit0b) = s(t_fun(TV_u_27a,t_h4s_fcps_bit0(TV_u_27a)),h4s_fcps_u_20u_40indu_u_typefcp1)).
fof(ah4s_fcps_bit0u_u_caseu_u_defu_c0, axiom, ![TV_u_27b,TV_u_27a]: ![V_f1, V_f, V_a]: s(TV_u_27b,h4s_fcps_bit0u_u_case(s(t_h4s_fcps_bit0(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit0(TV_u_27a)),h4s_fcps_bit0a),s(TV_u_27a,V_a))),s(t_fun(TV_u_27a,TV_u_27b),V_f),s(t_fun(TV_u_27a,TV_u_27b),V_f1))) = s(TV_u_27b,happ(s(t_fun(TV_u_27a,TV_u_27b),V_f),s(TV_u_27a,V_a)))).
fof(ah4s_fcps_bit0u_u_caseu_u_defu_c1, axiom, ![TV_u_27b,TV_u_27a]: ![V_f1, V_f, V_a]: s(TV_u_27b,h4s_fcps_bit0u_u_case(s(t_h4s_fcps_bit0(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit0(TV_u_27a)),h4s_fcps_bit0b),s(TV_u_27a,V_a))),s(t_fun(TV_u_27a,TV_u_27b),V_f),s(t_fun(TV_u_27a,TV_u_27b),V_f1))) = s(TV_u_27b,happ(s(t_fun(TV_u_27a,TV_u_27b),V_f1),s(TV_u_27a,V_a)))).
fof(ch4s_fcps_bit0u_u_caseu_u_cong, conjecture, ![TV_u_27a,TV_u_27b]: ![V_f1u_27, V_f1, V_fu_27, V_f, V_Mu_27, V_M]: ((s(t_h4s_fcps_bit0(TV_u_27a),V_M) = s(t_h4s_fcps_bit0(TV_u_27a),V_Mu_27) & (![V_a]: (s(t_h4s_fcps_bit0(TV_u_27a),V_Mu_27) = s(t_h4s_fcps_bit0(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit0(TV_u_27a)),h4s_fcps_bit0a),s(TV_u_27a,V_a))) => s(TV_u_27b,happ(s(t_fun(TV_u_27a,TV_u_27b),V_f),s(TV_u_27a,V_a))) = s(TV_u_27b,happ(s(t_fun(TV_u_27a,TV_u_27b),V_fu_27),s(TV_u_27a,V_a)))) & ![V_a]: (s(t_h4s_fcps_bit0(TV_u_27a),V_Mu_27) = s(t_h4s_fcps_bit0(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit0(TV_u_27a)),h4s_fcps_bit0b),s(TV_u_27a,V_a))) => s(TV_u_27b,happ(s(t_fun(TV_u_27a,TV_u_27b),V_f1),s(TV_u_27a,V_a))) = s(TV_u_27b,happ(s(t_fun(TV_u_27a,TV_u_27b),V_f1u_27),s(TV_u_27a,V_a)))))) => s(TV_u_27b,h4s_fcps_bit0u_u_case(s(t_h4s_fcps_bit0(TV_u_27a),V_M),s(t_fun(TV_u_27a,TV_u_27b),V_f),s(t_fun(TV_u_27a,TV_u_27b),V_f1))) = s(TV_u_27b,h4s_fcps_bit0u_u_case(s(t_h4s_fcps_bit0(TV_u_27a),V_Mu_27),s(t_fun(TV_u_27a,TV_u_27b),V_fu_27),s(t_fun(TV_u_27a,TV_u_27b),V_f1u_27))))).
