584 obtain k::nat where k: "real k > max 0 (- log y x) + 1" by blast |
584 obtain k::nat where k: "real k > max 0 (- log y x) + 1" by blast |
585 from k have kp: "k > 0" by simp |
585 from k have kp: "k > 0" by simp |
586 from k have "real k > - log y x" by simp |
586 from k have "real k > - log y x" by simp |
587 then have "ln y * real k > - ln x" unfolding log_def |
587 then have "ln y * real k > - ln x" unfolding log_def |
588 using ln_gt_zero_iff[OF yp] y1 |
588 using ln_gt_zero_iff[OF yp] y1 |
589 by (simp add: minus_divide_left field_simps del:minus_divide_left[symmetric] ) |
589 by (simp add: minus_divide_left field_eq_simps del:minus_divide_left[symmetric] ) |
590 then have "ln y * real k + ln x > 0" by simp |
590 then have "ln y * real k + ln x > 0" by simp |
591 then have "exp (real k * ln y + ln x) > exp 0" |
591 then have "exp (real k * ln y + ln x) > exp 0" |
592 by (simp add: mult_ac) |
592 by (simp add: mult_ac) |
593 then have "y ^ k * x > 1" |
593 then have "y ^ k * x > 1" |
594 unfolding exp_zero exp_add exp_real_of_nat_mult |
594 unfolding exp_zero exp_add exp_real_of_nat_mult |
595 exp_ln[OF xp] exp_ln[OF yp] by simp |
595 exp_ln[OF xp] exp_ln[OF yp] by simp |
596 then have "x > (1/y)^k" using yp |
596 then have "x > (1/y)^k" using yp |
597 by (simp add: field_simps nonzero_power_divide ) |
597 by (simp add: field_eq_simps nonzero_power_divide ) |
598 then show ?thesis using kp by blast |
598 then show ?thesis using kp by blast |
599 qed |
599 qed |
600 lemma X_nth[simp]: "X$n = (if n = 1 then 1 else 0)" by (simp add: X_def) |
600 lemma X_nth[simp]: "X$n = (if n = 1 then 1 else 0)" by (simp add: X_def) |
601 lemma X_power_nth[simp]: "(X^k) $n = (if n = k then 1 else (0::'a::comm_ring_1))" |
601 lemma X_power_nth[simp]: "(X^k) $n = (if n = k then 1 else (0::'a::comm_ring_1))" |
602 by (simp add: X_power_iff) |
602 by (simp add: X_power_iff) |