Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  FPS_Convergence.thy   Sprache: Isabelle

 
(*  
  Title:    HOL/Analysis/FPS_Convergence.thy
  Author:   Manuel Eberl, TU München

  Connection of formal power series and actual convergent power series on Banach spaces
  (most notably the complex numbers).
*)

section \<open>Convergence of Formal Power Series\<close>

theory FPS_Convergence
imports
  Generalised_Binomial_Theorem
  "HOL-Computational_Algebra.Formal_Power_Series" 
  "HOL-Computational_Algebra.Polynomial_FPS"

begin

text \<open>
  In this theory, we will connect formal power series (which are algebraic objects) with analytic
  functions. This will become more important in complex analysis, and indeed some of the less
  trivial results will only
\<close>

subsection\<^marker>\<open>tag unimportant\<close> \<open>Balls with extended real radius\<close>

(* TODO: This should probably go somewhere else *)

text \<open>
  The following is a variant of \<^const>\<open>ball\<close> that also allows an infinite radius.
\<close>
definition eball :: "'a :: metric_space \ ereal \ 'a set" where
  "eball z r = {z'. ereal (dist z z') < r}"

lemma in_eball_iff [simp]: "z \ eball z0 r \ ereal (dist z0 z) < r"
  by (simp add: eball_def)

lemma eball_ereal [simp]: "eball z (ereal r) = ball z r"
  by auto

lemma eball_inf [simp]: "eball z \ = UNIV"
  by autotheory FPS_Convergence

lemma eball_empty [simp]: "r \ 0 \ eball z r = {}"
proof safeHOL-Computational_Algebra
  fix xassume" \ 0" "x \ eball z r"
  hence "dist z java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  also have "\ \ ereal 0" using \r \ 0\ by (simp add: zero_ereal_def)
  finally show. This become important  analysis indeed


lemma \<\<^marker>\<open>tag unimportant\<close> \<open>Balls with extended real radius\<close>
  eballjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
  usejava.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 42

lemma eball_mono eball_ereal]" ereal ) =ballzrjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
  by auto

lemmaball_eball_monojava.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85
  using[of"r]by java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43

lemma open_eball [  hence "dist z x < r"
  by (cases r) auto

lemma [intro  eball ' : )r)java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
 by(r java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19


subsection \<open>Basic properties of convergent power series\<close>

definition\<^marker>\<open>tag important\<close> fps_conv_radius :: "'a :: {banach, real_normed_div_algebra} fps \<Rightarrow> ereal" whereball_eball_monor\<le> r' \<Longrightarrow> ball z r \<le> eball z r'"
  "f= fps_nth )"

definition  by (cases r) auto
  "eval_fps f java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

lemma norm_summable_fpsjava.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
  fixes f :: "'a :: {banach, real_normed_div_algebra} fps"
    fps_conv_radius( )java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
  by (rule abs_summable_in_conv_radius) (simp_all add: fps_conv_radius_def)

lemma summable_fps:
  fixes f :: "'a
  ixes"a: banach fps"
  by (rule summable_in_conv_radius "norm f \ summable (\n. norm (fps_nth f n * z ^ n))"

theorem sums_eval_fps:
  fixes f ::' : banach }"
  assumes <fps_conv_radius
  shows   "(\n. fps_nth f n * z ^ n) sums eval_fps f z"
  using assms unfolding eval_fps_def fps_conv_radius_def( summable_in_conv_radius add)
  fixesf :"a: {,real_normed_div_algebra "

lemma continuous_on_eval_fps:
  fixes f :: " assumes "normfps_conv_radius f
  shows eballfps_conv_radius( )java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
proof( continuous_on_eq_continuous_at open_eball)
  fix x :: 'a assume x: "x \ eball 0 (fps_conv_radius f)"
  define
                         x +real_of_erealfps_conv_radius 2"
  have r: "norm x < r \ ereal r < fps_conv_radius f"
    using x by (cases "on_eq_continuous_at [ open_eball,safe)
               (auto  split

  have "continuous_on (cball 0 r) (\x. \i. fps_nth f i * (x - 0) ^ i)"
    by (rule x y( "fps_conv_radius f"
  hence "continuous_on (cball 0 r) (eval_fps f)"
    by ( add:eval_fps_def
  thus
     (rule continuous_on_interior r  auto
qed

lemma "continuous_on (cball 0 r) (eval_fps f)"
java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
"g ` A eball 0 (fps_conv_radius f)"
  shows   "continuous_on A (\x. eval_fps f (g x))"
  using[OF assms.

lemma has_field_derivative_powser:
  fixes z :: "'a :: {banach, real_normed_field}"
  assumes "ereal (norm z) < conv_radius f"
   continuous_on_eval_fps [continuous_intros
proof -   "continuous_on A g"
  define " ifconv_radiusf=\infinity>then normz+1
                         else (norm z + real_of_erealshows  (
  have K:
 assms by cases)(auto: K_def
  have "0 \ norm z" by simp
  also  K  "
  finally have K_pos: "K > 0" by simp

  have      "((z. \n. f n * z ^ n) has_field_derivative (\n. diffs f n * z ^ n)) (at z within A)"lambda\<Sum>n. f n * z ^ n) has_field_derivative (\<Sum>n. diffs f n * z ^ n)) (at z within A)"
    using                          (norm   (conv_radius )java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
  moreover from K and K_pos have "norm z < norm "
  ultimately showfinallyhave"K >0 by simp
     (rule [OF])
qed

lemma has_field_derivative_eval_fps   from   K_poshavenorm of_real) byauto
  fixes z :: "'a :ultimately show ?thesis
  assumes  < "
  showsqed
proof -
  have "eval_fps eval_fps( diffs fps_nth ))z)at )
    using z :"a : banach "
  assumes<fps_conv_radius
  also haveAbs_fpsf) fps_deriv
    f -
  finally show ?thesis .
qed

lemma holomorphic_on_eval_fps [holomorphic_intros]:
  fixes' :{,real_normed_field"
  assumes "A \ eball 0 (fps_conv_radius f)"
     (intro) auto
proof have"Abs_fps (diffs (fps_nth f)) = fps_deriv f"
  show(simp: fps_eq_iff diffs_defjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  proof (ubst [OF], safe)
    case (1 x)
    thus ?case
      by holomorphic_on_eval_fps]:
  qed
qed

lemma analytic_on_eval_fps:
  fixes z :: "'a :: {banach, assumes "A \ eball 0 (fps_conv_radiusf"
   ( holomorphic_on_subset])
  shows   "eval_fps f analytic_on A"
)
  show "eval_fps proof (subst ho [OF open_eball] safe goal_cases)
usingholomorphic_on_eval_fps " 0(f)]
    by (java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
qed

lemma  [continuous_intros
  fixesz: ':{eal_normed_field,}java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
  assumes " by (subst analytic_on_open java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
shows ( z  A) (eval_fps"
proof -
from[OF]  K :real K:" z < K"" F"
    by auto
0java.lang.NullPointerException
  also have "norm z -
  finally have" 0.
  from K and \<open>K > 0\<close> have "summable (\<lambda>n. fps_nth F n * of_real K ^ n)"
    by (intro summable_fps) auto
  from this have "isCont Kand \K > 0\ have "summable (\n. fps_nth F n * of_real K ^ n)"
    om  have "isCont (eval_fpsF) " eval_fps_def
  thus" (at z withinA) ( F)"
    by (simp add: continuous_at_imp_continuous_withinthus atA  e )java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49



subsection

lemma:
  shows" fps_derivf fps_conv_radiusfjava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
  shows( f < f"
  unfolding fps_conv_radius_defr: realassume:r >0 ereal( )
proof (rule conv_radius_geI_ex)
  fix r :: real assume r: "r > 0" "ereal r < conv_radius (fps_nth f)"
  define K where "K = (if conv_radius (fps_nth f) = \ then r + 1
( (onv_radius)+r)/2java.lang.StringIndexOutOfBoundsException: Index 81 out of bounds for length 81
 :"
    using r by (cases "conv_radius java.lang.StringIndexOutOfBoundsException: Range [35, 36) out of bounds for length 34
 summable
  proof (rule fps_conv_radius_defjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
fix: a assume"
    hence "ereal (norm x) < ereal K" by simp
    also have "\ < conv_radius (fps_nth f)" using K by simp
    finally       (autosimp:)
by( summable_in_conv_radius
  qed (insert
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 simp )
  finally show "\z::'a. norm z = r \ summable (\n. fps_nth (fps_deriv f) n * z ^ n)"
    using fps_conv_radius_fps_X_power 1] by(imponly)
qed

lemma eval_fps_at_0( n "
( add eval_fps_def

lemmafps_conv_radius_norm]: 
  "fps_conv_radius (Abs_fps (\n. norm (fps_nth f n))) = fps_conv_radius f"
  by (simp <noteq> 0 \<Longrightarrow> fps_conv_radius (fps_const c * f) = fps_conv_radius f" by( add)

lemma fps_conv_radius_const [simp fps_conv_radius_def(simpadd)
proof -
havefps_conv_radius   (java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
    unfolding fps_conv_radius_cmult_left "-"f
by( conv_radius_cong[OF[of]])auto
  thus ?thesis by simp
qed

lemma ps_conv_radius_add( +)\<ge> min (fps_conv_radius f) (fps_conv_radius g)"
bysimp: fps_const_0_eq_0 symmetric)

lemma fps_conv_radius_1 [simp]: "fps_conv_radius 1 = \"
  by (simp onlyfps_conv_radius_diff:fps_conv_radiusg)\<ge> min (fps_conv_radius f) (fps_conv_radius g)"

lemma fps_conv_radius_numeral [simp]: "fps_conv_radius (numeral n) = \"
  by java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

lemma fps_conv_radius_fps_X_power [  using conv_radius_mult_ge[of "fps_nth[off"" g"java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
proof -
le fps_conv_radius_power (  )java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
    unfolding fps_conv_radius_def 
    by (intro conv_radius_cong eventually_mono[OF eventually_gt_at_top[of n]]) 
       (auto
 rule)
qed

lemma fps_conv_radius_fps_X [simp]: "fps_conv_radius fps_X = \"
   fps_conv_radius_fps_X_power 1  simp: power_one_right)

lemmajava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  "fps_conv_radius (fps_shift n f) = fps_conv_radius f"
bysimp conv_radius_shift

lemma fps_conv_radius_cmult_leftand summable:" (\n. norm (fps_nth f (Suc n)) * \ ^ Suc n)"
"\noteq>0\fps_conv_radius( c * f) =fps_conv_radius fjava.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88
  unfoldingshowsnatfun_inverse

lemma( m)
  " ?case
  unfolding by (simp:conv_radius_cmult_right

 fps_conv_radius_uminus [imp]
  "fps_conv_radiusjava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
  using fps_conv_radius_cmult_left[ofhave"orm natfun_inverse fSucn)=
  by (simp: fps_const_neg

lemma fps_conv_radius_add: "fps_conv_radius (f + g) \ min (fps_conv_radius f) (fps_conv_radius g)"
  unfolding using[of"ps_nthf fps_nthjava.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
  by simp(impadd norm_mult del sum)

lemma  " ?S\le> (\i = Suc 0..Suc n. norm (fps_nth f i * natfun_inverse f (Suc n - i)))"
  sing[of-"

lemma fps_conv_radius_mult: " also have "\ \ (\Sum>i=Suc0.Suc n. norm( f i /
  using"fps_nthf " g"java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
 simpatLeast0AtMost

lemma" (f ) <> f"
proof (induction add)
   Suc
           1 intro less java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
    by simp
  also \>
    by (rule showjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
  finally show ?case by simp    also have"\ = (\i = Suc 0..Suc n. norm (fps_nth f i) * \ ^ i) / \ ^ Suc n"
qed simp_all         insert

context
begin

lemma natfun_inverse_bound:
  f :: "a::{real_normed_field}fps"
  assumes "fps_nth f 0 = 1 substsumatLeast_Suc_atMost_Suc_shift)simp_all
      and summable:      have{.n  .< } byauto
      and  "\Sum> ^ (Suc i)) \
shows    java.lang.NullPointerException
proof       \<open>\<delta> > 0\<close> by (intro sum_le_suminf ballI mult_nonneg_nonneg zero_le_power summable) autohave
  case (less m)
  show ?case
  proofcases )
    case 0
    thus ?thesis
  next
    case []: (Suc
havenorm Suc =
            norma "fps_nth = 1"fps_conv_radius"
      ( _ normS" assmsjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
      by( addfield_simps norm_divide: sum)
so have" ?S (\i = Suc 0..Suc n. norm (fps_nth f i * natfun_inverse f (Suc n - i)))"
      by (rule norm_sum)
    also have "\ \ (\i = Suc 0..Suc n. norm (fps_nth f i) / \ ^ (Suc n - i))"
    proof (intro sum_mono, goal_cases)
      case (1 i)
 fps_nthnatfun_inversen-) 
              norm (fps_nth     using that by (subst (asm)auto
        by (simp add: norm_mult)
      also have "\ \ norm (fps_nth f i) * inverse (\ ^ (Suc n - i))"
        using 1 by (    using by (auto: eball_def eval_fps_at_0)
      also have "\ = norm (fps_nth f i) / \ ^ (Suc n - i)"
        by (simp add: field_split_simps)
      finally ? .
    qed
 java.lang.StringIndexOutOfBoundsException: Index 104 out of bounds for length 104
      by (subst sum_divide_distrib, rule sum.cong)
         (insert \<open>\<delta> > 0\<close>, auto simp: field_simps power_diff)
    also have "(\i = Suc 0..Suc n. norm (fps_nth f i) * \ ^ i) =
               (<Sum=0.n.normfps_nth( i)) * \<delta> ^ (Suc i))"
      by (subst.atLeast_Suc_atMost_Suc_shift
    also have "{0..n} = {.. by auto
    bysimp:  summable_sums)
                 (\<Sum>n. norm (fps_nth f (Suc n)) * \<delta> ^ (Suc n))"
      using \<open>\<delta> > 0\<close> by (intro sum_le_suminf ballI mult_nonneg_nonneg zero_le_power summable) auto
    also have "\ \ 1" by fact
    finallyshow using \<open>\<delta> > 0\<close> 
      by (simp add \<delta> have "\<delta> \<in> ball 0 \<epsilon>" by auto
  qed
qed

private lemma fps_conv_radius_inverse_pos_aux:
  fixes havele(<n normf( ) *\<delta> ^ Suc n) \<le> 1"
  assumes "ps_nthf0 1"" > 0
  shows   "fps_conv_radius (inverse f from have summable: " (\<lambda>n. norm (fps_nth f (Suc n)) * \<delta> ^ Suc n)"
proof -
  let ?R = "fps_conv_radius f"
  define h where "h = Abs_fps (\n. norm (fps_nth f n))"
  have [simp]: "fps_conv_radius h = also have "\ \ conv_radi (natfun_inverse f"
  have "continuous_on (eball 0 (fps_conv_radius h)) (eval_fps proof (introereal_inverse_antimonoLimsup_mono
     (introcontinuous_on_eval_fps)
  hence *: "open (eval_fps h -` Af n :: assume n: "  0
    using that by (subst (asm) continuous_on_open_vimage) auto
  have "open (eval_fps h -` {..<2} \ eball 0 ?R)"
    by (rule *) auto
  moreover "
    using assms by (auto simp: eball_def n <delta> by (simp add: power_inverse [symmetric] real_root_pos2)
  ultimately obtain \<epsilon> where \<epsilon>: "\<epsilon> > 0" "ball 0 \<epsilon> \<subseteq> eval_fps h -` {..<2} \<inter> eball 0 ?R")
    by( (asm) blast

  define \<delta> where "\<delta> = real_of_ereal (min (ereal \<epsilon> / 2) (?R / 2))"
  have \<delta>: "0 < \<delta> \<and> \<delta> < \<epsilon> \<and> ereal \<delta> < ?R"
    using \<open>\<epsilon> > 0\<close> and assms by (cases ?R) (auto simp: \<delta>_def min_def)  qed

  have summable: "usingassms ( add: fps_conv_radius_def fps_inverse_def)
     show by ( add)
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    by (simp add: eval_fps_def " f 0 0" and "fps_conv_radius f > 0"
  hence "(\n. norm (fps_nth f (Suc n)) * \ ^ Suc n) sums (eval_fps h \ - 1)"
    by (subst sums_Suc_iff) (auto simp assms(ubst fps_conv_radius_cmult_left 
  alsohavefps_constf   fps_const *java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
    from \<delta> have "\<delta> \<in> ball 0 \<epsilon>" by auto
    also have "\ \ eval_fps h -` {..<2} \ eball 0 ?R" by fact
           (auto simp: fps_conv_radius_cmult_left)
  }
  ultimately le:"\n. norm (fps_nth f (Suc n)) * \ ^ Suc n) \ 1"
    by (simp add
  from summable
    by (subst summable_Suc_iff)

  have "0 < \" using \ by blast
  also have " =inverse ( (\n. ereal (inverse \)))"
>bysubst java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
  alsofix : a
    unfolding conv_radius_def
  proof java.lang.StringIndexOutOfBoundsException: Range [49, 50) out of bounds for length 49
           eventually_mono[OF    "java.lang.StringIndexOutOfBoundsException: Index 114 out of bounds for length 114
    fix :nat:" "
    have   have"\" by (simp add: sums_iff)
      n assms\delta> le 
      by (    by (rule)
    alsohave\<dots> = inverse \<delta>"
      using\<delta> by (simp add: power_inverse [symmetric] real_root_pos2)
    finally show "ereal java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
      by subst)
  next
 0=limsup
      by (rule Limsup_const [symmetric ( DERIV_imp_deriv] has_field_derivative_eval_fps)
    also have\<dots> \<le> limsup (\<lambda>n. ereal (root n (norm (natfun_inverse f n))))"
byintroa simp
    finally show "0 \ \" by simp
  qed
  also have " using assms assms
    using by( add fps_conv_radius_def fps_inverse_def
  finally java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
qed

lemmafps_conv_radius_inverse_pos
  fixes:' :: {banach, real_normed_field} fps"
  assumes  0\<noteq> 0" and "fps_conv_radius f > 0"
  shows  have"deriv ^ Suc )(eval_fps f) 0 = (deriv ^^n)(deriv (eval_fps f)) 0"
proof -
  let ?  also "eventually (\z::complex. z \ eball 0 (fps_conv_radius f)) (nhds 0)"
  havefps_conv_radiusf)  fps_constinverse
    using assms by (subst fps_conv_radius_cmult_left   "eventually(lambda>z. deriv (eval_fps f) z = eval_fps (fps_deriv f) z) (nhds 0)"
  also have "fps_const ?c * inverse f = inverse (fps_const hence (^^n ( eval_fpsf)0=( ^n)eval_fps fps_deriv)0java.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87
    using assms by (simp add: fps_inverse_mult fps_const_inverse)
  also have "fps_conv_radius \ > 0" using assms
    by( fps_conv_radius_inverse_pos_aux
       (auto simp:   also have "\<dots> / ( n) = fps_nth n)"
   show .
qed

end

lemma fps_conv_radius_exp
  fixes c :: "'a :: {banach, eval_fps_eqD:
ps_exp
  unfolding fps_conv_radius_def
 (rule''java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
  fix z :: 'a
have(<>.norm z ^n /<sub n)  expnorm )"
    by (rule exp_converges)
  also have "(\n. norm (c * z) ^ n /\<^sub>R fact n) = (\n. norm (fps_nth (fps_exp c) n * z ^ n))"
by( ext( add norm_mult)
  finally have "summable n: nat
  thus "summable (\n. fps_nth (fps_exp c) n * z ^ n)"
    by (rule summable_norm_cancel)
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3


subsection \<open>Evaluating power series\<close>

theorem  "fps_nthfn=fps_nth g n".
  assumes "norm z < fps_conv_radius f"
  shows   "eval_fps (fps_deriv
by introDERIV_imp_deriv [ymmetric assms

theorem fps_nth_conv_deriv:
  fixes f :: "complex fps"
  assumes "fps_conv_radius f > 0"
  shows   "fps_nth f n = (deriv ^^ n) (eval_fps f) 0 / fact n"
  using
proof (induction n arbitrary: f)
  case 0
  thus ?case by (simp add: eval_fps_def)
next
    "\n\{0::nat}. c) = c"
bysimp
 funpow_Suc_right.
  also have "eventually (imp add: eval_fps_def )
    using java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
  hence "eventually (\z. deriv (eval_fps f) z = eval_fps (fps_deriv f) z) (nhds 0)"
      (simp: eval_fps_deriv
  hence "(deriv ^^ n) (deriv (eval_fps f)
   by intro refl
  also have "\ / fact n = fps_nth (fps_deriv f) n"
    using Suc.prems only [symmetric)
    by (intro
have" / of_nat (Suc n) = fps_nth f (Suc n)"
    by (simp add: fps_deriv_def del: of_nat_Suc)
finally?by(:field_split_simps
qed( onlynumeral_fps_const)

theorem eval_fps_eqD eval_fps_X_power]:
  fixes f g : complex
  assumes "fps_conv_radius f > 0" "fps_conv_radius have "\<lambda>n::nat. if n \<in> {m} then z ^ n else 0 :: 'a) sums (\<Sum>n\<in>{m::nat}. z ^ n)"
  assumes "eventually (\z. eval_fps f z = eval_fps g z) (nhds 0)"
  shows   "f = g"
proof (rule fps_ext)
  fix n :: nat
havefps_nth deriveval_fps/fact
    using assms by (intro fps_nth_conv_deriv     ( add sums_iff
  also have "(deriv ^^ nlemma [simp]
    by (intro [ofz]  :)
  also have "\ / fact n = fps_nth g n"
    using assms f :: "'a :: {banach,real_normed_div_algebra} fps"
  finally show "fps_nth f n = fps_nth g n"   assumes" z < fps_conv_radius f"
qed

lemma [simp
  fixes c   ( suminf_minus]) (auto! )
  shows lemma:
proof -
  have "(\n::nat. if n \ {0} then c else 0) sums (\n\{0::nat}. c)"
    by (rule sums_If_finite_set) auto
   have\<longleftrightarrow> (\<lambda>n::nat. fps_nth (fps_const c) n * z ^ n) sums (\<Sum>n\<in>{0::nat}. c)"
    by (intro sums_cong) auto
  also have "(\n\{0::nat}. c) = c"
    by simp
   ( suminf_add( simpring_distribs! )
    by (simpjava.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 0
qed

lemma []java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  "eval_fps (0 :: 'a :: {banach, real_normed_div_algebra} fps) z = 0"
  by ( only [symmetric)

lemma eval_fps_1
  "eval_fps (1 ::'a : {banach, real_normed_div_algebra} fps) = 1"
  by(imp : fps_const_1_eq_1] eval_fps_const

lemma eval_fps_numeral [simp   "eval_fps( *g f z * eval_fps z"
  "eval_fps (numeral n :: 'a :: {banach, real_normed_div_algebra} fps) z = numeral n"
  by (simp only: numeral_fps_const eval_fps_const)

lemma eval_fps_X_power [simp          \<
  "eval_fps (fps_X ^ m :: 'unfolding
proof ( Cauchy_product
   "\<>n::nat n \ {m} then z ^ n else 0 :: 'a) sums (\n\{m::nat}. z ^ n)"
    b rule assms
   havelongleftrightarrow> (\<lambda>n::nat. fps_nth (fps_X ^ m) n * z ^ n) sums (\<Sum>n\<in>{m::nat}. z ^ n)"
    by (intro sums_cong) (auto simpalso "\k. \i\k. fps_nth f i * fps_nth g (k - i) * (z ^ i * z ^ (k - i))) =
  also have "(\n\{m::nat}. z ^ n) = z ^ m"
    bysimp
  finally show ?thesis
    by (simp add: eval_fps_def sums_iff)
qed

lemma [simp
  "eval_fps (fps_X :: fixes :' :{,real_normed_div_algebra "
  using eval_fps_X_power[of 1 z] by (simp only: power_one_right)

 eval_fps_minus
  fixes f proof"z = 0)
  assumes "norm z < have" (fps_shiftf*fps_X^ )z=eval_fps( n f) z *z ^ n"
  showseval_fps)  eval_fps
  using assms unfolding eval_fps_def
  by ( suminf_minussymmetric intro:summable_fps

lemmabysimp:fps_shift_times_fps_X_power)
  fixes"a:: banach }fpsjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
  assumes "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  shows c: ' : banach,real_normed_field}java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
  using unfolding
  by (subst suminf_add) (auto simp: ring_distribss add exp_def field_split_simps

lemma eval_fps_diff:
   f g : "' ::banach real_normed_div_algebra}fps"
  assumesnorm  norm "
  shows   "eval_fps (f - g) z = eval_fps f z - eval_fps g z"
  using assms unfolding eval_fps_def
  by (subst suminf_diff) (auto simp\<close>

lemma eval_fps_mult:
  fixes f g :: "'a :: {banach,lemma fps_conv_radius_fps_of_poly[]:
  assumes " fps_conv_radius f"" fps_conv_radius "
  shows   "eval_fps (f * g) z = eval_fps f z * eval_fps g z"
proof -
  have "eval_fps using unfolding cofinite_eq_sequentiallyby( conv_radius_cong')
          (\<Sum>k. \<Sum>i\<le>k. fps_nth f i * fps_nth g (k - i) * (z ^ i * z ^ (k - i)))"
    unfolding(simp:fps_conv_radius_def
  proof (subst Cauchy_product)
    showsummable
      by (rule norm_summable_fps assms)+
  qed (simp_all add: algebra_simps)
  also have "(\k. \i\k. fps_nth f i * fps_nth g (k - i) * (z ^ i * z ^ (k - i))) =
               (\<lambda>k. \<Sum>i\<le>k. fps_nth f i * fps_nth g (k - i) * z ^ k)"
( add[ymmetric
  also have "suminf \ = eval_fps (f * g) z"
    by (simp add: eval_fps_def 0
  finally show ?thesis ..
qed

fps_shift
  fixes:"a: {anach,real_normed_div_algebra,comm_ring_1}fpsjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
  assumes "n \ subdegree f" "norm z < fps_conv_radius f"
  shows fps_shiftz  (   0  f   f  / z ^n)
proof (cases "z = 0")
  case False
   " (fps_shift fps_X ^ )z eval_fps (fps_shift nf z * "
    using assms by (subst eval_fps_mult) simp_all
  also from assms have "java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    by (simp add: fps_shift_times_fps_X_power -
  finally show ?thesis using (
 (simp_all:eval_fps_at_0

lemma simp
  fixes c :: "'a :: usingsums_eval_fpsof z fps_of_polyp] bysimp
  shows "eval_fps (fps_exp c) z = exp (c * z)" unfolding    using sums_unique2
  by

text   assumes [holomorphic_intros]: "f holomorphic_on A"
  The case of division   unfolding poly_altdef b holomorphic_intros
  Handling becomes more using analysisand will so
  that is
\<close>

subsection \<open>FPS of a polynomial\<close>

lemma java.lang.StringIndexOutOfBoundsException: Range [55, 9) out of bounds for length 85
  fixes.
  shows "fps_conv_radius (fps_of_poly p) = \"
proofjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  have" (poly.coeff p)= (\_. 0 :: 'a)"
    using  unfolding by ( conv_radius_cong
  also have they be  on set
    by simp
  finally  ?thesis
    by (simp add: fps_conv_radius_def purposes statment  converges the  some
qed

lemma eval_fps_power: 
  fixes F :: "'a :: {banach, real_normed_div_algebra, comm_ring_1} fps"
  assumes z: "norm z < fps_conv_radius F"
  shows         particular one to the ofthe series 
 (induction
  case 0
  thus ?case
    by (auto simp: eval_fps_mult)
next
case( n)
  have "eval_fps (F ^ Suc n) z = eval_fps (F * F ^ n)where( )\java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
    by simp
also from have "\ = eval_fps F z * eval_fps (F ^ n) z"
    by (subst  :
  finally  " has_fps_expansion A = B \ f has_fps_expansion B"
    using Suc.IH by simp
qed   

 eval_fps_of_poly] eval_fpspoly
 
 java.lang.NullPointerException
    unfolding by rule)(uto: coeff_eq_0
  moreover "(n. poly.coeff n* ^n)sums val_fps(fps_of_poly )"
    using sums_eval_fps[of z "fps_of_poly p"by simp
  ultimately show ?thesis   "fps_nth Fn=( ^^ n) (val_fps java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
    using sums_unique2 by blast
qed

lemma poly_holomorphic_on [holomorphic_intros]:
  assumes]: "holomorphic_on A"
  shows   "(\z. poly p (f z)) holomorphic_on A"
  unfolding poly_altdef by (intro

subsection \<open>Power series expansions of analytic functions\<close>

text
  This predicate contains the
  in disc positive around originis to given
  function there.

  This relationship " F"
     "continuous at 0 A) f"
  holomorphic on a connecteda have" (eval_fps F) 0
  expansion must equal that.

  More concrete statements about the radius of convergence can( isCont_cong simphas_fps_expansion_def
   purposes  statment the converges thein neighbourhood
  of the origin is enough,  thus(   A "
  as there are straightforward introduction rules to show this.

In, when one wants relate the coefficients the series to 
  values of the derivatives(<>.c has_fps_expansion
  the coefficients of auto: has_fps_expansion_def
  is enough.
\<close>
definition\<^marker>\<open>tag important\<close>
  "\_. 0) has_fps_expansion 0"
  (infixl \<open>has'_fps'_expansion\<close> 60)  simp has_fps_expansion_def
  where "(f has_fps_expansion F) \ (\_. 1) has_fps_expansion 1"
            fps_conv_radius F >java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

named_theorems

lemma has_fps_expansion_schematicI:
  "f has_fps_expansion A \ A = B \ f has_fps_expansion B"
  by simp

lemma fps_nth_fps_expansionlemma has_fps_expansion_fps_Xfps_expansion_intros]:java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
  fixes f :: "complex \ complex"
  assumes "f has_fps_expansion F"
  shows   "fps_nth F n = (deriv ^^ n) f 0 / fact n"
proof -
  have "fps_nth F n = (deriv ^^ n) (eval_fps F) 0 / fact n"
    using assmscasejava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
  also have "(deriv ^^ n) (eval_fps F) 0 = (deriv ( eventually_nhds_in_open) ( simp: has_fps_expansion_def )
    using assms by (intro higher_deriv_cong_ev) (auto simp: has_fps_expansion_def)
  finally show ?thesis .
qed

 eval_fps_has_fps_expansion
  "fps_conv_radius with assms False show thesis
 has_fps_expansion_def

lemma has_fps_expansion_imp_continuous:
  fixes F :: "'a::{real_normed_field,banach} fps"
  assumes "f has_fps_expansion F"
  shows" (at 0 within A) f"
proof -
  from assms have "isCont (eval_fps F) 0"
    by (intro c ::"a: banach,real_normed_div_algebra }java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
  also have "?this "java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
    by (intro isCont_cong) (auto    has_fps_expansion_cmult_left OF] showthesis
  finally have "isCont f 0" .
  thus "continuous (at 0 within A) f"
    by (simp add: continuous_at_imp_continuous_within)
qed

lemmaproof
  "(\_. c) has_fps_expansion fps_const c"
  by (auto simp: has_fps_expansion_def)

lemma has_fps_expansion_0 [simp  assms(
  "(\_. 0) has_fps_expansion 0"
  by (auto simp: has_fps_expansion_def)

lemma     by eventually_elim  simp)
  "(\_. 1) has_fps_expansion 1"   ?thesis assms  (auto )
  by (auto

lemmahas_fps_expansion_numeral, , fps_expansion_intros
"\lambda>.numeral n numeral n"
  by (auto simp: has_fps_expansion_def)

lemma [] 
  "(\x. x ^ n) has_fps_expansion (fps_X ^ n)"
   auto:has_fps_expansion_def

lemma has_fps_expansion_fps_X [fps_expansion_intros]: 
  "(\x. x) has_fps_expansion fps_X"
  by( simp)

lemma has_fps_expansion_cmult_left [fps_expansion_intros]:
  fixes c :: "'a :: {banach, real_normed_div_algebra, comm_ring_1}"
  assumes "f has_fps_expansion F"
  shows   "(\x. c * f x) has_fps_expansion fps_const c * F"
proof(ases" 0)
  case False
  from assms have "eventually (\z. z \ eball 0 (fps_conv_radius F)) (nhds 0)"
    by (intro ultimatelyeventually
   from haveeventually
    by (auto simpwwith show by (auto:)
  ultimately
by (simp_all: eval_fps_mult
  with assms and Falseassumeshas_fps_expansion" G
by( simp fps_conv_radius_cmult_left
qed auto

lemma has_fps_expansion_cmult_right [fps_expansion_intros has_fps_expansion_mult[]:
fixesc:"a:: {,r comm_ring_1}
  assumes "f has_fps_expansion F"
  shows   "(\x. f x * c) has_fps_expansion F * fps_const c"
proof -
  have "F * fps_const c = fps_const c * F"
    by (intro fps_ext) (auto simp: mult.commute)
  with has_fps_expansion_cmult_left [OF assms] show havejava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
    by (simp add: mult.commute)
qed

lemma has_fps_expansion_minus [fps_expansion_intros]:
  assumes "f has_fps_expansion F"
  shows\<lambda>x. - f x) has_fps_expansion -F"
proof
  from assms and\<lambda>x. eval_fps G x = g x) (nhds 0)"
    by( eventually_nhds_in_open simphas_fps_expansion_def)
  moreover have eventually
 simp: has_fps_expansion_def
havejava.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
    by eventually_elim (auto simp has_fps_expansion_inversefps_expansion_intros
  thusthesis assms by( simp: has_fps_expansion_def
qed

lemma has_fps_expansion_add [fps_expansion_intros]:
  assumes "f has_fps_expansion F" "g has_fps_expansion G"
  shows   "(\x. f x + g x) has_fps_expansion F + G"
proof -
  from assms have "0 < min (fps_conv_radius F) (fps_conv_radius G)"
    byauto
  alsohavejava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
 fps_conv_radius_add
  finally havelet  min )( )java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66

  from assms have "eventually (\x. x \ eball 0 (fps_conv_radius F)) (nhds 0)"
                  "eventually (\x. x \ eball 0 (fps_conv_radius G)) (nhds 0)"
    by (intro eventually_nhds_in_open; force simpmoreover " (\z. eval_fps F z = f z) (nhds 0)"
  moreover have "eventually (\x. eval_fps F x = f x) (nhds 0)"
            and "eventually (\x. eval_fps G x = g x) (nhds 0)"
    using assms by (auto      (lim z)
  ultimately have "eventually (\x. eval_fps (F + G) x = f x + g x) (nhds 0)"
    by eventually_elim (auto simp: eval_fps_add)
  with radiusby( eval_fps_mult auto
qed

lemma has_fps_expansion_diff [fps_expansion_intros]:
  assumes F g  Gjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
  shows
  using has_fps_expansion_add[of f F "\x. - g x" "-G"] assms
  by (simp add: has_fps_expansion_minus)

lemma has_fps_expansion_mult [fps_expansion_intros]:
  lemmahas_fps_expansion_sum [ps_expansion_intros]java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
  assumes "f has_fps_expansion F shows (\z. \
    using assms by (auto (intro) (auto:  zero_ereal_def
  ultimately " (\x. eval_fps (F * G) x = f x * g x) (nhds 0)"
    by     by (auto)
  with radius show  ultimately have "eventually (\x. eval_fps (-F) x = -f x) (nhds 0)"
qed

lemma has_fps_expansion_inverse []:
  fixes ? using auto)
  assumes "f has_fps_expansion java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
  assumesjava.lang.StringIndexOutOfBoundsException: Range [7, 8) out of bounds for length 7
  shows   "(\x. inverse (f x)) has_fps_expansion inverse F"
proof ( simp: has_fps_expansion_def)
  have radius: "fps_conv_radius also have "<dots> \<le> fps_conv_radius (F + G)"
    using assms unfolding has_fps_expansion_def
    by (    by (rule)
   ?R=" (fps_conv_radius F (fps_conv_radius inverseF)"
  from assms radius
    have "eventually (\x. x \ eball 0 (fps_conv_radius F)) (nhds 0)"
         "eventually (\x. x \ eball 0 (fps_conv_radius (inverse F))) (nhds 0)"
    by (intro eventually_nhds_in_open; force simp: has_fps_expansion_def zero_ereal_def)+
   haveeventually
    using assms by (auto simp: has_fps_expansion_def)
  ultimately have "eventually (\z. eval_fps (inverse F) z = inverse (f z)) (nhds 0)"
  proof eventually_elim
    case(lim 
    henceely have "eventually (\x. eval_fps (F + G) x = f x + g x) (nhds 0)"
       subst)auto
    also have "eval_fps (inverse F java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
      using "f has_fps_expansion "" has_fps_expansionG"
    finally show ?case by (auto simp:     "(\x. f x - g x) has_fps_expansion F - G"
  qed
  with radius show ?thesis
qed

lemma has_fps_expansion_sum[ps_expansion_intros]:
  assumes "\x. x \ A \ f x has_fps_expansion F x"
"
  using assms by (induction A rule:     "(\x. f x * g x) has_fps_expansion F * G"

lemma[]:
  fixes F :: "'a \ 'b :: {banach, real_normed_div_algebra, comm_ring_1} fps"
  assumes "\x. x \ A \ f x has_fps_expansion F x"
  shows   "(\z. \x\A. f x z) has_fps_expansion (\x\A. F x)"
  using  radius

lemma has_fps_expansion_exp [fps_expansion_intros]:
  fixes c :: "'a :: {banach, real_normed_field}"
  shows "(\x. exp (c * x)) has_fps_expansion fps_exp c"
   a simp)

lemma has_fps_expansion_exp1 [fps_expansion_intros]:
  "(\x::'a :: {banach, real_normed_field}. exp x) has_fps_expansion fps_exp 1"
  using      assms auto: has_fps_expansion_def

lemma has_fps_expansion_exp_neg1 [fps_expansion_intros]:

  using has_fps_expansion_exp[of "-1"by simp

lemma [fps_expansion_intros
  assumes "f has_fps_expansion F"
  shows   "deriv f has_fps_expansion fps_deriv F"
proof -
  have    "f has_fps_expansion F"
u assms by( eventually_nhds_in_open
                   showsjava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
  moreover from assms have "eventually (\z. eval_fps F z = f z) (nhds 0)"
    by( simp: has_fps_expansion_def
  then intro) auto
    by (auto simp: eventually_nhds)
  hence "eventually (\w. w \ s) (nhds 0)"
    by (introassms
  ultimately         "eve (java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
  proof eventually_elim
    case (elim z)
    hence "( ) ( "
         have eventually
    also have "eventually (\w. w \ s) (nhds z)"
       elim \<open>open s\<close> by (intro eventually_nhds_in_open) auto
     eventually
      by eventually_elim (simp add: s)
    hence "deriv (eval_fps F) z = deriv f z"
      by (intro deriv_cong_ev refl)
     show .
  qed
  with and[of]show
    by (auto simp: has_fps_expansion_def)
qed

lemma fps_conv_radius_binomial:
  fixes c :: "'a :: {real_normed_field,banach}"
  shows "fps_conv_radius (fps_binomial c) = (if c \ \ then \ else 1)"
  unfolding fps_conv_radius_def by (simp add: conv_radius_gchoose)

lemma:
  fixes c :: "'a :: {banach, real_normed_field, field_char_0}" has_fps_expansion_prod]:
  shows "fps_conv_radius (fps_ln c) = (if c = 0 then \ else 1)"
proof (cases    "\x. x \ A \ f x has_fps_expansion F x"
se
  have "conv_radius (\n. 1 / of_nat n :: 'a) = 1"
  proof (  using  by ( A rule infinite_finite_induct introfps_expansion_intros
    show(lambda 1 n:')/ 1/of_nat Sucn ::a) \ 1"
      using LIMSEQ_Suc_n_over_n by (simp java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  qed auto
  also have "conv_radius(
               conv_radius (\<lambda>n. if n = 0 then 0 else (- 1) ^ (n - 1) / of_nat n :: 'a)"
    by (intro conv_radius_cong[OFeventually_gt_at_top[of)
       (simp add: norm_mult  "\x::'a :: {banach, real_normed_field}. exp (-x)) has_fps_expansion fps_exp (-1)"
  finally show ?thesis using False unfolding fps_ln_def
    by (  fps_conv_radius_cmult_left simp_all: fps_conv_radius_def
p fps_ln_def

lemma fps_conv_radius_ln_nonzero [simp]:
  assumes "c \ (0 :: 'a :: {banach,real_normed_field,field_char_0})"
  shows   "fps_conv_radius (fps_ln c) = 1"
  using assms by (simp add: fps_conv_radius_ln)

lemma fps_conv_radius_sin  moreover from assms have " (\z. eval_fps F z = f z) (nhds 0)"
  fixes c :: "'a :: {banach, real_normed_field, field_char_0}"
  shows (fps_sin <infinity>"
proof (cases "c = 0")
  case False
  have "\ = conv_radius (\n. of_real (sin_coeff n) :: 'a)"
  proof (rule sym, rule conv_radius_inftyI'', rule summable_norm_cancel have"eventually (.eval_fps (ps_deriv F) derivf z)( 0java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
    case (1 z)
    show  summable_norm_sin z  simp: )
  qed
  also have "\ / norm c = conv_radius (\n. c ^ n * of_real (sin_coeff n) :: 'a)"
    using False by (subst conv_radius_mult_power) auto
  also have "\ = fps_conv_radius (fps_sin c)" unfolding fps_conv_radius_def
    by (rule conv_radius_cong_weak) (auto simp add: fps_sin_defhence ( )z=deriv
 show by simp
qedshow ?case java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24

lemma fps_conv_radius_cos [simp]:
  fixes c :: "'a :: {banach, real_normed_field, field_char_0}"
  shows "fps_conv_radius (fps_cos c) = \"
proof (cases "c = 0")
  case False
  have "\ = conv_radius (\n. of_real (cos_coeff n) :: 'a)"
  proof fps_conv_radius_def(simp : conv_radius_gchoose
    case (1 z)
    show ?case using summable_norm_cos[of z] by (simp add: norm_mult ' ,,"
   "fps_conv_radius (fps_ln c = (if c = 0 \ else 1)"
  proof"c = 0)
using by ( conv_radius_mult_power
  also have "\ = fps_conv_radius (fps_cos c)" unfolding fps_conv_radius_def
    by (rule conv_radius_cong_weak)
  finally show ?thesis by simp
qed simp_all

  []:
  fixes z :: "'a :: {banach, real_normed_field, field_char_0}"
  shows( )z sin*z)"
proof -
  have "(\n. sin_coeff n *\<^sub>R (c * z) ^ n) sums sin (c * z)" by (rule sin_converges)
  also have "(\n. sin_coeff n *\<^sub>R (c * z) ^ n) = (\n. fps_nth (fps_sin c) n * z ^ n)"
    by (rule extconv_radius(<lambda>n. if n = 0 then 0 else (- 1) ^ (n - 1) / of_nat n :: 'a)"
yshow by (simpadd:sums_iff)
qed

lemma eval_fps_cos  ?thesis  unfolding
  fixes     by subst) (simp_all : fps_conv_radius_defjava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
  shows "eval_fps lemma fps_conv_radius_ln_nonzero[simp]:
java.lang.StringIndexOutOfBoundsException: Range [9, 7) out of bounds for length 7
  have(lambdan*\<^sub>R (c * z) ^ n) sums cos (c * z)" by (rule cos_converges)
  also have lemma [simp
byrule(simp  power_mult_distrib
  finally show ?thesis by (simpshows fps_sin
qed

lemma cos_eq_zero_imp_norm_ge:
  assumes "cos (z :: complex) =java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
  shows   "norm z \ pi / 2"
proof -
  from assms obtain n where "z = complex_of_real ((of_int n + 1 / 2) * pi)"
    by (auto simp: cos_eq_0 algebra_simps  "
  also have "norm \ = \real_of_int n + 1 / 2\ * pi"
    by (subst norm_of_real) (simp_all add: abs_mult)
  also have "real_of_int n + 1 / 2 = of_int (2 * n + 1) / 2" by simp
  also have "\\\ = of_int \2 * n + 1\ / 2" by (subst abs_divide) simp_all
  also have "fps_conv_radius ( c) =
  also have "\ \ of_int 1 * (pi / 2)"
    by (intro mult_right_monohave \infinity=conv_radius
  finallyshow thesis
qed



lemma eval_fps_binomial:
  fixes c :: complex
   "norm z <1
  shows   "eval_fps (fps_binomial c) have"<>  fps_conv_radius c)" fps_conv_radius_def
   gen_binomial_complex assmssimp: sums_iff)

lemma has_fps_expansion_binomial_complex [fps_expansion_intros]:
  fixes c :: complex
  shows "(\x. (1 + x) powr c) has_fps_expansion fps_binomial c"
proof -
  have *: "eventually (\z::complex. z \ eball 0 1) (nhds 0)"
    by (intro eventually_nhds_in_open) auto
  thus "\n. sin_coeff n *\<^sub>R (c * z) ^ n) sums sin (c * z)" by (rule sin_converges)
    by (auto simp: has_fps_expansion_def eval_fps_binomial fps_conv_radius_binomial
             intro [OF
qed

lemma has_fps_expansion_sin [fps_expansion_intros
  fixes c :: "'a :: {banach, real_normed_field, field_char_0}"
  shows "(\x. sin (c * x)) has_fps_expansion fps_sin c"
  by (auto simp: has_fps_expansion_def)

lemma has_fps_expansion_sin' [fps_expansion_intros]:
"\x::'a :: {banach, real_normed_field}. sin x) has_fps_expansion fps_sin 1"
  usingalso  "(\n. cos_coeff n *\<^sub>R (c * z) ^ n) = (\n. fps_nth (fps_cos c) n * z ^ n)"

lemma has_fps_expansion_cos [fps_expansion_intros]:
  fixes c :: "'a :: {banach, real_normed_field, field_char_0}"
  shows "(\x. cos (c * x)) has_fps_expansion fps_cos c"
  by (auto simp: has_fps_expansion_def cos_eq_zero_imp_norm_ge:

lemma has_fps_expansion_cos' [fps_expansion_intros]shows" z \ pi / 2"
  "(\x::'a :: {banach, real_normed_field}. cos x) has_fps_expansion fps_cos 1"
   has_fps_expansion_cos 1] simp

lemma  [fps_expansion_intros
  fixes F :: "'a :: {banach, real_normed_field} have" \<dots> = \<bar>real_of_int n + 1 / 2\<bar> * pi"
  assumes "f has_fps_expansion F" and  java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
  assumes "c = fps_nth F n"
  shows   "(\x. if x = 0 then c else f x / x ^ n) has_fps_expansion (fps_shift n F)"
proof -
   eventually
    using assms by (intro eventually_nhds_in_open) (auto simp: has_fps_expansion_def zero_ereal_def)
  moreover have
    using assms by (auto simp: has_fps_expansion_def)
  ultimately have "eventually (\x. eval_fps (fps_shift n F) x =
                     (if c :complex
    by eventually_elim (auto simp: eval_fps_shift assms)
  with assms show ?thesis by (auto simp: has_fps_expansion_def)
qed

lemma has_fps_expansion_divide [fps_expansion_intros]:
  fixes F G :: "(<>x 1+)powrc has_fps_expansion fps_binomial "
  assumes "f has_fps_expansion F" and "g has_fps_expansion G" and 
           * e \<lambda>z::complex. z \<in> eball 0 1) (nhds 0)"
          "c = fps_nth F (subdegree G) / fps_nth G (subdegree G)"
  shows(lambdaif=0thencelse/ g x has_fps_expansion/G)"
proof -
  define n where "n = subdegree G"
  define F' and G' where "F' = fps_shift n F" and "G' = fps_shift n G"
  have "F = F' * fps_Xn_sin fps_expansion_intros:
    by (rule fps_shift_times_fps_X_power [symmetric] le_refl | fact)+
  moreover from assms have "fps_nth G' 0 \ 0"
    by (simp add: G'_def by ( simp: has_fps_expansion_def)
  ultimately have FG
    by( add)

  have  "(\<l>x::a: {banach real_normed_field )has_fps_expansion
           (if =  then G n  g x  x^ )  F / G"
    (is "?h has_fps_expansion _"lemma [fps_expansion_intros
    by (intro has_fps_expansion_mult has_fps_expansion_inverse
              has_fps_expansion_shift assms) auto
  also have "?h = (\x. if x = 0 then c else f x / g x)"
    using assms(5) unfolding n_def 
    by (intro ext) (auto split: if_splits   has_fps_expansion_cos 1]bysimp
  finally show ?thesis .
qed

lemma has_fps_expansion_divide' [fps_expansion_intros]:
  fixes F G :: "'a :: {banach, real_normed_field} fps"
  assumes "f has_fps_expansion F" and "g has_fps_expansion G" and "fps_nth G 0 \ 0"
proof
proof -
  have   haveeventually
expansionusing) intro)auto
  also from assms have "fps_nth F 0 = f 0" "fps_nth G 0 = g 0"
    
  hence "?h = (\x. f x / g x)" by auto

qed

lemma has_fps_expansion_tan [fps_expansion_intros]:
  fixes :' :{,real_normed_field, "
  shows "(\x. tan (c * x)) has_fps_expansion fps_tan c"
proof -
  have a has_fps_expansion_dividefps_expansion_intros]:
by()java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
  thus ?thesis by (simp add: tan_def" G \ subdegree F" "G \ 0"
qed

lemma ' [fps_expansion_intros]:
  "tan has_fps_expansion fps_tan (1 :: 'a :: {banach, real_normed_field, field_char_0})"
  using has_fps_expansion_tan[of 1] by simp

s_fps_expansion_imp_holomorphic:
  assumes "f has_fps_expansion F have"F=F  fps_X""=G  fps_X" unfolding F'_def G'_ef n_def
obtains "opens " <in> s" "f holomorphic_on s" "\<And>z. z \<in> s \<Longrightarrow> f z = eval_fps F z"
proof -
   fromassms" G' 0 \ 0"
    unfolding has_fps_expansion_def simp: G'defn_defjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
  let ?s' = "eball 0 ( y(simp add: fps_divide_unit)
  have "eval_fps F holomorphic_on ?s'"
    by (intro "
  also have "?this inverse if =0 thenfps_nth Gnelsegx /x^n) has_fps_expansion F / G"
    using s by (intro holomorphic_cong) auto
  finally showusing s assms
    by (intro that[of ?s']) ion_mult has_fps_expansion_inverse
qed

lemma has_fps_expansionI:
  fixes f :: "'a :: {banach, real_normed_div_algebra} \ 'a"
  assumes "eventually (\u. (\n. fps_nth F n * u ^ n) sums f u) (nhds 0)"
  showsfhas_fps_expansion
proof -
  from assms obtain X where X: "open X" "java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
    unfolding eventually_nhds by blast
  obtain r where r: "r > 0" "cball 0 r \ X"
    using X(1,2) open_contains_cball by blast
  have "shows"\<
    using r(1) by simp
  also have "fps_conv_radius F \ norm (of_real r :: 'a)"
    unfolding fps_conv_radius_def( "? has_fps_expansion _")  assms intro has_fps_expansion_divideassms
  proofrule)
    have "of_real r \ X"
      using r by auto
    from X(3)[OF this] show "summable (java.lang.StringIndexOutOfBoundsException: Range [0, 76) out of bounds for length 24
      by  has_fps_expansion_tan]:
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
  finally have "fps_conv_radius F > 0"
    by (simp_all add: zero_ereal_def)
  moreover have "(\\<^sub>F z in nhds 0. eval_fps F z = f z)"
    using assms by eventually_elim (auto simp: sums_iff eval_fps_def)
  ultimately show ' []:
    unfolding has_fps_expansion_def ..
qed

lemma fps_mult_numeral_left [simp]: "fps_nth (numeral c * f) n = numeral c * fps_nth f n"
  by (simp add: fps_numeral_fps_const)

end

97%

'color:red'>show
 ?thesis
    unfolding has_fps_expansion_def ..
qed

lemma fps_mult_numeral_left [simp]: "fps_nth (numeral c * f) n = numeral c * fps_nth f n"
  by (simp add: fps_numeral_fps_const)

end

97%


¤ Dauer der Verarbeitung: 0.23 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge