Theorems |
BIJECTIONS_CARD_EQ : !s t f g.
(FINITE s \/ FINITE t) /\
(!x. x IN s ==> f x IN t /\ g (f x) = x) /\
(!y. y IN t ==> g y IN s /\ f (g y) = y)
==> CARD s = CARD tBIJECTIONS_HAS_SIZE : !s t f g n.
(!x. x IN s ==> f x IN t /\ g (f x) = x) /\
(!y. y IN t ==> g y IN s /\ f (g y) = y) /\
s HAS_SIZE n
==> t HAS_SIZE nBIJECTIONS_HAS_SIZE_EQ : !s t f g.
(!x. x IN s ==> f x IN t /\ g (f x) = x) /\
(!y. y IN t ==> g y IN s /\ f (g y) = y)
==> (!n. s HAS_SIZE n <=> t HAS_SIZE n)CARD_CROSS : !s t. FINITE s /\ FINITE t ==> CARD (s CROSS t) = CARD s * CARD tCARD_DELETE : !x s.
FINITE s ==> CARD (s DELETE x) = (if x IN s then CARD s - 1 else CARD s)CARD_DIFF : !s t. FINITE s /\ t SUBSET s ==> CARD (s DIFF t) = CARD s - CARD tCARD_EMPTY : CARD {} = 0CARD_EQ_0 : !s. FINITE s ==> (CARD s = 0 <=> s = {})CARD_EQ_BIJECTION : !s t.
FINITE s /\ FINITE t /\ CARD s = CARD t
==> (?f. (!x. x IN s ==> f x IN t) /\
(!y. y IN t ==> (?x. x IN s /\ f x = y)) /\
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y))CARD_EQ_BIJECTIONS : !s t.
FINITE s /\ FINITE t /\ CARD s = CARD t
==> (?f g.
(!x. x IN s ==> f x IN t /\ g (f x) = x) /\
(!y. y IN t ==> g y IN s /\ f (g y) = y))CARD_FUNSPACE : !d s t.
FINITE s /\ FINITE t
==> CARD {f | (!x. x IN s ==> f x IN t) /\ (!x. ~(x IN s) ==> f x = d)} =
CARD t EXP CARD sCARD_FUNSPACE_UNIV : FINITE UNIV /\ FINITE UNIV ==> CARD UNIV = CARD UNIV EXP CARD UNIVCARD_IMAGE_EQ_INJ : !f s.
FINITE s
==> (CARD (IMAGE f s) = CARD s <=>
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y))CARD_IMAGE_INJ : !f s.
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y) /\ FINITE s
==> CARD (IMAGE f s) = CARD sCARD_IMAGE_INJ_EQ : !f s t.
FINITE s /\
(!x. x IN s ==> f x IN t) /\
(!y. y IN t ==> (?!x. x IN s /\ f x = y))
==> CARD t = CARD sCARD_IMAGE_LE : !f s. FINITE s ==> CARD (IMAGE f s) <= CARD sCARD_INSERT : !x s.
FINITE s
==> CARD (x INSERT s) = (if x IN s then CARD s else SUC (CARD s))CARD_LE_INJ : !s t.
FINITE s /\ FINITE t /\ CARD s <= CARD t
==> (?f. IMAGE f s SUBSET t /\
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y))CARD_NUMSEG_LE : !n. CARD {m | m <= n} = n + 1CARD_NUMSEG_LT : !n. CARD {m | m < n} = nCARD_POWERSET : !s. FINITE s ==> CARD {t | t SUBSET s} = 2 EXP CARD sCARD_PRODUCT : !s t.
FINITE s /\ FINITE t ==> CARD {x,y | x IN s /\ y IN t} = CARD s * CARD tCARD_PSUBSET : !a b. a PSUBSET b /\ FINITE b ==> CARD a < CARD bCARD_SING : !x. CARD {x} = 1CARD_SUBSET : !a b. a SUBSET b /\ FINITE b ==> CARD a <= CARD bCARD_SUBSET_EQ : !a b. FINITE b /\ a SUBSET b /\ CARD a = CARD b ==> a = bCARD_SUBSET_IMAGE : !f s t. FINITE t /\ s SUBSET IMAGE f t ==> CARD s <= CARD tCARD_SUBSET_LE : !a b. FINITE b /\ a SUBSET b /\ CARD b <= CARD a ==> a = bCARD_UNION : !s t.
FINITE s /\ FINITE t /\ DISJOINT s t
==> CARD (s UNION t) = CARD s + CARD tCARD_UNIONS_LE : !s t m n.
s HAS_SIZE m /\ (!x. x IN s ==> FINITE (t x) /\ CARD (t x) <= n)
==> CARD (UNIONS {t x | x IN s}) <= m * nCARD_UNION_DIFF : !s t. FINITE s /\ FINITE t ==> CARD (s UNION t) = CARD s + CARD (t DIFF s)CARD_UNION_EQ : !s t u.
FINITE u /\ DISJOINT s t /\ s UNION t = u ==> CARD s + CARD t = CARD uCARD_UNION_GEN : !s t.
FINITE s /\ FINITE t
==> CARD (s UNION t) = (CARD s + CARD t) - CARD (s INTER t)CARD_UNION_INTER : !s t.
FINITE s /\ FINITE t
==> CARD (s UNION t) + CARD (s INTER t) = CARD s + CARD tCARD_UNION_LE : !s t. FINITE s /\ FINITE t ==> CARD (s UNION t) <= CARD s + CARD tCARD_UNION_OVERLAP : !s t.
FINITE s /\ FINITE t /\ CARD (s UNION t) < CARD s + CARD t
==> ~DISJOINT s tCARD_UNION_OVERLAP_EQ : !s t.
FINITE s /\ FINITE t
==> (CARD (s UNION t) = CARD s + CARD t <=> DISJOINT s t)CHOOSE_SUBSET : !s n. FINITE s /\ n <= CARD s ==> (?t. t SUBSET s /\ t HAS_SIZE n)CHOOSE_SUBSET_BETWEEN : !n s u.
s SUBSET u /\ FINITE s /\ CARD s <= n /\ (FINITE u ==> n <= CARD u)
==> (?t. s SUBSET t /\ t SUBSET u /\ t HAS_SIZE n)CHOOSE_SUBSET_STRONG : !s n. (FINITE s ==> n <= CARD s) ==> (?t. t SUBSET s /\ t HAS_SIZE n)FINITE_FUNSPACE_UNIV : FINITE UNIV /\ FINITE UNIV ==> FINITE UNIVFINITE_HAS_SIZE : !s. FINITE s <=> s HAS_SIZE CARD sFINITE_INDUCT_DELETE : !p. p {} /\
(!s. FINITE s /\ ~(s = {}) ==> (?x. x IN s /\ (p (s DELETE x) ==> p s)))
==> (!s. FINITE s ==> p s)HAS_SIZE_0 : !s. s HAS_SIZE 0 <=> s = {}HAS_SIZE_BOOL : UNIV HAS_SIZE 2HAS_SIZE_CARD : !s n. s HAS_SIZE n ==> CARD s = nHAS_SIZE_CROSS : !s t m n. s HAS_SIZE m /\ t HAS_SIZE n ==> s CROSS t HAS_SIZE m * nHAS_SIZE_DIFF : !s t m n.
s HAS_SIZE m /\ t HAS_SIZE n /\ t SUBSET s ==> s DIFF t HAS_SIZE m - nHAS_SIZE_FUNSPACE : !d s t m n.
s HAS_SIZE m /\ t HAS_SIZE n
==> {f | (!x. x IN s ==> f x IN t) /\ (!x. ~(x IN s) ==> f x = d)} HAS_SIZE
n EXP mHAS_SIZE_FUNSPACE_UNIV : !m n. UNIV HAS_SIZE m /\ UNIV HAS_SIZE n ==> UNIV HAS_SIZE n EXP mHAS_SIZE_IMAGE_INJ : !f s n.
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y) /\ s HAS_SIZE n
==> IMAGE f s HAS_SIZE nHAS_SIZE_IMAGE_INJ_EQ : !f s n.
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y)
==> (IMAGE f s HAS_SIZE n <=> s HAS_SIZE n)HAS_SIZE_INDEX : !s n.
s HAS_SIZE n
==> (?f. (!m. m < n ==> f m IN s) /\
(!x. x IN s ==> (?!m. m < n /\ f m = x)))HAS_SIZE_INSERT : !s n.
s HAS_SIZE SUC n <=> (?a t. t HAS_SIZE n /\ ~(a IN t) /\ s = a INSERT t)HAS_SIZE_NUMSEG_LE : !n. {m | m <= n} HAS_SIZE n + 1HAS_SIZE_NUMSEG_LT : !n. {m | m < n} HAS_SIZE nHAS_SIZE_POWERSET : !s n. s HAS_SIZE n ==> {t | t SUBSET s} HAS_SIZE 2 EXP nHAS_SIZE_PRODUCT : !s t m n.
s HAS_SIZE m /\ t HAS_SIZE n ==> {x,y | x IN s /\ y IN t} HAS_SIZE m * nHAS_SIZE_PRODUCT_DEPENDENT : !s t m n.
s HAS_SIZE m /\ (!x. x IN s ==> t x HAS_SIZE n)
==> {x,y | x IN s /\ y IN t x} HAS_SIZE m * nHAS_SIZE_SING : !x. {x} HAS_SIZE 1HAS_SIZE_SUC : !s n.
s HAS_SIZE SUC n <=> ~(s = {}) /\ (!a. a IN s ==> s DELETE a HAS_SIZE n)HAS_SIZE_UNION : !s t m n.
s HAS_SIZE m /\ t HAS_SIZE n /\ DISJOINT s t ==> s UNION t HAS_SIZE m + nHAS_SIZE_UNIONS : !s t m n.
s HAS_SIZE m /\
(!x. x IN s ==> t x HAS_SIZE n) /\
(!x y. x IN s /\ y IN s /\ ~(x = y) ==> DISJOINT (t x) (t y))
==> UNIONS {t x | x IN s} HAS_SIZE m * nIMAGE_IMP_INJECTIVE : !s f.
FINITE s /\ IMAGE f s = s
==> (!x y. x IN s /\ y IN s /\ f x = f y ==> x = y)IMAGE_IMP_INJECTIVE_GEN : !s t f.
FINITE s /\ CARD s = CARD t /\ IMAGE f s = t
==> (!x y. x IN s /\ y IN s /\ f x = f y ==> x = y)SUBSET_CARD_EQ : !s t. FINITE t /\ s SUBSET t ==> (CARD s = CARD t <=> s = t)SURJECTIVE_IFF_INJECTIVE : !s f.
FINITE s /\ IMAGE f s SUBSET s
==> ((!y. y IN s ==> (?x. x IN s /\ f x = y)) <=>
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y))SURJECTIVE_IFF_INJECTIVE_GEN : !s t f.
FINITE s /\ FINITE t /\ CARD s = CARD t /\ IMAGE f s SUBSET t
==> ((!y. y IN t ==> (?x. x IN s /\ f x = y)) <=>
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y)) |