src/HOL/Real/HahnBanach/HahnBanachExtLemmas.thy
changeset 14711 521aa281808a
parent 14710 247615bfffb8
child 15229 1eb23f805c06
equal deleted inserted replaced
14710:247615bfffb8 14711:521aa281808a
     3     Author:     Gertrud Bauer, TU Munich
     3     Author:     Gertrud Bauer, TU Munich
     4 *)
     4 *)
     5 
     5 
     6 header {* Extending non-maximal functions *}
     6 header {* Extending non-maximal functions *}
     7 
     7 
     8 theory HahnBanachExtLemmas = FunctionNorm + RealLemmas:
     8 theory HahnBanachExtLemmas = FunctionNorm:
     9 
     9 
    10 text {*
    10 text {*
    11   In this section the following context is presumed.  Let @{text E} be
    11   In this section the following context is presumed.  Let @{text E} be
    12   a real vector space with a seminorm @{text q} on @{text E}. @{text
    12   a real vector space with a seminorm @{text q} on @{text E}. @{text
    13   F} is a subspace of @{text E} and @{text f} a linear function on
    13   F} is a subspace of @{text E} and @{text f} a linear function on
   225           a * (- p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y))"
   225           a * (- p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y))"
   226         by (simp add: mult_left_mono_neg order_less_imp_le)
   226         by (simp add: mult_left_mono_neg order_less_imp_le)
   227 
   227 
   228       also have "\<dots> =
   228       also have "\<dots> =
   229           - a * (p (inverse a \<cdot> y + x0)) - a * (h (inverse a \<cdot> y))"
   229           - a * (p (inverse a \<cdot> y + x0)) - a * (h (inverse a \<cdot> y))"
   230 	by (rule real_mult_diff_distrib) 
   230 	by (simp add: right_diff_distrib)
   231       also from lz x0 y' have "- a * (p (inverse a \<cdot> y + x0)) =
   231       also from lz x0 y' have "- a * (p (inverse a \<cdot> y + x0)) =
   232           p (a \<cdot> (inverse a \<cdot> y + x0))"
   232           p (a \<cdot> (inverse a \<cdot> y + x0))"
   233         by (simp add: abs_homogenous abs_minus_eqI2)
   233         by (simp add: abs_homogenous abs_minus_eqI2)
   234       also from nz x0 y' have "\<dots> = p (y + a \<cdot> x0)"
   234       also from nz x0 y' have "\<dots> = p (y + a \<cdot> x0)"
   235         by (simp add: add_mult_distrib1 mult_assoc [symmetric])
   235         by (simp add: add_mult_distrib1 mult_assoc [symmetric])
   245       have "xi \<le> p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y)" ..
   245       have "xi \<le> p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y)" ..
   246       with gz have "a * xi \<le>
   246       with gz have "a * xi \<le>
   247           a * (p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y))"
   247           a * (p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y))"
   248         by simp
   248         by simp
   249       also have "... = a * p (inverse a \<cdot> y + x0) - a * h (inverse a \<cdot> y)"
   249       also have "... = a * p (inverse a \<cdot> y + x0) - a * h (inverse a \<cdot> y)"
   250 	by (rule real_mult_diff_distrib2) 
   250 	by (simp add: right_diff_distrib)
   251       also from gz x0 y'
   251       also from gz x0 y'
   252       have "a * p (inverse a \<cdot> y + x0) = p (a \<cdot> (inverse a \<cdot> y + x0))"
   252       have "a * p (inverse a \<cdot> y + x0) = p (a \<cdot> (inverse a \<cdot> y + x0))"
   253         by (simp add: abs_homogenous abs_eqI2)
   253         by (simp add: abs_homogenous abs_eqI2)
   254       also from nz x0 y' have "\<dots> = p (y + a \<cdot> x0)"
   254       also from nz x0 y' have "\<dots> = p (y + a \<cdot> x0)"
   255         by (simp add: add_mult_distrib1 mult_assoc [symmetric])
   255         by (simp add: add_mult_distrib1 mult_assoc [symmetric])