Theory: fixpoint

Parents


Type constants


Term constants


Axioms


Definitions

LESS_DEF
|- !f1 f2. f1 <<< f2 = (!x. f1 x ==> f2 x)
FIX
|- !fun. FIX fun = (@f. (fun f = f) /\ (!f'. (fun f' = f') ==> f <<< f'))
FUNPOW
|- (!f x. FUNPOW 0 f x = x) /\ (!n f x. FUNPOW (SUC n) f x = f (FUNPOW n f x))
SUP
|- !c. SUP c = (\x. ?n. c n x)
BOT
|- BOT = (\x. F)
LIM_FUNPOW
|- !fun. LIM_FUNPOW fun = SUP (\n. FUNPOW n fun BOT)
CHAINF
|- !c. CHAINF c = (!n. c n <<< c (SUC n))
TRIV_CHAINF
|- !p1 p2. TRIV_CHAINF p1 p2 = (\n. (n = 0) => p1 | p2)
MONOTONE
|- !fun. MONOTONE fun = (!p1 p2. p1 <<< p2 ==> fun p1 <<< fun p2)
CONTINUOUSF
|- !fun.
     CONTINUOUSF fun = (!c. CHAINF c ==> (fun (SUP c) = SUP (\n. fun (c n))))
ADMITS_INDUCTION
|- !p. ADMITS_INDUCTION p = (!c. CHAINF c /\ (!n. p (c n)) ==> p (SUP c))

Theorems

TRIV_CHAINF_LEMMA
|- !p1 p2. p1 <<< p2 ==> CHAINF (TRIV_CHAINF p1 p2)
CHAINF_FUNPOW
|- !fun. MONOTONE fun ==> CHAINF (\n. FUNPOW n fun BOT)
SUP_CHAINF_LEMMA
|- !p1 p2. p1 <<< p2 = SUP (TRIV_CHAINF p1 p2) = p2
LAMB_TRIV_CHAINF
|- !fun p1 p2. (\n. fun (TRIV_CHAINF p1 p2 n)) = TRIV_CHAINF (fun p1) (fun p2)
CONT_MONOTONE
|- !fun. CONTINUOUSF fun ==> MONOTONE fun
FIX_LEMMA
|- !fun. CONTINUOUSF fun ==> (fun (LIM_FUNPOW fun) = LIM_FUNPOW fun)
LEAST_FIX_LEMMA
|- !fun.
     CONTINUOUSF fun ==> (!f. (fun f = f) ==> (!n. FUNPOW n fun BOT <<< f))
LEAST_FIX_THM
|- !fun. CONTINUOUSF fun ==> (!f. (fun f = f) ==> LIM_FUNPOW fun <<< f)
LIM_FUNPOW_THM
|- !fun.
     CONTINUOUSF fun ==>
     (fun (LIM_FUNPOW fun) = LIM_FUNPOW fun) /\
     (!f. (fun f = f) ==> LIM_FUNPOW fun <<< f)
FIX_EXISTS
|- !fun.
     CONTINUOUSF fun ==>
     (?f. (fun f = f) /\ (!f'. (fun f' = f') ==> f <<< f'))
FIX_THM
|- !fun.
     CONTINUOUSF fun ==>
     (fun (FIX fun) = FIX fun) /\ (!f. (fun f = f) ==> FIX fun <<< f)
ANTISYM_LEMMA
|- !f g. f <<< g /\ g <<< f ==> (f = g)
FIX_LIM_FUNPOW_THM
|- !fun. CONTINUOUSF fun ==> (FIX fun = LIM_FUNPOW fun)
HOARE_ADMITS_LEMMA
|- !p q. ADMITS_INDUCTION (\f. !s1 s2. p s1 /\ f (s1,s2) ==> q s2)
SCOTT_INDUCTION_LEMMA
|- !p fun.
     CONTINUOUSF fun /\ p BOT /\ (!f. p f ==> p (fun f)) ==>
     (!n. p (FUNPOW n fun BOT))
SCOTT_INDUCTION_THM
|- !p fun.
     ADMITS_INDUCTION p /\
     CONTINUOUSF fun /\
     p BOT /\
     (!f. p f ==> p (fun f)) ==>
     p (FIX fun)