<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/RA2010/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Julianmina</id>
	<title>Razonamiento automático (2010-11) - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/RA2010/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Julianmina"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2010/index.php/Especial:Contribuciones/Julianmina"/>
	<updated>2026-07-17T11:35:36Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2010/index.php?title=Relaci%C3%B3n_5&amp;diff=173</id>
		<title>Relación 5</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2010/index.php?title=Relaci%C3%B3n_5&amp;diff=173"/>
		<updated>2011-02-15T15:52:20Z</updated>

		<summary type="html">&lt;p&gt;Julianmina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* 5ª relación de ejercicios *}&lt;br /&gt;
&lt;br /&gt;
theory Relacion_5&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
section {* Menor posición válida *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir la función&lt;br /&gt;
     menorValida :: &amp;quot;(&amp;#039;a ⇒ bool) ⇒ &amp;#039;a list ⇒ nat&amp;quot;&lt;br /&gt;
  tal que (menorValida p xs) es el índice del primer elemento de una&lt;br /&gt;
  lista xs que satisface el predicado  p y es la longitud de xs si&lt;br /&gt;
  ningún elemento satisface el predicado p. Por ejemplo, &lt;br /&gt;
     menorValida (λx. 4&amp;lt;x) [1::nat, 3, 5, 3, 1]     = 2&lt;br /&gt;
     menorValida (λx. 6&amp;lt;x) [1::nat, 3, 5, 3, 1]     = 5&lt;br /&gt;
     menorValida (λx. 1&amp;lt;length x) [[], [1, 2], [3]] = 1&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
primrec menorValida :: &amp;quot;(&amp;#039;a ⇒ bool) ⇒ &amp;#039;a list ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;menorValida P [] = 0&amp;quot; &lt;br /&gt;
  | &amp;quot;menorValida P (x#xs) = (if P x then 0 else ((menorValida P xs)+1))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar que menorValida devuelve la longitud de la&lt;br /&gt;
  lista syss ningún elemento satisface el predicado dado.&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma &amp;quot;menorValida (λx. 6&amp;lt;x) [1::nat, 3, 5, 3, 1] = 5&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*  &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar si n es el valor de (menorValida P xs),&lt;br /&gt;
  entonces ninguno de los primeros n elementos de la lista xs verifica&lt;br /&gt;
  la propiedad P. &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. ¿Cómo se puede relacionar &lt;br /&gt;
    &amp;quot;menorValida (λ x. P x ∨ Q x) xs&amp;quot; &lt;br /&gt;
  con &lt;br /&gt;
    &amp;quot;menorValida P xs&amp;quot; y &amp;quot;menorValida Q xs&amp;quot;? &lt;br /&gt;
  ¿Se puede decir algo parecido con la conjunción de P y Q?  &lt;br /&gt;
  Prueba tus conjeturas.&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La relación es la siguiente: La menor posición de los elementos que&lt;br /&gt;
  verifican la propiedad &amp;quot;P ∨ Q&amp;quot; es el mínimo de la menor posición de&lt;br /&gt;
  los elementos que verifican P y de la menor posición de los elementos&lt;br /&gt;
  que verifican Q.  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Si P implica Q, ¿qué relación puede deducirse entre &lt;br /&gt;
  &amp;quot;menorValida P xs&amp;quot; y &amp;quot;menorValida Q xs&amp;quot;?&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Julianmina</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2010/index.php?title=Relaci%C3%B3n_5&amp;diff=172</id>
		<title>Relación 5</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2010/index.php?title=Relaci%C3%B3n_5&amp;diff=172"/>
		<updated>2011-02-15T15:40:02Z</updated>

		<summary type="html">&lt;p&gt;Julianmina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* 5ª relación de ejercicios *}&lt;br /&gt;
&lt;br /&gt;
theory Relacion_5&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
section {* Menor posición válida *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir la función&lt;br /&gt;
     menorValida :: &amp;quot;(&amp;#039;a ⇒ bool) ⇒ &amp;#039;a list ⇒ nat&amp;quot;&lt;br /&gt;
  tal que (menorValida p xs) es el índice del primer elemento de una&lt;br /&gt;
  lista xs que satisface el predicado  p y es la longitud de xs si&lt;br /&gt;
  ningún elemento satisface el predicado p. Por ejemplo, &lt;br /&gt;
     menorValida (λx. 4&amp;lt;x) [1::nat, 3, 5, 3, 1]     = 2&lt;br /&gt;
     menorValida (λx. 6&amp;lt;x) [1::nat, 3, 5, 3, 1]     = 5&lt;br /&gt;
     menorValida (λx. 1&amp;lt;length x) [[], [1, 2], [3]] = 1&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
primrec menorValida :: &amp;quot;(&amp;#039;a ⇒ bool) ⇒ &amp;#039;a list ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;menorValida P [] = 0&amp;quot; &lt;br /&gt;
  | &amp;quot;menorValida P (x#xs) = (if P x then 0 else ((menorValida P xs)+1))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar que menorValida devuelve la longitud de la&lt;br /&gt;
  lista syss ningún elemento satisface el predicado dado.&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*  &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar si n es el valor de (menorValida P xs),&lt;br /&gt;
  entonces ninguno de los primeros n elementos de la lista xs verifica&lt;br /&gt;
  la propiedad P. &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. ¿Cómo se puede relacionar &lt;br /&gt;
    &amp;quot;menorValida (λ x. P x ∨ Q x) xs&amp;quot; &lt;br /&gt;
  con &lt;br /&gt;
    &amp;quot;menorValida P xs&amp;quot; y &amp;quot;menorValida Q xs&amp;quot;? &lt;br /&gt;
  ¿Se puede decir algo parecido con la conjunción de P y Q?  &lt;br /&gt;
  Prueba tus conjeturas.&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La relación es la siguiente: La menor posición de los elementos que&lt;br /&gt;
  verifican la propiedad &amp;quot;P ∨ Q&amp;quot; es el mínimo de la menor posición de&lt;br /&gt;
  los elementos que verifican P y de la menor posición de los elementos&lt;br /&gt;
  que verifican Q.  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Si P implica Q, ¿qué relación puede deducirse entre &lt;br /&gt;
  &amp;quot;menorValida P xs&amp;quot; y &amp;quot;menorValida Q xs&amp;quot;?&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Julianmina</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2010/index.php?title=Usuario:Jgalanp&amp;diff=171</id>
		<title>Usuario:Jgalanp</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2010/index.php?title=Usuario:Jgalanp&amp;diff=171"/>
		<updated>2011-02-15T15:27:02Z</updated>

		<summary type="html">&lt;p&gt;Julianmina: Página creada con &amp;#039;Juan Galán&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Juan Galán&lt;/div&gt;</summary>
		<author><name>Julianmina</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2010/index.php?title=Usuario:Jmuros&amp;diff=170</id>
		<title>Usuario:Jmuros</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2010/index.php?title=Usuario:Jmuros&amp;diff=170"/>
		<updated>2011-02-15T15:25:00Z</updated>

		<summary type="html">&lt;p&gt;Julianmina: Página creada con &amp;#039;Jesús Muros&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jesús Muros&lt;/div&gt;</summary>
		<author><name>Julianmina</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2010/index.php?title=Usuario:Julianmina&amp;diff=169</id>
		<title>Usuario:Julianmina</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2010/index.php?title=Usuario:Julianmina&amp;diff=169"/>
		<updated>2011-02-15T15:21:44Z</updated>

		<summary type="html">&lt;p&gt;Julianmina: Página creada con &amp;#039;Julián Mina&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Julián Mina&lt;/div&gt;</summary>
		<author><name>Julianmina</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/RA2010/index.php?title=Relaci%C3%B3n_4&amp;diff=146</id>
		<title>Relación 4</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/RA2010/index.php?title=Relaci%C3%B3n_4&amp;diff=146"/>
		<updated>2011-02-14T20:06:48Z</updated>

		<summary type="html">&lt;p&gt;Julianmina: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* 4ª relación de ejercicios *}&lt;br /&gt;
&lt;br /&gt;
theory Relacion_4&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
section {* Sustitución, inversión y eliminación *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir la función &lt;br /&gt;
     sust :: &amp;quot;&amp;#039;a ⇒ &amp;#039;a ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (sust x y zs) es la lista obtenida sustituyendo cada&lt;br /&gt;
  occurrencia de x por y en la lista zs. Por ejemplo,&lt;br /&gt;
     sust (1::nat) 2 [1,2,3,4,1,2,3,4] = [2,2,3,4,2,2,3,4]&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
primrec sust :: &amp;quot;&amp;#039;a ⇒ &amp;#039;a ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;sust x y [] = []&amp;quot;&lt;br /&gt;
| &amp;quot;sust x y (w#zs) = (if w=x then y#(sust x y zs) else w#(sust x y zs))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar o refutar: &lt;br /&gt;
     sust x y (xs@ys) = (sust x y xs)@(sust x y ys)&amp;quot;&lt;br /&gt;
  ---------------------------------------------------------------------  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --Usando la sentencia refute puede obtenerse un contraejemplo fácilmente.&lt;br /&gt;
  --Además, al ejecutarse con la aplicación, ya directamente propone un contraejemplo.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma sust_append_auto: &lt;br /&gt;
  &amp;quot;sust x y (xs@ys) = (sust x y xs)@(sust x y ys)&amp;quot;&lt;br /&gt;
refute&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma sust_append: &lt;br /&gt;
  &amp;quot;sust x y (xs @ ys) = (sust x y xs)@(sust x y ys)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar o refutar: &lt;br /&gt;
     rev (sust x y zs) = sust x y (rev zs)&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
theorem &amp;quot;rev(sust x y zs) = sust x y (rev zs)&amp;quot;&lt;br /&gt;
refute&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
theorem rev_sust: &lt;br /&gt;
  &amp;quot;rev (sust x y zs) = sust x y (rev zs)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar o refutar:&lt;br /&gt;
     sust x y (sust u v zs) = sust u v (sust x y zs)&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;sust x y (sust u v zs) = sust u v (sust x y zs)&amp;quot;&lt;br /&gt;
refute&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar o refutar:&lt;br /&gt;
     sust y z (sust x y zs) = sust x z zs&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;sust y z (sust x y zs) = sust x z zs&amp;quot;&lt;br /&gt;
refute&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Definir la función&lt;br /&gt;
     borra :: &amp;quot;&amp;#039;a ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (borra x ys) es la lista obtenida borrando la primera&lt;br /&gt;
  ocurrencia del elemento x en la lista ys. Por ejemplo,&lt;br /&gt;
     borra (2::nat) [1,2,3,2] = [1,3,2]&lt;br /&gt;
&lt;br /&gt;
  Nota: La función borra es equivalente a la predefinida remove1. &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
primrec borra :: &amp;quot;&amp;#039;a ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;borra x [] = []&amp;quot;&lt;br /&gt;
| &amp;quot;borra x (w#ys) = (if x=w then ys else (w#(borra x ys)))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Definir la función&lt;br /&gt;
     borraTodas :: &amp;quot;&amp;#039;a ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (borraTodas x ys) es la lista obtenida borrando todas las&lt;br /&gt;
  ocurrencias del elemento x en la lista ys. Por ejemplo,&lt;br /&gt;
     borraTodas (2::nat) [1,2,3,2] = [1,3]&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
primrec borraTodas :: &amp;quot;&amp;#039;a ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;borraTodas x [] = []&amp;quot;&lt;br /&gt;
| &amp;quot;borraTodas x (w#ys) = (if x=w then (borraTodas x ys) else (w#(borraTodas x ys)))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar o refutar: &lt;br /&gt;
     borra x (borraTodas x xs) = borraTodas x xs&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
theorem &amp;quot;borra x (borraTodas x xs) = borraTodas x xs&amp;quot;&lt;br /&gt;
refute&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
theorem &amp;quot;borra x (borraTodas x xs) = borraTodas x xs&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar o refutar:&lt;br /&gt;
     borraTodas x (borraTodas x xs) = borraTodas x xs&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
theorem &amp;quot;borraTodas x (borraTodas x xs) = borraTodas x xs&amp;quot;&lt;br /&gt;
refute&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
theorem &amp;quot;borraTodas x (borraTodas x xs) = borraTodas x xs&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar o refutar:&lt;br /&gt;
     borraTodas x (borra x xs) = borraTodas x xs&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
theorem &amp;quot;borraTodas x (borra x xs) = borraTodas x xs&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
theorem borraTodas_borra:&lt;br /&gt;
  &amp;quot;borraTodas x (borra x xs) = borraTodas x xs&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
    &lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar o refutar: &lt;br /&gt;
     borra x (borra y xs) = borra y (borra x xs)&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
theorem &amp;quot;borra x (borra y xs) = borra y (borra x xs)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
theorem &amp;quot;borra x (borra y xs) = borra y (borra x xs)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar o refutar el teorema: &lt;br /&gt;
     borraTodas x (borra y xs) = borra y (borraTodas x xs)&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
theorem &amp;quot;borraTodas x (borra y xs) = borra y (borraTodas x xs)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
theorem &amp;quot;borraTodas x (borra y xs) = borra y (borraTodas x xs)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar o refutar:&lt;br /&gt;
     borra y (sust x y xs) = borra x xs&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;borra y (sust x y xs) = borra x xs&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar o refutar:&lt;br /&gt;
     borraTodas y (sust x y xs) = borraTodas x xs&amp;quot;&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;borraTodas y (sust x y xs) = borraTodas x xs&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar o refutar:&lt;br /&gt;
     sust x y (borraTodas x zs) = borraTodas x zs&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
theorem &amp;quot;sust x y (borraTodas x zs) = borraTodas x zs&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
theorem sust_borraTodas:&lt;br /&gt;
  &amp;quot;sust x y (borraTodas x zs) = borraTodas x zs&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar o refutar:&lt;br /&gt;
     sust x y (borraTodas z zs) = borraTodas z (sust x y zs)&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;sust x y (borraTodas z zs) = borraTodas z (sust x y zs)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar o refutar:&lt;br /&gt;
     rev (borra x xs) = borra x (rev xs)&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
theorem &amp;quot;rev (borra x xs) = borra x (rev xs)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar o refutar el teorema: &lt;br /&gt;
     borraTodas x (xs@ys) = (borraTodas x xs)@(borraTodas x ys)&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma &amp;quot;borraTodas x (xs@ys) = (borraTodas x xs)@(borraTodas x ys)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma borraTodas_append: &lt;br /&gt;
  &amp;quot;borraTodas x (xs@ys) = (borraTodas x xs)@(borraTodas x ys)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar o refutar el teorema: &lt;br /&gt;
     rev (borraTodas x xs) = borraTodas x (rev xs)&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
theorem &amp;quot;rev (borraTodas x xs) = borraTodas x (rev xs)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
theorem &amp;quot;rev (borraTodas x xs) = borraTodas x (rev xs)&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>Julianmina</name></author>
		
	</entry>
</feed>