{"id":7565,"date":"2021-01-15T12:50:25","date_gmt":"2021-01-15T11:50:25","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=7565"},"modified":"2021-01-15T12:50:25","modified_gmt":"2021-01-15T11:50:25","slug":"pruebas-en-lean-de-toda-sucesion-convergente-es-una-sucesion-de-cauchy","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/pruebas-en-lean-de-toda-sucesion-convergente-es-una-sucesion-de-cauchy\/","title":{"rendered":"Pruebas en Lean de &#8220;Toda sucesi\u00f3n convergente es una sucesi\u00f3n de Cauchy&#8221;"},"content":{"rendered":"<p>He a\u00f1adido a la lista <a href=\"https:\/\/bit.ly\/2QwnT30\">DAO (Demostraci\u00f3n Asistida por Ordenador) con Lean<\/a> el <a href=\"https:\/\/youtu.be\/-RtLj7Cnffw\">v\u00eddeo<\/a> en el que se comentan 3 pruebas en Lean de la propiedad<\/p>\n<blockquote><p>\n  Toda sucesi\u00f3n convergente es una sucesi\u00f3n de Cauchy\n<\/p><\/blockquote>\n<p>usando los estilos aplicativo y declarativo.<\/p>\n<p>A continuaci\u00f3n, se muestra el v\u00eddeo<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/-RtLj7Cnffw\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>y el <a href=\"https:\/\/bit.ly\/3nLDkT5\">c\u00f3digo<\/a> de la teor\u00eda utilizada<\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariable {u : \u2115 \u2192 \u211d}\n\n-- ----------------------------------------------------\n-- Nota. Usaremos los siguientes conceptos estudiados\n-- anteriormente.\n-- ----------------------------------------------------\n\nnotation `|`x`|` := abs x\n\ndef limite : (\u2115 \u2192 \u211d) \u2192 \u211d \u2192 Prop :=\n\u03bb u c, \u2200 \u03b5 > 0, \u2203 N, \u2200 n \u2265 N, |u n - c| \u2264 \u03b5\n\n-- ----------------------------------------------------\n-- Ejercicio 1. Definir la funci\u00f3n\n--    sucesion_convergente : (\u2115 \u2192 \u211d) \u2192 Prop\n-- tal que (sucesion_convergente u) expresa que la\n-- sucesi\u00f3n u es convergente.\n-- ----------------------------------------------------\n\ndef sucesion_convergente : (\u2115 \u2192 \u211d) \u2192 Prop\n| u := \u2203 a, limite u a\n\n-- ----------------------------------------------------\n-- Ejercicio 2. Definir la funci\u00f3n\n--    sucesion_de_Cauchy : (\u2115 \u2192 \u211d) \u2192 Prop\n-- tal que (sucesion_de_Cauchy u) expresa que la\n-- sucesi\u00f3n u es una sucesi\u00f3n de Cauchy.\n-- ----------------------------------------------------\n\ndef sucesion_de_Cauchy : (\u2115 \u2192 \u211d) \u2192 Prop\n| u := \u2200 \u03b5 > 0, \u2203 N, \u2200 p q, p \u2265 N \u2192 q \u2265 N \u2192 |u p - u q| \u2264 \u03b5\n\n-- ----------------------------------------------------\n-- Ejercicio 3. Demostrar que toda sucesi\u00f3n convergente\n-- es una sucesi\u00f3n de Cauchy.\n-- ----------------------------------------------------\n\n-- 1\u00aa demostraci\u00f3n\nexample\n  (h : sucesion_convergente u)\n  : sucesion_de_Cauchy u :=\nbegin\n  -- unfold sucesion_convergente at h,\n  cases h with a ha,\n  -- unfold sucesion_de_Cauchy,\n  intros \u03b5 h\u03b5,\n  -- unfold limite at ha,\n  cases ha (\u03b5\/2) (half_pos h\u03b5) with N hN,\n  use N,\n  intros p q hp hq,\n  calc  |u p - u q|\n      = |(u p - a) + (a - u q)| : by ring\n  ... \u2264 |u p - a| + |a - u q|   : by apply abs_add\n  ... = |u p - a| + |u q - a|   : by rw abs_sub (u q) a\n  ... \u2264 \u03b5\/2 + |u q - a|         : add_le_add_right (hN p hp) _\n  ... \u2264 \u03b5\/2 + \u03b5\/2               : add_le_add_left (hN q hq) (\u03b5\/2)\n  ... = \u03b5                       : add_halves \u03b5\nend\n\n-- 2\u00aa demostraci\u00f3n\nexample\n  (h : sucesion_convergente u)\n  : sucesion_de_Cauchy u :=\nbegin\n  cases h with a ha,\n  intros \u03b5 h\u03b5,\n  cases ha (\u03b5\/2) (by linarith) with N hN,\n  use N,\n  intros p q hp hq,\n  calc  |u p - u q|\n      = |(u p - a) + (a - u q)| : by ring\n  ... \u2264 |u p - a| + |a - u q|   : by simp only [abs_add]\n  ... = |u p - a| + |u q - a|   : by simp only [abs_add, abs_sub]\n  ... \u2264 \u03b5                       : by linarith [hN p hp, hN q hq],\nend\n\n-- 3\u00aa demostraci\u00f3n\nexample\n  (h : sucesion_convergente u)\n  : sucesion_de_Cauchy u :=\nexists.elim h\n  (assume a,\n   assume ha : limite u a,\n   show sucesion_de_Cauchy u, from\n     (assume \u03b5,\n      assume h\u03b5 : \u03b5 > 0,\n      exists.elim (ha (\u03b5\/2) (by linarith))\n        (assume N,\n         assume hN : \u2200 n, n \u2265 N \u2192 |u n - a| \u2264 \u03b5\/2,\n         show \u2203 N, \u2200 p q, p \u2265 N \u2192 q \u2265 N \u2192 |u p - u q| \u2264 \u03b5,\n           from exists.intro N\n             (assume p q,\n              assume hp: p \u2265 N,\n              assume hq: q \u2265 N,\n              show |u p - u q| \u2264 \u03b5, from\n                calc  |u p - u q|\n                    = |(u p - a) + (a - u q)| : by ring\n                ... \u2264 |u p - a| + |a - u q|   : by simp only [abs_add]\n                ... = |u p - a| + |u q - a|   : by simp only [abs_add, abs_sub]\n                ... \u2264 \u03b5                       : by linarith [hN p hp, hN q hq]))))\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>He a\u00f1adido a la lista DAO (Demostraci\u00f3n Asistida por Ordenador) con Lean el v\u00eddeo en el que se comentan 3 pruebas en Lean de la propiedad Toda sucesi\u00f3n convergente es una sucesi\u00f3n de Cauchy usando los estilos aplicativo y declarativo. A continuaci\u00f3n, se muestra el v\u00eddeo y el c\u00f3digo de la teor\u00eda utilizada import data.real.basic&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[335],"tags":[336],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/7565"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/comments?post=7565"}],"version-history":[{"count":1,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/7565\/revisions"}],"predecessor-version":[{"id":7566,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/7565\/revisions\/7566"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=7565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=7565"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=7565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}