Theorems |
ABSORPTION : !x s. x IN s <=> x INSERT s = sBIJECTIVE_LEFT_RIGHT_INVERSE : !f. (!x y. f x = f y ==> x = y) /\ (!y. ?x. f x = y) <=>
(?g. (!y. f (g y) = y) /\ (!x. g (f x) = x))BIJECTIVE_ON_LEFT_RIGHT_INVERSE : !f s t.
(!x. x IN s ==> f x IN t)
==> ((!x y. x IN s /\ y IN s /\ f x = f y ==> x = y) /\
(!y. y IN t ==> (?x. x IN s /\ f x = y)) <=>
(?g. (!y. y IN t ==> g y IN s) /\
(!y. y IN t ==> f (g y) = y) /\
(!x. x IN s ==> g (f x) = x)))COMPONENT : !x s. x IN x INSERT sCROSS_EMPTY : !s. s CROSS {} = {}CROSS_EQ_EMPTY : !s t. s CROSS t = {} <=> s = {} \/ t = {}CROSS_UNIV : UNIV CROSS UNIV = UNIVDECOMPOSITION : !s x. x IN s <=> (?t. s = x INSERT t /\ ~(x IN t))DELETE_COMM : !x y s. s DELETE x DELETE y = s DELETE y DELETE xDELETE_DELETE : !x s. s DELETE x DELETE x = s DELETE xDELETE_DIFF_SING : !x s. s DIFF {x} = s DELETE xDELETE_INSERT : !x y s.
(x INSERT s) DELETE y =
(if x = y then s DELETE y else x INSERT (s DELETE y))DELETE_INSERT_NON_ELEMENT : !x s. (x INSERT s) DELETE x = s <=> ~(x IN s)DELETE_INTER : !s t x. s DELETE x INTER t = (s INTER t) DELETE xDELETE_NON_ELEMENT : !x s. s DELETE x = s <=> ~(x IN s)DELETE_SUBSET : !x s. s DELETE x SUBSET sDIFF_COMM : !t u s. s DIFF t DIFF u = s DIFF u DIFF tDIFF_DIFF : !s t. s DIFF t DIFF t = s DIFF tDIFF_EMPTY : !s. s DIFF {} = sDIFF_EMPTY_SUBSET : !s t. s DIFF t = {} <=> s SUBSET tDIFF_EQ_EMPTY : !s. s DIFF s = {}DIFF_INSERT : !s t x. s DIFF x INSERT t = s DELETE x DIFF tDIFF_INTERS : !u s. u DIFF INTERS s = UNIONS {u DIFF t | t IN s}DIFF_SUBSET : !s t. s DIFF t SUBSET sDIFF_UNION : !t u s. s DIFF t DIFF u = s DIFF (t UNION u)DIFF_UNIONS : !u s. u DIFF UNIONS s = u INTER INTERS {u DIFF t | t IN s}DIFF_UNION_CANCEL : !s t. s DIFF t UNION t = s UNION tDIFF_UNION_SUBSET : !s t. t DIFF s UNION s = t <=> s SUBSET tDIFF_UNIV : !s. s DIFF UNIV = {}DISJOINT_DELETE_SYM : !s t x. DISJOINT (s DELETE x) t <=> DISJOINT (t DELETE x) sDISJOINT_DIFF : !s t. s DIFF t = s <=> DISJOINT s tDISJOINT_DIFF1 : !s t. DISJOINT (t DIFF s) sDISJOINT_DIFF2 : !s t. DISJOINT s (t DIFF s)DISJOINT_EMPTY : !s. DISJOINT s {}DISJOINT_EMPTY_REFL : !s. DISJOINT s s <=> s = {}DISJOINT_INSERT : !x s t. DISJOINT (x INSERT s) t <=> ~(x IN t) /\ DISJOINT s tDISJOINT_SING : !x s. DISJOINT s {x} <=> ~(x IN s)DISJOINT_SYM : !s t. DISJOINT s t <=> DISJOINT t sDISJOINT_UNION : !s t u. DISJOINT (s UNION t) u <=> DISJOINT s u /\ DISJOINT t uDISJOINT_UNIONS : !s t. DISJOINT s (UNIONS t) <=> (!x. x IN t ==> DISJOINT s x)EMPTY_CROSS : !s. {} CROSS s = {}EMPTY_DELETE : !x. {} DELETE x = {}EMPTY_DIFF : !s. {} DIFF s = {}EMPTY_DISJOINT : !s. DISJOINT {} sEMPTY_FUNSPACE : !d t.
{f | (!x. x IN {} ==> f x IN t) /\ (!x. ~(x IN {}) ==> f x = d)} =
{(\x. d)}EMPTY_GSPEC : GSPEC (\x. F) = {}EMPTY_NUMSEG_LT : {m | m < 0} = {}EMPTY_POWERSET : {s | s SUBSET {}} = {{}}EMPTY_PRODUCT_DEPENDENT : !t. {x,y | x IN {} /\ y IN t x} = {}EMPTY_SUBSET : !s. {} SUBSET sEMPTY_UNION : !s t. s UNION t = {} <=> s = {} /\ t = {}EMPTY_UNIONS : !s. UNIONS s = {} <=> (!t. t IN s ==> t = {})EQ_UNIV : !s. (!x. x IN s) <=> s = UNIVEXISTS_IN_GSPEC1 : !p f q. (?z. z IN {f x | p x} /\ q z) <=> (?x. p x /\ q (f x))EXISTS_IN_GSPEC2 : !p f q. (?z. z IN {f x y | p x y} /\ q z) <=> (?x y. p x y /\ q (f x y))EXISTS_IN_GSPEC3 : !p f q.
(?z. z IN {f w x y | p w x y} /\ q z) <=>
(?w x y. p w x y /\ q (f w x y))EXISTS_IN_IMAGE : !p f s. (?y. y IN IMAGE f s /\ p y) <=> (?x. x IN s /\ p (f x))EXISTS_IN_INSERT : !p a s. (?x. x IN a INSERT s /\ p x) <=> p a \/ (?x. x IN s /\ p x)EXISTS_IN_UNION : !p s t.
(?x. x IN s UNION t /\ p x) <=>
(?x. x IN s /\ p x) \/ (?x. x IN t /\ p x)EXISTS_IN_UNIONS : !p s. (?x. x IN UNIONS s /\ p x) <=> (?t x. t IN s /\ x IN t /\ p x)EXISTS_SUBSET_IMAGE : !p f s. (?t. t SUBSET IMAGE f s /\ p t) <=> (?t. t SUBSET s /\ p (IMAGE f t))EXISTS_SUBSET_IMAGE_INJ : !p f s.
(?t. t SUBSET IMAGE f s /\ p t) <=>
(?t. t SUBSET s /\
(!x y. x IN t /\ y IN t /\ f x = f y ==> x = y) /\
p (IMAGE f t))EXISTS_SUBSET_INSERT : !p x t.
(?s. s SUBSET x INSERT t /\ p s) <=>
(?s. s SUBSET t /\ (p s \/ p (x INSERT s)))EXISTS_SUBSET_UNION : !p t u.
(?s. s SUBSET t UNION u /\ p s) <=>
(?t' u'. t' SUBSET t /\ u' SUBSET u /\ p (t' UNION u'))EXTENSION' : !s t. (!x. x IN s <=> x IN t) <=> s = tFORALL_IN_GSPEC1 : !p f q. (!z. z IN {f x | p x} ==> q z) <=> (!x. p x ==> q (f x))FORALL_IN_GSPEC2 : !p f q. (!z. z IN {f x y | p x y} ==> q z) <=> (!x y. p x y ==> q (f x y))FORALL_IN_GSPEC3 : !p f q.
(!z. z IN {f w x y | p w x y} ==> q z) <=>
(!w x y. p w x y ==> q (f w x y))FORALL_IN_IMAGE : !p f s. (!y. y IN IMAGE f s ==> p y) <=> (!x. x IN s ==> p (f x))FORALL_IN_IMAGE_2 : !p f s.
(!x y. x IN IMAGE f s /\ y IN IMAGE f s ==> p x y) <=>
(!x y. x IN s /\ y IN s ==> p (f x) (f y))FORALL_IN_INSERT : !p a s. (!x. x IN a INSERT s ==> p x) <=> p a /\ (!x. x IN s ==> p x)FORALL_IN_UNION : !p s t.
(!x. x IN s UNION t ==> p x) <=>
(!x. x IN s ==> p x) /\ (!x. x IN t ==> p x)FORALL_IN_UNIONS : !p s. (!x. x IN UNIONS s ==> p x) <=> (!t x. t IN s /\ x IN t ==> p x)FORALL_SUBSET_IMAGE : !p f s.
(!t. t SUBSET IMAGE f s ==> p t) <=> (!t. t SUBSET s ==> p (IMAGE f t))FORALL_SUBSET_IMAGE_INJ : !p f s.
(!t. t SUBSET IMAGE f s ==> p t) <=>
(!t. t SUBSET s /\ (!x y. x IN t /\ y IN t /\ f x = f y ==> x = y)
==> p (IMAGE f t))FORALL_SUBSET_INSERT : !p x t.
(!s. s SUBSET x INSERT t ==> p s) <=>
(!s. s SUBSET t ==> p s /\ p (x INSERT s))FORALL_SUBSET_UNION : !p t u.
(!s. s SUBSET t UNION u ==> p s) <=>
(!t' u'. t' SUBSET t /\ u' SUBSET u ==> p (t' UNION u'))FUN_IN_IMAGE : !f s x. x IN s ==> f x IN IMAGE f sIMAGE_CONST : !s c. IMAGE (\x. c) s = (if s = {} then {} else {c})IMAGE_DELETE_INJ : !f s a.
(!x. f x = f a ==> x = a) ==> IMAGE f (s DELETE a) = IMAGE f s DELETE f aIMAGE_DIFF_INJ : !f s t.
(!x y. f x = f y ==> x = y)
==> IMAGE f (s DIFF t) = IMAGE f s DIFF IMAGE f tIMAGE_EMPTY : !f. IMAGE f {} = {}IMAGE_EQ_EMPTY : !f s. IMAGE f s = {} <=> s = {}IMAGE_I : !s. IMAGE I s = sIMAGE_ID : !s. IMAGE (\x. x) s = sIMAGE_INJECTIVE_IMAGE_OF_SUBSET : !f s.
?t. t SUBSET s /\
IMAGE f s = IMAGE f t /\
(!x y. x IN t /\ y IN t /\ f x = f y ==> x = y)IMAGE_INSERT : !f x s. IMAGE f (x INSERT s) = f x INSERT IMAGE f sIMAGE_INTERS : !f s.
~(s = {}) /\
(!x y. x IN UNIONS s /\ y IN UNIONS s /\ f x = f y ==> x = y)
==> IMAGE f (INTERS s) = INTERS (IMAGE (IMAGE f) s)IMAGE_INTER_INJ : !f s t.
(!x y. f x = f y ==> x = y)
==> IMAGE f (s INTER t) = IMAGE f s INTER IMAGE f tIMAGE_POWERSET : !s. {t | t SUBSET s} =
IMAGE (\p. {x | p x})
{p | (!x. x IN s ==> p x IN UNIV) /\ (!x. ~(x IN s) ==> (p x <=> F))}IMAGE_SING : !f x. IMAGE f {x} = {f x}IMAGE_SUBSET : !f s t. s SUBSET t ==> IMAGE f s SUBSET IMAGE f tIMAGE_UNION : !f s t. IMAGE f (s UNION t) = IMAGE f s UNION IMAGE f tIMAGE_UNIONS : !f s. IMAGE f (UNIONS s) = UNIONS (IMAGE (IMAGE f) s)IMAGE_o : !f g s. IMAGE (f o g) s = IMAGE f (IMAGE g s)INJECTIVE_IMAGE : !f. (!s t. IMAGE f s = IMAGE f t ==> s = t) <=> (!x y. f x = f y ==> x = y)INJECTIVE_LEFT_INVERSE : !f. (!x y. f x = f y ==> x = y) <=> (?g. !x. g (f x) = x)INJECTIVE_ON_IMAGE : !f u.
(!s t. s SUBSET u /\ t SUBSET u /\ IMAGE f s = IMAGE f t ==> s = t) <=>
(!x y. x IN u /\ y IN u /\ f x = f y ==> x = y)INJECTIVE_ON_LEFT_INVERSE : !f s.
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y) <=>
(?g. !x. x IN s ==> g (f x) = x)INSERT_AC : !x y s.
x INSERT y INSERT s = y INSERT x INSERT s /\
x INSERT x INSERT s = x INSERT sINSERT_BOOL : UNIV = {T, F}INSERT_COMM : !x y s. x INSERT y INSERT s = y INSERT x INSERT sINSERT_DELETE : !x s. x IN s ==> x INSERT (s DELETE x) = sINSERT_DIFF : !s t x.
x INSERT s DIFF t = (if x IN t then s DIFF t else x INSERT (s DIFF t))INSERT_FUNSPACE : !d a s t.
{f | (!x. x IN a INSERT s ==> f x IN t) /\
(!x. ~(x IN a INSERT s) ==> f x = d)} =
IMAGE (\(b,g) x. if x = a then b else g x)
(t CROSS {f | (!x. x IN s ==> f x IN t) /\ (!x. ~(x IN s) ==> f x = d)})INSERT_INSERT : !x s. x INSERT x INSERT s = x INSERT sINSERT_INTER : !x s t.
x INSERT s INTER t = (if x IN t then x INSERT (s INTER t) else s INTER t)INSERT_NUMSEG_LT : !n. {m | m < SUC n} = n INSERT {m | m < n}INSERT_NUMSEG_LT' : !n. {m | m < SUC n} = 0 INSERT {SUC m | m < n}INSERT_POWERSET : !a t.
{s | s SUBSET a INSERT t} =
{s | s SUBSET t} UNION IMAGE (\s. a INSERT s) {s | s SUBSET t}INSERT_PRODUCT_DEPENDENT : !s t a.
{x,y | x IN a INSERT s /\ y IN t x} =
IMAGE ((,) a) (t a) UNION {x,y | x IN s /\ y IN t x}INSERT_SUBSET : !x s t. x INSERT s SUBSET t <=> x IN t /\ s SUBSET tINSERT_UNION : !x s t.
x INSERT s UNION t = (if x IN t then s UNION t else x INSERT (s UNION t))INSERT_UNION_EQ : !x s t. x INSERT s UNION t = x INSERT (s UNION t)INSERT_UNION_SING : !x s. {x} UNION s = x INSERT sINSERT_UNIV : !x. x INSERT UNIV = UNIVINTERS_0 : INTERS {} = UNIVINTERS_1 : !s. INTERS {s} = sINTERS_2 : !s t. INTERS {s, t} = s INTER tINTERS_GSPEC1 : !p f. INTERS {f x | p x} = {a | !x. p x ==> a IN f x}INTERS_GSPEC2 : !p f. INTERS {f x y | p x y} = {a | !x y. p x y ==> a IN f x y}INTERS_GSPEC3 : !p f. INTERS {f x y z | p x y z} = {a | !x y z. p x y z ==> a IN f x y z}INTERS_IMAGE : !f s. INTERS (IMAGE f s) = {y | !x. x IN s ==> y IN f x}INTERS_INSERT : !s u. INTERS (s INSERT u) = s INTER INTERS uINTERS_OVER_UNIONS : !f s.
INTERS {UNIONS (f x) | x IN s} =
UNIONS {INTERS {g x | x IN s} | g | !x. x IN s ==> g x IN f x}INTERS_SUBSET : !u s. ~(u = {}) /\ (!t. t IN u ==> t SUBSET s) ==> INTERS u SUBSET sINTERS_SUBSET_INTERS : !s t. s SUBSET t ==> INTERS t SUBSET INTERS sINTERS_UNION : !s t. INTERS (s UNION t) = INTERS s INTER INTERS tINTERS_UNIONS : !s. INTERS s = UNIV DIFF UNIONS {UNIV DIFF t | t IN s}INTER_ACI : !p q r.
p INTER q = q INTER p /\
(p INTER q) INTER r = p INTER q INTER r /\
p INTER q INTER r = q INTER p INTER r /\
p INTER p = p /\
p INTER p INTER q = p INTER qINTER_ASSOC : !s t u. (s INTER t) INTER u = s INTER t INTER uINTER_COMM : !s t. s INTER t = t INTER sINTER_IDEMPOT : !s. s INTER s = sINTER_LEFT_EMPTY : !s. {} INTER s = {}INTER_LEFT_UNIV : !s. UNIV INTER s = sINTER_RIGHT_EMPTY : !s. s INTER {} = {}INTER_RIGHT_UNIV : !s. s INTER UNIV = sINTER_UNIONS : !s t. t INTER UNIONS s = UNIONS {t INTER x | x IN s}IN_CROSS : !x y s t. x,y IN s CROSS t <=> x IN s /\ y IN tIN_DELETE : !s x y. x IN s DELETE y <=> x IN s /\ ~(x = y)IN_DELETE_EQ : !s x x'. (x IN s DELETE x' <=> x' IN s DELETE x) <=> x IN s <=> x' IN sIN_DELETE_SWAP : !s x x'. (x IN s <=> x' IN s) ==> (x IN s DELETE x' <=> x' IN s DELETE x)IN_DIFF : !s t x. x IN s DIFF t <=> x IN s /\ ~(x IN t)IN_DISJOINT : !s t. DISJOINT s t <=> ~(?x. x IN s /\ x IN t)IN_ELIM : !p x. x IN {y | p y} <=> p xIN_ELIM_PAIR_THM : !p a b. a,b IN {x,y | p x y} <=> p a bIN_IMAGE : !y s f. y IN IMAGE f s <=> (?x. y = f x /\ x IN s)IN_INSERT : !x y s. x IN y INSERT s <=> x = y \/ x IN sIN_INTER : !s t x. x IN s INTER t <=> x IN s /\ x IN tIN_INTERS : !s x. x IN INTERS s <=> (!t. t IN s ==> x IN t)IN_REST : !x s. x IN REST s <=> x IN s /\ ~(x = CHOICE s)IN_SING : !x y. x IN {y} <=> x = yIN_UNION : !s t x. x IN s UNION t <=> x IN s \/ x IN tIN_UNIONS : !s x. x IN UNIONS s <=> (?t. t IN s /\ x IN t)IN_UNIV : !x. x IN UNIVLEFT_INTER_DISTRIB : !s t u. s UNION t INTER u = (s UNION t) INTER (s UNION u)LEFT_INTER_SUBSET : !s t. s INTER t SUBSET sLEFT_UNION_DISTRIB : !s t u. s INTER (t UNION u) = s INTER t UNION s INTER uLEFT_UNION_INTERS : !s t. t UNION INTERS s = INTERS {t UNION x | x IN s}MEMBER_NOT_EMPTY : !s. (?x. x IN s) <=> ~(s = {})NOT_EQUAL_SETS : !s t. ~(s = t) <=> (?x. x IN t <=> ~(x IN s))NOT_INSERT_EMPTY : !x s. ~(x INSERT s = {})NOT_IN_EMPTY : !x. ~(x IN {})NOT_PSUBSET_EMPTY : !s. ~(s PSUBSET {})NOT_UNIV_PSUBSET : !s. ~(UNIV PSUBSET s)PSUBSET_ALT : !s t. s PSUBSET t <=> s SUBSET t /\ (?a. a IN t /\ ~(a IN s))PSUBSET_INSERT_SUBSET : !s t. s PSUBSET t <=> (?x. ~(x IN s) /\ x INSERT s SUBSET t)PSUBSET_IRREFL : !s. ~(s PSUBSET s)PSUBSET_NOT_SUBSET : !s t. s PSUBSET t <=> s SUBSET t /\ ~(t SUBSET s)PSUBSET_SUBSET : !s t. s PSUBSET t ==> s SUBSET tPSUBSET_SUBSET_TRANS : !s t u. s PSUBSET t /\ t SUBSET u ==> s PSUBSET uPSUBSET_TRANS : !s t u. s PSUBSET t /\ t PSUBSET u ==> s PSUBSET uPSUBSET_UNIV : !s. s PSUBSET UNIV <=> (?x. ~(x IN s))RIGHT_INTER_DISTRIB : !s t u. s INTER t UNION u = (s UNION u) INTER (t UNION u)RIGHT_INTER_SUBSET : !s t. t INTER s SUBSET sRIGHT_UNION_DISTRIB : !s t u. (s UNION t) INTER u = s INTER u UNION t INTER uRIGHT_UNION_INTERS : !s t. INTERS s UNION t = INTERS {x UNION t | x IN s}SET_CASES : !s. s = {} \/ (?x t. s = x INSERT t /\ ~(x IN t))SET_PAIR_THM : !p. {x | p x} = {a,b | p (a,b)}SET_PROVE_CASES : !p. p {} /\ (!a s. ~(a IN s) ==> p (a INSERT s)) ==> (!s. p s)SIMPLE_IMAGE : !f s. {f x | x IN s} = IMAGE f sSIMPLE_IMAGE_GEN : !p f. {f x | p x} = IMAGE f {x | p x}SING_DISJOINT : !x s. DISJOINT {x} s <=> ~(x IN s)SING_GSPEC1 : !a. {x | x = a} = {a}SING_SUBSET : !s x. {x} SUBSET s <=> x IN sSUBSET_ANTISYM : !s t. s SUBSET t /\ t SUBSET s ==> s = tSUBSET_ANTISYM_EQ : !s t. s SUBSET t /\ t SUBSET s <=> s = tSUBSET_DELETE : !x s t. s SUBSET t DELETE x <=> s SUBSET t /\ ~(x IN s)SUBSET_DIFF : !s t u. s SUBSET t DIFF u <=> s SUBSET t /\ DISJOINT s uSUBSET_DIFF_UNION : !s t u. s SUBSET t UNION u <=> s DIFF t SUBSET uSUBSET_EMPTY : !s. s SUBSET {} <=> s = {}SUBSET_IMAGE : !f s t. s SUBSET IMAGE f t <=> (?u. u SUBSET t /\ s = IMAGE f u)SUBSET_IMAGE_INJ : !f s t.
s SUBSET IMAGE f t <=>
(?u. u SUBSET t /\
(!x y. x IN u /\ y IN u /\ f x = f y ==> x = y) /\
s = IMAGE f u)SUBSET_INSERT : !x s. ~(x IN s) ==> (!t. s SUBSET x INSERT t <=> s SUBSET t)SUBSET_INSERT_DELETE : !x s t. s SUBSET x INSERT t <=> s DELETE x SUBSET tSUBSET_INSERT_IMP : !s t x. s SUBSET t ==> s SUBSET x INSERT tSUBSET_INTER : !s t u. s SUBSET t INTER u <=> s SUBSET t /\ s SUBSET uSUBSET_INTERS : !t u. t SUBSET INTERS u <=> (!s. s IN u ==> t SUBSET s)SUBSET_INTER_ABSORPTION : !s t. s SUBSET t <=> s INTER t = sSUBSET_LEFT_UNION : !s t. s SUBSET s UNION tSUBSET_PSUBSET_TRANS : !s t u. s SUBSET t /\ t PSUBSET u ==> s PSUBSET uSUBSET_REFL : !s. s SUBSET sSUBSET_RESTRICT : !s p. {x | x IN s /\ p x} SUBSET sSUBSET_RIGHT_UNION : !s t. s SUBSET t UNION sSUBSET_SING : !s x. s SUBSET {x} <=> s = {} \/ s = {x}SUBSET_TRANS : !s t u. s SUBSET t /\ t SUBSET u ==> s SUBSET uSUBSET_UNIONS : !f g. f SUBSET g ==> UNIONS f SUBSET UNIONS gSUBSET_UNION_ABSORPTION : !s t. s SUBSET t <=> s UNION t = tSUBSET_UNION_DIFF : !s t u. s SUBSET t UNION u <=> s DIFF u SUBSET tSUBSET_UNIV : !s. s SUBSET UNIVSURJECTIVE_IMAGE : !f. (!t. ?s. IMAGE f s = t) <=> (!y. ?x. f x = y)SURJECTIVE_IMAGE_EQ : !f s t.
(!y. y IN t ==> (?x. f x = y)) /\ (!x. f x IN t <=> x IN s)
==> IMAGE f s = tSURJECTIVE_IMAGE_THM : !f. (!y. ?x. f x = y) <=> (!p. IMAGE f {x | p (f x)} = {x | p x})SURJECTIVE_ON_IMAGE : !f u v.
(!t. t SUBSET v ==> (?s. s SUBSET u /\ IMAGE f s = t)) <=>
(!y. y IN v ==> (?x. x IN u /\ f x = y))SURJECTIVE_ON_RIGHT_INVERSE : !f s t.
(!y. y IN t ==> (?x. x IN s /\ f x = y)) <=>
(?g. !y. y IN t ==> g y IN s /\ f (g y) = y)SURJECTIVE_RIGHT_INVERSE : !f. (!y. ?x. f x = y) <=> (?g. !y. f (g y) = y)UNIONS_0 : UNIONS {} = {}UNIONS_1 : !s. UNIONS {s} = sUNIONS_2 : !s t. UNIONS {s, t} = s UNION tUNIONS_DIFF : !s t. UNIONS s DIFF t = UNIONS {x DIFF t | x IN s}UNIONS_GSPEC1 : !p f. UNIONS {f x | p x} = {a | ?x. p x /\ a IN f x}UNIONS_GSPEC2 : !p f. UNIONS {f x y | p x y} = {a | ?x y. p x y /\ a IN f x y}UNIONS_GSPEC3 : !p f. UNIONS {f x y z | p x y z} = {a | ?x y z. p x y z /\ a IN f x y z}UNIONS_IMAGE : !f s. UNIONS (IMAGE f s) = {y | ?x. x IN s /\ y IN f x}UNIONS_INSERT : !s u. UNIONS (s INSERT u) = s UNION UNIONS uUNIONS_INTER : !s t. UNIONS s INTER t = UNIONS {x INTER t | x IN s}UNIONS_INTERS : !s. UNIONS s = UNIV DIFF INTERS {UNIV DIFF t | t IN s}UNIONS_MONO : !s t.
(!x. x IN s ==> (?y. y IN t /\ x SUBSET y)) ==> UNIONS s SUBSET UNIONS tUNIONS_OVER_INTERS : !f s.
UNIONS {INTERS (f x) | x IN s} =
INTERS {UNIONS {g x | x IN s} | g | !x. x IN s ==> g x IN f x}UNIONS_SUBSET : !f t. UNIONS f SUBSET t <=> (!s. s IN f ==> s SUBSET t)UNIONS_UNION : !s t. UNIONS (s UNION t) = UNIONS s UNION UNIONS tUNION_ACI : !p q r.
p UNION q = q UNION p /\
(p UNION q) UNION r = p UNION q UNION r /\
p UNION q UNION r = q UNION p UNION r /\
p UNION p = p /\
p UNION p UNION q = p UNION qUNION_ASSOC : !s t u. (s UNION t) UNION u = s UNION t UNION uUNION_COMM : !s t. s UNION t = t UNION sUNION_DIFF_CANCEL : !s t. t UNION s DIFF t = t UNION sUNION_DIFF_SUBSET : !s t. s UNION t DIFF s = t <=> s SUBSET tUNION_IDEMPOT : !s. s UNION s = sUNION_LEFT_EMPTY : !s. {} UNION s = sUNION_LEFT_UNIV : !s. UNIV UNION s = UNIVUNION_RIGHT_EMPTY : !s. s UNION {} = sUNION_RIGHT_UNIV : !s. s UNION UNIV = UNIVUNION_SUBSET : !s t u. s UNION t SUBSET u <=> s SUBSET u /\ t SUBSET uUNIV_GSPEC : GSPEC (\x. T) = UNIVUNIV_INTERS : !s. INTERS s = UNIV <=> (!t. t IN s ==> t = UNIV)UNIV_NOT_EMPTY : ~(UNIV = {})UNIV_SUBSET : !s. UNIV SUBSET s <=> s = UNIV |