| Name | Conclusion | Link | Package |
|---|---|---|---|
| ABSORPTION | !x s. x IN s <=> x INSERT s = s | link to proof | set-thm |
| ABS_SIMP | !t1 t2. (\x. t1) t2 = t1 | link to proof | bool-int |
| ADD1 | !m. SUC m = m + 1 | link to proof | natural-add-thm |
| ADD_0 | !m. m + 0 = m | link to proof | natural-add-thm |
| ADD_ASSOC | !m n p. m + n + p = (m + n) + p | link to proof | natural-add-thm |
| ADD_EQ_0 | !m n. m + n = 0 <=> m = 0 /\ n = 0 | link to proof | natural-add-thm |
| ADD_SUB | !m n. (m + n) - n = m | link to proof | natural-add-sub-def |
| ADD_SUB2 | !m n. (m + n) - m = n | link to proof | natural-add-sub-thm |
| ADD_SUC | !m n. m + SUC n = SUC (m + n) | link to proof | natural-add-thm |
| ADD_SYM | !m n. m + n = n + m | link to proof | natural-add-thm |
| ALL_APPEND | !p l1 l2. ALL p (APPEND l1 l2) <=> ALL p l1 /\ ALL p l2 | link to proof | list-append-thm |
| ALL_CONS | !p h t. ALL p (CONS h t) <=> p h /\ ALL p t | link to proof | list-set-def |
| ALL_F | !l. ALL (\x. F) l <=> NULL l | link to proof | list-set-thm |
| ALL_FILTER | !p q l. ALL p (FILTER q l) <=> ALL (\x. q x ==> p x) l | link to proof | list-filter-thm |
| ALL_IMP | !p q l. (!x. MEM x l /\ p x ==> q x) /\ ALL p l ==> ALL q l | link to proof | list-set-thm |
| ALL_MAP | !p f l. ALL p (MAP f l) <=> ALL (p o f) l | link to proof | list-map-thm |
| ALL_MEM | !p l. (!x. MEM x l ==> p x) <=> ALL p l | link to proof | list-set-thm |
| ALL_MP | !p q l. ALL (\x. p x ==> q x) l /\ ALL p l ==> ALL q l | link to proof | list-set-thm |
| ALL_NIL | !p. ALL p [] | link to proof | list-set-def |
| ALL_SET_OF_LIST | !p l. ALL p l <=> (!x. x IN set_of_list l ==> p x) | link to proof | list-set-thm |
| ALL_T | !l. ALL (\x. T) l | link to proof | list-set-thm |
| AND_ALL | !p q l. ALL (\x. p x /\ q x) l <=> ALL p l /\ ALL q l | link to proof | list-set-thm |
| AND_DEF | (/\) = (\p q. (\f. f p q) = (\f. f T T)) | link to proof | bool-def |
| AND_FALSE_THM | !t. t /\ F <=> F | link to proof | bool-int |
| AND_FORALL_THM | !p q. (!x. p x) /\ (!x. q x) <=> (!x. p x /\ q x) | link to proof | bool-int |
| AND_TRUE_THM | !t. t /\ T <=> t | link to proof | bool-int |
| APPEND_ASSOC | !l1 l2 l3. APPEND l1 (APPEND l2 l3) = APPEND (APPEND l1 l2) l3 | link to proof | list-append-thm |
| APPEND_EQ_NIL | !l1 l2. APPEND l1 l2 = [] <=> l1 = [] /\ l2 = [] | link to proof | list-append-thm |
| APPEND_EQ_REPLICATE | !x n l1 l2. APPEND l1 l2 = REPLICATE x n <=> REPLICATE x (LENGTH l1) = l1 /\ REPLICATE x (LENGTH l2) = l2 /\ LENGTH l1 + LENGTH l2 = n | link to proof | list-replicate-thm |
| APPEND_LCANCEL | !l l1 l2. APPEND l l1 = APPEND l l2 <=> l1 = l2 | link to proof | list-append-thm |
| APPEND_LCANCEL_IMP | !l l1 l2. APPEND l l1 = APPEND l l2 ==> l1 = l2 | link to proof | list-append-thm |
| APPEND_LINJ | !l1 l1' l2 l2'. LENGTH l1 = LENGTH l1' /\ APPEND l1 l2 = APPEND l1' l2' ==> l1 = l1' | link to proof | list-append-thm |
| APPEND_NIL | !l. APPEND l [] = l | link to proof | list-append-thm |
| APPEND_RCANCEL | !l l1 l2. APPEND l1 l = APPEND l2 l <=> l1 = l2 | link to proof | list-append-thm |
| APPEND_RCANCEL_IMP | !l l1 l2. APPEND l1 l = APPEND l2 l ==> l1 = l2 | link to proof | list-append-thm |
| APPEND_RINJ | !l1 l1' l2 l2'. LENGTH l2 = LENGTH l2' /\ APPEND l1 l2 = APPEND l1' l2' ==> l2 = l2' | link to proof | list-append-thm |
| APPEND_SING | !h t. APPEND [h] t = CONS h t | link to proof | list-append-thm |
| BETA_THM | !f y. (\x. f x) y = f y | link to proof | bool-int |
| BIJ | !s t. BIJ s t = INJ s t INTER SURJ s t | link to proof | set-def |
| 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 t | link to proof | set-size-thm |
| BIJECTIONS_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 n | link to proof | set-size-thm |
| BIJECTIONS_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) | link to proof | set-size-thm |
| BIJECTIVE_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)) | link to proof | set-thm |
| 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))) | link to proof | set-thm |
| BIT0_SUC | !n. BIT0 (SUC n) = SUC (SUC (BIT0 n)) | link to proof | natural-numeral-def |
| BIT0_ZERO | BIT0 0 = 0 | link to proof | natural-numeral-def |
| BIT1_DEF | !n. BIT1 n = SUC (BIT0 n) | link to proof | natural-numeral-def |
| BOOL_CASES_AX | !t. (t <=> T) \/ (t <=> F) | link to proof | bool-class |
| BOUNDS_DIVIDED | !p. (?b. !n. p n <= b) <=> (?a b. !n. n * p n <= a * n + b) | link to proof | natural-mult-thm |
| BOUNDS_IGNORE | !p q. (?b. !i. p i <= q i + b) <=> (?b n. !i. n <= i ==> p i <= q i + b) | link to proof | natural-add-thm |
| BOUNDS_LINEAR | !a b c. (!n. a * n <= b * n + c) <=> a <= b | link to proof | natural-mult-thm |
| BOUNDS_LINEAR_0 | !a b. (!n. a * n <= b) <=> a = 0 | link to proof | natural-mult-thm |
| BOUNDS_NOTZERO | !p a b. p 0 0 = 0 /\ (!m n. p m n <= a * (m + n) + b) ==> (?c. !m n. p m n <= c * (m + n)) | link to proof | natural-mult-thm |
| CARD | CARD = ITSET (\x n. SUC n) 0 | link to proof | set-size-def |
| CARD_CROSS | !s t. FINITE s /\ FINITE t ==> CARD (s CROSS t) = CARD s * CARD t | link to proof | set-size-thm |
| CARD_DELETE | !x s. FINITE s ==> CARD (s DELETE x) = (if x IN s then CARD s - 1 else CARD s) | link to proof | set-size-thm |
| CARD_DIFF | !s t. FINITE s /\ t SUBSET s ==> CARD (s DIFF t) = CARD s - CARD t | link to proof | set-size-thm |
| CARD_EMPTY | CARD {} = 0 | link to proof | set-size-thm |
| CARD_EQ_0 | !s. FINITE s ==> (CARD s = 0 <=> s = {}) | link to proof | set-size-thm |
| 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)) | link to proof | set-size-thm |
| 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)) | link to proof | set-size-thm |
| 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 s | link to proof | set-size-thm |
| CARD_FUNSPACE_UNIV | FINITE UNIV /\ FINITE UNIV ==> CARD UNIV = CARD UNIV EXP CARD UNIV | link to proof | set-size-thm |
| CARD_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)) | link to proof | set-size-thm |
| 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 s | link to proof | set-size-thm |
| CARD_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 s | link to proof | set-size-thm |
| CARD_IMAGE_LE | !f s. FINITE s ==> CARD (IMAGE f s) <= CARD s | link to proof | set-size-thm |
| CARD_INSERT | !x s. FINITE s ==> CARD (x INSERT s) = (if x IN s then CARD s else SUC (CARD s)) | link to proof | set-size-thm |
| 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)) | link to proof | set-size-thm |
| CARD_NUMSEG_LE | !n. CARD {m | m <= n} = n + 1 | link to proof | set-size-thm |
| CARD_NUMSEG_LT | !n. CARD {m | m < n} = n | link to proof | set-size-thm |
| CARD_POWERSET | !s. FINITE s ==> CARD {t | t SUBSET s} = 2 EXP CARD s | link to proof | set-size-thm |
| CARD_PRODUCT | !s t. FINITE s /\ FINITE t ==> CARD {x,y | x IN s /\ y IN t} = CARD s * CARD t | link to proof | set-size-thm |
| CARD_PSUBSET | !a b. a PSUBSET b /\ FINITE b ==> CARD a < CARD b | link to proof | set-size-thm |
| CARD_SET_OF_LIST_LE | !l. CARD (set_of_list l) <= LENGTH l | link to proof | list-set-thm |
| CARD_SING | !x. CARD {x} = 1 | link to proof | set-size-thm |
| CARD_SUBSET | !a b. a SUBSET b /\ FINITE b ==> CARD a <= CARD b | link to proof | set-size-thm |
| CARD_SUBSET_EQ | !a b. FINITE b /\ a SUBSET b /\ CARD a = CARD b ==> a = b | link to proof | set-size-thm |
| CARD_SUBSET_IMAGE | !f s t. FINITE t /\ s SUBSET IMAGE f t ==> CARD s <= CARD t | link to proof | set-size-thm |
| CARD_SUBSET_LE | !a b. FINITE b /\ a SUBSET b /\ CARD b <= CARD a ==> a = b | link to proof | set-size-thm |
| CARD_UNION | !s t. FINITE s /\ FINITE t /\ DISJOINT s t ==> CARD (s UNION t) = CARD s + CARD t | link to proof | set-size-thm |
| CARD_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 * n | link to proof | set-size-thm |
| CARD_UNION_DIFF | !s t. FINITE s /\ FINITE t ==> CARD (s UNION t) = CARD s + CARD (t DIFF s) | link to proof | set-size-thm |
| CARD_UNION_EQ | !s t u. FINITE u /\ DISJOINT s t /\ s UNION t = u ==> CARD s + CARD t = CARD u | link to proof | set-size-thm |
| CARD_UNION_GEN | !s t. FINITE s /\ FINITE t ==> CARD (s UNION t) = (CARD s + CARD t) - CARD (s INTER t) | link to proof | set-size-thm |
| CARD_UNION_INTER | !s t. FINITE s /\ FINITE t ==> CARD (s UNION t) + CARD (s INTER t) = CARD s + CARD t | link to proof | set-size-thm |
| CARD_UNION_LE | !s t. FINITE s /\ FINITE t ==> CARD (s UNION t) <= CARD s + CARD t | link to proof | set-size-thm |
| CARD_UNION_OVERLAP | !s t. FINITE s /\ FINITE t /\ CARD (s UNION t) < CARD s + CARD t ==> ~DISJOINT s t | link to proof | set-size-thm |
| CARD_UNION_OVERLAP_EQ | !s t. FINITE s /\ FINITE t ==> (CARD (s UNION t) = CARD s + CARD t <=> DISJOINT s t) | link to proof | set-size-thm |
| CC_EQ_I | !f. C (C f) = f | link to proof | function-thm |
| CHOICE | !s. ~(s = {}) ==> CHOICE s IN s | link to proof | set-def |
| CHOICE_PAIRED_THM | !p q. (?a b. p a b) /\ (!a b. p a b ==> q (a,b)) ==> q (@(a,b). p a b) | link to proof | pair-thm |
| CHOICE_UNPAIR_THM | !p. (@(a,b). p a b) = (@x. p (FST x) (SND x)) | link to proof | pair-thm |
| CHOOSE_SUBSET | !s n. FINITE s /\ n <= CARD s ==> (?t. t SUBSET s /\ t HAS_SIZE n) | link to proof | set-size-thm |
| 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) | link to proof | set-size-thm |
| CHOOSE_SUBSET_STRONG | !s n. (FINITE s ==> n <= CARD s) ==> (?t. t SUBSET s /\ t HAS_SIZE n) | link to proof | set-size-thm |
| COMPONENT | !x s. x IN x INSERT s | link to proof | set-thm |
| COND_ABS | !b f g. (\x. if b then f x else g x) = (if b then f else g) | link to proof | bool-class |
| COND_DEF | COND = (\t t1 t2. @x. ((t <=> T) ==> x = t1) /\ ((t <=> F) ==> x = t2)) | link to proof | bool-def |
| COND_ELIM_THM | !p c x y. p (if c then x else y) <=> (c ==> p x) /\ (~c ==> p y) | link to proof | bool-class |
| COND_EXPAND | !b t1 t2. (if b then t1 else t2) <=> (~b \/ t1) /\ (b \/ t2) | link to proof | bool-class |
| COND_FALSE | !t1 t2. (if F then t1 else t2) = t2 | link to proof | bool-class |
| COND_ID | !b t. (if b then t else t) = t | link to proof | bool-class |
| COND_NOT | !c x y. (if ~c then x else y) = (if c then y else x) | link to proof | bool-class |
| COND_RAND | !b f x y. f (if b then x else y) = (if b then f x else f y) | link to proof | bool-class |
| COND_RATOR | !b f g x. (if b then f else g) x = (if b then f x else g x) | link to proof | bool-class |
| COND_TRUE | !t1 t2. (if T then t1 else t2) = t1 | link to proof | bool-class |
| CONJ_ASSOC' | !t1 t2 t3. (t1 /\ t2) /\ t3 <=> t1 /\ t2 /\ t3 | link to proof | bool-int |
| CONJ_REFL | !t. t /\ t <=> t | link to proof | bool-int |
| CONJ_SYM | !t1 t2. t1 /\ t2 <=> t2 /\ t1 | link to proof | bool-int |
| CONS_11 | !h1 h2 t1 t2. CONS h1 t1 = CONS h2 t2 <=> h1 = h2 /\ t1 = t2 | link to proof | list-thm |
| CONS_APPEND | !l h t. APPEND (CONS h t) l = CONS h (APPEND t l) | link to proof | list-append-def |
| CONS_HD_TL | !l. ~NULL l ==> CONS (HD l) (TL l) = l | link to proof | list-dest-thm |
| CONTRAPOS_THM | !t1 t2. ~t1 ==> ~t2 <=> t2 ==> t1 | link to proof | bool-class |
| CROSS | !s t. s CROSS t = {x,y | x IN s /\ y IN t} | link to proof | set-def |
| CROSS_EMPTY | !s. s CROSS {} = {} | link to proof | set-thm |
| CROSS_EQ_EMPTY | !s t. s CROSS t = {} <=> s = {} \/ t = {} | link to proof | set-thm |
| CROSS_UNIV | UNIV CROSS UNIV = UNIV | link to proof | set-thm |
| C_DEF | C = (\f x y. f y x) | link to proof | function-def |
| C_THM | !f x y. C f x y = f y x | link to proof | function-thm |
| DECOMPOSITION | !s x. x IN s <=> (?t. s = x INSERT t /\ ~(x IN t)) | link to proof | set-thm |
| DELETE | !s x. s DELETE x = {y | y IN s /\ ~(y = x)} | link to proof | set-def |
| DELETE_COMM | !x y s. s DELETE x DELETE y = s DELETE y DELETE x | link to proof | set-thm |
| DELETE_DELETE | !x s. s DELETE x DELETE x = s DELETE x | link to proof | set-thm |
| DELETE_DIFF_SING | !x s. s DIFF {x} = s DELETE x | link to proof | set-thm |
| DELETE_INSERT | !x y s. (x INSERT s) DELETE y = (if x = y then s DELETE y else x INSERT (s DELETE y)) | link to proof | set-thm |
| DELETE_INSERT_NON_ELEMENT | !x s. (x INSERT s) DELETE x = s <=> ~(x IN s) | link to proof | set-thm |
| DELETE_INTER | !s t x. s DELETE x INTER t = (s INTER t) DELETE x | link to proof | set-thm |
| DELETE_NON_ELEMENT | !x s. s DELETE x = s <=> ~(x IN s) | link to proof | set-thm |
| DELETE_SUBSET | !x s. s DELETE x SUBSET s | link to proof | set-thm |
| DIFF | !s t. s DIFF t = {x | x IN s /\ ~(x IN t)} | link to proof | set-def |
| DIFF_COMM | !t u s. s DIFF t DIFF u = s DIFF u DIFF t | link to proof | set-thm |
| DIFF_DIFF | !s t. s DIFF t DIFF t = s DIFF t | link to proof | set-thm |
| DIFF_EMPTY | !s. s DIFF {} = s | link to proof | set-thm |
| DIFF_EMPTY_SUBSET | !s t. s DIFF t = {} <=> s SUBSET t | link to proof | set-thm |
| DIFF_EQ_EMPTY | !s. s DIFF s = {} | link to proof | set-thm |
| DIFF_INSERT | !s t x. s DIFF x INSERT t = s DELETE x DIFF t | link to proof | set-thm |
| DIFF_INTERS | !u s. u DIFF INTERS s = UNIONS {u DIFF t | t IN s} | link to proof | set-thm |
| DIFF_SUBSET | !s t. s DIFF t SUBSET s | link to proof | set-thm |
| DIFF_UNION | !t u s. s DIFF t DIFF u = s DIFF (t UNION u) | link to proof | set-thm |
| DIFF_UNIONS | !u s. u DIFF UNIONS s = u INTER INTERS {u DIFF t | t IN s} | link to proof | set-thm |
| DIFF_UNION_CANCEL | !s t. s DIFF t UNION t = s UNION t | link to proof | set-thm |
| DIFF_UNION_SUBSET | !s t. t DIFF s UNION s = t <=> s SUBSET t | link to proof | set-thm |
| DIFF_UNIV | !s. s DIFF UNIV = {} | link to proof | set-thm |
| DISJOINT | !s t. DISJOINT s t <=> s INTER t = {} | link to proof | set-def |
| DISJOINT_DELETE_SYM | !s t x. DISJOINT (s DELETE x) t <=> DISJOINT (t DELETE x) s | link to proof | set-thm |
| DISJOINT_DIFF | !s t. s DIFF t = s <=> DISJOINT s t | link to proof | set-thm |
| DISJOINT_DIFF1 | !s t. DISJOINT (t DIFF s) s | link to proof | set-thm |
| DISJOINT_DIFF2 | !s t. DISJOINT s (t DIFF s) | link to proof | set-thm |
| DISJOINT_EMPTY | !s. DISJOINT s {} | link to proof | set-thm |
| DISJOINT_EMPTY_REFL | !s. DISJOINT s s <=> s = {} | link to proof | set-thm |
| DISJOINT_INSERT | !x s t. DISJOINT (x INSERT s) t <=> ~(x IN t) /\ DISJOINT s t | link to proof | set-thm |
| DISJOINT_SING | !x s. DISJOINT s {x} <=> ~(x IN s) | link to proof | set-thm |
| DISJOINT_SYM | !s t. DISJOINT s t <=> DISJOINT t s | link to proof | set-thm |
| DISJOINT_UNION | !s t u. DISJOINT (s UNION t) u <=> DISJOINT s u /\ DISJOINT t u | link to proof | set-thm |
| DISJOINT_UNIONS | !s t. DISJOINT s (UNIONS t) <=> (!x. x IN t ==> DISJOINT s x) | link to proof | set-thm |
| DISJ_ASSOC' | !t1 t2 t3. (t1 \/ t2) \/ t3 <=> t1 \/ t2 \/ t3 | link to proof | bool-int |
| DISJ_REFL | !t. t \/ t <=> t | link to proof | bool-int |
| DISJ_SYM | !t1 t2. t1 \/ t2 <=> t2 \/ t1 | link to proof | bool-int |
| DIST_ADD2 | !m n p q. dist (m + n) (p + q) <= dist m p + dist n q | link to proof | natural-distance-thm |
| DIST_ADD2_REV | !m n p q. dist m p <= dist (m + n) (p + q) + dist n q | link to proof | natural-distance-thm |
| DIST_ADDBOUND | !m n. dist m n <= m + n | link to proof | natural-distance-thm |
| DIST_CASES | !m n p. dist m n = p <=> m + p = n \/ n + p = m | link to proof | natural-distance-thm |
| DIST_DIST_SUC | !m n. dist (dist m n) (dist m (n + 1)) = 1 | link to proof | natural-distance-thm |
| DIST_ELIM_THM | !p x y. p (dist x y) <=> (!d. (x = y + d ==> p d) /\ (y = x + d ==> p d)) | link to proof | natural-distance-thm |
| DIST_EQ_0 | !m n. dist m n = 0 <=> m = n | link to proof | natural-distance-thm |
| DIST_LADD | !m n p. dist (m + n) (m + p) = dist n p | link to proof | natural-distance-thm |
| DIST_LADD_0 | !m n. dist (m + n) m = n | link to proof | natural-distance-thm |
| DIST_LE_CASES | !m n p. dist m n <= p <=> m <= n + p /\ n <= m + p | link to proof | natural-distance-thm |
| DIST_LMUL | !m n p. m * dist n p = dist (m * n) (m * p) | link to proof | natural-distance-thm |
| DIST_LZERO | !n. dist 0 n = n | link to proof | natural-distance-thm |
| DIST_RADD | !p m n. dist (m + p) (n + p) = dist m n | link to proof | natural-distance-thm |
| DIST_RADD_0 | !m n. dist m (m + n) = n | link to proof | natural-distance-thm |
| DIST_REFL | !n. dist n n = 0 | link to proof | natural-distance-thm |
| DIST_RMUL | !p m n. dist m n * p = dist (m * p) (n * p) | link to proof | natural-distance-thm |
| DIST_RZERO | !n. dist n 0 = n | link to proof | natural-distance-thm |
| DIST_SUC | !m n. dist (SUC m) (SUC n) = dist m n | link to proof | natural-distance-thm |
| DIST_SYM | !m n. dist m n = dist n m | link to proof | natural-distance-thm |
| DIST_TRIANGLE | !m n p. dist m p <= dist m n + dist n p | link to proof | natural-distance-thm |
| DIST_TRIANGLES_LE | !m n p q r s. dist m n <= r /\ dist p q <= s ==> dist m p <= dist n q + r + s | link to proof | natural-distance-thm |
| DIST_TRIANGLE_LE | !m n p q. dist m n + dist n p <= q ==> dist m p <= q | link to proof | natural-distance-thm |
| DIVISION_DEF_DIV | !m n. ~(n = 0) ==> m DIV n * n + m MOD n = m | link to proof | natural-div-def |
| DIVISION_DEF_MOD | !m n. ~(n = 0) ==> m MOD n < n | link to proof | natural-div-def |
| DIV_0 | !n. ~(n = 0) ==> 0 DIV n = 0 | link to proof | natural-div-thm |
| DIV_1 | !n. n DIV 1 = n | link to proof | natural-div-thm |
| DIV_ADD_MOD | !a b n. ~(n = 0) ==> ((a + b) MOD n = a MOD n + b MOD n <=> (a + b) DIV n = a DIV n + b DIV n) | link to proof | natural-div-thm |
| DIV_DIV | !m n p. ~(n * p = 0) ==> m DIV n DIV p = m DIV (n * p) | link to proof | natural-div-thm |
| DIV_EQ_0 | !m n. ~(n = 0) ==> (m DIV n = 0 <=> m < n) | link to proof | natural-div-thm |
| DIV_EQ_EXCLUSION | !a b c d. b * c < (a + 1) * d /\ a * d < (c + 1) * b ==> a DIV b = c DIV d | link to proof | natural-div-thm |
| DIV_LE | !m n. ~(n = 0) ==> m DIV n <= m | link to proof | natural-div-thm |
| DIV_LE_EXCLUSION | !a b c d. ~(b = 0) /\ b * c < (a + 1) * d ==> c DIV d <= a DIV b | link to proof | natural-div-thm |
| DIV_LT | !m n. m < n ==> m DIV n = 0 | link to proof | natural-div-thm |
| DIV_MOD | !m n p. ~(n * p = 0) ==> (m DIV n) MOD p = (m MOD (n * p)) DIV n | link to proof | natural-div-thm |
| DIV_MONO | !m n p. ~(p = 0) /\ m <= n ==> m DIV p <= n DIV p | link to proof | natural-div-thm |
| DIV_MONO2 | !m n p. ~(p = 0) /\ p <= m ==> n DIV m <= n DIV p | link to proof | natural-div-thm |
| DIV_MONO_LT | !m n p. ~(p = 0) /\ m + p <= n ==> m DIV p < n DIV p | link to proof | natural-div-thm |
| DIV_MULT | !m n. ~(m = 0) ==> (m * n) DIV m = n | link to proof | natural-div-thm |
| DIV_MULT2 | !m n p. ~(m * p = 0) ==> (m * n) DIV (m * p) = n DIV p | link to proof | natural-div-thm |
| DIV_MULT_ADD | !a b n. ~(n = 0) ==> (a * n + b) DIV n = a + b DIV n | link to proof | natural-div-thm |
| DIV_MUL_LE | !m n. n * m DIV n <= m | link to proof | natural-div-thm |
| DIV_REFL | !n. ~(n = 0) ==> n DIV n = 1 | link to proof | natural-div-thm |
| DIV_UNIQ | !m n q r. m = q * n + r /\ r < n ==> m DIV n = q | link to proof | natural-div-thm |
| EMPTY | {} = {x | F} | link to proof | set-def |
| EMPTY_CROSS | !s. {} CROSS s = {} | link to proof | set-thm |
| EMPTY_DELETE | !x. {} DELETE x = {} | link to proof | set-thm |
| EMPTY_DIFF | !s. {} DIFF s = {} | link to proof | set-thm |
| EMPTY_DISJOINT | !s. DISJOINT {} s | link to proof | set-thm |
| EMPTY_FUNSPACE | !d t. {f | (!x. x IN {} ==> f x IN t) /\ (!x. ~(x IN {}) ==> f x = d)} = {(\x. d)} | link to proof | set-thm |
| EMPTY_GSPEC | GSPEC (\x. F) = {} | link to proof | set-thm |
| EMPTY_NUMSEG_LT | {m | m < 0} = {} | link to proof | set-thm |
| EMPTY_POWERSET | {s | s SUBSET {}} = {{}} | link to proof | set-thm |
| EMPTY_PRODUCT_DEPENDENT | !t. {x,y | x IN {} /\ y IN t x} = {} | link to proof | set-thm |
| EMPTY_SUBSET | !s. {} SUBSET s | link to proof | set-thm |
| EMPTY_UNION | !s t. s UNION t = {} <=> s = {} /\ t = {} | link to proof | set-thm |
| EMPTY_UNIONS | !s. UNIONS s = {} <=> (!t. t IN s ==> t = {}) | link to proof | set-thm |
| EQ_ADD_LCANCEL | !m n p. m + n = m + p <=> n = p | link to proof | natural-add-thm |
| EQ_ADD_LCANCEL_0 | !m n. m + n = m <=> n = 0 | link to proof | natural-add-thm |
| EQ_ADD_RCANCEL | !p m n. m + p = n + p <=> m = n | link to proof | natural-add-thm |
| EQ_ADD_RCANCEL_0 | !m n. m + n = n <=> m = 0 | link to proof | natural-add-thm |
| EQ_EXP | !x m n. x EXP m = x EXP n <=> (if x = 0 then m = 0 <=> n = 0 else x = 1 \/ m = n) | link to proof | natural-exp-thm |
| EQ_EXT | !f g. (!x. f x = g x) ==> f = g | link to proof | bool-ext |
| EQ_FALSE_THM | !t. (t <=> F) <=> ~t | link to proof | bool-int |
| EQ_IMP | !a b. (a <=> b) ==> a ==> b | link to proof | bool-int |
| EQ_IMP_LE | !m n. m = n ==> m <= n | link to proof | natural-order-thm |
| EQ_MULTL | !m n. m = m * n <=> m = 0 \/ n = 1 | link to proof | natural-mult-thm |
| EQ_MULTR | !m n. m = n * m <=> m = 0 \/ n = 1 | link to proof | natural-mult-thm |
| EQ_MULT_LCANCEL | !m n p. m * n = m * p <=> m = 0 \/ n = p | link to proof | natural-mult-thm |
| EQ_MULT_RCANCEL | !m n p. m * p = n * p <=> m = n \/ p = 0 | link to proof | natural-mult-thm |
| EQ_REFL | !x. x = x | link to proof | bool-int |
| EQ_SYM | !x y. x = y ==> y = x | link to proof | bool-int |
| EQ_SYM_EQ | !x y. x = y <=> y = x | link to proof | bool-int |
| EQ_TRANS | !x y z. x = y /\ y = z ==> x = z | link to proof | bool-int |
| EQ_TRUE_THM | !t. (t <=> T) <=> t | link to proof | bool-int |
| EQ_UNIV | !s. (!x. x IN s) <=> s = UNIV | link to proof | set-thm |
| ETA_AX | !t. (\x. t x) = t | link to proof | axiom-extensionality |
| EVEN_ADD | !m n. EVEN (m + n) <=> EVEN m <=> EVEN n | link to proof | natural-div-thm |
| EVEN_AND_ODD | !n. ~(EVEN n /\ ODD n) | link to proof | natural-div-thm |
| EVEN_DOUBLE | !n. EVEN (2 * n) | link to proof | natural-div-thm |
| EVEN_EXISTS | !n. EVEN n <=> (?m. n = 2 * m) | link to proof | natural-div-thm |
| EVEN_EXP | !m n. EVEN (m EXP n) <=> EVEN m /\ ~(n = 0) | link to proof | natural-exp-thm |
| EVEN_MOD | !n. EVEN n <=> n MOD 2 = 0 | link to proof | natural-div-thm |
| EVEN_MULT | !m n. EVEN (m * n) <=> EVEN m \/ EVEN n | link to proof | natural-div-thm |
| EVEN_ODD_DECOMPOSITION | !n. (?k m. ODD m /\ n = 2 EXP k * m) <=> ~(n = 0) | link to proof | natural-exp-thm |
| EVEN_OR_ODD | !n. EVEN n \/ ODD n | link to proof | natural-div-thm |
| EVEN_SUB | !m n. n <= m ==> (EVEN (m - n) <=> EVEN m <=> EVEN n) | link to proof | natural-div-thm |
| EVEN_SUC | !n. EVEN (SUC n) <=> ~EVEN n | link to proof | natural-div-def |
| EVEN_ZERO | EVEN 0 | link to proof | natural-div-def |
| EXCLUDED_MIDDLE | !t. t \/ ~t | link to proof | bool-class |
| EXISTS_BOOL_THM | !p. (?b. p b) <=> p T \/ p F | link to proof | bool-class |
| EXISTS_CURRY | !p. (?f. p f) <=> (?f. p (\(a,b). f a b)) | link to proof | pair-thm |
| EXISTS_DEF | (?) = (\p. !q. (!x. p x ==> q) ==> q) | link to proof | bool-def |
| EXISTS_EX | !p l. (?x. EX (p x) l) <=> EX (\y. ?x. p x y) l | link to proof | list-set-thm |
| EXISTS_FINITE_SUBSET_IMAGE | !p f s. (?t. FINITE t /\ t SUBSET IMAGE f s /\ p t) <=> (?t. FINITE t /\ t SUBSET s /\ p (IMAGE f t)) | link to proof | set-finite-thm |
| EXISTS_FINITE_SUBSET_IMAGE_INJ | !p f s. (?t. FINITE t /\ t SUBSET IMAGE f s /\ p t) <=> (?t. FINITE t /\ t SUBSET s /\ (!x y. x IN t /\ y IN t /\ f x = f y ==> x = y) /\ p (IMAGE f t)) | link to proof | set-finite-thm |
| EXISTS_IN_GSPEC1 | !p f q. (?z. z IN {f x | p x} /\ q z) <=> (?x. p x /\ q (f x)) | link to proof | set-thm |
| 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)) | link to proof | set-thm |
| 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)) | link to proof | set-thm |
| EXISTS_IN_IMAGE | !p f s. (?y. y IN IMAGE f s /\ p y) <=> (?x. x IN s /\ p (f x)) | link to proof | set-thm |
| EXISTS_IN_INSERT | !p a s. (?x. x IN a INSERT s /\ p x) <=> p a \/ (?x. x IN s /\ p x) | link to proof | set-thm |
| 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) | link to proof | set-thm |
| EXISTS_IN_UNIONS | !p s. (?x. x IN UNIONS s /\ p x) <=> (?t x. t IN s /\ x IN t /\ p x) | link to proof | set-thm |
| EXISTS_NOT_THM | !p. (?x. ~p x) <=> ~(!x. p x) | link to proof | bool-class |
| EXISTS_OR_THM | !p q. (?x. p x \/ q x) <=> (?x. p x) \/ (?x. q x) | link to proof | bool-int |
| EXISTS_PAIRED_THM | !p. (?(a,b). p a b) <=> (?a b. p a b) | link to proof | pair-thm |
| EXISTS_PAIR_THM | !p. (?x. p x) <=> (?a b. p (a,b)) | link to proof | pair-thm |
| EXISTS_REFL | !a. ?x. x = a | link to proof | bool-int |
| EXISTS_SIMP | !t. (?x. t) <=> t | link to proof | bool-int |
| EXISTS_SUBSET_IMAGE | !p f s. (?t. t SUBSET IMAGE f s /\ p t) <=> (?t. t SUBSET s /\ p (IMAGE f t)) | link to proof | set-thm |
| 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)) | link to proof | set-thm |
| EXISTS_SUBSET_INSERT | !p x t. (?s. s SUBSET x INSERT t /\ p s) <=> (?s. s SUBSET t /\ (p s \/ p (x INSERT s))) | link to proof | set-thm |
| 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')) | link to proof | set-thm |
| EXISTS_THM | (?) = (\p. p ((@) p)) | link to proof | bool-class |
| EXISTS_TRIPLED_THM | !p. (?(a,b,c). p a b c) <=> (?a b c. p a b c) | link to proof | pair-thm |
| EXISTS_UNCURRY | !p. (?f. p f) <=> (?f. p (\a b. f (a,b))) | link to proof | pair-thm |
| EXISTS_UNIQUE | !p. (?!x. p x) <=> (?x. p x /\ (!y. p y ==> y = x)) | link to proof | bool-int |
| EXISTS_UNIQUE_ALT | !p. (?!x. p x) <=> (?x. !y. p y <=> x = y) | link to proof | bool-int |
| EXISTS_UNIQUE_DEF | (?!) = (\p. (?) p /\ (!x y. p x /\ p y ==> x = y)) | link to proof | bool-def |
| EXISTS_UNIQUE_REFL | !a. ?!x. x = a | link to proof | bool-int |
| EXISTS_UNIQUE_THM | !p. (?!x. p x) <=> (?x. p x) /\ (!x x'. p x /\ p x' ==> x = x') | link to proof | bool-int |
| EXISTS_UNPAIR_THM | !p. (?x y. p x y) <=> (?z. p (FST z) (SND z)) | link to proof | pair-thm |
| EXP_0 | !m. m EXP 0 = 1 | link to proof | natural-exp-def |
| EXP_1 | !n. n EXP 1 = n | link to proof | natural-exp-thm |
| EXP_2 | !n. n EXP 2 = n * n | link to proof | natural-exp-thm |
| EXP_ADD | !m n p. m EXP (n + p) = m EXP n * m EXP p | link to proof | natural-exp-thm |
| EXP_EQ_0 | !m n. m EXP n = 0 <=> m = 0 /\ ~(n = 0) | link to proof | natural-exp-thm |
| EXP_EQ_1 | !x n. x EXP n = 1 <=> x = 1 \/ n = 0 | link to proof | natural-exp-thm |
| EXP_LT_0 | !n x. 0 < x EXP n <=> ~(x = 0) \/ n = 0 | link to proof | natural-exp-thm |
| EXP_MONO_EQ | !x y n. x EXP n = y EXP n <=> x = y \/ n = 0 | link to proof | natural-exp-thm |
| EXP_MONO_LE | !x y n. x EXP n <= y EXP n <=> x <= y \/ n = 0 | link to proof | natural-exp-thm |
| EXP_MONO_LE_IMP | !x y n. x <= y ==> x EXP n <= y EXP n | link to proof | natural-exp-thm |
| EXP_MONO_LT | !x y n. x EXP n < y EXP n <=> x < y /\ ~(n = 0) | link to proof | natural-exp-thm |
| EXP_MONO_LT_IMP | !x y n. x < y /\ ~(n = 0) ==> x EXP n < y EXP n | link to proof | natural-exp-thm |
| EXP_MULT | !m n p. m EXP (n * p) = m EXP n EXP p | link to proof | natural-exp-thm |
| EXP_ONE | !n. 1 EXP n = 1 | link to proof | natural-exp-thm |
| EXP_SUC | !m n. m EXP SUC n = m * m EXP n | link to proof | natural-exp-def |
| EXP_ZERO | !n. 0 EXP n = (if n = 0 then 1 else 0) | link to proof | natural-exp-thm |
| EXTENSION' | !s t. (!x. x IN s <=> x IN t) <=> s = t | link to proof | set-thm |
| EXTENSION_IMP | !s t. (!x. x IN s <=> x IN t) ==> s = t | link to proof | set-def |
| EX_APPEND | !p l1 l2. EX p (APPEND l1 l2) <=> EX p l1 \/ EX p l2 | link to proof | list-append-thm |
| EX_CONS | !p h t. EX p (CONS h t) <=> p h \/ EX p t | link to proof | list-set-def |
| EX_FILTER | !p q l. EX p (FILTER q l) <=> EX (\x. q x /\ p x) l | link to proof | list-filter-thm |
| EX_IMP | !p q l. (!x. MEM x l /\ p x ==> q x) /\ EX p l ==> EX q l | link to proof | list-set-thm |
| EX_MAP | !p f l. EX p (MAP f l) <=> EX (p o f) l | link to proof | list-map-thm |
| EX_MEM | !p l. (?x. MEM x l /\ p x) <=> EX p l | link to proof | list-set-thm |
| EX_NIL | !p. ~EX p [] | link to proof | list-set-def |
| EX_SET_OF_LIST | !p l. EX p l <=> (?x. x IN set_of_list l /\ p x) | link to proof | list-set-thm |
| FACT_MONO | !m n. m <= n ==> FACT m <= FACT n | link to proof | natural-factorial-thm |
| FACT_NZ | !n. ~(FACT n = 0) | link to proof | natural-factorial-thm |
| FACT_SUC | !n. FACT (SUC n) = SUC n * FACT n | link to proof | natural-factorial-def |
| FACT_ZERO | FACT 0 = 1 | link to proof | natural-factorial-def |
| FALSE_AND_THM | !t. F /\ t <=> F | link to proof | bool-int |
| FALSE_EQ_THM | !t. (F <=> t) <=> ~t | link to proof | bool-int |
| FALSE_IMP_THM | !t. F ==> t <=> T | link to proof | bool-int |
| FALSE_OR_THM | !t. F \/ t <=> t | link to proof | bool-int |
| FILTER_APPEND | !p l1 l2. FILTER p (APPEND l1 l2) = APPEND (FILTER p l1) (FILTER p l2) | link to proof | list-filter-thm |
| FILTER_CONS | !p h t. FILTER p (CONS h t) = (if p h then CONS h (FILTER p t) else FILTER p t) | link to proof | list-filter-def |
| FILTER_MAP | !p f l. FILTER p (MAP f l) = MAP f (FILTER (p o f) l) | link to proof | list-filter-thm |
| FILTER_NIL | !p. FILTER p [] = [] | link to proof | list-filter-def |
| FINITE_BOOL | FINITE UNIV | link to proof | set-finite-thm |
| FINITE_CASES | !a. FINITE a <=> a = {} \/ (?x s. a = x INSERT s /\ FINITE s) | link to proof | set-finite-def |
| FINITE_CROSS | !s t. FINITE s /\ FINITE t ==> FINITE (s CROSS t) | link to proof | set-finite-thm |
| FINITE_CROSS_EQ | !s t. FINITE (s CROSS t) <=> s = {} \/ t = {} \/ FINITE s /\ FINITE t | link to proof | set-finite-thm |
| FINITE_DELETE | !s x. FINITE (s DELETE x) <=> FINITE s | link to proof | set-finite-thm |
| FINITE_DELETE_IMP | !s x. FINITE s ==> FINITE (s DELETE x) | link to proof | set-finite-thm |
| FINITE_DIFF | !s t. FINITE s ==> FINITE (s DIFF t) | link to proof | set-finite-thm |
| FINITE_EMPTY | FINITE {} | link to proof | set-finite-def |
| FINITE_FINITE_PREIMAGE | !f t. FINITE t /\ (!y. y IN t ==> FINITE {x | f x = y}) ==> FINITE {x | f x IN t} | link to proof | set-finite-thm |
| FINITE_FINITE_PREIMAGE_GENERAL | !f s t. FINITE t /\ (!y. y IN t ==> FINITE {x | x IN s /\ f x = y}) ==> FINITE {x | x IN s /\ f x IN t} | link to proof | set-finite-thm |
| FINITE_FINITE_UNIONS | !s. FINITE s ==> (FINITE (UNIONS s) <=> (!t. t IN s ==> FINITE t)) | link to proof | set-finite-thm |
| FINITE_FUNSPACE | !d s t. FINITE s /\ FINITE t ==> FINITE {f | (!x. x IN s ==> f x IN t) /\ (!x. ~(x IN s) ==> f x = d)} | link to proof | set-finite-thm |
| FINITE_FUNSPACE_UNIV | FINITE UNIV /\ FINITE UNIV ==> FINITE UNIV | link to proof | set-size-thm |
| FINITE_HAS_SIZE | !s. FINITE s <=> s HAS_SIZE CARD s | link to proof | set-size-thm |
| FINITE_IMAGE | !f s. FINITE s ==> FINITE (IMAGE f s) | link to proof | set-finite-thm |
| FINITE_IMAGE_EXPAND | !f s. FINITE s ==> FINITE {y | ?x. x IN s /\ y = f x} | link to proof | set-finite-thm |
| FINITE_IMAGE_INJ | !f A. (!x y. f x = f y ==> x = y) /\ FINITE A ==> FINITE {x | f x IN A} | link to proof | set-finite-thm |
| FINITE_IMAGE_INJ_EQ | !f s. (!x y. x IN s /\ y IN s /\ f x = f y ==> x = y) ==> (FINITE (IMAGE f s) <=> FINITE s) | link to proof | set-finite-thm |
| FINITE_IMAGE_INJ_GENERAL | !f t s. (!x y. x IN s /\ y IN s /\ f x = f y ==> x = y) /\ FINITE t ==> FINITE {x | x IN s /\ f x IN t} | link to proof | set-finite-thm |
| FINITE_INDUCT | !p. p {} /\ (!x s. p s ==> p (x INSERT s)) ==> (!a. FINITE a ==> p a) | link to proof | set-finite-def |
| FINITE_INDUCT_DELETE | !p. p {} /\ (!s. FINITE s /\ ~(s = {}) ==> (?x. x IN s /\ (p (s DELETE x) ==> p s))) ==> (!s. FINITE s ==> p s) | link to proof | set-size-thm |
| FINITE_INDUCT_STRONG | !p. p {} /\ (!x s. p s /\ ~(x IN s) /\ FINITE s ==> p (x INSERT s)) ==> (!s. FINITE s ==> p s) | link to proof | set-finite-thm |
| FINITE_INSERT | !s x. FINITE (x INSERT s) <=> FINITE s | link to proof | set-finite-thm |
| FINITE_INSERT_IMP | !x s. FINITE s ==> FINITE (x INSERT s) | link to proof | set-finite-def |
| FINITE_INTER | !s t. FINITE s \/ FINITE t ==> FINITE (s INTER t) | link to proof | set-finite-thm |
| FINITE_NUMSEG_LE | !n. FINITE {m | m <= n} | link to proof | set-finite-thm |
| FINITE_NUMSEG_LT | !n. FINITE {m | m < n} | link to proof | set-finite-thm |
| FINITE_POWERSET | !s. FINITE s ==> FINITE {t | t SUBSET s} | link to proof | set-finite-thm |
| FINITE_PRODUCT | !s t. FINITE s /\ FINITE t ==> FINITE {x,y | x IN s /\ y IN t} | link to proof | set-finite-thm |
| FINITE_PRODUCT_DEPENDENT | !f s t. FINITE s /\ (!x. x IN s ==> FINITE (t x)) ==> FINITE {f x y | x IN s /\ y IN t x} | link to proof | set-finite-thm |
| FINITE_RECURSION | !f b. (!x y s. ~(x = y) ==> f x (f y s) = f y (f x s)) ==> ITSET f b {} = b /\ (!x s. FINITE s ==> ITSET f b (x INSERT s) = (if x IN s then ITSET f b s else f x (ITSET f b s))) | link to proof | set-fold-def |
| FINITE_RECURSION_DELETE | !f b. (!x y s. ~(x = y) ==> f x (f y s) = f y (f x s)) ==> ITSET f b {} = b /\ (!x s. FINITE s ==> ITSET f b s = (if x IN s then f x (ITSET f b (s DELETE x)) else ITSET f b (s DELETE x))) | link to proof | set-fold-thm |
| FINITE_RESTRICT | !s p. FINITE s ==> FINITE {x | x IN s /\ p x} | link to proof | set-finite-thm |
| FINITE_SET_OF_LIST | !l. FINITE (set_of_list l) | link to proof | list-set-thm |
| FINITE_SING | !a. FINITE {a} | link to proof | set-finite-thm |
| FINITE_SUBSET | !s t. FINITE t /\ s SUBSET t ==> FINITE s | link to proof | set-finite-thm |
| FINITE_SUBSET_IMAGE | !f s t. FINITE t /\ t SUBSET IMAGE f s <=> (?s'. FINITE s' /\ s' SUBSET s /\ t = IMAGE f s') | link to proof | set-finite-thm |
| FINITE_SUBSET_IMAGE_IMP | !f s t. FINITE t /\ t SUBSET IMAGE f s ==> (?s'. FINITE s' /\ s' SUBSET s /\ t SUBSET IMAGE f s') | link to proof | set-finite-thm |
| FINITE_TRANSITIVITY_CHAIN | !r s. FINITE s /\ (!x. ~r x x) /\ (!x y z. r x y /\ r y z ==> r x z) /\ (!x. x IN s ==> (?y. y IN s /\ r x y)) ==> s = {} | link to proof | set-finite-thm |
| FINITE_UNION | !s t. FINITE (s UNION t) <=> FINITE s /\ FINITE t | link to proof | set-finite-thm |
| FINITE_UNIONS | !s. FINITE (UNIONS s) <=> FINITE s /\ (!t. t IN s ==> FINITE t) | link to proof | set-finite-thm |
| FINITE_UNION_IMP | !s t. FINITE s /\ FINITE t ==> FINITE (s UNION t) | link to proof | set-finite-thm |
| FORALL_ALL | !p l. (!x. ALL (p x) l) <=> ALL (\y. !x. p x y) l | link to proof | list-set-thm |
| FORALL_AND_THM | !p q. (!x. p x /\ q x) <=> (!x. p x) /\ (!x. q x) | link to proof | bool-int |
| FORALL_BOOL_THM | !p. (!b. p b) <=> p T /\ p F | link to proof | bool-class |
| FORALL_CURRY | !p. (!f. p f) <=> (!f. p (\(a,b). f a b)) | link to proof | pair-thm |
| FORALL_DEF | (!) = (\p. p = (\x. T)) | link to proof | bool-def |
| FORALL_FINITE_SUBSET_IMAGE | !p f s. (!t. FINITE t /\ t SUBSET IMAGE f s ==> p t) <=> (!t. FINITE t /\ t SUBSET s ==> p (IMAGE f t)) | link to proof | set-finite-thm |
| FORALL_FINITE_SUBSET_IMAGE_INJ | !p f s. (!t. FINITE t /\ t SUBSET IMAGE f s ==> p t) <=> (!t. FINITE t /\ t SUBSET s /\ (!x y. x IN t /\ y IN t /\ f x = f y ==> x = y) ==> p (IMAGE f t)) | link to proof | set-finite-thm |
| FORALL_IN_GSPEC1 | !p f q. (!z. z IN {f x | p x} ==> q z) <=> (!x. p x ==> q (f x)) | link to proof | set-thm |
| 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)) | link to proof | set-thm |
| 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)) | link to proof | set-thm |
| FORALL_IN_IMAGE | !p f s. (!y. y IN IMAGE f s ==> p y) <=> (!x. x IN s ==> p (f x)) | link to proof | set-thm |
| 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)) | link to proof | set-thm |
| FORALL_IN_INSERT | !p a s. (!x. x IN a INSERT s ==> p x) <=> p a /\ (!x. x IN s ==> p x) | link to proof | set-thm |
| 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) | link to proof | set-thm |
| FORALL_IN_UNIONS | !p s. (!x. x IN UNIONS s ==> p x) <=> (!t x. t IN s /\ x IN t ==> p x) | link to proof | set-thm |
| FORALL_NOT_THM | !p. (!x. ~p x) <=> ~(?x. p x) | link to proof | bool-class |
| FORALL_PAIRED_THM | !p. (!(a,b). p a b) <=> (!a b. p a b) | link to proof | pair-thm |
| FORALL_PAIR_THM | !p. (!x. p x) <=> (!a b. p (a,b)) | link to proof | pair-thm |
| FORALL_SIMP | !t. (!x. t) <=> t | link to proof | bool-int |
| FORALL_SUBSET_IMAGE | !p f s. (!t. t SUBSET IMAGE f s ==> p t) <=> (!t. t SUBSET s ==> p (IMAGE f t)) | link to proof | set-thm |
| 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)) | link to proof | set-thm |
| FORALL_SUBSET_INSERT | !p x t. (!s. s SUBSET x INSERT t ==> p s) <=> (!s. s SUBSET t ==> p s /\ p (x INSERT s)) | link to proof | set-thm |
| 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')) | link to proof | set-thm |
| FORALL_TRIPLED_THM | !p. (!(a,b,c). p a b c) <=> (!a b c. p a b c) | link to proof | pair-thm |
| FORALL_UNCURRY | !p. (!f. p f) <=> (!f. p (\a b. f (a,b))) | link to proof | pair-thm |
| FORALL_UNPAIR_THM | !p. (!x y. p x y) <=> (!z. p (FST z) (SND z)) | link to proof | pair-thm |
| FORALL_UNWIND_THM1 | !p a. (!x. a = x ==> p x) <=> p a | link to proof | bool-int |
| FORALL_UNWIND_THM2 | !p a. (!x. x = a ==> p x) <=> p a | link to proof | bool-int |
| FST | !a b. FST (a,b) = a | link to proof | pair-def |
| FUNCTION_FACTORS_LEFT | !f g. (!x y. g x = g y ==> f x = f y) <=> (?h. f = h o g) | link to proof | function-thm |
| FUNCTION_FACTORS_LEFT_GEN | !p f g. (!x y. p x /\ p y /\ g x = g y ==> f x = f y) <=> (?h. !x. p x ==> f x = h (g x)) | link to proof | function-thm |
| FUNCTION_FACTORS_RIGHT | !f g. (!x. ?y. g y = f x) <=> (?h. f = g o h) | link to proof | function-thm |
| FUNCTION_FACTORS_RIGHT_GEN | !p f g. (!x. p x ==> (?y. g y = f x)) <=> (?h. !x. p x ==> f x = g (h x)) | link to proof | function-thm |
| FUN_EQ_THM' | !f g. (!x. f x = g x) <=> f = g | link to proof | bool-ext |
| FUN_IN_IMAGE | !f s x. x IN s ==> f x IN IMAGE f s | link to proof | set-thm |
| F_DEF | F <=> (!p. p) | link to proof | bool-def |
| GE | !m n. m >= n <=> n <= m | link to proof | natural-order-def |
| GT | !m n. m > n <=> n < m | link to proof | natural-order-def |
| HAS_SIZE | !s n. s HAS_SIZE n <=> FINITE s /\ CARD s = n | link to proof | set-size-def |
| HAS_SIZE_0 | !s. s HAS_SIZE 0 <=> s = {} | link to proof | set-size-thm |
| HAS_SIZE_BOOL | UNIV HAS_SIZE 2 | link to proof | set-size-thm |
| HAS_SIZE_CARD | !s n. s HAS_SIZE n ==> CARD s = n | link to proof | set-size-thm |
| HAS_SIZE_CROSS | !s t m n. s HAS_SIZE m /\ t HAS_SIZE n ==> s CROSS t HAS_SIZE m * n | link to proof | set-size-thm |
| HAS_SIZE_DIFF | !s t m n. s HAS_SIZE m /\ t HAS_SIZE n /\ t SUBSET s ==> s DIFF t HAS_SIZE m - n | link to proof | set-size-thm |
| HAS_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 m | link to proof | set-size-thm |
| HAS_SIZE_FUNSPACE_UNIV | !m n. UNIV HAS_SIZE m /\ UNIV HAS_SIZE n ==> UNIV HAS_SIZE n EXP m | link to proof | set-size-thm |
| HAS_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 n | link to proof | set-size-thm |
| HAS_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) | link to proof | set-size-thm |
| 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))) | link to proof | set-size-thm |
| HAS_SIZE_INSERT | !s n. s HAS_SIZE SUC n <=> (?a t. t HAS_SIZE n /\ ~(a IN t) /\ s = a INSERT t) | link to proof | set-size-thm |
| HAS_SIZE_NUMSEG_LE | !n. {m | m <= n} HAS_SIZE n + 1 | link to proof | set-size-thm |
| HAS_SIZE_NUMSEG_LT | !n. {m | m < n} HAS_SIZE n | link to proof | set-size-thm |
| HAS_SIZE_POWERSET | !s n. s HAS_SIZE n ==> {t | t SUBSET s} HAS_SIZE 2 EXP n | link to proof | set-size-thm |
| HAS_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 * n | link to proof | set-size-thm |
| HAS_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 * n | link to proof | set-size-thm |
| HAS_SIZE_SING | !x. {x} HAS_SIZE 1 | link to proof | set-size-thm |
| HAS_SIZE_SUC | !s n. s HAS_SIZE SUC n <=> ~(s = {}) /\ (!a. a IN s ==> s DELETE a HAS_SIZE n) | link to proof | set-size-thm |
| HAS_SIZE_UNION | !s t m n. s HAS_SIZE m /\ t HAS_SIZE n /\ DISJOINT s t ==> s UNION t HAS_SIZE m + n | link to proof | set-size-thm |
| HAS_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 * n | link to proof | set-size-thm |
| HD | !h t. HD (CONS h t) = h | link to proof | list-dest-def |
| IMAGE | !f s. IMAGE f s = {y | ?x. x IN s /\ y = f x} | link to proof | set-def |
| IMAGE_CONST | !s c. IMAGE (\x. c) s = (if s = {} then {} else {c}) | link to proof | set-thm |
| IMAGE_DELETE_INJ | !f s a. (!x. f x = f a ==> x = a) ==> IMAGE f (s DELETE a) = IMAGE f s DELETE f a | link to proof | set-thm |
| IMAGE_DIFF_INJ | !f s t. (!x y. f x = f y ==> x = y) ==> IMAGE f (s DIFF t) = IMAGE f s DIFF IMAGE f t | link to proof | set-thm |
| IMAGE_EMPTY | !f. IMAGE f {} = {} | link to proof | set-thm |
| IMAGE_EQ_EMPTY | !f s. IMAGE f s = {} <=> s = {} | link to proof | set-thm |
| IMAGE_I | !s. IMAGE I s = s | link to proof | set-thm |
| IMAGE_ID | !s. IMAGE (\x. x) s = s | link to proof | set-thm |
| IMAGE_IMP_INJECTIVE | !s f. FINITE s /\ IMAGE f s = s ==> (!x y. x IN s /\ y IN s /\ f x = f y ==> x = y) | link to proof | set-size-thm |
| 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) | link to proof | set-size-thm |
| IMAGE_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) | link to proof | set-thm |
| IMAGE_INSERT | !f x s. IMAGE f (x INSERT s) = f x INSERT IMAGE f s | link to proof | set-thm |
| IMAGE_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) | link to proof | set-thm |
| 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 t | link to proof | set-thm |
| IMAGE_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))} | link to proof | set-thm |
| IMAGE_SING | !f x. IMAGE f {x} = {f x} | link to proof | set-thm |
| IMAGE_SUBSET | !f s t. s SUBSET t ==> IMAGE f s SUBSET IMAGE f t | link to proof | set-thm |
| IMAGE_UNION | !f s t. IMAGE f (s UNION t) = IMAGE f s UNION IMAGE f t | link to proof | set-thm |
| IMAGE_UNIONS | !f s. IMAGE f (UNIONS s) = UNIONS (IMAGE (IMAGE f) s) | link to proof | set-thm |
| IMAGE_o | !f g s. IMAGE (f o g) s = IMAGE f (IMAGE g s) | link to proof | set-thm |
| IMP_AND_DISTRIB | !p q r. p ==> q /\ r <=> (p ==> q) /\ (p ==> r) | link to proof | bool-int |
| IMP_DEF | (==>) = (\p q. p /\ q <=> p) | link to proof | bool-def |
| IMP_FALSE_THM | !t. t ==> F <=> ~t | link to proof | bool-int |
| IMP_IMP | !p q r. p ==> q ==> r <=> p /\ q ==> r | link to proof | bool-int |
| IMP_REFL | !t. t ==> t | link to proof | bool-int |
| IMP_TRUE_THM | !t. t ==> T <=> T | link to proof | bool-int |
| INFINITE | !s. INFINITE s <=> ~FINITE s | link to proof | set-finite-def |
| INFINITE_DIFF_FINITE | !s t. INFINITE s /\ FINITE t ==> INFINITE (s DIFF t) | link to proof | set-finite-thm |
| INFINITE_ENUMERATE | !s. INFINITE s ==> (?r. (!m n. m < n ==> r m < r n) /\ IMAGE r UNIV = s) | link to proof | set-finite-thm |
| INFINITE_IMAGE_INJ | !f s. INFINITE s /\ (!x y. x IN s /\ y IN s /\ f x = f y ==> x = y) ==> INFINITE (IMAGE f s) | link to proof | set-finite-thm |
| INFINITE_IMAGE_INJ_EQ | !f. (!x y. f x = f y ==> x = y) ==> (!s. INFINITE (IMAGE f s) <=> INFINITE s) | link to proof | set-finite-thm |
| INFINITE_NONEMPTY | !s. INFINITE s ==> ~(s = {}) | link to proof | set-finite-thm |
| INFINITE_SUPERSET | !s t. INFINITE s /\ s SUBSET t ==> INFINITE t | link to proof | set-finite-thm |
| INFINITY_AX | ?f. ONE_ONE f /\ ~ONTO f | link to proof | axiom-infinity |
| INJ | !s t. INJ s t = {f | (!x. x IN s ==> f x IN t) /\ (!x y. x IN s /\ y IN s /\ f x = f y ==> x = y)} | link to proof | set-def |
| INJECTIVE_IMAGE | !f. (!s t. IMAGE f s = IMAGE f t ==> s = t) <=> (!x y. f x = f y ==> x = y) | link to proof | set-thm |
| INJECTIVE_LEFT_INVERSE | !f. (!x y. f x = f y ==> x = y) <=> (?g. !x. g (f x) = x) | link to proof | set-thm |
| INJECTIVE_MAP | !f. (!l1 l2. MAP f l1 = MAP f l2 ==> l1 = l2) <=> (!x y. f x = f y ==> x = y) | link to proof | list-map-thm |
| 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) | link to proof | set-thm |
| 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) | link to proof | set-thm |
| INSERT | !x s. x INSERT s = {y | y = x \/ y IN s} | link to proof | set-def |
| INSERT_AC | !x y s. x INSERT y INSERT s = y INSERT x INSERT s /\ x INSERT x INSERT s = x INSERT s | link to proof | set-thm |
| INSERT_BOOL | UNIV = {T, F} | link to proof | set-thm |
| INSERT_COMM | !x y s. x INSERT y INSERT s = y INSERT x INSERT s | link to proof | set-thm |
| INSERT_DELETE | !x s. x IN s ==> x INSERT (s DELETE x) = s | link to proof | set-thm |
| INSERT_DIFF | !s t x. x INSERT s DIFF t = (if x IN t then s DIFF t else x INSERT (s DIFF t)) | link to proof | set-thm |
| 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)}) | link to proof | set-thm |
| INSERT_INSERT | !x s. x INSERT x INSERT s = x INSERT s | link to proof | set-thm |
| INSERT_INTER | !x s t. x INSERT s INTER t = (if x IN t then x INSERT (s INTER t) else s INTER t) | link to proof | set-thm |
| INSERT_NUMSEG_LT | !n. {m | m < SUC n} = n INSERT {m | m < n} | link to proof | set-thm |
| INSERT_NUMSEG_LT' | !n. {m | m < SUC n} = 0 INSERT {SUC m | m < n} | link to proof | set-thm |
| INSERT_POWERSET | !a t. {s | s SUBSET a INSERT t} = {s | s SUBSET t} UNION IMAGE (\s. a INSERT s) {s | s SUBSET t} | link to proof | set-thm |
| 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} | link to proof | set-thm |
| INSERT_SUBSET | !x s t. x INSERT s SUBSET t <=> x IN t /\ s SUBSET t | link to proof | set-thm |
| INSERT_UNION | !x s t. x INSERT s UNION t = (if x IN t then s UNION t else x INSERT (s UNION t)) | link to proof | set-thm |
| INSERT_UNION_EQ | !x s t. x INSERT s UNION t = x INSERT (s UNION t) | link to proof | set-thm |
| INSERT_UNION_SING | !x s. {x} UNION s = x INSERT s | link to proof | set-thm |
| INSERT_UNIV | !x. x INSERT UNIV = UNIV | link to proof | set-thm |
| INTER | !s t. s INTER t = {x | x IN s /\ x IN t} | link to proof | set-def |
| INTERS | !s. INTERS s = {x | !u. u IN s ==> x IN u} | link to proof | set-def |
| INTERS_0 | INTERS {} = UNIV | link to proof | set-thm |
| INTERS_1 | !s. INTERS {s} = s | link to proof | set-thm |
| INTERS_2 | !s t. INTERS {s, t} = s INTER t | link to proof | set-thm |
| INTERS_GSPEC1 | !p f. INTERS {f x | p x} = {a | !x. p x ==> a IN f x} | link to proof | set-thm |
| INTERS_GSPEC2 | !p f. INTERS {f x y | p x y} = {a | !x y. p x y ==> a IN f x y} | link to proof | set-thm |
| 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} | link to proof | set-thm |
| INTERS_IMAGE | !f s. INTERS (IMAGE f s) = {y | !x. x IN s ==> y IN f x} | link to proof | set-thm |
| INTERS_INSERT | !s u. INTERS (s INSERT u) = s INTER INTERS u | link to proof | set-thm |
| INTERS_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} | link to proof | set-thm |
| INTERS_SUBSET | !u s. ~(u = {}) /\ (!t. t IN u ==> t SUBSET s) ==> INTERS u SUBSET s | link to proof | set-thm |
| INTERS_SUBSET_INTERS | !s t. s SUBSET t ==> INTERS t SUBSET INTERS s | link to proof | set-thm |
| INTERS_UNION | !s t. INTERS (s UNION t) = INTERS s INTER INTERS t | link to proof | set-thm |
| INTERS_UNIONS | !s. INTERS s = UNIV DIFF UNIONS {UNIV DIFF t | t IN s} | link to proof | set-thm |
| 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 q | link to proof | set-thm |
| INTER_ASSOC | !s t u. (s INTER t) INTER u = s INTER t INTER u | link to proof | set-thm |
| INTER_COMM | !s t. s INTER t = t INTER s | link to proof | set-thm |
| INTER_IDEMPOT | !s. s INTER s = s | link to proof | set-thm |
| INTER_LEFT_EMPTY | !s. {} INTER s = {} | link to proof | set-thm |
| INTER_LEFT_UNIV | !s. UNIV INTER s = s | link to proof | set-thm |
| INTER_RIGHT_EMPTY | !s. s INTER {} = {} | link to proof | set-thm |
| INTER_RIGHT_UNIV | !s. s INTER UNIV = s | link to proof | set-thm |
| INTER_UNIONS | !s t. t INTER UNIONS s = UNIONS {t INTER x | x IN s} | link to proof | set-thm |
| IN_CROSS | !x y s t. x,y IN s CROSS t <=> x IN s /\ y IN t | link to proof | set-thm |
| IN_DELETE | !s x y. x IN s DELETE y <=> x IN s /\ ~(x = y) | link to proof | set-thm |
| IN_DELETE_EQ | !s x x'. (x IN s DELETE x' <=> x' IN s DELETE x) <=> x IN s <=> x' IN s | link to proof | set-thm |
| IN_DELETE_SWAP | !s x x'. (x IN s <=> x' IN s) ==> (x IN s DELETE x' <=> x' IN s DELETE x) | link to proof | set-thm |
| IN_DIFF | !s t x. x IN s DIFF t <=> x IN s /\ ~(x IN t) | link to proof | set-thm |
| IN_DISJOINT | !s t. DISJOINT s t <=> ~(?x. x IN s /\ x IN t) | link to proof | set-thm |
| IN_ELIM | !p x. x IN {y | p y} <=> p x | link to proof | set-thm |
| IN_ELIM_PAIR_THM | !p a b. a,b IN {x,y | p x y} <=> p a b | link to proof | set-thm |
| IN_ELIM_THM | !p x. x IN GSPEC p <=> p x | link to proof | set-def |
| IN_IMAGE | !y s f. y IN IMAGE f s <=> (?x. y = f x /\ x IN s) | link to proof | set-thm |
| IN_INSERT | !x y s. x IN y INSERT s <=> x = y \/ x IN s | link to proof | set-thm |
| IN_INTER | !s t x. x IN s INTER t <=> x IN s /\ x IN t | link to proof | set-thm |
| IN_INTERS | !s x. x IN INTERS s <=> (!t. t IN s ==> x IN t) | link to proof | set-thm |
| IN_REST | !x s. x IN REST s <=> x IN s /\ ~(x = CHOICE s) | link to proof | set-thm |
| IN_SING | !x y. x IN {y} <=> x = y | link to proof | set-thm |
| IN_UNION | !s t x. x IN s UNION t <=> x IN s \/ x IN t | link to proof | set-thm |
| IN_UNIONS | !s x. x IN UNIONS s <=> (?t. t IN s /\ x IN t) | link to proof | set-thm |
| IN_UNIV | !x. x IN UNIV | link to proof | set-thm |
| ISL_INL | !a. ISL (INL a) | link to proof | sum-def |
| ISL_INR | !b. ~ISL (INR b) | link to proof | sum-def |
| ISL_case_sum | !f g x. ISL x ==> case_sum f g x = f (OUTL x) | link to proof | sum-thm |
| ISR_INL | !a. ~ISR (INL a) | link to proof | sum-def |
| ISR_INR | !b. ISR (INR b) | link to proof | sum-def |
| ISR_case_sum | !f g x. ISR x ==> case_sum f g x = g (OUTR x) | link to proof | sum-thm |
| ITSET_EQ | !f g b s. FINITE s /\ (!x. x IN s ==> f x = g x) /\ (!x y s. ~(x = y) ==> f x (f y s) = f y (f x s)) /\ (!x y s. ~(x = y) ==> g x (g y s) = g y (g x s)) ==> ITSET f b s = ITSET g b s | link to proof | set-fold-thm |
| I_DEF | I = (\x. x) | link to proof | function-def |
| I_O | !f. I o f = f | link to proof | function-thm |
| I_THM | !x. I x = x | link to proof | function-thm |
| K_DEF | K = (\x y. x) | link to proof | function-def |
| K_THM | !x y. K x y = x | link to proof | function-thm |
| LAMBDA_PAIR_THM | !f. (\x. f x) = (\(a,b). f (a,b)) | link to proof | pair-thm |
| LAMBDA_UNPAIR_THM | !f. (\(x,y). f x y) = (\p. f (FST p) (SND p)) | link to proof | pair-thm |
| LAST | !h t. LAST (CONS h t) = (if NULL t then h else LAST t) | link to proof | list-last-def |
| LAST_MULTIPLE | !x1 x2 l. LAST (CONS x1 (CONS x2 l)) = LAST (CONS x2 l) | link to proof | list-last-thm |
| LAST_SING | !x. LAST [x] = x | link to proof | list-last-thm |
| LEFT_ADD_DISTRIB | !m n p. m * (n + p) = m * n + m * p | link to proof | natural-mult-thm |
| LEFT_AND_DISTRIB | !p q r. p \/ q /\ r <=> (p \/ q) /\ (p \/ r) | link to proof | bool-int |
| LEFT_AND_EXISTS_THM | !p q. (?x. p x) /\ q <=> (?x. p x /\ q) | link to proof | bool-int |
| LEFT_AND_FORALL_THM | !p q. (!x. p x) /\ q <=> (!x. p x /\ q) | link to proof | bool-int |
| LEFT_EXISTS_AND_THM | !p q. (?x. p x /\ q) <=> (?x. p x) /\ q | link to proof | bool-int |
| LEFT_EXISTS_IMP_THM | !p q. (?x. p x ==> q) <=> (!x. p x) ==> q | link to proof | bool-class |
| LEFT_FORALL_IMP_THM | !p q. (!x. p x ==> q) <=> (?x. p x) ==> q | link to proof | bool-int |
| LEFT_FORALL_OR_THM | !p q. (!x. p x \/ q) <=> (!x. p x) \/ q | link to proof | bool-class |
| LEFT_IMP_EXISTS_THM | !p q. (?x. p x) ==> q <=> (!x. p x ==> q) | link to proof | bool-int |
| LEFT_IMP_FORALL_THM | !p q. (!x. p x) ==> q <=> (?x. p x ==> q) | link to proof | bool-class |
| LEFT_INTER_DISTRIB | !s t u. s UNION t INTER u = (s UNION t) INTER (s UNION u) | link to proof | set-thm |
| LEFT_INTER_SUBSET | !s t. s INTER t SUBSET s | link to proof | set-thm |
| LEFT_OR_DISTRIB | !p q r. p /\ (q \/ r) <=> p /\ q \/ p /\ r | link to proof | bool-int |
| LEFT_OR_EXISTS_THM | !p q. (?x. p x) \/ q <=> (?x. p x \/ q) | link to proof | bool-int |
| LEFT_OR_FORALL_THM | !p q. (!x. p x) \/ q <=> (!x. p x \/ q) | link to proof | bool-class |
| LEFT_SUB_DISTRIB | !m n p. p <= n ==> m * (n - p) = m * n - m * p | link to proof | natural-mult-thm |
| LEFT_UNION_DISTRIB | !s t u. s INTER (t UNION u) = s INTER t UNION s INTER u | link to proof | set-thm |
| LEFT_UNION_INTERS | !s t. t UNION INTERS s = INTERS {t UNION x | x IN s} | link to proof | set-thm |
| LENGTH_APPEND | !l1 l2. LENGTH (APPEND l1 l2) = LENGTH l1 + LENGTH l2 | link to proof | list-append-thm |
| LENGTH_CONS | !h t. LENGTH (CONS h t) = SUC (LENGTH t) | link to proof | list-length-def |
| LENGTH_EQ_CONS | !l n. LENGTH l = SUC n <=> (?h t. l = CONS h t /\ LENGTH t = n) | link to proof | list-length-thm |
| LENGTH_EQ_NIL | !l. LENGTH l = 0 <=> l = [] | link to proof | list-length-thm |
| LENGTH_FILTER | !p l. LENGTH (FILTER p l) <= LENGTH l | link to proof | list-filter-thm |
| LENGTH_LIST_OF_SET | !s. FINITE s ==> LENGTH (list_of_set s) = CARD s | link to proof | list-set-thm |
| LENGTH_MAP | !f l. LENGTH (MAP f l) = LENGTH l | link to proof | list-map-thm |
| LENGTH_NIL | LENGTH [] = 0 | link to proof | list-length-def |
| LENGTH_REPLICATE | !x n. LENGTH (REPLICATE x n) = n | link to proof | list-replicate-thm |
| LENGTH_REVERSE | !l. LENGTH (REVERSE l) = LENGTH l | link to proof | list-reverse-thm |
| LENGTH_TL | !l. ~NULL l ==> LENGTH (TL l) = LENGTH l - 1 | link to proof | list-length-thm |
| LET_ADD2 | !m n p q. m <= p /\ n < q ==> m + n < p + q | link to proof | natural-add-thm |
| LET_ANTISYM | !m n. ~(m <= n /\ n < m) | link to proof | natural-order-thm |
| LET_CASES | !m n. m <= n \/ n < m | link to proof | natural-order-thm |
| LET_TRANS | !m n p. m <= n /\ n < p ==> m < p | link to proof | natural-order-thm |
| LE_0 | !n. 0 <= n | link to proof | natural-order-thm |
| LE_ADD | !m n. m <= m + n | link to proof | natural-add-thm |
| LE_ADD2 | !m n p q. m <= p /\ n <= q ==> m + n <= p + q | link to proof | natural-add-thm |
| LE_ADDR | !m n. n <= m + n | link to proof | natural-add-thm |
| LE_ADD_LCANCEL | !m n p. m + n <= m + p <=> n <= p | link to proof | natural-add-thm |
| LE_ADD_LCANCEL_0 | !m n. m + n <= m <=> n = 0 | link to proof | natural-add-thm |
| LE_ADD_RCANCEL | !m n p. n + m <= p + m <=> n <= p | link to proof | natural-add-thm |
| LE_ADD_RCANCEL_0 | !m n. n + m <= m <=> n = 0 | link to proof | natural-add-thm |
| LE_ANTISYM | !m n. m <= n /\ n <= m <=> m = n | link to proof | natural-order-thm |
| LE_CASES | !m n. m <= n \/ n <= m | link to proof | natural-order-thm |
| LE_EXISTS | !m n. m <= n <=> (?d. n = m + d) | link to proof | natural-add-thm |
| LE_EXP | !x m n. x EXP m <= x EXP n <=> (if x = 0 then m = 0 ==> n = 0 else x = 1 \/ m <= n) | link to proof | natural-exp-thm |
| LE_INDUCT | !p. (!m. p m m) /\ (!m n. m <= n /\ p m n ==> p m (SUC n)) ==> (!m n. m <= n ==> p m n) | link to proof | natural-add-thm |
| LE_LDIV | !a b n. ~(a = 0) /\ b <= a * n ==> b DIV a <= n | link to proof | natural-div-thm |
| LE_LDIV_EQ | !a b n. ~(a = 0) ==> (b DIV a <= n <=> b < a * (n + 1)) | link to proof | natural-div-thm |
| LE_LT | !m n. m <= n <=> m < n \/ m = n | link to proof | natural-order-thm |
| LE_MAX | !m n p. m <= MAX n p <=> m <= n \/ m <= p | link to proof | natural-order-min-max-thm |
| LE_MAX1 | !m n. m <= MAX m n | link to proof | natural-order-min-max-thm |
| LE_MAX2 | !m n. n <= MAX m n | link to proof | natural-order-min-max-thm |
| LE_MIN | !m n p. m <= MIN n p <=> m <= n /\ m <= p | link to proof | natural-order-min-max-thm |
| LE_MULT2 | !m n p q. m <= n /\ p <= q ==> m * p <= n * q | link to proof | natural-mult-thm |
| LE_MULT_LCANCEL | !m n p. m * n <= m * p <=> m = 0 \/ n <= p | link to proof | natural-mult-thm |
| LE_MULT_RCANCEL | !m n p. m * p <= n * p <=> m <= n \/ p = 0 | link to proof | natural-mult-thm |
| LE_RDIV_EQ | !a b n. ~(a = 0) ==> (n <= b DIV a <=> a * n <= b) | link to proof | natural-div-thm |
| LE_REFL | !n. n <= n | link to proof | natural-order-thm |
| LE_SQUARE_REFL | !n. n <= n * n | link to proof | natural-mult-thm |
| LE_SUC | !m n. SUC m <= SUC n <=> m <= n | link to proof | natural-order-thm |
| LE_SUC_LT | !m n. SUC m <= n <=> m < n | link to proof | natural-order-thm |
| LE_TRANS | !m n p. m <= n /\ n <= p ==> m <= p | link to proof | natural-order-thm |
| LE_ZERO | !m. m <= 0 <=> m = 0 | link to proof | natural-order-def |
| LIST_OF_SET_PROPERTIES | !s. FINITE s ==> set_of_list (list_of_set s) = s /\ LENGTH (list_of_set s) = CARD s | link to proof | list-set-def |
| LTE_ADD2 | !m n p q. m < p /\ n <= q ==> m + n < p + q | link to proof | natural-add-thm |
| LTE_ANTISYM | !m n. ~(m < n /\ n <= m) | link to proof | natural-order-thm |
| LTE_CASES | !m n. m < n \/ n <= m | link to proof | natural-order-thm |
| LTE_TRANS | !m n p. m < n /\ n <= p ==> m < p | link to proof | natural-order-thm |
| LT_0 | !n. 0 < SUC n | link to proof | natural-order-thm |
| LT_ADD | !m n. m < m + n <=> 0 < n | link to proof | natural-add-thm |
| LT_ADD2 | !m n p q. m < p /\ n < q ==> m + n < p + q | link to proof | natural-add-thm |
| LT_ADDR | !m n. n < m + n <=> 0 < m | link to proof | natural-add-thm |
| LT_ADD_LCANCEL | !m n p. m + n < m + p <=> n < p | link to proof | natural-add-thm |
| LT_ADD_LCANCEL_0 | !m n. ~(m + n < m) | link to proof | natural-add-thm |
| LT_ADD_RCANCEL | !m n p. n + m < p + m <=> n < p | link to proof | natural-add-thm |
| LT_ADD_RCANCEL_0 | !m n. ~(n + m < m) | link to proof | natural-add-thm |
| LT_ANTISYM | !m n. ~(m < n /\ n < m) | link to proof | natural-order-thm |
| LT_CASES | !m n. m < n \/ n < m \/ m = n | link to proof | natural-order-thm |
| LT_EXISTS | !m n. m < n <=> (?d. n = m + SUC d) | link to proof | natural-add-thm |
| LT_EXP | !x m n. x EXP m < x EXP n <=> 2 <= x /\ m < n \/ x = 0 /\ ~(m = 0) /\ n = 0 | link to proof | natural-exp-thm |
| LT_IMP_LE | !m n. m < n ==> m <= n | link to proof | natural-order-thm |
| LT_IMP_NEQ | !m n. m < n ==> ~(m = n) | link to proof | natural-order-thm |
| LT_LDIV | !a b n. b < a * n ==> b DIV a < n | link to proof | natural-div-thm |
| LT_LDIV_EQ | !a b n. ~(a = 0) ==> (b DIV a < n <=> b < a * n) | link to proof | natural-div-thm |
| LT_LE | !m n. m < n <=> m <= n /\ ~(m = n) | link to proof | natural-order-thm |
| LT_LMULT | !m n p. ~(m = 0) /\ n < p ==> m * n < m * p | link to proof | natural-mult-thm |
| LT_MAX | !m n p. m < MAX n p <=> m < n \/ m < p | link to proof | natural-order-min-max-thm |
| LT_MIN | !m n p. m < MIN n p <=> m < n /\ m < p | link to proof | natural-order-min-max-thm |
| LT_MULT | !m n. 0 < m * n <=> 0 < m /\ 0 < n | link to proof | natural-mult-thm |
| LT_MULT2 | !m n p q. m < n /\ p < q ==> m * p < n * q | link to proof | natural-mult-thm |
| LT_MULT_LCANCEL | !m n p. m * n < m * p <=> ~(m = 0) /\ n < p | link to proof | natural-mult-thm |
| LT_MULT_RCANCEL | !m n p. m * p < n * p <=> m < n /\ ~(p = 0) | link to proof | natural-mult-thm |
| LT_NZ | !n. 0 < n <=> ~(n = 0) | link to proof | natural-order-thm |
| LT_POW2_REFL | !n. n < 2 EXP n | link to proof | natural-exp-thm |
| LT_REFL | !n. ~(n < n) | link to proof | natural-order-thm |
| LT_SUC | !m n. SUC m < SUC n <=> m < n | link to proof | natural-order-thm |
| LT_SUC_LE | !m n. m < SUC n <=> m <= n | link to proof | natural-order-thm |
| LT_TRANS | !m n p. m < n /\ n < p ==> m < p | link to proof | natural-order-thm |
| LT_ZERO | !m. ~(m < 0) | link to proof | natural-order-def |
| MAP_APPEND | !f l1 l2. MAP f (APPEND l1 l2) = APPEND (MAP f l1) (MAP f l2) | link to proof | list-map-thm |
| MAP_CONS | !f h t. MAP f (CONS h t) = CONS (f h) (MAP f t) | link to proof | list-map-def |
| MAP_EQ | !f g l. ALL (\x. f x = g x) l ==> MAP f l = MAP g l | link to proof | list-map-thm |
| MAP_EQ_NIL | !f l. MAP f l = [] <=> l = [] | link to proof | list-map-thm |
| MAP_I | MAP I = I | link to proof | list-map-thm |
| MAP_ID | !l. MAP (\x. x) l = l | link to proof | list-map-thm |
| MAP_NIL | !f. MAP f [] = [] | link to proof | list-map-def |
| MAP_REPLICATE | !f x n. MAP f (REPLICATE x n) = REPLICATE (f x) n | link to proof | list-replicate-thm |
| MAP_REVERSE | !f l. REVERSE (MAP f l) = MAP f (REVERSE l) | link to proof | list-reverse-thm |
| MAP_o | !f g l. MAP (f o g) l = MAP f (MAP g l) | link to proof | list-map-thm |
| MAP_o' | !f g. MAP f o MAP g = MAP (f o g) | link to proof | list-map-thm |
| MAX | !m n. MAX m n = (if m <= n then n else m) | link to proof | natural-order-min-max-def |
| MAX_ADD_LCANCEL | !m n p. MAX (m + n) (m + p) = m + MAX n p | link to proof | natural-add-thm |
| MAX_ADD_RCANCEL | !m n p. MAX (n + m) (p + m) = MAX n p + m | link to proof | natural-add-thm |
| MAX_COMM | !m n. MAX m n = MAX n m | link to proof | natural-order-min-max-thm |
| MAX_EQ_ZERO | !m n. MAX m n = 0 <=> m = 0 /\ n = 0 | link to proof | natural-order-min-max-thm |
| MAX_L0 | !n. MAX 0 n = n | link to proof | natural-order-min-max-thm |
| MAX_LE | !m n p. MAX n p <= m <=> n <= m /\ p <= m | link to proof | natural-order-min-max-thm |
| MAX_LT | !m n p. MAX n p < m <=> n < m /\ p < m | link to proof | natural-order-min-max-thm |
| MAX_R0 | !n. MAX n 0 = n | link to proof | natural-order-min-max-thm |
| MAX_REFL | !n. MAX n n = n | link to proof | natural-order-min-max-thm |
| MAX_SUC | !m n. MAX (SUC m) (SUC n) = SUC (MAX m n) | link to proof | natural-order-min-max-thm |
| MEASURE | !m x y. MEASURE m x y <=> m x < m y | link to proof | relation-natural-def |
| MEASURE_LE | !m a b. (!y. MEASURE m y a ==> MEASURE m y b) <=> m a <= m b | link to proof | relation-natural-thm |
| MEMBER_NOT_EMPTY | !s. (?x. x IN s) <=> ~(s = {}) | link to proof | set-thm |
| MEM_APPEND | !l1 l2 x. MEM x (APPEND l1 l2) <=> MEM x l1 \/ MEM x l2 | link to proof | list-append-thm |
| MEM_APPEND_DECOMPOSE_LEFT | !x l. MEM x l <=> (?l1 l2. ~MEM x l1 /\ l = APPEND l1 (CONS x l2)) | link to proof | list-append-thm |
| MEM_CONS | !x h t. MEM x (CONS h t) <=> x = h \/ MEM x t | link to proof | list-set-def |
| MEM_FILTER | !p l x. MEM x (FILTER p l) <=> MEM x l /\ p x | link to proof | list-filter-thm |
| MEM_LIST_OF_SET | !s. FINITE s ==> (!x. MEM x (list_of_set s) <=> x IN s) | link to proof | list-set-thm |
| MEM_MAP | !f l y. MEM y (MAP f l) <=> (?x. y = f x /\ MEM x l) | link to proof | list-map-thm |
| MEM_NIL | !x. ~MEM x [] | link to proof | list-set-def |
| MEM_REPLICATE | !x n y. MEM y (REPLICATE x n) <=> y = x /\ ~(n = 0) | link to proof | list-replicate-thm |
| MEM_REVERSE | !l x. MEM x (REVERSE l) <=> MEM x l | link to proof | list-reverse-thm |
| MEM_SET_OF_LIST | !l x. MEM x l <=> x IN set_of_list l | link to proof | list-set-thm |
| MIN | !m n. MIN m n = (if m <= n then m else n) | link to proof | natural-order-min-max-def |
| MINIMAL | !p. (?n. p n) <=> p ((minimal) p) /\ (!m. m < (minimal) p ==> ~p m) | link to proof | natural-order-min-max-def |
| MINIMAL_EQ | !p n. p n /\ (!m. m < n ==> ~p m) ==> (minimal) p = n | link to proof | natural-order-min-max-thm |
| MINIMAL_T | (minimal n. T) = 0 | link to proof | natural-order-min-max-thm |
| MIN_ADD_LCANCEL | !m n p. MIN (m + n) (m + p) = m + MIN n p | link to proof | natural-add-thm |
| MIN_ADD_RCANCEL | !m n p. MIN (n + m) (p + m) = MIN n p + m | link to proof | natural-add-thm |
| MIN_COMM | !m n. MIN m n = MIN n m | link to proof | natural-order-min-max-thm |
| MIN_L0 | !n. MIN 0 n = 0 | link to proof | natural-order-min-max-thm |
| MIN_LE | !m n p. MIN n p <= m <=> n <= m \/ p <= m | link to proof | natural-order-min-max-thm |
| MIN_LE1 | !m n. MIN m n <= m | link to proof | natural-order-min-max-thm |
| MIN_LE2 | !m n. MIN m n <= n | link to proof | natural-order-min-max-thm |
| MIN_LT | !m n p. MIN n p < m <=> n < m \/ p < m | link to proof | natural-order-min-max-thm |
| MIN_R0 | !n. MIN n 0 = 0 | link to proof | natural-order-min-max-thm |
| MIN_REFL | !n. MIN n n = n | link to proof | natural-order-min-max-thm |
| MIN_SUC | !m n. MIN (SUC m) (SUC n) = SUC (MIN m n) | link to proof | natural-order-min-max-thm |
| MOD_0 | !n. ~(n = 0) ==> 0 MOD n = 0 | link to proof | natural-div-thm |
| MOD_1 | !n. n MOD 1 = 0 | link to proof | natural-div-thm |
| MOD_ADD_MOD' | !n a b. ~(n = 0) ==> (a MOD n + b MOD n) MOD n = (a + b) MOD n | link to proof | natural-div-thm |
| MOD_EQ | !m n p q. m = n + q * p ==> m MOD p = n MOD p | link to proof | natural-div-thm |
| MOD_EQ_0 | !m n. ~(n = 0) ==> (m MOD n = 0 <=> (?q. m = q * n)) | link to proof | natural-div-thm |
| MOD_EXISTS | !m n. (?q. m = n * q) <=> (if n = 0 then m = 0 else m MOD n = 0) | link to proof | natural-div-thm |
| MOD_EXP_MOD' | !n m p. ~(n = 0) ==> (m MOD n) EXP p MOD n = m EXP p MOD n | link to proof | natural-exp-thm |
| MOD_LE | !m n. ~(n = 0) ==> m MOD n <= m | link to proof | natural-div-thm |
| MOD_LT | !m n. m < n ==> m MOD n = m | link to proof | natural-div-thm |
| MOD_MOD | !m n p. ~(n * p = 0) ==> m MOD (n * p) MOD n = m MOD n | link to proof | natural-div-thm |
| MOD_MOD_EXP_MIN | !x p m n. ~(p = 0) ==> x MOD p EXP m MOD p EXP n = x MOD p EXP MIN m n | link to proof | natural-exp-thm |
| MOD_MOD_REFL' | !n m. ~(n = 0) ==> m MOD n MOD n = m MOD n | link to proof | natural-div-thm |
| MOD_MULT | !m n. ~(m = 0) ==> (m * n) MOD m = 0 | link to proof | natural-div-thm |
| MOD_MULT2 | !m n p. ~(m * p = 0) ==> (m * n) MOD (m * p) = m * n MOD p | link to proof | natural-div-thm |
| MOD_MULT_ADD | !m n p. (m * n + p) MOD n = p MOD n | link to proof | natural-div-thm |
| MOD_MULT_LMOD' | !n m p. ~(n = 0) ==> (m MOD n * p) MOD n = (m * p) MOD n | link to proof | natural-div-thm |
| MOD_MULT_MOD2' | !n m p. ~(n = 0) ==> (m MOD n * p MOD n) MOD n = (m * p) MOD n | link to proof | natural-div-thm |
| MOD_MULT_RMOD' | !n m p. ~(n = 0) ==> (m * p MOD n) MOD n = (m * p) MOD n | link to proof | natural-div-thm |
| MOD_REFL | !n. ~(n = 0) ==> n MOD n = 0 | link to proof | natural-div-thm |
| MOD_UNIQ | !m n q r. m = q * n + r /\ r < n ==> m MOD n = r | link to proof | natural-div-thm |
| MONO_AND | !p1 p2 q1 q2. (p1 ==> p2) /\ (q1 ==> q2) ==> p1 /\ q1 ==> p2 /\ q2 | link to proof | bool-int |
| MONO_COND | !b p q r s. (p ==> q) /\ (r ==> s) ==> (if b then p else r) ==> (if b then q else s) | link to proof | bool-class |
| MONO_EXISTS | !p q. (!x. p x ==> q x) ==> (?x. p x) ==> (?x. q x) | link to proof | bool-int |
| MONO_FORALL | !p q. (!x. p x ==> q x) ==> (!x. p x) ==> (!x. q x) | link to proof | bool-int |
| MONO_IMP | !p1 p2 q1 q2. (p2 ==> p1) /\ (q1 ==> q2) ==> (p1 ==> q1) ==> p2 ==> q2 | link to proof | bool-int |
| MONO_NOT | !p q. (q ==> p) ==> ~p ==> ~q | link to proof | bool-int |
| MONO_OR | !p1 p2 q1 q2. (p1 ==> p2) /\ (q1 ==> q2) ==> p1 \/ q1 ==> p2 \/ q2 | link to proof | bool-int |
| MULTL_EQ | !m n. m * n = m <=> m = 0 \/ n = 1 | link to proof | natural-mult-thm |
| MULTR_EQ | !m n. n * m = m <=> m = 0 \/ n = 1 | link to proof | natural-mult-thm |
| MULT_0 | !m. m * 0 = 0 | link to proof | natural-mult-thm |
| MULT_1 | !m. m * 1 = m | link to proof | natural-mult-thm |
| MULT_2 | !n. 2 * n = n + n | link to proof | natural-mult-thm |
| MULT_ASSOC | !m n p. m * n * p = (m * n) * p | link to proof | natural-mult-thm |
| MULT_DIV_LE | !m n p. ~(p = 0) ==> m * n DIV p <= (m * n) DIV p | link to proof | natural-div-thm |
| MULT_EQ_0 | !m n. m * n = 0 <=> m = 0 \/ n = 0 | link to proof | natural-mult-thm |
| MULT_EQ_1 | !m n. m * n = 1 <=> m = 1 /\ n = 1 | link to proof | natural-mult-thm |
| MULT_EXP | !p m n. (m * n) EXP p = m EXP p * n EXP p | link to proof | natural-exp-thm |
| MULT_LASSOC | !m n p. m * n * p = n * m * p | link to proof | natural-mult-thm |
| MULT_SUC | !m n. m * SUC n = m + m * n | link to proof | natural-mult-thm |
| MULT_SYM | !m n. m * n = n * m | link to proof | natural-mult-thm |
| NIL_APPEND | !l. APPEND [] l = l | link to proof | list-append-def |
| NOT_ALL | !p l. ~ALL p l <=> EX (\x. ~p x) l | link to proof | list-set-thm |
| NOT_ALL_NOT | !p l. ~ALL (\x. ~p x) l <=> EX p l | link to proof | list-set-thm |
| NOT_AND_THM | !t1 t2. ~(t1 /\ t2) <=> ~t1 \/ ~t2 | link to proof | bool-class |
| NOT_CONS_NIL | !h t. ~(CONS h t = []) | link to proof | list-thm |
| NOT_DEF | (~) = (\p. p ==> F) | link to proof | bool-def |
| NOT_EQUAL_SETS | !s t. ~(s = t) <=> (?x. x IN t <=> ~(x IN s)) | link to proof | set-thm |
| NOT_EVEN | !n. ~EVEN n <=> ODD n | link to proof | natural-div-thm |
| NOT_EX | !p l. ~EX p l <=> ALL (\x. ~p x) l | link to proof | list-set-thm |
| NOT_EXISTS_THM | !p. ~(?x. p x) <=> (!x. ~p x) | link to proof | bool-class |
| NOT_EX_NOT | !p l. ~EX (\x. ~p x) l <=> ALL p l | link to proof | list-set-thm |
| NOT_FALSE_THM | ~F <=> T | link to proof | bool-int |
| NOT_FORALL_THM | !p. ~(!x. p x) <=> (?x. ~p x) | link to proof | bool-class |
| NOT_IFF_THM | !t1 t2. (~t1 <=> ~t2) <=> t1 <=> t2 | link to proof | bool-class |
| NOT_IMP | !t1 t2. ~(t1 ==> t2) <=> t1 /\ ~t2 | link to proof | bool-class |
| NOT_INSERT_EMPTY | !x s. ~(x INSERT s = {}) | link to proof | set-thm |
| NOT_IN_EMPTY | !x. ~(x IN {}) | link to proof | set-thm |
| NOT_LE | !m n. ~(m <= n) <=> n < m | link to proof | natural-order-thm |
| NOT_LT | !m n. ~(m < n) <=> n <= m | link to proof | natural-order-thm |
| NOT_NOT_THM | !t. ~ ~t <=> t | link to proof | bool-class |
| NOT_ODD | !n. ~ODD n <=> EVEN n | link to proof | natural-div-thm |
| NOT_OR_THM | !t1 t2. ~(t1 \/ t2) <=> ~t1 /\ ~t2 | link to proof | bool-class |
| NOT_PSUBSET_EMPTY | !s. ~(s PSUBSET {}) | link to proof | set-thm |
| NOT_TRUE_THM | ~T <=> F | link to proof | bool-int |
| NOT_UNIV_PSUBSET | !s. ~(UNIV PSUBSET s) | link to proof | set-thm |
| NO_NAME | !e f. ?!fn. fn _0 = e /\ (!n. fn (SUC n) = f (fn n) n) | link to proof | natural-thm |
| NO_NAME | !p. p _0 /\ (!n. p n ==> p (SUC n)) ==> (!n. p n) | link to proof | natural-def |
| NO_NAME | !m n. m < SUC n <=> m = n \/ m < n | link to proof | natural-order-def |
| NO_NAME | !m n. m <= SUC n <=> m = SUC n \/ m <= n | link to proof | natural-order-def |
| NO_NAME | !n. ~(SUC n = _0) | link to proof | natural-def |
| NULL_APPEND | !l1 l2. NULL (APPEND l1 l2) <=> NULL l1 /\ NULL l2 | link to proof | list-append-thm |
| NULL_CONS | !h t. ~NULL (CONS h t) | link to proof | list-dest-def |
| NULL_EQ_NIL | !l. NULL l <=> l = [] | link to proof | list-dest-thm |
| NULL_LENGTH | !l. LENGTH l = 0 <=> NULL l | link to proof | list-length-thm |
| NULL_MAP | !f l. NULL (MAP f l) <=> NULL l | link to proof | list-map-thm |
| NULL_NIL | NULL [] | link to proof | list-dest-def |
| NULL_REPLICATE | !x n. NULL (REPLICATE x n) <=> n = 0 | link to proof | list-replicate-thm |
| NULL_SET_OF_LIST | !l. set_of_list l = {} <=> NULL l | link to proof | list-set-thm |
| ODD_ADD | !m n. ODD (m + n) <=> ~(ODD m <=> ODD n) | link to proof | natural-div-thm |
| ODD_DOUBLE | !n. ODD (SUC (2 * n)) | link to proof | natural-div-thm |
| ODD_EXISTS | !n. ODD n <=> (?m. n = SUC (2 * m)) | link to proof | natural-div-thm |
| ODD_EXP | !m n. ODD (m EXP n) <=> ODD m \/ n = 0 | link to proof | natural-exp-thm |
| ODD_MOD | !n. ODD n <=> n MOD 2 = 1 | link to proof | natural-div-thm |
| ODD_MULT | !m n. ODD (m * n) <=> ODD m /\ ODD n | link to proof | natural-div-thm |
| ODD_SUB | !m n. n <= m ==> (ODD (m - n) <=> ~(ODD m <=> ODD n)) | link to proof | natural-div-thm |
| ODD_SUC | !n. ODD (SUC n) <=> ~ODD n | link to proof | natural-div-def |
| ODD_ZERO | ~ODD 0 | link to proof | natural-div-def |
| ONE_MULT | !m. 1 * m = m | link to proof | natural-mult-thm |
| ONE_ONE | !f. ONE_ONE f <=> (!x1 x2. f x1 = f x2 ==> x1 = x2) | link to proof | function-def |
| ONTO | !f. ONTO f <=> (!y. ?x. y = f x) | link to proof | function-def |
| OR_DEF | (\/) = (\p q. !r. (p ==> r) ==> (q ==> r) ==> r) | link to proof | bool-def |
| OR_EXISTS_THM | !p q. (?x. p x) \/ (?x. q x) <=> (?x. p x \/ q x) | link to proof | bool-int |
| OR_FALSE_THM | !t. t \/ F <=> t | link to proof | bool-int |
| OR_IMP_DISTRIB | !p q r. p \/ q ==> r <=> (p ==> r) /\ (q ==> r) | link to proof | bool-int |
| OR_TRUE_THM | !t. t \/ T <=> T | link to proof | bool-int |
| OUTL | !a. OUTL (INL a) = a | link to proof | sum-def |
| OUTR | !b. OUTR (INR b) = b | link to proof | sum-def |
| O_I | !f. f o I = f | link to proof | function-thm |
| PAIR | !x. FST x,SND x = x | link to proof | pair-thm |
| PAIRED_ETA_THM | (!f. (\(a,b). f (a,b)) = f) /\ (!f. (\(a,b,c). f (a,b,c)) = f) /\ (!f. (\(a,b,c,d). f (a,b,c,d)) = f) | link to proof | pair-thm |
| PAIR_EQ | !a b a' b'. a,b = a',b' <=> a = a' /\ b = b' | link to proof | pair-def |
| PAIR_SURJECTIVE | !x. ?a b. x = a,b | link to proof | pair-def |
| PRE | !n. PRE (SUC n) = n | link to proof | natural-dest-def |
| PSUBSET | !s t. s PSUBSET t <=> s SUBSET t /\ ~(s = t) | link to proof | set-def |
| PSUBSET_ALT | !s t. s PSUBSET t <=> s SUBSET t /\ (?a. a IN t /\ ~(a IN s)) | link to proof | set-thm |
| PSUBSET_INSERT_SUBSET | !s t. s PSUBSET t <=> (?x. ~(x IN s) /\ x INSERT s SUBSET t) | link to proof | set-thm |
| PSUBSET_IRREFL | !s. ~(s PSUBSET s) | link to proof | set-thm |
| PSUBSET_NOT_SUBSET | !s t. s PSUBSET t <=> s SUBSET t /\ ~(t SUBSET s) | link to proof | set-thm |
| PSUBSET_SUBSET | !s t. s PSUBSET t ==> s SUBSET t | link to proof | set-thm |
| PSUBSET_SUBSET_TRANS | !s t u. s PSUBSET t /\ t SUBSET u ==> s PSUBSET u | link to proof | set-thm |
| PSUBSET_TRANS | !s t u. s PSUBSET t /\ t PSUBSET u ==> s PSUBSET u | link to proof | set-thm |
| PSUBSET_UNIV | !s. s PSUBSET UNIV <=> (?x. ~(x IN s)) | link to proof | set-thm |
| REPLICATE_0 | !x. REPLICATE x 0 = [] | link to proof | list-replicate-def |
| REPLICATE_ADD | !x m n. REPLICATE x (m + n) = APPEND (REPLICATE x m) (REPLICATE x n) | link to proof | list-replicate-thm |
| REPLICATE_SUC | !x n. REPLICATE x (SUC n) = CONS x (REPLICATE x n) | link to proof | list-replicate-def |
| REST | !s. REST s = s DELETE CHOICE s | link to proof | set-def |
| REVERSE_APPEND | !l1 l2. REVERSE (APPEND l1 l2) = APPEND (REVERSE l2) (REVERSE l1) | link to proof | list-reverse-thm |
| REVERSE_CONS | !h t. REVERSE (CONS h t) = APPEND (REVERSE t) [h] | link to proof | list-reverse-def |
| REVERSE_NIL | REVERSE [] = [] | link to proof | list-reverse-def |
| REVERSE_REVERSE | !l. REVERSE (REVERSE l) = l | link to proof | list-reverse-thm |
| RIGHT_ADD_DISTRIB | !m n p. (m + n) * p = m * p + n * p | link to proof | natural-mult-thm |
| RIGHT_AND_DISTRIB | !p q r. p /\ q \/ r <=> (p \/ r) /\ (q \/ r) | link to proof | bool-int |
| RIGHT_AND_EXISTS_THM | !p q. p /\ (?x. q x) <=> (?x. p /\ q x) | link to proof | bool-int |
| RIGHT_AND_FORALL_THM | !p q. p /\ (!x. q x) <=> (!x. p /\ q x) | link to proof | bool-int |
| RIGHT_EXISTS_AND_THM | !p q. (?x. p /\ q x) <=> p /\ (?x. q x) | link to proof | bool-int |
| RIGHT_EXISTS_IMP_THM | !p q. (?x. p ==> q x) <=> p ==> (?x. q x) | link to proof | bool-class |
| RIGHT_FORALL_IMP_THM | !p q. (!x. p ==> q x) <=> p ==> (!x. q x) | link to proof | bool-int |
| RIGHT_FORALL_OR_THM | !p q. (!x. p \/ q x) <=> p \/ (!x. q x) | link to proof | bool-class |
| RIGHT_IMP_EXISTS_THM | !p q. p ==> (?x. q x) <=> (?x. p ==> q x) | link to proof | bool-class |
| RIGHT_IMP_FORALL_THM | !p q. p ==> (!x. q x) <=> (!x. p ==> q x) | link to proof | bool-int |
| RIGHT_INTER_DISTRIB | !s t u. s INTER t UNION u = (s UNION u) INTER (t UNION u) | link to proof | set-thm |
| RIGHT_INTER_SUBSET | !s t. t INTER s SUBSET s | link to proof | set-thm |
| RIGHT_OR_DISTRIB | !p q r. (p \/ q) /\ r <=> p /\ r \/ q /\ r | link to proof | bool-int |
| RIGHT_OR_EXISTS_THM | !p q. p \/ (?x. q x) <=> (?x. p \/ q x) | link to proof | bool-int |
| RIGHT_OR_FORALL_THM | !p q. p \/ (!x. q x) <=> (!x. p \/ q x) | link to proof | bool-class |
| RIGHT_SUB_DISTRIB | !m n p. n <= m ==> (m - n) * p = m * p - n * p | link to proof | natural-mult-thm |
| RIGHT_UNION_DISTRIB | !s t u. (s UNION t) INTER u = s INTER u UNION t INTER u | link to proof | set-thm |
| RIGHT_UNION_INTERS | !s t. INTERS s UNION t = INTERS {x UNION t | x IN s} | link to proof | set-thm |
| SELECT_AX | !p x. p x ==> p ((@) p) | link to proof | axiom-choice |
| SELECT_REFL | !x. (@y. y = x) = x | link to proof | bool-class |
| SELECT_UNIQUE | !p x. (!y. p y <=> y = x) ==> (@) p = x | link to proof | bool-class |
| SET_CASES | !s. s = {} \/ (?x t. s = x INSERT t /\ ~(x IN t)) | link to proof | set-thm |
| SET_OF_LIST_APPEND | !l1 l2. set_of_list (APPEND l1 l2) = set_of_list l1 UNION set_of_list l2 | link to proof | list-append-thm |
| SET_OF_LIST_EQ_EMPTY | !l. set_of_list l = {} <=> l = [] | link to proof | list-set-thm |
| SET_OF_LIST_FILTER | !p l. set_of_list (FILTER p l) = set_of_list l DIFF {x | ~p x} | link to proof | list-filter-thm |
| SET_OF_LIST_MAP | !f l. set_of_list (MAP f l) = IMAGE f (set_of_list l) | link to proof | list-map-thm |
| SET_OF_LIST_OF_SET | !s. FINITE s ==> set_of_list (list_of_set s) = s | link to proof | list-set-thm |
| SET_OF_LIST_REPLICATE | !x n. set_of_list (REPLICATE x n) = (if n = 0 then {} else {x}) | link to proof | list-replicate-thm |
| SET_OF_LIST_REVERSE | !l. set_of_list (REVERSE l) = set_of_list l | link to proof | list-reverse-thm |
| SET_PAIR_THM | !p. {x | p x} = {a,b | p (a,b)} | link to proof | set-thm |
| SET_PROVE_CASES | !p. p {} /\ (!a s. ~(a IN s) ==> p (a INSERT s)) ==> (!s. p s) | link to proof | set-thm |
| SIMPLE_IMAGE | !f s. {f x | x IN s} = IMAGE f s | link to proof | set-thm |
| SIMPLE_IMAGE_GEN | !p f. {f x | p x} = IMAGE f {x | p x} | link to proof | set-thm |
| SING | !s. SING s <=> (?x. s = {x}) | link to proof | set-def |
| SING_DISJOINT | !x s. DISJOINT {x} s <=> ~(x IN s) | link to proof | set-thm |
| SING_GSPEC1 | !a. {x | x = a} = {a} | link to proof | set-thm |
| SING_SUBSET | !s x. {x} SUBSET s <=> x IN s | link to proof | set-thm |
| SKOLEM_THM | !r. (!x. ?y. r x y) <=> (?f. !x. r x (f x)) | link to proof | bool-class |
| SKOLEM_THM_GEN | !p r. (!x. p x ==> (?y. r x y)) <=> (?f. !x. p x ==> r x (f x)) | link to proof | bool-class |
| SKX_EQ_I | !x. S K x = I | link to proof | function-thm |
| SND | !a b. SND (a,b) = b | link to proof | pair-def |
| SUB1 | !n. ~(n = 0) ==> PRE n = n - 1 | link to proof | natural-add-sub-thm |
| SUBSET | !s t. s SUBSET t <=> (!x. x IN s ==> x IN t) | link to proof | set-def |
| SUBSET_ANTISYM | !s t. s SUBSET t /\ t SUBSET s ==> s = t | link to proof | set-thm |
| SUBSET_ANTISYM_EQ | !s t. s SUBSET t /\ t SUBSET s <=> s = t | link to proof | set-thm |
| SUBSET_CARD_EQ | !s t. FINITE t /\ s SUBSET t ==> (CARD s = CARD t <=> s = t) | link to proof | set-size-thm |
| SUBSET_DELETE | !x s t. s SUBSET t DELETE x <=> s SUBSET t /\ ~(x IN s) | link to proof | set-thm |
| SUBSET_DIFF | !s t u. s SUBSET t DIFF u <=> s SUBSET t /\ DISJOINT s u | link to proof | set-thm |
| SUBSET_DIFF_UNION | !s t u. s SUBSET t UNION u <=> s DIFF t SUBSET u | link to proof | set-thm |
| SUBSET_EMPTY | !s. s SUBSET {} <=> s = {} | link to proof | set-thm |
| SUBSET_IMAGE | !f s t. s SUBSET IMAGE f t <=> (?u. u SUBSET t /\ s = IMAGE f u) | link to proof | set-thm |
| 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) | link to proof | set-thm |
| SUBSET_INSERT | !x s. ~(x IN s) ==> (!t. s SUBSET x INSERT t <=> s SUBSET t) | link to proof | set-thm |
| SUBSET_INSERT_DELETE | !x s t. s SUBSET x INSERT t <=> s DELETE x SUBSET t | link to proof | set-thm |
| SUBSET_INSERT_IMP | !s t x. s SUBSET t ==> s SUBSET x INSERT t | link to proof | set-thm |
| SUBSET_INTER | !s t u. s SUBSET t INTER u <=> s SUBSET t /\ s SUBSET u | link to proof | set-thm |
| SUBSET_INTERS | !t u. t SUBSET INTERS u <=> (!s. s IN u ==> t SUBSET s) | link to proof | set-thm |
| SUBSET_INTER_ABSORPTION | !s t. s SUBSET t <=> s INTER t = s | link to proof | set-thm |
| SUBSET_LEFT_UNION | !s t. s SUBSET s UNION t | link to proof | set-thm |
| SUBSET_PSUBSET_TRANS | !s t u. s SUBSET t /\ t PSUBSET u ==> s PSUBSET u | link to proof | set-thm |
| SUBSET_REFL | !s. s SUBSET s | link to proof | set-thm |
| SUBSET_RESTRICT | !s p. {x | x IN s /\ p x} SUBSET s | link to proof | set-thm |
| SUBSET_RIGHT_UNION | !s t. s SUBSET t UNION s | link to proof | set-thm |
| SUBSET_SING | !s x. s SUBSET {x} <=> s = {} \/ s = {x} | link to proof | set-thm |
| SUBSET_TRANS | !s t u. s SUBSET t /\ t SUBSET u ==> s SUBSET u | link to proof | set-thm |
| SUBSET_UNIONS | !f g. f SUBSET g ==> UNIONS f SUBSET UNIONS g | link to proof | set-thm |
| SUBSET_UNION_ABSORPTION | !s t. s SUBSET t <=> s UNION t = t | link to proof | set-thm |
| SUBSET_UNION_DIFF | !s t u. s SUBSET t UNION u <=> s DIFF u SUBSET t | link to proof | set-thm |
| SUBSET_UNIV | !s. s SUBSET UNIV | link to proof | set-thm |
| SUB_0 | !m. m - 0 = m | link to proof | natural-add-sub-thm |
| SUB_ADD | !m n. n <= m ==> m - n + n = m | link to proof | natural-add-sub-thm |
| SUB_ADD2 | !m n. n <= m ==> n + m - n = m | link to proof | natural-add-sub-thm |
| SUB_ADD_LCANCEL | !m n p. p <= n ==> (m + n) - (m + p) = n - p | link to proof | natural-add-sub-thm |
| SUB_ADD_RCANCEL | !m n p. n <= m ==> (m + p) - (n + p) = m - n | link to proof | natural-add-sub-thm |
| SUB_EQ_0 | !m n. n <= m ==> (m - n = 0 <=> m = n) | link to proof | natural-add-sub-thm |
| SUB_PRESUC | !m n. n <= m ==> PRE (SUC m - n) = m - n | link to proof | natural-add-sub-thm |
| SUB_REFL | !n. n - n = 0 | link to proof | natural-add-sub-thm |
| SUB_SUB | !m n p. n + p <= m ==> m - (n + p) = m - n - p | link to proof | natural-add-sub-thm |
| SUB_SUC | !m n. n <= m ==> SUC m - SUC n = m - n | link to proof | natural-add-sub-thm |
| SUB_SUC_CANCEL | !m n. n < m ==> SUC (m - SUC n) = m - n | link to proof | natural-add-sub-thm |
| SUB_SUC_PRE | !m n. n < m ==> m - SUC n = PRE (m - n) | link to proof | natural-add-sub-thm |
| SUC_ADD | !m n. SUC m + n = SUC (m + n) | link to proof | natural-add-def |
| SUC_INJ | !m n. SUC m = SUC n <=> m = n | link to proof | natural-def |
| SUC_INJ_MOD | !n a b. ~(n = 0) ==> (SUC a MOD n = SUC b MOD n <=> a MOD n = b MOD n) | link to proof | natural-div-thm |
| SUC_LE | !n. n <= SUC n | link to proof | natural-order-thm |
| SUC_LT | !n. n < SUC n | link to proof | natural-order-thm |
| SUC_MULT | !m n. SUC m * n = m * n + n | link to proof | natural-mult-def |
| SUC_SUB | !m n. n <= m ==> SUC (m - n) = SUC m - n | link to proof | natural-add-sub-thm |
| SUC_SUB1 | !n. SUC n - 1 = n | link to proof | natural-add-sub-thm |
| SURJ | !s t. SURJ s t = {f | (!x. x IN s ==> f x IN t) /\ (!x. x IN t ==> (?y. y IN s /\ f y = x))} | link to proof | set-def |
| SURJECTIVE_EXISTS_THM | !f. (!y. ?x. f x = y) <=> (!p. (?x. p (f x)) <=> (?y. p y)) | link to proof | function-thm |
| SURJECTIVE_FORALL_THM | !f. (!y. ?x. f x = y) <=> (!p. (!x. p (f x)) <=> (!y. p y)) | link to proof | function-thm |
| 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)) | link to proof | set-size-thm |
| 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)) | link to proof | set-size-thm |
| SURJECTIVE_IMAGE | !f. (!t. ?s. IMAGE f s = t) <=> (!y. ?x. f x = y) | link to proof | set-thm |
| 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 = t | link to proof | set-thm |
| SURJECTIVE_IMAGE_THM | !f. (!y. ?x. f x = y) <=> (!p. IMAGE f {x | p (f x)} = {x | p x}) | link to proof | set-thm |
| SURJECTIVE_MAP | !f. (!ys. ?xs. MAP f xs = ys) <=> (!y. ?x. f x = y) | link to proof | list-map-thm |
| 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)) | link to proof | set-thm |
| 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) | link to proof | set-thm |
| SURJECTIVE_RIGHT_INVERSE | !f. (!y. ?x. f x = y) <=> (?g. !y. f (g y) = y) | link to proof | set-thm |
| SWAP_EXISTS_THM | !p. (?x y. p x y) <=> (?y x. p x y) | link to proof | bool-int |
| SWAP_FORALL_THM | !p. (!x y. p x y) <=> (!y x. p x y) | link to proof | bool-int |
| S_DEF | S = (\f g x. f x (g x)) | link to proof | function-def |
| S_THM | !f g x. S f g x = f x (g x) | link to proof | function-thm |
| TL | !h t. TL (CONS h t) = t | link to proof | list-dest-def |
| TRIV_AND_EXISTS_THM | !p q. (?x. p) /\ (?x. q) <=> (?x. p /\ q) | link to proof | bool-int |
| TRIV_EXISTS_AND_THM | !p q. (?x. p /\ q) <=> (?x. p) /\ (?x. q) | link to proof | bool-int |
| TRIV_EXISTS_IMP_THM | !p q. (?x. p ==> q) <=> (!x. p) ==> (?x. q) | link to proof | bool-int |
| TRIV_FORALL_IMP_THM | !p q. (!x. p ==> q) <=> (?x. p) ==> (!x. q) | link to proof | bool-int |
| TRIV_FORALL_OR_THM | !p q. (!x. p \/ q) <=> (!x. p) \/ (!x. q) | link to proof | bool-int |
| TRIV_OR_FORALL_THM | !p q. (!x. p) \/ (!x. q) <=> (!x. p \/ q) | link to proof | bool-int |
| TRUE_AND_THM | !t. T /\ t <=> t | link to proof | bool-int |
| TRUE_EQ_THM | !t. (T <=> t) <=> t | link to proof | bool-int |
| TRUE_IMP_THM | !t. T ==> t <=> t | link to proof | bool-int |
| TRUE_OR_THM | !t. T \/ t <=> T | link to proof | bool-int |
| TRUTH | T | link to proof | bool-int |
| T_DEF | T <=> (\p. p) = (\p. p) | link to proof | bool-def |
| UNION | !s t. s UNION t = {x | x IN s \/ x IN t} | link to proof | set-def |
| UNIONS | !s. UNIONS s = {x | ?u. u IN s /\ x IN u} | link to proof | set-def |
| UNIONS_0 | UNIONS {} = {} | link to proof | set-thm |
| UNIONS_1 | !s. UNIONS {s} = s | link to proof | set-thm |
| UNIONS_2 | !s t. UNIONS {s, t} = s UNION t | link to proof | set-thm |
| UNIONS_DIFF | !s t. UNIONS s DIFF t = UNIONS {x DIFF t | x IN s} | link to proof | set-thm |
| UNIONS_GSPEC1 | !p f. UNIONS {f x | p x} = {a | ?x. p x /\ a IN f x} | link to proof | set-thm |
| UNIONS_GSPEC2 | !p f. UNIONS {f x y | p x y} = {a | ?x y. p x y /\ a IN f x y} | link to proof | set-thm |
| 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} | link to proof | set-thm |
| UNIONS_IMAGE | !f s. UNIONS (IMAGE f s) = {y | ?x. x IN s /\ y IN f x} | link to proof | set-thm |
| UNIONS_INSERT | !s u. UNIONS (s INSERT u) = s UNION UNIONS u | link to proof | set-thm |
| UNIONS_INTER | !s t. UNIONS s INTER t = UNIONS {x INTER t | x IN s} | link to proof | set-thm |
| UNIONS_INTERS | !s. UNIONS s = UNIV DIFF INTERS {UNIV DIFF t | t IN s} | link to proof | set-thm |
| UNIONS_MAXIMAL_SETS | !f. FINITE f ==> UNIONS {t | t IN f /\ (!u. u IN f ==> ~(t PSUBSET u))} = UNIONS f | link to proof | set-finite-thm |
| UNIONS_MONO | !s t. (!x. x IN s ==> (?y. y IN t /\ x SUBSET y)) ==> UNIONS s SUBSET UNIONS t | link to proof | set-thm |
| UNIONS_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} | link to proof | set-thm |
| UNIONS_SUBSET | !f t. UNIONS f SUBSET t <=> (!s. s IN f ==> s SUBSET t) | link to proof | set-thm |
| UNIONS_UNION | !s t. UNIONS (s UNION t) = UNIONS s UNION UNIONS t | link to proof | set-thm |
| UNION_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 q | link to proof | set-thm |
| UNION_ASSOC | !s t u. (s UNION t) UNION u = s UNION t UNION u | link to proof | set-thm |
| UNION_COMM | !s t. s UNION t = t UNION s | link to proof | set-thm |
| UNION_DIFF_CANCEL | !s t. t UNION s DIFF t = t UNION s | link to proof | set-thm |
| UNION_DIFF_SUBSET | !s t. s UNION t DIFF s = t <=> s SUBSET t | link to proof | set-thm |
| UNION_IDEMPOT | !s. s UNION s = s | link to proof | set-thm |
| UNION_LEFT_EMPTY | !s. {} UNION s = s | link to proof | set-thm |
| UNION_LEFT_UNIV | !s. UNIV UNION s = UNIV | link to proof | set-thm |
| UNION_RIGHT_EMPTY | !s. s UNION {} = s | link to proof | set-thm |
| UNION_RIGHT_UNIV | !s. s UNION UNIV = UNIV | link to proof | set-thm |
| UNION_SUBSET | !s t u. s UNION t SUBSET u <=> s SUBSET u /\ t SUBSET u | link to proof | set-thm |
| UNIQUE_SKOLEM_ALT | !p. (!x. ?!y. p x y) <=> (?f. !x y. p x y <=> f x = y) | link to proof | bool-class |
| UNIQUE_SKOLEM_THM | !p. (!x. ?!y. p x y) <=> (?!f. !x. p x (f x)) | link to proof | bool-class |
| UNIV | UNIV = {x | T} | link to proof | set-def |
| UNIV_GSPEC | GSPEC (\x. T) = UNIV | link to proof | set-thm |
| UNIV_INTERS | !s. INTERS s = UNIV <=> (!t. t IN s ==> t = UNIV) | link to proof | set-thm |
| UNIV_NOT_EMPTY | ~(UNIV = {}) | link to proof | set-thm |
| UNIV_SUBSET | !s. UNIV SUBSET s <=> s = UNIV | link to proof | set-thm |
| UNWIND_THM1 | !p a. (?x. a = x /\ p x) <=> p a | link to proof | bool-int |
| UNWIND_THM2 | !p a. (?x. x = a /\ p x) <=> p a | link to proof | bool-int |
| WF | !r. WF r <=> (!p. (?x. p x) ==> (?x. p x /\ (!y. r y x ==> ~p y))) | link to proof | relation-well-founded-def |
| WF_DCHAIN | !r. WF r <=> ~(?f. !n. r (f (SUC n)) (f n)) | link to proof | relation-natural-thm |
| WF_EQ | !r. WF r <=> (!p. (?x. p x) <=> (?x. p x /\ (!y. r y x ==> ~p y))) | link to proof | relation-well-founded-thm |
| WF_EREC | !r. WF r ==> (!h. (!f g x. (!z. r z x ==> f z = g z) ==> h f x = h g x) ==> (?!f. !x. f x = h f x)) | link to proof | relation-natural-thm |
| WF_FINITE | !r. (!x. ~r x x) /\ (!x y z. r x y /\ r y z ==> r x z) /\ (!x. FINITE {y | r y x}) ==> WF r | link to proof | relation-natural-thm |
| WF_IND | !r. WF r <=> (!p. (!x. (!y. r y x ==> p y) ==> p x) ==> (!x. p x)) | link to proof | relation-well-founded-thm |
| WF_LEX | !r s. WF r /\ WF s ==> WF (\(x1,y1) (x2,y2). r x1 x2 \/ x1 = x2 /\ s y1 y2) | link to proof | relation-well-founded-thm |
| WF_LEX_DEPENDENT | !r s. WF r /\ (!a. WF (s a)) ==> WF (\(x1,y1) (x2,y2). r x1 x2 \/ x1 = x2 /\ s x1 y1 y2) | link to proof | relation-well-founded-thm |
| WF_MEASURE | !m. WF (MEASURE m) | link to proof | relation-natural-thm |
| WF_MEASURE_GEN | !r m. WF r ==> WF (\x y. r (m x) (m y)) | link to proof | relation-well-founded-thm |
| WF_POINTWISE | !r s. WF r /\ WF s ==> WF (\(x1,y1) (x2,y2). r x1 x2 /\ s y1 y2) | link to proof | relation-well-founded-thm |
| WF_REC | !r. WF r ==> (!h. (!f g x. (!z. r z x ==> f z = g z) ==> h f x = h g x) ==> (?f. !x. f x = h f x)) | link to proof | relation-natural-thm |
| WF_REC_INVARIANT | !r. WF r ==> (!h s. (!f g x. (!z. r z x ==> f z = g z /\ s z (f z)) ==> h f x = h g x /\ s x (h f x)) ==> (?f. !x. f x = h f x)) | link to proof | relation-natural-thm |
| WF_REC_TAIL | !p g h. ?f. !x. f x = (if p x then f (g x) else h x) | link to proof | relation-natural-thm |
| WF_REC_WF | !r. (!h. (!f g x. (!z. r z x ==> f z = g z) ==> h f x = h g x) ==> (?f. !x. f x = h f x)) ==> WF r | link to proof | relation-natural-thm |
| WF_UREC | !r. WF r ==> (!h. (!f g x. (!z. r z x ==> f z = g z) ==> h f x = h g x) ==> (!f g. (!x. f x = h f x) /\ (!x. g x = h g x) ==> f = g)) | link to proof | relation-natural-thm |
| WF_UREC_WF | !r. (!h. (!f g x. (!z. r z x ==> (f z <=> g z)) ==> (h f x <=> h g x)) ==> (!f g. (!x. f x <=> h f x) /\ (!x. g x <=> h g x) ==> f = g)) ==> WF r | link to proof | relation-natural-thm |
| WF_num | WF (<) | link to proof | relation-natural-thm |
| WLOG_RELATION | !r p. (!x y. p x y ==> p y x) /\ (!x y. r x y \/ r y x) /\ (!x y. r x y ==> p x y) ==> (!x y. p x y) | link to proof | bool-int |
| W_DEF | W = (\f x. f x x) | link to proof | function-def |
| W_THM | !f x. W f x = f x x | link to proof | function-thm |
| ZERO_ADD | !n. 0 + n = n | link to proof | natural-add-def |
| ZERO_MULT | !n. 0 * n = 0 | link to proof | natural-mult-def |
| all_nth | !p l. ALL p l <=> (!i. i < LENGTH l ==> p (nth l i)) | link to proof | list-nth-thm |
| big_interr | !s x y. big_interr s x y <=> (!r. r IN s ==> r x y) | link to proof | relation-thm |
| big_interr_def | !s. big_interr s = set_to_relation (INTERS (IMAGE relation_to_set s)) | link to proof | relation-def |
| big_unionr | !s x y. big_unionr s x y <=> (?r. r IN s /\ r x y) | link to proof | relation-thm |
| big_unionr_def | !s. big_unionr s = set_to_relation (UNIONS (IMAGE relation_to_set s)) | link to proof | relation-def |
| bool_INDUCT | !p. p F /\ p T ==> (!x. p x) | link to proof | bool-class |
| bool_RECURSION | !a b. ?f. f F = a /\ f T = b | link to proof | bool-class |
| case_list_cons | !b f h t. case_list b f (CONS h t) = f h t | link to proof | list-dest-def |
| case_list_id | !l. case_list [] CONS l = l | link to proof | list-dest-thm |
| case_list_nil | !b f. case_list b f [] = b | link to proof | list-dest-def |
| case_option_id | !x. case_option NONE SOME x = x | link to proof | option-dest-thm |
| case_option_none | !b f. case_option b f NONE = b | link to proof | option-dest-def |
| case_option_some | !b f a. case_option b f (SOME a) = f a | link to proof | option-dest-def |
| case_sum_id | !x. case_sum INL INR x = x | link to proof | sum-thm |
| case_sum_left | !f g a. case_sum f g (INL a) = f a | link to proof | sum-def |
| case_sum_right | !f g b. case_sum f g (INR b) = g b | link to proof | sum-def |
| concat_cons | !h t. concat (CONS h t) = APPEND h (concat t) | link to proof | list-append-def |
| concat_nil | concat [] = [] | link to proof | list-append-def |
| dist | !m n. dist m n = (if m <= n then n - m else m - n) | link to proof | natural-distance-def |
| div_induction | !k p. 1 < k /\ p 0 /\ (!n. ~(n = 0) /\ p (n DIV k) ==> p n) ==> (!n. p n) | link to proof | natural-div-thm |
| drop_add | !m n l. m + n <= LENGTH l ==> drop (m + n) l = drop m (drop n l) | link to proof | list-take-drop-thm |
| drop_append | !l1 l2. drop (LENGTH l1) (APPEND l1 l2) = l2 | link to proof | list-take-drop-thm |
| drop_length | !l. drop (LENGTH l) l = [] | link to proof | list-take-drop-thm |
| drop_replicate | !m n x. m <= n ==> drop m (REPLICATE x n) = REPLICATE x (n - m) | link to proof | list-take-drop-thm |
| drop_suc | !n h t. n <= LENGTH t ==> drop (SUC n) (CONS h t) = drop n t | link to proof | list-take-drop-def |
| drop_zero | !l. drop 0 l = l | link to proof | list-take-drop-def |
| emptyr | !x y. ~emptyr x y | link to proof | relation-thm |
| emptyr_def | emptyr = set_to_relation {} | link to proof | relation-def |
| ex_nth | !p l. EX p l <=> (?i. i < LENGTH l /\ p (nth l i)) | link to proof | list-nth-thm |
| exp_log_le | !k n. 1 < k /\ ~(n = 0) ==> k EXP log k n <= n | link to proof | natural-exp-log-thm |
| foldl_append | !f b l1 l2. foldl f b (APPEND l1 l2) = foldl f (foldl f b l1) l2 | link to proof | list-fold-thm |
| foldl_append_assoc | !g f b l1 l2. (!s. g s b = s) /\ (!s1 s2 x. g s1 (f s2 x) = f (g s1 s2) x) ==> foldl f b (APPEND l1 l2) = g (foldl f b l1) (foldl f b l2) | link to proof | list-fold-thm |
| foldl_cons | !f b h t. foldl f b (CONS h t) = foldl f (f b h) t | link to proof | list-fold-thm |
| foldl_def | !f b l. foldl f b l = foldr (C f) b (REVERSE l) | link to proof | list-fold-def |
| foldl_nil | !f b. foldl f b [] = b | link to proof | list-fold-thm |
| foldl_reverse | !f b l. foldl f b (REVERSE l) = foldr (C f) b l | link to proof | list-fold-thm |
| foldl_suc | !l k. foldl (\n x. SUC n) k l = LENGTH l + k | link to proof | list-fold-thm |
| foldl_with_cons | !l1 l2. foldl (C CONS) l2 l1 = APPEND (REVERSE l1) l2 | link to proof | list-fold-thm |
| foldl_with_cons_nil | !l. foldl (C CONS) [] l = REVERSE l | link to proof | list-fold-thm |
| foldr_append | !f b l1 l2. foldr f b (APPEND l1 l2) = foldr f (foldr f b l2) l1 | link to proof | list-fold-thm |
| foldr_append_assoc | !g f b l1 l2. (!s. g b s = s) /\ (!x s1 s2. g (f x s1) s2 = f x (g s1 s2)) ==> foldr f b (APPEND l1 l2) = g (foldr f b l1) (foldr f b l2) | link to proof | list-fold-thm |
| foldr_cons | !f b h t. foldr f b (CONS h t) = f h (foldr f b t) | link to proof | list-fold-def |
| foldr_nil | !f b. foldr f b [] = b | link to proof | list-fold-def |
| foldr_reverse | !f b l. foldr f b (REVERSE l) = foldl (C f) b l | link to proof | list-fold-thm |
| foldr_suc | !l k. foldr (\x n. SUC n) k l = LENGTH l + k | link to proof | list-fold-thm |
| foldr_with_cons | !l1 l2. foldr CONS l2 l1 = APPEND l1 l2 | link to proof | list-fold-thm |
| foldr_with_cons_nil | !l. foldr CONS [] l = l | link to proof | list-fold-thm |
| funpow_I | !n. funpow I n = I | link to proof | natural-funpow-thm |
| funpow_add | !f m n. funpow f (m + n) = funpow f m o funpow f n | link to proof | natural-funpow-thm |
| funpow_mult | !f m n. funpow f (m * n) = funpow (funpow f m) n | link to proof | natural-funpow-thm |
| funpow_one | !f. funpow f 1 = f | link to proof | natural-funpow-thm |
| funpow_suc | !f n. funpow f (SUC n) = f o funpow f n | link to proof | natural-funpow-def |
| funpow_suc' | !f n. funpow f (SUC n) = funpow f n o f | link to proof | natural-funpow-thm |
| funpow_suc_x | !f n x. funpow f (SUC n) x = f (funpow f n x) | link to proof | natural-funpow-thm |
| funpow_suc_x' | !f n x. funpow f (SUC n) x = funpow f n (f x) | link to proof | natural-funpow-thm |
| funpow_zero | !f. funpow f 0 = I | link to proof | natural-funpow-def |
| inl_inj | !a b. INL a = INL b <=> a = b | link to proof | sum-thm |
| inr_inj | !a b. INR a = INR b <=> a = b | link to proof | sum-thm |
| interr | !r s x y. interr r s x y <=> r x y /\ s x y | link to proof | relation-thm |
| interr_def | !r s. interr r s = set_to_relation (relation_to_set r INTER relation_to_set s) | link to proof | relation-def |
| interval_suc | !m n. interval m (SUC n) = CONS m (interval (SUC m) n) | link to proof | list-interval-def |
| interval_zero | !m. interval m 0 = [] | link to proof | list-interval-def |
| irreflexive | !r x. irreflexive r ==> ~r x x | link to proof | relation-thm |
| irreflexive_def | !r. irreflexive r <=> (!x. ~r x x) | link to proof | relation-def |
| irreflexive_emptyr | irreflexive emptyr | link to proof | relation-thm |
| irreflexive_successor | irreflexive successor | link to proof | relation-natural-thm |
| is_none_none | is_none NONE | link to proof | option-dest-def |
| is_none_some | !a. ~is_none (SOME a) | link to proof | option-dest-def |
| is_some_none | ~is_some NONE | link to proof | option-dest-def |
| is_some_some | !a. is_some (SOME a) | link to proof | option-dest-def |
| large_exp | !k n. 1 < k ==> (?m. n <= k EXP m) | link to proof | natural-exp-thm |
| last_nth | !l. ~NULL l ==> nth l (LENGTH l - 1) = LAST l | link to proof | list-nth-thm |
| length_drop | !n l. n <= LENGTH l ==> LENGTH (drop n l) = LENGTH l - n | link to proof | list-take-drop-thm |
| length_drop_add | !n l. n <= LENGTH l ==> n + LENGTH (drop n l) = LENGTH l | link to proof | list-take-drop-thm |
| length_interval | !m n. LENGTH (interval m n) = n | link to proof | list-interval-thm |
| length_nub | !l. LENGTH (nub l) <= LENGTH l | link to proof | list-nub-thm |
| length_setify | !l. LENGTH (setify l) <= LENGTH l | link to proof | list-nub-thm |
| length_take | !n l. n <= LENGTH l ==> LENGTH (take n l) = n | link to proof | list-take-drop-thm |
| length_zip | !l1 l2 n. LENGTH l1 = n /\ LENGTH l2 = n ==> LENGTH (zip l1 l2) = n | link to proof | list-zip-thm |
| length_zipwith | !f l1 l2 n. LENGTH l1 = n /\ LENGTH l2 = n ==> LENGTH (zipwith f l1 l2) = n | link to proof | list-zip-thm |
| list_INDUCT | !p. p [] /\ (!h t. p t ==> p (CONS h t)) ==> (!l. p l) | link to proof | list-def |
| list_RECURSION | !b f. ?fn. fn [] = b /\ (!h t. fn (CONS h t) = f h t (fn t)) | link to proof | list-def |
| list_cases | !l. l = [] \/ (?h t. l = CONS h t) | link to proof | list-thm |
| log_def | !k n m. k EXP m <= n /\ n < k EXP (m + 1) ==> log k n = m | link to proof | natural-exp-log-def |
| log_eq | !k n m. 1 < k /\ ~(n = 0) ==> (log k n = m <=> k EXP m <= n /\ n < k EXP (m + 1)) | link to proof | natural-exp-log-thm |
| log_eq_zero | !k n. 1 < k /\ ~(n = 0) ==> (log k n = 0 <=> n < k) | link to proof | natural-exp-log-thm |
| log_eq_zero_imp | !k n. 1 < k /\ ~(n = 0) /\ n < k ==> log k n = 0 | link to proof | natural-exp-log-thm |
| log_lower_bound | !k m n. 1 < k /\ k EXP m <= n ==> m <= log k n | link to proof | natural-exp-log-thm |
| log_max | !k m. 1 < k ==> log k (k EXP (m + 1) - 1) = m | link to proof | natural-exp-log-thm |
| log_min | !k m. 1 < k ==> log k (k EXP m) = m | link to proof | natural-exp-log-thm |
| log_mono | !k n1 n2. 1 < k /\ ~(n1 = 0) /\ n1 <= n2 ==> log k n1 <= log k n2 | link to proof | natural-exp-log-thm |
| log_mult_upper_bound | !k n1 n2. 1 < k /\ ~(n1 = 0) /\ ~(n2 = 0) ==> log k (n1 * n2) <= log k n1 + log k n2 + 1 | link to proof | natural-exp-log-thm |
| log_one | !k. 1 < k ==> log k 1 = 0 | link to proof | natural-exp-log-thm |
| log_recursion | !k n. 1 < k /\ ~(n = 0) ==> log k n = (if n < k then 0 else log k (n DIV k) + 1) | link to proof | natural-exp-log-thm |
| log_upper_bound | !k m n. 1 < k /\ ~(n = 0) /\ n < k EXP m ==> log k n < m | link to proof | natural-exp-log-thm |
| lt_exp_log | !k n. 1 < k /\ ~(n = 0) ==> n < k EXP (log k n + 1) | link to proof | natural-exp-log-thm |
| map_option_id | map_option I = I | link to proof | option-map-thm |
| map_option_none | !f. map_option f NONE = NONE | link to proof | option-map-def |
| map_option_o | !f g x. map_option (f o g) x = map_option f (map_option g x) | link to proof | option-map-thm |
| map_option_o' | !f g. map_option f o map_option g = map_option (f o g) | link to proof | option-map-thm |
| map_option_some | !f a. map_option f (SOME a) = SOME (f a) | link to proof | option-map-def |
| map_suc_interval | !m n. MAP SUC (interval m n) = interval (SUC m) n | link to proof | list-interval-thm |
| mem_nth | !l x. MEM x l <=> (?i. i < LENGTH l /\ x = nth l i) | link to proof | list-nth-thm |
| mem_nub | !l x. MEM x (nub l) <=> MEM x l | link to proof | list-nub-thm |
| mem_setify | !l x. MEM x (setify l) <=> MEM x l | link to proof | list-nub-thm |
| nth_append | !l1 l2 k. k < LENGTH l1 + LENGTH l2 ==> nth (APPEND l1 l2) k = (if k < LENGTH l1 then nth l1 k else nth l2 (k - LENGTH l1)) | link to proof | list-nth-thm |
| nth_drop | !n l i. n + i < LENGTH l ==> nth (drop n l) i = nth l (n + i) | link to proof | list-take-drop-thm |
| nth_eq | !l1 l2. LENGTH l1 = LENGTH l2 /\ (!i. i < LENGTH l1 ==> nth l1 i = nth l2 i) ==> l1 = l2 | link to proof | list-nth-thm |
| nth_interval | !m n i. i < n ==> nth (interval m n) i = m + i | link to proof | list-interval-thm |
| nth_map | !f l i. i < LENGTH l ==> nth (MAP f l) i = f (nth l i) | link to proof | list-nth-thm |
| nth_replicate | !x n i. i < n ==> nth (REPLICATE x n) i = x | link to proof | list-replicate-thm |
| nth_suc | !h t n. n < LENGTH t ==> nth (CONS h t) (SUC n) = nth t n | link to proof | list-nth-def |
| nth_take | !n l i. n <= LENGTH l /\ i < n ==> nth (take n l) i = nth l i | link to proof | list-take-drop-thm |
| nth_take_drop | !n l i. n <= LENGTH l /\ i < LENGTH l ==> nth l i = (if i < n then nth (take n l) i else nth (drop n l) (i - n)) | link to proof | list-take-drop-thm |
| nth_zero | !h t. nth (CONS h t) 0 = h | link to proof | list-nth-def |
| nth_zip | !l1 l2 n i. LENGTH l1 = n /\ LENGTH l2 = n /\ i < n ==> nth (zip l1 l2) i = nth l1 i,nth l2 i | link to proof | list-zip-thm |
| nth_zipwith | !f l1 l2 n i. LENGTH l1 = n /\ LENGTH l2 = n /\ i < n ==> nth (zipwith f l1 l2) i = f (nth l1 i) (nth l2 i) | link to proof | list-zip-thm |
| nub_def | !l. nub l = REVERSE (setify (REVERSE l)) | link to proof | list-nub-def |
| nub_idempotent | !l. nub (nub l) = nub l | link to proof | list-nub-thm |
| null_concat | !l. NULL (concat l) <=> ALL NULL l | link to proof | list-append-thm |
| num_CASES | !m. m = 0 \/ (?n. m = SUC n) | link to proof | natural-thm |
| num_FINITE | !s. FINITE s <=> (?a. !x. x IN s ==> x <= a) | link to proof | set-finite-thm |
| num_FINITE_AVOID | !s. FINITE s ==> (?a. ~(a IN s)) | link to proof | set-finite-thm |
| num_INFINITE | INFINITE UNIV | link to proof | set-finite-thm |
| num_MAX | !p. (?n. p n) /\ (?m. !n. p n ==> n <= m) <=> (?m. p m /\ (!n. p n ==> n <= m)) | link to proof | natural-order-thm |
| num_WF | !p. (!n. (!m. m < n ==> p m) ==> p n) ==> (!n. p n) | link to proof | natural-order-thm |
| num_WOP | !p. (?n. p n) <=> (?n. p n /\ (!m. m < n ==> ~p m)) | link to proof | natural-order-thm |
| o_ASSOC | !f g h. f o g o h = (f o g) o h | link to proof | function-thm |
| o_ASSOC' | !f g h. (f o g) o h = f o g o h | link to proof | function-thm |
| o_PRIM_DEF | (o) = (\f g x. f (g x)) | link to proof | function-def |
| o_THM | !f g x. (f o g) x = f (g x) | link to proof | function-thm |
| one | !v. v = one | link to proof | unit-def |
| one_Axiom | !e. ?!fn. fn one = e | link to proof | unit-thm |
| one_INDUCT | !p. p one ==> (!x. p x) | link to proof | unit-thm |
| one_RECURSION | !e. ?fn. fn one = e | link to proof | unit-thm |
| one_axiom | !f g. f = g | link to proof | unit-thm |
| option_INDUCT | !p. p NONE /\ (!a. p (SOME a)) ==> (!x. p x) | link to proof | option-def |
| option_RECURSION | !b f. ?fn. fn NONE = b /\ (!a. fn (SOME a) = f a) | link to proof | option-def |
| option_cases | !x. x = NONE \/ (?a. x = SOME a) | link to proof | option-thm |
| option_distinct | !a. ~(SOME a = NONE) | link to proof | option-thm |
| option_inj | !a b. SOME a = SOME b <=> a = b | link to proof | option-thm |
| pair_INDUCT | !p. (!a b. p (a,b)) ==> (!x. p x) | link to proof | pair-thm |
| pair_RECURSION | !f. ?fn. !a b. fn (a,b) = f a b | link to proof | pair-thm |
| real_abs | !x. abs x = (if &0 <= x then x else --x) | link to proof | real-def |
| real_div | !x y. ~(y = &0) ==> x / y = x * inv y | link to proof | real-def |
| real_ge | !x y. x >= y <=> y <= x | link to proof | real-def |
| real_gt | !x y. x > y <=> y < x | link to proof | real-def |
| real_lt | !x y. x < y <=> ~(y <= x) | link to proof | real-def |
| real_max | !m n. max m n = (if m <= n then n else m) | link to proof | real-def |
| real_min | !m n. min m n = (if m <= n then m else n) | link to proof | real-def |
| real_pow_suc | !x n. x pow SUC n = x * x pow n | link to proof | real-def |
| real_pow_zero | !x. x pow 0 = &1 | link to proof | real-def |
| real_sub | !x y. x - y = x + --y | link to proof | real-def |
| reflexive | !r x. reflexive r ==> r x x | link to proof | relation-thm |
| reflexive_def | !r. reflexive r <=> (!x. r x x) | link to proof | relation-def |
| reflexive_univr | reflexive univr | link to proof | relation-thm |
| relation_extension_imp | !r s. (!x y. r x y <=> s x y) ==> r = s | link to proof | relation-thm |
| relation_to_set | !r x y. x,y IN relation_to_set r <=> r x y | link to proof | relation-thm |
| relation_to_set_def | !r. relation_to_set r = {x,y | r x y} | link to proof | relation-def |
| relation_to_set_inj | !r s. relation_to_set r = relation_to_set s ==> r = s | link to proof | relation-thm |
| relation_to_set_to_relation | !r. set_to_relation (relation_to_set r) = r | link to proof | relation-thm |
| set_of_list_cons | !h t. set_of_list (CONS h t) = h INSERT set_of_list t | link to proof | list-set-def |
| set_of_list_nil | set_of_list [] = {} | link to proof | list-set-def |
| set_of_list_nth | !l. set_of_list l = IMAGE (nth l) {i | i < LENGTH l} | link to proof | list-nth-thm |
| set_of_list_nub | !l. set_of_list (nub l) = set_of_list l | link to proof | list-nub-thm |
| set_of_list_setify | !l. set_of_list (setify l) = set_of_list l | link to proof | list-nub-thm |
| set_to_relation_def | !s x y. set_to_relation s x y <=> x,y IN s | link to proof | relation-def |
| set_to_relation_to_set | !s. relation_to_set (set_to_relation s) = s | link to proof | relation-thm |
| setify_cons | !h t. setify (CONS h t) = (if MEM h t then setify t else CONS h (setify t)) | link to proof | list-nub-def |
| setify_idempotent | !l. setify (setify l) = setify l | link to proof | list-nub-thm |
| setify_nil | setify [] = [] | link to proof | list-nub-def |
| subrelation | !r s. subrelation r s <=> (!x y. r x y ==> s x y) | link to proof | relation-thm |
| subrelation_antisym | !r s. subrelation r s /\ subrelation s r ==> r = s | link to proof | relation-thm |
| subrelation_big_interr | !r s. subrelation r (big_interr s) <=> (!t. t IN s ==> subrelation r t) | link to proof | relation-thm |
| subrelation_def | !r s. subrelation r s <=> relation_to_set r SUBSET relation_to_set s | link to proof | relation-def |
| subrelation_refl | !r. subrelation r r | link to proof | relation-thm |
| subrelation_successor_lt | subrelation successor (<) | link to proof | relation-natural-thm |
| subrelation_trans | !r s t. subrelation r s /\ subrelation s t ==> subrelation r t | link to proof | relation-thm |
| successor_def | !m n. successor m n <=> SUC m = n | link to proof | relation-natural-def |
| sum_CASES | !x. (?a. x = INL a) \/ (?b. x = INR b) | link to proof | sum-thm |
| sum_INDUCT | !p. (!a. p (INL a)) /\ (!b. p (INR b)) ==> (!x. p x) | link to proof | sum-def |
| sum_RECURSION | !f g. ?fn. (!a. fn (INL a) = f a) /\ (!b. fn (INR b) = g b) | link to proof | sum-def |
| sum_distinct | !a b. ~(INL a = INR b) | link to proof | sum-thm |
| take_add | !m n l. m + n <= LENGTH l ==> take (m + n) l = APPEND (take m l) (take n (drop m l)) | link to proof | list-take-drop-thm |
| take_append | !l1 l2. take (LENGTH l1) (APPEND l1 l2) = l1 | link to proof | list-take-drop-thm |
| take_drop | !n l. n <= LENGTH l ==> APPEND (take n l) (drop n l) = l | link to proof | list-take-drop-thm |
| take_length | !l. take (LENGTH l) l = l | link to proof | list-take-drop-thm |
| take_one | !h t. take 1 (CONS h t) = [h] | link to proof | list-take-drop-thm |
| take_replicate | !m n x. m <= n ==> take m (REPLICATE x n) = REPLICATE x m | link to proof | list-take-drop-thm |
| take_suc | !n h t. n <= LENGTH t ==> take (SUC n) (CONS h t) = CONS h (take n t) | link to proof | list-take-drop-def |
| take_zero | !l. take 0 l = [] | link to proof | list-take-drop-def |
| transitive_closure_def | !r. transitive_closure r = big_interr {s | subrelation r s /\ transitive s} | link to proof | relation-def |
| transitive_closure_smallest | !r s. subrelation r s /\ transitive s ==> subrelation (transitive_closure r) s | link to proof | relation-thm |
| transitive_closure_subrelation | !r. subrelation r (transitive_closure r) | link to proof | relation-thm |
| transitive_closure_successor_lt | transitive_closure successor = (<) | link to proof | relation-natural-thm |
| transitive_closure_transitive | !r. transitive (transitive_closure r) | link to proof | relation-thm |
| transitive_def | !r. transitive r <=> (!x y z. r x y /\ r y z ==> r x z) | link to proof | relation-def |
| transitive_emptyr | transitive emptyr | link to proof | relation-thm |
| transitive_lt | transitive (<) | link to proof | relation-natural-thm |
| transitive_successor_lt | !r. subrelation successor r /\ transitive r ==> subrelation (<) r | link to proof | relation-natural-thm |
| transitive_univr | transitive univr | link to proof | relation-thm |
| unionr | !r s x y. unionr r s x y <=> r x y \/ s x y | link to proof | relation-thm |
| unionr_def | !r s. unionr r s = set_to_relation (relation_to_set r UNION relation_to_set s) | link to proof | relation-def |
| univr | !x y. univr x y | link to proof | relation-thm |
| univr_def | univr = set_to_relation UNIV | link to proof | relation-def |
| unzip_cons | !h x y t xs ys. unzip (CONS h t) = CONS x xs,CONS y ys <=> h = x,y /\ unzip t = xs,ys | link to proof | list-zip-thm |
| unzip_def | unzip = foldr (\(x,y) (xs,ys). CONS x xs,CONS y ys) ([],[]) | link to proof | list-zip-def |
| unzip_eq_nil1 | !l ys. unzip l = [],ys <=> l = [] /\ ys = [] | link to proof | list-zip-thm |
| unzip_eq_nil2 | !l xs. unzip l = xs,[] <=> l = [] /\ xs = [] | link to proof | list-zip-thm |
| unzip_nil | unzip [] = [],[] | link to proof | list-zip-thm |
| wellfounded_emptyr | WF emptyr | link to proof | relation-well-founded-thm |
| wellfounded_irreflexive | !r. WF r ==> irreflexive r | link to proof | relation-well-founded-thm |
| wellfounded_subrelation | !r s. subrelation r s /\ WF s ==> WF r | link to proof | relation-well-founded-thm |
| wellfounded_successor | WF successor | link to proof | relation-natural-thm |
| zip_append | !x1 x2 y1 y2. LENGTH x1 = LENGTH y1 /\ LENGTH x2 = LENGTH y2 ==> zip (APPEND x1 x2) (APPEND y1 y2) = APPEND (zip x1 y1) (zip x2 y2) | link to proof | list-zip-thm |
| zip_cons | !x y xs ys. LENGTH xs = LENGTH ys ==> zip (CONS x xs) (CONS y ys) = CONS (x,y) (zip xs ys) | link to proof | list-zip-thm |
| zip_def | !l1 l2. zip l1 l2 = zipwith (,) l1 l2 | link to proof | list-zip-def |
| zip_nil | zip [] [] = [] | link to proof | list-zip-thm |
| zip_sing | !x y. zip [x] [y] = [x,y] | link to proof | list-zip-thm |
| zip_unzip | !l xs ys. unzip l = xs,ys <=> LENGTH xs = LENGTH ys /\ l = zip xs ys | link to proof | list-zip-thm |
| zipwith_append | !f x1 x2 y1 y2. LENGTH x1 = LENGTH y1 /\ LENGTH x2 = LENGTH y2 ==> zipwith f (APPEND x1 x2) (APPEND y1 y2) = APPEND (zipwith f x1 y1) (zipwith f x2 y2) | link to proof | list-zip-thm |
| zipwith_cons | !f h1 h2 t1 t2. LENGTH t1 = LENGTH t2 ==> zipwith f (CONS h1 t1) (CONS h2 t2) = CONS (f h1 h2) (zipwith f t1 t2) | link to proof | list-zip-def |
| zipwith_nil | !f. zipwith f [] [] = [] | link to proof | list-zip-def |
| zipwith_sing | !f x y. zipwith f [x] [y] = [f x y] | link to proof | list-zip-thm |