Thm* 'a,'b:S.
Thm* all
Thm* ( e:'b. equal
Thm* ( e:'b. (inr(e)
Thm* ( e:'b. ,abs_sum( b:hbool. x:'a. y:'b. and(equal(y,e),not(b))))) | [hinr_def] |
Thm* 'b,'a:S.
Thm* all
Thm* ( e:'a. equal(inl(e),abs_sum( b:hbool. x:'a. y:'b. and(equal(x,e),b)))) | [hinl_def] |
Thm* 'a,'b:S.
Thm* exists
Thm* ( rep:hsum('a; 'b)  hbool  'a  'b  hbool. type_definition
Thm* ( rep:hsum('a; 'b)  hbool  'a  'b  hbool. (is_sum_rep
Thm* ( rep:hsum('a; 'b)  hbool  'a  'b  hbool. ,rep)) | [hsum_ty_def] |
Thm* 'a,'b:S.
Thm* and
Thm* (all( a:hsum('a; 'b). equal(abs_sum(rep_sum(a)),a))
Thm* ,all
Thm* ,( r:hbool  'a  'b  hbool. equal
Thm* ,( r:hbool  'a  'b  hbool. (is_sum_rep(r)
Thm* ,( r:hbool  'a  'b  hbool. ,equal(rep_sum(abs_sum(r)),r)))) | [hsum_iso_def] |
Thm* 'a,'b:S.
Thm* all
Thm* ( f:hbool
Thm* ( 'a
Thm* ( 'b
Thm* ( hbool. equal
Thm* ( hbool. (is_sum_rep(f)
Thm* ( hbool. ,exists
Thm* ( hbool. ,( v1:'a. exists
Thm* ( hbool. ,( v1:'a. ( v2:'b. or
Thm* ( hbool. ,( v1:'a. ( v2:'b. (equal
Thm* ( hbool. ,( v1:'a. ( v2:'b. ((f
Thm* ( hbool. ,( v1:'a. ( v2:'b. (, b:hbool. x:'a. y:'b. and(equal(x,v1),b))
Thm* ( hbool. ,( v1:'a. ( v2:'b. ,equal
Thm* ( hbool. ,( v1:'a. ( v2:'b. ,(f
Thm* ( hbool. ,( v1:'a. ( v2:'b. ,, b:hbool. x:'a. y:'b. and
Thm* ( hbool. ,( v1:'a. ( v2:'b. ,, b:hbool. x:'a. y:'b. (equal(y,v2)
Thm* ( hbool. ,( v1:'a. ( v2:'b. ,, b:hbool. x:'a. y:'b. ,not(b)))))))) | [his_sum_rep_wd] |