%   ORIGINAL: h4/fcp/bit1__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/bit1__repfns_c0: !a. h4/fcp/_20_40ind__typefcp7 (h4/fcp/_20_40ind__typefcp8 a) = a
% Assm: h4/fcp/bit1__repfns_c1: !r. (\a0. !_27bit1_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) \/ a00 = h4/ind__type/CONSTR (h4/num/SUC (h4/num/SUC h4/num/0)) h4/bool/ARB (\n. h4/ind__type/BOTTOM) ==> _27bit1_27 a00) ==> _27bit1_27 a0) r <=> h4/fcp/_20_40ind__typefcp8 (h4/fcp/_20_40ind__typefcp7 r) = r
% Assm: h4/fcp/hidden____20__40ind____typefcp4____def: h4/fcp/_20_40ind__typefcp4 = (\a. h4/fcp/_20_40ind__typefcp7 ((\a0. h4/ind__type/CONSTR h4/num/0 a0 (\n. h4/ind__type/BOTTOM)) a))
% Assm: h4/fcp/hidden____20__40ind____typefcp5____def: h4/fcp/_20_40ind__typefcp5 = (\a. h4/fcp/_20_40ind__typefcp7 ((\a0. h4/ind__type/CONSTR (h4/num/SUC h4/num/0) a0 (\n. h4/ind__type/BOTTOM)) a))
% Assm: h4/fcp/hidden____20__40ind____typefcp6____def: h4/fcp/_20_40ind__typefcp6 = h4/fcp/_20_40ind__typefcp7 (h4/ind__type/CONSTR (h4/num/SUC (h4/num/SUC h4/num/0)) h4/bool/ARB (\n. h4/ind__type/BOTTOM))
% Assm: h4/fcp/BIT1A0: h4/fcp/BIT1A = h4/fcp/_20_40ind__typefcp4
% Assm: h4/fcp/BIT1B0: h4/fcp/BIT1B = h4/fcp/_20_40ind__typefcp5
% Assm: h4/fcp/BIT1C0: h4/fcp/BIT1C = h4/fcp/_20_40ind__typefcp6
% Assm: h4/fcp/bit1__case__def_c0: !v f1 f a. h4/fcp/bit1__CASE (h4/fcp/BIT1A a) f f1 v = f a
% Assm: h4/fcp/bit1__case__def_c1: !v f1 f a. h4/fcp/bit1__CASE (h4/fcp/BIT1B a) f f1 v = f1 a
% Assm: h4/fcp/bit1__case__def_c2: !v f1 f. h4/fcp/bit1__CASE h4/fcp/BIT1C f f1 v = v
% Goal: !v_27 v f1_27 f1 f_27 f M_27 M. M = M_27 /\ (!a. M_27 = h4/fcp/BIT1A a ==> f a = f_27 a) /\ (!a. M_27 = h4/fcp/BIT1B a ==> f1 a = f1_27 a) /\ (M_27 = h4/fcp/BIT1C ==> v = v_27) ==> h4/fcp/bit1__CASE M f f1 v = h4/fcp/bit1__CASE M_27 f_27 f1_27 v_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_bit1u_u_repfnsu_c0]: !a. h4/fcp/_20_40ind__typefcp7 (h4/fcp/_20_40ind__typefcp8 a) = a
% Assm [h4s_fcps_bit1u_u_repfnsu_c1]: !_0. (!n. happ _0 n = h4/ind__type/BOTTOM) ==> (!r. (!_27bit1_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) \/ a00 = h4/ind__type/CONSTR (h4/num/SUC (h4/num/SUC h4/num/0)) h4/bool/ARB _0 ==> happ _27bit1_27 a00) ==> happ _27bit1_27 r) <=> h4/fcp/_20_40ind__typefcp8 (h4/fcp/_20_40ind__typefcp7 r) = r)
% Assm [h4s_fcps_hiddenu_u_u_u_20u_u_40indu_u_u_u_typefcp4u_u_u_u_def]: !_0. (!n. happ _0 n = h4/ind__type/BOTTOM) ==> (!x. happ h4/fcp/_20_40ind__typefcp4 x = h4/fcp/_20_40ind__typefcp7 (h4/ind__type/CONSTR h4/num/0 x _0))
% Assm [h4s_fcps_hiddenu_u_u_u_20u_u_40indu_u_u_u_typefcp5u_u_u_u_def]: !_0. (!n. happ _0 n = h4/ind__type/BOTTOM) ==> (!x. happ h4/fcp/_20_40ind__typefcp5 x = h4/fcp/_20_40ind__typefcp7 (h4/ind__type/CONSTR (h4/num/SUC h4/num/0) x _0))
% Assm [h4s_fcps_hiddenu_u_u_u_20u_u_40indu_u_u_u_typefcp6u_u_u_u_def]: !_0. (!n. happ _0 n = h4/ind__type/BOTTOM) ==> h4/fcp/_20_40ind__typefcp6 = h4/fcp/_20_40ind__typefcp7 (h4/ind__type/CONSTR (h4/num/SUC (h4/num/SUC h4/num/0)) h4/bool/ARB _0)
% Assm [h4s_fcps_BIT1A0]: h4/fcp/BIT1A = h4/fcp/_20_40ind__typefcp4
% Assm [h4s_fcps_BIT1B0]: h4/fcp/BIT1B = h4/fcp/_20_40ind__typefcp5
% Assm [h4s_fcps_BIT1C0]: h4/fcp/BIT1C = h4/fcp/_20_40ind__typefcp6
% Assm [h4s_fcps_bit1u_u_caseu_u_defu_c0]: !v f1 f a. h4/fcp/bit1__CASE (happ h4/fcp/BIT1A a) f f1 v = happ f a
% Assm [h4s_fcps_bit1u_u_caseu_u_defu_c1]: !v f1 f a. h4/fcp/bit1__CASE (happ h4/fcp/BIT1B a) f f1 v = happ f1 a
% Assm [h4s_fcps_bit1u_u_caseu_u_defu_c2]: !v f1 f. h4/fcp/bit1__CASE h4/fcp/BIT1C f f1 v = v
% Goal: !v_27 v f1_27 f1 f_27 f M_27 M. M = M_27 /\ (!a. M_27 = happ h4/fcp/BIT1A a ==> happ f a = happ f_27 a) /\ (!a. M_27 = happ h4/fcp/BIT1B a ==> happ f1 a = happ f1_27 a) /\ (M_27 = h4/fcp/BIT1C ==> v = v_27) ==> h4/fcp/bit1__CASE M f f1 v = h4/fcp/bit1__CASE M_27 f_27 f1_27 v_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_Q190655,TV_Q190651]: ![V_f, V_g]: (![V_x]: s(TV_Q190651,happ(s(t_fun(TV_Q190655,TV_Q190651),V_f),s(TV_Q190655,V_x))) = s(TV_Q190651,happ(s(t_fun(TV_Q190655,TV_Q190651),V_g),s(TV_Q190655,V_x))) => s(t_fun(TV_Q190655,TV_Q190651),V_f) = s(t_fun(TV_Q190655,TV_Q190651),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_bit1u_u_repfnsu_c0, axiom, ![TV_u_27a]: ![V_a]: s(t_h4s_fcps_bit1(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp7(s(t_h4s_indu_u_types_recspace(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp8(s(t_h4s_fcps_bit1(TV_u_27a),V_a))))) = s(t_h4s_fcps_bit1(TV_u_27a),V_a)).
fof(ah4s_fcps_bit1u_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_27bit1u_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))) | 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_suc(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))))) => p(s(t_bool,happ(s(t_fun(t_h4s_indu_u_types_recspace(TV_u_27a),t_bool),V_uu_27bit1u_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_27bit1u_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_typefcp8(s(t_h4s_fcps_bit1(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp7(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_typefcp4u_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_bit1(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit1(TV_u_27a)),h4s_fcps_u_20u_40indu_u_typefcp4),s(TV_u_27a,V_x))) = s(t_h4s_fcps_bit1(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp7(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_typefcp5u_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_bit1(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit1(TV_u_27a)),h4s_fcps_u_20u_40indu_u_typefcp5),s(TV_u_27a,V_x))) = s(t_h4s_fcps_bit1(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp7(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_hiddenu_u_u_u_20u_u_40indu_u_u_u_typefcp6u_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_fcps_bit1(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp6) = s(t_h4s_fcps_bit1(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp7(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_suc(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_fcps_BIT1A0, axiom, ![TV_u_27a]: s(t_fun(TV_u_27a,t_h4s_fcps_bit1(TV_u_27a)),h4s_fcps_bit1a) = s(t_fun(TV_u_27a,t_h4s_fcps_bit1(TV_u_27a)),h4s_fcps_u_20u_40indu_u_typefcp4)).
fof(ah4s_fcps_BIT1B0, axiom, ![TV_u_27a]: s(t_fun(TV_u_27a,t_h4s_fcps_bit1(TV_u_27a)),h4s_fcps_bit1b) = s(t_fun(TV_u_27a,t_h4s_fcps_bit1(TV_u_27a)),h4s_fcps_u_20u_40indu_u_typefcp5)).
fof(ah4s_fcps_BIT1C0, axiom, ![TV_u_27a]: s(t_h4s_fcps_bit1(TV_u_27a),h4s_fcps_bit1c) = s(t_h4s_fcps_bit1(TV_u_27a),h4s_fcps_u_20u_40indu_u_typefcp6)).
fof(ah4s_fcps_bit1u_u_caseu_u_defu_c0, axiom, ![TV_u_27b,TV_u_27a]: ![V_v, V_f1, V_f, V_a]: s(TV_u_27b,h4s_fcps_bit1u_u_case(s(t_h4s_fcps_bit1(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit1(TV_u_27a)),h4s_fcps_bit1a),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,V_v))) = 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_bit1u_u_caseu_u_defu_c1, axiom, ![TV_u_27b,TV_u_27a]: ![V_v, V_f1, V_f, V_a]: s(TV_u_27b,h4s_fcps_bit1u_u_case(s(t_h4s_fcps_bit1(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit1(TV_u_27a)),h4s_fcps_bit1b),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,V_v))) = s(TV_u_27b,happ(s(t_fun(TV_u_27a,TV_u_27b),V_f1),s(TV_u_27a,V_a)))).
fof(ah4s_fcps_bit1u_u_caseu_u_defu_c2, axiom, ![TV_u_27a,TV_u_27b]: ![V_v, V_f1, V_f]: s(TV_u_27b,h4s_fcps_bit1u_u_case(s(t_h4s_fcps_bit1(TV_u_27a),h4s_fcps_bit1c),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,V_v))) = s(TV_u_27b,V_v)).
fof(ch4s_fcps_bit1u_u_caseu_u_cong, conjecture, ![TV_u_27a,TV_u_27b]: ![V_vu_27, V_v, V_f1u_27, V_f1, V_fu_27, V_f, V_Mu_27, V_M]: ((s(t_h4s_fcps_bit1(TV_u_27a),V_M) = s(t_h4s_fcps_bit1(TV_u_27a),V_Mu_27) & (![V_a]: (s(t_h4s_fcps_bit1(TV_u_27a),V_Mu_27) = s(t_h4s_fcps_bit1(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit1(TV_u_27a)),h4s_fcps_bit1a),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_bit1(TV_u_27a),V_Mu_27) = s(t_h4s_fcps_bit1(TV_u_27a),happ(s(t_fun(TV_u_27a,t_h4s_fcps_bit1(TV_u_27a)),h4s_fcps_bit1b),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(t_h4s_fcps_bit1(TV_u_27a),V_Mu_27) = s(t_h4s_fcps_bit1(TV_u_27a),h4s_fcps_bit1c) => s(TV_u_27b,V_v) = s(TV_u_27b,V_vu_27))))) => s(TV_u_27b,h4s_fcps_bit1u_u_case(s(t_h4s_fcps_bit1(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,V_v))) = s(TV_u_27b,h4s_fcps_bit1u_u_case(s(t_h4s_fcps_bit1(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),s(TV_u_27b,V_vu_27))))).
