(*-------------------------------------------* | CSP-Prover on Isabelle2004 | | August 2004 | | | | CSP-Prover on Isabelle2005 | | October 2005 (modified) | | | | Yoshinao Isobe (AIST JAPAN) | *-------------------------------------------*) theory CPO_set = CPO: (***************************************************************** 1. Sets are CPO. 2. 3. 4. *****************************************************************) (********************************************************** def: prod of bot **********************************************************) instance set :: (type) bot0 apply (intro_classes) done defs (overloaded) set_Bot_def : "Bot == {}" (************************************************************ Set bot ==> bot ************************************************************) (*** set Bot ***) lemma set_Bot: "ALL (X::('a set)). Bot <= X" apply (simp add: set_Bot_def) done (***************************** Set bot => bot *****************************) instance set :: (type) bot apply (intro_classes) by (simp add: set_Bot) (************************************************************ Set : CPO ************************************************************) (*** set directed decompo ***) lemma set_cpo_lm: "directed (Xs::('a set) set) ==> Xs hasLUB" apply (simp add: hasLUB_def) apply (rule_tac x="Union Xs" in exI) apply (simp add: isLUB_def isUB_def) by (auto) (***************************** Set : CPO *****************************) instance set :: (type) cpo apply (intro_classes) by (simp add: set_cpo_lm) (************************************************************ Set : CPO_BOT ************************************************************) instance set :: (type) cpo_bot by (intro_classes) end
lemma set_Bot:
∀X. Bot ⊆ X
lemma set_cpo_lm:
directed Xs ==> Xs hasLUB