latte-sets.equiv

Equivalence relations

all-disjoint

(all-disjoint [P (powerset T)])
(forall
 [s1 s2 (set T)]
 (==>
  (set-elem s1 P)
  (set-elem s2 P)
  (not (set-equal s1 s2))
  (set-equal (inter s1 s2) (emptyset T))))

Definition: The sets of partition P are all disjoints

all-nonempty

(all-nonempty [P (powerset T)])
(forall
 [s (set T)]
 (==> (set-elem s P) (not (set-equal s (emptyset T)))))

Definition:

eqclass

(eqclass [x T] [R (rel T T)] [eqR (equivalence R)])
(lambda [y T] (R x y))

Definition: The equivalence class of element x wrt. relation R.

eqclass-eq

(eqclass-eq [x T] [y T] [R (rel T T)] [eqR (equivalence R)])
(==> (R x y) (seteq (eqclass x R eqR) (eqclass y R eqR)))

Theorem:

eqclass-equal

(eqclass-equal [x T] [y T] [R (rel T T)] [eqR (equivalence R)])
(==> (R x y) (set-equal (eqclass x R eqR) (eqclass y R eqR)))

Theorem:

eqclass-mem

(eqclass-mem [x T] [R (rel T T)] [eqR (equivalence R)])
(elem x (eqclass x R eqR))

Theorem:

eqclass-subset

(eqclass-subset [x T] [y T] [R (rel T T)] [eqR (equivalence R)])
(==> (R x y) (subset (eqclass x R eqR) (eqclass y R eqR)))

Theorem:

equiv-refl

(equiv-refl [R (rel T T)] [eqR (equivalence R)])
(reflexive R)

Theorem:

equiv-sym

(equiv-sym [R (rel T T)] [eqR (equivalence R)])
(symmetric R)

Theorem:

equiv-trans

(equiv-trans [R (rel T T)] [eqR (equivalence R)])
(transitive R)

Theorem:

equivalence

(equivalence [R (rel T T)])
(and* (reflexive R) (symmetric R) (transitive R))

Definition: An equivalence relation.

ident-equiv

(ident-equiv [T :type])
(equivalence (rel/identity T))

Theorem: The indentity on T is an equivalence relation.

partition

(partition [S (set T)] [P (powerset T)])
(and* (all-nonempty P) (partition-member S P) (all-disjoint P))

Definition: P is a partition of set s

partition-member

(partition-member [s (set T)] [P (powerset T)])
(forall-in
 [x s]
 (set-ex (lambda [sp (set T)] (and (set-elem sp P) (elem x sp)))))

Definition: The elements of set s are members of partition P