diff -r ecf9a884970d -r 09d78ec709c7 src/HOL/Real/HahnBanach/FunctionNorm.thy --- a/src/HOL/Real/HahnBanach/FunctionNorm.thy Thu Sep 23 12:48:49 2004 +0200 +++ b/src/HOL/Real/HahnBanach/FunctionNorm.thy Mon Sep 27 10:27:34 2004 +0200 @@ -82,7 +82,17 @@ normed space @{text "(V, \\\)"} has a function norm. *} -lemma (in normed_vectorspace) fn_norm_works: (* FIXME bug with "(in fn_norm)" !? *) +(* Alternative statement of the lemma as + lemma (in fn_norm) + includes normed_vectorspace + continuous + shows "lub (B V f) (\f\\V)" + is not possible: + fn_norm contrains parameter norm to type "'a::zero => real", + normed_vectorspace and continuous contrain this parameter to + "'a::{minus, plus, zero} => real, which is less general. +*) + +lemma (in normed_vectorspace) fn_norm_works: includes fn_norm + continuous shows "lub (B V f) (\f\\V)" proof - @@ -154,7 +164,7 @@ shows "b \ \f\\V" proof - have "lub (B V f) (\f\\V)" - by (unfold B_def fn_norm_def) (rule fn_norm_works [OF _ continuous.intro]) + by (unfold B_def fn_norm_def) (rule fn_norm_works [OF continuous.intro]) from this and b show ?thesis .. qed @@ -164,7 +174,7 @@ shows "\f\\V \ y" proof - have "lub (B V f) (\f\\V)" - by (unfold B_def fn_norm_def) (rule fn_norm_works [OF _ continuous.intro]) + by (unfold B_def fn_norm_def) (rule fn_norm_works [OF continuous.intro]) from this and b show ?thesis .. qed @@ -178,7 +188,7 @@ So it is @{text "\ 0"} if all elements in @{text B} are @{text "\ 0"}, provided the supremum exists and @{text B} is not empty. *} have "lub (B V f) (\f\\V)" - by (unfold B_def fn_norm_def) (rule fn_norm_works [OF _ continuous.intro]) + by (unfold B_def fn_norm_def) (rule fn_norm_works [OF continuous.intro]) moreover have "0 \ B V f" .. ultimately show ?thesis .. qed @@ -201,7 +211,7 @@ also have "\\\ = 0" by simp also have a: "0 \ \f\\V" by (unfold B_def fn_norm_def) - (rule fn_norm_ge_zero [OF _ continuous.intro]) + (rule fn_norm_ge_zero [OF continuous.intro]) have "0 \ norm x" .. with a have "0 \ \f\\V * \x\" by (simp add: zero_le_mult_iff) finally show "\f x\ \ \f\\V * \x\" . @@ -215,7 +225,7 @@ from x and neq have "\f x\ * inverse \x\ \ B V f" by (auto simp add: B_def real_divide_def) then show "\f x\ * inverse \x\ \ \f\\V" - by (unfold B_def fn_norm_def) (rule fn_norm_ub [OF _ continuous.intro]) + by (unfold B_def fn_norm_def) (rule fn_norm_ub [OF continuous.intro]) qed finally show ?thesis . qed