4217 moreover from b_limit have "eventually (\<lambda>x. b x > 0) at_top" |
4217 moreover from b_limit have "eventually (\<lambda>x. b x > 0) at_top" |
4218 by (simp add: filterlim_at_top_dense) |
4218 by (simp add: filterlim_at_top_dense) |
4219 hence "eventually (\<lambda>x. ?h x = g x - c * ln (b x) - |
4219 hence "eventually (\<lambda>x. ?h x = g x - c * ln (b x) - |
4220 eval (C - const_expansion c * L) x * b x powr e) at_top" |
4220 eval (C - const_expansion c * L) x * b x powr e) at_top" |
4221 (is "eventually (\<lambda>x. _ = ?h x) _") using assms(2) |
4221 (is "eventually (\<lambda>x. _ = ?h x) _") using assms(2) |
4222 by (auto simp: expands_to.simps scale_ms_def elim: eventually_elim2) |
4222 apply (simp add: expands_to.simps scale_ms_def) |
4223 ultimately have **: "is_expansion_aux xs ?h (b # basis)" by (rule is_expansion_aux_cong) |
4223 by (smt (verit) eventually_cong) |
|
4224 ultimately have **: "is_expansion_aux xs ?h (b # basis)" |
|
4225 by (rule is_expansion_aux_cong) |
4224 from assms(1,4) have "ms_exp_gt 0 (ms_aux_hd_exp xs)" "is_expansion C basis" |
4226 from assms(1,4) have "ms_exp_gt 0 (ms_aux_hd_exp xs)" "is_expansion C basis" |
4225 by (auto simp: expands_to.simps elim!: is_expansion_aux_MSLCons) |
4227 by (auto simp: expands_to.simps elim!: is_expansion_aux_MSLCons) |
4226 moreover from assms(1) have "length basis = expansion_level TYPE('a)" |
4228 moreover from assms(1) have "length basis = expansion_level TYPE('a)" |
4227 by (auto simp: expands_to.simps dest: is_expansion_aux_expansion_level) |
4229 by (auto simp: expands_to.simps dest: is_expansion_aux_expansion_level) |
4228 ultimately have "is_expansion_aux (MSLCons (C - scale_ms c L, e) xs) |
4230 ultimately have "is_expansion_aux (MSLCons (C - scale_ms c L, e) xs) |
4229 (\<lambda>x. g x - c * ln (b x)) (b # basis)" using assms unfolding scale_ms_def |
4231 (\<lambda>x. g x - c * ln (b x)) (b # basis)" |
|
4232 using assms unfolding scale_ms_def |
4230 by (intro is_expansion_aux.intros is_expansion_minus is_expansion_mult is_expansion_const * **) |
4233 by (intro is_expansion_aux.intros is_expansion_minus is_expansion_mult is_expansion_const * **) |
4231 (simp_all add: basis_wf_Cons expands_to.simps) |
4234 (simp_all add: basis_wf_Cons expands_to.simps) |
4232 with assms(1) show ?thesis by (auto simp: expands_to.simps) |
4235 with assms(1) show ?thesis by (auto simp: expands_to.simps) |
4233 qed |
4236 qed |
4234 |
4237 |