Thm* 'a,'b:S.
Thm* all
Thm* ( P:'a  hbool. all
Thm* ( P:'a  hbool. ( B:'a  'b. equal
Thm* ( P:'a  hbool. ( B:'a  'b. (res_abstract(P,B)
Thm* ( P:'a  hbool. ( B:'a  'b. , x:'a. cond(P(x),B(x),arb)))) | [hres_abstract_wd] |
Thm* 'a:S. equal(arb,select( x:'a. t)) | [harb_wd] |
Thm* 'a:S.
Thm* all
Thm* ( P:'a  hbool. all
Thm* ( P:'a  hbool. ( B:'a  hbool. equal
Thm* ( P:'a  hbool. ( B:'a  hbool. (res_select(P,B)
Thm* ( P:'a  hbool. ( B:'a  hbool. ,select( x:'a. and(P(x),B(x)))))) | [hres_select_wd] |
Thm* 'a:S.
Thm* all
Thm* ( P:'a  hbool. all
Thm* ( P:'a  hbool. ( B:'a  hbool. equal
Thm* ( P:'a  hbool. ( B:'a  hbool. (res_exists(P,B)
Thm* ( P:'a  hbool. ( B:'a  hbool. ,exists( x:'a. and(P(x),B(x)))))) | [hres_exists_wd] |
Thm* 'a:S.
Thm* all
Thm* ( P:'a  hbool. all
Thm* ( P:'a  hbool. ( B:'a  hbool. equal
Thm* ( P:'a  hbool. ( B:'a  hbool. (res_forall(P,B)
Thm* ( P:'a  hbool. ( B:'a  hbool. ,all( x:'a. implies(P(x),B(x)))))) | [hres_forall_wd] |
Def res_abstract == P:'a  . f:'a 'b. res_lambda('a;'b;x.P(x);x.f(x)) | [hres_abstract] |
Def res_select == P:'a  . Q:'a  . res_choose('a;x. (P(x));x. (Q(x))) | [hres_select] |
Def res_exists == P:'a  . Q:'a  .  res_exists('a;x. (P(x));x. (Q(x))) | [hres_exists] |
Def res_forall == P:'a  . Q:'a  .  res_all('a;x. (P(x));x. (Q(x))) | [hres_forall] |
Def res_lambda('a;'b;x.P(x);x.f(x)) == x:'a. if P(x) then f(x) else arb('b) fi | [res_lambda] |