{"id":7780,"date":"2022-08-28T18:25:54","date_gmt":"2022-08-28T16:25:54","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=7780"},"modified":"2022-08-28T18:25:54","modified_gmt":"2022-08-28T16:25:54","slug":"dao-la-semana-en-calculemus-28-de-agosto-de-2022","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/dao-la-semana-en-calculemus-28-de-agosto-de-2022\/","title":{"rendered":"DAO: La semana en Calculemus (28 de agosto de 2022)"},"content":{"rendered":"<p>Esta semana he publicado en <a href=\"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/\">Calculemus<\/a> las demostraciones con Lean de las siguientes propiedades:<\/p>\n<ul>\n<li><a href=\"#ej1\">1. Si a, b, c \u2208 \u211d, entonces (a * b) * c = b * (a * c)<\/a><\/li>\n<li><a href=\"#ej2\">2. Si a, b, c, d, e, f \u2208 \u211d tales que a * b = c * d y e = f entonces, a * (b * e) = c * (d * f)<\/a><\/li>\n<li><a href=\"#ej3\">3. Si a, b \u2208 \u211d, entonces (a + b) * (a + b) = a * a + 2 * (a * b) + b * b<\/a><\/li>\n<li><a href=\"#ej4\">4. Si a, b, c, d \u2208 \u211d , entonces (a + b) * (c + d) = a * c + a * d + b * c + b * d<\/a><\/li>\n<li><a href=\"#ej5\">5. Si a, b \u2208 \u211d, entonces (a + b) * (a &#8211; b) = a^2 &#8211; b^2<\/a><\/li>\n<\/ul>\n<p>A continuaci\u00f3n se muestran las soluciones.<br \/>\n<!--more--><br \/>\n<a name=\"ej1\"><\/a><\/p>\n<h3>1. Si a, b, c \u2208 \u211d, entonces (a * b) * c = b * (a * c)<\/h3>\n<p>Demostrar que los n\u00fameros reales tienen la siguente propiedad<\/p>\n<pre lang=\"text\">\n(a * b) * c = b * (a * c)\n<\/pre>\n<p>Para ello, completar la siguiente teor\u00eda de Lean:<\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariables a b c : \u211d\n\nexample : (a * b) * c = b * (a * c) :=\nsorry\n<\/pre>\n<p><b>Soluciones con Lean<\/b><\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariables a b c : \u211d\n\n-- 1\u00aa demostraci\u00f3n\n-- ===============\n\nexample : (a * b) * c = b * (a * c) :=\nbegin\n  rw mul_comm a b,\n  rw mul_assoc b a c,\nend\n\n-- 2\u00aa demostraci\u00f3n\n-- ===============\n\nexample : (a * b) * c = b * (a * c) :=\ncalc (a * b) * c\n     = (b * a) * c : by rw mul_comm a b\n ... = b * (a * c) : by rw mul_assoc b a c\n\n-- 3\u00aa demostraci\u00f3n\n-- ===============\n\nexample : (a * b) * c = b * (a * c) :=\ncalc (a * b) * c\n     = (b * a) * c : by ring\n ... = b * (a * c) : by ring\n\n-- 4\u00aa demostraci\u00f3n\n-- ===============\n\nexample : (a * b) * c = b * (a * c) :=\nby ring\n<\/pre>\n<p>Se puede interactuar con la prueba anterior en <a href=\"https:\/\/leanprover-community.github.io\/lean-web-editor\/#url=https:\/\/raw.githubusercontent.com\/jaalonso\/Calculemus\/main\/src\/Asociativa_conmutativa_de_los_reales.lean\" rel=\"noopener noreferrer\" target=\"_blank\">esta sesi\u00f3n con Lean<\/a>.<\/p>\n<p>En los comentarios se pueden escribir otras soluciones, escribiendo el c\u00f3digo entre una l\u00ednea con &#60;pre lang=&quot;lean&quot;&#62; y otra con &#60;\/pre&#62;<\/p>\n<h3>2. Si a, b, c, d, e, f \u2208 \u211d tales que a * b = c * d y e = f entonces, a * (b * e) = c * (d * f)<\/h3>\n<p>Demostrar que si a, b, c, d, e y f son n\u00fameros reales tales que<\/p>\n<pre lang=\"text\">\n   a * b = c * d\n   e = f\n<\/pre>\n<p>Entonces,<\/p>\n<pre lang=\"text\">\n   a * (b * e) = c * (d * f)\n<\/pre>\n<p>Para ello, completar la siguiente teor\u00eda de Lean:<\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariables a b c d e f : \u211d\n\nexample\n  (h1 : a * b = c * d)\n  (h2 : e = f)\n  : a * (b * e) = c * (d * f) :=\n<\/pre>\n<p><b>Soluciones con Lean<\/b><\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariables a b c d e f : \u211d\n\n-- 1\u00aa demostraci\u00f3n\nexample\n  (h1 : a * b = c * d)\n  (h2 : e = f)\n  : a * (b * e) = c * (d * f) :=\nbegin\n  rw h2,\n  rw \u2190mul_assoc,\n  rw h1,\n  rw mul_assoc,\nend\n\n-- 2\u00aa demostraci\u00f3n\nexample\n  (h1 : a * b = c * d)\n  (h2 : e = f)\n  : a * (b * e) = c * (d * f) :=\ncalc a * (b * e)\n     = a * (b * f) : by rw h2\n ... = (a * b) * f : by rw \u2190mul_assoc\n ... = (c * d) * f : by rw h1\n ... = c * (d * f) : by rw mul_assoc\n\n-- 3\u00aa demostraci\u00f3n\nexample\n  (h1 : a * b = c * d)\n  (h2 : e = f)\n  : a * (b * e) = c * (d * f) :=\ncalc a * (b * e)\n     = a * (b * f) : by rw h2\n ... = (a * b) * f : by ring\n ... = (c * d) * f : by rw h1\n ... = c * (d * f) : by ring\n\n-- 4\u00aa demostraci\u00f3n\nexample\n  (h1 : a * b = c * d)\n  (h2 : e = f)\n  : a * (b * e) = c * (d * f) :=\nby finish\n<\/pre>\n<p>Se puede interactuar con la prueba anterior en <a href=\"https:\/\/leanprover-community.github.io\/lean-web-editor\/#url=https:\/\/raw.githubusercontent.com\/jaalonso\/Calculemus\/main\/src\/Identidad_condicional_en_los_reales.lean\" rel=\"noopener noreferrer\" target=\"_blank\">esta sesi\u00f3n con Lean<\/a>.<\/p>\n<p>En los comentarios se pueden escribir otras soluciones, escribiendo el c\u00f3digo entre una l\u00ednea con &#60;pre lang=&quot;lean&quot;&#62; y otra con &#60;\/pre&#62;<\/p>\n<h3>3. Si a, b \u2208 \u211d, entonces (a + b) * (a + b) = a * a + 2 * (a * b) + b * b<\/h3>\n<p>Demostrar que si a y b son n\u00fameros reales, entonces<\/p>\n<pre lang=\"text\">\n(a + b) * (a + b) = a * a + 2 * (a * b) + b * b\n<\/pre>\n<p>Para ello, completar la siguiente teor\u00eda de Lean:<\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariables a b : \u211d\n\nexample :\n  (a + b) * (a + b) = a * a + 2 * (a * b) + b * b :=\nsorry\n<\/pre>\n<p><b>Soluciones con Lean<\/b><\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariables a b : \u211d\n\n-- 1\u00aa demostraci\u00f3n\n-- ===============\n\nexample :\n  (a + b) * (a + b) = a * a + 2 * (a * b) + b * b :=\ncalc\n  (a + b) * (a + b)\n      = (a + b) * a + (a + b) * b       : by rw mul_add\n  ... = a * a + b * a + (a + b) * b     : by rw add_mul\n  ... = a * a + b * a + (a * b + b * b) : by rw add_mul\n  ... = a * a + b * a + a * b + b * b   : by rw \u2190 add_assoc\n  ... = a * a + (b * a + a * b) + b * b : by rw add_assoc (a * a)\n  ... = a * a + (a * b + a * b) + b * b : by rw mul_comm b a\n  ... = a * a + 2 * (a * b) + b * b     : by rw \u2190 two_mul\n\n-- 2\u00aa demostraci\u00f3n\n-- ===============\n\nexample :\n  (a + b) * (a + b) = a * a + 2 * (a * b) + b * b :=\ncalc\n  (a + b) * (a + b)\n      = a * a + b * a + (a * b + b * b) : by rw [mul_add, add_mul, add_mul]\n  ... = a * a + (b * a + a * b) + b * b : by rw [\u2190add_assoc, add_assoc (a * a)]\n  ... = a * a + 2 * (a * b) + b * b     : by rw [mul_comm b a, \u2190two_mul]\n\n-- 3\u00aa demostraci\u00f3n\n-- ===============\n\nexample :\n  (a + b) * (a + b) = a * a + 2 * (a * b) + b * b :=\ncalc\n  (a + b) * (a + b)\n      = a * a + b * a + (a * b + b * b) : by ring\n  ... = a * a + (b * a + a * b) + b * b : by ring\n  ... = a * a + 2 * (a * b) + b * b     : by ring\n\n-- 4\u00aa demostraci\u00f3n\n-- ===============\n\nexample :\n  (a + b) * (a + b) = a * a + 2 * (a * b) + b * b :=\nby ring\n\n-- 5\u00aa demostraci\u00f3n\n-- ===============\n\nexample :\n  (a + b) * (a + b) = a * a + 2 * (a * b) + b * b :=\nbegin\n  rw mul_add,\n  rw add_mul,\n  rw add_mul,\n  rw \u2190 add_assoc,\n  rw add_assoc (a * a),\n  rw mul_comm b a,\n  rw \u2190 two_mul,\nend\n\n-- 6\u00aa demostraci\u00f3n\n-- ===============\n\nexample :\n  (a + b) * (a + b) = a * a + 2 * (a * b) + b * b :=\nbegin\n  rw [mul_add, add_mul, add_mul],\n  rw [\u2190add_assoc, add_assoc (a * a)],\n  rw [mul_comm b a, \u2190two_mul],\nend\n<\/pre>\n<p>Se puede interactuar con la prueba anterior en <a href=\"https:\/\/leanprover-community.github.io\/lean-web-editor\/#url=https:\/\/raw.githubusercontent.com\/jaalonso\/Calculemus\/main\/src\/Cuadrado_del_binomio.lean\" rel=\"noopener noreferrer\" target=\"_blank\">esta sesi\u00f3n con Lean<\/a>.<\/p>\n<p>En los comentarios se pueden escribir otras soluciones, escribiendo el c\u00f3digo entre una l\u00ednea con &#60;pre lang=&quot;lean&quot;&#62; y otra con &#60;\/pre&#62;<\/p>\n<h3>4. Si a, b, c, d \u2208 \u211d , entonces (a + b) * (c + d) = a * c + a * d + b * c + b * d<\/h3>\n<p>Demostrar que si a, b, c y d son n\u00fameros reales, entonces<\/p>\n<pre lang=\"text\">\n(a + b) * (c + d) = a * c + a * d + b * c + b * d\n<\/pre>\n<p>Para ello, completar la siguiente teor\u00eda de Lean:<\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariables a b c d : \u211d\n\nexample\n  : (a + b) * (c + d) = a * c + a * d + b * c + b * d :=\nsorry\n<\/pre>\n<p><b>Soluciones con Lean<\/b><\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariables a b c d : \u211d\n\n-- 1\u00aa demostraci\u00f3n\n-- ===============\n\nexample\n  : (a + b) * (c + d) = a * c + a * d + b * c + b * d :=\ncalc\n  (a + b) * (c + d)\n      = a * (c + d) + b * (c + d)       : by rw add_mul\n  ... = a * c + a * d + b * (c + d)     : by rw mul_add\n  ... = a * c + a * d + (b * c + b * d) : by rw mul_add\n  ... = a * c + a * d + b * c + b * d   : by rw \u2190add_assoc\n\n-- 2\u00aa demostraci\u00f3n\n-- ===============\n\nexample\n  : (a + b) * (c + d) = a * c + a * d + b * c + b * d :=\ncalc\n  (a + b) * (c + d)\n      = a * (c + d) + b * (c + d)       : by ring\n  ... = a * c + a * d + b * (c + d)     : by ring\n  ... = a * c + a * d + (b * c + b * d) : by ring\n  ... = a * c + a * d + b * c + b * d   : by ring\n\n-- 3\u00aa demostraci\u00f3n\n-- ===============\n\nexample : (a + b) * (c + d) = a * c + a * d + b * c + b * d :=\nby ring\n\n-- 4\u00aa demostraci\u00f3n\n-- ===============\n\nexample\n  : (a + b) * (c + d) = a * c + a * d + b * c + b * d :=\nbegin\n   rw add_mul,\n   rw mul_add,\n   rw mul_add,\n   rw \u2190 add_assoc,\nend\n\n-- 5\u00aa demostraci\u00f3n\n-- ===============\n\nexample : (a + b) * (c + d) = a * c + a * d + b * c + b * d :=\nby rw [add_mul, mul_add, mul_add, \u2190add_assoc]\n<\/pre>\n<p>Se puede interactuar con la prueba anterior en <a href=\"https:\/\/leanprover-community.github.io\/lean-web-editor\/#url=https:\/\/raw.githubusercontent.com\/jaalonso\/Calculemus\/main\/src\/Producto_de_dos_binomios.lean\" rel=\"noopener noreferrer\" target=\"_blank\">esta sesi\u00f3n con Lean<\/a>.<\/p>\n<p>En los comentarios se pueden escribir otras soluciones, escribiendo el c\u00f3digo entre una l\u00ednea con &#60;pre lang=&quot;lean&quot;&#62; y otra con &#60;\/pre&#62;<\/p>\n<h3>5. Si a, b \u2208 \u211d, entonces (a + b) * (a &#8211; b) = a^2 &#8211; b^2<\/h3>\n<p>Demostrar que si a y b son n\u00fameros reales, entonces<\/p>\n<pre lang=\"text\">\n(a + b) * (a - b) = a^2 - b^2\n<\/pre>\n<p>Para ello, completar la siguiente teor\u00eda de Lean:<\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariables a b c d : \u211d\n\nexample : (a + b) * (a - b) = a^2 - b^2 :=\nsorry\n<\/pre>\n<p><b>Soluciones con Lean<\/b><\/p>\n<pre lang=\"lean\">\nimport data.real.basic\n\nvariables a b c d : \u211d\n\n-- 1\u00aa demostraci\u00f3n\nexample : (a + b) * (a - b) = a^2 - b^2 :=\ncalc\n  (a + b) * (a - b)\n      = a * (a - b) + b * (a - b)         : by rw add_mul\n  ... = (a * a - a * b) + b * (a - b)     : by rw mul_sub\n  ... = (a^2 - a * b) + b * (a - b)       : by rw \u2190 pow_two\n  ... = (a^2 - a * b) + (b * a - b * b)   : by rw mul_sub\n  ... = (a^2 - a * b) + (b * a - b^2)     : by rw \u2190 pow_two\n  ... = (a^2 + -(a * b)) + (b * a - b^2)  : by ring\n  ... = a^2 + (-(a * b) + (b * a - b^2))  : by rw add_assoc\n  ... = a^2 + (-(a * b) + (b * a + -b^2)) : by ring\n  ... = a^2 + ((-(a * b) + b * a) + -b^2) : by rw \u2190 add_assoc\n                                               (-(a * b)) (b * a) (-b^2)\n  ... = a^2 + ((-(a * b) + a * b) + -b^2) : by rw mul_comm\n  ... = a^2 + (0 + -b^2)                  : by rw neg_add_self (a * b)\n  ... = (a^2 + 0) + -b^2                  : by rw \u2190 add_assoc\n  ... = a^2 + -b^2                        : by rw add_zero\n  ... = a^2 - b^2                         : by linarith\n\n\n-- 2\u00aa demostraci\u00f3n\nexample : (a + b) * (a - b) = a^2 - b^2 :=\ncalc\n  (a + b) * (a - b)\n      = a * (a - b) + b * (a - b)         : by ring\n  ... = (a * a - a * b) + b * (a - b)     : by ring\n  ... = (a^2 - a * b) + b * (a - b)       : by ring\n  ... = (a^2 - a * b) + (b * a - b * b)   : by ring\n  ... = (a^2 - a * b) + (b * a - b^2)     : by ring\n  ... = (a^2 + -(a * b)) + (b * a - b^2)  : by ring\n  ... = a^2 + (-(a * b) + (b * a - b^2))  : by ring\n  ... = a^2 + (-(a * b) + (b * a + -b^2)) : by ring\n  ... = a^2 + ((-(a * b) + b * a) + -b^2) : by ring\n  ... = a^2 + ((-(a * b) + a * b) + -b^2) : by ring\n  ... = a^2 + (0 + -b^2)                  : by ring\n  ... = (a^2 + 0) + -b^2                  : by ring\n  ... = a^2 + -b^2                        : by ring\n  ... = a^2 - b^2                         : by ring\n\n-- 3\u00aa demostraci\u00f3n\nexample : (a + b) * (a - b) = a^2 - b^2 :=\nby ring\n<\/pre>\n<p>Se puede interactuar con la prueba anterior en <a href=\"https:\/\/leanprover-community.github.io\/lean-web-editor\/#url=https:\/\/raw.githubusercontent.com\/jaalonso\/Calculemus\/main\/src\/Suma_por_diferencia.lean\" rel=\"noopener noreferrer\" target=\"_blank\">esta sesi\u00f3n con Lean<\/a>.<\/p>\n<p>En los comentarios se pueden escribir otras soluciones, escribiendo el c\u00f3digo entre una l\u00ednea con &#60;pre lang=&quot;lean&quot;&#62; y otra con &#60;\/pre&#62;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta semana he publicado en Calculemus las demostraciones con Lean de las siguientes propiedades: 1. Si a, b, c \u2208 \u211d, entonces (a * b) * c = b * (a * c) 2. Si a, b, c, d, e, f \u2208 \u211d tales que a * b = c * d y e =&#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":[],"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\/7780"}],"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=7780"}],"version-history":[{"count":1,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/7780\/revisions"}],"predecessor-version":[{"id":7781,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/7780\/revisions\/7781"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=7780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=7780"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=7780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}