(* Limite_de_la_opuesta.lean -- Si el límite de la sucesión uₙ es a, entonces el límite de -uₙ es -a -- José A. Alonso Jiménez -- Sevilla, 6-junio-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 c \ (\\>0. \k::nat. \n\k. \u n - c\ < \)" -- -- Demostrar que que si el límite de u(i) es a, entonces el de -- -u(i) es -a. -- ------------------------------------------------------------------ *) theory Limite_de_la_opuesta imports Main HOL.Real begin definition limite :: "(nat \ real) \ real \ bool" where "limite u c \ (\\>0. \k::nat. \n\k. \u n - c\ < \)" (* 1\ demostración *) lemma assumes "limite u a" shows "limite (\ n. -u n) (-a)" proof (unfold limite_def) show "\\>0. \k. \n\k. \-u n - -a\ < \" proof (intro allI impI) fix \ :: real assume "0 < \" then obtain N where hN : "\n\N. \u n - a\ < \" using assms limite_def by auto have "\n\N. \-u n - -a\ < \" proof (intro allI impI) fix n assume "n \ N" have "\-u n - -a\ = \u n - a\" by argo also have "\ < \" using hN \n \ N\ by simp finally show "\-u n - -a\ < \" by simp qed then show "\k. \n\k. \-u n - -a\ < \" by (rule exI) qed qed (* 2\ demostración *) lemma assumes "limite u a" shows "limite (\ n. -u n) (-a)" proof (unfold limite_def) show "\\>0. \k. \n\k. \-u n - -a\ < \" proof (intro allI impI) fix \ :: real assume "0 < \" then obtain N where hN : "\n\N. \u n - a\ < \" using assms limite_def by auto have "\n\N. \-u n - -a\ < \" using hN by fastforce then show "\k. \n\k. \-u n - -a\ < \" by (rule exI) qed qed (* 3\ demostración *) lemma assumes "limite u a" shows "limite (\ n. -u n) (-a)" proof (unfold limite_def) show "\\>0. \k. \n\k. \-u n - -a\ < \" using assms limite_def by force qed (* 4\ demostración *) lemma assumes "limite u a" shows "limite (\ n. -u n) (-a)" using assms limite_def by force end