        {"id":838,"date":"2021-10-08T05:00:30","date_gmt":"2021-10-08T03:00:30","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/?p=838"},"modified":"2021-10-02T17:23:54","modified_gmt":"2021-10-02T15:23:54","slug":"el-cociente-aplica-relaciones-de-equivalencia-en-particiones","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/el-cociente-aplica-relaciones-de-equivalencia-en-particiones\/","title":{"rendered":"El cociente aplica relaciones de equivalencia en particiones"},"content":{"rendered":"<p>Este ejercicio es el 9\u00ba de una serie cuyo objetivo es demostrar que el tipo de las particiones de un conjunto <code>X<\/code> es isomorfo al tipo de las relaciones de equivalencia sobre <code>X<\/code>.<\/p>\n<p>Los anteriores son<br \/>\n1. <a href=\"https:\/\/bit.ly\/2YfsvBZ\">Igualdad de bloques de una partici\u00f3n cuando tienen elementos comunes<\/a>.<br \/>\n2. <a href=\"https:\/\/bit.ly\/3l2onxZ\">Pertenencia a bloques de una partici\u00f3n con elementos comunes<\/a>.<br \/>\n3. <a href=\"https:\/\/bit.ly\/3FlVKUy\">Pertenencia a su propia clase de equivalencia<\/a>.<br \/>\n4. <a href=\"https:\/\/bit.ly\/3uwL1Sd\">Las clases de equivalencia contienen a las clases de equivalencia de sus elementos<\/a>.<br \/>\n5. <a href=\"https:\/\/bit.ly\/2Y7FJjO\">Las clases de equivalencia son iguales a las de sus elementos<\/a>.<br \/>\n6. <a href=\"https:\/\/bit.ly\/39YHuCv\">Las clases de equivalencia son no vac\u00edas<\/a>.<br \/>\n7. <a href=\"https:\/\/bit.ly\/3a1wmFc\">Las clases de equivalencia recubren el conjunto<\/a>.<br \/>\n8. <a href=\"https:\/\/bit.ly\/3FfAX54\">Las clases de equivalencia son disjuntas<\/a>.<\/p>\n<p>El ejercicio consiste en definir la funci\u00f3n<\/p>\n<pre lang=\"lean\">\n   cociente : {R : A \u2192 A \u2192 Prop \/\/ equivalence R} \u2192 particion A\n<\/pre>\n<p>tal que <code>cociente R<\/code> es la partici\u00f3n de <code>A<\/code> formada por las clases de equivalencia de la relaci\u00f3n de equivalencia <code>R<\/code>.<\/p>\n<p>Para ello, completar la siguiente teor\u00eda de Lean:<\/p>\n<pre lang=\"lean\">\nimport tactic\n\n@[ext] structure particion (A : Type) :=\n(Bloques    : set (set A))\n(Hno_vacios : \u2200 X \u2208 Bloques, (X : set A).nonempty)\n(Hrecubren  : \u2200 a, \u2203 X \u2208 Bloques, a \u2208 X)\n(Hdisjuntos : \u2200 X Y \u2208 Bloques, (X \u2229 Y : set A).nonempty \u2192 X = Y)\n\nnamespace particion\n\nvariable  {A : Type}\nvariable  {P : particion A}\nvariables {X Y : set A}\nvariable  (R : A \u2192 A \u2192 Prop)\n\ndef clase (a : A) :=\n  {b : A | R b a}\n\ndef clases : (A \u2192 A \u2192 Prop) \u2192 set (set A) :=\n  \u03bb R, {B : set A | \u2203 x : A, B = clase R x}\n\ndef cociente : {R : A \u2192 A \u2192 Prop \/\/ equivalence R} \u2192 particion A :=\nsorry\n\nend particion\n<\/pre>\n<p>[expand title=\u00bbSoluciones con Lean\u00bb]<\/p>\n<pre lang=\"lean\">\r\nimport tactic\r\n\r\n@[ext] structure particion (A : Type) :=\r\n(Bloques    : set (set A))\r\n(Hno_vacios : \u2200 X \u2208 Bloques, (X : set A).nonempty)\r\n(Hrecubren  : \u2200 a, \u2203 X \u2208 Bloques, a \u2208 X)\r\n(Hdisjuntos : \u2200 X Y \u2208 Bloques, (X \u2229 Y : set A).nonempty \u2192 X = Y)\r\n\r\nnamespace particion\r\n\r\nvariable  {A : Type}\r\nvariable  {P : particion A}\r\nvariables {X Y : set A}\r\nvariable  (R : A \u2192 A \u2192 Prop)\r\n\r\ndef clase (a : A) :=\r\n  {b : A | R b a}\r\n\r\ndef clases : (A \u2192 A \u2192 Prop) \u2192 set (set A) :=\r\n  \u03bb R, {B : set A | \u2203 x : A, B = clase R x}\r\n\r\nlemma pertenece_clase_syss\r\n  {a b : A}\r\n  : b \u2208 clase R a \u2194 R b a :=\r\nby refl\r\n\r\nlemma clases_no_vacias\r\n  (hR: equivalence R)\r\n  : \u2200 (X : set A), X \u2208 clases R \u2192 X.nonempty :=\r\nbegin\r\n  rintros _ \u27e8a, rfl\u27e9,\r\n  use a,\r\n  rw pertenece_clase_syss,\r\n  apply hR.1,\r\nend\r\n\r\nlemma clases_recubren\r\n  (hR: equivalence R)\r\n  : \u2200 a, \u2203 X \u2208 clases R, a \u2208 X :=\r\nbegin\r\n  intro a,\r\n  use clase R a,\r\n  split,\r\n  { use a, },\r\n  { exact hR.1 a, },\r\nend\r\n\r\nlemma subclase_si_pertenece\r\n  {R : A \u2192 A \u2192 Prop}\r\n  (hR: equivalence R)\r\n  {a b : A}\r\n  : a \u2208 clase R b \u2192 clase R a \u2286 clase R b :=\r\n\u03bb hab z hza, hR.2.2 hza hab\r\n\r\nlemma clases_iguales_si_pertenece\r\n  {R : A \u2192 A \u2192 Prop}\r\n  (hR: equivalence R)\r\n  {a b : A}\r\n  : a \u2208 clase R b \u2192 clase R a = clase R b :=\r\n\u03bb hab, set.subset.antisymm\r\n        (subclase_si_pertenece hR hab)\r\n        (subclase_si_pertenece hR (hR.2.1 hab))\r\n\r\nlemma clases_disjuntas\r\n  (hR: equivalence R)\r\n  : \u2200 X Y \u2208 clases R, (X \u2229 Y : set A).nonempty \u2192 X = Y :=\r\nbegin\r\n  rintros X Y \u27e8a, rfl\u27e9 \u27e8b, rfl\u27e9 \u27e8c, hca, hcb\u27e9,\r\n  exact clases_iguales_si_pertenece hR (hR.2.2 (hR.2.1 hca) hcb),\r\nend\r\n\r\ndef cociente : {R : A \u2192 A \u2192 Prop \/\/ equivalence R} \u2192 particion A :=\r\n  \u03bb R, { Bloques    := {B : set A | \u2203 x : A, B = clase R.1 x},\r\n         Hno_vacios := clases_no_vacias R.1 R.2,\r\n         Hrecubren  := clases_recubren R.1 R.2,\r\n         Hdisjuntos := clases_disjuntas R.1 R.2, }\r\n\r\nend particion\r\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\/El_cociente_aplica_relaciones_de_equivalencia_en_particiones.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;<br \/>\n[\/expand]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Este ejercicio es el 9\u00ba de una serie cuyo objetivo es demostrar que el tipo de las particiones de un conjunto X es isomorfo al tipo de las relaciones de equivalencia sobre X. Los anteriores son 1. Igualdad de bloques de una partici\u00f3n cuando tienen elementos comunes. 2. Pertenencia a bloques de una partici\u00f3n con elementos comunes. 3. Pertenencia a su propia clase de equivalencia. 4. Las clases de equivalencia contienen a las clases de equivalencia de sus elementos. 5. Las clases de equivalencia son iguales a las de sus elementos. 6. Las clases de equivalencia son no vac\u00edas. 7. Las clases de equivalencia recubren el conjunto. 8. Las clases de equivalencia son disjuntas. El ejercicio consiste en definir la funci\u00f3n cociente : {R :&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","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,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[30],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/wp-json\/wp\/v2\/posts\/838"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/wp-json\/wp\/v2\/comments?post=838"}],"version-history":[{"count":3,"href":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/wp-json\/wp\/v2\/posts\/838\/revisions"}],"predecessor-version":[{"id":841,"href":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/wp-json\/wp\/v2\/posts\/838\/revisions\/841"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/wp-json\/wp\/v2\/media?parent=838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/wp-json\/wp\/v2\/categories?post=838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/calculemus\/wp-json\/wp\/v2\/tags?post=838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}