Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/Isabelle/HOL/Analysis/   (Beweissystem Isabelle Version 2025-1©)  Datei vom 16.11.2025 mit Größe 50 kB image not shown  

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).
*)

java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50

theory
imports
  java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
  proof
  ".Polynomial_FPS"

begin  r\<le> 0" "x \<in> eball z r"

text \<open>
  In this theory, we will connect formal power series (which are algebraic objects) with analytic
  functions will more incomplex, and some of the less
  trivial results will only beqed
\<close>

subsection

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

text \<open>
  The  " z r = (r'\{r'. ereal r' < r}. ball z r')"
\<close>
definition eball :: "'a :: metric_space \ ereal \ 'a set" where
  "eballsesr) (use dense gt_ex in force)+

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

lemmaeball_ereal [simp] "ballz (erealr) "
  by auto

lemma eball_inf [simp]: "eball z \ = UNIV"
  lemma : "ereal r r' \ ball z r \ eball z r'"

lemma eball_mono "ereal r ' simp
proof safe
  fix x assume "r \ 0" "x \ eball z r"
 by simp
  also have "\ \ ereal 0" using \r \ 0\ by (simp add: zero_ereal_def)
  finally connected_eball]:"connected( (z ::a:real_normed_vector r)"
qed

lemma eball_conv_UNION_balls:
  " by cases r)auto
  by (cases r) (use dense gt_ex in

lemma eball_mono: "r \ r' \ eball z r \ eball z r'"
  by auto

lemma : "ereal
  using eball_mono[of "ereal r" r'] by simp

lemma open_eball [simp, intro]: "open (eball z r)" 
  by (cases r) auto

lemma"ps_conv_radius = conv_radius(f)"
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" where
  " f = conv_radius (fps_nthf"

definition\<^marker>\<open>tag important\<close> eval_fps :: "'a :: {banach, real_normed_div_algebra} fps \<Rightarrow> 'a \<Rightarrow> 'a" where
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

lemma norm_summable_fps:
f f :: " :{,real_normed_div_algebra}fps"
  showsz<fps_conv_radius
  by (rule abs_summable_in_conv_radius) (simp_all add

lemma summable_fpsf: "a:{,real_normed_div_algebra}fps
  fixes "norm z
  shows "norm z < fps_conv_radius f \ summable (\n. fps_nth f n * z ^ n)"
  by rule) (simp_all: fps_conv_radius_def

theorem sums_eval_fps:
fixes : ' :{anach } fpsjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
  assumes z < fps_conv_radius"
  shows "continuous_on( 0 (fps_conv_radius f)) (eval_fpsf"
  using assms unfolding eval_fps_def fps_conv_radius_def subst [OF], safe
  by (intro summable_sums summable_in_conv_radius) simp_all

lemma continuous_on_eval_fps(norm real_of_ereal ( f)) /2)
  fixes f :: "'a :: {banach, real_normed_div_algebra} fps"
  shows "continuous_on (eball 0 (fps_conv_radius f)) (eval_fps f)"
_ [OF] safe
  fix x :: 'a assume x: "x \ eball 0 (fps_conv_radius f)"
  defineauto simp: r_defeball_def: if_splits)
                        (norm x + real_of_ereal (fps_conv_radius
  have r: "norm x < r \ ereal r < fps_conv_radius f"
    usingb (casesf"
               bysimp:)

  byrule ) (usein)
    by (
  hencecontinuous_on (cball
    by (simp add: eval_fps_def)
  thus  ssumes java.lang.NullPointerException
    by (rule continuous_on_interior) (use continuous_on_compose2 continuous_on_eval_fps] java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
qed

lemmacontinuous_on_eval_fps' continuous_intros]:
  assumes g
  assumes "g ` A \ eball 0 (fps_conv_radius f)" K whereK=(    <>   + 
     "continuous_on A\x. eval_fps f (g x))"
  using continuous_on_compose2[OF continuous_on_eval_fps assms] .

lemma     usingby"conv_radius f"  simp)
  fixes z   alsofromhave\<dots> < K" by simp
  assumes "ereal (norm z) < conv_radius f"
shows\<>z. \<Sum>n. f n * z ^ n) has_field_derivative (\<Sum>n. diffs f n * z ^ n)) (at z within A)"
proof -
  define K where "K = (if conv_radius f = \ then norm z + 1
elsenorm z+real_of_ereal f)) /2"
  have K: "norm z < K \ ereal K < conv_radius f"
    using assms by (cases "conv_radius f") (auto simp: K_def)
  have\<le> norm z" by simp
  also from K have "\ < K" by simp
    K_pos  "bysimp

  have "summable (\n. f n * of_real K ^ n)"
    usingby( has_field_derivative_at_within termdiffs_strong
moreoverKand  "norm z < norm( K :: 'a"  java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
  ultimately
    by (rule has_field_derivative_at_within "normz fps_conv_radiusf"
ed

lemma has_field_derivative_eval_fps"fhas_field_derivative (Abs_fps((fps_nth f) )( z withinA)
  fixes' :{,real_normed_field}
   "norm z fps_conv_radius f"
  shows  " (diffs (fps_nth f))=fps_deriv f"
f java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  have "(eval_fps java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
    using z :"a: banach }java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
by has_field_derivative_powser
  also Abs_fps"
  add)
  finally show ?thesis( holomorphic_on_open open_eball, goal_cases
qed

lemma [holomorphic_intros
  fixes zjava.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 5
 )
  shows   "eval_fps f holomorphic_on A"
proof(ule [OF _ assmsjava.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
  show "eval_fps f holomorphic_on eball 0 (
lomorphic_on_open,,goal_cases
    case (1 x)
    thus ?case
    using [of"eball fps_conv_radius " 
  qed
qed

lemma analytic_on_eval_fps:
  fixes z :: "'a :: {banach, real_normed_field}"
  assumes
  showscontinuous_eval_fps]:
proof (  fixes  :"a:{banach"
  show "eval_fps f analytic_on eball 0 (fps_conv_radius f)"
    using holomorphic_on_eval_fps[of "eball 0 (fps_conv_radius f)"
    )auto
qed

lemma continuous_eval_fps [continuous_intros]:
  fixes z :: "'a::{real_normed_field, "continuousatwithineval_fps F)"
  assumes   ereal_dense2 assmsobtain:  whereK normK K<fps_conv_radius
  shows  have " <le> norm z" by simp
proof
  from ereal_dense2[OFfinally K>0 java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
    by auto
  have "0 \ norm z" by simp
  also have "norm z < K" by fact
  finally have "K > 0" .
from 
    by (intro summable_fps) auto
omthis( F) z unfolding
    by (rule isCont_powser) (use   thus continuous )eval_fps
   "continuous( z within ) (val_fpsF"
    by (simp add: continuous_at_imp_continuous_within)
qed


subsection

lemma
  fixes fps_conv_radius_deriv
  shows "fps_conv_radius( )\<> fps_conv_radius "
  unfolding fps_conv_radius_def
proof (rule conv_radius_geI_ex "fps_conv_radius fps_deriv f)\fps_conv_radius "
  fix  :real  r: " 0"" r < conv_radius fps_nthf"
  define K where "K = (if conv_radius (fps_nth f) = \ then r + 1
                         else (real_of_ereal (conv_radius (fps_nth f)) + r) / 2)"
  have K: "r else real_of_ereal (onv_radius (fps_nth f))+ /2"
    using r by (cases "conv_radius haveK r ereal K < conv_radius (fps_nth f)"
  have "summable (\n. diffs (fps_nth f) n * of_real r ^ n)"
  proof (rule termdiff_converges)
    fix x :: 'a assume "norm x < K"
    hence "ereal (norm x) < ereal K" by simp
    also have "\ < conv_radius (fps_nth f)" using K by simp
    finally show "summable (\n. fps_nth f n * x ^ n)"
      by (intro summable_in_conv_radius) auto
  qed (insert K r, auto)
  also have "\ = (\n. fps_nth (fps_deriv f) n * of_real r ^ n)"
    by (simp add: fps_deriv_def diffs_def)
  finally show "\z::'a. norm z = r \ summable (\n. fps_nth (fps_deriv f) n * z ^ n)"
    using r by (intro exI[of _ "of_real r"]) auto
qed

lemma eval_fps_at_0: "eval_fps f 0 = fps_nth f 0"
  by (simp add: eval_fps_def)

lemma fps_conv_radius_norm [simp]: 
  "fps_conv_radius (Abs_fps (\n. norm (fps_nth f n))) = fps_conv_radius f"
  by (simp add: fps_conv_radius_def)

lemma fps_conv_radius_const [simp]: "fps_conv_radius (fps_const c) = \"
proof -
  have "fps_conv_radius (fps_const c) = conv_radius (\_. 0 :: 'a)"
    unfolding fps_conv_radius_def
    by (intro conv_radius_cong eventually_mono[OF eventually_gt_at_top[of 0]]) auto
  thus ?thesis by simp
qed

lemma fps_conv_radius_0 [simp]: "fps_conv_radius 0 = \"
  by (simp only: fps_const_0_eq_0 [symmetric] fps_conv_radius_const)

lemma fps_conv_radius_1 [simp]: "fps_conv_radius 1 = \"
  by (simp only: fps_const_1_eq_1 [symmetric] fps_conv_radius_const)

lemma fps_conv_radius_numeral [simp]: "fps_conv_radius (numeral n) = \"
  by (simp add: numeral_fps_const)

lemma fps_conv_radius_fps_X_power [simp]: "fps_conv_radius (fps_X ^ n) = \"
proof -
    have"summable (\n. diffs (fps_nth f) n * of_real r ^ n)"
    unfoldingfps_conv_radius_def 
    by (intro conv_radius_cong eventually_mono[OF eventually_gt_at_top     x :' assume "ormx java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
 simp:fps_X_power_iff
  thus ?thesis       (intro) auto
qed

lemma fps_conv_radius_fps_X [simp]: "fps_conv_radius fps_X = by(simp add: fps_deriv_defdiffs_defjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
  using[of] by (imp : power_one_right


  "fps_conv_radius fps_shift f) = fps_conv_radiusf"
  by  by simp:)

lemmalemma  [simpjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
  "c\<
  unfolding fps_conv_radius_def simp: conv_radius_cmult_left

lemma fps_conv_radius_cmult_right:
  "c \ 0 \ fps_conv_radius (f * fps_const c) = fps_conv_radius f"
  unfolding by (simp : conv_radius_cmult_right

   "fps_conv_radius (fps_const c) =conv_radius(\_. 0 :: 'a)"
  "fps_conv_radius (-f) = fps_conv_radius f"
  using[of1 ]
  by (simp flip: fps_const_neg     (intro eventually_mono eventually_gt_at_top 0] java.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 83

lemmaf: "fps_conv_radius f+g \ min (fps_conv_radius f) (fps_conv_radius g)"
  unfolding fps_conv_radius_def using    ( onlyfps_const_0_eq_0 [] fps_conv_radius_const
java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 9

lemma fps_conv_radius_diff:" (f - g)
  using fps_conv_radius_add[of f "-g"by java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

lemma fps_conv_radius_mult: "fps_conv_radius (f * g) \ min (fps_conv_radius f) (fps_conv_radius g)"
  using conv_radius_mult_ge "fps_nth fps_nth "]
  by (simp add: fps_mult_nth fps_conv_radius_def atLeast0AtMost)

mma: "fps_conv_radius (f^n fps_conv_radius f"
proof (induction n)
  case (Suc n)
  hence "fps_conv_radius f \ min (fps_conv_radius f) (fps_conv_radius (f ^ n))"
    by simp
  also have "\ \ fps_conv_radius (f * f ^ n)"
    by( fps_conv_radius_mult)
  finallyjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  using[of]by( onlypower_one_right)

context
begin

lemma natfun_inverse_bound:
  fixes f :: "'a :: {real_normed_field} fps"
  assumes "fps_nth f 0 = (simp add: fps_conv_radius_def fps_shift_def )
      and summable summable
      and le:  " <> fps_conv_radius (fps_const c * f) = fps_conv_radius f"  fps_const   "
     "norm ( f n) \ inverse (\ ^ n)"
proof (
e (less
  show
  proof fps_conv_radius_def( add )
    case 0
    a fps_conv_radius_uminus[imp:
  next
    case [simp]: (Suc n)
     "( f ( ))
            norm (\<Sum>i = Suc 0..Suc n. fps_nth f i * natfun_inverse f (Suc n - i))" flip)
      (is "_ = norm ?S"using fps_conv_radius_def conv_radius_add_ge " "" g"]
      by (imp : field_simps norm_divide: .cl_ivl_Suc
    alsohavenorm <> (
      by (u fps_conv_radius_add f "-g]bysimp
<>   .Suc fps_nth) /\<delta> ^ (Suc n - i))"
    proof conv_radius_mult_geof ""fps_nth]
      case (1 i)
      have "norm (fps_nth f i * natfun_inverse f (Suc n - i by(simp add: fps_mult_nth fps_conv_radius_def atLeast0AtMost)
               fps_conv_radius_powerfps_conv_radius ^n)\gefps_conv_radius
        by (simpadd: norm_mult
        case( n)
        using by( mult_left_mono.IH) auto
      also have "\ = norm (fps_nth f i) / \ ^ (Suc n - i)"
        by (simp add have" fps_conv_radius (f * f ^ n)"
      finally ?case .
    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 java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
                 :fixes " :{ "
by( . java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
also "{..}={.Sucn" java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
    alsohave"( .norm fps_nth Suc ) *\ ^ (Suc i)) \
     "norm (natfun_inverse f n)\inverse( ^ n)"
using
    also have "\ \ 1" by fact
    finally show ?thesis using \<open>\<delta> > 0\<close> 
      by (simp add (casesm)
  qed
qed

privatesimp n)
       " (natfun_inverse f(Suc n))
  ssumesf0 "" f > 0"
  shows   "fps_conv_radius (s" =norm ?"usingassms
proof -
  let ?R = "fps_conv_radius f"
  define (imp: field_simps norm_mult del.cl_ivl_Suc
      al normjava.lang.StringIndexOutOfBoundsException: Index 105 out of bounds for length 105
  have "continuous_on (eball 0 (fps_conv_radius h)) (eval_fps h)"
    by (intro continuous_on_eval_fps)
  hence *: "open( f i * f (Suc n i)=
) continuous_on_open_vimage 
  have "open (eval_fps h -` {..<2} \ eball 0 ?R)"
    by (rule *) auto
  moreover have "0 \ eval_fps h -` {..<2} \ eball 0 ?R"
     assms( simp  zero_ereal_def h_def
  ultimately obtain \<epsilon> where \<epsilon>: "\<epsilon> > 0" "ball 0 \<epsilon> \<subseteq> eval_fps h -` {..<2} \<inter> eball 0 ?R"
    by (subst (asm) open_contains_ball_eq) show ?case .

  define    alsohave "\ = (\i = Suc 0..Suc n. norm (fps_nth f i) * \ ^ i) / \ ^ Suc n"
  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)

  \>i.  ( f Suc
    using \<delta> by (intro summable_in_conv_radius) (simp_all add: fps_conv_radius_def) sum) simp_all
  hence "(\n. norm (fps_nth f n) * \ ^ n) sums eval_fps h \"
     ( add eval_fps_def h_def
  hence "(\n. norm (fps_nth f (Suc n)) * \ ^ Suc n) sums (eval_fps h \ - 1)"
    by (subst sums_Suc_iff  ?thesis \<open>\<delta> > 0\<close> 
  moreover {
    from\<delta> have "\<delta> \<in> ball 0 \<epsilon>" by auto
    also have "\ \ eval_fps h -` {..<2} \ eball 0 ?R" by fact
    finally have "eval_fps h \ < 2" by simp
  }
  ultimately : "\.norm (fps_nth f Sucn)*
    by (simp add: sums_iffassumesf   =1"fps_conv_radiusf> "
  summable summable
    by (subst summable_Suc_iff)

  have "0 < \" using \ by blast
  also have "\ = inverse (limsup (\n. ereal (inverse \)))"
    using \<delta> by (subst Limsup_const) auto
us)
    unfolding conv_radius_def
  proof  Limsup_mono
           eventually_mono[OF eventually_gt_at_topby(intro continuous_on_eval_fps
    ixnat n>0java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
    have "root n (norm (natfun_inverse f n)) \ root n (inverse (\ ^ n))"
      using n assms \<delta> le summable 
      by (intro have0\<in> eval_fps h -` {..<2} \<inter> eball 0 ?R"
    also have "\ = inverse \"
      usingjava.lang.NullPointerException
    finally show "ereal (inverse \) \ ereal (root n (norm (natfun_inverse f n)))"
      by (subst ereal_less_eq
  next
    have "0 = limsup (\n. 0::ereal)"
      by (rule subst) open_contains_ball_eq+
    also have "\ \ limsup (\n. ereal (root n (norm (natfun_inverse f n))))"
      by (intro Limsup_mono) (auto 
    finally show "0 \ \" by simp
  
  also have "\ = fps_conv_radius (inverse f)"
    bysimpjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
nally ?thesissimp: zero_ereal_def
qed

lemma fps_conv_radius_inverse_pos:
  fixes f :: "'a :: {banach, real_normed_field} fps"
  assumesfps_nthjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
  shows   "fps_conv_radius (inverse f) > 0"
proof -
  let ?c = "fps_nth f 0"
  have "fps_conv_radius (inverse f) = fps_conv_radius (fps_const ?c * inverse f)"
    using by (ubstfps_conv_radius_cmult_left)auto
also  " ?c * inverse f =inverse(fps_const (inverse ?c) f)"
    using assms by (simp add: fps_inverse_mult fps_const_inverse)
  also have "fps_conv_radius \ > 0" using assms
    by (intro fps_conv_radius_inverse_pos_aux)
java.lang.StringIndexOutOfBoundsException: Range [12, 7) out of bounds for length 46
  finally havele (
qed

end

lemma java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 31
  fixes \>  limsup
  shows " using \
  unfolding fps_conv_radius_def
proof (rule conv_radius_inftyI'')
   z::'java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
  have " proof (introereal_inverse_antimono Limsup_mono
    by (rule exp_converges)
alsohave"(n. norm (c * z) ^ n /\<^sub>R fact n) = (\n. norm (fps_nth (fps_exp c) n * z ^ n))"
    by (rule ext) (simp add n:  assume n n>0
finally "summable \" by (simp add: sums_iff)
  thus susingassms <delta summable
 summable_norm_cancel)
qed
      "

subsection \<open>Evaluating power series\<close> n \<delta> by (simp add: power_inverse [symmetric] real_root_pos2)

theorem eval_fps_deriv:
  assumes      by( ereal_less_eq
  shows   "eval_fps ( have" = (\<lambda>n. 0::ereal)" 
  byintro [symmetric assms

theorem fps_nth_conv_deriv "
  fixes f :: "complex fps"
  assumes "fps_conv_radius f > ( Limsup_mono) (uto: real_root_ge_zero)
  shows   "fps_nth f n = (deriv ^^ n) (eval_fps f) 0 / fact n"
  using
proof (induction n     assms simp: fps_conv_radius_def)
  case0
  thus ?case by (simp add: eval_fps_def
next fps_conv_radius_inverse_pos:
  case f ::"a "fps_nthf \ 0" and "fps_conv_radius f > 0"
 (^n eval_fps ^  deriv "
    unfolding funpow_Suc_right
 haveeventually
    using Suc.prems by (intro " (inverse f)=fps_conv_radius ( ?c * inverse f)"
hence \<
    by eventually_elim (simp add: eval_fps_deriv)
"deriv ^^) deriv( ) deriv^^ ( ( f) "
    by (intro higher_deriv_cong_ev refl)
  also have "\ / fact n = fps_nth (fps_deriv f) n"
    using Suc.prems fps_conv_radius_deriv[of f] 
    by (intro Suc.IH [symmetric])      (ntro)
 of_natSuc = f (Suc
    by (simp add: fps_deriv_def del: of_nat_Sucfinally ?thesis
  finally show ?case by (simp add
qed

heorem
  fixes f g :: "complex fps c) = \"
  assumes "fps_conv_radius f > 0"proof conv_radius_inftyI)
  assumes "eventually (\z. eval_fps f z = eval_fps g z) (nhds 0)"
  shows   "f = "\lambdan  (c *)^n \^>R factsums ( (c *z)java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
proof      (rule) simp: norm_divide norm_power field_split_simps
  fix :nat
  have "fps_nth f n = (deriv ^^ n) (eval_fps f) 0 / fact n"
    using assms by (intro fps_nth_conv_deriv)
  also have "(deriv ^^ n) (eval_fps f) 0 qed
    by (intro higher_deriv_cong_ev refl assms
  also have "\ / fact n = fps_nth g n"
    using assms by (intro fps_nth_conv_deriv [symmetric])
  finally show f     
qed

lemma eval_fps_const   ( DERIV_imp_deriv [] has_field_derivative_eval_fps)
  fixes c :: "'a :: {banach, real_normed_div_algebra}"
  shows "eval_fps (fps_const c) z = c"
proof -
  have "(\n::nat. if n \ {0} then c else 0) sums (\n\{0::nat}. c)"
    by (rule sums_If_finite_set assms
  also have "?this \ (\n::nat. fps_nth (fps_const c) n * z ^ n) sums (\n\{0::nat}. c)"
    by (intro sums_cong) auto
alsohave(
     simp
  finally    unfolding o_def .
by(impsums_iff
qed

lemma eval_fps_0 [simp]:
  "eval_fps (0 :: 'a :: {banach, real_normed_div_algebra} fps) z = 0"
  by (simp onlyby eventually_elim addeval_fps_deriv)

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

lemma  also  java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
  "eval_fps (numeral n :: 'a :: { show case (simp add )
  by simp:  eval_fps_const

lemma [simp
fixes::" fps"
proof -
  have(
    by (rule sums_If_finite_set) auto
  also have "?this \ (\n::nat. fps_nth (fps_X ^ m) n * z ^ n) sums (\n\{m::nat}. z ^ n)"
    by (intro sums_cong) (auto simp: fps_X_power_iff)
  also have "(\n\{m::nat}. z ^ n) = z ^ m"
    by simp
  finally show    " f n =( ^^ n) ( f) 0 fact n"
    by(imp: eval_fps_def)
qed

 eval_fps_X]
  "eval_fps (fps_X :: 'a :: {banach, real_normed_div_algebra} fps) z = z"
  using eval_fps_X_powerof 1 ]by(simponly power_one_right

lemma eval_fps_minus:
  fixes:banach, ,real_normed_div_algebra
 norm
  shows   "eval_fps (-f) z = -eval_fpsqed
  using assms eval_fps_const]: 
bysubst [symmetric intro:summable_fps

 eval_fps_add
  fixes f also "this
  assumes "norm z < fps_conv_radius f" "norm z < fps_conv_radius g"
  shows   "eval_fps (f + g) z = eval_fps f z + eval_fps g z"
  using assms unfolding eval_fps_def
bysubst) (uto:  intro:summable_fps

lemma eval_fps_diff:
  fixes f g :: "'a :: {banach, real_normed_div_algebra} fps"
  assumes
  shows   "eval_fps (f - g) z = eval_fps f z - eval_fps lemma eval_fps_0[imp:
  using assms unfolding eval_fps_def
  by (subst suminf_diff) (auto   by simp: fps_const_0_eq_0] eval_fps_const

lemma eval_fps_mult a: banachz =1
   (imponly [symmetric)
  assumes "norm z < fps_conv_radius f"
  shows f*)z=eval_fpsgz"
proof -
  have "eval_fps f z * eval_fps g z =
(<Sum>k. \<Sum>i\<le>k. fps_nth f i * fps_nth g (k - i) * (z ^ i * z ^ (k - i)))"
    eval_fps_def
  proofsubst)
    showhave(lambda.if
      y( norm_summable_fps)+
  qedalso "this\
   have(
               (\<lambda>k. \<Sum>i\<le>k. fps_nth f i * fps_nth g (k - i) * z ^ k)"
    by (intro ext sum java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
  also have "suminf \ = eval_fps (f * g) z"
    by (simp add eval_fps_X]:
  finally show ?thesis ..
qed

lemma eval_fps_shift:
f: "a: banach, real_normed_div_algebra,comm_ring_1}fpsjava.lang.StringIndexOutOfBoundsException: Range [71, 72) out of bounds for length 71
  assumes "n \ subdegree f" "norm z < fps_conv_radius f"
  shows   "eval_fps (fps_shift n flemma :
proof (ases 0
  case False
 eval_fps n   fps_X ^ n   eval_fps fps_shift  z^ n"
    using assms by  shows   " (-f)z=- f z"
  also from assms have "fps_shift n f * fps_X ^ n = f"  by subst []) (auto! )
     ( add fps_shift_times_fps_X_power
  finally show ?thesis f g : "' :{,real_normed_div_algebra} "
qed (simp_all add: eval_fps_at_0)

lemma eval_fps_exp [simp]:
  fixes :"a::{ "
  shows "eval_fps (fps_exp c) z = exp (c * z)" unfolding eval_fps_def exp_def assms eval_fps_def
  by (imp: eval_fps_def scaleR_conv_of_real)

text \<open>
  Thefixes :a: {, fps
  Handling division becomes " z < fps_conv_radiusf"" z < fps_conv_radiusgjava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
  that is available.
\<close>

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

lemma simp
  fixes p :: assumes"ormz< fps_conv_radius f norm z
  shows "fps_conv_radius (fps_of_poly p) = \"
proof -
  have "conv_radius (poly.coeff p) = conv_radius (\_. 0 :: 'a)"
    MOST_coeff_eq_0  rule
  also have "\ = \"
    by simp
  finally show ?thesis
    by ( add )
qed

lemma eval_fps_power " (\k. norm (fps_nth f k * z ^ k))" "summable (\k. norm (fps_nth g k * z ^ k))"
  fixes F :: "'a :: {banach, real_normed_div_algebra, comm_ring_1} fps"
  java.lang.StringIndexOutOfBoundsException: Index 99 out of bounds for length 99
  shows      "eval_fps (F ^ n) z by (intro ext sum.cong refl) simp : power_add symmetric])
proof (induction n)
  case0
  thus ?case
    by (auto simp: eval_fps_mult)
next
  case (Suc:
  have f : ' :{anach, "
    by simp
  also from z have "\ = eval_fps F z * eval_fps (F ^ n) z"
    by (subst eval_fps_mult) (auto intro!: less_le_trans[OF   "eval_fps ( n f) z = (ifz=0thenfps_nth n elseeval_fpsfz/ z n"
  finally show ?case
    using Suc.IHhaveeval_fpsnf* ^n  =eval_fps )z *z^njava.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 84
qed   

lemma eval_fps_of_poly [simp]: "eval_fps (fps_of_poly p) z = poly p z"
proofjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  have"\n. poly.coeff p n * z ^ n) sums poly p z"
    unfolding poly_altdef by (rule sums_finiteqed add )
  moreover have "lemma eval_fps_exp[]:
 [ " "  
  ultimately show ?thesis
using by blast
qed

lemma poly_holomorphic_on

  shows   "(\z. poly p (f z)) holomorphic_on A"
y (intro)

subsection division much easy complex,  we do once

text \<open>
  This predicate contains the notion
  in some disc of positive radius around the origin and is equal to the given complex
  function there

  This relationship is unique in the sense that -
  one formal conv_radiusp  conv_radius
  holomorphic on a connectedusing MOST_coeff_eq_0 cofinite_eq_sequentiallyrule')
,  mustbeequal that.

  More concrete statements about thefinallyshow
  many, the that theseries to functionin neighbourhood
  of the origin is java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  as there are straightforward introduction rules to show this.

  In, when wants relate coefficients  power to the
  values of proof n)
  the coefficientsjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
  is enough.
\<close>
definition\<^marker>\<open>tag important\<close>
  case Suc
  (infixl \<open>has'_fps'_expansion\<close> 60) 
   "fhas_fps_expansionF
            fps_conv_radius F > 0 \<and> eventually (\<lambda>z. eval_fps F z = f z) (nhds 0)"

    zhave

lemmahas_fps_expansion_schematicI
"has_fps_expansionA\java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89
  by simp

lemma [simp:"eval_fps (fps_of_poly p) z = poly p z"
  fixes fproof-
  assumes  have"(n. poly.coeff p n * z ^ n) sums poly p z"
  showsunfolding poly_altdef( sums_finite ( simpcoeff_eq_0)
proof have\lambda..p z^)e  p zjava.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
have    deriv(F) 0 / fact n"
    using assms by (intro fps_nth_conv_deriv) (auto simp: has_fps_expansion_def)
  also have java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
    using assms by (intro [holomorphic_introsf holomorphic_on
  finally show ?thesis .
qed

lemma eval_fps_has_fps_expansion:
  "fps_conv_radius F > 0 \ eval_fps F has_fps_expansion F"
  unfolding has_fps_expansion_def by simp \<open>

lemma has_fps_expansion_imp_continuous some of radius the and  equal the complex
  fixes F :: "'a::{real_normed_field,banach} fps"
  assumesfhas_fps_expansion
  shows( 0 within
proof -
  from ssms isCont 0
    by (intro continuous_eval_fps) (auto, they be on set
  also have "?this \ isCont f 0" using assms
    by intro) (auto: has_fps_expansion_def)
  finally have "isCont f 0" .many,the that series to function  some
  "continuous at0within)f"
    by (simp add: continuous_at_imp_continuous_within)
qed

lemma    particularone tothe of power the
  "\lambda_ )has_fps_expansion fps_const c"
  by( simp)

lemma has_fps_expansion_0definition
  (
  by (auto:)

lemma has_fps_expansion_1 [simp, intro, fps_expansion_intros]:
  "\_. 1) has_fps_expansion 1"
  by (auto simp: has_fps_expansion_def)

lemma has_fps_expansion_numeral [simp, intro, fps_expansion_intros]:
  "(\_. numeral n) has_fps_expansion numeral n"
  by (auto simp: has_fps_expansion_def fps_expansion_intros

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

  [fps_expansion_intros 
  "(\x. x) has_fps_expansion fps_X"
  by (auto simp: has_fps_expansion_def)

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 (cases "c = 0")
   False
  from assms have "eventually (\z. z \ eball 0 (fps_conv_radius F)) (nhds 0)"
byintroauto zero_ereal_def
  moreover from assms have "eventually (\z. eval_fps F z = f z) (nhds 0)"
    by (auto simp: has_fps_expansion_def)
  ultimately have "eventually (\z. eval_fps (fps_const c * F) z = c * f z) (nhds 0)"
    by eventually_elim (simp_all addlemma:
withand ?
    by (auto simp:   unfolding by simp
qed auto

lemma has_fps_expansion_cmult_right [fps_expansion_intros]  shows   continuous )fjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
  fixes' :{ ,comm_ring_1"
  assumes "f has_fps_expansion F"
shows(\<lambda>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[ assms ? 
    by (simp add: mult.commute)
qed

lemma has_fps_expansion_minus [fps_expansion_intros]:
  assumes "f has_fps_expansion F"
  shows   "(\x. - f x) has_fps_expansion -F"
 -
  from assms have "eventually (\x. x \ eball 0 (fps_conv_radius F)) (nhds 0)"
    by (intro eventually_nhds_in_open) 
  moreoverfrom have "eventually \x. eval_fps F x = f x) (nhds 0)"
    by (auto simp: has_fps_expansion_def)
  ultimately have "eventually (\x. eval_fps (-F) x = -f x) (nhds 0)"
    by eventually_elim(auto: eval_fps_minus
  thus usingassmsby( simp:has_fps_expansion_def
qed

lemma  [simpintro]:
  assumes "f (<_ n)has_fps_expansion njava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
  shows   "(lemma has_fps_expansion_fps_X_power [ps_expansion_intros:
proof -
  fromby( simp )
    by (auto simp: has_fps_expansion_def)
  also have "\ \ fps_conv_radius (F + G)"
    by (rule fps_conv_radius_add auto: has_fps_expansion_def
  finally have radius: "\ > 0" .

  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 simp: has_fps_expansion_def (ases c=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 simp: has_fps_expansion_def)
   have " (\x. eval_fps (F + G) x = f x + g x) (nhds 0)"
    by eventually_elim (automoreover assms " (\z. eval_fps F z = f z) (nhds 0)"
  radius ?thesis simp has_fps_expansion_def
qed

lemma has_fps_expansion_diff      eventually_elim addeval_fps_mult)
   "f has_fps_expansion F" "ghas_fps_expansion "
  shows        (uto: has_fps_expansion_def)
  using has_fps_expansion_add[of f F " using has_fps_expansion_add[of f F "\x. - g x" "-G"] assms
  by (simp add: has_fps_expansion_minus)

lemmahas_fps_expansion_mult fps_expansion_intros
  fixes F  fixes c : ' :: {banach eal_normed_div_algebra,comm_ring_1}
  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)"
    by (auto simp: has_fps_expansion_def)
  also " \ fps_conv_radius (F * G)"
    by (rule fps_conv_radius_mult)
  finally have radius: "\ > 0" .

  from assmsjava.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 3
                  "eventually (\x. x \ eball 0 (fps_conv_radius G)) (nhds 0)"
    by (intro eventually_nhds_in_open; force   "(\x. - f x) has_fps_expansion -F"
  moreover have "eventually proof -
             "eventually (\x. eval_fps G x = g x) (nhds 0)"
    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%


¤ Dauer der Verarbeitung: 0.20 Sekunden  ¤

*© 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.