(* Las_sucesiones_divergentes_positivas_no_tienen_limites_finitos.thy -- Las sucesiones divergentes positivas no_tienen límites finitos. -- José A. Alonso Jiménez -- Sevilla, 26-julio-2024 -- ------------------------------------------------------------------*) (* --------------------------------------------------------------------- -- En Isabelle/HOL, una sucesión u₀, u₁, u₂, ... se puede representar -- mediante una función (u : \ \ \) de forma que u(n) es uₙ. -- -- Se define que a es el límite de la sucesión u, por -- definition limite :: "(nat \ real) \ real \ bool" -- where "limite u a \ (\\>0. \N. \k\N. \u k - a\ < \)" -- -- La sucesión u diverge positivamente cuando, para cada número real A, -- se puede encontrar un número natural m tal que, para n > m , se tenga -- u(n) > A. En Isabelle/HOL se puede definir por -- definition diverge_positivamente :: "(nat \ real) \ bool" -- where "diverge_positivamente u \ (\A. \m. \n\m. u n > A)" -- -- Demostrar que si u diverge positivamente, entonces ningún número real -- es límite de u. -- ------------------------------------------------------------------ *) theory Las_sucesiones_divergentes_positivas_no_tienen_limites_finitos imports Main HOL.Real begin definition limite :: "(nat \ real) \ real \ bool" where "limite u a \ (\\>0. \N. \k\N. \u k - a\ < \)" definition diverge_positivamente :: "(nat \ real) \ bool" where "diverge_positivamente u \ (\A. \m. \n\m. u n > A)" (* 1\ demostración *) lemma assumes "diverge_positivamente u" shows "\a. limite u a" proof (rule notI) assume "\a. limite u a" then obtain a where "limite u a" try by auto then obtain m1 where hm1 : "\n\m1. \u n - a\ < 1" using limite_def by fastforce obtain m2 where hm2 : "\n\m2. u n > a + 1" using assms diverge_positivamente_def by blast let ?m = "max m1 m2" have "u ?m < u ?m" using hm1 hm2 proof - have "?m \ m1" by (rule max.cobounded1) have "?m \ m2" by (rule max.cobounded2) have "u ?m - a < 1" using hm1 \?m \ m1\ by fastforce moreover have "u ?m > a + 1" using hm2 \?m \ m2\ by simp ultimately show "u ?m < u ?m" by simp qed then show False by auto qed (* 2\ demostración *) lemma assumes "diverge_positivamente u" shows "\a. limite u a" proof (rule notI) assume "\a. limite u a" then obtain a where "limite u a" try by auto then obtain m1 where hm1 : "\n\m1. \u n - a\ < 1" using limite_def by fastforce obtain m2 where hm2 : "\n\m2. u n > a + 1" using assms diverge_positivamente_def by blast let ?m = "max m1 m2" have "1 < 1" proof - have "1 < u ?m - a" using hm2 by (metis add.commute less_diff_eq max.cobounded2) also have "\ < 1" using hm1 by (metis abs_less_iff max_def order_refl) finally show "1 < 1" . qed then show False by auto qed end