src/HOL/Analysis/Linear_Algebra.thy
changeset 69516 09bb8f470959
parent 69513 42e08052dae8
child 69517 dc20f278e8f3
equal deleted inserted replaced
69515:5bbb2bd564fa 69516:09bb8f470959
   306 lemma adjoint_adjoint:
   306 lemma adjoint_adjoint:
   307   fixes f :: "'n::euclidean_space \<Rightarrow> 'm::euclidean_space"
   307   fixes f :: "'n::euclidean_space \<Rightarrow> 'm::euclidean_space"
   308   assumes lf: "linear f"
   308   assumes lf: "linear f"
   309   shows "adjoint (adjoint f) = f"
   309   shows "adjoint (adjoint f) = f"
   310   by (rule adjoint_unique, simp add: adjoint_clauses [OF lf])
   310   by (rule adjoint_unique, simp add: adjoint_clauses [OF lf])
   311 
       
   312 
       
   313 subsection%unimportant \<open>Interlude: Some properties of real sets\<close>
       
   314 
       
   315 lemma seq_mono_lemma:
       
   316   assumes "\<forall>(n::nat) \<ge> m. (d n :: real) < e n"
       
   317     and "\<forall>n \<ge> m. e n \<le> e m"
       
   318   shows "\<forall>n \<ge> m. d n < e m"
       
   319   using assms by force
       
   320 
       
   321 lemma infinite_enumerate:
       
   322   assumes fS: "infinite S"
       
   323   shows "\<exists>r::nat\<Rightarrow>nat. strict_mono r \<and> (\<forall>n. r n \<in> S)"
       
   324   unfolding strict_mono_def
       
   325   using enumerate_in_set[OF fS] enumerate_mono[of _ _ S] fS by auto
       
   326 
       
   327 lemma approachable_lt_le: "(\<exists>(d::real) > 0. \<forall>x. f x < d \<longrightarrow> P x) \<longleftrightarrow> (\<exists>d>0. \<forall>x. f x \<le> d \<longrightarrow> P x)"
       
   328   apply auto
       
   329   apply (rule_tac x="d/2" in exI)
       
   330   apply auto
       
   331   done
       
   332 
       
   333 lemma approachable_lt_le2:  \<comment> \<open>like the above, but pushes aside an extra formula\<close>
       
   334     "(\<exists>(d::real) > 0. \<forall>x. Q x \<longrightarrow> f x < d \<longrightarrow> P x) \<longleftrightarrow> (\<exists>d>0. \<forall>x. f x \<le> d \<longrightarrow> Q x \<longrightarrow> P x)"
       
   335   apply auto
       
   336   apply (rule_tac x="d/2" in exI, auto)
       
   337   done
       
   338 
       
   339 lemma triangle_lemma:
       
   340   fixes x y z :: real
       
   341   assumes x: "0 \<le> x"
       
   342     and y: "0 \<le> y"
       
   343     and z: "0 \<le> z"
       
   344     and xy: "x\<^sup>2 \<le> y\<^sup>2 + z\<^sup>2"
       
   345   shows "x \<le> y + z"
       
   346 proof -
       
   347   have "y\<^sup>2 + z\<^sup>2 \<le> y\<^sup>2 + 2 * y * z + z\<^sup>2"
       
   348     using z y by simp
       
   349   with xy have th: "x\<^sup>2 \<le> (y + z)\<^sup>2"
       
   350     by (simp add: power2_eq_square field_simps)
       
   351   from y z have yz: "y + z \<ge> 0"
       
   352     by arith
       
   353   from power2_le_imp_le[OF th yz] show ?thesis .
       
   354 qed
       
   355 
       
   356 
   311 
   357 
   312 
   358 subsection \<open>Archimedean properties and useful consequences\<close>
   313 subsection \<open>Archimedean properties and useful consequences\<close>
   359 
   314 
   360 text\<open>Bernoulli's inequality\<close>
   315 text\<open>Bernoulli's inequality\<close>