diff -r 17bf4ddd0833 -r 51c866d1b53b src/HOL/HOLCF/Completion.thy --- a/src/HOL/HOLCF/Completion.thy Wed Dec 22 18:23:48 2010 -0800 +++ b/src/HOL/HOLCF/Completion.thy Wed Dec 22 18:24:04 2010 -0800 @@ -291,10 +291,10 @@ subsection {* Defining functions in terms of basis elements *} definition - basis_fun :: "('a::type \ 'c::cpo) \ 'b \ 'c" where - "basis_fun = (\f. (\ x. lub (f ` rep x)))" + extension :: "('a::type \ 'c::cpo) \ 'b \ 'c" where + "extension = (\f. (\ x. lub (f ` rep x)))" -lemma basis_fun_lemma: +lemma extension_lemma: fixes f :: "'a::type \ 'c::cpo" assumes f_mono: "\a b. a \ b \ f a \ f b" shows "\u. f ` rep x <<| u" @@ -320,14 +320,14 @@ thus ?thesis .. qed -lemma basis_fun_beta: +lemma extension_beta: fixes f :: "'a::type \ 'c::cpo" assumes f_mono: "\a b. a \ b \ f a \ f b" - shows "basis_fun f\x = lub (f ` rep x)" -unfolding basis_fun_def + shows "extension f\x = lub (f ` rep x)" +unfolding extension_def proof (rule beta_cfun) have lub: "\x. \u. f ` rep x <<| u" - using f_mono by (rule basis_fun_lemma) + using f_mono by (rule extension_lemma) show cont: "cont (\x. lub (f ` rep x))" apply (rule contI2) apply (rule monofunI) @@ -341,11 +341,11 @@ done qed -lemma basis_fun_principal: +lemma extension_principal: fixes f :: "'a::type \ 'c::cpo" assumes f_mono: "\a b. a \ b \ f a \ f b" - shows "basis_fun f\(principal a) = f a" -apply (subst basis_fun_beta, erule f_mono) + shows "extension f\(principal a) = f a" +apply (subst extension_beta, erule f_mono) apply (subst rep_principal) apply (rule lub_eqI) apply (rule is_lub_maximal) @@ -355,34 +355,34 @@ apply (simp add: r_refl) done -lemma basis_fun_mono: +lemma extension_mono: assumes f_mono: "\a b. a \ b \ f a \ f b" assumes g_mono: "\a b. a \ b \ g a \ g b" assumes below: "\a. f a \ g a" - shows "basis_fun f \ basis_fun g" + shows "extension f \ extension g" apply (rule cfun_belowI) - apply (simp only: basis_fun_beta f_mono g_mono) + apply (simp only: extension_beta f_mono g_mono) apply (rule is_lub_thelub_ex) - apply (rule basis_fun_lemma, erule f_mono) + apply (rule extension_lemma, erule f_mono) apply (rule ub_imageI, rename_tac a) apply (rule below_trans [OF below]) apply (rule is_ub_thelub_ex) - apply (rule basis_fun_lemma, erule g_mono) + apply (rule extension_lemma, erule g_mono) apply (erule imageI) done -lemma cont_basis_fun: +lemma cont_extension: assumes f_mono: "\a b x. a \ b \ f x a \ f x b" assumes f_cont: "\a. cont (\x. f x a)" - shows "cont (\x. basis_fun (\a. f x a))" + shows "cont (\x. extension (\a. f x a))" apply (rule contI2) apply (rule monofunI) - apply (rule basis_fun_mono, erule f_mono, erule f_mono) + apply (rule extension_mono, erule f_mono, erule f_mono) apply (erule cont2monofunE [OF f_cont]) apply (rule cfun_belowI) apply (rule principal_induct, simp) apply (simp only: contlub_cfun_fun) - apply (simp only: basis_fun_principal f_mono) + apply (simp only: extension_principal f_mono) apply (simp add: cont2contlubE [OF f_cont]) done