Package relation-natural: Relations over natural numbers

Information

namerelation-natural
version1.39
descriptionRelations over natural numbers
authorJoe Leslie-Hurd <joe@gilith.com>
licenseMIT
checksum09d44e8e8fc16e4bf812940c2d86d51d5ee2a9fe
requiresbool
function
natural
relation-def
relation-thm
relation-well-founded
set
showData.Bool
Function
Number.Natural
Relation

Files

Defined Constants

Theorems

irreflexive isSuc

transitive (<)

wellFounded (<)

wellFounded isSuc

subrelation isSuc (<)

transitiveClosure isSuc = (<)

m. wellFounded (measure m)

m n. isSuc m n suc m = n

r. subrelation isSuc r transitive r subrelation (<) r

m x y. measure m x y m x < m y

r. wellFounded r ¬f. n. r (f (suc n)) (f n)

p g h. f. x. f x = if p x then f (g x) else h x

m a b. (y. measure m y a measure m y b) m a m b

s. Set.infinite s f. (x. Set.∈ (f x) s) x y. f x = f y x = y

r.
    (x y z. r x y r y z r x z)
    (wellFounded r ¬s. i j. i < j r (s j) (s i))

r.
    wellFounded 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

r.
    wellFounded 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

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) wellFounded r

r.
    (x. ¬r x x) (x y z. r x y r y z r x z)
    (x. Set.finite { y. y | r y x }) wellFounded r

r.
    wellFounded 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

r.
    wellFounded 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

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) wellFounded r

r bad.
    wellFounded r
    (x. ¬bad x n. y. (k. k < n y k = x k) ¬bad y) (x. bad x)
    y. bad y z n. bad z (k. k < n z k = y k) ¬r (z n) (y n)

r.
    wellFounded r
    p.
      (f g x y. (z. r z x f z = g z) (p f x y p g x y))
      (f x. (z. r z x p f z (f z)) y. p f x y) f. x. p f x (f x)

External Type Operators

External Constants

Assumptions

Set.infinite Set.universe

¬

¬

x. Set.∈ x Set.universe

t. t t

p. p

x. id x = x

t. t ¬t

m. ¬(m < 0)

n. ¬(n < n)

n. 0 < suc n

n. n < suc n

(¬) = λp. p

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

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

m. m + 0 = m

r. wellFounded r irreflexive r

t. ( t) ¬t

t. t ¬t

s. Set.infinite s ¬Set.finite s

() = λp q. p q p

t. (t ) (t )

s. Set.infinite s ¬(s = Set.∅)

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

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

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

f y. (let x y in f x) = f y

x y. x = y y = x

t1 t2. t1 t2 t2 t1

t1 t2. t1 t2 t2 t1

s x. Set.finite (Set.insert x s) Set.finite s

f s. Set.finite s Set.finite (Set.image f s)

m n. ¬(m n) n < m

m. m = 0 n. m = suc n

s. (x. Set.∈ x s) ¬(s = Set.∅)

() = λ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

m n. m + suc n = suc (m + n)

m n. suc m < suc n m < n

s t. Set.finite t Set.⊆ s t Set.finite s

s t. Set.infinite s Set.⊆ s t Set.infinite t

r s. subrelation r s wellFounded s wellFounded r

n. Set.finite { m. m | m < n }

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

s t. Set.infinite s Set.finite t Set.infinite (Set.\ s t)

r m. wellFounded r wellFounded (λx y. r (m x) (m y))

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

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

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

r s.
    subrelation r s transitive s subrelation (transitiveClosure r) s

r s. subrelation r s subrelation s r r = s

m n. m < n d. n = m + suc d

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

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

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 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

m n p. m < n n < p m < p

m n p. m < n n p m < p

s t. Set.⊆ s t x. Set.∈ x s Set.∈ x t

p x. (y. p y y = x) (select) p = x

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

p. p 0 (n. p n p (suc n)) n. p n

r s. subrelation r (bigIntersect s) t. Set.∈ t s subrelation r t

p x. Set.∈ x { y. y | p y } p x

r s. subrelation r s x y. r x y s x y

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

(∃!) = λp. () p x y. p x p y x = y

p. (n. (m. m < n p m) p n) n. p n

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

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 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

r.
    transitiveClosure r =
    bigIntersect { s. s | subrelation r s transitive s }

e f. ∃!fn. fn 0 = e n. fn (suc n) = f (fn n) n

p. (n. p n) n. p n m. m < n ¬p m

y s f. Set.∈ y (Set.image f s) x. y = f x Set.∈ x s

r. transitive r x y z. r x y r y z r x z

p1 p2 q1 q2. (p1 p2) (q1 q2) p1 q1 p2 q2

p1 p2 q1 q2. (p2 p1) (q1 q2) (p1 q1) p2 q2

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

r. wellFounded r p. (x. (y. r y x p y) p x) x. p x

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

r. wellFounded r p. (x. p x) x. p x y. r y x ¬p y

f s.
    Set.infinite s (x y. Set.∈ x s Set.∈ y s f x = f y x = y)
    Set.infinite (Set.image f s)