src/HOL/Analysis/Lipschitz.thy
changeset 70136 f03a01a18c6e
parent 69566 c41954ee87cf
child 70617 c81ac117afa6
equal deleted inserted replaced
70135:ad6d4a14adb5 70136:f03a01a18c6e
     6 
     6 
     7 theory Lipschitz
     7 theory Lipschitz
     8 imports Borel_Space
     8 imports Borel_Space
     9 begin
     9 begin
    10 
    10 
    11 definition%important lipschitz_on
    11 definition\<^marker>\<open>tag important\<close> lipschitz_on
    12   where "lipschitz_on C U f \<longleftrightarrow> (0 \<le> C \<and> (\<forall>x \<in> U. \<forall>y\<in>U. dist (f x) (f y) \<le> C * dist x y))"
    12   where "lipschitz_on C U f \<longleftrightarrow> (0 \<le> C \<and> (\<forall>x \<in> U. \<forall>y\<in>U. dist (f x) (f y) \<le> C * dist x y))"
    13 
    13 
    14 bundle lipschitz_syntax begin
    14 bundle lipschitz_syntax begin
    15 notation%important lipschitz_on ("_-lipschitz'_on" [1000])
    15 notation\<^marker>\<open>tag important\<close> lipschitz_on ("_-lipschitz'_on" [1000])
    16 end
    16 end
    17 bundle no_lipschitz_syntax begin
    17 bundle no_lipschitz_syntax begin
    18 no_notation lipschitz_on ("_-lipschitz'_on" [1000])
    18 no_notation lipschitz_on ("_-lipschitz'_on" [1000])
    19 end
    19 end
    20 
    20 
   153   show "\<And>x y. x \<in> X \<Longrightarrow> y \<in> X \<Longrightarrow> dist (f x) (f y) \<le> C * dist x y"
   153   show "\<And>x y. x \<in> X \<Longrightarrow> y \<in> X \<Longrightarrow> dist (f x) (f y) \<le> C * dist x y"
   154     by (auto intro!: assms differentiable_bound[unfolded dist_norm[symmetric], OF convex])
   154     by (auto intro!: assms differentiable_bound[unfolded dist_norm[symmetric], OF convex])
   155 qed fact
   155 qed fact
   156 
   156 
   157 
   157 
   158 subsubsection%unimportant \<open>Structural introduction rules\<close>
   158 subsubsection\<^marker>\<open>tag unimportant\<close> \<open>Structural introduction rules\<close>
   159 
   159 
   160 named_theorems lipschitz_intros "structural introduction rules for Lipschitz controls"
   160 named_theorems lipschitz_intros "structural introduction rules for Lipschitz controls"
   161 
   161 
   162 lemma lipschitz_on_compose [lipschitz_intros]:
   162 lemma lipschitz_on_compose [lipschitz_intros]:
   163   "(D * C)-lipschitz_on U (g o f)"
   163   "(D * C)-lipschitz_on U (g o f)"
   479 qed
   479 qed
   480 
   480 
   481 
   481 
   482 subsection \<open>Local Lipschitz continuity (uniform for a family of functions)\<close>
   482 subsection \<open>Local Lipschitz continuity (uniform for a family of functions)\<close>
   483 
   483 
   484 definition%important local_lipschitz::
   484 definition\<^marker>\<open>tag important\<close> local_lipschitz::
   485   "'a::metric_space set \<Rightarrow> 'b::metric_space set \<Rightarrow> ('a \<Rightarrow> 'b \<Rightarrow> 'c::metric_space) \<Rightarrow> bool"
   485   "'a::metric_space set \<Rightarrow> 'b::metric_space set \<Rightarrow> ('a \<Rightarrow> 'b \<Rightarrow> 'c::metric_space) \<Rightarrow> bool"
   486   where
   486   where
   487   "local_lipschitz T X f \<equiv> \<forall>x \<in> X. \<forall>t \<in> T.
   487   "local_lipschitz T X f \<equiv> \<forall>x \<in> X. \<forall>t \<in> T.
   488     \<exists>u>0. \<exists>L. \<forall>t \<in> cball t u \<inter> T. L-lipschitz_on (cball x u \<inter> X) (f t)"
   488     \<exists>u>0. \<exists>L. \<forall>t \<in> cball t u \<inter> T. L-lipschitz_on (cball x u \<inter> X) (f t)"
   489 
   489