Theory: WELLORDER

Parents


Type constants


Term constants


Axioms


Definitions

wo_subset
|- !P Q. P wo_subset Q = (!x. P x ==> Q x)
wo_Union
|- !P. wo_Union P = (\x. ?p. P p /\ p x)
wo_fl
|- !l x. wo_fl l x = (?y. l (x,y) \/ l (y,x))
wo_poset
|- !l.
     wo_poset l =
     (!x. wo_fl l x ==> l (x,x)) /\
     (!x y z. l (x,y) /\ l (y,z) ==> l (x,z)) /\
     (!x y. l (x,y) /\ l (y,x) ==> (x = y))
wo_chain
|- !l P. wo_chain l P = (!x y. P x /\ P y ==> l (x,y) \/ l (y,x))
wo_woset
|- !l.
     wo_woset l =
     (!x. wo_fl l x ==> l (x,x)) /\
     (!x y z. l (x,y) /\ l (y,z) ==> l (x,z)) /\
     (!x y. l (x,y) /\ l (y,x) ==> (x = y)) /\
     (!x y. wo_fl l x /\ wo_fl l y ==> l (x,y) \/ l (y,x)) /\
     (!P.
       (!x. P x ==> wo_fl l x) /\ (?x. P x) ==>
       (?y. P y /\ (!z. P z ==> l (y,z))))
wo_inseg
|- !l m.
     wo_inseg (l,m) =
     wo_woset l /\ wo_woset m /\ (!x y. l (x,y) = wo_fl l y /\ m (x,y))
wo_less
|- !l x y. wo_less l (x,y) = l (x,y) /\ ~(x = y)

Theorems

SUBSET_REFL
|- !P. P wo_subset P
SUBSET_ANTISYM
|- !P Q. P wo_subset Q /\ Q wo_subset P ==> (P = Q)
SUBSET_TRANS
|- !P Q R. P wo_subset Q /\ Q wo_subset R ==> P wo_subset R
POSET_FLEQ
|- !l. wo_poset l ==> (!x. wo_fl l x = l (x,x))
CHAIN_SUBSET
|- !l P Q. wo_chain l P /\ Q wo_subset P ==> wo_chain l Q
WOSET_POSET
|- !l. wo_woset l ==> wo_poset l
WOSET_FLEQ
|- !l. wo_woset l ==> (!x. wo_fl l x = l (x,x))
WOSET_TRANS_LESS
|- !l. wo_woset l ==> (!x y z. wo_less l (x,y) /\ l (y,z) ==> wo_less l (x,z))
WOSET
|- !l.
     wo_woset l =
     (!x y. l (x,y) /\ l (y,x) ==> (x = y)) /\
     (!P.
       (!x. P x ==> wo_fl l x) /\ (?x. P x) ==>
       (?y. P y /\ (!z. P z ==> l (y,z))))
CPO_FIX
|- !l.
     wo_poset l /\
     (!A.
       wo_chain l A ==>
       (?m.
         wo_fl l m /\
         (!x. A x ==> l (x,m)) /\
         (!m'. wo_fl l m' /\ (!x. A x ==> l (x,m')) ==> l (m,m')))) /\
     (!x. wo_fl l x ==> l (x,f x)) ==>
     (?y. wo_fl l y /\ (f y = y))
POSET_ORD
|- wo_poset (\(U,V). P wo_subset U /\ U wo_subset V /\ wo_chain l V)
KL
|- !l.
     wo_poset l ==>
     (!Q.
       wo_chain l Q ==>
       (?P.
         (wo_chain l P /\ Q wo_subset P) /\
         (!R. wo_chain l R /\ P wo_subset R ==> (R = P))))
HP
|- !l.
     wo_poset l ==>
     (?P. wo_chain l P /\ (!Q. wo_chain l Q /\ P wo_subset Q ==> (Q = P)))
ZL
|- !l.
     wo_poset l /\
     (!P. wo_chain l P ==> (?y. wo_fl l y /\ (!x. P x ==> l (x,y)))) ==>
     (?y. wo_fl l y /\ (!x. l (y,x) ==> (y = x)))
INSEG_WOSET
|- !l m. wo_inseg (l,m) ==> wo_woset l /\ wo_woset m
INSEG_FL
|- !l. wo_fl wo_inseg l = wo_woset l
INSEG_SUBSET
|- !l m. wo_inseg (l,m) ==> (!x y. l (x,y) ==> m (x,y))
INSEG_POSET
|- wo_poset wo_inseg
FL_UNION
|- !P x. wo_fl (wo_Union P) x = (?l. P l /\ wo_fl l x)
INSEG_WOSET_UNION
|- !P. wo_chain wo_inseg P ==> wo_woset (wo_Union P)
WOSET_MAXIMAL
|- ?y. wo_fl wo_inseg y /\ (!x. wo_inseg (y,x) ==> (y = x))
WO_EXFL
|- !x.
     wo_fl (\(x,y). l (x,y) \/ (wo_fl l x \/ (x = m)) /\ (y = m)) x =
     wo_fl l x \/ (x = m)
WO_TYPE
|- ?l. wo_woset l /\ (!x. wo_fl l x)
WO_RESTFL
|- !l.
     wo_woset l ==>
     (!P. wo_fl (\(x,y). P x /\ P y /\ l (x,y)) x = P x /\ wo_fl l x)
WO
|- !P. ?l. wo_woset l /\ (wo_fl l = P)
WO_INDUCT
|- !P l.
     wo_woset l /\
     (!x. wo_fl l x /\ (!y. wo_less l (y,x) ==> P y) ==> P x) ==>
     (!x. wo_fl l x ==> P x)
AGREE_LEMMA
|- !l h ms m n f g z.
     wo_woset l /\
     (!x. wo_fl l (ms x)) /\
     (!f f' x.
       (!y. wo_less l (ms y,ms x) ==> (f y = f' y)) ==> (h f x = h f' x)) /\
     (!x. l (ms x,m) ==> (f x = h f x)) /\
     (!x. l (ms x,n) ==> (g x = h g x)) /\
     l (ms z,m) /\
     l (ms z,n) ==>
     (f z = g z)
WO_RECURSE_LOCAL
|- !l h ms.
     wo_woset l /\
     (!x. wo_fl l (ms x)) /\
     (!f f' x.
       (!y. wo_less l (ms y,ms x) ==> (f y = f' y)) ==> (h f x = h f' x)) ==>
     (!n. ?f. !x'. l (ms x',n) ==> (f x' = h f x'))
WO_RECURSE_EXISTS
|- !l h ms.
     wo_woset l /\
     (!x. wo_fl l (ms x)) /\
     (!f f' x.
       (!y. wo_less l (ms y,ms x) ==> (f y = f' y)) ==> (h f x = h f' x)) ==>
     (?f. !x. f x = h f x)
WO_RECURSE
|- !l h ms.
     wo_woset l /\
     (!x. wo_fl l (ms x)) /\
     (!f g x.
       (!y. wo_less l (ms y,ms x) ==> (f y = g y)) ==> (h f x = h g x)) ==>
     (?!f. !x. f x = h f x)
FL_NUM
|- !n. wo_fl (\(m,n). m <= n) n
WOSET_NUM
|- wo_woset (\(m,n). m <= n)
WO_RECURSE_NUM
|- !h ms.
     (!f g x. (!y. ms y < ms x ==> (f y = g y)) ==> (h f x = h g x)) ==>
     (?!f. !x. f x = h f x)