<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/RA2018/index.php?action=history&amp;feed=atom&amp;title=R8</id>
	<title>R8 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/RA2018/index.php?action=history&amp;feed=atom&amp;title=R8"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2018/index.php?title=R8&amp;action=history"/>
	<updated>2026-07-22T00:03:19Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2018/index.php?title=R8&amp;diff=351&amp;oldid=prev</id>
		<title>Jalonso: Protegió «R8» ([Editar=Solo administradores] (indefinido) [Trasladar=Solo administradores] (indefinido))</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2018/index.php?title=R8&amp;diff=351&amp;oldid=prev"/>
		<updated>2019-02-09T08:02:12Z</updated>

		<summary type="html">&lt;p&gt;Protegió «&lt;a href=&quot;/~jalonso/RA2018/index.php/R8&quot; title=&quot;R8&quot;&gt;R8&lt;/a&gt;» ([Editar=Solo administradores] (indefinido) [Trasladar=Solo administradores] (indefinido))&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 08:02 9 feb 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;es&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sin diferencias)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2018/index.php?title=R8&amp;diff=350&amp;oldid=prev</id>
		<title>Jalonso: Página creada con «&lt;source lang=&quot;isabelle&quot;&gt; chapter {* R8: Gramáticas libres de contexto *}  theory R8_Gramaticas_libre_de_contexto imports Main begin  text {*   En esta relación se definen…»</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2018/index.php?title=R8&amp;diff=350&amp;oldid=prev"/>
		<updated>2019-02-09T08:02:03Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt; chapter {* R8: Gramáticas libres de contexto *}  theory R8_Gramaticas_libre_de_contexto imports Main begin  text {*   En esta relación se definen…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter {* R8: Gramáticas libres de contexto *}&lt;br /&gt;
&lt;br /&gt;
theory R8_Gramaticas_libre_de_contexto&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  En esta relación se definen dos gramáticas libres de contexto y se&lt;br /&gt;
  demuestra que son equivalentes. Además, se define por recursión una&lt;br /&gt;
  función para reconocer las palabras de la gramática y se demuestra que&lt;br /&gt;
  es correcta y completa. *}&lt;br /&gt;
&lt;br /&gt;
text {*  &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Una gramática libre de contexto para las expresiones&lt;br /&gt;
  parentizadas es&lt;br /&gt;
     S ⟶ ε | &amp;#039;(&amp;#039; S &amp;#039;)&amp;#039; | SS&lt;br /&gt;
  definir inductivamente la gramática S usando A y B para &amp;#039;(&amp;#039; y &amp;#039;)&amp;#039;,&lt;br /&gt;
  respectivamente. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
datatype alfabeto = A | B&lt;br /&gt;
&lt;br /&gt;
inductive_set S :: &amp;quot;alfabeto list set&amp;quot; where&lt;br /&gt;
  S1: &amp;quot;[] ∈ S&amp;quot; &lt;br /&gt;
| S2: &amp;quot;w ∈ S ⟹ [A] @ w @ [B] ∈ S&amp;quot; &lt;br /&gt;
| S3: &amp;quot;v ∈ S ⟹ w ∈ S ⟹ v @ w ∈ S&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {*  &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Otra gramática libre de contexto para las expresiones&lt;br /&gt;
  parentizadas es&lt;br /&gt;
     T ⟶ ε | T &amp;#039;(&amp;#039; T &amp;#039;)&amp;#039;&lt;br /&gt;
  definir inductivamente la gramática T usando A y B para &amp;#039;(&amp;#039; y &amp;#039;)&amp;#039;,&lt;br /&gt;
  respectivamente. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
inductive_set T :: &amp;quot;alfabeto list set&amp;quot; where&lt;br /&gt;
  T1: &amp;quot;[] ∈ T&amp;quot; &lt;br /&gt;
| T2: &amp;quot;v ∈ T ⟹ w ∈ T ⟹ v @ [A] @ w @ [B] ∈ T&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {*  &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar que T está contenido en S. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma T_en_S: &lt;br /&gt;
  assumes &amp;quot;w ∈ T&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;w ∈ S&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*  &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar que S está contenido en T. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma S_en_T: &lt;br /&gt;
  &amp;quot;w ∈ S ⟹ w ∈ T&amp;quot;&lt;br /&gt;
oops  &lt;br /&gt;
&lt;br /&gt;
text {*  &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar que S y T son iguales. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma S_igual_T:&lt;br /&gt;
  &amp;quot;S = T&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*  &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. En lugar de una gramática, se puede usar el siguiente&lt;br /&gt;
  procedimiento para determinar si la cadena es una sucesión de&lt;br /&gt;
  paréntesis bien balanceada: se recorre la cadena de izquierda a&lt;br /&gt;
  derecha contando cuántos paréntesis de necesitan para que esté bien&lt;br /&gt;
  balanceada. Si el contador al final de la cadena es 0, la cadena está&lt;br /&gt;
  bien balanceada.&lt;br /&gt;
&lt;br /&gt;
  Definir la función&lt;br /&gt;
     balanceada :: alfabeto list ⇒ bool&lt;br /&gt;
  tal que (balanceada w) se verifica si w está bien balanceada. Por&lt;br /&gt;
  ejemplo, &lt;br /&gt;
     balanceada [A,A,B,B] = True&lt;br /&gt;
     balanceada [A,B,A,B] = True&lt;br /&gt;
     balanceada [A,B,B,A] = False&lt;br /&gt;
  Indicación: Definir balanceada  usando la función auxiliar &lt;br /&gt;
     balanceada_aux :: alfabeto list ⇒ nat ⇒ bool&lt;br /&gt;
  tal que (balanceada_aux w 0) se verifica si w está bien balanceada.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun balanceada :: &amp;quot;alfabeto list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;balanceada w = undefined&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {*  &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar que balanceada es un reconocedor correcto de la&lt;br /&gt;
  gramática S; es decir, &lt;br /&gt;
     w ∈ S ⟹ balanceada w&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma balanceada_correcto:&lt;br /&gt;
  &amp;quot;w ∈ S ⟹ balanceada w&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*  &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar que balanceada es un reconocedor completo de &lt;br /&gt;
  la gramática S; es decir, &lt;br /&gt;
     balanceada w ⟹ w ∈ S &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma balanceada_completo: &lt;br /&gt;
  assumes &amp;quot;balanceada w&amp;quot;&lt;br /&gt;
  shows   &amp;quot;w ∈ S&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
</feed>