{"id":7480,"date":"2020-10-28T13:34:33","date_gmt":"2020-10-28T12:34:33","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=7480"},"modified":"2020-12-21T13:35:19","modified_gmt":"2020-12-21T12:35:19","slug":"formatus-pruebas-en-lean-de-la-propiedad-distributiva-de-la-interseccion-sobre-la-union","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/formatus-pruebas-en-lean-de-la-propiedad-distributiva-de-la-interseccion-sobre-la-union\/","title":{"rendered":"ForMatUS: Pruebas en Lean de la propiedad distributiva de la intersecci\u00f3n sobre la uni\u00f3n"},"content":{"rendered":"<p>He a\u00f1adido a la lista <a href=\"https:\/\/bit.ly\/2FcUrwQ\">L\u00f3gica con Lean<\/a> el <a href=\"https:\/\/youtu.be\/sFJQHZ9fLZs\">v\u00eddeo<\/a> en el que se comentan pruebas en Lean de la propiedad distributiva de la intersecci\u00f3n sobre la uni\u00f3n:<\/p>\n<pre lang=\"lean\">A \u2229 (B \u222a C) = (A \u2229 B) \u222a (A \u2229 C)\n<\/pre>\n<p>usando los estilos declarativos, aplicativos, funcional y autom\u00e1tico.<\/p>\n<p>A continuaci\u00f3n, se muestra el v\u00eddeo<\/p>\n<p><center><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/sFJQHZ9fLZs\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"><\/iframe><\/p>\n<p><\/center>y el <a href=\"https:\/\/github.com\/jaalonso\/Logica_con_Lean\/blob\/master\/src\/3_Conjuntos\/Pruebas_de_A%E2%88%A9(B%E2%88%AAC)_igual_(A%E2%88%A9B)%E2%88%AA(A%E2%88%A9C).lean\">c\u00f3digo<\/a> de la teor\u00eda utilizada<\/p>\n<pre lang=\"lean\">import data.set\nopen set\n\nvariable  {U : Type}\nvariables A B C : set U\n\n-- ----------------------------------------------------\n-- Ej. 1. Demostrar\n--    A \u2229 (B \u222a C) \u2286 (A \u2229 B) \u222a (A \u2229 C)\n-- ----------------------------------------------------\n\n-- 1\u00aa demostraci\u00f3n\nexample :\n  A \u2229 (B \u222a C) \u2286 (A \u2229 B) \u222a (A \u2229 C) :=\nbegin\n  intros x h,\n  cases h with ha hbc,\n  cases hbc with hb hc,\n  { left,\n    split,\n    { exact ha, },\n    { exact hb, }},\n  { right,\n    split,\n    { exact ha, },\n    { exact hc, }},\nend\n\n-- 2\u00aa demostraci\u00f3n\nexample :\n  A \u2229 (B \u222a C) \u2286 (A \u2229 B) \u222a (A \u2229 C) :=\nbegin\n  intros x h,\n  cases h with ha hbc,\n  cases hbc with hb hc,\n  { left,\n    split,\n    { assumption, },\n    { assumption, }},\n  { right,\n    split,\n    { assumption, },\n    { assumption, }},\nend\n\n-- 3\u00aa demostraci\u00f3n\nexample :\n  A \u2229 (B \u222a C) \u2286 (A \u2229 B) \u222a (A \u2229 C) :=\nbegin\n  intros x h,\n  cases h with ha hbc,\n  cases hbc with hb hc,\n  { left,\n    split,\n    assumption', },\n  { right,\n    split,\n    assumption', },\nend\n\n-- 4\u00aa demostraci\u00f3n\nexample :\n  A \u2229 (B \u222a C) \u2286 (A \u2229 B) \u222a (A \u2229 C) :=\nbegin\n  rintros x \u27e8ha, (hb | hc)\u27e9,\n  { left,\n    split,\n    assumption', },\n  { right,\n    split,\n    assumption', },\nend\n\n-- 5\u00aa demostraci\u00f3n\nexample :\n  A \u2229 (B \u222a C) \u2286 (A \u2229 B) \u222a (A \u2229 C) :=\nassume x,\nassume h : x \u2208 A \u2229 (B \u222a C),\nhave x \u2208 A, from and.left h,\nhave x \u2208 B \u222a C, from and.right h,\nor.elim (\u2039x \u2208 B \u222a C\u203a)\n  ( assume : x \u2208 B,\n    have x \u2208 A \u2229 B, from and.intro \u2039x \u2208 A\u203a \u2039x \u2208 B\u203a,\n    show x \u2208 (A \u2229 B) \u222a (A \u2229 C), from or.inl this)\n  ( assume : x \u2208 C,\n    have x \u2208 A \u2229 C, from and.intro \u2039x \u2208 A\u203a \u2039x \u2208 C\u203a,\n    show x \u2208 (A \u2229 B) \u222a (A \u2229 C), from or.inr this)\n\n-- 6\u00aa demostraci\u00f3n\nlemma inter_union_l1 :\n  A \u2229 (B \u222a C) \u2286 (A \u2229 B) \u222a (A \u2229 C) :=\nassume x,\nassume h : x \u2208 A \u2229 (B \u222a C),\nhave ha : x \u2208 A, from and.left h,\nhave hbc : x \u2208 B \u222a C, from and.right h,\nor.elim hbc\n  ( assume hb : x \u2208 B,\n    have hab: x \u2208 A \u2229 B, from and.intro ha hb,\n    show x \u2208 (A \u2229 B) \u222a (A \u2229 C), from or.inl hab)\n  ( assume hc : x \u2208 C,\n    have hac : x \u2208 A \u2229 C, from and.intro ha hc,\n    show x \u2208 (A \u2229 B) \u222a (A \u2229 C), from or.inr hac)\n\n-- ----------------------------------------------------\n-- Ej. 2. Demostrar\n--    (A \u2229 B) \u222a (A \u2229 C) \u2286 A \u2229 (B \u222a C)\n-- ----------------------------------------------------\n\n-- 1\u00aa demostraci\u00f3n\nexample :\n  (A \u2229 B) \u222a (A \u2229 C) \u2286 A \u2229 (B \u222a C) :=\nbegin\n  intros x h,\n  cases h with hab hac,\n  { split,\n    { exact hab.left, },\n    { left,\n      exact hab.right, }},\n  { split,\n    { exact hac.left, },\n    { right,\n      exact hac.right, }},\nend\n\n-- 2\u00aa demostraci\u00f3n\nexample :\n  (A \u2229 B) \u222a (A \u2229 C) \u2286 A \u2229 (B \u222a C) :=\nbegin\n  rintros x (\u27e8ha, hb\u27e9 | \u27e8ha, hc\u27e9),\n  { split,\n    { exact ha, },\n    { left,\n      exact hb, }},\n  { split,\n    { exact ha, },\n    { right,\n      exact hc, }},\nend\n\n-- 3\u00aa demostraci\u00f3n\nlemma inter_union_l2 :\n  (A \u2229 B) \u222a (A \u2229 C) \u2286 A \u2229 (B \u222a C) :=\nassume x,\nassume : x \u2208 (A \u2229 B) \u222a (A \u2229 C),\nor.elim this\n  ( assume h : x \u2208 A \u2229 B,\n    have x \u2208 A, from and.left h,\n    have x \u2208 B, from and.right h,\n    have x \u2208 B \u222a C, from or.inl this,\n    show x \u2208 A \u2229 (B \u222a C), from and.intro \u2039x \u2208 A\u203a this)\n  ( assume h : x \u2208 A \u2229 C,\n    have x \u2208 A, from and.left h,\n    have x \u2208 C, from and.right h,\n    have x \u2208 B \u222a C, from or.inr this,\n    show x \u2208 A \u2229 (B \u222a C), from and.intro \u2039x \u2208 A\u203a this)\n\n-- ----------------------------------------------------\n-- Ej. 3. Demostrar\n--    (A \u2229 B) \u222a (A \u2229 C) = A \u2229 (B \u222a C)\n-- ----------------------------------------------------\n\n-- 1\u00aa demostraci\u00f3n\nexample :\n  A \u2229 (B \u222a C) = (A \u2229 B) \u222a (A \u2229 C) :=\n-- by library_search\ninter_distrib_left A B C\n\n-- 2\u00aa demostraci\u00f3n\ntheorem inter_union :\n  A \u2229 (B \u222a C) = (A \u2229 B) \u222a (A \u2229 C) :=\neq_of_subset_of_subset\n  (inter_union_l1 A B C)\n  (inter_union_l2 A B C)\n\n-- 3\u00aa demostraci\u00f3n\nexample :\n  A \u2229 (B \u222a C) = (A \u2229 B) \u222a (A \u2229 C) :=\nbegin\n  ext,\n  simp,\n  exact and_or_distrib_left,\nend\n\n-- 4\u00aa demostraci\u00f3n\nexample :\n  A \u2229 (B \u222a C) = (A \u2229 B) \u222a (A \u2229 C) :=\nbegin\n  ext,\n  exact and_or_distrib_left,\nend\n\n-- 5\u00aa demostraci\u00f3n\nexample :\n  A \u2229 (B \u222a C) = (A \u2229 B) \u222a (A \u2229 C) :=\next (\u03bb x, and_or_distrib_left)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>He a\u00f1adido a la lista L\u00f3gica con Lean el v\u00eddeo en el que se comentan pruebas en Lean de la propiedad distributiva de la intersecci\u00f3n sobre la uni\u00f3n: A \u2229 (B \u222a C) = (A \u2229 B) \u222a (A \u2229 C) usando los estilos declarativos, aplicativos, funcional y autom\u00e1tico. A continuaci\u00f3n, se muestra el v\u00eddeo&#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":[166,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\/7480"}],"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=7480"}],"version-history":[{"count":1,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/7480\/revisions"}],"predecessor-version":[{"id":7481,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/7480\/revisions\/7481"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=7480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=7480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=7480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}