src/HOL/Real/HahnBanach/HahnBanachSupLemmas.thy
changeset 8838 4eaa99f0d223
parent 8703 816d8f6513be
child 9035 371f023d3dbd
equal deleted inserted replaced
8837:9ee87bdcba05 8838:4eaa99f0d223
   636 qed;
   636 qed;
   637 
   637 
   638 
   638 
   639 text{* \medskip The following lemma is a property of linear forms on 
   639 text{* \medskip The following lemma is a property of linear forms on 
   640 real vector spaces. It will be used for the lemma 
   640 real vector spaces. It will be used for the lemma 
   641 $\idt{rabs{\dsh}HahnBanach}$ (see page \pageref{rabs-HahnBanach}). \label{rabs-ineq-iff}
   641 $\idt{abs{\dsh}HahnBanach}$ (see page \pageref{abs-HahnBanach}). \label{abs-ineq-iff}
   642 For real vector spaces the following inequations are equivalent:
   642 For real vector spaces the following inequations are equivalent:
   643 \begin{matharray}{ll} 
   643 \begin{matharray}{ll} 
   644 \forall x\in H.\ap |h\ap x|\leq p\ap x& {\rm and}\\ 
   644 \forall x\in H.\ap |h\ap x|\leq p\ap x& {\rm and}\\ 
   645 \forall x\in H.\ap h\ap x\leq p\ap x\\ 
   645 \forall x\in H.\ap h\ap x\leq p\ap x\\ 
   646 \end{matharray}
   646 \end{matharray}
   647 *};
   647 *};
   648 
   648 
   649 lemma rabs_ineq_iff: 
   649 lemma abs_ineq_iff: 
   650   "[| is_subspace H E; is_vectorspace E; is_seminorm E p; 
   650   "[| is_subspace H E; is_vectorspace E; is_seminorm E p; 
   651   is_linearform H h |] 
   651   is_linearform H h |] 
   652   ==> (ALL x:H. rabs (h x) <= p x) = (ALL x:H. h x <= p x)" 
   652   ==> (ALL x:H. abs (h x) <= p x) = (ALL x:H. h x <= p x)" 
   653   (concl is "?L = ?R");
   653   (concl is "?L = ?R");
   654 proof -;
   654 proof -;
   655   assume "is_subspace H E" "is_vectorspace E" "is_seminorm E p" 
   655   assume "is_subspace H E" "is_vectorspace E" "is_seminorm E p" 
   656          "is_linearform H h";
   656          "is_linearform H h";
   657   have h: "is_vectorspace H"; ..;
   657   have h: "is_vectorspace H"; ..;
   659   proof; 
   659   proof; 
   660     assume l: ?L;
   660     assume l: ?L;
   661     show ?R;
   661     show ?R;
   662     proof;
   662     proof;
   663       fix x; assume x: "x:H";
   663       fix x; assume x: "x:H";
   664       have "h x <= rabs (h x)"; by (rule rabs_ge_self);
   664       have "h x <= abs (h x)"; by (rule abs_ge_self);
   665       also; from l; have "... <= p x"; ..;
   665       also; from l; have "... <= p x"; ..;
   666       finally; show "h x <= p x"; .;
   666       finally; show "h x <= p x"; .;
   667     qed;
   667     qed;
   668   next;
   668   next;
   669     assume r: ?R;
   669     assume r: ?R;
   670     show ?L;
   670     show ?L;
   671     proof; 
   671     proof; 
   672       fix x; assume "x:H";
   672       fix x; assume "x:H";
   673       show "!! a b. [| - a <= b; b <= a |] ==> rabs b <= a";
   673       show "!! a b::real. [| - a <= b; b <= a |] ==> abs b <= a";
   674         by arith;
   674         by arith;
   675       show "- p x <= h x";
   675       show "- p x <= h x";
   676       proof (rule real_minus_le);
   676       proof (rule real_minus_le);
   677 	from h; have "- h x = h (- x)"; 
   677 	from h; have "- h x = h (- x)"; 
   678           by (rule linearform_neg [RS sym]);
   678           by (rule linearform_neg [RS sym]);