Package set-thm: Properties of set types

Information

nameset-thm
version1.74
descriptionProperties of set types
authorJoe Leslie-Hurd <joe@gilith.com>
licenseHOLLight
provenanceHOL Light theory exported on 2019-02-28
checksum553c655a8f1e9a023fbdec6d9faf3a15fea03c3c
requiresbool
function
natural
pair
set-def
showData.Bool
Data.Pair
Function
Number.Natural
Set

Files

Theorems

¬(universe = )

bigIntersect = universe

bigUnion =

bigUnion universe = universe

x. x universe

s. disjoint s

s. disjoint s

s. s

s. s universe

s. s s

fromPredicate (λx. ) =

fromPredicate (λx. ) = universe

cross universe universe = universe

x. ¬(x )

s. ¬(universe s)

s. ¬(s )

s. ¬(s s)

x. delete x =

x. insert x universe = universe

s. \ s =

s. s \ = s

s. s \ universe =

s. s \ s =

s. image id s = s

s. s =

s. universe s = s

s. s =

s. s universe = s

s. s s = s

s. s = s

s. universe s = universe

s. s = s

s. s universe = universe

s. s s = s

s. cross s =

s. cross s =

f. image f =

s. image (λx. x) s = s

universe = insert (insert )

s. bigIntersect (insert s ) = s

s. bigUnion (insert s ) = s

x s. x insert x s

x s. delete s x s

s t. disjoint s (t \ s)

s t. s s t

s t. s t s

s t. disjoint (t \ s) s

s t. s \ t s

s t. s t s

s t. t s s

s. disjoint s s s =

s. universe s s = universe

s. s s =

s. universe \ (universe \ s) = s

s. bigUnion (delete s ) = bigUnion s

s. bigUnion (insert s) = bigUnion s

x s. ¬(insert x s = )

s t. disjoint s t disjoint t s

s t. s t = t s

s t. s t = t s

s t. s t s t

s. (x. x s) s = universe

s. s universe x. ¬(x s)

s. (x. x s) ¬(s = )

x y. x insert y x = y

x s. x s insert x s = s

x s. s \ insert x = delete s x

x s. insert x (insert x s) = insert x s

x s. delete (delete s x) x = delete s x

x s. insert x s = insert x s

s x. insert x s x s

s t. s t s t = s

s t. s t s t = t

s t. s \ t = s t

s t. s \ t = s disjoint s t

s t. t (s \ t) = t s

s t. s \ t \ t = s \ t

s t. s \ t t = s t

s u. bigIntersect (insert s u) = s bigIntersect u

s u. bigUnion (insert s u) = s bigUnion u

f s. image f s = s =

s t. s t bigIntersect t bigIntersect s

f g. f g bigUnion f bigUnion g

{ m. m | m < 0 } =

x s. disjoint s (insert x ) ¬(x s)

x s. delete s x = s ¬(x s)

x s. disjoint (insert x ) s ¬(x s)

s t. bigIntersect (insert s (insert t )) = s t

s t. bigUnion (insert s (insert t )) = s t

f x. image f (insert x ) = insert (f x)

f s. image f (bigUnion s) = bigUnion (image (image f) s)

f s. image f (bigIntersect s) bigIntersect (image (image f) s)

s t. bigIntersect (s t) = bigIntersect s bigIntersect t

s t. bigUnion (s t) = bigUnion s bigUnion t

s t x. s t s insert x t

s. { x. x | x s } = s

x s. x s insert x (delete s x) = s

s t. s t t s s = t

s t. s (t \ s) = t s t

s t. t \ s s = t s t

s t. s t t s s = t

{ m. m | m 0 } = insert 0

{ s. s | s } = insert

f s x. x s f x image f s

x s. delete (insert x s) x = s ¬(x s)

s t. s t s t ¬(t s)

s t. image fst (cross s t) = if t = then else s

s t. image snd (cross s t) = if s = then else t

s. bigIntersect s = universe t. t s t = universe

s. bigUnion s = t. t s t =

x y s. insert x (insert y s) = insert y (insert x s)

x y s. delete (delete s x) y = delete (delete s y) x

x s t. s insert x t delete s x t

x s t. insert x s t = insert x (s t)

a. { x. x | x = a } = insert a

s c. image (λx. c) s = if s = then else insert c

s t x. disjoint (delete s x) t disjoint (delete t x) s

s t x. s \ insert x t = delete s x \ t

s t x. delete s x t = delete (s t) x

s t u. s t u s \ t u

s t u. s t u s \ u t

t u s. s \ t \ u = s \ (t u)

t u s. s \ t \ u = s \ u \ t

s t u. s t u = s (t u)

s t u. s t u = s (t u)

s t u. s t t u s u

s t u. s t t u s u

s t u. s t t u s u

s t u. s t t u s u

s t. (x. x s x t) s = t

f s t. s t image f s image f t

f g s. image (f g) s = image f (image g s)

x y. cross (insert x ) (insert y ) = insert (x, y)

s t. s t = s = t =

s t. cross s t = s = t =

s t. disjoint s t ¬x. x s x t

s t. disjoint s (bigUnion t) x. x t disjoint s x

t u. t bigIntersect u s. s u t s

s. bigUnion { x. insert x | x s } = s

f x s. image f (insert x s) = insert (f x) (image f s)

s x. x bigIntersect s t. t s x t

s x. x bigUnion s t. t s x t

f t. bigUnion f t s. s f s t

u s. (t. t u t s) bigIntersect u s

x s. x rest s x s ¬(x = choice s)

p x. x { y. y | p y } p x

x y s. x insert y s x = y x s

x s t. insert x s t x t s t

s t x. x s t x s x t

s t x. x s t x s x t

s t u. s t \ u s t disjoint s u

s t u. s t u s t s u

s t u. disjoint (s t) u disjoint s u disjoint t u

s t u. s t u s u t u

s t u. s (t u) = s t s u

s t u. s t u = (s t) (s u)

s t u. (s t) u = s u t u

s t u. s t u = (s u) (t u)

s t. ¬(s = t) x. x t ¬(x s)

s t u. cross s (t \ u) = cross s t \ cross s u

s t u. cross s (t u) = cross s t cross s u

s t u. cross s (t u) = cross s t cross s u

s t u. cross (t \ u) s = cross t s \ cross u s

s t u. cross (t u) s = cross t s cross u s

s t u. cross (t u) s = cross t s cross u s

f s t. image f (s t) = image f s image f t

f s t. image f (s t) image f s image f t

f. (y. x. f x = y) g. y. f (g y) = y

f. (t. s. image f s = t) y. x. f x = y

s x. s insert x s = s = insert x

s p. { x. x | x s p x } s

f s. { x. f x | x s } = image f s

x s t. s delete t x s t ¬(x s)

x s t. disjoint (insert x s) t ¬(x t) disjoint s t

x s. ¬(x s) t. s insert x t s t

s x y. x delete s y x s ¬(x = y)

s x. x s t. s = insert x t ¬(x t)

s t x. x s \ t x s ¬(x t)

s t. s t x. ¬(x s) insert x s t

s. s = x t. s = insert x t ¬(x t)

s. bigIntersect s = universe \ bigUnion { t. universe \ t | t s }

s. bigUnion s = universe \ bigIntersect { t. universe \ t | t s }

y s f. y image f s x. y = f x x s

s t. s t s t a. a t ¬(a s)

x y s t. (x, y) cross s t x s y t

s1 s2 t1 t2. cross s1 t1 cross s2 t2 = cross (s1 s2) (t1 t2)

s1 t1 s2 t2.
    disjoint (cross s1 t1) (cross s2 t2) disjoint s1 s2 disjoint t1 t2

s t s' t'. s s' t t' cross s t cross s' t'

u s. u \ bigIntersect s = bigUnion { t. u \ t | t s }

s f. cross s (bigUnion f) = bigUnion { t. cross s t | t f }

f s t. s image f t u. u t s = image f u

s t. t bigUnion s = bigUnion { x. t x | x s }

s t. t bigIntersect s = bigIntersect { x. t x | x s }

s t. bigUnion s \ t = bigUnion { x. x \ t | x s }

s t. bigUnion s t = bigUnion { x. x t | x s }

s t. bigIntersect s t = bigIntersect { x. x t | x s }

f t. cross (bigUnion f) t = bigUnion { s. cross s t | s f }

p. p (a s. ¬(a s) p (insert a s)) s. p s

t. { x y. (x, y) | x y t x } =

x y s.
    delete (insert x s) y =
    if x = y then delete s y else insert x (delete s y)

x s t. insert x s t = if x t then insert x (s t) else s t

x s t. insert x s t = if x t then s t else insert x (s t)

s t x. insert x s \ t = if x t then s \ t else insert x (s \ t)

f. (x y. f x = f y x = y) g. x. g (f x) = x

u s. u \ bigUnion s = u bigIntersect { t. u \ t | t s }

s t. (x. x s y. y t x y) bigUnion s bigUnion t

s t. (y. y t x. x s x y) bigIntersect s bigIntersect t

s x x'. (x s x' s) (x delete s x' x' delete s x)

s x x'. (x delete s x' x' delete s x) x s x' s

p. bigUnion { x. insert x | p x } = { x. x | p x }

p f s. (y. y image f s p y) x. x s p (f x)

p f s. (y. y image f s p y) x. x s p (f x)

f s. bigIntersect (image f s) = { y. y | x. x s y f x }

f s. bigUnion (image f s) = { y. y | x. x s y f x }

p f s. (t. t image f s p t) t. t s p (image f t)

p f s. (t. t image f s p t) t. t s p (image f t)

p f. { x. f x | p x } = image f { x. x | p x }

n. { m. m | m < suc n } = insert n { m. m | m < n }

p a s. (x. x insert a s p x) p a x. x s p x

p a s. (x. x insert a s p x) p a x. x s p x

p s. (x. x bigUnion s p x) t x. t s x t p x

p s. (x. x bigUnion s p x) t x. t s x t p x

s f.
    s bigIntersect f =
    if f = then s else bigIntersect { t. s t | t f }

f s.
    bigIntersect f s =
    if f = then s else bigIntersect { t. t s | t f }

p a b. (a, b) { x y. (x, y) | p x y } p a b

p. { x. x | p x } = { a b. (a, b) | p (a, b) }

n. { m. m | m < suc n } = insert 0 { m. suc m | m < n }

n. { m. m | m suc n } = insert 0 { m. suc m | m n }

n. { m. m | m suc n } = insert (suc n) { m. m | m n }

f g.
    cross (bigUnion f) (bigUnion g) =
    bigUnion { s t. cross s t | s f t g }

p x t. (s. s insert x t p s) s. s t p s p (insert x s)

p x t. (s. s insert x t p s) s. s t (p s p (insert x s))

s f.
    cross s (bigIntersect f) =
    if f = then cross s universe
    else bigIntersect { t. cross s t | t f }

f s.
    cross (bigIntersect f) s =
    if f = then cross universe s
    else bigIntersect { t. cross t s | t f }

f. (s t. image f s = image f t s = t) x y. f x = f y x = y

s t s' t'. cross s t cross s' t' s = t = s s' t t'

p f q. (z. z { x. f x | p x } q z) x. p x q (f x)

p f q. (z. z { x. f x | p x } q z) x. p x q (f x)

p t u. (s. s t u p s) t' u'. t' t u' u p (t' u')

p t u. (s. s t u p s) t' u'. t' t u' u p (t' u')

p s t. (z. z cross s t p z) x y. x s y t p (x, y)

p s t. (z. z cross s t p z) x y. x s y t p (x, y)

f s t.
    (x y. f x = f y x = y) image f (s t) = image f s image f t

f. (k. t. { x. x | f x t } = k) x y. f x = f y x = y

p f. bigIntersect { x. f x | p x } = { a. a | x. p x a f x }

p f. bigUnion { x. f x | p x } = { a. a | x. p x a f x }

p s t. (x. x s t p x) (x. x s p x) x. x t p x

p s t. (x. x s t p x) (x. x s p x) x. x t p x

f s a.
    (x. x s f x = f a x = a)
    image f (delete s a) = delete (image f s) (f a)

f s t. (y. y t x. f x = y) (x. f x t x s) image f s = t

f g s t.
    image (λ(x, y). (f x, g y)) (cross s t) = cross (image f s) (image g t)

f. (y. x. f x = y) p. image f { x. x | p (f x) } = { x. x | p x }

d t.
    { f. f | (x. x f x t) x. ¬(x ) f x = d } =
    insert (λx. d)

f s.
    (x y. x s y s f x = f y x = y) g. x. x s g (f x) = x

f u v.
    (t. t v s. s u image f s = t)
    y. y v x. x u f x = y

f s.
    t.
      t s image f s = image f t
      x y. x t y t f x = f y x = y

p f q. (z. z { x y. f x y | p x y } q z) x y. p x y q (f x y)

p f q. (z. z { x y. f x y | p x y } q z) x y. p x y q (f x y)

s1 t1 s2 t2.
    cross s1 t1 = cross s2 t2
    (s1 = t1 = ) (s2 = t2 = ) s1 = s2 t1 = t2

f s t.
    (y. y t x. x s f x = y)
    g. y. y t g y s f (g y) = y

f.
    (t t'. { x. x | f x t } = { x. x | f x t' } t = t')
    image f universe = universe

p f.
    bigIntersect { x y. f x y | p x y } =
    { a. a | x y. p x y a f x y }

p f.
    bigUnion { x y. f x y | p x y } = { a. a | x y. p x y a f x y }

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

f s t.
    (x y. x s y t f x = f y x = y)
    image f (s \ t) = image f s \ image f t

p f s.
    (x y. x image f s y image f s p x y)
    x y. x s y s p (f x) (f y)

f s.
    ¬(s = )
    (x y. x bigUnion s y bigUnion s f x = f y x = y)
    image f (bigIntersect s) = bigIntersect (image (image f) s)

a t.
    { s. s | s insert a t } =
    { s. s | s t } image (λs. insert a s) { s. s | s t }

f s a.
    (x y. x s y s f x = f y x = y) a s
    image f (delete s a) = delete (image f s) (f a)

f s t.
    s image f t
    u. u t (x y. x u y u f x = f y x = y) s = image f u

f s t.
    (x y. x s y s f x = f y x = y) t s
    image f (s \ t) = image f s \ image f t

f g s.
    ¬(g = ) (t. t delete g s { x. x | f x image f t } t)
    image f (bigIntersect g) = bigIntersect (image (image f) g)

p f q.
    (z. z { w x y. f w x y | p w x y } q z)
    w x y. p w x y q (f w x y)

p f q.
    (z. z { w x y. f w x y | p w x y } q z)
    w x y. p w x y q (f w x y)

p f.
    bigIntersect { x y z. f x y z | p x y z } =
    { a. a | x y z. p x y z a f x y z }

p f.
    bigUnion { x y z. f x y z | p x y z } =
    { a. a | x y z. p x y z a f x y z }

p f s.
    (t. t image f s p t)
    t. t s (x y. x t y t f x = f y x = y) p (image f t)

p f s.
    (t. t image f s p t)
    t. t s (x y. x t y t f x = f y x = y) p (image f t)

f u.
    (s t. s u t u image f s = image f t s = t)
    x y. x u y u f x = f y x = y

f s.
    bigIntersect { x. bigUnion (f x) | x s } =
    bigUnion { g. bigIntersect { x. g x | x s } | x. x s g x f x }

f s.
    bigUnion { x. bigIntersect (f x) | x s } =
    bigIntersect { g. bigUnion { x. g x | x s } | x. x s g x f x }

f s t.
    { x. x | f x image f s } s { x. x | f x image f t } t
    image f (s t) = image f s image f t

s t a.
    { x y. (x, y) | x insert a s y t x } =
    image (, a) (t a) { x y. (x, y) | x s y t x }

s.
    { t. t | t s } =
    image (λp. { x. x | p x })
      { p. p | (x. x s p x universe) x. ¬(x s) (p x ) }

f s u.
    (t1 t2.
       t1 u t2 u
       { x. x | x s f x t1 } = { x. x | x s f x t2 }
       t1 = t2) u image f s

f g s u.
    ¬(g = ) (t. t g t u)
    (t. t delete g s { x. x | x u f x image f t } t)
    image f (bigIntersect g) = bigIntersect (image (image f) g)

f s u.
    (k. k s t. t u { x. x | x s f x t } = k)
    image f s u x y. x s y s f x = f y x = y

f g.
    cross (bigIntersect f) (bigIntersect g) =
    if f = then bigIntersect { t. cross universe t | t g }
    else if g = then bigIntersect { s. cross s universe | s f }
    else bigIntersect { s t. cross s t | s f t g }

f s t u.
    { x. x | x u f x image f s } s t u
    { x. x | x u f x image f t } t s u
    image f (s t) = image f s image f t

f s t.
    (x. x s f x t)
    ((x y. x s y s f x = f y x = y)
     (y. y t x. x s f x = y)
     g.
       (y. y t g y s) (y. y t f (g y) = y)
       x. x s g (f x) = x)

d a s t.
    { f. f |
      (x. x insert a s f x t) x. ¬(x insert a s) f x = d } =
    image (λ(b, g) x. if x = a then b else g x)
      (cross t { f. f | (x. x s f x t) x. ¬(x s) f x = d })

External Type Operators

External Constants

Assumptions

id = λx. x

¬

¬

t. t t

p. p

t. t ¬t

m. ¬(m < 0)

n. 0 < suc n

(¬) = λp. p

() = λp. p ((select) p)

a. x. x = a

t. (x. t) t

t. (x. t) t

t. (λx. t x) = t

() = λp. p = λx.

t. ¬¬t t

t. ( t) t

t. (t ) t

t. t

t. t t

t. t

t. t t

t. t t t

t. t

t. t t

t. t

t. t t

t. t

t. t t

t. t

t. t t t

n. ¬(suc n = 0)

t. ( t) ¬t

t. (t ) ¬t

t. t ¬t

() = λp q. p q p

t. (t ) (t )

s. rest s = delete s (choice s)

t1 t2. (if then t1 else t2) = t2

t1 t2. (if then t1 else t2) = t1

a b. fst (a, b) = a

a b. snd (a, b) = b

p x. p x p ((select) p)

x. a b. x = (a, b)

x y. x = y y = x

x y. x = y y = x

t1 t2. t1 t2 t2 t1

t1 t2. t1 t2 t2 t1

a b. (a b) a b

p x. x fromPredicate p p x

= { x. x | }

universe = { x. x | }

m n. m < suc n m n

m. m = 0 n. m = suc n

() = λp q. (λf. f p q) = λf. f

p. ¬(x. p x) x. ¬p x

p. ¬(x. p x) x. ¬p x

() = λp. q. (x. p x q) q

t1 t2. ¬(t1 t2) t1 ¬t2

t1 t2. ¬t1 ¬t2 t2 t1

m n. suc m < suc n m < n

s t. disjoint s t s t =

f g x. (f g) x = f (g x)

t1 t2. ¬(t1 t2) ¬t1 ¬t2

t1 t2. ¬(t1 t2) ¬t1 ¬t2

p. (x. p x) a b. p (a, b)

p. (x. p x) a b. p (a, b)

f g. (x. f x = g x) f = g

p a. (x. x = a p x) p a

p a. (x. a = x p x) p a

p a. (x. x = a p x) p a

() = λp q. r. (p r) (q r) r

f. fn. a b. fn (a, b) = f a b

p. (x y. p x y) y x. p x y

p. (x y. p x y) y x. p x y

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

p q. p (x. q x) x. p q x

m n. m < suc n m = n m < n

s t. s t s t ¬(s = t)

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

x y z. x = y y = z x = z

p q r. p q r p q r

t1 t2 t3. (t1 t2) t3 t1 t2 t3

t1 t2 t3. (t1 t2) t3 t1 t2 t3

s t. s t x. x s x t

s t. (x. x s x t) s = t

r. (x. y. r x y) f. x. r x (f x)

p q r. p (q r) p q p r

p q r. p q r (p q) (p r)

p q r. (p q) r p r q r

p q r. p q r (p r) (q r)

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

s. bigIntersect s = { x. x | u. u s x u }

s. bigUnion s = { x. x | u. u s x u }

a b a' b'. (a, b) = (a', b') a = a' b = b'

x s. insert x s = { y. y | y = x y s }

s t. s t = { x. x | x s x t }

s t. s t = { x. x | x s x t }

s x. delete s x = { y. y | y s ¬(y = x) }

s t. s \ t = { x. x | x s ¬(x t) }

p c x y. p (if c then x else y) (c p x) (¬c p y)

f s. image f s = { y. y | x. x s y = f x }

s t. cross s t = { x y. (x, y) | x s y t }