%   ORIGINAL: h4/bool/DISJ__IMP__THM
% 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/AND__DEF: $and = (\t1 t2. !t. (t1 ==> t2 ==> t) ==> t)
% Assm: h4/bool/IMP__ANTISYM__AX: !t2 t1. (t1 ==> t2) ==> (t2 ==> t1) ==> (t1 <=> t2)
% Assm: h4/bool/AND1__THM: !t2 t1. t1 /\ t2 ==> t1
% Goal: !R Q P. P \/ Q ==> R <=> (P ==> R) /\ (Q ==> R)
%   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_ANDu_u_DEF]: !x x'. $and x x' <=> (!t. (x ==> x' ==> t) ==> t)
% Assm [h4s_bools_IMPu_u_ANTISYMu_u_AX]: !t2 t1. (t1 ==> t2) ==> (t2 ==> t1) ==> (t1 <=> t2)
% Assm [h4s_bools_AND1u_u_THM]: !t2 t1. t1 /\ t2 ==> t1
% Goal: !R Q P. P \/ Q ==> R <=> (P ==> R) /\ (Q ==> R)
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_Q292414,TV_Q292410]: ![V_f, V_g]: (![V_x]: s(TV_Q292410,happ(s(t_fun(TV_Q292414,TV_Q292410),V_f),s(TV_Q292414,V_x))) = s(TV_Q292410,happ(s(t_fun(TV_Q292414,TV_Q292410),V_g),s(TV_Q292414,V_x))) => s(t_fun(TV_Q292414,TV_Q292410),V_f) = s(t_fun(TV_Q292414,TV_Q292410),V_g))).
fof(ah4s_bools_ANDu_u_DEF, axiom, ![V_x, V_xi_]: (p(s(t_bool,d_and(s(t_bool,V_x),s(t_bool,V_xi_)))) <=> ![V_t]: ((p(s(t_bool,V_x)) => (p(s(t_bool,V_xi_)) => p(s(t_bool,V_t)))) => p(s(t_bool,V_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_AND1u_u_THM, axiom, ![V_t2, V_t1]: ((p(s(t_bool,V_t1)) & p(s(t_bool,V_t2))) => p(s(t_bool,V_t1)))).
fof(ch4s_bools_DISJu_u_IMPu_u_THM, conjecture, ![V_R, V_Q, V_P]: (((p(s(t_bool,V_P)) | p(s(t_bool,V_Q))) => p(s(t_bool,V_R))) <=> ((p(s(t_bool,V_P)) => p(s(t_bool,V_R))) & (p(s(t_bool,V_Q)) => p(s(t_bool,V_R)))))).
