%   ORIGINAL: h4/update/UPDATE__def
% 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
% Goal: !b a. h4/combin/UPDATE a b = (\f c. h4/bool/COND (a = c) b (f c))
%   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
% Goal: !b a x x. ?v. (v <=> a = x) /\ h4/combin/UPDATE a b x x = h4/bool/COND v b (happ x x)
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_Q213682,TV_Q213678]: ![V_f, V_g]: (![V_x]: s(TV_Q213678,happ(s(t_fun(TV_Q213682,TV_Q213678),V_f),s(TV_Q213682,V_x))) = s(TV_Q213678,happ(s(t_fun(TV_Q213682,TV_Q213678),V_g),s(TV_Q213682,V_x))) => s(t_fun(TV_Q213682,TV_Q213678),V_f) = s(t_fun(TV_Q213682,TV_Q213678),V_g))).
fof(ch4s_updates_UPDATEu_u_def, conjecture, ![TV_u_27b,TV_u_27a]: ![V_b, V_a, V_x, V_x0]: ?[V_v]: ((p(s(t_bool,V_v)) <=> s(TV_u_27a,V_a) = s(TV_u_27a,V_x0)) & s(TV_u_27b,h4s_combins_update(s(TV_u_27a,V_a),s(TV_u_27b,V_b),s(t_fun(TV_u_27a,TV_u_27b),V_x),s(TV_u_27a,V_x0))) = s(TV_u_27b,h4s_bools_cond(s(t_bool,V_v),s(TV_u_27b,V_b),s(TV_u_27b,happ(s(t_fun(TV_u_27a,TV_u_27b),V_x),s(TV_u_27a,V_x0))))))).
