<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/LMF2013/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pedrosrei</id>
	<title>Lógica matemática y fundamentos (2012-13) - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/LMF2013/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pedrosrei"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php/Especial:Contribuciones/Pedrosrei"/>
	<updated>2026-07-19T09:58:48Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_14&amp;diff=548</id>
		<title>Relación 14</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_14&amp;diff=548"/>
		<updated>2013-05-29T10:44:17Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R14: Razonamiento sobre programas en Isabelle/HOL *}&lt;br /&gt;
 &lt;br /&gt;
theory R14&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir la función&lt;br /&gt;
     sumaImpares :: nat ⇒ nat&lt;br /&gt;
  tal que (sumaImpares n) es la suma de los n primeros números&lt;br /&gt;
  impares. Por ejemplo,&lt;br /&gt;
     sumaImpares 5  =  25&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 -- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun sumaImpares :: &amp;quot;nat ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;sumaImpares 0 = 0 &amp;quot;&lt;br /&gt;
 |&amp;quot;sumaImpares (Suc n) = (2*n +1)+ (sumaImpares n)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;sumaImpares 5&amp;quot; -- &amp;quot;= 25&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar que &lt;br /&gt;
     sumaImpares n = n*n&lt;br /&gt;
  ------------------------------------------------------------------- *}&lt;br /&gt;
  -- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma &amp;quot;sumaImpares n = n*n&amp;quot;&lt;br /&gt;
proof (induct n)&lt;br /&gt;
  show &amp;quot;sumaImpares 0 = 0*0&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix n&lt;br /&gt;
  assume &amp;quot;sumaImpares n= n*n&amp;quot;&lt;br /&gt;
  thus &amp;quot;sumaImpares (Suc n) = (Suc n)*(Suc n)&amp;quot; by simp&lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir la función&lt;br /&gt;
     sumaPotenciasDeDosMasUno :: nat ⇒ nat&lt;br /&gt;
  tal que &lt;br /&gt;
     (sumaPotenciasDeDosMasUno n) = 1 + 2^0 + 2^1 + 2^2 + ... + 2^n. &lt;br /&gt;
  Por ejemplo, &lt;br /&gt;
     sumaPotenciasDeDosMasUno 3  =  16&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 -- &amp;quot;Pedro Ros&amp;quot; &lt;br /&gt;
fun sumaPotenciasDeDosMasUno :: &amp;quot;nat ⇒ nat&amp;quot; where&lt;br /&gt;
   &amp;quot;sumaPotenciasDeDosMasUno 0 = 2&amp;quot;&lt;br /&gt;
  |&amp;quot;sumaPotenciasDeDosMasUno (Suc n) = (2^(Suc n))+(sumaPotenciasDeDosMasUno n)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;sumaPotenciasDeDosMasUno 3&amp;quot; -- &amp;quot;= 16&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar que &lt;br /&gt;
     sumaPotenciasDeDosMasUno n = 2^(n+1)&lt;br /&gt;
  ------------------------------------------------------------------- *}&lt;br /&gt;
 -- &amp;quot;Pedro Ros&amp;quot; &lt;br /&gt;
lemma &amp;quot;sumaPotenciasDeDosMasUno n = 2^(n+1)&amp;quot;&lt;br /&gt;
proof (induct n)&lt;br /&gt;
  show &amp;quot;sumaPotenciasDeDosMasUno 0 = 2^(0 + 1)&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix n&lt;br /&gt;
  assume &amp;quot;sumaPotenciasDeDosMasUno n = 2^(n + 1)&amp;quot;&lt;br /&gt;
  thus &amp;quot;sumaPotenciasDeDosMasUno (Suc n)= 2^(Suc n + 1)&amp;quot; by simp&lt;br /&gt;
qed  &lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Definir la función&lt;br /&gt;
     copia :: nat ⇒ &amp;#039;a ⇒ &amp;#039;a list&lt;br /&gt;
  tal que (copia n x) es la lista formado por n copias del elemento&lt;br /&gt;
  x. Por ejemplo, &lt;br /&gt;
     copia 3 x = [x,x,x]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
  -- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun copia :: &amp;quot;nat ⇒ &amp;#039;a ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;copia 0 _ =[] &amp;quot;&lt;br /&gt;
 |&amp;quot;copia (Suc n) x = (x#(copia n x))&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;copia 3 x&amp;quot; -- &amp;quot;= [x,x,x]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Definir la función&lt;br /&gt;
     todos :: (&amp;#039;a ⇒ bool) ⇒ &amp;#039;a list ⇒ bool&lt;br /&gt;
  tal que (todos p xs) se verifica si todos los elementos de xs cumplen&lt;br /&gt;
  la propiedad p. Por ejemplo,&lt;br /&gt;
     todos (λx. x&amp;gt;(1::nat)) [2,6,4] = True&lt;br /&gt;
     todos (λx. x&amp;gt;(2::nat)) [2,6,4] = False&lt;br /&gt;
  Nota: La conjunción se representa por ∧&lt;br /&gt;
  ----------------------------------------------------------------- *}&lt;br /&gt;
  -- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun todos :: &amp;quot;(&amp;#039;a ⇒ bool) ⇒ &amp;#039;a list ⇒ bool&amp;quot; where&lt;br /&gt;
    &amp;quot;todos p [] = True&amp;quot;&lt;br /&gt;
  | &amp;quot;todos p (x#xs) = ((p x) ∧ (todos p xs))&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;todos (λx. x&amp;gt;(1::nat)) [2,6,4]&amp;quot; -- &amp;quot;= True&amp;quot;&lt;br /&gt;
value &amp;quot;todos (λx. x&amp;gt;(2::nat)) [2,6,4]&amp;quot; -- &amp;quot;= False&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar que todos los elementos de (copia n x) son&lt;br /&gt;
  iguales a x. &lt;br /&gt;
  ------------------------------------------------------------------- *}&lt;br /&gt;
  -- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma &amp;quot;todos (λy. y=x) (copia n x)&amp;quot;&lt;br /&gt;
proof (induct n)&lt;br /&gt;
 show &amp;quot;todos (λy. y=x) (copia 0 x)&amp;quot; by simp&lt;br /&gt;
next&lt;br /&gt;
  fix n&lt;br /&gt;
  assume &amp;quot;todos (λy. y=x) (copia n x)&amp;quot;&lt;br /&gt;
  thus&amp;quot;todos (λy. y=x) (copia (Suc n) x)&amp;quot; by simp&lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Definir la función&lt;br /&gt;
    factR :: nat ⇒ nat&lt;br /&gt;
  tal que (factR n) es el factorial de n. Por ejemplo,&lt;br /&gt;
    factR 4 = 24&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 -- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun factR :: &amp;quot;nat ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;factR 0     = 1&amp;quot;&lt;br /&gt;
| &amp;quot;factR (Suc n) = (Suc n) * (factR n)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;factR 4&amp;quot; -- &amp;quot;= 24&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Se considera la siguiente definición iterativa de la&lt;br /&gt;
  función factorial &lt;br /&gt;
     factI :: &amp;quot;nat ⇒ nat&amp;quot; where&lt;br /&gt;
     factI n = factI&amp;#039; n 1&lt;br /&gt;
 &lt;br /&gt;
     factI&amp;#039; :: nat ⇒ nat ⇒ nat&amp;quot; where&lt;br /&gt;
     factI&amp;#039; 0       x = x&lt;br /&gt;
     factI&amp;#039; (Suc n) x = factI&amp;#039; n (Suc n)*x&lt;br /&gt;
  Demostrar que, para todo n y todo x, se tiene &lt;br /&gt;
     factI&amp;#039; n x = x * factR n&lt;br /&gt;
  ------------------------------------------------------------------- *}&lt;br /&gt;
 &lt;br /&gt;
fun factI&amp;#039; :: &amp;quot;nat ⇒ nat ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;factI&amp;#039; 0       x = x&amp;quot;&lt;br /&gt;
| &amp;quot;factI&amp;#039; (Suc n) x = factI&amp;#039; n (Suc n)*x&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
fun factI :: &amp;quot;nat ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;factI n = factI&amp;#039; n 1&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;factI 4&amp;quot; -- &amp;quot;= 24&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma fact: &amp;quot;factI&amp;#039; n x = x * factR n&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar que&lt;br /&gt;
     factI n = factR n&lt;br /&gt;
  ------------------------------------------------------------------- *}&lt;br /&gt;
 &lt;br /&gt;
corollary &amp;quot;factI n = factR n&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Definir, recursivamente y sin usar (@), la función&lt;br /&gt;
     amplia :: &amp;#039;a list ⇒ &amp;#039;a ⇒ &amp;#039;a list&lt;br /&gt;
  tal que (amplia xs y) es la lista obtenida añadiendo el elemento y al&lt;br /&gt;
  final de la lista xs. Por ejemplo,&lt;br /&gt;
     amplia [d,a] t = [d,a,t]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
fun amplia :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;amplia xs y = undefined&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;amplia [d,a] t&amp;quot; -- &amp;quot;= [d,a,t]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar que &lt;br /&gt;
     amplia xs y = xs @ [y]&lt;br /&gt;
  ------------------------------------------------------------------- *}&lt;br /&gt;
 &lt;br /&gt;
lemma &amp;quot;amplia xs y = xs @ [y]&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
 &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_13&amp;diff=540</id>
		<title>Relación 13</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_13&amp;diff=540"/>
		<updated>2013-05-26T09:22:49Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R13: Programación funcional en Isabelle *}&lt;br /&gt;
&lt;br /&gt;
theory R13&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {* ----------------------------------------------------------------&lt;br /&gt;
  Ejercicio 1. Definir, por recursión, la función&lt;br /&gt;
     longitud :: &amp;quot;&amp;#039;a list ⇒ nat&amp;quot; where&lt;br /&gt;
  tal que (longitud xs) es la longitud de la listas xs. Por ejemplo,&lt;br /&gt;
     longitud [4,2,5] = 3&lt;br /&gt;
  ------------------------------------------------------------------- *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun longitud :: &amp;quot;&amp;#039;a list ⇒ nat&amp;quot; where&lt;br /&gt;
 &amp;quot;longitud [] = 0&amp;quot;&lt;br /&gt;
 |&amp;quot;longitud (x#xs) = 1+ (longitud xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;longitud [4,2,5]&amp;quot; -- &amp;quot;= 3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Definir la función&lt;br /&gt;
     fun intercambia :: &amp;quot;&amp;#039;a × &amp;#039;b ⇒ &amp;#039;b × &amp;#039;a&amp;quot;&lt;br /&gt;
  tal que (intercambia p) es el par obtenido intercambiando las&lt;br /&gt;
  componentes del par p. Por ejemplo,&lt;br /&gt;
     &amp;quot;intercambia (2,3) = (3,2)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun intercambia :: &amp;quot;&amp;#039;a × &amp;#039;b ⇒ &amp;#039;b × &amp;#039;a&amp;quot; where&lt;br /&gt;
  &amp;quot;intercambia (x,y) = (y,x)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;intercambia (u,v)&amp;quot; -- &amp;quot;= (v,u)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir, por recursión, la función&lt;br /&gt;
     inversa :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (inversa xs) es la lista obtenida invirtiendo el orden de los&lt;br /&gt;
  elementos de xs. Por ejemplo,&lt;br /&gt;
     inversa [3,2,5] = [5,2,3]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun inversa :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;inversa [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;inversa (x#xs) = (inversa xs)@ [x]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;inversa [a,d,c]&amp;quot; -- &amp;quot;= [c,d,a]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Definir la función&lt;br /&gt;
     repite :: &amp;quot;nat ⇒ &amp;#039;a ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  tal que . Por ejemplo,&lt;br /&gt;
     repite 3 5 = [5,5,5]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun repite :: &amp;quot;nat ⇒ &amp;#039;a ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;repite 0 x = []&amp;quot;&lt;br /&gt;
 |&amp;quot;repite (Suc n) x = (x#(repite n x))&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;repite 3 a&amp;quot; -- &amp;quot;= [a,a,a]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Definir la función&lt;br /&gt;
     fun conc :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que . Por ejemplo,&lt;br /&gt;
     conc [2,3] [4,3,5] = [2,3,4,3,5]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun conc :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;conc [] ys = ys&amp;quot; &lt;br /&gt;
 |&amp;quot;conc xs [] = xs&amp;quot; &lt;br /&gt;
 |&amp;quot;conc (x#xs) ys = (x#(conc xs ys))&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;conc [a,d] [b,d,a,c]&amp;quot; -- &amp;quot;= [a,d,b,d,a,c]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Definir la función&lt;br /&gt;
     coge :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (coge n xs) es la lista de los n primeros elementos de xs. Por&lt;br /&gt;
  ejemplo, &lt;br /&gt;
     coge 2 [3,7,5,4] = [3,7]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun coge :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;coge 0 xs = []&amp;quot;&lt;br /&gt;
 |&amp;quot;coge n [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;coge (Suc n) (x#xs) =  (x#(coge n xs))&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;coge 2 [a,c,d,b,e]&amp;quot; -- &amp;quot;= [a,c]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Definir la función&lt;br /&gt;
     elimina :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (coge n xs) es la lista de los n primeros elementos de xs. Por&lt;br /&gt;
  ejemplo, &lt;br /&gt;
     elimina 2 [3,7,5,4] = [5,4]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun elimina :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;elimina 0 xs = xs&amp;quot;&lt;br /&gt;
 |&amp;quot;elimina n [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;elimina (Suc n) (x#xs) = elimina n xs&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;elimina 2 [a,c,d,b,e]&amp;quot; -- &amp;quot;= [d,b,e]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Definir la función&lt;br /&gt;
     esVacia :: &amp;quot;&amp;#039;a list ⇒ bool&amp;quot;&lt;br /&gt;
  tal que (esVacia xs) se verifica si xs es la lista vacía. Por ejemplo, &lt;br /&gt;
     esVacia []  = True&lt;br /&gt;
     esVacia [1] = False&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun esVacia :: &amp;quot;&amp;#039;a list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;esVacia [] = True&amp;quot;&lt;br /&gt;
 |&amp;quot;esVacia _ = False&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;esVacia []&amp;quot;  -- &amp;quot;= True&amp;quot;&lt;br /&gt;
value &amp;quot;esVacia [1]&amp;quot; -- &amp;quot;= False&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Definir la función&lt;br /&gt;
     inversaAc :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (inversaAc xs) es a inversa de xs calculada usando&lt;br /&gt;
  acumuladores. Por ejemplo, &lt;br /&gt;
     inversaAc [3,2,5] = [5,2,3]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun inversaAcAux :: &amp;quot;&amp;#039;a list =&amp;gt; &amp;#039;a list =&amp;gt; &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;inversaAcAux [] ys = ys&amp;quot;&lt;br /&gt;
 |&amp;quot;inversaAcAux (x#xs) ys = inversaAcAux xs (x#ys)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
fun inversaAc :: &amp;quot;&amp;#039;a list =&amp;gt; &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;inversaAc xs = inversaAcAux xs []&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;inversaAc [a,c,b,e]&amp;quot; -- &amp;quot;= [e,b,c,a]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Definir la función&lt;br /&gt;
     sum :: &amp;quot;int list ⇒ int&amp;quot; &lt;br /&gt;
  tal que (sum xs) es la suma de los elementos de xs. Por ejemplo,&lt;br /&gt;
     sum [3,2,5] = 10&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun sum :: &amp;quot;nat list ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;sum [] = 0&amp;quot;&lt;br /&gt;
 |&amp;quot;sum (x#xs) = x+ (sum xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;sum [3,2,5]&amp;quot; -- &amp;quot;= 10&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Definir la función&lt;br /&gt;
     map :: (&amp;#039;a ⇒ &amp;#039;b) ⇒ &amp;#039;a list ⇒ &amp;#039;b list&lt;br /&gt;
  tal que (map f xs) es la lista obtenida aplicando la función f a los&lt;br /&gt;
  elementos de xs. Por ejemplo,&lt;br /&gt;
     map (λx. 2*x) [3,2,5] = [6,4,10]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun map :: &amp;quot;(&amp;#039;a ⇒ &amp;#039;b) ⇒ &amp;#039;a list ⇒ &amp;#039;b list&amp;quot; where&lt;br /&gt;
  &amp;quot;map f [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;map f (x#xs) = conc [f x] (map f xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;map (λx. 2*x) [3::nat,2,5]&amp;quot; -- &amp;quot;= [6,4,10]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=AplicacionesLP&amp;diff=538</id>
		<title>AplicacionesLP</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=AplicacionesLP&amp;diff=538"/>
		<updated>2013-05-22T18:20:21Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- AplicacionesLP.hs&lt;br /&gt;
-- Aplicaciones de la Lógica proposicional.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica &lt;br /&gt;
-- import TablerosSemanticos&lt;br /&gt;
-- import ResolucionProposicional&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: En una isla hay dos tribus, la de los veraces (que&lt;br /&gt;
-- siempre dicen la verdad) y la de los mentirosos (que siempre&lt;br /&gt;
-- mienten). Un viajero se encuentra con tres isleños A, B y C y cada&lt;br /&gt;
-- uno le dice una frase A dice “B y C son veraces syss C es veraz” B&lt;br /&gt;
-- dice “Si A y B son veraces, entonces B y C son veraces y A es&lt;br /&gt;
-- mentiroso” C dice “B es mentiroso syss A o B es veraz” &lt;br /&gt;
--&lt;br /&gt;
-- Determinar a qué tribu pertenecen A, B y C.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   a, b y c representan que A, B y C son veraces&lt;br /&gt;
--   -a, -b y -c representan que A, B y C son mentirosos&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
a  = Atom &amp;quot;a&amp;quot;&lt;br /&gt;
b = Atom &amp;quot;b&amp;quot;&lt;br /&gt;
c = Atom &amp;quot;c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
solucion1 = modelosFormula ((a&amp;lt;--&amp;gt;((b/\c)&amp;lt;--&amp;gt;c))/\(b&amp;lt;--&amp;gt;((a/\b)--&amp;gt;(b/\c/\(no a))))/\(c&amp;lt;--&amp;gt;((no b)&amp;lt;--&amp;gt;(a\/b))))&lt;br /&gt;
--*Main&amp;gt; solucion1&lt;br /&gt;
--[]&lt;br /&gt;
-- Todos mienten.&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Decidir si es posible colorear los vértices de un&lt;br /&gt;
-- pentágono de rojo o azul de forma que los vértices adyacentes&lt;br /&gt;
-- tengan colores distintos.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   1, 2, 3, 4, 5 representan los vértices consecutivos del pentágono&lt;br /&gt;
--   ri (1 ≤ i ≤ 5) representa que el vértice i es rojo&lt;br /&gt;
--   ai (1 ≤ i ≤ 5) representa que el vértice i es azul&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
r1= Atom &amp;quot;r1&amp;quot;&lt;br /&gt;
r2= Atom &amp;quot;r2&amp;quot;&lt;br /&gt;
r3= Atom &amp;quot;r3&amp;quot;&lt;br /&gt;
r4= Atom &amp;quot;r4&amp;quot;&lt;br /&gt;
r5= Atom &amp;quot;r5&amp;quot;&lt;br /&gt;
a1= Atom &amp;quot;a1&amp;quot;&lt;br /&gt;
a2= Atom &amp;quot;a2&amp;quot;&lt;br /&gt;
a3= Atom &amp;quot;a3&amp;quot;&lt;br /&gt;
a4= Atom &amp;quot;a4&amp;quot;&lt;br /&gt;
a5= Atom &amp;quot;a5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
solucion2 = esSatisfacible formulacion2&lt;br /&gt;
            where formulacion2=  (((a1\/r1)/\(a2\/r2)/\(a3\/r3)/\(a4\/r4)/\(a5\/r5))/\((no(a1/\a2))/\(no(a1/\a5))/\(no(a2/\a3))/\(no(a3/\a4))/\(no(a4/\a5)))/\((no(r1/\r2))/\(no(r1/\r5))/\(no(r2/\r3))/\(no(r3/\r4))/\(no(r4/\r5))))&lt;br /&gt;
&lt;br /&gt;
{-*Main&amp;gt; solucion2&lt;br /&gt;
False-}&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Cuatro palomas comparten tres huecos. Decidir si es&lt;br /&gt;
-- posible que no haya dos palomas en el mismo hueco.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización: &lt;br /&gt;
--   pihj (i ∈ {1, 2, 3, 4} y j ∈ {1, 2, 3}) representa&lt;br /&gt;
--   que la paloma i está en el hueco j.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Un rectángulo se divide en seis rectángulos menores como&lt;br /&gt;
-- se indica en la figura. &lt;br /&gt;
&lt;br /&gt;
--               ------------------&lt;br /&gt;
--               |      |    B    |&lt;br /&gt;
--               |  A   |----------           &lt;br /&gt;
--               |      |   |     |&lt;br /&gt;
--               |------| D |     |&lt;br /&gt;
--               |   C  |   |  E  |&lt;br /&gt;
--               |------|---|     |&lt;br /&gt;
--               |     F    |     |&lt;br /&gt;
--               ------------------&lt;br /&gt;
&lt;br /&gt;
-- Demostrar que si cada una de los rectángulos menores tiene un lado&lt;br /&gt;
-- cuya medida es un número entero, entonces la medida de alguno de los&lt;br /&gt;
-- lados del rectángulo mayor es un número entero.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   base: la base del rectángulo mayor es un número entero&lt;br /&gt;
--   altura: la altura del rectángulo mayor es un número entero&lt;br /&gt;
--   base_x: la base del rectángulo X es un número entero&lt;br /&gt;
--   altura_x: la altura del rectángulo X es un número entero&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Calcular las formas de colocar 4 reinas en un tablero&lt;br /&gt;
-- de 4x4 de forma que no haya más de una reina en cada fila,&lt;br /&gt;
-- columna o diagonal.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   cij (1 ≤ i, j ≤ 4) indica que hay una reina en la fila i columna j.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Probar el caso más simple del teorema de Ramsey: entre&lt;br /&gt;
-- seis personas siempre hay (al menos) tres tales que cada una conoce&lt;br /&gt;
-- a las otras dos o cada una no conoce a ninguna de las otras dos.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   1,2,3,4,5,6 representan a las personas&lt;br /&gt;
--   pij (1 ≤ i &amp;lt; j ≤ 6) indica que las personas i y j se conocen.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_13&amp;diff=537</id>
		<title>Relación 13</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_13&amp;diff=537"/>
		<updated>2013-05-22T18:10:50Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R13: Programación funcional en Isabelle *}&lt;br /&gt;
&lt;br /&gt;
theory R13&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {* ----------------------------------------------------------------&lt;br /&gt;
  Ejercicio 1. Definir, por recursión, la función&lt;br /&gt;
     longitud :: &amp;quot;&amp;#039;a list ⇒ nat&amp;quot; where&lt;br /&gt;
  tal que (longitud xs) es la longitud de la listas xs. Por ejemplo,&lt;br /&gt;
     longitud [4,2,5] = 3&lt;br /&gt;
  ------------------------------------------------------------------- *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun longitud :: &amp;quot;&amp;#039;a list ⇒ nat&amp;quot; where&lt;br /&gt;
 &amp;quot;longitud [] = 0&amp;quot;&lt;br /&gt;
 |&amp;quot;longitud (x#xs) = 1+ (longitud xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;longitud [4,2,5]&amp;quot; -- &amp;quot;= 3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Definir la función&lt;br /&gt;
     fun intercambia :: &amp;quot;&amp;#039;a × &amp;#039;b ⇒ &amp;#039;b × &amp;#039;a&amp;quot;&lt;br /&gt;
  tal que (intercambia p) es el par obtenido intercambiando las&lt;br /&gt;
  componentes del par p. Por ejemplo,&lt;br /&gt;
     &amp;quot;intercambia (2,3) = (3,2)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun intercambia :: &amp;quot;&amp;#039;a × &amp;#039;b ⇒ &amp;#039;b × &amp;#039;a&amp;quot; where&lt;br /&gt;
  &amp;quot;intercambia (x,y) = (y,x)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;intercambia (u,v)&amp;quot; -- &amp;quot;= (v,u)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir, por recursión, la función&lt;br /&gt;
     inversa :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (inversa xs) es la lista obtenida invirtiendo el orden de los&lt;br /&gt;
  elementos de xs. Por ejemplo,&lt;br /&gt;
     inversa [3,2,5] = [5,2,3]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun inversa :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;inversa [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;inversa (x#xs) = (inversa xs)@ [x]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;inversa [a,d,c]&amp;quot; -- &amp;quot;= [c,d,a]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Definir la función&lt;br /&gt;
     repite :: &amp;quot;nat ⇒ &amp;#039;a ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  tal que . Por ejemplo,&lt;br /&gt;
     repite 3 5 = [5,5,5]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun repite :: &amp;quot;nat ⇒ &amp;#039;a ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;repite 0 x = []&amp;quot;&lt;br /&gt;
 |&amp;quot;repite (Suc n) x = [x]@(repite n x)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;repite 3 a&amp;quot; -- &amp;quot;= [a,a,a]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Definir la función&lt;br /&gt;
     fun conc :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que . Por ejemplo,&lt;br /&gt;
     conc [2,3] [4,3,5] = [2,3,4,3,5]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun conc :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;conc [] ys = ys&amp;quot; &lt;br /&gt;
 |&amp;quot;conc xs [] = xs&amp;quot; &lt;br /&gt;
 |&amp;quot;conc (x#xs) ys = x# (conc xs ys)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;conc [a,d] [b,d,a,c]&amp;quot; -- &amp;quot;= [a,d,b,d,a,c]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Definir la función&lt;br /&gt;
     coge :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (coge n xs) es la lista de los n primeros elementos de xs. Por&lt;br /&gt;
  ejemplo, &lt;br /&gt;
     coge 2 [3,7,5,4] = [3,7]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun coge :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;coge 0 xs = []&amp;quot;&lt;br /&gt;
 |&amp;quot;coge n [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;coge (Suc n) (x#xs) = conc [x] (coge n xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;coge 2 [a,c,d,b,e]&amp;quot; -- &amp;quot;= [a,c]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Definir la función&lt;br /&gt;
     elimina :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (coge n xs) es la lista de los n primeros elementos de xs. Por&lt;br /&gt;
  ejemplo, &lt;br /&gt;
     elimina 2 [3,7,5,4] = [5,4]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun elimina :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;elimina 0 xs = xs&amp;quot;&lt;br /&gt;
 |&amp;quot;elimina n [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;elimina (Suc n) (x#xs) = elimina n xs&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;elimina 2 [a,c,d,b,e]&amp;quot; -- &amp;quot;= [d,b,e]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Definir la función&lt;br /&gt;
     esVacia :: &amp;quot;&amp;#039;a list ⇒ bool&amp;quot;&lt;br /&gt;
  tal que (esVacia xs) se verifica si xs es la lista vacía. Por ejemplo, &lt;br /&gt;
     esVacia []  = True&lt;br /&gt;
     esVacia [1] = False&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun esVacia :: &amp;quot;&amp;#039;a list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;esVacia [] = True&amp;quot;&lt;br /&gt;
 |&amp;quot;esVacia (x#xs) = False&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;esVacia []&amp;quot;  -- &amp;quot;= True&amp;quot;&lt;br /&gt;
value &amp;quot;esVacia [1]&amp;quot; -- &amp;quot;= False&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Definir la función&lt;br /&gt;
     inversaAc :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (inversaAc xs) es a inversa de xs calculada usando&lt;br /&gt;
  acumuladores. Por ejemplo, &lt;br /&gt;
     inversaAc [3,2,5] = [5,2,3]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun inversaAcAux :: &amp;quot;&amp;#039;a list =&amp;gt; &amp;#039;a list =&amp;gt; &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;inversaAcAux [] ys = ys&amp;quot;&lt;br /&gt;
 |&amp;quot;inversaAcAux (x#xs) ys = inversaAcAux xs (x#ys)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
fun inversaAc :: &amp;quot;&amp;#039;a list =&amp;gt; &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;inversaAc xs = inversaAcAux xs []&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;inversaAc [a,c,b,e]&amp;quot; -- &amp;quot;= [e,b,c,a]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Definir la función&lt;br /&gt;
     sum :: &amp;quot;int list ⇒ int&amp;quot; &lt;br /&gt;
  tal que (sum xs) es la suma de los elementos de xs. Por ejemplo,&lt;br /&gt;
     sum [3,2,5] = 10&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun sum :: &amp;quot;nat list ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;sum [] = 0&amp;quot;&lt;br /&gt;
 |&amp;quot;sum (x#xs) = x+ (sum xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;sum [3,2,5]&amp;quot; -- &amp;quot;= 10&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Definir la función&lt;br /&gt;
     map :: (&amp;#039;a ⇒ &amp;#039;b) ⇒ &amp;#039;a list ⇒ &amp;#039;b list&lt;br /&gt;
  tal que (map f xs) es la lista obtenida aplicando la función f a los&lt;br /&gt;
  elementos de xs. Por ejemplo,&lt;br /&gt;
     map (λx. 2*x) [3,2,5] = [6,4,10]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun map :: &amp;quot;(&amp;#039;a ⇒ &amp;#039;b) ⇒ &amp;#039;a list ⇒ &amp;#039;b list&amp;quot; where&lt;br /&gt;
  &amp;quot;map f [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;map f (x#xs) = conc [f x] (map f xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;map (λx. 2*x) [3::nat,2,5]&amp;quot; -- &amp;quot;= [6,4,10]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_13&amp;diff=536</id>
		<title>Relación 13</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_13&amp;diff=536"/>
		<updated>2013-05-22T18:09:08Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R13: Programación funcional en Isabelle *}&lt;br /&gt;
&lt;br /&gt;
theory R13&lt;br /&gt;
imports Main&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {* ----------------------------------------------------------------&lt;br /&gt;
  Ejercicio 1. Definir, por recursión, la función&lt;br /&gt;
     longitud :: &amp;quot;&amp;#039;a list ⇒ nat&amp;quot; where&lt;br /&gt;
  tal que (longitud xs) es la longitud de la listas xs. Por ejemplo,&lt;br /&gt;
     longitud [4,2,5] = 3&lt;br /&gt;
  ------------------------------------------------------------------- *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
fun longitud :: &amp;quot;&amp;#039;a list ⇒ nat&amp;quot; where&lt;br /&gt;
 &amp;quot;longitud [] = 0&amp;quot;&lt;br /&gt;
 |&amp;quot;longitud (x#xs) = 1+ (longitud xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;longitud [4,2,5]&amp;quot; -- &amp;quot;= 3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Definir la función&lt;br /&gt;
     fun intercambia :: &amp;quot;&amp;#039;a × &amp;#039;b ⇒ &amp;#039;b × &amp;#039;a&amp;quot;&lt;br /&gt;
  tal que (intercambia p) es el par obtenido intercambiando las&lt;br /&gt;
  componentes del par p. Por ejemplo,&lt;br /&gt;
     &amp;quot;intercambia (2,3) = (3,2)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun intercambia :: &amp;quot;&amp;#039;a × &amp;#039;b ⇒ &amp;#039;b × &amp;#039;a&amp;quot; where&lt;br /&gt;
  &amp;quot;intercambia (x,y) = (y,x)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;intercambia (u,v)&amp;quot; -- &amp;quot;= (v,u)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir, por recursión, la función&lt;br /&gt;
     inversa :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (inversa xs) es la lista obtenida invirtiendo el orden de los&lt;br /&gt;
  elementos de xs. Por ejemplo,&lt;br /&gt;
     inversa [3,2,5] = [5,2,3]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun inversa :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;inversa [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;inversa (x#xs) = (inversa xs)@ [x]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;inversa [a,d,c]&amp;quot; -- &amp;quot;= [c,d,a]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Definir la función&lt;br /&gt;
     repite :: &amp;quot;nat ⇒ &amp;#039;a ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  tal que . Por ejemplo,&lt;br /&gt;
     repite 3 5 = [5,5,5]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun repite :: &amp;quot;nat ⇒ &amp;#039;a ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;repite 0 x = []&amp;quot;&lt;br /&gt;
 |&amp;quot;repite (Suc n) x = [x]@(repite n x)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;repite 3 a&amp;quot; -- &amp;quot;= [a,a,a]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Definir la función&lt;br /&gt;
     fun conc :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que . Por ejemplo,&lt;br /&gt;
     conc [2,3] [4,3,5] = [2,3,4,3,5]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun conc :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;conc [] ys = ys&amp;quot; &lt;br /&gt;
 |&amp;quot;conc xs [] = xs&amp;quot; &lt;br /&gt;
 |&amp;quot;conc (x#xs) ys = x# (conc xs ys)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;conc [a,d] [b,d,a,c]&amp;quot; -- &amp;quot;= [a,d,b,d,a,c]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Definir la función&lt;br /&gt;
     coge :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (coge n xs) es la lista de los n primeros elementos de xs. Por&lt;br /&gt;
  ejemplo, &lt;br /&gt;
     coge 2 [3,7,5,4] = [3,7]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun coge :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;coge 0 xs = []&amp;quot;&lt;br /&gt;
 |&amp;quot;coge n [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;coge (Suc n) (x#xs) = conc [x] (coge n xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;coge 2 [a,c,d,b,e]&amp;quot; -- &amp;quot;= [a,c]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Definir la función&lt;br /&gt;
     elimina :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (coge n xs) es la lista de los n primeros elementos de xs. Por&lt;br /&gt;
  ejemplo, &lt;br /&gt;
     elimina 2 [3,7,5,4] = [5,4]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun elimina :: &amp;quot;nat ⇒ &amp;#039;a list ⇒ &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;elimina 0 xs = xs&amp;quot;&lt;br /&gt;
 |&amp;quot;elimina n [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;elimina (Suc n) (x#xs) = elimina n xs&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;elimina 2 [a,c,d,b,e]&amp;quot; -- &amp;quot;= [d,b,e]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Definir la función&lt;br /&gt;
     esVacia :: &amp;quot;&amp;#039;a list ⇒ bool&amp;quot;&lt;br /&gt;
  tal que (esVacia xs) se verifica si xs es la lista vacía. Por ejemplo, &lt;br /&gt;
     esVacia []  = True&lt;br /&gt;
     esVacia [1] = False&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun esVacia :: &amp;quot;&amp;#039;a list ⇒ bool&amp;quot; where&lt;br /&gt;
  &amp;quot;esVacia [] = True&amp;quot;&lt;br /&gt;
 |&amp;quot;esVacia (x#xs) = False&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;esVacia []&amp;quot;  -- &amp;quot;= True&amp;quot;&lt;br /&gt;
value &amp;quot;esVacia [1]&amp;quot; -- &amp;quot;= False&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Definir la función&lt;br /&gt;
     inversaAc :: &amp;quot;&amp;#039;a list ⇒ &amp;#039;a list&amp;quot;&lt;br /&gt;
  tal que (inversaAc xs) es a inversa de xs calculada usando&lt;br /&gt;
  acumuladores. Por ejemplo, &lt;br /&gt;
     inversaAc [3,2,5] = [5,2,3]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun inversaAcAux :: &amp;quot;&amp;#039;a list =&amp;gt; &amp;#039;a list =&amp;gt; &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;inversaAcAux [] ys = ys&amp;quot;&lt;br /&gt;
 |&amp;quot;inversaAcAux (x#xs) ys = inversaAcAux xs (x#ys)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
fun inversaAc :: &amp;quot;&amp;#039;a list =&amp;gt; &amp;#039;a list&amp;quot; where&lt;br /&gt;
  &amp;quot;inversaAc xs = inversaAcAux xs []&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;inversaAc [a,c,b,e]&amp;quot; -- &amp;quot;= [e,b,c,a]&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Definir la función&lt;br /&gt;
     sum :: &amp;quot;int list ⇒ int&amp;quot; &lt;br /&gt;
  tal que (sum xs) es la suma de los elementos de xs. Por ejemplo,&lt;br /&gt;
     sum [3,2,5] = 10&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun sum :: &amp;quot;nat list ⇒ nat&amp;quot; where&lt;br /&gt;
  &amp;quot;sum [] = 0&amp;quot;&lt;br /&gt;
 |&amp;quot;sum (x#xs) = x+ (sum xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;sum [3,2,5]&amp;quot; -- &amp;quot;= 10&amp;quot;&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Definir la función&lt;br /&gt;
     map :: (&amp;#039;a ⇒ &amp;#039;b) ⇒ &amp;#039;a list ⇒ &amp;#039;b list&lt;br /&gt;
  tal que (map f xs) es la lista obtenida aplicando la función f a los&lt;br /&gt;
  elementos de xs. Por ejemplo,&lt;br /&gt;
     map (λx. 2*x) [3,2,5] = [6,4,10]&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
fun map :: &amp;quot;(&amp;#039;a ⇒ &amp;#039;b) ⇒ &amp;#039;a list ⇒ &amp;#039;b list&amp;quot; where&lt;br /&gt;
  &amp;quot;map f [] = []&amp;quot;&lt;br /&gt;
 |&amp;quot;map f (x#xs) = conc [f x] (map f xs)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
value &amp;quot;map (λx. 2*x) [3::nat,2,5]&amp;quot; -- &amp;quot;= [6,4,10]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=AplicacionesLP&amp;diff=533</id>
		<title>AplicacionesLP</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=AplicacionesLP&amp;diff=533"/>
		<updated>2013-05-22T11:31:53Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- AplicacionesLP.hs&lt;br /&gt;
-- Aplicaciones de la Lógica proposicional.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica &lt;br /&gt;
-- import TablerosSemanticos&lt;br /&gt;
-- import ResolucionProposicional&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: En una isla hay dos tribus, la de los veraces (que&lt;br /&gt;
-- siempre dicen la verdad) y la de los mentirosos (que siempre&lt;br /&gt;
-- mienten). Un viajero se encuentra con tres isleños A, B y C y cada&lt;br /&gt;
-- uno le dice una frase A dice “B y C son veraces syss C es veraz” B&lt;br /&gt;
-- dice “Si A y B son veraces, entonces B y C son veraces y A es&lt;br /&gt;
-- mentiroso” C dice “B es mentiroso syss A o B es veraz” &lt;br /&gt;
--&lt;br /&gt;
-- Determinar a qué tribu pertenecen A, B y C.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   a, b y c representan que A, B y C son veraces&lt;br /&gt;
--   -a, -b y -c representan que A, B y C son mentirosos&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
a  = Atom &amp;quot;a&amp;quot;&lt;br /&gt;
b = Atom &amp;quot;b&amp;quot;&lt;br /&gt;
c = Atom &amp;quot;c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
solucion1 = modelosFormula ((a&amp;lt;--&amp;gt;((b/\c)&amp;lt;--&amp;gt;c))/\(b&amp;lt;--&amp;gt;((a/\b)--&amp;gt;(b/\c/\(no a))))/\(c&amp;lt;--&amp;gt;((no b)&amp;lt;--&amp;gt;(a\/b))))&lt;br /&gt;
--*Main&amp;gt; solucion1&lt;br /&gt;
--[]&lt;br /&gt;
-- Todos mienten.&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Decidir si es posible colorear los vértices de un&lt;br /&gt;
-- pentágono de rojo o azul de forma que los vértices adyacentes&lt;br /&gt;
-- tengan colores distintos.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   1, 2, 3, 4, 5 representan los vértices consecutivos del pentágono&lt;br /&gt;
--   ri (1 ≤ i ≤ 5) representa que el vértice i es rojo&lt;br /&gt;
--   ai (1 ≤ i ≤ 5) representa que el vértice i es azul&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
r1= Atom &amp;quot;r1&amp;quot;&lt;br /&gt;
r2= Atom &amp;quot;r2&amp;quot;&lt;br /&gt;
r3= Atom &amp;quot;r3&amp;quot;&lt;br /&gt;
r4= Atom &amp;quot;r4&amp;quot;&lt;br /&gt;
r5= Atom &amp;quot;r5&amp;quot;&lt;br /&gt;
a1= Atom &amp;quot;a1&amp;quot;&lt;br /&gt;
a2= Atom &amp;quot;a2&amp;quot;&lt;br /&gt;
a3= Atom &amp;quot;a3&amp;quot;&lt;br /&gt;
a4= Atom &amp;quot;a4&amp;quot;&lt;br /&gt;
a5= Atom &amp;quot;a5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
solucion2 = esSatisfacible formulacion2&lt;br /&gt;
            where formulacion2=  (((a1\/r1)/\(a2\/r2)/\(a3\/r3)/\(a4\/r4)/\(a5\/r5))/\((no(a1/\a2))/\(no(a1/\a5))/\(no(a2/\a3))/\(no(a3/\a4))/\(no(a4/\a5)))/\((no(r1/\r2))/\(no(r1/\r5))/\(no(r2/\r3))/\(no(r3/\r4))/\(no(r4/\r5))))&lt;br /&gt;
&lt;br /&gt;
{-*Main&amp;gt; solucion2&lt;br /&gt;
False-}&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Cuatro palomas comparten tres huecos. Decidir si es&lt;br /&gt;
-- posible que no haya dos palomas en el mismo hueco.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización: &lt;br /&gt;
--   pihj (i ∈ {1, 2, 3, 4} y j ∈ {1, 2, 3}) representa&lt;br /&gt;
--   que la paloma i está en el hueco j.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--Pedro Ros&lt;br /&gt;
p1h1 = Atom &amp;quot;p1h1&amp;quot;&lt;br /&gt;
p1h2= Atom &amp;quot;p1h2&amp;quot;&lt;br /&gt;
p1h3=Atom &amp;quot;p1h3&amp;quot;&lt;br /&gt;
p2h1= Atom &amp;quot;p2h1&amp;quot;&lt;br /&gt;
p2h2= Atom &amp;quot;p2h2&amp;quot;&lt;br /&gt;
p2h3= Atom &amp;quot;p2h3&amp;quot;&lt;br /&gt;
p3h1= Atom &amp;quot;p3h1&amp;quot;&lt;br /&gt;
p3h2=Atom &amp;quot;p3h2&amp;quot;&lt;br /&gt;
p3h3= Atom &amp;quot;p3h3&amp;quot;&lt;br /&gt;
p4h1=Atom &amp;quot;p4h1&amp;quot;&lt;br /&gt;
p4h2=Atom &amp;quot;p4h2&amp;quot;&lt;br /&gt;
p4h3=Atom &amp;quot;p4h3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
solucion3= esSatisfacible ((p1h1 \/ p1h2 \/ p1h3)/\(p2h1 \/ p2h2 \/ p2h3)/\(p3h1 \/ p3h2 \/ p3h3)/\(p4h1 \/ p4h2 \/ p4h3))&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Un rectángulo se divide en seis rectángulos menores como&lt;br /&gt;
-- se indica en la figura. &lt;br /&gt;
&lt;br /&gt;
--               ------------------&lt;br /&gt;
--               |      |    B    |&lt;br /&gt;
--               |  A   |----------           &lt;br /&gt;
--               |      |   |     |&lt;br /&gt;
--               |------| D |     |&lt;br /&gt;
--               |   C  |   |  E  |&lt;br /&gt;
--               |------|---|     |&lt;br /&gt;
--               |     F    |     |&lt;br /&gt;
--               ------------------&lt;br /&gt;
&lt;br /&gt;
-- Demostrar que si cada una de los rectángulos menores tiene un lado&lt;br /&gt;
-- cuya medida es un número entero, entonces la medida de alguno de los&lt;br /&gt;
-- lados del rectángulo mayor es un número entero.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   base: la base del rectángulo mayor es un número entero&lt;br /&gt;
--   altura: la altura del rectángulo mayor es un número entero&lt;br /&gt;
--   base_x: la base del rectángulo X es un número entero&lt;br /&gt;
--   altura_x: la altura del rectángulo X es un número entero&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Calcular las formas de colocar 4 reinas en un tablero&lt;br /&gt;
-- de 4x4 de forma que no haya más de una reina en cada fila,&lt;br /&gt;
-- columna o diagonal.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   cij (1 ≤ i, j ≤ 4) indica que hay una reina en la fila i columna j.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Probar el caso más simple del teorema de Ramsey: entre&lt;br /&gt;
-- seis personas siempre hay (al menos) tres tales que cada una conoce&lt;br /&gt;
-- a las otras dos o cada una no conoce a ninguna de las otras dos.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   1,2,3,4,5,6 representan a las personas&lt;br /&gt;
--   pij (1 ≤ i &amp;lt; j ≤ 6) indica que las personas i y j se conocen.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=AplicacionesLP&amp;diff=532</id>
		<title>AplicacionesLP</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=AplicacionesLP&amp;diff=532"/>
		<updated>2013-05-22T11:24:39Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- AplicacionesLP.hs&lt;br /&gt;
-- Aplicaciones de la Lógica proposicional.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica &lt;br /&gt;
-- import TablerosSemanticos&lt;br /&gt;
-- import ResolucionProposicional&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: En una isla hay dos tribus, la de los veraces (que&lt;br /&gt;
-- siempre dicen la verdad) y la de los mentirosos (que siempre&lt;br /&gt;
-- mienten). Un viajero se encuentra con tres isleños A, B y C y cada&lt;br /&gt;
-- uno le dice una frase A dice “B y C son veraces syss C es veraz” B&lt;br /&gt;
-- dice “Si A y B son veraces, entonces B y C son veraces y A es&lt;br /&gt;
-- mentiroso” C dice “B es mentiroso syss A o B es veraz” &lt;br /&gt;
--&lt;br /&gt;
-- Determinar a qué tribu pertenecen A, B y C.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   a, b y c representan que A, B y C son veraces&lt;br /&gt;
--   -a, -b y -c representan que A, B y C son mentirosos&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
a  = Atom &amp;quot;a&amp;quot;&lt;br /&gt;
b = Atom &amp;quot;b&amp;quot;&lt;br /&gt;
c = Atom &amp;quot;c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
solucion1 = modelosFormula ((a&amp;lt;--&amp;gt;((b/\c)&amp;lt;--&amp;gt;c))/\(b&amp;lt;--&amp;gt;((a/\b)--&amp;gt;(b/\c/\(no a))))/\(c&amp;lt;--&amp;gt;((no b)&amp;lt;--&amp;gt;(a\/b))))&lt;br /&gt;
--*Main&amp;gt; solucion1&lt;br /&gt;
--[]&lt;br /&gt;
-- Todos mienten.&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Decidir si es posible colorear los vértices de un&lt;br /&gt;
-- pentágono de rojo o azul de forma que los vértices adyacentes&lt;br /&gt;
-- tengan colores distintos.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   1, 2, 3, 4, 5 representan los vértices consecutivos del pentágono&lt;br /&gt;
--   ri (1 ≤ i ≤ 5) representa que el vértice i es rojo&lt;br /&gt;
--   ai (1 ≤ i ≤ 5) representa que el vértice i es azul&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
r1= Atom &amp;quot;r1&amp;quot;&lt;br /&gt;
r2= Atom &amp;quot;r2&amp;quot;&lt;br /&gt;
r3= Atom &amp;quot;r3&amp;quot;&lt;br /&gt;
r4= Atom &amp;quot;r4&amp;quot;&lt;br /&gt;
r5= Atom &amp;quot;r5&amp;quot;&lt;br /&gt;
a1= Atom &amp;quot;a1&amp;quot;&lt;br /&gt;
a2= Atom &amp;quot;a2&amp;quot;&lt;br /&gt;
a3= Atom &amp;quot;a3&amp;quot;&lt;br /&gt;
a4= Atom &amp;quot;a4&amp;quot;&lt;br /&gt;
a5= Atom &amp;quot;a5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
solucion2 = esSatisfacible formulacion2&lt;br /&gt;
            where formulacion2=  (((a1\/r1)/\(a2\/r2)/\(a3\/r3)/\(a4\/r4)/\(a5\/r5))/\((no(a1/\a2))/\(no(a1/\a5))/\(no(a2/\a3))/\(no(a3/\a4))/\(no(a4/\a5)))/\((no(r1/\r2))/\(no(r1/\r5))/\(no(r2/\r3))/\(no(r3/\r4))/\(no(r4/\r5))))&lt;br /&gt;
&lt;br /&gt;
{-*Main&amp;gt; solucion2&lt;br /&gt;
False-}&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Cuatro palomas comparten tres huecos. Decidir si es&lt;br /&gt;
-- posible que no haya dos palomas en el mismo hueco.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización: &lt;br /&gt;
--   pihj (i ∈ {1, 2, 3, 4} y j ∈ {1, 2, 3}) representa&lt;br /&gt;
--   que la paloma i está en el hueco j.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Un rectángulo se divide en seis rectángulos menores como&lt;br /&gt;
-- se indica en la figura. &lt;br /&gt;
&lt;br /&gt;
--               ------------------&lt;br /&gt;
--               |      |    B    |&lt;br /&gt;
--               |  A   |----------           &lt;br /&gt;
--               |      |   |     |&lt;br /&gt;
--               |------| D |     |&lt;br /&gt;
--               |   C  |   |  E  |&lt;br /&gt;
--               |------|---|     |&lt;br /&gt;
--               |     F    |     |&lt;br /&gt;
--               ------------------&lt;br /&gt;
&lt;br /&gt;
-- Demostrar que si cada una de los rectángulos menores tiene un lado&lt;br /&gt;
-- cuya medida es un número entero, entonces la medida de alguno de los&lt;br /&gt;
-- lados del rectángulo mayor es un número entero.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   base: la base del rectángulo mayor es un número entero&lt;br /&gt;
--   altura: la altura del rectángulo mayor es un número entero&lt;br /&gt;
--   base_x: la base del rectángulo X es un número entero&lt;br /&gt;
--   altura_x: la altura del rectángulo X es un número entero&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Calcular las formas de colocar 4 reinas en un tablero&lt;br /&gt;
-- de 4x4 de forma que no haya más de una reina en cada fila,&lt;br /&gt;
-- columna o diagonal.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   cij (1 ≤ i, j ≤ 4) indica que hay una reina en la fila i columna j.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Probar el caso más simple del teorema de Ramsey: entre&lt;br /&gt;
-- seis personas siempre hay (al menos) tres tales que cada una conoce&lt;br /&gt;
-- a las otras dos o cada una no conoce a ninguna de las otras dos.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   1,2,3,4,5,6 representan a las personas&lt;br /&gt;
--   pij (1 ≤ i &amp;lt; j ≤ 6) indica que las personas i y j se conocen.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=AplicacionesLP&amp;diff=531</id>
		<title>AplicacionesLP</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=AplicacionesLP&amp;diff=531"/>
		<updated>2013-05-22T11:11:02Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- AplicacionesLP.hs&lt;br /&gt;
-- Aplicaciones de la Lógica proposicional.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica &lt;br /&gt;
-- import TablerosSemanticos&lt;br /&gt;
-- import ResolucionProposicional&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: En una isla hay dos tribus, la de los veraces (que&lt;br /&gt;
-- siempre dicen la verdad) y la de los mentirosos (que siempre&lt;br /&gt;
-- mienten). Un viajero se encuentra con tres isleños A, B y C y cada&lt;br /&gt;
-- uno le dice una frase A dice “B y C son veraces syss C es veraz” B&lt;br /&gt;
-- dice “Si A y B son veraces, entonces B y C son veraces y A es&lt;br /&gt;
-- mentiroso” C dice “B es mentiroso syss A o B es veraz” &lt;br /&gt;
--&lt;br /&gt;
-- Determinar a qué tribu pertenecen A, B y C.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   a, b y c representan que A, B y C son veraces&lt;br /&gt;
--   -a, -b y -c representan que A, B y C son mentirosos&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
a  = Atom &amp;quot;a&amp;quot;&lt;br /&gt;
b = Atom &amp;quot;b&amp;quot;&lt;br /&gt;
c = Atom &amp;quot;c&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
solucion1 = modelosFormula ((a&amp;lt;--&amp;gt;((b/\c)&amp;lt;--&amp;gt;c))/\(b&amp;lt;--&amp;gt;((a/\b)--&amp;gt;(b/\c/\(no a))))/\(c&amp;lt;--&amp;gt;((no b)&amp;lt;--&amp;gt;(a\/b))))&lt;br /&gt;
*Main&amp;gt; solucion1&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
-- Todos mienten.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Decidir si es posible colorear los vértices de un&lt;br /&gt;
-- pentágono de rojo o azul de forma que los vértices adyacentes&lt;br /&gt;
-- tengan colores distintos.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   1, 2, 3, 4, 5 representan los vértices consecutivos del pentágono&lt;br /&gt;
--   ri (1 ≤ i ≤ 5) representa que el vértice i es rojo&lt;br /&gt;
--   ai (1 ≤ i ≤ 5) representa que el vértice i es azul&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Cuatro palomas comparten tres huecos. Decidir si es&lt;br /&gt;
-- posible que no haya dos palomas en el mismo hueco.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización: &lt;br /&gt;
--   pihj (i ∈ {1, 2, 3, 4} y j ∈ {1, 2, 3}) representa&lt;br /&gt;
--   que la paloma i está en el hueco j.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Un rectángulo se divide en seis rectángulos menores como&lt;br /&gt;
-- se indica en la figura. &lt;br /&gt;
&lt;br /&gt;
--               ------------------&lt;br /&gt;
--               |      |    B    |&lt;br /&gt;
--               |  A   |----------           &lt;br /&gt;
--               |      |   |     |&lt;br /&gt;
--               |------| D |     |&lt;br /&gt;
--               |   C  |   |  E  |&lt;br /&gt;
--               |------|---|     |&lt;br /&gt;
--               |     F    |     |&lt;br /&gt;
--               ------------------&lt;br /&gt;
&lt;br /&gt;
-- Demostrar que si cada una de los rectángulos menores tiene un lado&lt;br /&gt;
-- cuya medida es un número entero, entonces la medida de alguno de los&lt;br /&gt;
-- lados del rectángulo mayor es un número entero.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   base: la base del rectángulo mayor es un número entero&lt;br /&gt;
--   altura: la altura del rectángulo mayor es un número entero&lt;br /&gt;
--   base_x: la base del rectángulo X es un número entero&lt;br /&gt;
--   altura_x: la altura del rectángulo X es un número entero&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Calcular las formas de colocar 4 reinas en un tablero&lt;br /&gt;
-- de 4x4 de forma que no haya más de una reina en cada fila,&lt;br /&gt;
-- columna o diagonal.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   cij (1 ≤ i, j ≤ 4) indica que hay una reina en la fila i columna j.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Probar el caso más simple del teorema de Ramsey: entre&lt;br /&gt;
-- seis personas siempre hay (al menos) tres tales que cada una conoce&lt;br /&gt;
-- a las otras dos o cada una no conoce a ninguna de las otras dos.&lt;br /&gt;
&lt;br /&gt;
-- Simbolización:&lt;br /&gt;
--   1,2,3,4,5,6 representan a las personas&lt;br /&gt;
--   pij (1 ≤ i &amp;lt; j ≤ 6) indica que las personas i y j se conocen.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_2&amp;diff=510</id>
		<title>Relación 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_2&amp;diff=510"/>
		<updated>2013-05-15T13:52:40Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- SintaxisSemanticaProp.hs&lt;br /&gt;
-- Lógica proposicional: Sintaxis y semántica&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
module SintaxisSemantica where&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
import Data.List &lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Gramática de fórmulas prosicionales                                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir los siguientes tipos de datos:&lt;br /&gt;
-- * SímboloProposicional para representar los símbolos de proposiciones&lt;br /&gt;
-- * Prop para representar las fórmulas proposicionales usando los&lt;br /&gt;
--   constructores Atom, Neg, Conj, Disj, Impl y Equi para las fórmulas&lt;br /&gt;
--   atómicas, negaciones, conjunciones, implicaciones y equivalencias,&lt;br /&gt;
--   respectivamente.  &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
type SímboloProposicional = String&lt;br /&gt;
 &lt;br /&gt;
data Prop = Atom SímboloProposicional&lt;br /&gt;
          | Neg Prop &lt;br /&gt;
          | Conj Prop Prop &lt;br /&gt;
          | Disj Prop Prop &lt;br /&gt;
          | Impl Prop Prop &lt;br /&gt;
          | Equi Prop Prop &lt;br /&gt;
          deriving (Eq,Ord)&lt;br /&gt;
 &lt;br /&gt;
instance Show Prop where&lt;br /&gt;
    show (Atom p)   = p&lt;br /&gt;
    show (Neg p)    = &amp;quot;no &amp;quot; ++ show p&lt;br /&gt;
    show (Conj p q) = &amp;quot;(&amp;quot; ++ show p ++ &amp;quot; /\\ &amp;quot; ++ show q ++ &amp;quot;)&amp;quot;&lt;br /&gt;
    show (Disj p q) = &amp;quot;(&amp;quot; ++ show p ++ &amp;quot; \\/ &amp;quot; ++ show q ++ &amp;quot;)&amp;quot;&lt;br /&gt;
    show (Impl p q) = &amp;quot;(&amp;quot; ++ show p ++ &amp;quot; --&amp;gt; &amp;quot; ++ show q ++ &amp;quot;)&amp;quot;&lt;br /&gt;
    show (Equi p q) = &amp;quot;(&amp;quot; ++ show p ++ &amp;quot; &amp;lt;--&amp;gt; &amp;quot; ++ show q ++ &amp;quot;)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir las siguientes fórmulas proposicionales&lt;br /&gt;
-- atómicas: p, p1, p2, q, r, s, t y u.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
p, p1, p2, q, r, s, t, u :: Prop&lt;br /&gt;
p  = Atom &amp;quot;p&amp;quot;&lt;br /&gt;
p1 = Atom &amp;quot;p1&amp;quot;&lt;br /&gt;
p2 = Atom &amp;quot;p2&amp;quot;&lt;br /&gt;
q  = Atom &amp;quot;q&amp;quot;&lt;br /&gt;
r  = Atom &amp;quot;r&amp;quot;&lt;br /&gt;
s  = Atom &amp;quot;s&amp;quot;&lt;br /&gt;
t  = Atom &amp;quot;t&amp;quot;&lt;br /&gt;
u  = Atom &amp;quot;u&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    no :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (no f) es la negación de f.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
no :: Prop -&amp;gt; Prop&lt;br /&gt;
no = Neg&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir los siguientes operadores&lt;br /&gt;
--    (/\), (\/), (--&amp;gt;), (&amp;lt;--&amp;gt;) :: Prop -&amp;gt; Prop -&amp;gt; Prop&lt;br /&gt;
-- tales que&lt;br /&gt;
--    f /\ g      es la conjunción de f y g&lt;br /&gt;
--    f \/ g      es la disyunción de f y g&lt;br /&gt;
--    f --&amp;gt; g     es la implicación de f a g&lt;br /&gt;
--    f &amp;lt;--&amp;gt; g    es la equivalencia entre f y g&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
infixr 5 \/&lt;br /&gt;
infixr 4 /\&lt;br /&gt;
infixr 3 --&amp;gt;&lt;br /&gt;
infixr 2 &amp;lt;--&amp;gt;&lt;br /&gt;
(/\), (\/), (--&amp;gt;), (&amp;lt;--&amp;gt;) :: Prop -&amp;gt; Prop -&amp;gt; Prop&lt;br /&gt;
(/\)   = Conj&lt;br /&gt;
(\/)   = Disj&lt;br /&gt;
(--&amp;gt;)  = Impl&lt;br /&gt;
(&amp;lt;--&amp;gt;) = Equi&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Símbolos proposicionales de una fórmula                            --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    símbolosPropFórm :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (símbolosPropFórm f) es el conjunto formado por todos los&lt;br /&gt;
-- símbolos proposicionales que aparecen en f. Por ejemplo,&lt;br /&gt;
--    símbolosPropFórm (p /\ q --&amp;gt; p)  ==&amp;gt; [p,q]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- Antonio Molero&lt;br /&gt;
 &lt;br /&gt;
simbolosPropForm :: Prop -&amp;gt; [Prop]&lt;br /&gt;
simbolosPropForm (Atom p)   = [(Atom p)]&lt;br /&gt;
simbolosPropForm (Neg p)    = simbolosPropForm p&lt;br /&gt;
simbolosPropForm (Conj p q) = simbolosPropForm p `union` simbolosPropForm q&lt;br /&gt;
simbolosPropForm (Disj p q) = simbolosPropForm p `union` simbolosPropForm q&lt;br /&gt;
simbolosPropForm (Impl p q) = simbolosPropForm p `union` simbolosPropForm q&lt;br /&gt;
simbolosPropForm (Equi p q) = simbolosPropForm p `union` simbolosPropForm q&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Interpretaciones                                                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir el tipo de datos Interpretación para&lt;br /&gt;
-- representar las interpretaciones como listas de fórmulas atómicas.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
type Interpretacion = [Prop]&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Significado de una fórmula en una interpretación                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    significado :: Prop -&amp;gt; Interpretación -&amp;gt; Bool&lt;br /&gt;
-- tal que (significado f i) es el significado de f en i. Por ejemplo,&lt;br /&gt;
--    significado ((p \/ q) /\ ((no q) \/ r)) [r]    ==&amp;gt;  False&lt;br /&gt;
--    significado ((p \/ q) /\ ((no q) \/ r)) [p,r]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro G. Ros&lt;br /&gt;
significado :: Prop -&amp;gt; Interpretacion -&amp;gt; Bool&lt;br /&gt;
significado (Neg(Atom p)) a = elem (no (Atom p)) a&lt;br /&gt;
significado (Atom p) a = elem (Atom p) a&lt;br /&gt;
significado (Neg p) a = not (significado p a)&lt;br /&gt;
significado (Neg(Neg p)) a = significado p a&lt;br /&gt;
significado (Conj p q) a= (significado p a)&amp;amp;&amp;amp; (significado q a)&lt;br /&gt;
significado (Disj p q) a =(significado p a)|| (significado q a)&lt;br /&gt;
significado (Impl p q) a | (significado p a) = (significado q a)&lt;br /&gt;
                         | otherwise = True &lt;br /&gt;
significado (Equi p q) a = (significado p a)==(significado q a)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Interpretaciones de una fórmula                                    --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    subconjuntos :: [a] -&amp;gt; [[a]]&lt;br /&gt;
-- tal que (subconjuntos x) es la lista de los subconjuntos de x. Por&lt;br /&gt;
-- ejmplo, &lt;br /&gt;
--    subconjuntos &amp;quot;abc&amp;quot;  ==&amp;gt;  [&amp;quot;abc&amp;quot;,&amp;quot;ab&amp;quot;,&amp;quot;ac&amp;quot;,&amp;quot;a&amp;quot;,&amp;quot;bc&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;,&amp;quot;&amp;quot;]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- Reme Sillero&lt;br /&gt;
 &lt;br /&gt;
subconjuntos :: [a] -&amp;gt; [[a]]&lt;br /&gt;
subconjuntos []     = [[]]&lt;br /&gt;
subconjuntos (x:xs) = [x:ys | ys &amp;lt;- subconjuntos xs] ++ subconjuntos xs&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    interpretacionesFórm :: Prop -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (interpretacionesFórm f) es la lista de todas las&lt;br /&gt;
-- interpretaciones de f. Por ejemplo, &lt;br /&gt;
--    interpretacionesFórm (p /\ q --&amp;gt; p)  ==&amp;gt;  [[p,q],[p],[q],[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- Reme Sillero&lt;br /&gt;
 &lt;br /&gt;
interpretacionesForm :: Prop -&amp;gt; [Interpretacion]&lt;br /&gt;
interpretacionesForm p = subconjuntos (simbolosPropForm p)&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos de fórmulas                                                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    esModeloFórmula :: Interpretación -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloFórmula i f) se verifica si i es un modelo de f. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloFórmula [r]   ((p \/ q) /\ ((no q) \/ r))    ==&amp;gt;  False&lt;br /&gt;
--    esModeloFórmula [p,r] ((p \/ q) /\ ((no q) \/ r))    ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--Pedro G. Ros&lt;br /&gt;
esModeloFormula :: Interpretacion -&amp;gt;Prop -&amp;gt; Bool&lt;br /&gt;
esModeloFormula = \f-&amp;gt; \i -&amp;gt; (significado i f)&lt;br /&gt;
 &lt;br /&gt;
-- Miriam Núñez-Romero.&lt;br /&gt;
esModeloFormula2 :: Interpretacion -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esModeloFormula2 i f | (significado f i) ==True =True&lt;br /&gt;
                     |otherwise=False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosFórmula :: Prop -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (modelosFórmula f) es la lista de todas las interpretaciones&lt;br /&gt;
-- de f que son modelo de F. Por ejemplo,&lt;br /&gt;
--    modelosFórmula ((p \/ q) /\ ((no q) \/ r)) &lt;br /&gt;
--    ==&amp;gt; [[p,q,r],[p,r],[p],[q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--Pedro G. Ros&lt;br /&gt;
modelosFormula :: Prop -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosFormula f = [x|x&amp;lt;-(interpretacionesForm f),esModeloFormula x&lt;br /&gt;
                         f,not(null x)]&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Fórmulas válidas, satisfacibles e insatisfacibles                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    esVálida :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esVálida f) se verifica si f es válida. Por ejemplo,&lt;br /&gt;
--    esVálida (p --&amp;gt; p)                 ==&amp;gt;  True&lt;br /&gt;
--    esVálida (p --&amp;gt; q)                 ==&amp;gt;  False&lt;br /&gt;
--    esVálida ((p --&amp;gt; q) \/ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- Reme Sillero&lt;br /&gt;
 &lt;br /&gt;
esValida :: Prop -&amp;gt; Bool&lt;br /&gt;
esValida f = modelosFormula f == interpretacionesForm f&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
--Pedro G. Ros&lt;br /&gt;
--Ser válida es ser tautología, luego la definición anterior no es correcta, sería:&lt;br /&gt;
esValida2 f = elem [] (modelosFormula f)&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    esInsatisfacible :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esInsatisfacible f) se verifica si f es insatisfacible. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esInsatisfacible (p /\ (no p))             ==&amp;gt;  True&lt;br /&gt;
--    esInsatisfacible ((p --&amp;gt; q) /\ (q --&amp;gt; r))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- Reme Sillero&lt;br /&gt;
 &lt;br /&gt;
esInsatisfacible :: Prop -&amp;gt; Bool&lt;br /&gt;
esInsatisfacible f =  modelosFormula f == []&lt;br /&gt;
 &lt;br /&gt;
--Pedro G. Ros&lt;br /&gt;
esInsatisfacible2 :: Prop-&amp;gt; Bool&lt;br /&gt;
esInsatisfacible2 f = esValida (no f)&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esSatisfacible :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esSatisfacible f) se verifica si f es satisfacible. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esSatisfacible (p /\ (no p))             ==&amp;gt;  False&lt;br /&gt;
--    esSatisfacible ((p --&amp;gt; q) /\ (q --&amp;gt; r))  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Reme Sillero&lt;br /&gt;
 &lt;br /&gt;
esSatisfacible :: Prop -&amp;gt; Bool&lt;br /&gt;
esSatisfacible f = modelosFormula f /= []&lt;br /&gt;
 &lt;br /&gt;
-- Isabel Duarte&lt;br /&gt;
esSatisfacible2 :: Prop -&amp;gt; Bool&lt;br /&gt;
esSatisfacible2 f = not (esInsatisfacible f)&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Símbolos proposicionales de un conjunto de fórmulas                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    uniónGeneral :: Eq a =&amp;gt; [[a]] -&amp;gt; [a]&lt;br /&gt;
-- tal que (uniónGeneral x) es la unión de los conjuntos de la lista de&lt;br /&gt;
-- conjuntos x. Por ejemplo,&lt;br /&gt;
--    uniónGeneral []                 ==&amp;gt;  []&lt;br /&gt;
--    uniónGeneral [[1]]              ==&amp;gt;  [1]&lt;br /&gt;
--    uniónGeneral [[1],[1,2],[2,3]]  ==&amp;gt;  [1,2,3]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- Antonio Molero&lt;br /&gt;
 &lt;br /&gt;
unionGeneral :: Eq a =&amp;gt; [[a]] -&amp;gt; [a]&lt;br /&gt;
unionGeneral []     = []&lt;br /&gt;
unionGeneral (x:xs) = x `union` unionGeneral xs &lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16: Definir la función&lt;br /&gt;
--    símbolosPropConj :: [Prop] -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (símbolosPropConj s) es el conjunto de los símbolos&lt;br /&gt;
-- proposiciones de s. Por ejemplo,&lt;br /&gt;
--    símbolosPropConj [p /\ q --&amp;gt; r, p --&amp;gt; s]  ==&amp;gt;  [p,q,r,s]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- Antonio Molero&lt;br /&gt;
 &lt;br /&gt;
simbolosPropConj :: [Prop] -&amp;gt; [Prop]&lt;br /&gt;
simbolosPropConj s = unionGeneral [simbolosPropForm x|x&amp;lt;-s]&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Interpretaciones de un conjunto de fórmulas                        --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 17: Definir la función&lt;br /&gt;
--    interpretacionesConjunto :: [Prop] -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (interpretacionesConjunto s) es la lista de las&lt;br /&gt;
-- interpretaciones de s. Por ejemplo,&lt;br /&gt;
--    interpretacionesConjunto [p --&amp;gt; q, q --&amp;gt; r]&lt;br /&gt;
--    ==&amp;gt; [[p,q,r],[p,q],[p,r],[p],[q,r],[q],[r],[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- Reme Sillero&lt;br /&gt;
 &lt;br /&gt;
interpretacionesConjunto :: [Prop] -&amp;gt; [Interpretacion]&lt;br /&gt;
interpretacionesConjunto s = subconjuntos (simbolosPropConj s)&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos de conjuntos de fórmulas                                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 18: Definir la función&lt;br /&gt;
--    esModeloConjunto :: Interpretación -&amp;gt; [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloConjunto i s) se verifica si i es modelo de s. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloConjunto [p,r] [(p \/ q) /\ ((no q) \/ r), q --&amp;gt; r]&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esModeloConjunto [p,r] [(p \/ q) /\ ((no q) \/ r), r --&amp;gt; q]&lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
esModeloConjunto :: Interpretacion -&amp;gt; [Prop] -&amp;gt; Bool&lt;br /&gt;
esModeloConjunto i s = and [ esModeloFormula i x | x &amp;lt;- s] &lt;br /&gt;
 &lt;br /&gt;
--Pedro G. Ros&lt;br /&gt;
esModeloConjunto2 :: Interpretacion-&amp;gt; [Prop] -&amp;gt; Bool&lt;br /&gt;
esModeloConjunto2 i [] = True&lt;br /&gt;
esModeloConjunto2 i (x:xs) = (esModeloFormula2 i x)&amp;amp;&amp;amp;(esModeloConjunto2 i xs)&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 19: Definir la función&lt;br /&gt;
--    modelosConjunto :: [Prop] -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (modelosConjunto s) es la lista de modelos del conjunto&lt;br /&gt;
-- s. Por ejemplo,&lt;br /&gt;
--    modelosConjunto [(p \/ q) /\ ((no q) \/ r), q --&amp;gt; r]&lt;br /&gt;
--    ==&amp;gt; [[p,q,r],[p,r],[p],[q,r]]&lt;br /&gt;
--    modelosConjunto [(p \/ q) /\ ((no q) \/ r), r --&amp;gt; q]&lt;br /&gt;
--    ==&amp;gt; [[p,q,r],[p],[q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
modelosConjunto :: [Prop] -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosConjunto s = [ x | x &amp;lt;- (interpretacionesConjunto s), esModeloConjunto x s]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Conjuntos consistentes e inconsistentes de fórmulas                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 20: Definir la función&lt;br /&gt;
--    esConsistente :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsistente s) se verifica si s es consistente. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esConsistente [(p \/ q) /\ ((no q) \/ r), p --&amp;gt; r]        &lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsistente [(p \/ q) /\ ((no q) \/ r), p --&amp;gt; r, no r]  &lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
--Jesús Horno Cobo&lt;br /&gt;
esConsistente :: [Prop] -&amp;gt; Bool&lt;br /&gt;
esConsistente s = modelosConjunto s /= []&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 21: Definir la función&lt;br /&gt;
--    esInconsistente :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esInconsistente s) se verifica si s es inconsistente. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esInconsistente [(p \/ q) /\ ((no q) \/ r), p --&amp;gt; r]        &lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
--    esInconsistente [(p \/ q) /\ ((no q) \/ r), p --&amp;gt; r, no r]  &lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
--Jesús Horno Cobo&lt;br /&gt;
esInconsistente :: [Prop] -&amp;gt; Bool&lt;br /&gt;
esInconsistente s = modelosConjunto s == []&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia lógica                                                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 22: Definir la función&lt;br /&gt;
--    esConsecuencia :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuencia s f) se verifica si f es consecuencia de&lt;br /&gt;
-- s. Por ejemplo,&lt;br /&gt;
--    esConsecuencia [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)  ==&amp;gt;  True&lt;br /&gt;
--    esConsecuencia [p] (p /\ q)                  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
--Jesús Horno Cobo&lt;br /&gt;
esConsecuencia :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuencia s f = esInconsistente ((no f):s)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_9&amp;diff=509</id>
		<title>Relación 9</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_9&amp;diff=509"/>
		<updated>2013-05-15T13:51:46Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- FormasNormales.hs&lt;br /&gt;
-- Formas normales.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module FormasNormales where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librería suxiliares                                                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica &lt;br /&gt;
import Data.List&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Equivalencia lógica                                                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
esEquivalente :: Prop -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esEquivalente f g = null[n|n&amp;lt;-modelosFormula f,not(esModeloFormula n g)]&lt;br /&gt;
-- Es necesario que cambiéis cosas de la Rel2.hs &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Transformación a forma normal negativa                             --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    eliminaEquivalencias :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (eliminaEquivalencias f) es una fórmula equivalente a f sin&lt;br /&gt;
-- signos de equivalencia. Por ejemplo,&lt;br /&gt;
--    eliminaEquivalencias (p &amp;lt;--&amp;gt; q)&lt;br /&gt;
--    ==&amp;gt; ((p --&amp;gt; q) /\ (q --&amp;gt; p))&lt;br /&gt;
--    eliminaEquivalencias ((p &amp;lt;--&amp;gt; q) /\ (q &amp;lt;--&amp;gt; r))&lt;br /&gt;
--    ==&amp;gt; (((p --&amp;gt; q) /\ (q --&amp;gt; p)) /\ ((q --&amp;gt; r) /\ (r --&amp;gt; q)))&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros &lt;br /&gt;
eliminaEquivalencias :: Prop -&amp;gt; Prop&lt;br /&gt;
eliminaEquivalencias (Equi a b)= Conj (Impl a b) (Impl b a)&lt;br /&gt;
eliminaEquivalencias (Disj a b)= Disj (eliminaEquivalencias a)&lt;br /&gt;
                                 (eliminaEquivalencias b)&lt;br /&gt;
eliminaEquivalencias (Conj a b) = Conj (eliminaEquivalencias a)&lt;br /&gt;
                                  (eliminaEquivalencias b)&lt;br /&gt;
eliminaEquivalencias (Impl a b)= Impl (eliminaEquivalencias a)&lt;br /&gt;
                                 (eliminaEquivalencias b)&lt;br /&gt;
eliminaEquivalencias (Neg a) = Neg (eliminaEquivalencias a)&lt;br /&gt;
eliminaEquivalencias (Atom p) = Atom p&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    eliminaImplicaciones :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (eliminaImplicaciones f) es una fórmula equivalente a f sin&lt;br /&gt;
-- signos de implicación. Por ejemplo,&lt;br /&gt;
--    eliminaImplicaciones (p --&amp;gt; q)&lt;br /&gt;
--    ==&amp;gt; (no p \/ q)&lt;br /&gt;
--    eliminaImplicaciones (eliminaEquivalencias (p &amp;lt;--&amp;gt; q))&lt;br /&gt;
--    ==&amp;gt; ((no p \/ q) /\ (no q \/ p))&lt;br /&gt;
-- Nota: Se supone que f no tiene signos de equivalencia.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 -- Pedro Ros&lt;br /&gt;
eliminaImplicaciones :: Prop -&amp;gt; Prop&lt;br /&gt;
eliminaImplicaciones (Impl a b)= Disj (Neg (eliminaImplicaciones a))&lt;br /&gt;
                                 (eliminaImplicaciones b)&lt;br /&gt;
eliminaImplicaciones (Disj a b)= Disj (eliminaImplicaciones a)&lt;br /&gt;
                                 (eliminaImplicaciones b)&lt;br /&gt;
eliminaImplicaciones (Conj a b) = Conj (eliminaImplicaciones a)&lt;br /&gt;
                                  (eliminaImplicaciones b)&lt;br /&gt;
eliminaImplicaciones (Neg a) = Neg (eliminaImplicaciones a)&lt;br /&gt;
eliminaImplicaciones (Atom p) = Atom p &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    interiorizaNegación :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (interiorizaNegación f) es una fórmula equivalente a f donde&lt;br /&gt;
-- las negaciones se aplican sólo a fórmulas atómicas. Por ejemplo,&lt;br /&gt;
--    interiorizaNegación (no (no p))         ==&amp;gt;  p&lt;br /&gt;
--    interiorizaNegación (no (p /\ q))       ==&amp;gt;  (no p \/ no q)&lt;br /&gt;
--    interiorizaNegación (no (p \/ q))       ==&amp;gt;  (no p /\ no q)&lt;br /&gt;
--    interiorizaNegación (no (no (p \/ q)))  ==&amp;gt;  (p \/ q)&lt;br /&gt;
--    interiorizaNegación (no ((no p) \/ q))  ==&amp;gt;  (p /\ no q)&lt;br /&gt;
-- Nota: Se supone que f no tiene equivalencias ni implicaciones. &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 -- Pedro Ros&lt;br /&gt;
interiorizaNegacion :: Prop -&amp;gt; Prop&lt;br /&gt;
interiorizaNegacion (Neg (Conj a b))=(Disj (interiorizaNegacion(no (interiorizaNegacion a)))&lt;br /&gt;
                                      (interiorizaNegacion(no (interiorizaNegacion b))))&lt;br /&gt;
interiorizaNegacion (Neg (Disj a b))=(Conj (interiorizaNegacion(no (interiorizaNegacion a)))&lt;br /&gt;
                                      (interiorizaNegacion(no (interiorizaNegacion b))))&lt;br /&gt;
interiorizaNegacion (Neg (Neg f))=   (interiorizaNegacion f)&lt;br /&gt;
interiorizaNegacion (Disj a b)= Disj (interiorizaNegacion a)&lt;br /&gt;
                                (interiorizaNegacion b)&lt;br /&gt;
interiorizaNegacion (Conj a b)= Conj (interiorizaNegacion a)&lt;br /&gt;
                                (interiorizaNegacion b)&lt;br /&gt;
interiorizaNegacion x = x&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    formaNormalNegativa :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (formaNormalNegativa f) es una fórmula equivalente a f en&lt;br /&gt;
-- forma normal negativa. Por ejemplo,&lt;br /&gt;
--    formaNormalNegativa (p &amp;lt;--&amp;gt; q)&lt;br /&gt;
--    ==&amp;gt; ((no p \/ q) /\ (no q \/ p))&lt;br /&gt;
--    formaNormalNegativa ((p \/ (no q)) --&amp;gt; r)&lt;br /&gt;
--    ==&amp;gt; ((no p /\ q) \/ r)&lt;br /&gt;
--    formaNormalNegativa ((p /\ (q --&amp;gt; r)) --&amp;gt; s)&lt;br /&gt;
--    ==&amp;gt; ((no p \/ (q /\ no r)) \/ s)&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 -- Pedro Ros&lt;br /&gt;
formaNormalNegativa :: Prop -&amp;gt; Prop&lt;br /&gt;
formaNormalNegativa  =interiorizaNegacion.eliminaImplicaciones.eliminaEquivalencias &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal _ = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir el tipo de dato Literal como sinónimo de&lt;br /&gt;
-- fórmula. &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
type Literal = Prop&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    complementario :: Literal -&amp;gt; Literal&lt;br /&gt;
-- tal que (complementario l) es el complementario de l. Por ejemplo,&lt;br /&gt;
--    complementario p       ==&amp;gt;  no p&lt;br /&gt;
--    complementario (no p)  ==&amp;gt;  p&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
&lt;br /&gt;
complementario :: Literal -&amp;gt; Literal&lt;br /&gt;
complementario (Atom p) = Neg (Atom p)&lt;br /&gt;
complementario (Neg (Atom p)) = Atom p&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    literalesFórmulaFNN :: Prop -&amp;gt; [Literal]&lt;br /&gt;
-- tal que (literalesFórmulaFNN f) es el conjunto de los literales de la&lt;br /&gt;
-- fórmula en forma normal negativa f.&lt;br /&gt;
--    literalesFórmulaFNN (p \/ ((no q) \/ r))  ==&amp;gt;  [p,no q,r]&lt;br /&gt;
--    literalesFórmulaFNN p                     ==&amp;gt;  [p]&lt;br /&gt;
--    literalesFórmulaFNN (no p)                ==&amp;gt;  [no p]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
&lt;br /&gt;
literalesFormulaFNN :: Prop -&amp;gt; [Literal]&lt;br /&gt;
literalesFormulaFNN (Conj p q) = &lt;br /&gt;
  union (literalesFormulaFNN p) (literalesFormulaFNN q)&lt;br /&gt;
literalesFormulaFNN (Disj p q) = &lt;br /&gt;
  union (literalesFormulaFNN p) (literalesFormulaFNN q)&lt;br /&gt;
literalesFormulaFNN p = [p]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Transformación a forma normal conjuntiva                           --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    interiorizaDisyunción :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (interiorizaDisyunción f) es una fórmula equivalente a f&lt;br /&gt;
-- donde las disyunciones sólo se aplica a disyunciones o literales. Por&lt;br /&gt;
-- ejemplo,  &lt;br /&gt;
--    interiorizaDisyunción (p \/ (q /\ r))  ==&amp;gt;  ((p \/ q) /\ (p \/ r))&lt;br /&gt;
--    interiorizaDisyunción ((p /\ q) \/ r)  ==&amp;gt;  ((p \/ r) /\ (q \/ r))&lt;br /&gt;
-- Nota: Se supone que f está en forma normal negativa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
&lt;br /&gt;
interiorizaDisyuncion :: Prop -&amp;gt; Prop&lt;br /&gt;
interiorizaDisyuncion (Disj (Conj p q) r) =  &lt;br /&gt;
  interiorizaDisyuncion &lt;br /&gt;
  (Conj (Disj (interiorizaDisyuncion p) (interiorizaDisyuncion r))&lt;br /&gt;
        (Disj (interiorizaDisyuncion q) (interiorizaDisyuncion r)))&lt;br /&gt;
interiorizaDisyuncion (Disj r (Conj p q)) =  &lt;br /&gt;
  interiorizaDisyuncion &lt;br /&gt;
  (Conj (Disj (interiorizaDisyuncion r) (interiorizaDisyuncion p))&lt;br /&gt;
        (Disj (interiorizaDisyuncion r) (interiorizaDisyuncion q)))&lt;br /&gt;
interiorizaDisyuncion (Conj p q) =  &lt;br /&gt;
  Conj (interiorizaDisyuncion p) (interiorizaDisyuncion q)&lt;br /&gt;
interiorizaDisyuncion f = f&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    formaNormalConjuntiva :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (formaNormalConjuntiva f) es una fórmula equivalente a f en&lt;br /&gt;
-- forma normal conjuntiva. Por ejemplo,&lt;br /&gt;
--    formaNormalConjuntiva (p /\ (q --&amp;gt; r))&lt;br /&gt;
--    ==&amp;gt; (p /\ (no q \/ r))&lt;br /&gt;
--    formaNormalConjuntiva (no (p /\ (q --&amp;gt; r)))&lt;br /&gt;
--    ==&amp;gt; ((no p \/ q) /\ (no p \/ no r))&lt;br /&gt;
--    formaNormalConjuntiva (no(p &amp;lt;--&amp;gt; r))&lt;br /&gt;
--    ==&amp;gt; (((p \/ r) /\ (p \/ no p)) /\ ((no r \/ r) /\ (no r \/ no p)))&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
&lt;br /&gt;
formaNormalConjuntiva :: Prop -&amp;gt; Prop&lt;br /&gt;
formaNormalConjuntiva f = interiorizaDisyuncion (formaNormalNegativa f)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Ejercicio 11.2: validaPorFNC&lt;br /&gt;
&lt;br /&gt;
validaPorFNC:: Prop -&amp;gt; Bool&lt;br /&gt;
validaPorFNC = undefined&lt;br /&gt;
&lt;br /&gt;
-- validaPorFNC ((p --&amp;gt; q) \/ (q --&amp;gt; p))    == True&lt;br /&gt;
-- validaPorFNC ((p \/ q) /\ ((no q) \/ r)) == False&lt;br /&gt;
-- validaPorFNC (p --&amp;gt; p)                   == True&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Transformación a forma normal disyuntiva                           --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    interiorizaConjunción :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (interiorizaConjunción f) es una fórmula equivalente a f&lt;br /&gt;
-- donde las conjunciones sólo se aplica a conjunciones o literales. Por&lt;br /&gt;
-- ejemplo,  &lt;br /&gt;
--    interiorizaConjunción (p /\ (q \/ r))  ==&amp;gt;  ((p /\ q) \/ (p /\ r))&lt;br /&gt;
--    interiorizaConjunción ((p \/ q) /\ r)  ==&amp;gt;  ((p /\ r) \/ (q /\ r))&lt;br /&gt;
-- Nota: Se supone que f está en forma normal negativa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
&lt;br /&gt;
interiorizaConjuncion :: Prop -&amp;gt; Prop &lt;br /&gt;
interiorizaConjuncion (Conj (Disj f g) h) =&lt;br /&gt;
          interiorizaConjuncion (Disj (Conj (interiorizaConjuncion f) (interiorizaConjuncion h))&lt;br /&gt;
                                                    (Conj (interiorizaConjuncion g) (interiorizaConjuncion h))) &lt;br /&gt;
interiorizaConjuncion (Conj f (Disj g h)) =&lt;br /&gt;
          interiorizaConjuncion (Disj (Conj (interiorizaConjuncion f) (interiorizaConjuncion g))&lt;br /&gt;
                                                    (Conj (interiorizaConjuncion f) (interiorizaConjuncion h))) &lt;br /&gt;
interiorizaConjuncion (Disj f g) =&lt;br /&gt;
          Disj (interiorizaConjuncion f) (interiorizaConjuncion g) &lt;br /&gt;
interiorizaConjuncion f = f&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    formaNormalDisyuntiva :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (formaNormalDisyuntiva f) es una fórmula equivalente a f en&lt;br /&gt;
-- forma normal disyuntiva. Por ejemplo,&lt;br /&gt;
--    formaNormalDisyuntiva (p /\ (q --&amp;gt; r))&lt;br /&gt;
--    ==&amp;gt; ((p /\ no q) \/ (p /\ r))&lt;br /&gt;
--    formaNormalDisyuntiva (no (p /\ (q --&amp;gt; r)))&lt;br /&gt;
--    ==&amp;gt; (no p \/ (q /\ no r))&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
&lt;br /&gt;
formaNormalDisyuntiva :: Prop -&amp;gt; Prop&lt;br /&gt;
formaNormalDisyuntiva f = interiorizaConjuncion (formaNormalNegativa f)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Ejercicio 13.2: satisfaciblePorFND&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
satisfaciblePorFND:: Prop -&amp;gt; Bool&lt;br /&gt;
satisfaciblePorFND f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- satisfaciblePorFND ((p \/ q) /\ ((no q) \/ r)) == True&lt;br /&gt;
-- satisfaciblePorFND (p /\ (no p))               == False&lt;br /&gt;
-- satisfaciblePorFND ((p --&amp;gt; q) \/ (q --&amp;gt; p))    == True&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=492</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=492"/>
		<updated>2013-05-14T07:44:47Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion (Neg (Neg p))= True&lt;br /&gt;
dobleNegacion x = False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa (Conj p q) = True&lt;br /&gt;
alfa (Neg (Impl p q))= True&lt;br /&gt;
alfa (Neg (Disj p q))= True&lt;br /&gt;
alfa (Equi p q) = True&lt;br /&gt;
alfa x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta (Disj p q) = True&lt;br /&gt;
beta (Impl p q) = True&lt;br /&gt;
beta (Neg (Conj p q)) = True&lt;br /&gt;
beta (Neg (Equi p q))= True&lt;br /&gt;
beta p = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes (Conj p q) = [p,q]&lt;br /&gt;
componentes (Neg(Impl p q)) = [p,no q]&lt;br /&gt;
componentes (Neg(Disj p q))= [no p, no q]&lt;br /&gt;
componentes (Equi p q) = [Impl p q, Impl q p]&lt;br /&gt;
componentes (Disj p q) = [p, q]&lt;br /&gt;
componentes (Impl p q) = [no p, q]&lt;br /&gt;
componentes (Neg(Conj p q))= [no p, no q]&lt;br /&gt;
componentes (Neg(Equi p q))=[Neg(Impl p q), Neg(Impl q p)]&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales []= True&lt;br /&gt;
conjuntoDeLiterales (x:xs)= if literal x then conjuntoDeLiterales xs&lt;br /&gt;
                            else False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
tieneContradiccion :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradiccion [f] = False&lt;br /&gt;
tieneContradiccion ((Neg f):fs) = if elem f fs then True else&lt;br /&gt;
                                      tieneContradiccion fs&lt;br /&gt;
tieneContradiccion (f:fs)= if elem (no f) fs then True else&lt;br /&gt;
                               tieneContradiccion fs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Isabel Duarte&lt;br /&gt;
tieneContradiccion2 :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradiccion2 fs = or [elem (no x) fs | x &amp;lt;- fs]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--José María Contreras&lt;br /&gt;
elim (Neg(Neg f)) = f &lt;br /&gt;
                        &lt;br /&gt;
                        &lt;br /&gt;
expansionDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansionDN fs f = [(elim f):[x|x&amp;lt;-fs,x/=f]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--José María Contreras&lt;br /&gt;
&lt;br /&gt;
expansionAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansionAlfa fs f = [(componentes f)`union`(delete f fs)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--José María Contreras&lt;br /&gt;
&lt;br /&gt;
expansionBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansionBeta fs f = [x:(delete f fs)| x&amp;lt;-(componentes f)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs |[f|f&amp;lt;-fs, dobleNegacion f]/=[] = expansionDN fs (head([f|f&amp;lt;-fs,dobleNegacion f]))&lt;br /&gt;
             |[f|f&amp;lt;-fs, alfa f]/=[] =expansionAlfa fs (head([f|f&amp;lt;-fs,alfa f]))&lt;br /&gt;
             |[f|f&amp;lt;-fs, beta f]/=[] =expansionBeta fs (head([f|f&amp;lt;-fs,beta f]))&lt;br /&gt;
             |otherwise = [fs]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs |[f|f&amp;lt;-fs, not(literal f)]/=[] = concat [modelosTab (nub x) | x&amp;lt;-(sucesores fs)]&lt;br /&gt;
              |otherwise = [fs]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Isabel Duarte&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = and [elem x ys | x &amp;lt;- xs]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=491</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=491"/>
		<updated>2013-05-14T07:30:49Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion (Neg (Neg p))= True&lt;br /&gt;
dobleNegacion x = False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa (Conj p q) = True&lt;br /&gt;
alfa (Neg (Impl p q))= True&lt;br /&gt;
alfa (Neg (Disj p q))= True&lt;br /&gt;
alfa (Equi p q) = True&lt;br /&gt;
alfa x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta (Disj p q) = True&lt;br /&gt;
beta (Impl p q) = True&lt;br /&gt;
beta (Neg (Conj p q)) = True&lt;br /&gt;
beta (Neg (Equi p q))= True&lt;br /&gt;
beta p = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes (Conj p q) = [p,q]&lt;br /&gt;
componentes (Neg(Impl p q)) = [p,no q]&lt;br /&gt;
componentes (Neg(Disj p q))= [no p, no q]&lt;br /&gt;
componentes (Equi p q) = [Impl p q, Impl q p]&lt;br /&gt;
componentes (Disj p q) = [p, q]&lt;br /&gt;
componentes (Impl p q) = [no p, q]&lt;br /&gt;
componentes (Neg(Conj p q))= [no p, no q]&lt;br /&gt;
componentes (Neg(Equi p q))=[Neg(Impl p q), Neg(Impl q p)]&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales []= True&lt;br /&gt;
conjuntoDeLiterales (x:xs)= if literal x then conjuntoDeLiterales xs&lt;br /&gt;
                            else False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
tieneContradiccion :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradiccion [f] = False&lt;br /&gt;
tieneContradiccion ((Neg f):fs) = if elem f fs then True else&lt;br /&gt;
                                      tieneContradiccion fs&lt;br /&gt;
tieneContradiccion (f:fs)= if elem (no f) fs then True else&lt;br /&gt;
                               tieneContradiccion fs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Isabel Duarte&lt;br /&gt;
tieneContradiccion2 :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradiccion2 fs = or [elem (no x) fs | x &amp;lt;- fs]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--José María Contreras&lt;br /&gt;
elim (Neg(Neg f)) = f &lt;br /&gt;
                        &lt;br /&gt;
                        &lt;br /&gt;
expansionDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansionDN fs f = [(elim f):[x|x&amp;lt;-fs,x/=f]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--José María Contreras&lt;br /&gt;
&lt;br /&gt;
expansionAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansionAlfa fs f = [(componentes f)`union`(delete f fs)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--José María Contreras&lt;br /&gt;
&lt;br /&gt;
expansionBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansionBeta fs f = [x:(delete f fs)| x&amp;lt;-(componentes f)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs |[f|f&amp;lt;-fs, dobleNegacion f]/=[] = expansionDN fs (head([f|f&amp;lt;-fs,dobleNegacion f]))&lt;br /&gt;
             |[f|f&amp;lt;-fs, alfa f]/=[] =expansionAlfa fs (head([f|f&amp;lt;-fs,alfa f]))&lt;br /&gt;
             |[f|f&amp;lt;-fs, beta f]/=[] =expansionBeta fs (head([f|f&amp;lt;-fs,beta f]))&lt;br /&gt;
             |otherwise = [fs]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Isabel Duarte&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = and [elem x ys | x &amp;lt;- xs]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Ejercicio_3&amp;diff=484</id>
		<title>Ejercicio 3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Ejercicio_3&amp;diff=484"/>
		<updated>2013-05-08T10:37:42Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: /* Selección del ejercicio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Enunciado ==&lt;br /&gt;
El tercer ejercicio evaluable consiste en la realización de un ejercicio de argumentación en lógica de primer orden, haciendo la demostración por deducción natural con Isabelle/HOL y por tableros semánticos.&lt;br /&gt;
Para ello, &lt;br /&gt;
* Cada alumno elegirá uno de los ejercicios propuestos en [[E3|E3]].&lt;br /&gt;
* Una vez elegido, lo anotará en la lista que se muestra a continuación, no pudiendo un mismo ejercicio ser elegido por más de un alumno. &lt;br /&gt;
* Se enviará a mjoseh@us.es antes del viernes 10 de mayo de 2013, dos ficheros: uno usuario_3a.thy con la prueba por deducción natural y otro con la prueba por tableros.&lt;br /&gt;
* Los lemas que se usen en una demostración tendrán que ser probados de forma no automática.&lt;br /&gt;
* En la valoración del ejercicio se tendrá en cuenta tanto el nivel de dificultad como la calidad de la demostración.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Selección del ejercicio ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Ejercicio 1: Alejandro Alfaro Martínez&lt;br /&gt;
* Ejercicio 2: Francisco Vilches Chacón&lt;br /&gt;
* Ejercicio 3: Salvador Joaquín Franco Peña&lt;br /&gt;
* Ejercicio 4: M Inmaculada Arjona Arjona&lt;br /&gt;
* Ejercicio 5: Pedro Ros Reina&lt;br /&gt;
* Ejercicio 6: Carmen Martinez Navarro&lt;br /&gt;
* Ejercicio 7: Ana Rocío del Valle&lt;br /&gt;
* Ejercicio 8: &lt;br /&gt;
* Ejercicio 9: &lt;br /&gt;
* Ejercicio 10: Gonzalo José Muñoz González-Meneses&lt;br /&gt;
* Ejercicio 11: José Antonio Jaime Sabín&lt;br /&gt;
* Ejercicio 12: Erlinda Menéndez Pérez&lt;br /&gt;
* Ejercicio 13: Concepción García Vidal&lt;br /&gt;
* Ejercicio 14: &lt;br /&gt;
* Ejercicio 15: Elena Villalba Calderón&lt;br /&gt;
* Ejercicio 16: Miguel Ángel Terrón Morgado&lt;br /&gt;
* Ejercicio 17: Jesús Horno Cobo&lt;br /&gt;
* Ejercicio 18: Lourdes Díaz Mena&lt;br /&gt;
* Ejercicio 19: Mª de los Remedios Sillero Denamiel&lt;br /&gt;
* Ejercicio 20: Antonio Jesús Molero del Río&lt;br /&gt;
* Ejercicio 21: Irene Araujo Guijo&lt;br /&gt;
* Ejercicio 22: FºJavier Sanz Gil&lt;br /&gt;
* Ejercicio 23: &lt;br /&gt;
* Ejercicio 24: &lt;br /&gt;
* Ejercicio 25: Pedro José Perea Rojo&lt;br /&gt;
* Ejercicio 26: José María Contreras Beltrán&lt;br /&gt;
* Ejercicio 27: Isabel Duarte Tosso&lt;br /&gt;
* Ejercicio 28: Miriam Núñez-Romero Olmo&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=435</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=435"/>
		<updated>2013-04-24T11:22:16Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion (Neg (Neg p))= True&lt;br /&gt;
dobleNegacion x = False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa (Conj p q) = True&lt;br /&gt;
alfa (Neg (Impl p q))= True&lt;br /&gt;
alfa (Neg (Disj p q))= True&lt;br /&gt;
alfa (Equi p q) = True&lt;br /&gt;
alfa x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta (Disj p q) = True&lt;br /&gt;
beta (Impl p q) = True&lt;br /&gt;
beta (Neg (Conj p q)) = True&lt;br /&gt;
beta (Neg (Equi p q))= True&lt;br /&gt;
beta p = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes (Conj p q) = [p,q]&lt;br /&gt;
componentes (Neg(Impl p q)) = [p,no q]&lt;br /&gt;
componentes (Neg(Disj p q))= [no p, no q]&lt;br /&gt;
componentes (Equi p q) = [Impl p q, Impl q p]&lt;br /&gt;
componentes (Disj p q) = [p, q]&lt;br /&gt;
componentes (Impl p q) = [no p, q]&lt;br /&gt;
componentes (Neg(Conj p q))= [no p, no q]&lt;br /&gt;
componentes (Neg(Equi p q))=[Neg(Impl p q), Neg(Impl q p)]&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales []= True&lt;br /&gt;
conjuntoDeLiterales (x:xs)= if literal x then conjuntoDeLiterales xs&lt;br /&gt;
                            else False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
tieneContradiccion :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradiccion [f] = False&lt;br /&gt;
tieneContradiccion ((Neg f):fs) = if elem f fs then True else&lt;br /&gt;
                                      tieneContradiccion fs&lt;br /&gt;
tieneContradiccion (f:fs)= if elem (no f) fs then True else&lt;br /&gt;
                               tieneContradiccion fs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Isabel Duarte&lt;br /&gt;
tieneContradiccion2 :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradiccion2 fs = or [elem (no x) fs | x &amp;lt;- fs]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónDN fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónAlfa fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónBeta fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=426</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=426"/>
		<updated>2013-04-23T08:03:24Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion (Neg (Neg p))= True&lt;br /&gt;
dobleNegacion x = False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa (Conj p q) = True&lt;br /&gt;
alfa (Neg (Impl p q))= True&lt;br /&gt;
alfa (Neg (Disj p q))= True&lt;br /&gt;
alfa (Equi p q) = True&lt;br /&gt;
alfa x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta (Disj p q) = True&lt;br /&gt;
beta (Impl p q) = True&lt;br /&gt;
beta (Neg (Conj p q)) = True&lt;br /&gt;
beta (Neg (Equi p q))= True&lt;br /&gt;
beta p = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes (Conj p q) = [p,q]&lt;br /&gt;
componentes (Neg(Impl p q)) = [p,no q]&lt;br /&gt;
componentes (Neg(Disj p q))= [no p, no q]&lt;br /&gt;
componentes (Equi p q) = [Impl p q, Impl q p]&lt;br /&gt;
componentes (Disj p q) = [p, q]&lt;br /&gt;
componentes (Impl p q) = [no p, q]&lt;br /&gt;
componentes (Neg(Conj p q))= [no p, no q]&lt;br /&gt;
componentes (Neg(Equi p q))=[Neg(Impl p q), Neg(Impl q p)]&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales []= True&lt;br /&gt;
conjuntoDeLiterales (x:xs)= if literal x then conjuntoDeLiterales xs&lt;br /&gt;
                            else False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
tieneContradiccion :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradiccion [x] = False&lt;br /&gt;
tieneContradiccion (x:xs)= if elem (no x) xs then True else&lt;br /&gt;
                               tieneContradiccion xs&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónDN fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónAlfa fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónBeta fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=425</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=425"/>
		<updated>2013-04-23T07:58:50Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion (Neg (Neg p))= True&lt;br /&gt;
dobleNegacion x = False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa (Conj p q) = True&lt;br /&gt;
alfa (Neg (Impl p q))= True&lt;br /&gt;
alfa (Neg (Disj p q))= True&lt;br /&gt;
alfa (Equi p q) = True&lt;br /&gt;
alfa x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta (Disj p q) = True&lt;br /&gt;
beta (Impl p q) = True&lt;br /&gt;
beta (Neg (Conj p q)) = True&lt;br /&gt;
beta (Neg (Equi p q))= True&lt;br /&gt;
beta p = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes (Conj p q) = [p,q]&lt;br /&gt;
componentes (Neg(Impl p q)) = [p,no q]&lt;br /&gt;
componentes (Neg(Disj p q))= [no p, no q]&lt;br /&gt;
componentes (Equi p q) = [Impl p q, Impl q p]&lt;br /&gt;
componentes (Disj p q) = [p, q]&lt;br /&gt;
componentes (Impl p q) = [no p, q]&lt;br /&gt;
componentes (Neg(Conj p q))= [no p, no q]&lt;br /&gt;
componentes (Neg(Equi p q))=[Neg(Impl p q), Neg(Impl q p)]&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales []= True&lt;br /&gt;
conjuntoDeLiterales (x:xs)= if literal x then conjuntoDeLiterales xs&lt;br /&gt;
                            else False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradicción fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónDN fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónAlfa fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónBeta fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=424</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=424"/>
		<updated>2013-04-23T07:52:25Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion (Neg (Neg p))= True&lt;br /&gt;
dobleNegacion x = False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa (Conj p q) = True&lt;br /&gt;
alfa (Neg (Impl p q))= True&lt;br /&gt;
alfa (Neg (Disj p q))= True&lt;br /&gt;
alfa (Equi p q) = True&lt;br /&gt;
alfa x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta (Disj p q) = True&lt;br /&gt;
beta (Impl p q) = True&lt;br /&gt;
beta (Neg (Conj p q)) = True&lt;br /&gt;
beta (Neg (Equi p q))= True&lt;br /&gt;
beta p = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradicción fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónDN fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónAlfa fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónBeta fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=423</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=423"/>
		<updated>2013-04-23T07:29:16Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion (Neg (Neg p))= True&lt;br /&gt;
dobleNegacion x = False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa (Conj p q) = True&lt;br /&gt;
alfa (Neg (Impl p q))= True&lt;br /&gt;
alfa (Neg (Disj p q))= True&lt;br /&gt;
alfa (Equi p q) = True&lt;br /&gt;
alfa x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta (Disj p q) = True&lt;br /&gt;
beta (Impl p q) = True&lt;br /&gt;
beta (Neg (Disj p q)) = True&lt;br /&gt;
beta (Neg (Equi p q))= True&lt;br /&gt;
beta p = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradicción fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónDN fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónAlfa fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónBeta fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=422</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=422"/>
		<updated>2013-04-23T07:21:30Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion (Neg (Neg p))= True&lt;br /&gt;
dobleNegacion x = False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa (Conj p q) = True&lt;br /&gt;
alfa (Neg (Impl p q))= True&lt;br /&gt;
alfa (Neg (Disj p q))= True&lt;br /&gt;
alfa (Equi p q) = True&lt;br /&gt;
alfa x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradicción fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónDN fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónAlfa fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónBeta fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=421</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=421"/>
		<updated>2013-04-23T07:18:10Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion (Neg (Neg p))= True&lt;br /&gt;
dobleNegacion x = False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa = undefined &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradicción fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónDN fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónAlfa fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónBeta fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=420</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=420"/>
		<updated>2013-04-23T07:17:15Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro Ros&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion (Neg (Neg p))= True&lt;br /&gt;
dobleNegacion (Neg p)=False&lt;br /&gt;
dobleNegacion x = False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa = undefined &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradicción fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónDN fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónAlfa fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónBeta fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=418</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_8&amp;diff=418"/>
		<updated>2013-04-22T13:22:21Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- TablerosSemánticos.hs&lt;br /&gt;
-- Tableros semánticos proposicionales.&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module TablerosSemanticos where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Literales                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 0: Definir la función&lt;br /&gt;
--    literal :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (literal f) se verifica si la fórmula F es un literal. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    literal p               ==&amp;gt;  True&lt;br /&gt;
--    literal (no p)          ==&amp;gt;  True&lt;br /&gt;
--    literal (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom p) = True&lt;br /&gt;
literal (Neg (Atom p)) = True&lt;br /&gt;
literal x = False&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Notación uniforme                                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegación f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegación (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegación (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
dobleNegación :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegación = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (alfa f) se verifica si f es una fórmula alfa.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
alfa :: Prop -&amp;gt; Bool&lt;br /&gt;
alfa = undefined &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    beta :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (beta d) se verifica si f es una fórmula beta.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
beta :: Prop -&amp;gt; Bool&lt;br /&gt;
beta = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (componentes ) es la lista de las componentes de la fórmula&lt;br /&gt;
-- f. Por ejemplo, &lt;br /&gt;
--    componentes (p /\ q --&amp;gt; r)       ==&amp;gt;  [no (p /\ q),r]&lt;br /&gt;
--    componentes (no (p /\ q --&amp;gt; r))  ==&amp;gt;  [(p /\ q),no r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
componentes :: Prop -&amp;gt; [Prop]&lt;br /&gt;
componentes = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos mediante tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjuntoDeLiterales fs) se verifica si fs es un conjunto de&lt;br /&gt;
-- literales. Por ejemplo, &lt;br /&gt;
--    conjuntoDeLiterales [p --&amp;gt; q, no r, r /\ s, p]  ==&amp;gt;  False&lt;br /&gt;
--    conjuntoDeLiterales [p, no q, r]                ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
conjuntoDeLiterales :: [Prop] -&amp;gt; Bool&lt;br /&gt;
conjuntoDeLiterales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradicción fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradicción [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tieneContradicción :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradicción fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansiónDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónDN fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansiónAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónAlfa fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansiónBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansiónBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansiónBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansiónBeta fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (sucesores fs) es la lista de sucesores de fs. Por ejemplo,&lt;br /&gt;
--    sucesores [q \/ s, no(no r), p1 /\ p2] =&amp;gt; [[r,(q \/ s),(p1 /\ p2)]]&lt;br /&gt;
--    sucesores [r,(q \/ s),(p1 /\ p2)]      =&amp;gt; [[p1,p2,r,(q \/ s)]]&lt;br /&gt;
--    sucesores [p1,p2,r,(q \/ s)]           =&amp;gt; [[q,p1,p2,r],[s,p1,p2,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sucesores :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
sucesores fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosTab fs) es el conjunto de los modelos de fs&lt;br /&gt;
-- calculados mediante el método de tableros semánticos. Por ejemplo,&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no(q --&amp;gt; p)]  &lt;br /&gt;
--    ==&amp;gt; [[no p,q],[q,no p]]&lt;br /&gt;
--    modelosTab [p --&amp;gt; q, no q --&amp;gt; no p]  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p],[q],[no p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosTab :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosTab fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
-- tal que (subconjunto x y) se verifica si x es subconjunto de y. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    subconjunto [1,3] [3,2,1]    ==&amp;gt;  True&lt;br /&gt;
--    subconjunto [1,3,5] [3,2,1]  ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
subconjunto :: Eq a =&amp;gt; [a] -&amp;gt; [a] -&amp;gt; Bool&lt;br /&gt;
subconjunto xs ys = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (modelosGenerales fs) es el conjunto de los modelos generales&lt;br /&gt;
-- de fs calculados mediante el método de tableros semánticos. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosGenerales [p --&amp;gt; q, no q --&amp;gt; no p]  ==&amp;gt;  [[no p],[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosGenerales :: [Prop] -&amp;gt; [[Prop]]&lt;br /&gt;
modelosGenerales fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Teoremas por tableros                                              --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTeoremaPorTableros f) se verifica si la fórmula f es&lt;br /&gt;
-- teorema (mediante tableros semánticos). Por ejemplo,  &lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; p)  ==&amp;gt;  True&lt;br /&gt;
--    esTeoremaPorTableros (p --&amp;gt; q)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTeoremaPorTableros :: Prop -&amp;gt; Bool&lt;br /&gt;
esTeoremaPorTableros f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia por tableros                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esDeduciblePorTableros fs f) se verifica si la fórmula f es&lt;br /&gt;
-- consecuencia (mediante tableros) del conjunto de fórmulas fs. Por&lt;br /&gt;
-- ejemplo,&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)   ==&amp;gt;  True&lt;br /&gt;
--    esDeduciblePorTableros [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esDeduciblePorTableros :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esDeduciblePorTableros fs f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Ejercicio_2&amp;diff=404</id>
		<title>Ejercicio 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Ejercicio_2&amp;diff=404"/>
		<updated>2013-04-12T14:10:29Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: /* Selección del ejercicio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Enunciado ==&lt;br /&gt;
El segundo ejercicio evaluable consiste en la realización de una demostración por deducción natural en la Lógica de primer orden, con Isabelle/HOL.&lt;br /&gt;
Para ello, &lt;br /&gt;
* Cada alumno elegirá uno de los ejercicios propuestos en [[T2|T2]].&lt;br /&gt;
* Una vez elegido, lo anotará en la lista que se muestra a continuación, no pudiendo un mismo ejercicio ser elegido por más de un alumno. &lt;br /&gt;
* El ejercicio resuelto se enviará a mjoseh@us.es en un fichero usuario_2.thy antes del viernes 26 de abril de 2013.&lt;br /&gt;
* En la valoración del ejercicio se tendrá en cuenta tanto el nivel de dificultad como la calidad de la demostración.&lt;br /&gt;
&lt;br /&gt;
== Selección del ejercicio ==&lt;br /&gt;
&lt;br /&gt;
* Ejercicio 1: Francisco Vilches Chacón&lt;br /&gt;
* Ejercicio 2: &lt;br /&gt;
* Ejercicio 3: &lt;br /&gt;
* Ejercicio 4: &lt;br /&gt;
* Ejercicio 5: &lt;br /&gt;
* Ejercicio 6: &lt;br /&gt;
* Ejercicio 7: &lt;br /&gt;
* Ejercicio 8: Inmaculada Arjona Arjona&lt;br /&gt;
* Ejercicio 9: &lt;br /&gt;
* Ejercicio 10: &lt;br /&gt;
* Ejercicio 11: &lt;br /&gt;
* Ejercicio 12: &lt;br /&gt;
* Ejercicio 13: &lt;br /&gt;
* Ejercicio 14: &lt;br /&gt;
* Ejercicio 15: &lt;br /&gt;
* Ejercicio 16: &lt;br /&gt;
* Ejercicio 17: &lt;br /&gt;
* Ejercicio 18: &lt;br /&gt;
* Ejercicio 19: &lt;br /&gt;
* Ejercicio 20: &lt;br /&gt;
* Ejercicio 21: &lt;br /&gt;
* Ejercicio 22: Erlinda Menéndez Pérez&lt;br /&gt;
* Ejercicio 23: Irene Araujo Guijo&lt;br /&gt;
* Ejercicio 24: &lt;br /&gt;
* Ejercicio 25: &lt;br /&gt;
* Ejercicio 26: José Mª Contreras Beltrán&lt;br /&gt;
* Ejercicio 27: FºJavier Sanz Gil&lt;br /&gt;
* Ejercicio 28: Isabel Duarte Tosso&lt;br /&gt;
* Ejercicio 29: &lt;br /&gt;
* Ejercicio 30: &lt;br /&gt;
* Ejercicio 31: &lt;br /&gt;
* Ejercicio 32: &lt;br /&gt;
* Ejercicio 33: Pedro Ros Reina&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=396</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=396"/>
		<updated>2013-04-12T10:31:30Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  {fix a&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀y x. R a y ∧ R y x ⟶ R a x&amp;quot; using assms(1)..&lt;br /&gt;
  hence &amp;quot;∀x. R a b ∧ R b x ⟶ R a x&amp;quot;..&lt;br /&gt;
  hence 1:&amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬ R a a&amp;quot; using assms(2)..&lt;br /&gt;
  with 1 have &amp;quot;¬(R a b ∧ R b a)&amp;quot;by (rule mt)&lt;br /&gt;
  hence 2:&amp;quot;¬(R a b) ∨ ¬(R b a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;R a b ⟶ ¬R b a&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
     assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬(¬(R a b))&amp;quot; by (rule notnotI)&lt;br /&gt;
     with 2 show &amp;quot;¬R b a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed}&lt;br /&gt;
  hence &amp;quot;∀x. R a x ⟶ ¬R x a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y x. R y x ⟶ ¬R x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∃x. P x)⟶ Q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain b where &amp;quot;P b&amp;quot;..&lt;br /&gt;
    have &amp;quot;P b ⟶ Q&amp;quot; using 1..&lt;br /&gt;
    thus Q using `P b`..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 2:&amp;quot;((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  fix c&lt;br /&gt;
  show &amp;quot;P c ⟶Q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
    assume &amp;quot;P c&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    with 2 show Q..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;((∃x. P x) ∨ (∃x. Q x))&amp;quot;&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;P a&amp;quot;..&lt;br /&gt;
    hence  &amp;quot;P a ∨ Q a&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x ∨ Q x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;(∃x. Q x)&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;Q a&amp;quot;..&lt;br /&gt;
    hence  &amp;quot;P a ∨ Q a&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x ∨ Q x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;(∃x. P x ∨ Q x)&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∨ Q x)&amp;quot;  &lt;br /&gt;
  then obtain a where &amp;quot;P a ∨ Q a&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;Q a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot;..}&lt;br /&gt;
  ultimately &lt;br /&gt;
  show &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso*)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms(1)..&lt;br /&gt;
  then obtain b where 2:&amp;quot;(R a b ∨ R b a)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;a≠b&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume 5:&amp;quot;a=b&amp;quot;&lt;br /&gt;
    show False&lt;br /&gt;
    proof (rule disjE)&lt;br /&gt;
    show &amp;quot;R a b ∨ R b a&amp;quot; using 2.&lt;br /&gt;
    next&lt;br /&gt;
    assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
      with 5 have &amp;quot;R b b&amp;quot; by (rule subst)&lt;br /&gt;
      hence &amp;quot;∃x. R x x&amp;quot;..&lt;br /&gt;
      with assms(2) show False..&lt;br /&gt;
    next&lt;br /&gt;
    assume 7:&amp;quot;R b a&amp;quot;&lt;br /&gt;
      have &amp;quot;b=a&amp;quot; using 5..&lt;br /&gt;
      hence &amp;quot;R a a&amp;quot; using 7 by (rule subst)&lt;br /&gt;
      hence &amp;quot;∃x. R x x&amp;quot;..&lt;br /&gt;
      with assms(2) show False..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;∃x. a≠x&amp;quot;..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;P a a a&amp;quot; using assms(1)..&lt;br /&gt;
  have &amp;quot;∀y z. P a y z ⟶ P(f a) y (f z)&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀ z. P a a z ⟶ P(f a) a (f z)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a a a ⟶ P(f a) a (f a)&amp;quot;..&lt;br /&gt;
  thus ?thesis using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1: &amp;quot;P a (f a) (f a)&amp;quot; using assms(1)..&lt;br /&gt;
  have &amp;quot;∀y z. P a y z⟶P (f a) y (f z)&amp;quot; using assms(2) ..&lt;br /&gt;
  hence &amp;quot;∀z. P a (f a) z⟶P (f a) (f a) (f z)&amp;quot;..&lt;br /&gt;
  hence &amp;quot; P a (f a) (f a)⟶P (f a) (f a) (f (f a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P (f a) (f a) (f (f a))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=395</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=395"/>
		<updated>2013-04-12T10:17:44Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  {fix a&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀y x. R a y ∧ R y x ⟶ R a x&amp;quot; using assms(1)..&lt;br /&gt;
  hence &amp;quot;∀x. R a b ∧ R b x ⟶ R a x&amp;quot;..&lt;br /&gt;
  hence 1:&amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬ R a a&amp;quot; using assms(2)..&lt;br /&gt;
  with 1 have &amp;quot;¬(R a b ∧ R b a)&amp;quot;by (rule mt)&lt;br /&gt;
  hence 2:&amp;quot;¬(R a b) ∨ ¬(R b a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;R a b ⟶ ¬R b a&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
     assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬(¬(R a b))&amp;quot; by (rule notnotI)&lt;br /&gt;
     with 2 show &amp;quot;¬R b a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed}&lt;br /&gt;
  hence &amp;quot;∀x. R a x ⟶ ¬R x a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y x. R y x ⟶ ¬R x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∃x. P x)⟶ Q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain b where &amp;quot;P b&amp;quot;..&lt;br /&gt;
    have &amp;quot;P b ⟶ Q&amp;quot; using 1..&lt;br /&gt;
    thus Q using `P b`..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 2:&amp;quot;((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  fix c&lt;br /&gt;
  show &amp;quot;P c ⟶Q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
    assume &amp;quot;P c&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    with 2 show Q..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;((∃x. P x) ∨ (∃x. Q x))&amp;quot;&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;P a&amp;quot;..&lt;br /&gt;
    hence  &amp;quot;P a ∨ Q a&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x ∨ Q x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;(∃x. Q x)&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;Q a&amp;quot;..&lt;br /&gt;
    hence  &amp;quot;P a ∨ Q a&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x ∨ Q x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;(∃x. P x ∨ Q x)&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∨ Q x)&amp;quot;  &lt;br /&gt;
  then obtain a where &amp;quot;P a ∨ Q a&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;Q a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot;..}&lt;br /&gt;
  ultimately &lt;br /&gt;
  show &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso*)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms(1)..&lt;br /&gt;
  then obtain b where 2:&amp;quot;(R a b ∨ R b a)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;a≠b&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume 5:&amp;quot;a=b&amp;quot;&lt;br /&gt;
    show False&lt;br /&gt;
    proof (rule disjE)&lt;br /&gt;
    show &amp;quot;R a b ∨ R b a&amp;quot; using 2.&lt;br /&gt;
    next&lt;br /&gt;
    assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
      with 5 have &amp;quot;R b b&amp;quot; by (rule subst)&lt;br /&gt;
      hence &amp;quot;∃x. R x x&amp;quot;..&lt;br /&gt;
      with assms(2) show False..&lt;br /&gt;
    next&lt;br /&gt;
    assume 7:&amp;quot;R b a&amp;quot;&lt;br /&gt;
      have &amp;quot;b=a&amp;quot; using 5..&lt;br /&gt;
      hence &amp;quot;R a a&amp;quot; using 7 by (rule subst)&lt;br /&gt;
      hence &amp;quot;∃x. R x x&amp;quot;..&lt;br /&gt;
      with assms(2) show False..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;∃x. a≠x&amp;quot;..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;P a a a&amp;quot; using assms(1)..&lt;br /&gt;
  have &amp;quot;∀y z. P a y z ⟶ P(f a) y (f z)&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀ z. P a a z ⟶ P(f a) a (f z)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a a a ⟶ P(f a) a (f a)&amp;quot;..&lt;br /&gt;
  thus ?thesis using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=394</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=394"/>
		<updated>2013-04-12T10:13:39Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  {fix a&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀y x. R a y ∧ R y x ⟶ R a x&amp;quot; using assms(1)..&lt;br /&gt;
  hence &amp;quot;∀x. R a b ∧ R b x ⟶ R a x&amp;quot;..&lt;br /&gt;
  hence 1:&amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬ R a a&amp;quot; using assms(2)..&lt;br /&gt;
  with 1 have &amp;quot;¬(R a b ∧ R b a)&amp;quot;by (rule mt)&lt;br /&gt;
  hence 2:&amp;quot;¬(R a b) ∨ ¬(R b a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;R a b ⟶ ¬R b a&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
     assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬(¬(R a b))&amp;quot; by (rule notnotI)&lt;br /&gt;
     with 2 show &amp;quot;¬R b a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed}&lt;br /&gt;
  hence &amp;quot;∀x. R a x ⟶ ¬R x a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y x. R y x ⟶ ¬R x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∃x. P x)⟶ Q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain b where &amp;quot;P b&amp;quot;..&lt;br /&gt;
    have &amp;quot;P b ⟶ Q&amp;quot; using 1..&lt;br /&gt;
    thus Q using `P b`..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 2:&amp;quot;((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  fix c&lt;br /&gt;
  show &amp;quot;P c ⟶Q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
    assume &amp;quot;P c&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    with 2 show Q..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;((∃x. P x) ∨ (∃x. Q x))&amp;quot;&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;P a&amp;quot;..&lt;br /&gt;
    hence  &amp;quot;P a ∨ Q a&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x ∨ Q x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;(∃x. Q x)&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;Q a&amp;quot;..&lt;br /&gt;
    hence  &amp;quot;P a ∨ Q a&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x ∨ Q x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;(∃x. P x ∨ Q x)&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∨ Q x)&amp;quot;  &lt;br /&gt;
  then obtain a where &amp;quot;P a ∨ Q a&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;Q a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot;..}&lt;br /&gt;
  ultimately &lt;br /&gt;
  show &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso*)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms(1)..&lt;br /&gt;
  then obtain b where 2:&amp;quot;(R a b ∨ R b a)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;a≠b&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume 5:&amp;quot;a=b&amp;quot;&lt;br /&gt;
    show False&lt;br /&gt;
    proof (rule disjE)&lt;br /&gt;
    show &amp;quot;R a b ∨ R b a&amp;quot; using 2.&lt;br /&gt;
    next&lt;br /&gt;
    assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
      with 5 have &amp;quot;R b b&amp;quot; by (rule subst)&lt;br /&gt;
      hence &amp;quot;∃x. R x x&amp;quot;..&lt;br /&gt;
      with assms(2) show False..&lt;br /&gt;
    next&lt;br /&gt;
    assume 7:&amp;quot;R b a&amp;quot;&lt;br /&gt;
      have &amp;quot;b=a&amp;quot; using 5..&lt;br /&gt;
      hence &amp;quot;R a a&amp;quot; using 7 by (rule subst)&lt;br /&gt;
      hence &amp;quot;∃x. R x x&amp;quot;..&lt;br /&gt;
      with assms(2) show False..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;∃x. a≠x&amp;quot;..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=393</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=393"/>
		<updated>2013-04-12T10:04:21Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  {fix a&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀y x. R a y ∧ R y x ⟶ R a x&amp;quot; using assms(1)..&lt;br /&gt;
  hence &amp;quot;∀x. R a b ∧ R b x ⟶ R a x&amp;quot;..&lt;br /&gt;
  hence 1:&amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬ R a a&amp;quot; using assms(2)..&lt;br /&gt;
  with 1 have &amp;quot;¬(R a b ∧ R b a)&amp;quot;by (rule mt)&lt;br /&gt;
  hence 2:&amp;quot;¬(R a b) ∨ ¬(R b a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;R a b ⟶ ¬R b a&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
     assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬(¬(R a b))&amp;quot; by (rule notnotI)&lt;br /&gt;
     with 2 show &amp;quot;¬R b a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed}&lt;br /&gt;
  hence &amp;quot;∀x. R a x ⟶ ¬R x a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y x. R y x ⟶ ¬R x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∃x. P x)⟶ Q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain b where &amp;quot;P b&amp;quot;..&lt;br /&gt;
    have &amp;quot;P b ⟶ Q&amp;quot; using 1..&lt;br /&gt;
    thus Q using `P b`..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 2:&amp;quot;((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  fix c&lt;br /&gt;
  show &amp;quot;P c ⟶Q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
    assume &amp;quot;P c&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    with 2 show Q..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;((∃x. P x) ∨ (∃x. Q x))&amp;quot;&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;P a&amp;quot;..&lt;br /&gt;
    hence  &amp;quot;P a ∨ Q a&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x ∨ Q x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;(∃x. Q x)&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;Q a&amp;quot;..&lt;br /&gt;
    hence  &amp;quot;P a ∨ Q a&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x ∨ Q x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;(∃x. P x ∨ Q x)&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∨ Q x)&amp;quot;  &lt;br /&gt;
  then obtain a where &amp;quot;P a ∨ Q a&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;Q a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot;..}&lt;br /&gt;
  ultimately &lt;br /&gt;
  show &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso*)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=392</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=392"/>
		<updated>2013-04-12T10:04:01Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  {fix a&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀y x. R a y ∧ R y x ⟶ R a x&amp;quot; using assms(1)..&lt;br /&gt;
  hence &amp;quot;∀x. R a b ∧ R b x ⟶ R a x&amp;quot;..&lt;br /&gt;
  hence 1:&amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬ R a a&amp;quot; using assms(2)..&lt;br /&gt;
  with 1 have &amp;quot;¬(R a b ∧ R b a)&amp;quot;by (rule mt)&lt;br /&gt;
  hence 2:&amp;quot;¬(R a b) ∨ ¬(R b a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;R a b ⟶ ¬R b a&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
     assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬(¬(R a b))&amp;quot; by (rule notnotI)&lt;br /&gt;
     with 2 show &amp;quot;¬R b a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed}&lt;br /&gt;
  hence &amp;quot;∀x. R a x ⟶ ¬R x a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y x. R y x ⟶ ¬R x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∃x. P x)⟶ Q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain b where &amp;quot;P b&amp;quot;..&lt;br /&gt;
    have &amp;quot;P b ⟶ Q&amp;quot; using 1..&lt;br /&gt;
    thus Q using `P b`..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 2:&amp;quot;((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  fix c&lt;br /&gt;
  show &amp;quot;P c ⟶Q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
    assume &amp;quot;P c&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    with 2 show Q..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;((∃x. P x) ∨ (∃x. Q x))&amp;quot;&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;P a&amp;quot;..&lt;br /&gt;
    hence  &amp;quot;P a ∨ Q a&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x ∨ Q x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;(∃x. Q x)&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;Q a&amp;quot;..&lt;br /&gt;
    hence  &amp;quot;P a ∨ Q a&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x ∨ Q x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;(∃x. P x ∨ Q x)&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∨ Q x)&amp;quot;  &lt;br /&gt;
  then obtain a where &amp;quot;P a ∨ Q a&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;Q a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot;..}&lt;br /&gt;
  ultimately &lt;br /&gt;
  show &amp;quot;(∃x. P x) ∨ (∃y. Q y)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso*)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=391</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=391"/>
		<updated>2013-04-12T09:59:24Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  {fix a&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀y x. R a y ∧ R y x ⟶ R a x&amp;quot; using assms(1)..&lt;br /&gt;
  hence &amp;quot;∀x. R a b ∧ R b x ⟶ R a x&amp;quot;..&lt;br /&gt;
  hence 1:&amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬ R a a&amp;quot; using assms(2)..&lt;br /&gt;
  with 1 have &amp;quot;¬(R a b ∧ R b a)&amp;quot;by (rule mt)&lt;br /&gt;
  hence 2:&amp;quot;¬(R a b) ∨ ¬(R b a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;R a b ⟶ ¬R b a&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
     assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬(¬(R a b))&amp;quot; by (rule notnotI)&lt;br /&gt;
     with 2 show &amp;quot;¬R b a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed}&lt;br /&gt;
  hence &amp;quot;∀x. R a x ⟶ ¬R x a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y x. R y x ⟶ ¬R x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∃x. P x)⟶ Q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain b where &amp;quot;P b&amp;quot;..&lt;br /&gt;
    have &amp;quot;P b ⟶ Q&amp;quot; using 1..&lt;br /&gt;
    thus Q using `P b`..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 2:&amp;quot;((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  fix c&lt;br /&gt;
  show &amp;quot;P c ⟶Q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
    assume &amp;quot;P c&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    with 2 show Q..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso*)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=390</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=390"/>
		<updated>2013-04-12T09:47:16Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  {fix a&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀y x. R a y ∧ R y x ⟶ R a x&amp;quot; using assms(1)..&lt;br /&gt;
  hence &amp;quot;∀x. R a b ∧ R b x ⟶ R a x&amp;quot;..&lt;br /&gt;
  hence 1:&amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬ R a a&amp;quot; using assms(2)..&lt;br /&gt;
  with 1 have &amp;quot;¬(R a b ∧ R b a)&amp;quot;by (rule mt)&lt;br /&gt;
  hence 2:&amp;quot;¬(R a b) ∨ ¬(R b a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;R a b ⟶ ¬R b a&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
     assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬(¬(R a b))&amp;quot; by (rule notnotI)&lt;br /&gt;
     with 2 show &amp;quot;¬R b a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed}&lt;br /&gt;
  hence &amp;quot;∀x. R a x ⟶ ¬R x a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y x. R y x ⟶ ¬R x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∃x. P x)⟶ Q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain b where &amp;quot;P b&amp;quot;..&lt;br /&gt;
    have &amp;quot;P b ⟶ Q&amp;quot; using 1..&lt;br /&gt;
    thus Q using `P b`..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 2:&amp;quot;((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  fix c&lt;br /&gt;
  show &amp;quot;P c ⟶Q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
    assume &amp;quot;P c&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    with 2 show Q..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
quickcheck (* Es falso*)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=388</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=388"/>
		<updated>2013-04-10T15:32:23Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  {fix a&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀y x. R a y ∧ R y x ⟶ R a x&amp;quot; using assms(1)..&lt;br /&gt;
  hence &amp;quot;∀x. R a b ∧ R b x ⟶ R a x&amp;quot;..&lt;br /&gt;
  hence 1:&amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬ R a a&amp;quot; using assms(2)..&lt;br /&gt;
  with 1 have &amp;quot;¬(R a b ∧ R b a)&amp;quot;by (rule mt)&lt;br /&gt;
  hence 2:&amp;quot;¬(R a b) ∨ ¬(R b a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;R a b ⟶ ¬R b a&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
     assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬(¬(R a b))&amp;quot; by (rule notnotI)&lt;br /&gt;
     with 2 show &amp;quot;¬R b a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed}&lt;br /&gt;
  hence &amp;quot;∀x. R a x ⟶ ¬R x a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y x. R y x ⟶ ¬R x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∃x. P x)⟶ Q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(∃x. P x)&amp;quot;&lt;br /&gt;
    then obtain b where &amp;quot;P b&amp;quot;..&lt;br /&gt;
    have &amp;quot;P b ⟶ Q&amp;quot; using 1..&lt;br /&gt;
    thus Q using `P b`..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 2:&amp;quot;((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
  show &amp;quot;(∀x. P x ⟶ Q)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  fix c&lt;br /&gt;
  show &amp;quot;P c ⟶Q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
    assume &amp;quot;P c&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
    with 2 show Q..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=387</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=387"/>
		<updated>2013-04-10T15:08:47Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  {fix a&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀y x. R a y ∧ R y x ⟶ R a x&amp;quot; using assms(1)..&lt;br /&gt;
  hence &amp;quot;∀x. R a b ∧ R b x ⟶ R a x&amp;quot;..&lt;br /&gt;
  hence 1:&amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬ R a a&amp;quot; using assms(2)..&lt;br /&gt;
  with 1 have &amp;quot;¬(R a b ∧ R b a)&amp;quot;by (rule mt)&lt;br /&gt;
  hence 2:&amp;quot;¬(R a b) ∨ ¬(R b a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;R a b ⟶ ¬R b a&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
     assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬(¬(R a b))&amp;quot; by (rule notnotI)&lt;br /&gt;
     with 2 show &amp;quot;¬R b a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed}&lt;br /&gt;
  hence &amp;quot;∀x. R a x ⟶ ¬R x a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y x. R y x ⟶ ¬R x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=386</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=386"/>
		<updated>2013-04-10T15:07:14Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  {fix a&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀y x. R a y ∧ R y x ⟶ R a x&amp;quot; using assms(1)..&lt;br /&gt;
  hence &amp;quot;∀x. R a b ∧ R b x ⟶ R a x&amp;quot;..&lt;br /&gt;
  hence 1:&amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬ R a a&amp;quot; using assms(2)..&lt;br /&gt;
  with 1 have &amp;quot;¬(R a b ∧ R b a)&amp;quot;by (rule mt)&lt;br /&gt;
  hence 2:&amp;quot;¬(R a b) ∨ ¬(R b a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;R a b ⟶ ¬R b a&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
     assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬(¬(R a b))&amp;quot; by (rule notnotI)&lt;br /&gt;
     with 2 show &amp;quot;¬R b a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed}&lt;br /&gt;
  hence &amp;quot;∀x. R a x ⟶ ¬R x a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y x. R y x ⟶ ¬R x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=385</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=385"/>
		<updated>2013-04-10T11:12:15Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶Q b&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
  assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=384</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=384"/>
		<updated>2013-04-10T11:09:43Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬?thesis&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ∨ ¬P a&amp;quot; by (rule ejercicio_27)&lt;br /&gt;
  have &amp;quot;¬ P a ∨ ?thesis&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
  note `P a ∨ ¬P a`&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume 2:&amp;quot;¬P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show &amp;quot;¬ P a ∨ (∃x. P x)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence &amp;quot;¬P a&amp;quot; using 1 by (rule ejercicio_42)}&lt;br /&gt;
  hence &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
  with assms show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=381</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=381"/>
		<updated>2013-04-09T21:16:58Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;x= a ⟶ P x&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
   assume &amp;quot;x= a&amp;quot;&lt;br /&gt;
   hence &amp;quot;a = x&amp;quot;..&lt;br /&gt;
   thus &amp;quot;P x&amp;quot; using assms by (rule subst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=380</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=380"/>
		<updated>2013-04-09T21:04:53Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms..&lt;br /&gt;
  assume &amp;quot;(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot;..&lt;br /&gt;
  thus False using 1..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=379</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=379"/>
		<updated>2013-04-09T20:08:38Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. P x)&amp;quot;&lt;br /&gt;
  obtain a where 2:&amp;quot;¬(P a)&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using 1..&lt;br /&gt;
  with 2 show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∀x. ¬(Q x))&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have 2:&amp;quot;P a ⟶ Q a&amp;quot; using assms..&lt;br /&gt;
  have &amp;quot;¬(Q a)&amp;quot; using 1..&lt;br /&gt;
  with 2 have &amp;quot;¬(P a)&amp;quot; by (rule mt)}&lt;br /&gt;
  thus &amp;quot;∀x. ¬(P x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;P a&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;¬(Q a)&amp;quot; using 2..&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
using assms .&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;∀y. P a y&amp;quot; using assms..&lt;br /&gt;
  {fix b&lt;br /&gt;
   have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
   hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where 2: &amp;quot;P a⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬(P a)∨ P a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a ⟶ Q a&amp;quot; by (rule ejercicio_40f)&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
  with assms have &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  then obtain b where &amp;quot;Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence ?thesis..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;¬(Q a)∨ (Q a)&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 2: &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
    {fix b&lt;br /&gt;
    have 3:&amp;quot;¬(∃x. P x)&amp;quot;using 1 2 by (rule mt)&lt;br /&gt;
    have &amp;quot;¬(P b)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed&lt;br /&gt;
    hence 3:&amp;quot;P b⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 2: &amp;quot;Q a&amp;quot;&lt;br /&gt;
     {fix b&lt;br /&gt;
     have &amp;quot;P b ⟶ Q a&amp;quot;using 2..}&lt;br /&gt;
     hence ?thesis ..}&lt;br /&gt;
   ultimately&lt;br /&gt;
    show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  fix w&lt;br /&gt;
  have &amp;quot;P w ⟶ Q a&amp;quot;using assms..&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  note `(∀x. P x) ∨ (∀x. Q x)`&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 1:&amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;P a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume 1:&amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot;using 1..&lt;br /&gt;
    hence &amp;quot;P a ∨ Q a&amp;quot;..}&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
   ultimately&lt;br /&gt;
   show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;∃x. P x&amp;quot;..&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;∃x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃y. P y)&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
  have &amp;quot;∀x. P x ⟶ Q b&amp;quot; using 0..&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1..}&lt;br /&gt;
  thus &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬ (Q a)&amp;quot; using assms(2)..&lt;br /&gt;
  have &amp;quot;P a∨ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; using 1 by (rule ejercicio_42)&lt;br /&gt;
  hence 2:&amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
  have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3)..&lt;br /&gt;
  hence &amp;quot;¬(R a)&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have 1:&amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1)..&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ P a&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;(P a) ⟶ Q a&amp;quot; by (rule ejercicio_40f)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      with 1 have 2:&amp;quot;Q a ∨ R a&amp;quot;..&lt;br /&gt;
      have &amp;quot;Q a&amp;quot;&lt;br /&gt;
      proof (rule ccontr)&lt;br /&gt;
        assume &amp;quot;¬(Q a)&amp;quot;&lt;br /&gt;
        with 2 have &amp;quot;R a&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
        with `P a` have &amp;quot;P a ∧ R a&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. P x ∧ R x&amp;quot;..&lt;br /&gt;
        with assms(2) show False..&lt;br /&gt;
        qed&lt;br /&gt;
        hence &amp;quot;P a ⟶ Q a&amp;quot;..}&lt;br /&gt;
    ultimately show &amp;quot;P a ⟶ Q a&amp;quot;..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  obtain a where 1: &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R a x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. R b x&amp;quot;..&lt;br /&gt;
    hence ?thesis..}&lt;br /&gt;
  ultimately show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ∀y. P x y)&amp;quot;&lt;br /&gt;
  then obtain a where 1:&amp;quot;∀y. P a y&amp;quot;..&lt;br /&gt;
  {fix b&lt;br /&gt;
    have &amp;quot;P a b&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;∃x. P x b&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀y. ∃x. P x y&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;((∀x. P x) ∧ (∀x. Q x))&amp;quot;&lt;br /&gt;
  hence 2:&amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  have 3:&amp;quot;∀x. Q x&amp;quot; using 1..&lt;br /&gt;
  {fix a&lt;br /&gt;
    have 4:&amp;quot;P a&amp;quot; using 2..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using 3..&lt;br /&gt;
    with 4 have &amp;quot;P a ∧ Q a&amp;quot;..}&lt;br /&gt;
  thus &amp;quot;∀x. P x ∧ Q x&amp;quot;..&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot;..}&lt;br /&gt;
  hence 2: &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
  {fix a&lt;br /&gt;
  have &amp;quot;P a ∧ Q a&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot;..}&lt;br /&gt;
  hence 3: &amp;quot;∀x. Q x&amp;quot;..&lt;br /&gt;
  with 2 show &amp;quot;(∀x. P x)∧(∀x. Q x)&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(¬(∀x. P x))&amp;quot;&lt;br /&gt;
  show 2:&amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  proof (rule ccontr)&lt;br /&gt;
    assume 3:&amp;quot;¬(∃x. ¬P x)&amp;quot;&lt;br /&gt;
    {fix a&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬(P x)&amp;quot;..&lt;br /&gt;
      with 3 show False..&lt;br /&gt;
    qed}&lt;br /&gt;
    hence &amp;quot;∀x. P x&amp;quot;..&lt;br /&gt;
    with 1 show False..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume 1: &amp;quot;(∃x. ¬P x)&amp;quot;&lt;br /&gt;
  then obtain a where 2: &amp;quot;¬ (P a)&amp;quot;..&lt;br /&gt;
  show 3:&amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot;..&lt;br /&gt;
    with 2 show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&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>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=361</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=361"/>
		<updated>2013-04-07T14:26:09Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)∧¬A(x,m)))&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. (¬E(x)∨(C(x,m)∧¬R(x)))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11b:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶(C(x,m)∧¬A(x,m))))&amp;quot;&lt;br /&gt;
shows   &amp;quot;¬(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;¬(¬E(a)∨(C(a,m)∧¬R(a)))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;¬¬E(a) ∧ ¬(C(a,m)∧ ¬R(a))&amp;quot; by (rule ejercicio_46)&lt;br /&gt;
  hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
  hence 5:&amp;quot;E(a)&amp;quot; by (rule notnotD)&lt;br /&gt;
  have 6: &amp;quot;¬(C(a,m)∧ ¬R(a))&amp;quot; using 4..&lt;br /&gt;
  hence 7: &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;E(a)⟶C(a,m)∧  ¬A(a,m)&amp;quot; using 3..&lt;br /&gt;
  hence 10:&amp;quot;C(a,m)∧ ¬A(a,m)&amp;quot; using 5..&lt;br /&gt;
  hence 8:&amp;quot;C(a,m)&amp;quot;..&lt;br /&gt;
  show False&lt;br /&gt;
  proof-&lt;br /&gt;
  have &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; using 7.&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬C(a,m)&amp;quot;&lt;br /&gt;
    hence False using 8..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 9:&amp;quot;¬¬R(a)&amp;quot;&lt;br /&gt;
    have &amp;quot;I(a)⟶ ¬R(a)&amp;quot; using 2..&lt;br /&gt;
    hence 11:&amp;quot;¬I(a)&amp;quot; using 9 by (rule mt)&lt;br /&gt;
    have &amp;quot;(∀y. (C(a,y)⟶(A(a,y)∨I(a))))&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;(C(a,m)⟶(A(a,m)∨I(a)))&amp;quot;..&lt;br /&gt;
    hence 12:&amp;quot;(A(a,m)∨I(a))&amp;quot; using 8..&lt;br /&gt;
    have &amp;quot;¬A(a,m)&amp;quot; using 10..&lt;br /&gt;
    with 12 have &amp;quot;I(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
    with 11 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
    obtain a where 5: &amp;quot;∀y.(P(a) ∧ B(a) ∧ (M(y,a) ⟶ B(y)))&amp;quot; using 2..&lt;br /&gt;
    fix b&lt;br /&gt;
    have 6:&amp;quot;(P(a) ∧ B(a) ∧ (M(b,a) ⟶ B(b)))&amp;quot; using 5..&lt;br /&gt;
    have b: &amp;quot;P(a)⟶¬M(a,a)&amp;quot;using 3..&lt;br /&gt;
    have f:&amp;quot;P(a)&amp;quot; using 6..&lt;br /&gt;
    with b have &amp;quot;¬M(a,a)&amp;quot;..&lt;br /&gt;
    have c:&amp;quot;B(a) ∧ (M(b,a) ⟶ B(b))&amp;quot;using 6..&lt;br /&gt;
    hence d:&amp;quot;(M(b,a) ⟶ B(b))&amp;quot;..&lt;br /&gt;
    have e:&amp;quot;B(a)&amp;quot; using c..&lt;br /&gt;
    have &amp;quot;B(a)⟶ ¬N(a)&amp;quot; using 4..&lt;br /&gt;
    hence &amp;quot;¬N(a)&amp;quot; using e..&lt;br /&gt;
    hence g:&amp;quot;¬N(a)∧P(a)&amp;quot; using f..&lt;br /&gt;
    have h: &amp;quot;∃y.(¬N(a) ∧ P(a) ⟶ D(y) ∧ M(y,a))&amp;quot; using 1..&lt;br /&gt;
    then obtain c where i: &amp;quot;(¬N(a) ∧ P(a) ⟶ D(c) ∧ M(c,a))&amp;quot;..&lt;br /&gt;
    hence k:&amp;quot;D(c)∧M(c,a)&amp;quot; using g..&lt;br /&gt;
    hence j:&amp;quot;M(c,a)&amp;quot; ..&lt;br /&gt;
    have l:&amp;quot;D(c)&amp;quot; using k..&lt;br /&gt;
    have &amp;quot;(P(a) ∧ B(a) ∧ (M(c,a) ⟶ B(c)))&amp;quot; using 5..&lt;br /&gt;
    hence &amp;quot;B(a)∧(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;B(c)&amp;quot; using j..&lt;br /&gt;
    with l have &amp;quot;D(c)∧B(c)&amp;quot;..&lt;br /&gt;
    thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
lemma ejercicio_19a:&lt;br /&gt;
assumes a:&amp;quot;∀x. ((∃y. B(x)∧B(y)∧A(x,y)))⟶ (∀z. B(z)⟶A(z,x))&amp;quot;and&lt;br /&gt;
        b:&amp;quot;B(l)∧B(p)∧B(c)∧B(g)&amp;quot;and&lt;br /&gt;
        c:&amp;quot;A(g,c)&amp;quot;&lt;br /&gt;
shows     &amp;quot;A(p,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 0:&amp;quot;B(l)&amp;quot; using b..&lt;br /&gt;
  have 1:&amp;quot;B(p)∧B(c)∧B(g)&amp;quot; using b..&lt;br /&gt;
  hence &amp;quot;B(p)&amp;quot;..&lt;br /&gt;
  have 2:&amp;quot;B(c)∧B(g)&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;B(c)&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;B(c)∧A(g,c)&amp;quot;using c..&lt;br /&gt;
  have &amp;quot;B(g)&amp;quot; using 2..&lt;br /&gt;
  hence &amp;quot;B(g)∧B(c)∧A(g,c)&amp;quot; using 3..&lt;br /&gt;
  hence 4:&amp;quot;(∃x. (B(g)∧B(x)∧A(g,x)))&amp;quot;..&lt;br /&gt;
  have &amp;quot;((∃y. B(g)∧B(y)∧A(g,y)))⟶ (∀z. B(z)⟶A(z,g))&amp;quot; using a..&lt;br /&gt;
  hence &amp;quot;(∀z. B(z)⟶A(z,g))&amp;quot; using 4 by (rule mp)&lt;br /&gt;
  hence &amp;quot;B(l)⟶A(l,g)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;A(l,g)&amp;quot; using 0..&lt;br /&gt;
  with `B(g)`have &amp;quot;B(g)∧A(l,g)&amp;quot;..&lt;br /&gt;
  with 0 have &amp;quot;B(l)∧B(g)∧A(l,g)&amp;quot;..   &lt;br /&gt;
  hence 5:&amp;quot;(∃x. (B(l)∧B(x)∧A(l,x)))&amp;quot;..&lt;br /&gt;
  have &amp;quot;((∃y. B(l)∧B(y)∧A(l,y)))⟶ (∀z. B(z)⟶A(z,l))&amp;quot; using a..&lt;br /&gt;
  hence &amp;quot;(∀z. B(z)⟶A(z,l))&amp;quot; using 5..&lt;br /&gt;
  hence &amp;quot;B(p)⟶A(p,l)&amp;quot;..&lt;br /&gt;
  thus ?thesis using `B(p)`..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20c:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(A(c,x) ⟷ (C(x) ∧ ¬A(x,x)))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∃x. A(c,x))&amp;quot; &lt;br /&gt;
proof &lt;br /&gt;
  have 3:&amp;quot;A(c,c)⟷(C(c)∧¬A(c,c))&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬A(c,c) ∨ A(c,c)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;¬A(c,c)&amp;quot;&lt;br /&gt;
    with 2 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    with 3 have &amp;quot;A(c,c)&amp;quot;..&lt;br /&gt;
    with a have False..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;A(c,c)&amp;quot;&lt;br /&gt;
    with 3 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence False using a..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 3:&amp;quot;∀x. (∃y. (F(y)∧D(x,y)))&amp;quot;&lt;br /&gt;
  obtain a where  &amp;quot;∃y. P(y)∧¬D(a,y)&amp;quot;using 2..&lt;br /&gt;
  then obtain b where 4: &amp;quot;P(b)∧¬D(a,b)&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot;((∀y. ((F(y)∧D(a,y)))⟶(∀z. P(z)⟶D(a,z)))) &amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;(∃y. (F(y)∧D(a,y)))&amp;quot; using 3..&lt;br /&gt;
  then obtain c where 7:&amp;quot;(F(c)∧D(a,c))&amp;quot;..&lt;br /&gt;
  have 6:&amp;quot;(F(c)∧D(a,c)⟶(∀z. P(z)⟶D(a,z)))&amp;quot; using 5..&lt;br /&gt;
  have &amp;quot;F(c)∧D(a,c)⟶(P(b)⟶D(a,b))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;F(c)∧D(a,c)&amp;quot;&lt;br /&gt;
    with 6 have &amp;quot;∀z. P(z)⟶D(a,z)&amp;quot;..&lt;br /&gt;
    thus &amp;quot;P(b)⟶D(a,b)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence 8:&amp;quot;P(b)⟶D(a,b)&amp;quot; using 7..&lt;br /&gt;
  have 9: &amp;quot;P(b)&amp;quot; using 4..&lt;br /&gt;
  have &amp;quot;¬D(a,b)&amp;quot; using 4..&lt;br /&gt;
  with 8 have &amp;quot;¬P(b)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 9..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22b:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;∀y. (H(a) ∧ P(a) ∧ P(y))⟶ A(a,y)&amp;quot; using assms..&lt;br /&gt;
  hence 1:&amp;quot;H(a) ∧ P(a) ∧ P(a)⟶ A(a,a)&amp;quot; ..&lt;br /&gt;
  show &amp;quot;H(a) ∧ P(a) ⟶ A(a,a)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume a:&amp;quot;H(a) ∧ P(a)&amp;quot;&lt;br /&gt;
    hence b:&amp;quot;P(a)&amp;quot;..&lt;br /&gt;
    have &amp;quot;H(a)&amp;quot; using a..&lt;br /&gt;
    have &amp;quot;P(a)∧P(a)&amp;quot; using  b b..&lt;br /&gt;
    with `H(a)`have &amp;quot;H(a) ∧ P(a) ∧ P(a)&amp;quot;..&lt;br /&gt;
    with 1 show &amp;quot;A(a,a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24f:&lt;br /&gt;
  assumes a: &amp;quot;∀x. ((L(x)∨Z(x)∨Pa(x)∨Or(x)∨Ca(x)) ⟶ A(x))&amp;quot; and&lt;br /&gt;
          b: &amp;quot;(∃x. L(x))∧(∃x. Z(x))∧(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot; and&lt;br /&gt;
          c: &amp;quot;(∃x. S(x))∧(∀x. S(x)⟶Pl(x))&amp;quot;and&lt;br /&gt;
          d: &amp;quot;∀x. (A(x)⟶((∀y. Pl(y)⟶Co(x,y))∨(∀y. A(y)∧M(y,x)∧(∃z. Pl(z)∧Co(y,z))⟶Co(x,y))))&amp;quot;and&lt;br /&gt;
          e: &amp;quot;∀x. ∀y.(Pa(y)∧(Or(x)∨Ca(x))⟶M(x,y))∧((Pa(y)∧Z(x))⟶M(y,x))∧((Z(y)∧L(x))⟶M(y,x))&amp;quot; and&lt;br /&gt;
          f: &amp;quot;∀x. ∀y.(L(y)∧(S(x)∨Z(x))⟶ ¬Co(y,x))∧((Pa(x)∧Or(y))⟶Co(x,y))∧((Pa(x)∧Ca(y))⟶¬Co(x,y))&amp;quot; and&lt;br /&gt;
          g: &amp;quot;∀x. (Or(x)∨Ca(x))⟶ (∃y. Pl(y)∧Co(x,y))&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. ∃y. ∃z. (A(x)∧A(y)∧Pl(z)∧Co(x,y)∧Co(y,z))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;∃x. S(x)&amp;quot; using c..&lt;br /&gt;
  then obtain s where 1: &amp;quot;S(s)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(∀x. S(x)⟶Pl(x))&amp;quot; using c..&lt;br /&gt;
  hence &amp;quot;S(s)⟶Pl(s)&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;Pl(s)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;(∃x. L(x))&amp;quot; using b..&lt;br /&gt;
  then obtain l where 3: &amp;quot;L(l)&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;L(l)∨Z(l)∨Pa(l)∨Or(l)∨Ca(l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(L(l)∨Z(l)∨Pa(l)∨Or(l)∨Ca(l))⟶A(l)&amp;quot;using a..&lt;br /&gt;
  hence 5:&amp;quot;A(l)&amp;quot; using 4..&lt;br /&gt;
  have &amp;quot;(A(l)⟶((∀y. Pl(y)⟶Co(l,y))∨(∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y))))&amp;quot; using d..&lt;br /&gt;
  hence &amp;quot;((∀y. Pl(y)⟶Co(l,y))∨((∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y))))&amp;quot; using 5..&lt;br /&gt;
  have 6:&amp;quot;(∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y))&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    note `((∀y. Pl(y)⟶Co(l,y))∨((∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y))))`&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;(∀y. Pl(y)⟶Co(l,y))&amp;quot;&lt;br /&gt;
      hence &amp;quot;Pl(s)⟶Co(l,s)&amp;quot;..&lt;br /&gt;
      hence 6:&amp;quot;Co(l,s)&amp;quot; using 2..&lt;br /&gt;
      have &amp;quot;∀y.(L(y)∧(S(s)∨Z(s))⟶ ¬Co(y,s))∧((Pa(s)∧Or(y))⟶Co(s,y))∧((Pa(s)∧Ca(y))⟶¬Co(s,y))&amp;quot; using f..&lt;br /&gt;
      hence &amp;quot;(L(l)∧(S(s)∨Z(s))⟶ ¬Co(l,s))∧((Pa(s)∧Or(l))⟶Co(s,l))∧((Pa(s)∧Ca(l))⟶¬Co(s,l))&amp;quot;..&lt;br /&gt;
      hence 7:&amp;quot;(L(l)∧(S(s)∨Z(s))⟶ ¬Co(l,s))&amp;quot;..&lt;br /&gt;
      have &amp;quot;S(s)∨Z(s)&amp;quot; using `S(s)`..&lt;br /&gt;
      with 3 have &amp;quot;(L(l)∧(S(s)∨Z(s)))&amp;quot;..&lt;br /&gt;
      with 7 have &amp;quot;¬Co(l,s)&amp;quot;..&lt;br /&gt;
      hence False using 6..&lt;br /&gt;
      hence &amp;quot;((∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y)))&amp;quot;..}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;((∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y)))&amp;quot;..&lt;br /&gt;
  qed (*Hasta aquí hemos demostrado que el lobo se come a todos los hervíboros más pequeños que él*)&lt;br /&gt;
  have &amp;quot;(∃x. Z(x))∧(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot; using b..&lt;br /&gt;
  hence &amp;quot;(∃x. Z(x))&amp;quot;..&lt;br /&gt;
  then obtain z where 7: &amp;quot;Z(z)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Z(z)∨Pa(z)∨Or(z)∨Ca(z)&amp;quot;..&lt;br /&gt;
  hence 8:&amp;quot;L(z)∨Z(z)∨Pa(z)∨Or(z)∨Ca(z)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(L(z)∨Z(z)∨Pa(z)∨Or(z)∨Ca(z))⟶A(z)&amp;quot;using a..&lt;br /&gt;
  hence 9:&amp;quot;A(z)&amp;quot; using 8..&lt;br /&gt;
  have &amp;quot;(A(z)⟶((∀y. Pl(y)⟶Co(z,y))∨(∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))))&amp;quot; using d..&lt;br /&gt;
  hence &amp;quot;((∀y. Pl(y)⟶Co(z,y))∨((∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))))&amp;quot; using 9..&lt;br /&gt;
  have zorro:&amp;quot;(∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    note `((∀y. Pl(y)⟶Co(z,y))∨((∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))))`&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;(∀y. Pl(y)⟶Co(z,y))&amp;quot;&lt;br /&gt;
      hence &amp;quot;Pl(s)⟶Co(z,s)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Co(z,s)&amp;quot; using 2..&lt;br /&gt;
      with 2 have 10:&amp;quot;Pl(s)∧Co(z,s)&amp;quot;..&lt;br /&gt;
      hence 10:&amp;quot;∃x. Pl(x)∧Co(z,x)&amp;quot;..&lt;br /&gt;
      have 11:&amp;quot;Z(z)∧L(l)&amp;quot; using `Z(z)` `L(l)`..&lt;br /&gt;
      have &amp;quot;∀y.(Pa(y)∧(Or(l)∨Ca(l))⟶M(l,y))∧((Pa(y)∧Z(l))⟶M(y,l))∧((Z(y)∧L(l))⟶M(y,l))&amp;quot; using e..&lt;br /&gt;
      hence &amp;quot;(Pa(z)∧(Or(l)∨Ca(l))⟶M(l,z))∧((Pa(z)∧Z(l))⟶M(z,l))∧((Z(z)∧L(l))⟶M(z,l))&amp;quot;..&lt;br /&gt;
      hence &amp;quot;((Pa(z)∧Z(l))⟶M(z,l))∧((Z(z)∧L(l))⟶M(z,l))&amp;quot;..&lt;br /&gt;
      hence &amp;quot;((Z(z)∧L(l))⟶M(z,l))&amp;quot;..&lt;br /&gt;
      hence 12:&amp;quot;M(z,l)&amp;quot; using 11..&lt;br /&gt;
      have 13:&amp;quot;(A(z)∧M(z,l)∧(∃w. Pl(w)∧Co(z,w))⟶Co(l,z))&amp;quot; using 6..&lt;br /&gt;
      have &amp;quot;M(z,l)∧(∃x. Pl(x)∧Co(z,x))&amp;quot; using 12 10..&lt;br /&gt;
      with 9 have &amp;quot;(A(z)∧M(z,l)∧(∃w. Pl(w)∧Co(z,w)))&amp;quot;..&lt;br /&gt;
      with 13 have 14:&amp;quot;Co(l,z)&amp;quot;..&lt;br /&gt;
      have &amp;quot;∀y.(L(y)∧(S(z)∨Z(z))⟶ ¬Co(y,z))∧((Pa(z)∧Or(y))⟶Co(z,y))∧((Pa(z)∧Ca(y))⟶¬Co(z,y))&amp;quot; using f..&lt;br /&gt;
      hence &amp;quot;(L(l)∧(S(z)∨Z(z))⟶ ¬Co(l,z))∧((Pa(z)∧Or(l))⟶Co(z,l))∧((Pa(z)∧Ca(l))⟶¬Co(z,l))&amp;quot;..&lt;br /&gt;
      hence 7:&amp;quot;(L(l)∧(S(z)∨Z(z))⟶ ¬Co(l,z))&amp;quot;..&lt;br /&gt;
      have &amp;quot;S(z)∨Z(z)&amp;quot; using `Z(z)`..&lt;br /&gt;
      with 3 have &amp;quot;(L(l)∧(S(z)∨Z(z)))&amp;quot;..&lt;br /&gt;
      with 7 have &amp;quot;¬Co(l,z)&amp;quot;..&lt;br /&gt;
      hence False using 14..&lt;br /&gt;
      hence &amp;quot;(∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))&amp;quot;..}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;(∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))&amp;quot;..&lt;br /&gt;
    qed (*Aquí vemos que el zorro también se como a los hervíboros más pequeños *)&lt;br /&gt;
    have &amp;quot;(∃x. Z(x))∧(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot; using b..&lt;br /&gt;
    hence &amp;quot;(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. Pa(x))&amp;quot;..&lt;br /&gt;
    then obtain p where 15: &amp;quot;Pa(p)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;Pa(p)∨Or(p)∨Ca(p)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;Z(p)∨Pa(p)∨Or(p)∨Ca(p)&amp;quot;..&lt;br /&gt;
    hence 16:&amp;quot;L(p)∨Z(p)∨Pa(p)∨Or(p)∨Ca(p)&amp;quot;..&lt;br /&gt;
    have &amp;quot;(L(p)∨Z(p)∨Pa(p)∨Or(p)∨Ca(p))⟶A(p)&amp;quot;using a..&lt;br /&gt;
    hence 17:&amp;quot;A(p)&amp;quot; using 16..&lt;br /&gt;
    have &amp;quot;(A(p)⟶((∀y. Pl(y)⟶Co(p,y))∨(∀y. A(y)∧M(y,p)∧(∃z. Pl(z)∧Co(y,z))⟶Co(p,y))))&amp;quot; using d..&lt;br /&gt;
    hence &amp;quot;((∀y. Pl(y)⟶Co(p,y))∨((∀y. A(y)∧M(y,p)∧(∃z. Pl(z)∧Co(y,z))⟶Co(p,y))))&amp;quot; using 17..&lt;br /&gt;
    have &amp;quot;(∀y. Pl(y)⟶Co(p,y))&amp;quot;&lt;br /&gt;
    proof -&lt;br /&gt;
      note `((∀y. Pl(y)⟶Co(p,y))∨((∀y. A(y)∧M(y,p)∧(∃z. Pl(z)∧Co(y,z))⟶Co(p,y))))`&lt;br /&gt;
      moreover&lt;br /&gt;
      {assume as: &amp;quot;(∀y. Pl(y)⟶Co(p,y))&amp;quot;&lt;br /&gt;
        hence &amp;quot;(∀y. Pl(y)⟶Co(p,y))&amp;quot;.}&lt;br /&gt;
      moreover&lt;br /&gt;
      {assume as:&amp;quot;((∀y. A(y)∧M(y,p)∧(∃z. Pl(z)∧Co(y,z))⟶Co(p,y)))&amp;quot;&lt;br /&gt;
        have &amp;quot;(∃x. Z(x))∧(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot; using b..&lt;br /&gt;
        hence &amp;quot;(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot;..&lt;br /&gt;
        hence &amp;quot;(∃x. Or(x))∧(∃x. Ca(x))&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. Ca(x)&amp;quot;..&lt;br /&gt;
        then obtain c where 18: &amp;quot;Ca(c)&amp;quot;..&lt;br /&gt;
        hence &amp;quot;Or(c)∨Ca(c)&amp;quot;..&lt;br /&gt;
        hence &amp;quot;Pa(c)∨Or(c)∨Ca(c)&amp;quot;..&lt;br /&gt;
        hence &amp;quot;Z(c)∨Pa(c)∨Or(c)∨Ca(c)&amp;quot;..&lt;br /&gt;
        hence 19:&amp;quot;L(c)∨Z(c)∨Pa(c)∨Or(c)∨Ca(c)&amp;quot;..&lt;br /&gt;
        have &amp;quot;(L(c)∨Z(c)∨Pa(c)∨Or(c)∨Ca(c))⟶A(c)&amp;quot;using a..&lt;br /&gt;
        hence 20:&amp;quot;A(c)&amp;quot; using 19..&lt;br /&gt;
        have &amp;quot;∀y.(Pa(y)∧(Or(c)∨Ca(c))⟶M(c,y))∧((Pa(y)∧Z(c))⟶M(y,c))∧((Z(y)∧L(c))⟶M(y,c))&amp;quot;using e..&lt;br /&gt;
        hence &amp;quot;(Pa(p)∧(Or(c)∨Ca(c))⟶M(c,p))∧((Pa(p)∧Z(c))⟶M(p,c))∧((Z(p)∧L(c))⟶M(p,c))&amp;quot;..&lt;br /&gt;
        hence 21:&amp;quot;(Pa(p)∧(Or(c)∨Ca(c))⟶M(c,p))&amp;quot;..&lt;br /&gt;
        have 22:&amp;quot;(Or(c)∨Ca(c))&amp;quot; using `Ca(c)`..&lt;br /&gt;
        with 15 have &amp;quot;(Pa(p)∧(Or(c)∨Ca(c)))&amp;quot;..&lt;br /&gt;
        with 21 have 23:&amp;quot;M(c,p)&amp;quot;..&lt;br /&gt;
        have &amp;quot;(Or(c)∨Ca(c))⟶ (∃y. Pl(y)∧Co(c,y))&amp;quot; using g..&lt;br /&gt;
        hence 24:&amp;quot;(∃y. Pl(y)∧Co(c,y))&amp;quot; using 22..&lt;br /&gt;
        with 23 have &amp;quot;M(c,p)∧(∃y. Pl(y)∧Co(c,y))&amp;quot;..&lt;br /&gt;
        with 20 have 25:&amp;quot;A(c)∧M(c,p)∧(∃y. Pl(y)∧Co(c,y))&amp;quot;..&lt;br /&gt;
        have &amp;quot;((A(c)∧M(c,p)∧(∃z. Pl(z)∧Co(c,z))⟶Co(p,c)))&amp;quot; using as..&lt;br /&gt;
        hence 26:&amp;quot;Co(p,c)&amp;quot; using 25..&lt;br /&gt;
        have &amp;quot;∀y.(L(y)∧(S(p)∨Z(p))⟶ ¬Co(y,p))∧((Pa(p)∧Or(y))⟶Co(p,y))∧((Pa(p)∧Ca(y))⟶¬Co(p,y))&amp;quot; using f..&lt;br /&gt;
        hence &amp;quot;(L(c)∧(S(p)∨Z(p))⟶ ¬Co(c,p))∧((Pa(p)∧Or(c))⟶Co(p,c))∧((Pa(p)∧Ca(c))⟶¬Co(p,c))&amp;quot;..&lt;br /&gt;
        hence &amp;quot;((Pa(p)∧Or(c))⟶Co(p,c))∧((Pa(p)∧Ca(c))⟶¬Co(p,c))&amp;quot;..&lt;br /&gt;
        hence 27:&amp;quot;((Pa(p)∧Ca(c))⟶¬Co(p,c))&amp;quot;..&lt;br /&gt;
        have &amp;quot;Pa(p)∧Ca(c)&amp;quot; using 15 18..&lt;br /&gt;
        with 27 have &amp;quot;¬Co(p,c)&amp;quot;..&lt;br /&gt;
        hence False using 26..&lt;br /&gt;
        hence &amp;quot;(∀y. Pl(y)⟶Co(p,y))&amp;quot;..}&lt;br /&gt;
      ultimately&lt;br /&gt;
      show &amp;quot;(∀y. Pl(y)⟶Co(p,y))&amp;quot;..&lt;br /&gt;
    qed (*Hemos demostrado que el pájaro se come todas las semillas*)&lt;br /&gt;
    hence &amp;quot;Pl(s)⟶Co(p,s)&amp;quot;..&lt;br /&gt;
    hence 28:&amp;quot;Co(p,s)&amp;quot; using 2..&lt;br /&gt;
    with 2 have &amp;quot;Pl(s)∧Co(p,s)&amp;quot;..&lt;br /&gt;
    hence 29:&amp;quot;∃w. Pl(w)∧Co(p,w)&amp;quot;..&lt;br /&gt;
    have 30:&amp;quot;(Pa(p)∧Z(z))&amp;quot; using 15 7..&lt;br /&gt;
    have &amp;quot;∀y.(Pa(y)∧(Or(z)∨Ca(z))⟶M(z,y))∧((Pa(y)∧Z(z))⟶M(y,z))∧((Z(y)∧L(z))⟶M(y,z))&amp;quot; using e..&lt;br /&gt;
    hence &amp;quot;(Pa(p)∧(Or(z)∨Ca(z))⟶M(z,p))∧((Pa(p)∧Z(z))⟶M(p,z))∧((Z(p)∧L(z))⟶M(p,z))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;((Pa(p)∧Z(z))⟶M(p,z))∧((Z(p)∧L(z))⟶M(p,z))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;((Pa(p)∧Z(z))⟶M(p,z))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;M(p,z)&amp;quot; using 30..&lt;br /&gt;
    hence &amp;quot;M(p,z)∧(∃w. Pl(w)∧Co(p,w))&amp;quot; using 29..&lt;br /&gt;
    with 17 have 31:&amp;quot;A(p)∧M(p,z)∧(∃w. Pl(w)∧Co(p,w))&amp;quot;..&lt;br /&gt;
    have &amp;quot;A(p)∧M(p,z)∧(∃w. Pl(w)∧Co(p,w))⟶Co(z,p)&amp;quot; using zorro ..&lt;br /&gt;
    hence 32:&amp;quot;Co(z,p)&amp;quot; using 31..&lt;br /&gt;
    hence &amp;quot;Co(z,p)∧Co(p,s)&amp;quot; using 28..&lt;br /&gt;
    with 2 have &amp;quot;Pl(s)∧Co(z,p)∧Co(p,s)&amp;quot;..&lt;br /&gt;
    with 17 have &amp;quot;A(p)∧Pl(s)∧Co(z,p)∧Co(p,s)&amp;quot;..&lt;br /&gt;
    with 9 have &amp;quot;A(z)∧A(p)∧Pl(s)∧Co(z,p)∧Co(p,s)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;∃w. (A(z)∧A(p)∧Pl(w)∧Co(z,p)∧Co(p,w))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;∃y. ∃w. (A(z)∧A(y)∧Pl(w)∧Co(z,y)∧Co(y,w))&amp;quot;..&lt;br /&gt;
    thus ?thesis.. (*Ya tenemos que el zorro se come al pájaro que se come las semillas*)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (¬S(x,a)⟶ A(x,r))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;∀x. (A(x,r) ⟶ (∀y. A(y,r)⟶(x=y)))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬S(p,a) ⟶ A(p,r)&amp;quot; using 3..&lt;br /&gt;
  hence 6:&amp;quot;A(p,r)&amp;quot; using 2..&lt;br /&gt;
  have &amp;quot;∀y. (A(c,y)⟷A(y,c))&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;(A(c,r)⟷A(r,c))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;A(c,r)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;(A(p,r) ⟶ (∀y. A(y,r)⟶(p=y)))&amp;quot; using 5..&lt;br /&gt;
  hence &amp;quot;(∀y. A(y,r)⟶(p=y))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;A(c,r)⟶(p=c)&amp;quot;..&lt;br /&gt;
  thus ?thesis using 7..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=360</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=360"/>
		<updated>2013-04-07T10:01:00Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)∧¬A(x,m)))&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. (¬E(x)∨(C(x,m)∧¬R(x)))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11b:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶(C(x,m)∧¬A(x,m))))&amp;quot;&lt;br /&gt;
shows   &amp;quot;¬(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;¬(¬E(a)∨(C(a,m)∧¬R(a)))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;¬¬E(a) ∧ ¬(C(a,m)∧ ¬R(a))&amp;quot; by (rule ejercicio_46)&lt;br /&gt;
  hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
  hence 5:&amp;quot;E(a)&amp;quot; by (rule notnotD)&lt;br /&gt;
  have 6: &amp;quot;¬(C(a,m)∧ ¬R(a))&amp;quot; using 4..&lt;br /&gt;
  hence 7: &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;E(a)⟶C(a,m)∧  ¬A(a,m)&amp;quot; using 3..&lt;br /&gt;
  hence 10:&amp;quot;C(a,m)∧ ¬A(a,m)&amp;quot; using 5..&lt;br /&gt;
  hence 8:&amp;quot;C(a,m)&amp;quot;..&lt;br /&gt;
  show False&lt;br /&gt;
  proof-&lt;br /&gt;
  have &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; using 7.&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬C(a,m)&amp;quot;&lt;br /&gt;
    hence False using 8..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 9:&amp;quot;¬¬R(a)&amp;quot;&lt;br /&gt;
    have &amp;quot;I(a)⟶ ¬R(a)&amp;quot; using 2..&lt;br /&gt;
    hence 11:&amp;quot;¬I(a)&amp;quot; using 9 by (rule mt)&lt;br /&gt;
    have &amp;quot;(∀y. (C(a,y)⟶(A(a,y)∨I(a))))&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;(C(a,m)⟶(A(a,m)∨I(a)))&amp;quot;..&lt;br /&gt;
    hence 12:&amp;quot;(A(a,m)∨I(a))&amp;quot; using 8..&lt;br /&gt;
    have &amp;quot;¬A(a,m)&amp;quot; using 10..&lt;br /&gt;
    with 12 have &amp;quot;I(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
    with 11 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
    obtain a where 5: &amp;quot;∀y.(P(a) ∧ B(a) ∧ (M(y,a) ⟶ B(y)))&amp;quot; using 2..&lt;br /&gt;
    fix b&lt;br /&gt;
    have 6:&amp;quot;(P(a) ∧ B(a) ∧ (M(b,a) ⟶ B(b)))&amp;quot; using 5..&lt;br /&gt;
    have b: &amp;quot;P(a)⟶¬M(a,a)&amp;quot;using 3..&lt;br /&gt;
    have f:&amp;quot;P(a)&amp;quot; using 6..&lt;br /&gt;
    with b have &amp;quot;¬M(a,a)&amp;quot;..&lt;br /&gt;
    have c:&amp;quot;B(a) ∧ (M(b,a) ⟶ B(b))&amp;quot;using 6..&lt;br /&gt;
    hence d:&amp;quot;(M(b,a) ⟶ B(b))&amp;quot;..&lt;br /&gt;
    have e:&amp;quot;B(a)&amp;quot; using c..&lt;br /&gt;
    have &amp;quot;B(a)⟶ ¬N(a)&amp;quot; using 4..&lt;br /&gt;
    hence &amp;quot;¬N(a)&amp;quot; using e..&lt;br /&gt;
    hence g:&amp;quot;¬N(a)∧P(a)&amp;quot; using f..&lt;br /&gt;
    have h: &amp;quot;∃y.(¬N(a) ∧ P(a) ⟶ D(y) ∧ M(y,a))&amp;quot; using 1..&lt;br /&gt;
    then obtain c where i: &amp;quot;(¬N(a) ∧ P(a) ⟶ D(c) ∧ M(c,a))&amp;quot;..&lt;br /&gt;
    hence k:&amp;quot;D(c)∧M(c,a)&amp;quot; using g..&lt;br /&gt;
    hence j:&amp;quot;M(c,a)&amp;quot; ..&lt;br /&gt;
    have l:&amp;quot;D(c)&amp;quot; using k..&lt;br /&gt;
    have &amp;quot;(P(a) ∧ B(a) ∧ (M(c,a) ⟶ B(c)))&amp;quot; using 5..&lt;br /&gt;
    hence &amp;quot;B(a)∧(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;B(c)&amp;quot; using j..&lt;br /&gt;
    with l have &amp;quot;D(c)∧B(c)&amp;quot;..&lt;br /&gt;
    thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20c:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(A(c,x) ⟷ (C(x) ∧ ¬A(x,x)))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∃x. A(c,x))&amp;quot; &lt;br /&gt;
proof &lt;br /&gt;
  have 3:&amp;quot;A(c,c)⟷(C(c)∧¬A(c,c))&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬A(c,c) ∨ A(c,c)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;¬A(c,c)&amp;quot;&lt;br /&gt;
    with 2 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    with 3 have &amp;quot;A(c,c)&amp;quot;..&lt;br /&gt;
    with a have False..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;A(c,c)&amp;quot;&lt;br /&gt;
    with 3 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence False using a..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 3:&amp;quot;∀x. (∃y. (F(y)∧D(x,y)))&amp;quot;&lt;br /&gt;
  obtain a where  &amp;quot;∃y. P(y)∧¬D(a,y)&amp;quot;using 2..&lt;br /&gt;
  then obtain b where 4: &amp;quot;P(b)∧¬D(a,b)&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot;((∀y. ((F(y)∧D(a,y)))⟶(∀z. P(z)⟶D(a,z)))) &amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;(∃y. (F(y)∧D(a,y)))&amp;quot; using 3..&lt;br /&gt;
  then obtain c where 7:&amp;quot;(F(c)∧D(a,c))&amp;quot;..&lt;br /&gt;
  have 6:&amp;quot;(F(c)∧D(a,c)⟶(∀z. P(z)⟶D(a,z)))&amp;quot; using 5..&lt;br /&gt;
  have &amp;quot;F(c)∧D(a,c)⟶(P(b)⟶D(a,b))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;F(c)∧D(a,c)&amp;quot;&lt;br /&gt;
    with 6 have &amp;quot;∀z. P(z)⟶D(a,z)&amp;quot;..&lt;br /&gt;
    thus &amp;quot;P(b)⟶D(a,b)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence 8:&amp;quot;P(b)⟶D(a,b)&amp;quot; using 7..&lt;br /&gt;
  have 9: &amp;quot;P(b)&amp;quot; using 4..&lt;br /&gt;
  have &amp;quot;¬D(a,b)&amp;quot; using 4..&lt;br /&gt;
  with 8 have &amp;quot;¬P(b)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 9..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22b:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;∀y. (H(a) ∧ P(a) ∧ P(y))⟶ A(a,y)&amp;quot; using assms..&lt;br /&gt;
  hence 1:&amp;quot;H(a) ∧ P(a) ∧ P(a)⟶ A(a,a)&amp;quot; ..&lt;br /&gt;
  show &amp;quot;H(a) ∧ P(a) ⟶ A(a,a)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume a:&amp;quot;H(a) ∧ P(a)&amp;quot;&lt;br /&gt;
    hence b:&amp;quot;P(a)&amp;quot;..&lt;br /&gt;
    have &amp;quot;H(a)&amp;quot; using a..&lt;br /&gt;
    have &amp;quot;P(a)∧P(a)&amp;quot; using  b b..&lt;br /&gt;
    with `H(a)`have &amp;quot;H(a) ∧ P(a) ∧ P(a)&amp;quot;..&lt;br /&gt;
    with 1 show &amp;quot;A(a,a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24f:&lt;br /&gt;
  assumes a: &amp;quot;∀x. ((L(x)∨Z(x)∨Pa(x)∨Or(x)∨Ca(x)) ⟶ A(x))&amp;quot; and&lt;br /&gt;
          b: &amp;quot;(∃x. L(x))∧(∃x. Z(x))∧(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot; and&lt;br /&gt;
          c: &amp;quot;(∃x. S(x))∧(∀x. S(x)⟶Pl(x))&amp;quot;and&lt;br /&gt;
          d: &amp;quot;∀x. (A(x)⟶((∀y. Pl(y)⟶Co(x,y))∨(∀y. A(y)∧M(y,x)∧(∃z. Pl(z)∧Co(y,z))⟶Co(x,y))))&amp;quot;and&lt;br /&gt;
          e: &amp;quot;∀x. ∀y.(Pa(y)∧(Or(x)∨Ca(x))⟶M(x,y))∧((Pa(y)∧Z(x))⟶M(y,x))∧((Z(y)∧L(x))⟶M(y,x))&amp;quot; and&lt;br /&gt;
          f: &amp;quot;∀x. ∀y.(L(y)∧(S(x)∨Z(x))⟶ ¬Co(y,x))∧((Pa(x)∧Or(y))⟶Co(x,y))∧((Pa(x)∧Ca(y))⟶¬Co(x,y))&amp;quot; and&lt;br /&gt;
          g: &amp;quot;∀x. (Or(x)∨Ca(x))⟶ (∃y. Pl(y)∧Co(x,y))&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. ∃y. ∃z. (A(x)∧A(y)∧Pl(z)∧Co(x,y)∧Co(y,z))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;∃x. S(x)&amp;quot; using c..&lt;br /&gt;
  then obtain s where 1: &amp;quot;S(s)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(∀x. S(x)⟶Pl(x))&amp;quot; using c..&lt;br /&gt;
  hence &amp;quot;S(s)⟶Pl(s)&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;Pl(s)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;(∃x. L(x))&amp;quot; using b..&lt;br /&gt;
  then obtain l where 3: &amp;quot;L(l)&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;L(l)∨Z(l)∨Pa(l)∨Or(l)∨Ca(l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(L(l)∨Z(l)∨Pa(l)∨Or(l)∨Ca(l))⟶A(l)&amp;quot;using a..&lt;br /&gt;
  hence 5:&amp;quot;A(l)&amp;quot; using 4..&lt;br /&gt;
  have &amp;quot;(A(l)⟶((∀y. Pl(y)⟶Co(l,y))∨(∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y))))&amp;quot; using d..&lt;br /&gt;
  hence &amp;quot;((∀y. Pl(y)⟶Co(l,y))∨((∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y))))&amp;quot; using 5..&lt;br /&gt;
  have 6:&amp;quot;(∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y))&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    note `((∀y. Pl(y)⟶Co(l,y))∨((∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y))))`&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;(∀y. Pl(y)⟶Co(l,y))&amp;quot;&lt;br /&gt;
      hence &amp;quot;Pl(s)⟶Co(l,s)&amp;quot;..&lt;br /&gt;
      hence 6:&amp;quot;Co(l,s)&amp;quot; using 2..&lt;br /&gt;
      have &amp;quot;∀y.(L(y)∧(S(s)∨Z(s))⟶ ¬Co(y,s))∧((Pa(s)∧Or(y))⟶Co(s,y))∧((Pa(s)∧Ca(y))⟶¬Co(s,y))&amp;quot; using f..&lt;br /&gt;
      hence &amp;quot;(L(l)∧(S(s)∨Z(s))⟶ ¬Co(l,s))∧((Pa(s)∧Or(l))⟶Co(s,l))∧((Pa(s)∧Ca(l))⟶¬Co(s,l))&amp;quot;..&lt;br /&gt;
      hence 7:&amp;quot;(L(l)∧(S(s)∨Z(s))⟶ ¬Co(l,s))&amp;quot;..&lt;br /&gt;
      have &amp;quot;S(s)∨Z(s)&amp;quot; using `S(s)`..&lt;br /&gt;
      with 3 have &amp;quot;(L(l)∧(S(s)∨Z(s)))&amp;quot;..&lt;br /&gt;
      with 7 have &amp;quot;¬Co(l,s)&amp;quot;..&lt;br /&gt;
      hence False using 6..&lt;br /&gt;
      hence &amp;quot;((∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y)))&amp;quot;..}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;((∀y. A(y)∧M(y,l)∧(∃z. Pl(z)∧Co(y,z))⟶Co(l,y)))&amp;quot;..&lt;br /&gt;
  qed (*Hasta aquí hemos demostrado que el lobo se come a todos los hervíboros más pequeños que él*)&lt;br /&gt;
  have &amp;quot;(∃x. Z(x))∧(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot; using b..&lt;br /&gt;
  hence &amp;quot;(∃x. Z(x))&amp;quot;..&lt;br /&gt;
  then obtain z where 7: &amp;quot;Z(z)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;Z(z)∨Pa(z)∨Or(z)∨Ca(z)&amp;quot;..&lt;br /&gt;
  hence 8:&amp;quot;L(z)∨Z(z)∨Pa(z)∨Or(z)∨Ca(z)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(L(z)∨Z(z)∨Pa(z)∨Or(z)∨Ca(z))⟶A(z)&amp;quot;using a..&lt;br /&gt;
  hence 9:&amp;quot;A(z)&amp;quot; using 8..&lt;br /&gt;
  have &amp;quot;(A(z)⟶((∀y. Pl(y)⟶Co(z,y))∨(∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))))&amp;quot; using d..&lt;br /&gt;
  hence &amp;quot;((∀y. Pl(y)⟶Co(z,y))∨((∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))))&amp;quot; using 9..&lt;br /&gt;
  have zorro:&amp;quot;(∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    note `((∀y. Pl(y)⟶Co(z,y))∨((∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))))`&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;(∀y. Pl(y)⟶Co(z,y))&amp;quot;&lt;br /&gt;
      hence &amp;quot;Pl(s)⟶Co(z,s)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Co(z,s)&amp;quot; using 2..&lt;br /&gt;
      with 2 have 10:&amp;quot;Pl(s)∧Co(z,s)&amp;quot;..&lt;br /&gt;
      hence 10:&amp;quot;∃x. Pl(x)∧Co(z,x)&amp;quot;..&lt;br /&gt;
      have 11:&amp;quot;Z(z)∧L(l)&amp;quot; using `Z(z)` `L(l)`..&lt;br /&gt;
      have &amp;quot;∀y.(Pa(y)∧(Or(l)∨Ca(l))⟶M(l,y))∧((Pa(y)∧Z(l))⟶M(y,l))∧((Z(y)∧L(l))⟶M(y,l))&amp;quot; using e..&lt;br /&gt;
      hence &amp;quot;(Pa(z)∧(Or(l)∨Ca(l))⟶M(l,z))∧((Pa(z)∧Z(l))⟶M(z,l))∧((Z(z)∧L(l))⟶M(z,l))&amp;quot;..&lt;br /&gt;
      hence &amp;quot;((Pa(z)∧Z(l))⟶M(z,l))∧((Z(z)∧L(l))⟶M(z,l))&amp;quot;..&lt;br /&gt;
      hence &amp;quot;((Z(z)∧L(l))⟶M(z,l))&amp;quot;..&lt;br /&gt;
      hence 12:&amp;quot;M(z,l)&amp;quot; using 11..&lt;br /&gt;
      have 13:&amp;quot;(A(z)∧M(z,l)∧(∃w. Pl(w)∧Co(z,w))⟶Co(l,z))&amp;quot; using 6..&lt;br /&gt;
      have &amp;quot;M(z,l)∧(∃x. Pl(x)∧Co(z,x))&amp;quot; using 12 10..&lt;br /&gt;
      with 9 have &amp;quot;(A(z)∧M(z,l)∧(∃w. Pl(w)∧Co(z,w)))&amp;quot;..&lt;br /&gt;
      with 13 have 14:&amp;quot;Co(l,z)&amp;quot;..&lt;br /&gt;
      have &amp;quot;∀y.(L(y)∧(S(z)∨Z(z))⟶ ¬Co(y,z))∧((Pa(z)∧Or(y))⟶Co(z,y))∧((Pa(z)∧Ca(y))⟶¬Co(z,y))&amp;quot; using f..&lt;br /&gt;
      hence &amp;quot;(L(l)∧(S(z)∨Z(z))⟶ ¬Co(l,z))∧((Pa(z)∧Or(l))⟶Co(z,l))∧((Pa(z)∧Ca(l))⟶¬Co(z,l))&amp;quot;..&lt;br /&gt;
      hence 7:&amp;quot;(L(l)∧(S(z)∨Z(z))⟶ ¬Co(l,z))&amp;quot;..&lt;br /&gt;
      have &amp;quot;S(z)∨Z(z)&amp;quot; using `Z(z)`..&lt;br /&gt;
      with 3 have &amp;quot;(L(l)∧(S(z)∨Z(z)))&amp;quot;..&lt;br /&gt;
      with 7 have &amp;quot;¬Co(l,z)&amp;quot;..&lt;br /&gt;
      hence False using 14..&lt;br /&gt;
      hence &amp;quot;(∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))&amp;quot;..}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;(∀y. A(y)∧M(y,z)∧(∃z. Pl(z)∧Co(y,z))⟶Co(z,y))&amp;quot;..&lt;br /&gt;
    qed (*Aquí vemos que el zorro también se como a los hervíboros más pequeños *)&lt;br /&gt;
    have &amp;quot;(∃x. Z(x))∧(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot; using b..&lt;br /&gt;
    hence &amp;quot;(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(∃x. Pa(x))&amp;quot;..&lt;br /&gt;
    then obtain p where 15: &amp;quot;Pa(p)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;Pa(p)∨Or(p)∨Ca(p)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;Z(p)∨Pa(p)∨Or(p)∨Ca(p)&amp;quot;..&lt;br /&gt;
    hence 16:&amp;quot;L(p)∨Z(p)∨Pa(p)∨Or(p)∨Ca(p)&amp;quot;..&lt;br /&gt;
    have &amp;quot;(L(p)∨Z(p)∨Pa(p)∨Or(p)∨Ca(p))⟶A(p)&amp;quot;using a..&lt;br /&gt;
    hence 17:&amp;quot;A(p)&amp;quot; using 16..&lt;br /&gt;
    have &amp;quot;(A(p)⟶((∀y. Pl(y)⟶Co(p,y))∨(∀y. A(y)∧M(y,p)∧(∃z. Pl(z)∧Co(y,z))⟶Co(p,y))))&amp;quot; using d..&lt;br /&gt;
    hence &amp;quot;((∀y. Pl(y)⟶Co(p,y))∨((∀y. A(y)∧M(y,p)∧(∃z. Pl(z)∧Co(y,z))⟶Co(p,y))))&amp;quot; using 17..&lt;br /&gt;
    have &amp;quot;(∀y. Pl(y)⟶Co(p,y))&amp;quot;&lt;br /&gt;
    proof -&lt;br /&gt;
      note `((∀y. Pl(y)⟶Co(p,y))∨((∀y. A(y)∧M(y,p)∧(∃z. Pl(z)∧Co(y,z))⟶Co(p,y))))`&lt;br /&gt;
      moreover&lt;br /&gt;
      {assume as: &amp;quot;(∀y. Pl(y)⟶Co(p,y))&amp;quot;&lt;br /&gt;
        hence &amp;quot;(∀y. Pl(y)⟶Co(p,y))&amp;quot;.}&lt;br /&gt;
      moreover&lt;br /&gt;
      {assume as:&amp;quot;((∀y. A(y)∧M(y,p)∧(∃z. Pl(z)∧Co(y,z))⟶Co(p,y)))&amp;quot;&lt;br /&gt;
        have &amp;quot;(∃x. Z(x))∧(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot; using b..&lt;br /&gt;
        hence &amp;quot;(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot;..&lt;br /&gt;
        hence &amp;quot;(∃x. Or(x))∧(∃x. Ca(x))&amp;quot;..&lt;br /&gt;
        hence &amp;quot;∃x. Ca(x)&amp;quot;..&lt;br /&gt;
        then obtain c where 18: &amp;quot;Ca(c)&amp;quot;..&lt;br /&gt;
        hence &amp;quot;Or(c)∨Ca(c)&amp;quot;..&lt;br /&gt;
        hence &amp;quot;Pa(c)∨Or(c)∨Ca(c)&amp;quot;..&lt;br /&gt;
        hence &amp;quot;Z(c)∨Pa(c)∨Or(c)∨Ca(c)&amp;quot;..&lt;br /&gt;
        hence 19:&amp;quot;L(c)∨Z(c)∨Pa(c)∨Or(c)∨Ca(c)&amp;quot;..&lt;br /&gt;
        have &amp;quot;(L(c)∨Z(c)∨Pa(c)∨Or(c)∨Ca(c))⟶A(c)&amp;quot;using a..&lt;br /&gt;
        hence 20:&amp;quot;A(c)&amp;quot; using 19..&lt;br /&gt;
        have &amp;quot;∀y.(Pa(y)∧(Or(c)∨Ca(c))⟶M(c,y))∧((Pa(y)∧Z(c))⟶M(y,c))∧((Z(y)∧L(c))⟶M(y,c))&amp;quot;using e..&lt;br /&gt;
        hence &amp;quot;(Pa(p)∧(Or(c)∨Ca(c))⟶M(c,p))∧((Pa(p)∧Z(c))⟶M(p,c))∧((Z(p)∧L(c))⟶M(p,c))&amp;quot;..&lt;br /&gt;
        hence 21:&amp;quot;(Pa(p)∧(Or(c)∨Ca(c))⟶M(c,p))&amp;quot;..&lt;br /&gt;
        have 22:&amp;quot;(Or(c)∨Ca(c))&amp;quot; using `Ca(c)`..&lt;br /&gt;
        with 15 have &amp;quot;(Pa(p)∧(Or(c)∨Ca(c)))&amp;quot;..&lt;br /&gt;
        with 21 have 23:&amp;quot;M(c,p)&amp;quot;..&lt;br /&gt;
        have &amp;quot;(Or(c)∨Ca(c))⟶ (∃y. Pl(y)∧Co(c,y))&amp;quot; using g..&lt;br /&gt;
        hence 24:&amp;quot;(∃y. Pl(y)∧Co(c,y))&amp;quot; using 22..&lt;br /&gt;
        with 23 have &amp;quot;M(c,p)∧(∃y. Pl(y)∧Co(c,y))&amp;quot;..&lt;br /&gt;
        with 20 have 25:&amp;quot;A(c)∧M(c,p)∧(∃y. Pl(y)∧Co(c,y))&amp;quot;..&lt;br /&gt;
        have &amp;quot;((A(c)∧M(c,p)∧(∃z. Pl(z)∧Co(c,z))⟶Co(p,c)))&amp;quot; using as..&lt;br /&gt;
        hence 26:&amp;quot;Co(p,c)&amp;quot; using 25..&lt;br /&gt;
        have &amp;quot;∀y.(L(y)∧(S(p)∨Z(p))⟶ ¬Co(y,p))∧((Pa(p)∧Or(y))⟶Co(p,y))∧((Pa(p)∧Ca(y))⟶¬Co(p,y))&amp;quot; using f..&lt;br /&gt;
        hence &amp;quot;(L(c)∧(S(p)∨Z(p))⟶ ¬Co(c,p))∧((Pa(p)∧Or(c))⟶Co(p,c))∧((Pa(p)∧Ca(c))⟶¬Co(p,c))&amp;quot;..&lt;br /&gt;
        hence &amp;quot;((Pa(p)∧Or(c))⟶Co(p,c))∧((Pa(p)∧Ca(c))⟶¬Co(p,c))&amp;quot;..&lt;br /&gt;
        hence 27:&amp;quot;((Pa(p)∧Ca(c))⟶¬Co(p,c))&amp;quot;..&lt;br /&gt;
        have &amp;quot;Pa(p)∧Ca(c)&amp;quot; using 15 18..&lt;br /&gt;
        with 27 have &amp;quot;¬Co(p,c)&amp;quot;..&lt;br /&gt;
        hence False using 26..&lt;br /&gt;
        hence &amp;quot;(∀y. Pl(y)⟶Co(p,y))&amp;quot;..}&lt;br /&gt;
      ultimately&lt;br /&gt;
      show &amp;quot;(∀y. Pl(y)⟶Co(p,y))&amp;quot;..&lt;br /&gt;
    qed (*Hemos demostrado que el pájaro se come todas las semillas*)&lt;br /&gt;
    hence &amp;quot;Pl(s)⟶Co(p,s)&amp;quot;..&lt;br /&gt;
    hence 28:&amp;quot;Co(p,s)&amp;quot; using 2..&lt;br /&gt;
    with 2 have &amp;quot;Pl(s)∧Co(p,s)&amp;quot;..&lt;br /&gt;
    hence 29:&amp;quot;∃w. Pl(w)∧Co(p,w)&amp;quot;..&lt;br /&gt;
    have 30:&amp;quot;(Pa(p)∧Z(z))&amp;quot; using 15 7..&lt;br /&gt;
    have &amp;quot;∀y.(Pa(y)∧(Or(z)∨Ca(z))⟶M(z,y))∧((Pa(y)∧Z(z))⟶M(y,z))∧((Z(y)∧L(z))⟶M(y,z))&amp;quot; using e..&lt;br /&gt;
    hence &amp;quot;(Pa(p)∧(Or(z)∨Ca(z))⟶M(z,p))∧((Pa(p)∧Z(z))⟶M(p,z))∧((Z(p)∧L(z))⟶M(p,z))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;((Pa(p)∧Z(z))⟶M(p,z))∧((Z(p)∧L(z))⟶M(p,z))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;((Pa(p)∧Z(z))⟶M(p,z))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;M(p,z)&amp;quot; using 30..&lt;br /&gt;
    hence &amp;quot;M(p,z)∧(∃w. Pl(w)∧Co(p,w))&amp;quot; using 29..&lt;br /&gt;
    with 17 have 31:&amp;quot;A(p)∧M(p,z)∧(∃w. Pl(w)∧Co(p,w))&amp;quot;..&lt;br /&gt;
    have &amp;quot;A(p)∧M(p,z)∧(∃w. Pl(w)∧Co(p,w))⟶Co(z,p)&amp;quot; using zorro ..&lt;br /&gt;
    hence 32:&amp;quot;Co(z,p)&amp;quot; using 31..&lt;br /&gt;
    hence &amp;quot;Co(z,p)∧Co(p,s)&amp;quot; using 28..&lt;br /&gt;
    with 2 have &amp;quot;Pl(s)∧Co(z,p)∧Co(p,s)&amp;quot;..&lt;br /&gt;
    with 17 have &amp;quot;A(p)∧Pl(s)∧Co(z,p)∧Co(p,s)&amp;quot;..&lt;br /&gt;
    with 9 have &amp;quot;A(z)∧A(p)∧Pl(s)∧Co(z,p)∧Co(p,s)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;∃w. (A(z)∧A(p)∧Pl(w)∧Co(z,p)∧Co(p,w))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;∃y. ∃w. (A(z)∧A(y)∧Pl(w)∧Co(z,y)∧Co(y,w))&amp;quot;..&lt;br /&gt;
    thus ?thesis.. (*Ya tenemos que el zorro se come al pájaro que se come las semillas*)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (¬S(x,a)⟶ A(x,r))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;∀x. (A(x,r) ⟶ (∀y. A(y,r)⟶(x=y)))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬S(p,a) ⟶ A(p,r)&amp;quot; using 3..&lt;br /&gt;
  hence 6:&amp;quot;A(p,r)&amp;quot; using 2..&lt;br /&gt;
  have &amp;quot;∀y. (A(c,y)⟷A(y,c))&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;(A(c,r)⟷A(r,c))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;A(c,r)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;(A(p,r) ⟶ (∀y. A(y,r)⟶(p=y)))&amp;quot; using 5..&lt;br /&gt;
  hence &amp;quot;(∀y. A(y,r)⟶(p=y))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;A(c,r)⟶(p=c)&amp;quot;..&lt;br /&gt;
  thus ?thesis using 7..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=359</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=359"/>
		<updated>2013-04-07T08:49:42Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)∧¬A(x,m)))&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. (¬E(x)∨(C(x,m)∧¬R(x)))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11b:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶(C(x,m)∧¬A(x,m))))&amp;quot;&lt;br /&gt;
shows   &amp;quot;¬(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;¬(¬E(a)∨(C(a,m)∧¬R(a)))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;¬¬E(a) ∧ ¬(C(a,m)∧ ¬R(a))&amp;quot; by (rule ejercicio_46)&lt;br /&gt;
  hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
  hence 5:&amp;quot;E(a)&amp;quot; by (rule notnotD)&lt;br /&gt;
  have 6: &amp;quot;¬(C(a,m)∧ ¬R(a))&amp;quot; using 4..&lt;br /&gt;
  hence 7: &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;E(a)⟶C(a,m)∧  ¬A(a,m)&amp;quot; using 3..&lt;br /&gt;
  hence 10:&amp;quot;C(a,m)∧ ¬A(a,m)&amp;quot; using 5..&lt;br /&gt;
  hence 8:&amp;quot;C(a,m)&amp;quot;..&lt;br /&gt;
  show False&lt;br /&gt;
  proof-&lt;br /&gt;
  have &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; using 7.&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬C(a,m)&amp;quot;&lt;br /&gt;
    hence False using 8..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 9:&amp;quot;¬¬R(a)&amp;quot;&lt;br /&gt;
    have &amp;quot;I(a)⟶ ¬R(a)&amp;quot; using 2..&lt;br /&gt;
    hence 11:&amp;quot;¬I(a)&amp;quot; using 9 by (rule mt)&lt;br /&gt;
    have &amp;quot;(∀y. (C(a,y)⟶(A(a,y)∨I(a))))&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;(C(a,m)⟶(A(a,m)∨I(a)))&amp;quot;..&lt;br /&gt;
    hence 12:&amp;quot;(A(a,m)∨I(a))&amp;quot; using 8..&lt;br /&gt;
    have &amp;quot;¬A(a,m)&amp;quot; using 10..&lt;br /&gt;
    with 12 have &amp;quot;I(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
    with 11 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
    obtain a where 5: &amp;quot;∀y.(P(a) ∧ B(a) ∧ (M(y,a) ⟶ B(y)))&amp;quot; using 2..&lt;br /&gt;
    fix b&lt;br /&gt;
    have 6:&amp;quot;(P(a) ∧ B(a) ∧ (M(b,a) ⟶ B(b)))&amp;quot; using 5..&lt;br /&gt;
    have b: &amp;quot;P(a)⟶¬M(a,a)&amp;quot;using 3..&lt;br /&gt;
    have f:&amp;quot;P(a)&amp;quot; using 6..&lt;br /&gt;
    with b have &amp;quot;¬M(a,a)&amp;quot;..&lt;br /&gt;
    have c:&amp;quot;B(a) ∧ (M(b,a) ⟶ B(b))&amp;quot;using 6..&lt;br /&gt;
    hence d:&amp;quot;(M(b,a) ⟶ B(b))&amp;quot;..&lt;br /&gt;
    have e:&amp;quot;B(a)&amp;quot; using c..&lt;br /&gt;
    have &amp;quot;B(a)⟶ ¬N(a)&amp;quot; using 4..&lt;br /&gt;
    hence &amp;quot;¬N(a)&amp;quot; using e..&lt;br /&gt;
    hence g:&amp;quot;¬N(a)∧P(a)&amp;quot; using f..&lt;br /&gt;
    have h: &amp;quot;∃y.(¬N(a) ∧ P(a) ⟶ D(y) ∧ M(y,a))&amp;quot; using 1..&lt;br /&gt;
    then obtain c where i: &amp;quot;(¬N(a) ∧ P(a) ⟶ D(c) ∧ M(c,a))&amp;quot;..&lt;br /&gt;
    hence k:&amp;quot;D(c)∧M(c,a)&amp;quot; using g..&lt;br /&gt;
    hence j:&amp;quot;M(c,a)&amp;quot; ..&lt;br /&gt;
    have l:&amp;quot;D(c)&amp;quot; using k..&lt;br /&gt;
    have &amp;quot;(P(a) ∧ B(a) ∧ (M(c,a) ⟶ B(c)))&amp;quot; using 5..&lt;br /&gt;
    hence &amp;quot;B(a)∧(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;B(c)&amp;quot; using j..&lt;br /&gt;
    with l have &amp;quot;D(c)∧B(c)&amp;quot;..&lt;br /&gt;
    thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20c:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(A(c,x) ⟷ (C(x) ∧ ¬A(x,x)))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∃x. A(c,x))&amp;quot; &lt;br /&gt;
proof &lt;br /&gt;
  have 3:&amp;quot;A(c,c)⟷(C(c)∧¬A(c,c))&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬A(c,c) ∨ A(c,c)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;¬A(c,c)&amp;quot;&lt;br /&gt;
    with 2 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    with 3 have &amp;quot;A(c,c)&amp;quot;..&lt;br /&gt;
    with a have False..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;A(c,c)&amp;quot;&lt;br /&gt;
    with 3 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence False using a..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 3:&amp;quot;∀x. (∃y. (F(y)∧D(x,y)))&amp;quot;&lt;br /&gt;
  obtain a where  &amp;quot;∃y. P(y)∧¬D(a,y)&amp;quot;using 2..&lt;br /&gt;
  then obtain b where 4: &amp;quot;P(b)∧¬D(a,b)&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot;((∀y. ((F(y)∧D(a,y)))⟶(∀z. P(z)⟶D(a,z)))) &amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;(∃y. (F(y)∧D(a,y)))&amp;quot; using 3..&lt;br /&gt;
  then obtain c where 7:&amp;quot;(F(c)∧D(a,c))&amp;quot;..&lt;br /&gt;
  have 6:&amp;quot;(F(c)∧D(a,c)⟶(∀z. P(z)⟶D(a,z)))&amp;quot; using 5..&lt;br /&gt;
  have &amp;quot;F(c)∧D(a,c)⟶(P(b)⟶D(a,b))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;F(c)∧D(a,c)&amp;quot;&lt;br /&gt;
    with 6 have &amp;quot;∀z. P(z)⟶D(a,z)&amp;quot;..&lt;br /&gt;
    thus &amp;quot;P(b)⟶D(a,b)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence 8:&amp;quot;P(b)⟶D(a,b)&amp;quot; using 7..&lt;br /&gt;
  have 9: &amp;quot;P(b)&amp;quot; using 4..&lt;br /&gt;
  have &amp;quot;¬D(a,b)&amp;quot; using 4..&lt;br /&gt;
  with 8 have &amp;quot;¬P(b)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 9..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22b:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;∀y. (H(a) ∧ P(a) ∧ P(y))⟶ A(a,y)&amp;quot; using assms..&lt;br /&gt;
  hence 1:&amp;quot;H(a) ∧ P(a) ∧ P(a)⟶ A(a,a)&amp;quot; ..&lt;br /&gt;
  show &amp;quot;H(a) ∧ P(a) ⟶ A(a,a)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume a:&amp;quot;H(a) ∧ P(a)&amp;quot;&lt;br /&gt;
    hence b:&amp;quot;P(a)&amp;quot;..&lt;br /&gt;
    have &amp;quot;H(a)&amp;quot; using a..&lt;br /&gt;
    have &amp;quot;P(a)∧P(a)&amp;quot; using  b b..&lt;br /&gt;
    with `H(a)`have &amp;quot;H(a) ∧ P(a) ∧ P(a)&amp;quot;..&lt;br /&gt;
    with 1 show &amp;quot;A(a,a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24f:&lt;br /&gt;
  assumes a1: &amp;quot;∀x. ((L(x)∨Z(x)∨Pa(x)∨Or(x)∨Ca(x)) ⟶ A(x))&amp;quot; and&lt;br /&gt;
          a2: &amp;quot;(∃x. L(x))∧(∃x. Z(x))∧(∃x. Pa(x))∧(∃x. Or(x))∧(∃x. Ca(x))&amp;quot; and&lt;br /&gt;
          c: &amp;quot;(∃x. S(s))∧(∃x. Pl(x))&amp;quot;and&lt;br /&gt;
          d: &amp;quot;∀x. (A(x)⟶((∀y. Pl(y)⟶Co(x,y))∨(∀y. A(y)∧M(y,x)∧(∃z. Pl(z)∧Co(y,z))⟶Co(x,y))))&amp;quot;and&lt;br /&gt;
          e: &amp;quot;∀x. ∀y.(Pa(y)∧(Or(x)∨Ca(x))⟶M(x,y))∧((Pa(y)∧Z(x))⟶M(y,x))∧((Z(y)∧L(x))⟶M(y,x))&amp;quot; and&lt;br /&gt;
          f: &amp;quot;∀x. ∀y.(L(y)∧(S(x)∨Z(x))⟶ ¬Co(y,x))∧((Pa(x)∧Or(y))⟶Co(x,y))∧((Pa(x)∧Ca(y))⟶¬Co(x,y))&amp;quot; and&lt;br /&gt;
          g: &amp;quot;∀x. (Ca(x)∨Or(x))⟶ (∃y. Pl(y)∧Co(x,y))&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. ∃y. ∃z. (A(x)∧A(y)∧Pl(z)∧Co(x,y)∧Co(y,z))&amp;quot;&lt;br /&gt;
using assms by metis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (¬S(x,a)⟶ A(x,r))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;∀x. (A(x,r) ⟶ (∀y. A(y,r)⟶(x=y)))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬S(p,a) ⟶ A(p,r)&amp;quot; using 3..&lt;br /&gt;
  hence 6:&amp;quot;A(p,r)&amp;quot; using 2..&lt;br /&gt;
  have &amp;quot;∀y. (A(c,y)⟷A(y,c))&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;(A(c,r)⟷A(r,c))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;A(c,r)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;(A(p,r) ⟶ (∀y. A(y,r)⟶(p=y)))&amp;quot; using 5..&lt;br /&gt;
  hence &amp;quot;(∀y. A(y,r)⟶(p=y))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;A(c,r)⟶(p=c)&amp;quot;..&lt;br /&gt;
  thus ?thesis using 7..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=358</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=358"/>
		<updated>2013-04-06T10:30:54Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)∧¬A(x,m)))&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. (¬E(x)∨(C(x,m)∧¬R(x)))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11b:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶(C(x,m)∧¬A(x,m))))&amp;quot;&lt;br /&gt;
shows   &amp;quot;¬(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;¬(¬E(a)∨(C(a,m)∧¬R(a)))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;¬¬E(a) ∧ ¬(C(a,m)∧ ¬R(a))&amp;quot; by (rule ejercicio_46)&lt;br /&gt;
  hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
  hence 5:&amp;quot;E(a)&amp;quot; by (rule notnotD)&lt;br /&gt;
  have 6: &amp;quot;¬(C(a,m)∧ ¬R(a))&amp;quot; using 4..&lt;br /&gt;
  hence 7: &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;E(a)⟶C(a,m)∧  ¬A(a,m)&amp;quot; using 3..&lt;br /&gt;
  hence 10:&amp;quot;C(a,m)∧ ¬A(a,m)&amp;quot; using 5..&lt;br /&gt;
  hence 8:&amp;quot;C(a,m)&amp;quot;..&lt;br /&gt;
  show False&lt;br /&gt;
  proof-&lt;br /&gt;
  have &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; using 7.&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬C(a,m)&amp;quot;&lt;br /&gt;
    hence False using 8..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 9:&amp;quot;¬¬R(a)&amp;quot;&lt;br /&gt;
    have &amp;quot;I(a)⟶ ¬R(a)&amp;quot; using 2..&lt;br /&gt;
    hence 11:&amp;quot;¬I(a)&amp;quot; using 9 by (rule mt)&lt;br /&gt;
    have &amp;quot;(∀y. (C(a,y)⟶(A(a,y)∨I(a))))&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;(C(a,m)⟶(A(a,m)∨I(a)))&amp;quot;..&lt;br /&gt;
    hence 12:&amp;quot;(A(a,m)∨I(a))&amp;quot; using 8..&lt;br /&gt;
    have &amp;quot;¬A(a,m)&amp;quot; using 10..&lt;br /&gt;
    with 12 have &amp;quot;I(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
    with 11 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
    obtain a where 5: &amp;quot;∀y.(P(a) ∧ B(a) ∧ (M(y,a) ⟶ B(y)))&amp;quot; using 2..&lt;br /&gt;
    fix b&lt;br /&gt;
    have 6:&amp;quot;(P(a) ∧ B(a) ∧ (M(b,a) ⟶ B(b)))&amp;quot; using 5..&lt;br /&gt;
    have b: &amp;quot;P(a)⟶¬M(a,a)&amp;quot;using 3..&lt;br /&gt;
    have f:&amp;quot;P(a)&amp;quot; using 6..&lt;br /&gt;
    with b have &amp;quot;¬M(a,a)&amp;quot;..&lt;br /&gt;
    have c:&amp;quot;B(a) ∧ (M(b,a) ⟶ B(b))&amp;quot;using 6..&lt;br /&gt;
    hence d:&amp;quot;(M(b,a) ⟶ B(b))&amp;quot;..&lt;br /&gt;
    have e:&amp;quot;B(a)&amp;quot; using c..&lt;br /&gt;
    have &amp;quot;B(a)⟶ ¬N(a)&amp;quot; using 4..&lt;br /&gt;
    hence &amp;quot;¬N(a)&amp;quot; using e..&lt;br /&gt;
    hence g:&amp;quot;¬N(a)∧P(a)&amp;quot; using f..&lt;br /&gt;
    have h: &amp;quot;∃y.(¬N(a) ∧ P(a) ⟶ D(y) ∧ M(y,a))&amp;quot; using 1..&lt;br /&gt;
    then obtain c where i: &amp;quot;(¬N(a) ∧ P(a) ⟶ D(c) ∧ M(c,a))&amp;quot;..&lt;br /&gt;
    hence k:&amp;quot;D(c)∧M(c,a)&amp;quot; using g..&lt;br /&gt;
    hence j:&amp;quot;M(c,a)&amp;quot; ..&lt;br /&gt;
    have l:&amp;quot;D(c)&amp;quot; using k..&lt;br /&gt;
    have &amp;quot;(P(a) ∧ B(a) ∧ (M(c,a) ⟶ B(c)))&amp;quot; using 5..&lt;br /&gt;
    hence &amp;quot;B(a)∧(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;B(c)&amp;quot; using j..&lt;br /&gt;
    with l have &amp;quot;D(c)∧B(c)&amp;quot;..&lt;br /&gt;
    thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20c:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(A(c,x) ⟷ (C(x) ∧ ¬A(x,x)))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∃x. A(c,x))&amp;quot; &lt;br /&gt;
proof &lt;br /&gt;
  have 3:&amp;quot;A(c,c)⟷(C(c)∧¬A(c,c))&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬A(c,c) ∨ A(c,c)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;¬A(c,c)&amp;quot;&lt;br /&gt;
    with 2 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    with 3 have &amp;quot;A(c,c)&amp;quot;..&lt;br /&gt;
    with a have False..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;A(c,c)&amp;quot;&lt;br /&gt;
    with 3 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence False using a..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 3:&amp;quot;∀x. (∃y. (F(y)∧D(x,y)))&amp;quot;&lt;br /&gt;
  obtain a where  &amp;quot;∃y. P(y)∧¬D(a,y)&amp;quot;using 2..&lt;br /&gt;
  then obtain b where 4: &amp;quot;P(b)∧¬D(a,b)&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot;((∀y. ((F(y)∧D(a,y)))⟶(∀z. P(z)⟶D(a,z)))) &amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;(∃y. (F(y)∧D(a,y)))&amp;quot; using 3..&lt;br /&gt;
  then obtain c where 7:&amp;quot;(F(c)∧D(a,c))&amp;quot;..&lt;br /&gt;
  have 6:&amp;quot;(F(c)∧D(a,c)⟶(∀z. P(z)⟶D(a,z)))&amp;quot; using 5..&lt;br /&gt;
  have &amp;quot;F(c)∧D(a,c)⟶(P(b)⟶D(a,b))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;F(c)∧D(a,c)&amp;quot;&lt;br /&gt;
    with 6 have &amp;quot;∀z. P(z)⟶D(a,z)&amp;quot;..&lt;br /&gt;
    thus &amp;quot;P(b)⟶D(a,b)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence 8:&amp;quot;P(b)⟶D(a,b)&amp;quot; using 7..&lt;br /&gt;
  have 9: &amp;quot;P(b)&amp;quot; using 4..&lt;br /&gt;
  have &amp;quot;¬D(a,b)&amp;quot; using 4..&lt;br /&gt;
  with 8 have &amp;quot;¬P(b)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 9..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22b:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;∀y. (H(a) ∧ P(a) ∧ P(y))⟶ A(a,y)&amp;quot; using assms..&lt;br /&gt;
  hence 1:&amp;quot;H(a) ∧ P(a) ∧ P(a)⟶ A(a,a)&amp;quot; ..&lt;br /&gt;
  show &amp;quot;H(a) ∧ P(a) ⟶ A(a,a)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume a:&amp;quot;H(a) ∧ P(a)&amp;quot;&lt;br /&gt;
    hence b:&amp;quot;P(a)&amp;quot;..&lt;br /&gt;
    have &amp;quot;H(a)&amp;quot; using a..&lt;br /&gt;
    have &amp;quot;P(a)∧P(a)&amp;quot; using  b b..&lt;br /&gt;
    with `H(a)`have &amp;quot;H(a) ∧ P(a) ∧ P(a)&amp;quot;..&lt;br /&gt;
    with 1 show &amp;quot;A(a,a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((L(x)∨Ca(x)∨Or(x)∨Pa(x)∨Z(x))⟶A(x))&amp;quot; and  &amp;quot;(∃x. L(x))∧(∃x. Ca(x))∧(∃x. Or(x))∧(∃x. Pa(x))∧(∃x. Z(x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;(∃x. S(x))∧(∀y. S(y)⟶Pa(y))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x. (A(x) ⟶ ((∀y.∀z.(Pa(z)⟶(A(y)∧M(y,x)∧Co(y,z))⟶Co(x,y))∧(Pa(y)⟶Co(x,y)) )))&amp;quot; and&lt;br /&gt;
        4:&amp;quot;∀x. ((Or(x)∨Ca(x))⟶(∀y. (Pa(y)⟶M(x,y))))&amp;quot; and &amp;quot;∀x. (∀y. ((Z(y)∧Pa(x))⟶M(x,y)))&amp;quot; and &amp;quot;∀x. (∀y. ((L(y)∧Z(x))⟶M(x,y)))&amp;quot;and&lt;br /&gt;
        5:&amp;quot;∀x. ∀y. ∀z. ((L(x)∧S(y)∧Z(z))⟶ (¬Co(x,y)∧ ¬Co(x,z)))&amp;quot; and &amp;quot;∀x. ∀y. ∀z.((Pa(x)∧Or(y)∧Ca(z))⟶ (Co(x,y)∧¬Co(x,z)))&amp;quot; and&lt;br /&gt;
        6:&amp;quot;∀x. ∀y. (∃z. ((Pa(z)∧Ca(x)∧Or(y))⟶(Co(x,z)∨Co(y,z))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (∃y. (∃z. (S(z)∧A(y)∧Co(y,z)∧A(x)∧Co(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (¬S(x,a)⟶ A(x,r))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;∀x. (A(x,r) ⟶ (∀y. A(y,r)⟶(x=y)))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬S(p,a) ⟶ A(p,r)&amp;quot; using 3..&lt;br /&gt;
  hence 6:&amp;quot;A(p,r)&amp;quot; using 2..&lt;br /&gt;
  have &amp;quot;∀y. (A(c,y)⟷A(y,c))&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;(A(c,r)⟷A(r,c))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;A(c,r)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;(A(p,r) ⟶ (∀y. A(y,r)⟶(p=y)))&amp;quot; using 5..&lt;br /&gt;
  hence &amp;quot;(∀y. A(y,r)⟶(p=y))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;A(c,r)⟶(p=c)&amp;quot;..&lt;br /&gt;
  thus ?thesis using 7..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=357</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=357"/>
		<updated>2013-04-06T10:20:26Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)∧¬A(x,m)))&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. (¬E(x)∨(C(x,m)∧¬R(x)))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11b:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶(C(x,m)∧¬A(x,m))))&amp;quot;&lt;br /&gt;
shows   &amp;quot;¬(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;¬(¬E(a)∨(C(a,m)∧¬R(a)))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;¬¬E(a) ∧ ¬(C(a,m)∧ ¬R(a))&amp;quot; by (rule ejercicio_46)&lt;br /&gt;
  hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
  hence 5:&amp;quot;E(a)&amp;quot; by (rule notnotD)&lt;br /&gt;
  have 6: &amp;quot;¬(C(a,m)∧ ¬R(a))&amp;quot; using 4..&lt;br /&gt;
  hence 7: &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;E(a)⟶C(a,m)∧  ¬A(a,m)&amp;quot; using 3..&lt;br /&gt;
  hence 10:&amp;quot;C(a,m)∧ ¬A(a,m)&amp;quot; using 5..&lt;br /&gt;
  hence 8:&amp;quot;C(a,m)&amp;quot;..&lt;br /&gt;
  show False&lt;br /&gt;
  proof-&lt;br /&gt;
  have &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; using 7.&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬C(a,m)&amp;quot;&lt;br /&gt;
    hence False using 8..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 9:&amp;quot;¬¬R(a)&amp;quot;&lt;br /&gt;
    have &amp;quot;I(a)⟶ ¬R(a)&amp;quot; using 2..&lt;br /&gt;
    hence 11:&amp;quot;¬I(a)&amp;quot; using 9 by (rule mt)&lt;br /&gt;
    have &amp;quot;(∀y. (C(a,y)⟶(A(a,y)∨I(a))))&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;(C(a,m)⟶(A(a,m)∨I(a)))&amp;quot;..&lt;br /&gt;
    hence 12:&amp;quot;(A(a,m)∨I(a))&amp;quot; using 8..&lt;br /&gt;
    have &amp;quot;¬A(a,m)&amp;quot; using 10..&lt;br /&gt;
    with 12 have &amp;quot;I(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
    with 11 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
    obtain a where 5: &amp;quot;∀y.(P(a) ∧ B(a) ∧ (M(y,a) ⟶ B(y)))&amp;quot; using 2..&lt;br /&gt;
    fix b&lt;br /&gt;
    have 6:&amp;quot;(P(a) ∧ B(a) ∧ (M(b,a) ⟶ B(b)))&amp;quot; using 5..&lt;br /&gt;
    have b: &amp;quot;P(a)⟶¬M(a,a)&amp;quot;using 3..&lt;br /&gt;
    have f:&amp;quot;P(a)&amp;quot; using 6..&lt;br /&gt;
    with b have &amp;quot;¬M(a,a)&amp;quot;..&lt;br /&gt;
    have c:&amp;quot;B(a) ∧ (M(b,a) ⟶ B(b))&amp;quot;using 6..&lt;br /&gt;
    hence d:&amp;quot;(M(b,a) ⟶ B(b))&amp;quot;..&lt;br /&gt;
    have e:&amp;quot;B(a)&amp;quot; using c..&lt;br /&gt;
    have &amp;quot;B(a)⟶ ¬N(a)&amp;quot; using 4..&lt;br /&gt;
    hence &amp;quot;¬N(a)&amp;quot; using e..&lt;br /&gt;
    hence g:&amp;quot;¬N(a)∧P(a)&amp;quot; using f..&lt;br /&gt;
    have h: &amp;quot;∃y.(¬N(a) ∧ P(a) ⟶ D(y) ∧ M(y,a))&amp;quot; using 1..&lt;br /&gt;
    then obtain c where i: &amp;quot;(¬N(a) ∧ P(a) ⟶ D(c) ∧ M(c,a))&amp;quot;..&lt;br /&gt;
    hence k:&amp;quot;D(c)∧M(c,a)&amp;quot; using g..&lt;br /&gt;
    hence j:&amp;quot;M(c,a)&amp;quot; ..&lt;br /&gt;
    have l:&amp;quot;D(c)&amp;quot; using k..&lt;br /&gt;
    have &amp;quot;(P(a) ∧ B(a) ∧ (M(c,a) ⟶ B(c)))&amp;quot; using 5..&lt;br /&gt;
    hence &amp;quot;B(a)∧(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;B(c)&amp;quot; using j..&lt;br /&gt;
    with l have &amp;quot;D(c)∧B(c)&amp;quot;..&lt;br /&gt;
    thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20c:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(A(c,x) ⟷ (C(x) ∧ ¬A(x,x)))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∃x. A(c,x))&amp;quot; &lt;br /&gt;
proof &lt;br /&gt;
  have 3:&amp;quot;A(c,c)⟷(C(c)∧¬A(c,c))&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬A(c,c) ∨ A(c,c)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;¬A(c,c)&amp;quot;&lt;br /&gt;
    with 2 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    with 3 have &amp;quot;A(c,c)&amp;quot;..&lt;br /&gt;
    with a have False..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;A(c,c)&amp;quot;&lt;br /&gt;
    with 3 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence False using a..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 3:&amp;quot;∀x. (∃y. (F(y)∧D(x,y)))&amp;quot;&lt;br /&gt;
  obtain a where  &amp;quot;∃y. P(y)∧¬D(a,y)&amp;quot;using 2..&lt;br /&gt;
  then obtain b where 4: &amp;quot;P(b)∧¬D(a,b)&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot;((∀y. ((F(y)∧D(a,y)))⟶(∀z. P(z)⟶D(a,z)))) &amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;(∃y. (F(y)∧D(a,y)))&amp;quot; using 3..&lt;br /&gt;
  then obtain c where 7:&amp;quot;(F(c)∧D(a,c))&amp;quot;..&lt;br /&gt;
  have 6:&amp;quot;(F(c)∧D(a,c)⟶(∀z. P(z)⟶D(a,z)))&amp;quot; using 5..&lt;br /&gt;
  have &amp;quot;F(c)∧D(a,c)⟶(P(b)⟶D(a,b))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;F(c)∧D(a,c)&amp;quot;&lt;br /&gt;
    with 6 have &amp;quot;∀z. P(z)⟶D(a,z)&amp;quot;..&lt;br /&gt;
    thus &amp;quot;P(b)⟶D(a,b)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence 8:&amp;quot;P(b)⟶D(a,b)&amp;quot; using 7..&lt;br /&gt;
  have 9: &amp;quot;P(b)&amp;quot; using 4..&lt;br /&gt;
  have &amp;quot;¬D(a,b)&amp;quot; using 4..&lt;br /&gt;
  with 8 have &amp;quot;¬P(b)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 9..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_22b:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;∀y. (H(a) ∧ P(a) ∧ P(y))⟶ A(a,y)&amp;quot; using assms..&lt;br /&gt;
  hence 1:&amp;quot;H(a) ∧ P(a) ∧ P(a)⟶ A(a,a)&amp;quot; ..&lt;br /&gt;
  show &amp;quot;H(a) ∧ P(a) ⟶ A(a,a)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume a:&amp;quot;H(a) ∧ P(a)&amp;quot;&lt;br /&gt;
    hence b:&amp;quot;P(a)&amp;quot;..&lt;br /&gt;
    have &amp;quot;H(a)&amp;quot; using a..&lt;br /&gt;
    have &amp;quot;P(a)∧P(a)&amp;quot; using  b b..&lt;br /&gt;
    with `H(a)`have &amp;quot;H(a) ∧ P(a) ∧ P(a)&amp;quot;..&lt;br /&gt;
    with 1 show &amp;quot;A(a,a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((L(x)∨Ca(x)∨Or(x)∨Pa(x)∨Z(x))⟶A(x))&amp;quot; and  &amp;quot;(∃x. L(x))∧(∃x. Ca(x))∧(∃x. Or(x))∧(∃x. Pa(x))∧(∃x. Z(x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;(∃x. S(x))∧(∀y. S(y)⟶Pa(y))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x. (A(x) ⟶ ((∀y.∀z.(Pa(z)⟶(A(y)∧M(y,x)∧Co(y,z))⟶Co(x,y))∧(Pa(y)⟶Co(x,y)) )))&amp;quot; and&lt;br /&gt;
        4:&amp;quot;∀x. ((Or(x)∨Ca(x))⟶(∀y. (Pa(y)⟶M(x,y))))&amp;quot; and &amp;quot;∀x. (∀y. ((Z(y)∧Pa(x))⟶M(x,y)))&amp;quot; and &amp;quot;∀x. (∀y. ((L(y)∧Z(x))⟶M(x,y)))&amp;quot;and&lt;br /&gt;
        5:&amp;quot;∀x. ∀y. ∀z. ((L(x)∧S(y)∧Z(z))⟶ (¬Co(x,y)∧ ¬Co(x,z)))&amp;quot; and &amp;quot;∀x. ∀y. ∀z.((Pa(x)∧Or(y)∧Ca(z))⟶ (Co(x,y)∧¬Co(x,z)))&amp;quot; and&lt;br /&gt;
        6:&amp;quot;∀x. ∀y. (∃z. ((Pa(z)∧Ca(x)∧Or(y))⟶(Co(x,z)∨Co(y,z))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (∃y. (∃z. (S(z)∧A(y)∧Co(y,z)∧A(x)∧Co(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. ((¬S(x,a))⟶(A(x,r)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;(∃x. A(x,r))⟶(∀y. (A(y,r)⟶(y=x)))&amp;quot;  and&lt;br /&gt;
          &amp;quot;r∧c∧p∧a&amp;quot; (*para que la demostración sea posible*)&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=356</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=356"/>
		<updated>2013-04-06T10:03:18Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)∧¬A(x,m)))&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. (¬E(x)∨(C(x,m)∧¬R(x)))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11b:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶(C(x,m)∧¬A(x,m))))&amp;quot;&lt;br /&gt;
shows   &amp;quot;¬(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;¬(¬E(a)∨(C(a,m)∧¬R(a)))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;¬¬E(a) ∧ ¬(C(a,m)∧ ¬R(a))&amp;quot; by (rule ejercicio_46)&lt;br /&gt;
  hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
  hence 5:&amp;quot;E(a)&amp;quot; by (rule notnotD)&lt;br /&gt;
  have 6: &amp;quot;¬(C(a,m)∧ ¬R(a))&amp;quot; using 4..&lt;br /&gt;
  hence 7: &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;E(a)⟶C(a,m)∧  ¬A(a,m)&amp;quot; using 3..&lt;br /&gt;
  hence 10:&amp;quot;C(a,m)∧ ¬A(a,m)&amp;quot; using 5..&lt;br /&gt;
  hence 8:&amp;quot;C(a,m)&amp;quot;..&lt;br /&gt;
  show False&lt;br /&gt;
  proof-&lt;br /&gt;
  have &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; using 7.&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬C(a,m)&amp;quot;&lt;br /&gt;
    hence False using 8..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 9:&amp;quot;¬¬R(a)&amp;quot;&lt;br /&gt;
    have &amp;quot;I(a)⟶ ¬R(a)&amp;quot; using 2..&lt;br /&gt;
    hence 11:&amp;quot;¬I(a)&amp;quot; using 9 by (rule mt)&lt;br /&gt;
    have &amp;quot;(∀y. (C(a,y)⟶(A(a,y)∨I(a))))&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;(C(a,m)⟶(A(a,m)∨I(a)))&amp;quot;..&lt;br /&gt;
    hence 12:&amp;quot;(A(a,m)∨I(a))&amp;quot; using 8..&lt;br /&gt;
    have &amp;quot;¬A(a,m)&amp;quot; using 10..&lt;br /&gt;
    with 12 have &amp;quot;I(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
    with 11 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
    obtain a where 5: &amp;quot;∀y.(P(a) ∧ B(a) ∧ (M(y,a) ⟶ B(y)))&amp;quot; using 2..&lt;br /&gt;
    fix b&lt;br /&gt;
    have 6:&amp;quot;(P(a) ∧ B(a) ∧ (M(b,a) ⟶ B(b)))&amp;quot; using 5..&lt;br /&gt;
    have b: &amp;quot;P(a)⟶¬M(a,a)&amp;quot;using 3..&lt;br /&gt;
    have f:&amp;quot;P(a)&amp;quot; using 6..&lt;br /&gt;
    with b have &amp;quot;¬M(a,a)&amp;quot;..&lt;br /&gt;
    have c:&amp;quot;B(a) ∧ (M(b,a) ⟶ B(b))&amp;quot;using 6..&lt;br /&gt;
    hence d:&amp;quot;(M(b,a) ⟶ B(b))&amp;quot;..&lt;br /&gt;
    have e:&amp;quot;B(a)&amp;quot; using c..&lt;br /&gt;
    have &amp;quot;B(a)⟶ ¬N(a)&amp;quot; using 4..&lt;br /&gt;
    hence &amp;quot;¬N(a)&amp;quot; using e..&lt;br /&gt;
    hence g:&amp;quot;¬N(a)∧P(a)&amp;quot; using f..&lt;br /&gt;
    have h: &amp;quot;∃y.(¬N(a) ∧ P(a) ⟶ D(y) ∧ M(y,a))&amp;quot; using 1..&lt;br /&gt;
    then obtain c where i: &amp;quot;(¬N(a) ∧ P(a) ⟶ D(c) ∧ M(c,a))&amp;quot;..&lt;br /&gt;
    hence k:&amp;quot;D(c)∧M(c,a)&amp;quot; using g..&lt;br /&gt;
    hence j:&amp;quot;M(c,a)&amp;quot; ..&lt;br /&gt;
    have l:&amp;quot;D(c)&amp;quot; using k..&lt;br /&gt;
    have &amp;quot;(P(a) ∧ B(a) ∧ (M(c,a) ⟶ B(c)))&amp;quot; using 5..&lt;br /&gt;
    hence &amp;quot;B(a)∧(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;B(c)&amp;quot; using j..&lt;br /&gt;
    with l have &amp;quot;D(c)∧B(c)&amp;quot;..&lt;br /&gt;
    thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20c:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(A(c,x) ⟷ (C(x) ∧ ¬A(x,x)))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∃x. A(c,x))&amp;quot; &lt;br /&gt;
proof &lt;br /&gt;
  have 3:&amp;quot;A(c,c)⟷(C(c)∧¬A(c,c))&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬A(c,c) ∨ A(c,c)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;¬A(c,c)&amp;quot;&lt;br /&gt;
    with 2 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    with 3 have &amp;quot;A(c,c)&amp;quot;..&lt;br /&gt;
    with a have False..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;A(c,c)&amp;quot;&lt;br /&gt;
    with 3 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence False using a..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 3:&amp;quot;∀x. (∃y. (F(y)∧D(x,y)))&amp;quot;&lt;br /&gt;
  obtain a where  &amp;quot;∃y. P(y)∧¬D(a,y)&amp;quot;using 2..&lt;br /&gt;
  then obtain b where 4: &amp;quot;P(b)∧¬D(a,b)&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot;((∀y. ((F(y)∧D(a,y)))⟶(∀z. P(z)⟶D(a,z)))) &amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;(∃y. (F(y)∧D(a,y)))&amp;quot; using 3..&lt;br /&gt;
  then obtain c where 7:&amp;quot;(F(c)∧D(a,c))&amp;quot;..&lt;br /&gt;
  have 6:&amp;quot;(F(c)∧D(a,c)⟶(∀z. P(z)⟶D(a,z)))&amp;quot; using 5..&lt;br /&gt;
  have &amp;quot;F(c)∧D(a,c)⟶(P(b)⟶D(a,b))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;F(c)∧D(a,c)&amp;quot;&lt;br /&gt;
    with 6 have &amp;quot;∀z. P(z)⟶D(a,z)&amp;quot;..&lt;br /&gt;
    thus &amp;quot;P(b)⟶D(a,b)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
  hence 8:&amp;quot;P(b)⟶D(a,b)&amp;quot; using 7..&lt;br /&gt;
  have 9: &amp;quot;P(b)&amp;quot; using 4..&lt;br /&gt;
  have &amp;quot;¬D(a,b)&amp;quot; using 4..&lt;br /&gt;
  with 8 have &amp;quot;¬P(b)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 9..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((L(x)∨Ca(x)∨Or(x)∨Pa(x)∨Z(x))⟶A(x))&amp;quot; and  &amp;quot;(∃x. L(x))∧(∃x. Ca(x))∧(∃x. Or(x))∧(∃x. Pa(x))∧(∃x. Z(x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;(∃x. S(x))∧(∀y. S(y)⟶Pa(y))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x. (A(x) ⟶ ((∀y.∀z.(Pa(z)⟶(A(y)∧M(y,x)∧Co(y,z))⟶Co(x,y))∧(Pa(y)⟶Co(x,y)) )))&amp;quot; and&lt;br /&gt;
        4:&amp;quot;∀x. ((Or(x)∨Ca(x))⟶(∀y. (Pa(y)⟶M(x,y))))&amp;quot; and &amp;quot;∀x. (∀y. ((Z(y)∧Pa(x))⟶M(x,y)))&amp;quot; and &amp;quot;∀x. (∀y. ((L(y)∧Z(x))⟶M(x,y)))&amp;quot;and&lt;br /&gt;
        5:&amp;quot;∀x. ∀y. ∀z. ((L(x)∧S(y)∧Z(z))⟶ (¬Co(x,y)∧ ¬Co(x,z)))&amp;quot; and &amp;quot;∀x. ∀y. ∀z.((Pa(x)∧Or(y)∧Ca(z))⟶ (Co(x,y)∧¬Co(x,z)))&amp;quot; and&lt;br /&gt;
        6:&amp;quot;∀x. ∀y. (∃z. ((Pa(z)∧Ca(x)∧Or(y))⟶(Co(x,z)∨Co(y,z))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (∃y. (∃z. (S(z)∧A(y)∧Co(y,z)∧A(x)∧Co(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. ((¬S(x,a))⟶(A(x,r)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;(∃x. A(x,r))⟶(∀y. (A(y,r)⟶(y=x)))&amp;quot;  and&lt;br /&gt;
          &amp;quot;r∧c∧p∧a&amp;quot; (*para que la demostración sea posible*)&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=355</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=355"/>
		<updated>2013-04-06T09:42:19Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)∧¬A(x,m)))&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. (¬E(x)∨(C(x,m)∧¬R(x)))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11b:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶(C(x,m)∧¬A(x,m))))&amp;quot;&lt;br /&gt;
shows   &amp;quot;¬(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;¬(¬E(a)∨(C(a,m)∧¬R(a)))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;¬¬E(a) ∧ ¬(C(a,m)∧ ¬R(a))&amp;quot; by (rule ejercicio_46)&lt;br /&gt;
  hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
  hence 5:&amp;quot;E(a)&amp;quot; by (rule notnotD)&lt;br /&gt;
  have 6: &amp;quot;¬(C(a,m)∧ ¬R(a))&amp;quot; using 4..&lt;br /&gt;
  hence 7: &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;E(a)⟶C(a,m)∧  ¬A(a,m)&amp;quot; using 3..&lt;br /&gt;
  hence 10:&amp;quot;C(a,m)∧ ¬A(a,m)&amp;quot; using 5..&lt;br /&gt;
  hence 8:&amp;quot;C(a,m)&amp;quot;..&lt;br /&gt;
  show False&lt;br /&gt;
  proof-&lt;br /&gt;
  have &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; using 7.&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬C(a,m)&amp;quot;&lt;br /&gt;
    hence False using 8..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 9:&amp;quot;¬¬R(a)&amp;quot;&lt;br /&gt;
    have &amp;quot;I(a)⟶ ¬R(a)&amp;quot; using 2..&lt;br /&gt;
    hence 11:&amp;quot;¬I(a)&amp;quot; using 9 by (rule mt)&lt;br /&gt;
    have &amp;quot;(∀y. (C(a,y)⟶(A(a,y)∨I(a))))&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;(C(a,m)⟶(A(a,m)∨I(a)))&amp;quot;..&lt;br /&gt;
    hence 12:&amp;quot;(A(a,m)∨I(a))&amp;quot; using 8..&lt;br /&gt;
    have &amp;quot;¬A(a,m)&amp;quot; using 10..&lt;br /&gt;
    with 12 have &amp;quot;I(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
    with 11 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
    obtain a where 5: &amp;quot;∀y.(P(a) ∧ B(a) ∧ (M(y,a) ⟶ B(y)))&amp;quot; using 2..&lt;br /&gt;
    fix b&lt;br /&gt;
    have 6:&amp;quot;(P(a) ∧ B(a) ∧ (M(b,a) ⟶ B(b)))&amp;quot; using 5..&lt;br /&gt;
    have b: &amp;quot;P(a)⟶¬M(a,a)&amp;quot;using 3..&lt;br /&gt;
    have f:&amp;quot;P(a)&amp;quot; using 6..&lt;br /&gt;
    with b have &amp;quot;¬M(a,a)&amp;quot;..&lt;br /&gt;
    have c:&amp;quot;B(a) ∧ (M(b,a) ⟶ B(b))&amp;quot;using 6..&lt;br /&gt;
    hence d:&amp;quot;(M(b,a) ⟶ B(b))&amp;quot;..&lt;br /&gt;
    have e:&amp;quot;B(a)&amp;quot; using c..&lt;br /&gt;
    have &amp;quot;B(a)⟶ ¬N(a)&amp;quot; using 4..&lt;br /&gt;
    hence &amp;quot;¬N(a)&amp;quot; using e..&lt;br /&gt;
    hence g:&amp;quot;¬N(a)∧P(a)&amp;quot; using f..&lt;br /&gt;
    have h: &amp;quot;∃y.(¬N(a) ∧ P(a) ⟶ D(y) ∧ M(y,a))&amp;quot; using 1..&lt;br /&gt;
    then obtain c where i: &amp;quot;(¬N(a) ∧ P(a) ⟶ D(c) ∧ M(c,a))&amp;quot;..&lt;br /&gt;
    hence k:&amp;quot;D(c)∧M(c,a)&amp;quot; using g..&lt;br /&gt;
    hence j:&amp;quot;M(c,a)&amp;quot; ..&lt;br /&gt;
    have l:&amp;quot;D(c)&amp;quot; using k..&lt;br /&gt;
    have &amp;quot;(P(a) ∧ B(a) ∧ (M(c,a) ⟶ B(c)))&amp;quot; using 5..&lt;br /&gt;
    hence &amp;quot;B(a)∧(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;B(c)&amp;quot; using j..&lt;br /&gt;
    with l have &amp;quot;D(c)∧B(c)&amp;quot;..&lt;br /&gt;
    thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_20c:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(A(c,x) ⟷ (C(x) ∧ ¬A(x,x)))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬(∃x. A(c,x))&amp;quot; &lt;br /&gt;
proof &lt;br /&gt;
  have 3:&amp;quot;A(c,c)⟷(C(c)∧¬A(c,c))&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬A(c,c) ∨ A(c,c)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;¬A(c,c)&amp;quot;&lt;br /&gt;
    with 2 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    with 3 have &amp;quot;A(c,c)&amp;quot;..&lt;br /&gt;
    with a have False..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;A(c,c)&amp;quot;&lt;br /&gt;
    with 3 have &amp;quot;C(c)∧¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence &amp;quot;¬A(c,c)&amp;quot;..&lt;br /&gt;
    hence False using a..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (P(x)⟶F(x))&amp;quot;       &lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((L(x)∨Ca(x)∨Or(x)∨Pa(x)∨Z(x))⟶A(x))&amp;quot; and  &amp;quot;(∃x. L(x))∧(∃x. Ca(x))∧(∃x. Or(x))∧(∃x. Pa(x))∧(∃x. Z(x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;(∃x. S(x))∧(∀y. S(y)⟶Pa(y))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x. (A(x) ⟶ ((∀y.∀z.(Pa(z)⟶(A(y)∧M(y,x)∧Co(y,z))⟶Co(x,y))∧(Pa(y)⟶Co(x,y)) )))&amp;quot; and&lt;br /&gt;
        4:&amp;quot;∀x. ((Or(x)∨Ca(x))⟶(∀y. (Pa(y)⟶M(x,y))))&amp;quot; and &amp;quot;∀x. (∀y. ((Z(y)∧Pa(x))⟶M(x,y)))&amp;quot; and &amp;quot;∀x. (∀y. ((L(y)∧Z(x))⟶M(x,y)))&amp;quot;and&lt;br /&gt;
        5:&amp;quot;∀x. ∀y. ∀z. ((L(x)∧S(y)∧Z(z))⟶ (¬Co(x,y)∧ ¬Co(x,z)))&amp;quot; and &amp;quot;∀x. ∀y. ∀z.((Pa(x)∧Or(y)∧Ca(z))⟶ (Co(x,y)∧¬Co(x,z)))&amp;quot; and&lt;br /&gt;
        6:&amp;quot;∀x. ∀y. (∃z. ((Pa(z)∧Ca(x)∧Or(y))⟶(Co(x,z)∨Co(y,z))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (∃y. (∃z. (S(z)∧A(y)∧Co(y,z)∧A(x)∧Co(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. ((¬S(x,a))⟶(A(x,r)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;(∃x. A(x,r))⟶(∀y. (A(y,r)⟶(y=x)))&amp;quot;  and&lt;br /&gt;
          &amp;quot;r∧c∧p∧a&amp;quot; (*para que la demostración sea posible*)&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=354</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=354"/>
		<updated>2013-04-06T08:35:53Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)∧¬A(x,m)))&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. (¬E(x)∨(C(x,m)∧¬R(x)))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11b:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶(C(x,m)∧¬A(x,m))))&amp;quot;&lt;br /&gt;
shows   &amp;quot;¬(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;¬(¬E(a)∨(C(a,m)∧¬R(a)))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;¬¬E(a) ∧ ¬(C(a,m)∧ ¬R(a))&amp;quot; by (rule ejercicio_46)&lt;br /&gt;
  hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
  hence 5:&amp;quot;E(a)&amp;quot; by (rule notnotD)&lt;br /&gt;
  have 6: &amp;quot;¬(C(a,m)∧ ¬R(a))&amp;quot; using 4..&lt;br /&gt;
  hence 7: &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;E(a)⟶C(a,m)∧  ¬A(a,m)&amp;quot; using 3..&lt;br /&gt;
  hence 10:&amp;quot;C(a,m)∧ ¬A(a,m)&amp;quot; using 5..&lt;br /&gt;
  hence 8:&amp;quot;C(a,m)&amp;quot;..&lt;br /&gt;
  show False&lt;br /&gt;
  proof-&lt;br /&gt;
  have &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; using 7.&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬C(a,m)&amp;quot;&lt;br /&gt;
    hence False using 8..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 9:&amp;quot;¬¬R(a)&amp;quot;&lt;br /&gt;
    have &amp;quot;I(a)⟶ ¬R(a)&amp;quot; using 2..&lt;br /&gt;
    hence 11:&amp;quot;¬I(a)&amp;quot; using 9 by (rule mt)&lt;br /&gt;
    have &amp;quot;(∀y. (C(a,y)⟶(A(a,y)∨I(a))))&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;(C(a,m)⟶(A(a,m)∨I(a)))&amp;quot;..&lt;br /&gt;
    hence 12:&amp;quot;(A(a,m)∨I(a))&amp;quot; using 8..&lt;br /&gt;
    have &amp;quot;¬A(a,m)&amp;quot; using 10..&lt;br /&gt;
    with 12 have &amp;quot;I(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
    with 11 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
    obtain a where 5: &amp;quot;∀y.(P(a) ∧ B(a) ∧ (M(y,a) ⟶ B(y)))&amp;quot; using 2..&lt;br /&gt;
    fix b&lt;br /&gt;
    have 6:&amp;quot;(P(a) ∧ B(a) ∧ (M(b,a) ⟶ B(b)))&amp;quot; using 5..&lt;br /&gt;
    have b: &amp;quot;P(a)⟶¬M(a,a)&amp;quot;using 3..&lt;br /&gt;
    have f:&amp;quot;P(a)&amp;quot; using 6..&lt;br /&gt;
    with b have &amp;quot;¬M(a,a)&amp;quot;..&lt;br /&gt;
    have c:&amp;quot;B(a) ∧ (M(b,a) ⟶ B(b))&amp;quot;using 6..&lt;br /&gt;
    hence d:&amp;quot;(M(b,a) ⟶ B(b))&amp;quot;..&lt;br /&gt;
    have e:&amp;quot;B(a)&amp;quot; using c..&lt;br /&gt;
    have &amp;quot;B(a)⟶ ¬N(a)&amp;quot; using 4..&lt;br /&gt;
    hence &amp;quot;¬N(a)&amp;quot; using e..&lt;br /&gt;
    hence g:&amp;quot;¬N(a)∧P(a)&amp;quot; using f..&lt;br /&gt;
    have h: &amp;quot;∃y.(¬N(a) ∧ P(a) ⟶ D(y) ∧ M(y,a))&amp;quot; using 1..&lt;br /&gt;
    then obtain c where i: &amp;quot;(¬N(a) ∧ P(a) ⟶ D(c) ∧ M(c,a))&amp;quot;..&lt;br /&gt;
    hence k:&amp;quot;D(c)∧M(c,a)&amp;quot; using g..&lt;br /&gt;
    hence j:&amp;quot;M(c,a)&amp;quot; ..&lt;br /&gt;
    have l:&amp;quot;D(c)&amp;quot; using k..&lt;br /&gt;
    have &amp;quot;(P(a) ∧ B(a) ∧ (M(c,a) ⟶ B(c)))&amp;quot; using 5..&lt;br /&gt;
    hence &amp;quot;B(a)∧(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;(M(c,a) ⟶ B(c))&amp;quot;..&lt;br /&gt;
    hence &amp;quot;B(c)&amp;quot; using j..&lt;br /&gt;
    with l have &amp;quot;D(c)∧B(c)&amp;quot;..&lt;br /&gt;
    thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (P(x)⟶F(x))&amp;quot;       &lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((L(x)∨Ca(x)∨Or(x)∨Pa(x)∨Z(x))⟶A(x))&amp;quot; and  &amp;quot;(∃x. L(x))∧(∃x. Ca(x))∧(∃x. Or(x))∧(∃x. Pa(x))∧(∃x. Z(x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;(∃x. S(x))∧(∀y. S(y)⟶Pa(y))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x. (A(x) ⟶ ((∀y.∀z.(Pa(z)⟶(A(y)∧M(y,x)∧Co(y,z))⟶Co(x,y))∧(Pa(y)⟶Co(x,y)) )))&amp;quot; and&lt;br /&gt;
        4:&amp;quot;∀x. ((Or(x)∨Ca(x))⟶(∀y. (Pa(y)⟶M(x,y))))&amp;quot; and &amp;quot;∀x. (∀y. ((Z(y)∧Pa(x))⟶M(x,y)))&amp;quot; and &amp;quot;∀x. (∀y. ((L(y)∧Z(x))⟶M(x,y)))&amp;quot;and&lt;br /&gt;
        5:&amp;quot;∀x. ∀y. ∀z. ((L(x)∧S(y)∧Z(z))⟶ (¬Co(x,y)∧ ¬Co(x,z)))&amp;quot; and &amp;quot;∀x. ∀y. ∀z.((Pa(x)∧Or(y)∧Ca(z))⟶ (Co(x,y)∧¬Co(x,z)))&amp;quot; and&lt;br /&gt;
        6:&amp;quot;∀x. ∀y. (∃z. ((Pa(z)∧Ca(x)∧Or(y))⟶(Co(x,z)∨Co(y,z))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (∃y. (∃z. (S(z)∧A(y)∧Co(y,z)∧A(x)∧Co(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. ((¬S(x,a))⟶(A(x,r)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;(∃x. A(x,r))⟶(∀y. (A(y,r)⟶(y=x)))&amp;quot;  and&lt;br /&gt;
          &amp;quot;r∧c∧p∧a&amp;quot; (*para que la demostración sea posible*)&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=353</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=353"/>
		<updated>2013-04-05T09:53:22Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)∧¬A(x,m)))&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. (¬E(x)∨(C(x,m)∧¬R(x)))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11b:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶(C(x,m)∧¬A(x,m))))&amp;quot;&lt;br /&gt;
shows   &amp;quot;¬(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∃x. ¬(¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;¬(¬E(a)∨(C(a,m)∧¬R(a)))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;¬¬E(a) ∧ ¬(C(a,m)∧ ¬R(a))&amp;quot; by (rule ejercicio_46)&lt;br /&gt;
  hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
  hence 5:&amp;quot;E(a)&amp;quot; by (rule notnotD)&lt;br /&gt;
  have 6: &amp;quot;¬(C(a,m)∧ ¬R(a))&amp;quot; using 4..&lt;br /&gt;
  hence 7: &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have &amp;quot;E(a)⟶C(a,m)∧  ¬A(a,m)&amp;quot; using 3..&lt;br /&gt;
  hence 10:&amp;quot;C(a,m)∧ ¬A(a,m)&amp;quot; using 5..&lt;br /&gt;
  hence 8:&amp;quot;C(a,m)&amp;quot;..&lt;br /&gt;
  show False&lt;br /&gt;
  proof-&lt;br /&gt;
  have &amp;quot;¬C(a,m) ∨ ¬¬R(a)&amp;quot; using 7.&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume &amp;quot;¬C(a,m)&amp;quot;&lt;br /&gt;
    hence False using 8..}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume 9:&amp;quot;¬¬R(a)&amp;quot;&lt;br /&gt;
    have &amp;quot;I(a)⟶ ¬R(a)&amp;quot; using 2..&lt;br /&gt;
    hence 11:&amp;quot;¬I(a)&amp;quot; using 9 by (rule mt)&lt;br /&gt;
    have &amp;quot;(∀y. (C(a,y)⟶(A(a,y)∨I(a))))&amp;quot; using 1..&lt;br /&gt;
    hence &amp;quot;(C(a,m)⟶(A(a,m)∨I(a)))&amp;quot;..&lt;br /&gt;
    hence 12:&amp;quot;(A(a,m)∨I(a))&amp;quot; using 8..&lt;br /&gt;
    have &amp;quot;¬A(a,m)&amp;quot; using 10..&lt;br /&gt;
    with 12 have &amp;quot;I(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
    with 11 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (P(x)⟶F(x))&amp;quot;       &lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((L(x)∨Ca(x)∨Or(x)∨Pa(x)∨Z(x))⟶A(x))&amp;quot; and  &amp;quot;(∃x. L(x))∧(∃x. Ca(x))∧(∃x. Or(x))∧(∃x. Pa(x))∧(∃x. Z(x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;(∃x. S(x))∧(∀y. S(y)⟶Pa(y))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x. (A(x) ⟶ ((∀y.∀z.(Pa(z)⟶(A(y)∧M(y,x)∧Co(y,z))⟶Co(x,y))∧(Pa(y)⟶Co(x,y)) )))&amp;quot; and&lt;br /&gt;
        4:&amp;quot;∀x. ((Or(x)∨Ca(x))⟶(∀y. (Pa(y)⟶M(x,y))))&amp;quot; and &amp;quot;∀x. (∀y. ((Z(y)∧Pa(x))⟶M(x,y)))&amp;quot; and &amp;quot;∀x. (∀y. ((L(y)∧Z(x))⟶M(x,y)))&amp;quot;and&lt;br /&gt;
        5:&amp;quot;∀x. ∀y. ∀z. ((L(x)∧S(y)∧Z(z))⟶ (¬Co(x,y)∧ ¬Co(x,z)))&amp;quot; and &amp;quot;∀x. ∀y. ∀z.((Pa(x)∧Or(y)∧Ca(z))⟶ (Co(x,y)∧¬Co(x,z)))&amp;quot; and&lt;br /&gt;
        6:&amp;quot;∀x. ∀y. (∃z. ((Pa(z)∧Ca(x)∧Or(y))⟶(Co(x,z)∨Co(y,z))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (∃y. (∃z. (S(z)∧A(y)∧Co(y,z)∧A(x)∧Co(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. ((¬S(x,a))⟶(A(x,r)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;(∃x. A(x,r))⟶(∀y. (A(y,r)⟶(y=x)))&amp;quot;  and&lt;br /&gt;
          &amp;quot;r∧c∧p∧a&amp;quot; (*para que la demostración sea posible*)&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=352</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=352"/>
		<updated>2013-04-04T15:40:58Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. (C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)∧¬A(x,m)))&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. (¬E(x)∨(C(x,m)∧¬R(x)))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (P(x)⟶F(x))&amp;quot;       &lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((L(x)∨Ca(x)∨Or(x)∨Pa(x)∨Z(x))⟶A(x))&amp;quot; and  &amp;quot;(∃x. L(x))∧(∃x. Ca(x))∧(∃x. Or(x))∧(∃x. Pa(x))∧(∃x. Z(x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;(∃x. S(x))∧(∀y. S(y)⟶Pa(y))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x. (A(x) ⟶ ((∀y.∀z.(Pa(z)⟶(A(y)∧M(y,x)∧Co(y,z))⟶Co(x,y))∧(Pa(y)⟶Co(x,y)) )))&amp;quot; and&lt;br /&gt;
        4:&amp;quot;∀x. ((Or(x)∨Ca(x))⟶(∀y. (Pa(y)⟶M(x,y))))&amp;quot; and &amp;quot;∀x. (∀y. ((Z(y)∧Pa(x))⟶M(x,y)))&amp;quot; and &amp;quot;∀x. (∀y. ((L(y)∧Z(x))⟶M(x,y)))&amp;quot;and&lt;br /&gt;
        5:&amp;quot;∀x. ∀y. ∀z. ((L(x)∧S(y)∧Z(z))⟶ (¬Co(x,y)∧ ¬Co(x,z)))&amp;quot; and &amp;quot;∀x. ∀y. ∀z.((Pa(x)∧Or(y)∧Ca(z))⟶ (Co(x,y)∧¬Co(x,z)))&amp;quot; and&lt;br /&gt;
        6:&amp;quot;∀x. ∀y. (∃z. ((Pa(z)∧Ca(x)∧Or(y))⟶(Co(x,z)∨Co(y,z))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (∃y. (∃z. (S(z)∧A(y)∧Co(y,z)∧A(x)∧Co(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. ((¬S(x,a))⟶(A(x,r)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;(∃x. A(x,r))⟶(∀y. (A(y,r)⟶(y=x)))&amp;quot;  and&lt;br /&gt;
          &amp;quot;r∧c∧p∧a&amp;quot; (*para que la demostración sea posible*)&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=351</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=351"/>
		<updated>2013-04-04T15:09:17Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule ejercicio_57)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. ((y≠x)∧C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)))&amp;quot; and&lt;br /&gt;
          &amp;quot;∀x. (x≠m)&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. ((¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (P(x)⟶F(x))&amp;quot;       &lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((L(x)∨Ca(x)∨Or(x)∨Pa(x)∨Z(x))⟶A(x))&amp;quot; and  &amp;quot;(∃x. L(x))∧(∃x. Ca(x))∧(∃x. Or(x))∧(∃x. Pa(x))∧(∃x. Z(x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;(∃x. S(x))∧(∀y. S(y)⟶Pa(y))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x. (A(x) ⟶ ((∀y.∀z.(Pa(z)⟶(A(y)∧M(y,x)∧Co(y,z))⟶Co(x,y))∧(Pa(y)⟶Co(x,y)) )))&amp;quot; and&lt;br /&gt;
        4:&amp;quot;∀x. ((Or(x)∨Ca(x))⟶(∀y. (Pa(y)⟶M(x,y))))&amp;quot; and &amp;quot;∀x. (∀y. ((Z(y)∧Pa(x))⟶M(x,y)))&amp;quot; and &amp;quot;∀x. (∀y. ((L(y)∧Z(x))⟶M(x,y)))&amp;quot;and&lt;br /&gt;
        5:&amp;quot;∀x. ∀y. ∀z. ((L(x)∧S(y)∧Z(z))⟶ (¬Co(x,y)∧ ¬Co(x,z)))&amp;quot; and &amp;quot;∀x. ∀y. ∀z.((Pa(x)∧Or(y)∧Ca(z))⟶ (Co(x,y)∧¬Co(x,z)))&amp;quot; and&lt;br /&gt;
        6:&amp;quot;∀x. ∀y. (∃z. ((Pa(z)∧Ca(x)∧Or(y))⟶(Co(x,z)∨Co(y,z))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (∃y. (∃z. (S(z)∧A(y)∧Co(y,z)∧A(x)∧Co(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. ((¬S(x,a))⟶(A(x,r)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;(∃x. A(x,r))⟶(∀y. (A(y,r)⟶(y=x)))&amp;quot;  and&lt;br /&gt;
          &amp;quot;r∧c∧p∧a&amp;quot; (*para que la demostración sea posible*)&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=350</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=350"/>
		<updated>2013-04-04T14:48:07Z</updated>

		<summary type="html">&lt;p&gt;Pedrosrei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
theory R6&lt;br /&gt;
imports Main R3&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
 &lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;En clase&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
assumes &amp;quot;∀x. (H(x) ⟶ M(x))&amp;quot;&lt;br /&gt;
        &amp;quot;H(s)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 0: &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(1) ..&lt;br /&gt;
thus &amp;quot;M(s)&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
assumes 0:&amp;quot;(∃x. I(x)) ∧ (∃x. T(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (I(x)∧T(x))&amp;quot;&lt;br /&gt;
quickcheck (* Es falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)∧∀y.(V(y)⟶x=y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧∀y.(P(y)⟶x=y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3b:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(P(x)⟶V(x)))&amp;quot;and&lt;br /&gt;
        1: &amp;quot;(∃x.(V(x)⟶ (∀y.(V(y)⟶(x=y)))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(P(x)∧ (∀y.(P(y)⟶(x=y))))&amp;quot;&lt;br /&gt;
quickcheck (*Obviamente vuelve a ser falso *)&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Alejandro Ballesteros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.(E(x)∧¬V(x)⟶∃y.(Ca(y,x)∧A(y)))&amp;quot;&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧∃y.(Ca(y,x)∧Co(y)))&amp;quot;&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶¬V(x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
assumes 0: &amp;quot;(∀x.((E(x)∧(¬V(x)))⟶ (∃y.(Ca(y,x)∧A(y)∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        1: &amp;quot;(∃x.(Co(x)∧E(x)∧(∃y.(Ca(y,x)∧Co(y)∧(A(y))∧(¬(x=y))))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;(∀x.(Co(x)⟶(¬V(x))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x)∧Co(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;(Co(a)∧E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y)))))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;E(a)∧(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  hence 4:&amp;quot;(∃y.(Ca(y,a)∧Co(y)∧(A(y))∧(¬(a=y))))&amp;quot;..&lt;br /&gt;
  obtain  b where 5: &amp;quot;(Ca(b,a)∧Co(b)∧(A(b))∧(¬(a=b)))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;Co(b)∧(A(b))∧(¬(a=b))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Co(b)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(A(b))∧(¬(a=b))&amp;quot;using 6..&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;A(b)∧Co(b)&amp;quot; using 7..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;T(j,m)&amp;quot;&lt;br /&gt;
    &amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_5b:&lt;br /&gt;
  assumes 1:&amp;quot;T(j,m)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;T(j,p)&amp;quot;&lt;br /&gt;
    shows &amp;quot;∃ x. ( T(x,m) ∧ T(x,p)) &amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;T(j,m)∧T(j,p)&amp;quot; using 1 2..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
(* Pedro Ros. Los tres sin número son información adicional para demostrar el problema*)&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;∀x. ∀y.(H(x,y) ⟷H(y,x))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (∃y. (P(y,x)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. ∀y. (P(x,y)⟷(¬P(y,x)))&amp;quot;&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b:&lt;br /&gt;
assumes 1: &amp;quot;∀x. ∀y. (H(x,y)⟶(∃z. (P(z,x)∧P(z,y))))&amp;quot; and&lt;br /&gt;
        2: &amp;quot;H(j,l)&amp;quot; and&lt;br /&gt;
        3: &amp;quot;P(c,l)&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x. ∀y. (P(x,y)⟶ (∀z. (¬(z=x))⟶ ¬P(z,y))))&amp;quot; (* padre sólo hay uno *)&lt;br /&gt;
shows &amp;quot;P(c,j)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶(∃z. (P(z,j)∧P(z,y)))&amp;quot; using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶(∃z. (P(z,j)∧P(z,l)))&amp;quot; ..&lt;br /&gt;
  hence 4:&amp;quot;(∃z. (P(z,j)∧P(z,l)))&amp;quot; using 2 ..&lt;br /&gt;
  assume 6:&amp;quot;¬P(c,j)&amp;quot;&lt;br /&gt;
  obtain t where 5: &amp;quot;P(t,j)∧P(t,l)&amp;quot; using 4..&lt;br /&gt;
  hence 7:&amp;quot;P(t,l)&amp;quot;..&lt;br /&gt;
  have &amp;quot;∀y. P(c,y)⟶ (∀z. (z≠c)⟶ ¬P(z,y))&amp;quot; using assms(4) ..&lt;br /&gt;
  hence &amp;quot;P(c,l)⟶ (∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;(∀z. (z≠c)⟶ ¬P(z,l))&amp;quot; using `P(c,l)` by (rule mp)&lt;br /&gt;
  hence 8:&amp;quot;(t≠c)⟶¬P(t,l)&amp;quot; ..&lt;br /&gt;
  show False using  7 8&lt;br /&gt;
  proof -&lt;br /&gt;
  have &amp;quot;(¬(t=c))∨((t=c))&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t≠c&amp;quot;&lt;br /&gt;
    have &amp;quot;¬P(t,l)&amp;quot; using 8 a ..&lt;br /&gt;
    hence False using 7 by (rule notE)}&lt;br /&gt;
  moreover&lt;br /&gt;
  {assume a:&amp;quot;t=c&amp;quot; &lt;br /&gt;
    have b:&amp;quot;P(t,j)&amp;quot; using 5..&lt;br /&gt;
    have &amp;quot;P(c,j)&amp;quot; using a b by (rule subst)&lt;br /&gt;
    with 6 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
assumes 1:&amp;quot;(∃x. (Pu(x)))⟶ (∀y. (Pr(y)⟶A(y)))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;(∀x. (A(x)⟶ (∀y. (D(y,x)⟶S(y)))))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∃x. (Pu(x)) &amp;quot; and&lt;br /&gt;
        4:&amp;quot;Pr(t)&amp;quot;&lt;br /&gt;
shows     &amp;quot;∀x. (D(x,t)⟶(S(x)))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof-&lt;br /&gt;
obtain a where 5: &amp;quot;Pu(a)&amp;quot; using 3..&lt;br /&gt;
have 6: &amp;quot;∃x. (Pu(x))&amp;quot; using 5 ..&lt;br /&gt;
with 1 have 7: &amp;quot;∀y. Pr(y)⟶ A(y)&amp;quot; ..&lt;br /&gt;
hence 8:&amp;quot;Pr(t)⟶A(t)&amp;quot;..&lt;br /&gt;
hence 9: &amp;quot;A(t)&amp;quot; using 4..&lt;br /&gt;
have 10:&amp;quot;A(t)⟶(∀y. (D(y,t)⟶S(y)))&amp;quot; using 2..&lt;br /&gt;
thus &amp;quot;∀y. D(y,t)⟶S(y)&amp;quot; using 9..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra. No da con-&lt;br /&gt;
traejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
(* Uso esta función más adelante *)&lt;br /&gt;
lemma aux:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p∨p&amp;quot;..&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
    hence &amp;quot;¬p∨¬q&amp;quot;..}&lt;br /&gt;
  moreover&lt;br /&gt;
   {assume &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;¬q∨q&amp;quot;..&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
     hence &amp;quot;¬p∨¬q&amp;quot;..}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;q&amp;quot;&lt;br /&gt;
     with `p`have &amp;quot;p∧q&amp;quot;..&lt;br /&gt;
     with `¬(p∧q)` have &amp;quot;¬p∨¬q&amp;quot;..}&lt;br /&gt;
    ultimately have &amp;quot;¬p∨¬q&amp;quot;..}&lt;br /&gt;
  ultimately show &amp;quot;¬p∨¬q&amp;quot;..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8b:&lt;br /&gt;
assumes 1:&amp;quot;∀x.∃y.(E(x) ∧ ¬P(x) ⟶ A(y) ∧ I(y,x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∃x.∀y.(M(x) ∧ E(x) ∧ (I(y,x) ⟶ M(y)))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x.(M(x) ⟶ ¬P(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ M(x))&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 0:&amp;quot;¬(∃x.(A(x) ∧ M(x)))&amp;quot;&lt;br /&gt;
  obtain a where 4: &amp;quot;∀y.(M(a) ∧ E(a) ∧ (I(y,a) ⟶ M(y)))&amp;quot; using 2..&lt;br /&gt;
  have 11: &amp;quot;∃y.(E(a) ∧ ¬P(a) ⟶ A(y) ∧ I(y,a))&amp;quot; using 1..&lt;br /&gt;
  obtain b where b: &amp;quot;((E(a) ∧ ¬P(a)) ⟶ (A(b) ∧ I(b,a)))&amp;quot; using 11 ..&lt;br /&gt;
  have 5:&amp;quot;¬(A(b)∧M(b))&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬¬ (A(b)∧M(b))&amp;quot;&lt;br /&gt;
      hence &amp;quot;(A(b)∧M(b))&amp;quot; by (rule notnotD)&lt;br /&gt;
      hence &amp;quot;∃x. (A(x)∧M(x))&amp;quot; by (rule exI)&lt;br /&gt;
      with 0 show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  have 6: &amp;quot;(M(a) ∧ E(a) ∧ (I(b,a) ⟶ M(b)))&amp;quot; using 4..&lt;br /&gt;
  have 7: &amp;quot;¬A(b) ∨ ¬M(b)&amp;quot; using 5 by (rule aux)&lt;br /&gt;
  have 17:&amp;quot;E(a) ∧ (I(b,a) ⟶ M(b))&amp;quot; using 6..&lt;br /&gt;
  hence 12:&amp;quot;E(a)&amp;quot;..&lt;br /&gt;
  have 8: &amp;quot;M(a)⟶ ¬P(a)&amp;quot; using 3..&lt;br /&gt;
  have 9: &amp;quot;M(a)&amp;quot; using 6..&lt;br /&gt;
  with 8 have 10: &amp;quot;¬P(a)&amp;quot;..&lt;br /&gt;
  with 12 have 13:&amp;quot;(E(a)∧ ¬P(a))&amp;quot;..&lt;br /&gt;
  have 14:&amp;quot;A(b) ∧ I(b,a)&amp;quot; using b 13 by (rule mp)&lt;br /&gt;
  hence &amp;quot;A(b)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬¬A(b)&amp;quot;by (rule notnotI)&lt;br /&gt;
  with 7 have 15:&amp;quot;¬M(b)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  have 16:&amp;quot;I(b,a)&amp;quot; using 14 ..&lt;br /&gt;
  have 17: &amp;quot;(I(b,a) ⟶ M(b))&amp;quot; using 17..&lt;br /&gt;
  hence &amp;quot;M(b)&amp;quot; using 16 ..&lt;br /&gt;
  with 15 show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) &amp;amp; E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;∀ x. ∀ y. ((Af(x) ∧ E(y))⟶ Ap(x,y)) &amp;quot;&lt;br /&gt;
          &amp;quot;∀y. (E(y) ⟶ (¬Ap(j,y)))&amp;quot;&lt;br /&gt;
  shows &amp;quot;(∃x. (E(x) ∧ N(x))) ⟶(¬Af(j))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1:&amp;quot;(∃x. (E(x) ∧ N(x)))&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;(E(a)∧N(a))&amp;quot; using 1..&lt;br /&gt;
  have 3:&amp;quot;E(a)⟶ (¬Ap(j,a))&amp;quot; using assms(2)..&lt;br /&gt;
  have 0:&amp;quot;E(a)&amp;quot; using 2..&lt;br /&gt;
  with 3 have 4:&amp;quot;(¬Ap(j,a))&amp;quot;..&lt;br /&gt;
  have 5:&amp;quot; ∀ y. ((Af(j) ∧ E(y))⟶ Ap(j,y)) &amp;quot;using assms(1)..&lt;br /&gt;
  hence &amp;quot;((Af(j) ∧ E(a))⟶ Ap(j,a))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;¬(Af(j) ∧ E(a))&amp;quot; using 4 by (rule mt)&lt;br /&gt;
  hence 6:&amp;quot;¬Af(j) ∨ ¬E(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  thus &amp;quot;¬Af(j)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume ?thesis&lt;br /&gt;
    thus ?thesis.&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬E(a)&amp;quot;&lt;br /&gt;
    hence False using 0 ..&lt;br /&gt;
    hence &amp;quot;¬¬E(a)&amp;quot;..&lt;br /&gt;
    with 6 show ?thesis by (rule ejercicio_42)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_10a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_10b:&lt;br /&gt;
assumes &amp;quot;∀x.(A(x) ∧ G(x) ⟶ V(x) ∧ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.(A(x) ∧ V(x) ∧ ¬L(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(A(x) ∧ ¬G(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1:&amp;quot;A(a) ∧ V(a) ∧ ¬L(a)&amp;quot; using assms(2)..&lt;br /&gt;
  have 2: &amp;quot;A(a) ∧ G(a) ⟶ V(a) ∧ L(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have  &amp;quot;V(a)∧¬L(a)&amp;quot; using 1..&lt;br /&gt;
  hence 3: &amp;quot;¬L(a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;¬(V(a)∧L(a))&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;(V(a)∧L(a))&amp;quot; &lt;br /&gt;
    hence &amp;quot;L(a)&amp;quot;..&lt;br /&gt;
    with 3 show False ..&lt;br /&gt;
  qed&lt;br /&gt;
  with 2 have &amp;quot;¬(A(a)∧G(a))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬A(a)∨ ¬G(a)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;A(a)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;¬G(a)&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;A(a)&amp;quot; using 5.&lt;br /&gt;
    hence &amp;quot;¬¬A(a)&amp;quot; by (rule notnotI)&lt;br /&gt;
    with 4 show &amp;quot;¬G(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
  qed&lt;br /&gt;
  with 5 have &amp;quot;A(a)∧ ¬G(a)&amp;quot; ..&lt;br /&gt;
  thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
assumes 1:&amp;quot;∀x. (∀y. ((y≠x)∧C(x,y)⟶(A(x,y)∨I(x))))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;∀x. (I(x)⟶ ¬R(x))&amp;quot; and&lt;br /&gt;
        3:&amp;quot;∀x. ((E(x)⟶C(x,m)))&amp;quot; and&lt;br /&gt;
          &amp;quot;∀x. (x≠m)&amp;quot;&lt;br /&gt;
shows   &amp;quot;∀x. ((¬E(x)∨(C(x,m)∧¬R(x))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Antonio Jesús Molero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot; ∀ x. (¬R(x) ⟶ R(P(x)))&amp;quot;&lt;br /&gt;
  shows  &amp;quot;∃x. (R(x) ∧ R(P (P(x))))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo demuestra y da un con-&lt;br /&gt;
traejemplo.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13a:&lt;br /&gt;
assumes &amp;quot;∀x.(D(x) ∧ (∃y.(S(y) ∧ E(x,y))) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(E(x,x) ⟶ L(x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(D(x) ⟶ ¬E(x,x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.∀y.(D(x) ∧ S(y) ⟶ ¬E(x,y))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14a:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_14b:&lt;br /&gt;
assumes &amp;quot;∀x.∀y.(R(x) ∧ A(y) ⟶ Ob(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;A(a)&amp;quot;&lt;br /&gt;
        &amp;quot;¬Ob(b,a)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬R(b)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume 1:&amp;quot;R(b)&amp;quot;&lt;br /&gt;
  have &amp;quot;∀y. (R(b)∧A(y)⟶ Ob(b,y))&amp;quot; using assms(1) ..&lt;br /&gt;
  hence 2:&amp;quot;(R(b)∧A(a)⟶ Ob(b,a))&amp;quot;..&lt;br /&gt;
  have 3: &amp;quot;R(b)∧A(a)&amp;quot; using 1 assms(2) ..&lt;br /&gt;
  with 2 have &amp;quot;Ob(b,a)&amp;quot;..&lt;br /&gt;
  with assms(3) show False..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15a:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15b:&lt;br /&gt;
assumes &amp;quot;∃x.∀y.(¬C(x,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∃y.(¬C(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.(¬P(x,y))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(T(x))&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
 obtain a where 1:&amp;quot;∀y.(¬C(a,y) ⟶ (∃z.(T(z) ∨ P(z,y))))&amp;quot;using assms(1)..&lt;br /&gt;
 have 2:&amp;quot;∃y. ¬C(a,y)&amp;quot; using assms(2)..&lt;br /&gt;
 obtain b where 3: &amp;quot;¬C(a,b)&amp;quot;using 2..&lt;br /&gt;
 have 4:&amp;quot;(¬C(a,b) ⟶ (∃z.(T(z) ∨ P(z,b))))&amp;quot; using 1..&lt;br /&gt;
 hence 5:&amp;quot;(∃z.(T(z) ∨ P(z,b)))&amp;quot; using 3..&lt;br /&gt;
 obtain z where 6: &amp;quot;T(z) ∨ P(z,b)&amp;quot; using 5..&lt;br /&gt;
 have &amp;quot;∀y. ¬(P(z,y))&amp;quot; using assms(3)..&lt;br /&gt;
 hence 7: &amp;quot;¬P(z,b)&amp;quot;..&lt;br /&gt;
 with 6 have &amp;quot;T(z)&amp;quot; by (rule ejercicio_42)&lt;br /&gt;
 thus ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba y además da un &lt;br /&gt;
contraejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16a:&lt;br /&gt;
assumes &amp;quot;(∀x.(A(x,a))) ⟶ (∀x.(A(x,b)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∃x.(D(x) ∧ A(x,a) ∧ A(x,b))) ⟶ (∀x.(A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;(∀x.(¬A(x,b))) ⟶ (∀x.(D(x) ⟶ ¬A(x,a)))&amp;quot;&lt;br /&gt;
        &amp;quot;¬A(m,b) ⟶ (∀x.(¬A(x,b)))&amp;quot;&lt;br /&gt;
shows &amp;quot;D(m) ∧ A(m,a) ⟶ (∀x.(A(x,a) ∧ A(x,b)))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(* Apli2 dice que está bien, pero Isabelle no lo prueba. No da contra-&lt;br /&gt;
ejemplo. *)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(¬N(x) ∧ P(x) ⟶ D(y) ∧ M(y,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∃x.∀y.(P(x) ∧ B(x) ∧ (M(y,x) ⟶ B(y)))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(P(x) ⟶ ¬M(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(B(x) ⟶ ¬N(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x.(D(x) ∧ B(x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo.&amp;quot;&lt;br /&gt;
(*Otra vez Isabelle no lo demuestra en auto, pero no da contraejemplo.&lt;br /&gt;
Está hecho con apli2, asi que supongo que está bien.*)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18a:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hijo(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_18b:&lt;br /&gt;
assumes &amp;quot;∀x.∃y.(Hi(x,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(He(x,y) ∧ Hi(z,x) ⟶ ¬Hi(z,y))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.∀y.∀z.(Hi(x,z) ∧ He(y,x) ⟶ Hi(y,z))&amp;quot;&lt;br /&gt;
        &amp;quot;∀x.(¬He(x,x) ∧ ¬Hi(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;He(A,L)&amp;quot;&lt;br /&gt;
        &amp;quot;He(a,m)&amp;quot;&lt;br /&gt;
        &amp;quot;Hi(a,A)&amp;quot;&lt;br /&gt;
shows &amp;quot;¬Hi(m,L)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 1:&amp;quot;He(A,L)∧Hi(a,A)&amp;quot; using assms(5,7) ..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(He(A,y) ∧ Hi(z,A) ⟶ ¬Hi(z,y))&amp;quot; using assms(2)..&lt;br /&gt;
  hence &amp;quot;∀z.(He(A,L) ∧ Hi(z,A) ⟶ ¬Hi(z,L))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;(He(A,L) ∧ Hi(a,A) ⟶ ¬Hi(a,L))&amp;quot;..&lt;br /&gt;
  hence 2:&amp;quot;¬Hi(a,L)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;∀y.∀z.(Hi(m,z) ∧ He(y,m) ⟶ Hi(y,z))&amp;quot;using assms(3)..&lt;br /&gt;
  hence &amp;quot;∀z.(Hi(m,z) ∧ He(a,m) ⟶ Hi(a,z))&amp;quot; ..&lt;br /&gt;
  hence 3:&amp;quot;(Hi(m,L) ∧ He(a,m) ⟶ Hi(a,L))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;¬(Hi(m,L) ∧ He(a,m))&amp;quot; using 2 by (rule mt)&lt;br /&gt;
  hence 4:&amp;quot;¬Hi(m,L) ∨ ¬He(a,m)&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  have 5:&amp;quot;¬¬He(a,m)&amp;quot; using assms(6) by (rule notnotI)&lt;br /&gt;
  show ?thesis using 4 5 by (rule ejercicio_42)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_20a:&lt;br /&gt;
assumes &amp;quot;∀x.(A(c,x) ⟷ C(x) ∧ ¬A(x,x))&amp;quot;&lt;br /&gt;
        &amp;quot;C(c)&amp;quot;&lt;br /&gt;
shows &amp;quot;∀x.(¬A(c,x))&amp;quot; &lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((∀y. ((F(y)∧D(x,y)))⟶(∀z. P(z)⟶D(x,z)))) &amp;quot;and&lt;br /&gt;
        2:&amp;quot;∃x. (∃y. P(y)∧(¬D(x,y)))&amp;quot; and&lt;br /&gt;
        &amp;quot;∀x. (P(x)⟶F(x))&amp;quot;       &lt;br /&gt;
shows &amp;quot;¬(∀x. (∃y. (F(y)∧D(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. ∀y. ((H(x) ∧ P(x) ∧ P(y))⟶ A(x,y))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ((H(x)∧ P(x))⟶A(x,x))&amp;quot; &lt;br /&gt;
using assms by auto       &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
assumes 1:&amp;quot;¬(∃x. P(x)∧R(x))&amp;quot; and&lt;br /&gt;
        2:&amp;quot;∀x. ((¬Q(x))⟶R(x))&amp;quot;&lt;br /&gt;
shows   &amp;quot;P(a)⟶Q(a)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Reme Sillero&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23a:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_23c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P(x)⟶¬R(x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x.((P(x)∧(¬Q(x)))⟶R(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P(a) ⟶Q(a)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 1:&amp;quot;P(a)⟶ ¬R(a)&amp;quot; using assms(1)..&lt;br /&gt;
  have 2:&amp;quot;(P(a)∧(¬Q(a)))⟶R(a)&amp;quot; using  assms(2)..&lt;br /&gt;
  assume 0:&amp;quot;P(a)&amp;quot;&lt;br /&gt;
  with 1 have &amp;quot;¬R(a)&amp;quot;..&lt;br /&gt;
  with 2 have &amp;quot;¬(P(a)∧(¬Q(a)))&amp;quot; by (rule mt)&lt;br /&gt;
  hence 3:&amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; by (rule ejercicio_57)&lt;br /&gt;
  show &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
  proof-&lt;br /&gt;
    have &amp;quot;¬P(a) ∨ (¬¬Q(a))&amp;quot; using 3.&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence False using 0..&lt;br /&gt;
      hence &amp;quot;¬¬Q(a)&amp;quot;..&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    moreover&lt;br /&gt;
    {assume &amp;quot;¬¬Q(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;Q(a)&amp;quot; by (rule notnotD)}&lt;br /&gt;
    ultimately&lt;br /&gt;
    show &amp;quot;Q(a)&amp;quot;..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
assumes 1:&amp;quot;∀x. ((L(x)∨Ca(x)∨Or(x)∨Pa(x)∨Z(x))⟶A(x))&amp;quot; and  &amp;quot;(∃x. L(x))∧(∃x. Ca(x))∧(∃x. Or(x))∧(∃x. Pa(x))∧(∃x. Z(x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;(∃x. S(x))∧(∀y. S(y)⟶Pa(y))&amp;quot;and&lt;br /&gt;
        3:&amp;quot;∀x. (A(x) ⟶ ((∀y.∀z.(Pa(z)⟶(A(y)∧M(y,x)∧Co(y,z))⟶Co(x,y))∧(Pa(y)⟶Co(x,y)) )))&amp;quot; and&lt;br /&gt;
        4:&amp;quot;∀x. ((Or(x)∨Ca(x))⟶(∀y. (Pa(y)⟶M(x,y))))&amp;quot; and &amp;quot;∀x. (∀y. ((Z(y)∧Pa(x))⟶M(x,y)))&amp;quot; and &amp;quot;∀x. (∀y. ((L(y)∧Z(x))⟶M(x,y)))&amp;quot;and&lt;br /&gt;
        5:&amp;quot;∀x. ∀y. ∀z. ((L(x)∧S(y)∧Z(z))⟶ (¬Co(x,y)∧ ¬Co(x,z)))&amp;quot; and &amp;quot;∀x. ∀y. ∀z.((Pa(x)∧Or(y)∧Ca(z))⟶ (Co(x,y)∧¬Co(x,z)))&amp;quot; and&lt;br /&gt;
        6:&amp;quot;∀x. ∀y. (∃z. ((Pa(z)∧Ca(x)∧Or(y))⟶(Co(x,z)∨Co(y,z))))&amp;quot;&lt;br /&gt;
shows &amp;quot;∃x. (∃y. (∃z. (S(z)∧A(y)∧Co(y,z)∧A(x)∧Co(x,y))))&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes 1:&amp;quot;A(r,c)&amp;quot; and&lt;br /&gt;
          2:&amp;quot;¬S(p,a)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. ((¬S(x,a))⟶(A(x,r)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ∀y. (A(x,y)⟷A(y,x))&amp;quot; and&lt;br /&gt;
          5:&amp;quot;(∃x. A(x,r))⟶(∀y. (A(y,r)⟶(y=x)))&amp;quot;  and&lt;br /&gt;
          &amp;quot;r∧c∧p∧a&amp;quot; (*para que la demostración sea posible*)&lt;br /&gt;
  shows   &amp;quot;p=c&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes 1:&amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))∧(∃x. (S(x)∧G(x)))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (S(x)⟶ M(s,x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∃x. ((S(x)∧G(x))∧M(p,x))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. (∀y. (M(x,y)⟷¬M(y,x)))&amp;quot; and&lt;br /&gt;
            &amp;quot;p∧s&amp;quot; and &amp;quot;¬(∃x. M(x,x))&amp;quot; and &amp;quot;¬(p=s)&amp;quot; and &amp;quot;(∃x. ((x=s)∧M(p,x)))⟷ s∧M(p,s)&amp;quot; (*Para la demostración *)&lt;br /&gt;
  shows &amp;quot;¬S(p)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof&lt;br /&gt;
  assume 5:&amp;quot;S(p)&amp;quot;&lt;br /&gt;
  have 6:&amp;quot;S(p)⟶M(s,p)&amp;quot; using 2..&lt;br /&gt;
  hence 7: &amp;quot;M(s,p)&amp;quot; using 5..&lt;br /&gt;
  have 8: &amp;quot;∀y. (M(s,y)⟷¬M(y,s))&amp;quot; using 4..&lt;br /&gt;
  hence 9: &amp;quot;M(s,p)⟷¬M(p,s)&amp;quot; ..&lt;br /&gt;
  hence 10:&amp;quot;¬M(p,s)&amp;quot; using 7..&lt;br /&gt;
  have 11: &amp;quot;∀x. (S(x)∧G(x)⟷(x=s))&amp;quot; using 1..&lt;br /&gt;
  have 12: &amp;quot;p≠s&amp;quot; using assms(7) .&lt;br /&gt;
  have 13: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))&amp;quot; using 1..&lt;br /&gt;
  hence 14: &amp;quot;(S(p)∧G(p)) ⟷ (p=s)&amp;quot; ..&lt;br /&gt;
  have &amp;quot;(¬G(p)) ∨G(p)&amp;quot; ..&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;¬G(p)&amp;quot;&lt;br /&gt;
    have 15: &amp;quot;(∀x. (S(x)∧G(x)⟷ (x=s)))⟶((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; by auto&lt;br /&gt;
    hence 16: &amp;quot;((∃x. ((S(x)∧G(x))∧M(p,x)))⟷(∃x. ((x=s)∧M(p,x))))&amp;quot; using 11 ..&lt;br /&gt;
    hence 17: &amp;quot;(∃x. ((x=s)∧M(p,x)))&amp;quot; using 3..&lt;br /&gt;
    with assms(8) have 18: &amp;quot;s∧M(p,s)&amp;quot; ..&lt;br /&gt;
    hence 19:&amp;quot;M(p,s)&amp;quot; ..&lt;br /&gt;
    with 10 have 20: False ..}&lt;br /&gt;
  moreover&lt;br /&gt;
    {assume &amp;quot;G(p)&amp;quot;&lt;br /&gt;
    with 5 have 15: &amp;quot;(S(p)∧G(p))&amp;quot; ..&lt;br /&gt;
    with 14 have 16: &amp;quot;p=s&amp;quot; ..&lt;br /&gt;
    with 12 have False ..}&lt;br /&gt;
  ultimately&lt;br /&gt;
  show False ..&lt;br /&gt;
qed  &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (F(x)⟶P(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (P(x)⟶L(x))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;F(n)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;¬L(m)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m≠n&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have 5:&amp;quot;P(n)⟶L(n)&amp;quot; using 2..&lt;br /&gt;
  have 6:&amp;quot;F(n)⟶P(n)&amp;quot; using 1..&lt;br /&gt;
  assume &amp;quot;m=n&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬L(n)&amp;quot; using 4 by (rule subst)&lt;br /&gt;
  with 5 have &amp;quot;¬P(n)&amp;quot; by (rule mt)&lt;br /&gt;
  with 6 have &amp;quot;¬F(n)&amp;quot; by (rule mt)&lt;br /&gt;
  thus False using 3..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes &amp;quot;∀x.(M(p(x),x))&amp;quot;&lt;br /&gt;
        &amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
assumes 1:&amp;quot;∀x.(M(p(x),x))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;j = p(l)&amp;quot;&lt;br /&gt;
shows &amp;quot;M(j,l)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3:&amp;quot;M(p(l),l)&amp;quot; using 1..&lt;br /&gt;
  have &amp;quot;p(l)=j&amp;quot; using 2..&lt;br /&gt;
  thus ?thesis using 3 by (rule subst)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Raúl Montes Pajuelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29a:&lt;br /&gt;
assumes &amp;quot;e(h) = r&amp;quot;&lt;br /&gt;
        &amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using assms by auto&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
assumes 1:&amp;quot;e(h) = r&amp;quot;and&lt;br /&gt;
        2:&amp;quot;h = m&amp;quot;&lt;br /&gt;
shows   &amp;quot;e(m) = r&amp;quot;&lt;br /&gt;
using 2 1 by (rule subst)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes 1:&amp;quot;p(j)=p(l)&amp;quot;and&lt;br /&gt;
          2:&amp;quot;e=m(r)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;A(e,c)&amp;quot;and&lt;br /&gt;
          4:&amp;quot;c=p(j)&amp;quot;          &lt;br /&gt;
  shows &amp;quot;A((m(r)),(p(l)))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;A(m(r),c)&amp;quot; using 2 3 by (rule subst)&lt;br /&gt;
  with 4 have &amp;quot;A(m(r),p(j))&amp;quot; by (rule subst)&lt;br /&gt;
  with 1 show ?thesis by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. ∀y. (H(x,y)⟶ ((p(x)⟷p(y))∧(m(x)⟷m(y))))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;H(j,l)&amp;quot;&lt;br /&gt;
  shows &amp;quot;m(p(j))= m(p(l))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
  hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
  hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
  hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
  have &amp;quot;(m(j)⟷m(l))&amp;quot; using 3..&lt;br /&gt;
    assume &amp;quot;m(p(j))&amp;quot;&lt;br /&gt;
    with 4 show &amp;quot;m(p(l))&amp;quot; by (rule subst)&lt;br /&gt;
  next&lt;br /&gt;
    assume 0:&amp;quot;m(p(l))&amp;quot;&lt;br /&gt;
    have 6:&amp;quot;p(l)=p(j)&amp;quot;&lt;br /&gt;
    proof &lt;br /&gt;
      assume 5:&amp;quot;p(l)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(j)&amp;quot; using 4 5 by (rule iffD2)&lt;br /&gt;
    next&lt;br /&gt;
      assume 5:&amp;quot;p(j)&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y. H(j,y)⟶ ((p(j)⟷p(y))∧(m(j)⟷m(y)))&amp;quot;using 1..&lt;br /&gt;
        hence &amp;quot;H(j,l)⟶ ((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot;..&lt;br /&gt;
        hence 3:&amp;quot;((p(j)⟷p(l))∧(m(j)⟷m(l)))&amp;quot; using 2..&lt;br /&gt;
        hence 4:&amp;quot;(p(j)⟷p(l))&amp;quot;..&lt;br /&gt;
      show &amp;quot;p(l)&amp;quot; using 4 5 by (rule iffD1)&lt;br /&gt;
    qed&lt;br /&gt;
    show &amp;quot;m(p(j))&amp;quot; using 6 0 by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes 1:&amp;quot;∀x. (C(x)⟶A(x))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(s)&amp;quot;and&lt;br /&gt;
          3:&amp;quot;m=s&amp;quot;    &lt;br /&gt;
  shows &amp;quot;A(m)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4:&amp;quot;C(m)⟶A(m)&amp;quot;using 1..&lt;br /&gt;
  have &amp;quot;s=m&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;C(m)&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  with 4 show ?thesis ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
assumes 1:&amp;quot;(V(e))&amp;quot;and&lt;br /&gt;
        2:&amp;quot;a=p&amp;quot;and&lt;br /&gt;
        3:&amp;quot;C(e) ∨ F(a)&amp;quot;and&lt;br /&gt;
        4:&amp;quot;∀x. (C(x)⟶¬V(x))&amp;quot;&lt;br /&gt;
shows &amp;quot;F(a)&amp;quot;&lt;br /&gt;
using 3&lt;br /&gt;
proof &lt;br /&gt;
  assume 5:&amp;quot;C(e)&amp;quot;&lt;br /&gt;
  have &amp;quot;C(e)⟶¬(V(e))&amp;quot; using 4..&lt;br /&gt;
  hence 6:&amp;quot;¬V(e)&amp;quot; using 5..&lt;br /&gt;
  hence False using 1 ..&lt;br /&gt;
  hence &amp;quot;¬C(e)&amp;quot;..&lt;br /&gt;
  with 3 show &amp;quot;F(a)&amp;quot; by (rule ejercicio_43)&lt;br /&gt;
next&lt;br /&gt;
  assume 5: &amp;quot;F(a)&amp;quot;&lt;br /&gt;
  thus ?thesis .&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes 1:&amp;quot;R(L(h))&amp;quot; and&lt;br /&gt;
          2:&amp;quot;C(L(d))&amp;quot; and&lt;br /&gt;
          3:&amp;quot;∀x. (∀y. (L(x)⟷L(y)))&amp;quot; and&lt;br /&gt;
          &amp;quot;L(h)∧L(d)&amp;quot;(*Para demostrarlo*)&lt;br /&gt;
  shows &amp;quot;∃x. (C(x)∧R(x))&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;∀y. L(d)⟷L(y)&amp;quot; using 3..&lt;br /&gt;
  hence &amp;quot;L(d)⟷L(h)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(L(h))&amp;quot; using 2 by (rule subst)&lt;br /&gt;
  hence &amp;quot;C(L(h))∧R(L(h))&amp;quot;using 1..&lt;br /&gt;
  thus ?thesis..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes 1:&amp;quot;(∃x. C(j,x))∧(∀y. C(j,y)⟶(y=x))&amp;quot;and&lt;br /&gt;
          2: &amp;quot;C(j,t)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;D(t)∧¬D(g)&amp;quot; &lt;br /&gt;
          &amp;quot;g≠t&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬C(j,g)&amp;quot;&lt;br /&gt;
quickcheck&lt;br /&gt;
proof &lt;br /&gt;
  assume 4:&amp;quot;C(j,g)&amp;quot;&lt;br /&gt;
  have  &amp;quot;C(j,t)∧(∀y. C(j,y)⟶(y=t))&amp;quot; using 1 2 by auto&lt;br /&gt;
  hence &amp;quot;(∀y. C(j,y)⟶(y=t))&amp;quot;..&lt;br /&gt;
  hence &amp;quot;C(j,g)⟶(g=t)&amp;quot;..&lt;br /&gt;
  hence &amp;quot;g=t&amp;quot; using 4..&lt;br /&gt;
  with assms(4) show False..&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes 1:&amp;quot;c≠s&amp;quot; and&lt;br /&gt;
          2:&amp;quot;(∀x. (Pr(x)⟶R(s,x)))⟷ Pl(s)&amp;quot; and&lt;br /&gt;
          3:&amp;quot;T(c,s)⟶(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot; and&lt;br /&gt;
          4:&amp;quot;∀x. ((x≠s)⟶T(x,s))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Pl(s)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  have &amp;quot;(c≠s)⟶T(c,s)&amp;quot; using 4..&lt;br /&gt;
  hence &amp;quot;T(c,s)&amp;quot; using 1..&lt;br /&gt;
  with 3 have 5:&amp;quot;(∃x. (Pr(x)∧(¬R(s,x))∧R(c,x)))&amp;quot;..&lt;br /&gt;
  obtain a where 6:&amp;quot;(Pr(a)∧(¬R(s,a))∧R(c,a))&amp;quot;using 5..&lt;br /&gt;
  assume &amp;quot;Pl(s)&amp;quot; &lt;br /&gt;
  with 2 have &amp;quot;(∀x. (Pr(x)⟶R(s,x)))&amp;quot;..&lt;br /&gt;
  hence 7:&amp;quot;Pr(a)⟶R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;Pr(a)&amp;quot; using 6..&lt;br /&gt;
  with 7 have 8:&amp;quot;R(s,a)&amp;quot;..&lt;br /&gt;
  have &amp;quot;(¬R(s,a)∧R(c,a))&amp;quot; using 6..&lt;br /&gt;
  hence &amp;quot;¬R(s,a)&amp;quot;..&lt;br /&gt;
  thus False using 8..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedrosrei</name></author>
		
	</entry>
</feed>