src/HOL/Real/HahnBanach/HahnBanachExtLemmas.thy
changeset 9623 3ade112482af
parent 9503 3324cbbecef8
child 9906 5c027cca6262
equal deleted inserted replaced
9622:d9aa8ca06bc2 9623:3ade112482af
   183 	by (simp add: linearform_add [of H] 
   183 	by (simp add: linearform_add [of H] 
   184                       real_add_mult_distrib);
   184                       real_add_mult_distrib);
   185       also; have "... = (h y1 + a1 * xi) + (h y2 + a2 * xi)"; 
   185       also; have "... = (h y1 + a1 * xi) + (h y2 + a2 * xi)"; 
   186         by simp;
   186         by simp;
   187       also; have "h y1 + a1 * xi = h' x1";
   187       also; have "h y1 + a1 * xi = h' x1";
   188         by (rule h'_definite [RS sym]);
   188         by (rule h'_definite [symmetric]);
   189       also; have "h y2 + a2 * xi = h' x2"; 
   189       also; have "h y2 + a2 * xi = h' x2"; 
   190         by (rule h'_definite [RS sym]);
   190         by (rule h'_definite [symmetric]);
   191       finally; show ?thesis; .;
   191       finally; show ?thesis; .;
   192     qed;
   192     qed;
   193  
   193  
   194     txt{* We further have to show that $h'$ is multiplicative, 
   194     txt{* We further have to show that $h'$ is multiplicative, 
   195     i.~e.\ $h'\ap (c \mult x_1) = c \cdot h'\ap x_1$
   195     i.~e.\ $h'\ap (c \mult x_1) = c \cdot h'\ap x_1$
   227       also; from vs y1'; have "... = c * h y1 + c * a1 * xi"; 
   227       also; from vs y1'; have "... = c * h y1 + c * a1 * xi"; 
   228 	by (simp add: linearform_mult [of H]);
   228 	by (simp add: linearform_mult [of H]);
   229       also; from vs y1'; have "... = c * (h y1 + a1 * xi)"; 
   229       also; from vs y1'; have "... = c * (h y1 + a1 * xi)"; 
   230 	by (simp add: real_add_mult_distrib2 real_mult_assoc);
   230 	by (simp add: real_add_mult_distrib2 real_mult_assoc);
   231       also; have "h y1 + a1 * xi = h' x1"; 
   231       also; have "h y1 + a1 * xi = h' x1"; 
   232         by (rule h'_definite [RS sym]);
   232         by (rule h'_definite [symmetric]);
   233       finally; show ?thesis; .;
   233       finally; show ?thesis; .;
   234     qed;
   234     qed;
   235   qed;
   235   qed;
   236 qed;
   236 qed;
   237 
   237 
   298       have "- a * (p (rinv a \<cdot> y + x0)) = p (a \<cdot> (rinv a \<cdot> y + x0))";
   298       have "- a * (p (rinv a \<cdot> y + x0)) = p (a \<cdot> (rinv a \<cdot> y + x0))";
   299         by (simp add: seminorm_abs_homogenous abs_minus_eqI2);
   299         by (simp add: seminorm_abs_homogenous abs_minus_eqI2);
   300       also; from nz vs y; have "... = p (y + a \<cdot> x0)";
   300       also; from nz vs y; have "... = p (y + a \<cdot> x0)";
   301         by (simp add: vs_add_mult_distrib1);
   301         by (simp add: vs_add_mult_distrib1);
   302       also; from nz vs y; have "a * (h (rinv a \<cdot> y)) =  h y";
   302       also; from nz vs y; have "a * (h (rinv a \<cdot> y)) =  h y";
   303         by (simp add: linearform_mult [RS sym]);
   303         by (simp add: linearform_mult [symmetric]);
   304       finally; have "a * xi <= p (y + a \<cdot> x0) - h y"; .;
   304       finally; have "a * xi <= p (y + a \<cdot> x0) - h y"; .;
   305 
   305 
   306       hence "h y + a * xi <= h y + p (y + a \<cdot> x0) - h y";
   306       hence "h y + a * xi <= h y + p (y + a \<cdot> x0) - h y";
   307         by (simp add: real_add_left_cancel_le);
   307         by (simp add: real_add_left_cancel_le);
   308       thus ?thesis; by simp;
   308       thus ?thesis; by simp;
   327       have "a * p (rinv a \<cdot> y + x0) = p (a \<cdot> (rinv a \<cdot> y + x0))";
   327       have "a * p (rinv a \<cdot> y + x0) = p (a \<cdot> (rinv a \<cdot> y + x0))";
   328         by (simp add: seminorm_abs_homogenous abs_eqI2);
   328         by (simp add: seminorm_abs_homogenous abs_eqI2);
   329       also; from nz vs y; have "... = p (y + a \<cdot> x0)";
   329       also; from nz vs y; have "... = p (y + a \<cdot> x0)";
   330         by (simp add: vs_add_mult_distrib1);
   330         by (simp add: vs_add_mult_distrib1);
   331       also; from nz vs y; have "a * h (rinv a \<cdot> y) = h y";
   331       also; from nz vs y; have "a * h (rinv a \<cdot> y) = h y";
   332         by (simp add: linearform_mult [RS sym]); 
   332         by (simp add: linearform_mult [symmetric]); 
   333       finally; have "a * xi <= p (y + a \<cdot> x0) - h y"; .;
   333       finally; have "a * xi <= p (y + a \<cdot> x0) - h y"; .;
   334  
   334  
   335       hence "h y + a * xi <= h y + (p (y + a \<cdot> x0) - h y)";
   335       hence "h y + a * xi <= h y + (p (y + a \<cdot> x0) - h y)";
   336         by (simp add: real_add_left_cancel_le);
   336         by (simp add: real_add_left_cancel_le);
   337       thus ?thesis; by simp;
   337       thus ?thesis; by simp;