Theory "fixedPoint"

Parents     list pred_set

Signature

Constant Type
gfp :(('a -> bool) -> 'a -> bool) -> 'a -> bool
lfp :(('a -> bool) -> 'a -> bool) -> 'a -> bool
dense :(('a -> bool) -> 'a -> bool) -> ('a -> bool) -> bool
monotone :(('a -> bool) -> 'b -> bool) -> bool
closed :(('a -> bool) -> 'a -> bool) -> ('a -> bool) -> bool
empty :'a -> 'b -> bool
fnsum :('b -> 'a -> bool) -> ('b -> 'a -> bool) -> 'b -> 'a -> bool

Definitions

monotone_def
|- !f. monotone f = !X Y. X SUBSET Y ==> f X SUBSET f Y
lfp_def
|- !f. lfp f = BIGINTER {X | f X SUBSET X}
gfp_def
|- !f. gfp f = BIGUNION {X | X SUBSET f X}
closed_def
|- !f X. closed f X = f X SUBSET X
dense_def
|- !f X. dense f X = X SUBSET f X
fnsum_def
|- !f1 f2 X. (f1 ++ f2) X = f1 X UNION f2 X
empty_def
|- empty = (\X. {})


Theorems

lfp_least_closed
|- !f. monotone f ==> closed f (lfp f) /\ !X. closed f X ==> lfp f SUBSET X
gfp_greatest_dense
|- !f. monotone f ==> dense f (gfp f) /\ !X. dense f X ==> X SUBSET gfp f
lfp_fixedpoint
|- !f. monotone f ==> (lfp f = f (lfp f)) /\ !X. (X = f X) ==> lfp f SUBSET X
gfp_greatest_fixedpoint
|- !f. monotone f ==> (gfp f = f (gfp f)) /\ !X. (X = f X) ==> X SUBSET gfp f
lfp_induction
|- !f. monotone f ==> !X. f X SUBSET X ==> lfp f SUBSET X
gfp_coinduction
|- !f. monotone f ==> !X. X SUBSET f X ==> X SUBSET gfp f
lfp_strong_induction
|- !f. monotone f ==> !X. f (X INTER lfp f) SUBSET X ==> lfp f SUBSET X
gfp_strong_coinduction
|- !f. monotone f ==> !X. X SUBSET f (X UNION gfp f) ==> X SUBSET gfp f
fnsum_monotone
|- !f1 f2. monotone f1 /\ monotone f2 ==> monotone (f1 ++ f2)
empty_monotone
|- monotone empty
fnsum_empty
|- !f. (f ++ empty = f) /\ (empty ++ f = f)
fnsum_ASSOC
|- !f g h. f ++ (g ++ h) = f ++ g ++ h
fnsum_COMM
|- !f g. f ++ g = g ++ f
fnsum_SUBSET
|- !f g X. f X SUBSET (f ++ g) X /\ g X SUBSET (f ++ g) X
lfp_fnsum
|- !f1 f2.
     monotone f1 /\ monotone f2 ==>
     lfp f1 SUBSET lfp (f1 ++ f2) /\ lfp f2 SUBSET lfp (f1 ++ f2)
lfp_rule_applied
|- !f X y. monotone f /\ X SUBSET lfp f /\ y IN f X ==> y IN lfp f
lfp_empty
|- !f x. monotone f /\ x IN f {} ==> x IN lfp f