- empty_part_fun_DEF
-
|- empty_part_fun = (\y. undefined)
- singleton_part_fun_DEF
-
|- !x s. singleton_part_fun x s = (\y. (x = y) => (lift s) | undefined)
- update_fun_DEF
-
|- !f x y. update_fun f x y = (\z. (x = z) => y | (f z))
- modify_part_fun_DEF
-
|- !f g. modify_part_fun f g = (\x. (g x = undefined) => (f x) | (g x))
- part_fun_range_DEF
-
|- !f. part_fun_range f = (\y. ?x. f x = lift y)
- part_fun_domain_DEF
-
|- !f. part_fun_domain f = (\x. is_defined (f x))
- disjoint_domains_DEF
-
|- !f g.
disjoint_domains f g = ~(?x. part_fun_domain f x = part_fun_domain g x)
- lift_fun_DEF
-
|- !f. lift_fun f = (\x. lift (f x))
- lift_compose_DEF
-
|- !g f x.
lift_compose g f x =
((is_defined (f x)) => (g (lower (f x))) | undefined)
- lift_fun_of_graph_DEF
-
|- !g x.
(?y. g x y)
=> (is_defined (lift_fun_of_graph g x) /\
g x (lower (lift_fun_of_graph g x)))
| (lift_fun_of_graph g x = undefined)
- is_part_fun_graph_DEF
-
|- !g. is_part_fun_graph g = (!x y1 y2. g x y1 /\ g x y2 ==> (y1 = y2))
- mk_part_fun_graph_DEF
-
|- !f. mk_part_fun_graph f = (\x y. f x = lift y)
- graph_compose_DEF
-
|- !g h. graph_compose g h = (\x z. ?y. h x y /\ g y z)
- modify_ID
-
|- !f.
(modify_part_fun empty_part_fun f = f) /\
(modify_part_fun f empty_part_fun = f)
- part_fun_range_lemma
-
|- !f x. is_defined (f x) ==> part_fun_range f (lower (f x))
- part_fun_domain_lemma
-
|- !f x. part_fun_domain f x = is_defined (f x)
- part_fun_domain_undef_lemma
-
|- !x. ~(part_fun_domain (\x. undefined) x)
- disjoint_domians_modify_commute
-
|- !f g. disjoint_domains f g ==> (modify_part_fun f g = modify_part_fun g f)
- lift_fun_ASSOC_THM
-
|- !g f x. lift_fun g (f x) = lift_fun (g o f) x
- lift_fun_domain_TOTAL
-
|- !f. part_fun_domain (lift_fun f) = (\x. T)
- lift_compose_ASSOC
-
|- !h g f.
lift_compose h (lift_compose g f) = lift_compose (lift_compose h g) f
- lift_compose_lift_THM
-
|- !g f x. lift_compose g (lift_fun f) x = g (f x)
- lift_compose_lemma
-
|- !g f.
lift_compose g f =
(\x. (is_defined (f x)) => (g (lower (f x))) | undefined)
- lift_compose_ID
-
|- !f.
(lift_compose f (lift_fun (\x. x)) = f) /\
(lift_compose (lift_fun (\x. x)) f = f)
- lift_fun_compose_COMMUTE
-
|- !g f. lift_compose (lift_fun g) (lift_fun f) = lift_fun (g o f)
- range_compose
-
|- !f g t.
part_fun_range f t ==> part_fun_range (lift_compose (lift_fun g) f) (g t)
- lift_fun_of_graph_lemma
-
|- !g x.
((lift_fun_of_graph g x = undefined) = (!y. ~(g x y))) /\
(is_defined (lift_fun_of_graph g x) =
g x (lower (lift_fun_of_graph g x))) /\
((?y. g x y) = g x (lower (lift_fun_of_graph g x)))
- fun_graph_fun_THM
-
|- !f. lift_fun_of_graph (mk_part_fun_graph f) = f
- fun_fun_graph_THM
-
|- !g. (mk_part_fun_graph (lift_fun_of_graph g) = g) = is_part_fun_graph g
- graph_lift_compose_COMMUTE
-
|- !g f.
graph_compose (mk_part_fun_graph g) (mk_part_fun_graph f) =
mk_part_fun_graph (lift_compose g f)
- lift_graph_compose_is_lift_compose_graph
-
|- !h g.
is_part_fun_graph h /\ is_part_fun_graph g ==>
(lift_fun_of_graph (graph_compose h g) =
lift_compose (lift_fun_of_graph h) (lift_fun_of_graph g))