%   ORIGINAL: h4/res__quan/RES__EXISTS__UNIQUE
% 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/RES__EXISTS__UNIQUE__DEF: h4/bool/RES__EXISTS__UNIQUE = (\p m. h4/bool/RES__EXISTS p (\x. m x) /\ h4/bool/RES__FORALL p (\x. h4/bool/RES__FORALL p (\y. m x /\ m y ==> x = y)))
% Goal: !f P. h4/bool/RES__EXISTS__UNIQUE P f <=> h4/bool/RES__EXISTS P (\x. f x) /\ h4/bool/RES__FORALL P (\x. h4/bool/RES__FORALL P (\y. f x /\ f y ==> x = y))
%   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_RESu_u_EXISTSu_u_UNIQUEu_u_DEF]: !_2. (!x' x y. happ (happ (happ _2 x') x) y <=> happ x' x /\ happ x' y ==> x = y) ==> (!_1. (!x x' x. happ (happ (happ _1 x) x') x <=> h4/bool/RES__FORALL x (happ (happ _2 x') x)) ==> (!_0. (!x' x. happ (happ _0 x') x <=> happ x' x) ==> (!x x'. h4/bool/RES__EXISTS__UNIQUE x x' <=> h4/bool/RES__EXISTS x (happ _0 x') /\ h4/bool/RES__FORALL x (happ _0 (happ (happ _1 x) x')))))
% Goal: !_2. (!f x y. happ (happ (happ _2 f) x) y <=> happ f x /\ happ f y ==> x = y) ==> (!_1. (!P f x. happ (happ (happ _1 P) f) x <=> h4/bool/RES__FORALL P (happ (happ _2 f) x)) ==> (!_0. (!f x. happ (happ _0 f) x <=> happ f x) ==> (!f P. h4/bool/RES__EXISTS__UNIQUE P f <=> h4/bool/RES__EXISTS P (happ _0 f) /\ h4/bool/RES__FORALL P (happ _0 (happ (happ _1 P) f)))))
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_Q274026,TV_Q274022]: ![V_f, V_g]: (![V_x]: s(TV_Q274022,happ(s(t_fun(TV_Q274026,TV_Q274022),V_f),s(TV_Q274026,V_x))) = s(TV_Q274022,happ(s(t_fun(TV_Q274026,TV_Q274022),V_g),s(TV_Q274026,V_x))) => s(t_fun(TV_Q274026,TV_Q274022),V_f) = s(t_fun(TV_Q274026,TV_Q274022),V_g))).
fof(ah4s_bools_RESu_u_EXISTSu_u_UNIQUEu_u_DEF, axiom, ![TV_u_27a]: ![V_uu_2]: (![V_xi_, V_x, V_y]: (p(s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(TV_u_27a,t_fun(TV_u_27a,t_bool)),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_fun(TV_u_27a,t_bool))),V_uu_2),s(t_fun(TV_u_27a,t_bool),V_xi_))),s(TV_u_27a,V_x))),s(TV_u_27a,V_y)))) <=> ((p(s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),V_xi_),s(TV_u_27a,V_x)))) & p(s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),V_xi_),s(TV_u_27a,V_y))))) => s(TV_u_27a,V_x) = s(TV_u_27a,V_y))) => ![V_uu_1]: (![V_x, V_xi_, V_x0]: s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool)),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool))),V_uu_1),s(t_fun(TV_u_27a,t_bool),V_x))),s(t_fun(TV_u_27a,t_bool),V_xi_))),s(TV_u_27a,V_x0))) = s(t_bool,h4s_bools_resu_u_forall(s(t_fun(TV_u_27a,t_bool),V_x),s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(TV_u_27a,t_fun(TV_u_27a,t_bool)),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_fun(TV_u_27a,t_bool))),V_uu_2),s(t_fun(TV_u_27a,t_bool),V_xi_))),s(TV_u_27a,V_x0))))) => ![V_uu_0]: (![V_xi_, V_x]: s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool)),V_uu_0),s(t_fun(TV_u_27a,t_bool),V_xi_))),s(TV_u_27a,V_x))) = s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),V_xi_),s(TV_u_27a,V_x))) => ![V_x, V_xi_]: (p(s(t_bool,h4s_bools_resu_u_existsu_u_unique(s(t_fun(TV_u_27a,t_bool),V_x),s(t_fun(TV_u_27a,t_bool),V_xi_)))) <=> (p(s(t_bool,h4s_bools_resu_u_exists(s(t_fun(TV_u_27a,t_bool),V_x),s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool)),V_uu_0),s(t_fun(TV_u_27a,t_bool),V_xi_)))))) & p(s(t_bool,h4s_bools_resu_u_forall(s(t_fun(TV_u_27a,t_bool),V_x),s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool)),V_uu_0),s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool)),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool))),V_uu_1),s(t_fun(TV_u_27a,t_bool),V_x))),s(t_fun(TV_u_27a,t_bool),V_xi_)))))))))))))).
fof(ch4s_resu_u_quans_RESu_u_EXISTSu_u_UNIQUE, conjecture, ![TV_u_27a]: ![V_uu_2]: (![V_f, V_x, V_y]: (p(s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(TV_u_27a,t_fun(TV_u_27a,t_bool)),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_fun(TV_u_27a,t_bool))),V_uu_2),s(t_fun(TV_u_27a,t_bool),V_f))),s(TV_u_27a,V_x))),s(TV_u_27a,V_y)))) <=> ((p(s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),V_f),s(TV_u_27a,V_x)))) & p(s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),V_f),s(TV_u_27a,V_y))))) => s(TV_u_27a,V_x) = s(TV_u_27a,V_y))) => ![V_uu_1]: (![V_P, V_f, V_x]: s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool)),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool))),V_uu_1),s(t_fun(TV_u_27a,t_bool),V_P))),s(t_fun(TV_u_27a,t_bool),V_f))),s(TV_u_27a,V_x))) = s(t_bool,h4s_bools_resu_u_forall(s(t_fun(TV_u_27a,t_bool),V_P),s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(TV_u_27a,t_fun(TV_u_27a,t_bool)),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_fun(TV_u_27a,t_bool))),V_uu_2),s(t_fun(TV_u_27a,t_bool),V_f))),s(TV_u_27a,V_x))))) => ![V_uu_0]: (![V_f, V_x]: s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool)),V_uu_0),s(t_fun(TV_u_27a,t_bool),V_f))),s(TV_u_27a,V_x))) = s(t_bool,happ(s(t_fun(TV_u_27a,t_bool),V_f),s(TV_u_27a,V_x))) => ![V_f, V_P]: (p(s(t_bool,h4s_bools_resu_u_existsu_u_unique(s(t_fun(TV_u_27a,t_bool),V_P),s(t_fun(TV_u_27a,t_bool),V_f)))) <=> (p(s(t_bool,h4s_bools_resu_u_exists(s(t_fun(TV_u_27a,t_bool),V_P),s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool)),V_uu_0),s(t_fun(TV_u_27a,t_bool),V_f)))))) & p(s(t_bool,h4s_bools_resu_u_forall(s(t_fun(TV_u_27a,t_bool),V_P),s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool)),V_uu_0),s(t_fun(TV_u_27a,t_bool),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool)),happ(s(t_fun(t_fun(TV_u_27a,t_bool),t_fun(t_fun(TV_u_27a,t_bool),t_fun(TV_u_27a,t_bool))),V_uu_1),s(t_fun(TV_u_27a,t_bool),V_P))),s(t_fun(TV_u_27a,t_bool),V_f)))))))))))))).
