Entry |
Value |
Name |
HAS_SIZE_PRODUCT |
Conclusion |
!s t m n.
s HAS_SIZE m /\ t HAS_SIZE n ==> {x,y | x IN s /\ y IN t} HAS_SIZE m * n |
Constructive Proof |
No |
Axiom |
!t. t \/ ~t
(\a. a = (\b. (\c. c) = (\c. c))) (\d. (\e. d e) = d)
(\a. a = (\b. (\c. c) = (\c. c)))
(\d. (\e. e = (\f. (\c. c) = (\c. c)))
(\g. (\h i.
(\j k.
(\l. l j k) =
(\m. m ((\c. c) = (\c. c)) ((\c. c) = (\c. c))))
h
i <=>
h)
(d g)
(d ((@) d))))
(\a. (\b. b = (\c. (\d. d) = (\d. d)))
(\e. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
f
g <=>
f)
((\l. l = (\m. (\d. d) = (\d. d)))
(\n. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
f
g <=>
f)
(a n)
e))
e))
(\p. (\h i. (\j. j h i) = (\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
((\q. q = (\r. (\d. d) = (\d. d)))
(\s. (\q. q = (\r. (\d. d) = (\d. d)))
(\t. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
f
g <=>
f)
(p s = p t)
(s = t))))
((\u. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
f
g <=>
f)
u
((\b. b = (\c. (\d. d) = (\d. d))) (\d. d)))
((\q. q = (\r. (\d. d) = (\d. d)))
(\v. (\w. (\b. b = (\c. (\d. d) = (\d. d)))
(\x. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d)) ((\d. d) = (\d. d))))
f
g <=>
f)
((\q. q = (\r. (\d. d) = (\d. d)))
(\y. (\f g.
(\h i.
(\j. j h i) =
(\k. k ((\d. d) = (\d. d))
((\d. d) = (\d. d))))
f
g <=>
f)
(w y)
x))
x))
(\z. v = p z))))) |
Classical Lemmas |
!x y s. s DELETE x DELETE y = s DELETE y DELETE x!x y s.
(x INSERT s) DELETE y =
(if x = y then s DELETE y else x INSERT (s DELETE y))!a b a' b'. a,b = a',b' <=> a = a' /\ b = b'!e f. ?!fn. fn _0 = e /\ (!n. fn (SUC n) = f (fn n) n)!x s t. DISJOINT (x INSERT s) t <=> ~(x IN t) /\ DISJOINT s t!x s t. s SUBSET x INSERT t <=> s DELETE x SUBSET t!x s t.
x INSERT s UNION t = (if x IN t then s UNION t else x INSERT (s UNION t))!x s. ~(x INSERT s = {})!x s. s DELETE x = s <=> ~(x IN s)!x s. (x INSERT s) DELETE x = s <=> ~(x IN s)!x s. DISJOINT s {x} <=> ~(x IN s)!x s. DISJOINT {x} s <=> ~(x IN s)!x s.
FINITE s ==> CARD (s DELETE x) = (if x IN s then CARD s - 1 else CARD s)!x s.
FINITE s
==> CARD (x INSERT s) = (if x IN s then CARD s else SUC (CARD s))!x s. x IN s ==> x INSERT (s DELETE x) = s!t1 t2. ~(t1 /\ t2) <=> ~t1 \/ ~t2!t1 t2. ~(t1 ==> t2) <=> t1 /\ ~t2!t1 t2. ~(t1 \/ t2) <=> ~t1 /\ ~t2!t. ~ ~t <=> t!t. (t <=> T) \/ (t <=> F)!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!f s. FINITE s ==> FINITE {y | ?x. x IN s /\ y = f x}!f s. FINITE s ==> FINITE (IMAGE f s)!f s.
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y) /\ FINITE s
==> CARD (IMAGE f s) = CARD s!p c x y. p (if c then x else y) <=> (c ==> p x) /\ (~c ==> p y)!p q. (!x. p x \/ q) <=> (!x. p x) \/ q!p q. (!x. p x) \/ q <=> (!x. p x \/ q)!p. (?x. ~p x) <=> ~(!x. p x)!p. ~(!x. p x) <=> (?x. ~p x)!p. ~(?x. p x) <=> (!x. ~p x)!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)))!p a b. a,b IN {x,y | p x y} <=> p a b!p. p {} /\ (!x s. p s /\ ~(x IN s) /\ FINITE s ==> p (x INSERT s))
==> (!s. FINITE s ==> p s)!m n. SUC m = SUC n <=> m = n!m n. m * n = n * m!n. ~(SUC n = _0)!n. BIT0 (SUC n) = SUC (SUC (BIT0 n))!m. SUC m = m + 1!m. m * 1 = m!m. 1 * m = m!n. SUC n - 1 = n!m. m = 0 \/ (?n. m = SUC n)!s x. FINITE (s DELETE x) <=> FINITE s!s x. FINITE (x INSERT s) <=> FINITE s!s x. FINITE s ==> FINITE (s DELETE x)!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}!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!s n.
s HAS_SIZE SUC n <=> (?a t. t HAS_SIZE n /\ ~(a IN t) /\ s = a INSERT t)!s n.
s HAS_SIZE SUC n <=> ~(s = {}) /\ (!a. a IN s ==> s DELETE a HAS_SIZE n)!s t m n.
s HAS_SIZE m /\ t HAS_SIZE n /\ DISJOINT s t ==> s UNION t HAS_SIZE m + n!s t u. DISJOINT (s UNION t) u <=> DISJOINT s u /\ DISJOINT t u!s t u. s SUBSET t UNION u <=> s DIFF t SUBSET u!t u s. s DIFF t DIFF u = s DIFF (t UNION u)!t u s. s DIFF t DIFF u = s DIFF u DIFF t!s t. FINITE (s UNION t) <=> FINITE s /\ FINITE t!s t. ~(s = t) <=> (?x. x IN t <=> ~(x IN s))!s t. s DIFF t = s <=> DISJOINT s t!s t. s UNION t = {} <=> s = {} /\ t = {}!s t. FINITE t /\ s SUBSET t ==> FINITE s!s t.
FINITE s /\ FINITE t /\ DISJOINT s t
==> CARD (s UNION t) = CARD s + CARD t!s. (?x. x IN s) <=> ~(s = {})!s. s HAS_SIZE 0 <=> s = {}!s. FINITE s ==> (CARD s = 0 <=> s = {})BIT0 0 = 0CARD {} = 0 |
Constructive Lemmas |
T!x y s. x IN y INSERT s <=> x = y \/ x IN s!x y s. s DELETE x DELETE y = s DELETE y DELETE x!x y s.
(x INSERT s) DELETE y =
(if x = y then s DELETE y else x INSERT (s DELETE y))!t1 t2. (if F then t1 else t2) = t2!t1 t2. (if T then t1 else t2) = t1!x y. x = y <=> y = x!x y. x IN {y} <=> x = y!x y. x = y ==> y = x!a b a' b'. a,b = a',b' <=> a = a' /\ b = b'!e f. ?!fn. fn _0 = e /\ (!n. fn (SUC n) = f (fn n) n)!x s t. DISJOINT (x INSERT s) t <=> ~(x IN t) /\ DISJOINT s t!x s t. s SUBSET x INSERT t <=> s DELETE x SUBSET t!x s t. x INSERT s UNION t = x INSERT (s UNION t)!x s t.
x INSERT s UNION t = (if x IN t then s UNION t else x INSERT (s UNION t))!x s. ~(x INSERT s = {})!x s. s DELETE x = s <=> ~(x IN s)!x s. (x INSERT s) DELETE x = s <=> ~(x IN s)!x s. DISJOINT s {x} <=> ~(x IN s)!x s. DISJOINT {x} s <=> ~(x IN s)!x s. x IN s <=> x INSERT s = s!x s. s DIFF {x} = s DELETE x!x s. x INSERT s = {y | y = x \/ y IN s}!x s. {x} UNION s = x INSERT s!x s. FINITE s ==> FINITE (x INSERT s)!x s.
FINITE s ==> CARD (s DELETE x) = (if x IN s then CARD s - 1 else CARD s)!x s.
FINITE s
==> CARD (x INSERT s) = (if x IN s then CARD s else SUC (CARD s))!x s. x IN s ==> x INSERT (s DELETE x) = s!x s. s DELETE x SUBSET s!a. ?x. x = a!a. ?!x. x = a!x. ~(x IN {})!x. x = x!x. (@y. y = x) = x!y s f. y IN IMAGE f s <=> (?x. y = f x /\ x IN s)!p1 p2 q1 q2. (p1 ==> p2) /\ (q1 ==> q2) ==> p1 /\ q1 ==> p2 /\ q2!p1 p2 q1 q2. (p1 ==> p2) /\ (q1 ==> q2) ==> p1 \/ q1 ==> p2 \/ q2!p q r. p /\ (q \/ r) <=> p /\ q \/ p /\ r!t1 t2 t3. (t1 /\ t2) /\ t3 <=> t1 /\ t2 /\ t3!p q r. (p \/ q) /\ r <=> p /\ r \/ q /\ r!p q r. p ==> q ==> r <=> p /\ q ==> r!t1 t2 t3. (t1 \/ t2) \/ t3 <=> t1 \/ t2 \/ t3!t1 t2. ~(t1 /\ t2) <=> ~t1 \/ ~t2!t1 t2. ~(t1 ==> t2) <=> t1 /\ ~t2!t1 t2. ~(t1 \/ t2) <=> ~t1 /\ ~t2!t1 t2. t1 /\ t2 <=> t2 /\ t1!t1 t2. t1 \/ t2 <=> t2 \/ t1!p q. (!x. p ==> q x) <=> p ==> (!x. q x)!p q. (?x. p /\ q x) <=> p /\ (?x. q x)!p q. p /\ (?x. q x) <=> (?x. p /\ q x)!p q. p \/ (?x. q x) <=> (?x. p \/ q x)!t. (!x. t) <=> t!t. (?x. t) <=> t!t. ~ ~t <=> t!t. F /\ t <=> F!t. T /\ t <=> t!t. t /\ F <=> F!t. t /\ T <=> t!t. t /\ t <=> t!t. (F <=> t) <=> ~t!t. (T <=> t) <=> t!t. (t <=> F) <=> ~t!t. (t <=> T) <=> t!t. F ==> t <=> T!t. T ==> t <=> t!t. t ==> F <=> ~t!t. t ==> T <=> T!t. F \/ t <=> t!t. T \/ t <=> T!t. t \/ F <=> t!t. t \/ T <=> T!t. t \/ t <=> t!t. t ==> t!t. (t <=> T) \/ (t <=> F)!f x s. IMAGE f (x INSERT s) = f x INSERT IMAGE f s!f y. (\x. f x) y = f y!f g. (!x. f x = g x) <=> f = g!f g. (!x. f x = g x) ==> f = g!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!f s. IMAGE f s = {y | ?x. x IN s /\ y = f x}!f s. FINITE s ==> FINITE {y | ?x. x IN s /\ y = f x}!f s. FINITE s ==> FINITE (IMAGE f s)!f s.
(!x y. x IN s /\ y IN s /\ f x = f y ==> x = y) /\ FINITE s
==> CARD (IMAGE f s) = CARD s!f. ONE_ONE f <=> (!x1 x2. f x1 = f x2 ==> x1 = x2)!f. ONTO f <=> (!y. ?x. y = f x)!t. (\x. t x) = t!f. IMAGE f {} = {}!p a. (?x. a = x /\ p x) <=> p a!p x. x IN GSPEC p <=> p x!p x. x IN {y | p y} <=> p x!p x. p x ==> p ((@) p)!p c x y. p (if c then x else y) <=> (c ==> p x) /\ (~c ==> p y)!p q. (!x. p x \/ q) <=> (!x. p x) \/ q!p q. (?x. p x /\ q) <=> (?x. p x) /\ q!p q. (?x. p x) /\ q <=> (?x. p x /\ q)!p q. (?x. p x) ==> q <=> (!x. p x ==> q)!p q. (!x. p x) \/ q <=> (!x. p x \/ q)!p q. (?x. p x) \/ q <=> (?x. p x \/ q)!p q. (!x. p x /\ q x) <=> (!x. p x) /\ (!x. q x)!p q. (?x. p x \/ q x) <=> (?x. p x) \/ (?x. q x)!p q. (?x. p x) \/ (?x. q x) <=> (?x. p x \/ q x)!p q. (!x. p x ==> q x) ==> (?x. p x) ==> (?x. q x)!p. (?x. ~p x) <=> ~(!x. p x)!p. (?!x. p x) <=> (?x. !y. p y <=> x = y)!p. (?!x. p x) <=> (?x. p x) /\ (!x x'. p x /\ p x' ==> x = x')!p. ~(!x. p x) <=> (?x. ~p x)!p. ~(?x. p x) <=> (!x. ~p x)!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)))!p a b. a,b IN {x,y | p x y} <=> p a b!p. (!x y. p x y) <=> (!y x. p x y)!r. (!x. ?y. r x y) <=> (?f. !x. r x (f x))!p. (!x. ?!y. p x y) <=> (?f. !x y. p x y <=> f x = y)!t. {x,y | x IN {} /\ y IN t x} = {}!p. p _0 /\ (!n. p n ==> p (SUC n)) ==> (!n. p n)!p. p {} /\ (!x s. p s ==> p (x INSERT s)) ==> (!a. FINITE a ==> p a)!p. p {} /\ (!x s. p s /\ ~(x IN s) /\ FINITE s ==> p (x INSERT s))
==> (!s. FINITE s ==> p s)!m n p. m + n + p = (m + n) + p!m n. SUC m = SUC n <=> m = n!m n. m * n = n * m!m n. m * SUC n = m + m * n!m n. SUC m * n = m * n + n!m n. m + n = n + m!m n. m + SUC n = SUC (m + n)!m n. SUC m + n = SUC (m + n)!m n. (m + n) - n = m!n. ~(SUC n = _0)!n. BIT0 (SUC n) = SUC (SUC (BIT0 n))!n. BIT1 n = SUC (BIT0 n)!n. PRE (SUC n) = n!m. SUC m = m + 1!m. m * 0 = 0!m. m * 1 = m!n. 0 * n = 0!m. 1 * m = m!m. m + 0 = m!n. 0 + n = n!n. SUC n - 1 = n!m. m = 0 \/ (?n. m = SUC n)!x. ?a b. x = a,b!s x y. x IN s DELETE y <=> x IN s /\ ~(x = y)!s x. FINITE (s DELETE x) <=> FINITE s!s x. FINITE (x INSERT s) <=> FINITE s!s x. s DELETE x = {y | y IN s /\ ~(y = x)}!s x. FINITE s ==> FINITE (s DELETE x)!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}!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!s n. s HAS_SIZE n <=> FINITE s /\ CARD s = n!s n.
s HAS_SIZE SUC n <=> (?a t. t HAS_SIZE n /\ ~(a IN t) /\ s = a INSERT t)!s n.
s HAS_SIZE SUC n <=> ~(s = {}) /\ (!a. a IN s ==> s DELETE a HAS_SIZE n)!s t x. x IN s DIFF t <=> x IN s /\ ~(x IN t)!s t x. x IN s INTER t <=> x IN s /\ x IN t!s t x. x IN s UNION t <=> x IN s \/ x IN t!s t m n.
s HAS_SIZE m /\ t HAS_SIZE n /\ DISJOINT s t ==> s UNION t HAS_SIZE m + n!s t u. DISJOINT (s UNION t) u <=> DISJOINT s u /\ DISJOINT t u!s t u. s SUBSET t UNION u <=> s DIFF t SUBSET u!t u s. s DIFF t DIFF u = s DIFF (t UNION u)!t u s. s DIFF t DIFF u = s DIFF u DIFF t!s t u. s INTER (t UNION u) = s INTER t UNION s INTER u!s t u. (s UNION t) INTER u = s INTER u UNION t INTER u!s t u. (s UNION t) UNION u = s UNION t UNION u!s t. (!x. x IN s <=> x IN t) <=> s = t!s t. FINITE (s UNION t) <=> FINITE s /\ FINITE t!s t. ~(s = t) <=> (?x. x IN t <=> ~(x IN s))!s t. s DIFF t = s <=> DISJOINT s t!s t. s UNION t = {} <=> s = {} /\ t = {}!s t. DISJOINT s t <=> s INTER t = {}!s t. DISJOINT s t <=> DISJOINT t s!s t. s SUBSET t <=> (!x. x IN s ==> x IN t)!s t. s DIFF t = {x | x IN s /\ ~(x IN t)}!s t. s INTER t = {x | x IN s /\ x IN t}!s t. s INTER t = t INTER s!s t. s UNION t = {x | x IN s \/ x IN t}!s t. s UNION t = t UNION s!s t. (!x. x IN s <=> x IN t) ==> s = t!s t. FINITE t /\ s SUBSET t ==> FINITE s!s t. FINITE s /\ FINITE t ==> FINITE (s UNION t)!s t.
FINITE s /\ FINITE t /\ DISJOINT s t
==> CARD (s UNION t) = CARD s + CARD t!s t. s SUBSET t UNION s!s t. s SUBSET s UNION t!s t. s DIFF t SUBSET s!s. (?x. x IN s) <=> ~(s = {})!s. s HAS_SIZE 0 <=> s = {}!s. s SUBSET {} <=> s = {}!s. {} UNION s = s!s. s UNION {} = s!s. FINITE s ==> (CARD s = 0 <=> s = {})?f. ONE_ONE f /\ ~ONTO fFINITE {}F <=> (!p. p)T <=> (\p. p) = (\p. p)~F <=> T~T <=> F(~) = (\p. p ==> F)COND = (\t t1 t2. @x. ((t <=> T) ==> x = t1) /\ ((t <=> F) ==> x = t2))(/\) = (\p q. (\f. f p q) = (\f. f T T))(==>) = (\p q. p /\ q <=> p)(\/) = (\p q. !r. (p ==> r) ==> (q ==> r) ==> r)(!) = (\p. p = (\x. T))(?) = (\p. !q. (!x. p x ==> q) ==> q)(?) = (\p. p ((@) p))(?!) = (\p. (?) p /\ (!x y. p x /\ p y ==> x = y))NUMERAL = (\n. n)CARD = ITSET (\x n. SUC n) 0BIT0 0 = 0CARD {} = 0{} = {x | F}GSPEC (\x. F) = {} |
Contained Package |
set-size-thm |
Comment |
Standard HOL library retrieved from OpenTheory |