<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/LMF2016/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mjoseh</id>
	<title>Lógica Matemática y fundamentos (2015-16) - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/LMF2016/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mjoseh"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php/Especial:Contribuciones/Mjoseh"/>
	<updated>2026-07-18T04:50:32Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R16_sol&amp;diff=232</id>
		<title>R16 sol</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R16_sol&amp;diff=232"/>
		<updated>2016-05-11T09:57:50Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;=== Relación 16: Resolución en Lógica de primer orden  ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Se consideran las siguientes fórmulas:  reflexiva:  ∀x R(x,x)  simétrica:  ∀x ∀y (...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 16: Resolución en Lógica de primer orden  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Se consideran las siguientes fórmulas:&lt;br /&gt;
&lt;br /&gt;
reflexiva:  ∀x R(x,x)&lt;br /&gt;
&lt;br /&gt;
simétrica:  ∀x ∀y (R(x,y) → R(y,x))&lt;br /&gt;
&lt;br /&gt;
transitiva: ∀x ∀y ∀z (R(x,y) ∧ R(y,z) → R(x,z))&lt;br /&gt;
&lt;br /&gt;
notrivial:  ∀x ∃ R(x,y)&lt;br /&gt;
&lt;br /&gt;
* Demostrar que reflexiva no es consecuencia lógica de {transitiva, simétrica}.&lt;br /&gt;
* Demostrar por resolución que {transitiva, simétrica, notrivial}⊧ reflexiva.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar, por resolución, que si toda persona rica tiene un &lt;br /&gt;
padre rico, entonces existe una persona rica que tiene un abuelo rico.&lt;br /&gt;
Usar la relación R(x) para representar que x es rico, y la función p(x) para&lt;br /&gt;
representar el padre de x.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Se considera la siguiente argumentación: “Hay estudiantes inteligentes y hay estudiantes trabajadores. Por tanto, hay estudiantes inteligentes y trabajadores”.&lt;br /&gt;
&lt;br /&gt;
* Formalizar la argumentación usando los siguientes símbolos: P(x) para  representar que x es un estudiante inteligente y Q(x) para representar que x es un estudiante trabajador.&lt;br /&gt;
* Decidir, mediante resolución, la validez de la argumentación mostrando una prueba o un contramodelo de Herbrand obtenido a partir de la resolución.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan al menos dos elementos.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan dos elementos como máximo.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan exactamente dos elementos.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan exactamente tres elementos.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 5.&amp;#039;&amp;#039;&amp;#039; Se considera la siguiente argumentación:&lt;br /&gt;
&lt;br /&gt;
Quien intente entrar en un país y no tenga pasaporte, encontrará algún aduanero&lt;br /&gt;
que le impida el paso. A algunas personas motorizadas que intentan entrar en un &lt;br /&gt;
país le impiden el paso únicamente personas motorizadas. Ninguna persona &lt;br /&gt;
motorizada tiene pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
Las premisas pueden formalizarse por:&lt;br /&gt;
1. ∀x(E(x) ∧ ¬P(x) → ∃y(A(y) ∧ I(y, x)))&lt;br /&gt;
2. ∃x(M(x) ∧ E(x) ∧ ∀y(I(y, x) → M(y)))&lt;br /&gt;
3. ∀x(M(x) → ¬P(x))&lt;br /&gt;
&lt;br /&gt;
Decidir mediante resolución si el argumento es correcto.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 6.&amp;#039;&amp;#039;&amp;#039; Decidir por resolución si la la fórmula &lt;br /&gt;
∃x(P(x, a) ∧ P( f (x), b)) es consecuencia del conjunto de fórmulas&lt;br /&gt;
S = { ∀x(P(a, x) → P(b, f (x))), ∀x(P( f (x), x) → (∀zP(z, b))), P(a, f (a)) ∧ P( f (b), b)}&lt;br /&gt;
&lt;br /&gt;
En el caso de que no lo sea, construir a partir de la resolución un &lt;br /&gt;
modelo de Herbrand de S que no sea modelo de la fórmula.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_16&amp;diff=231</id>
		<title>Relación 16</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_16&amp;diff=231"/>
		<updated>2016-05-11T09:57:31Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Protegió «Relación 16» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 16: Resolución en Lógica de primer orden  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Se consideran las siguientes fórmulas:&lt;br /&gt;
&lt;br /&gt;
reflexiva:  ∀x R(x,x)&lt;br /&gt;
&lt;br /&gt;
simétrica:  ∀x ∀y (R(x,y) → R(y,x))&lt;br /&gt;
&lt;br /&gt;
transitiva: ∀x ∀y ∀z (R(x,y) ∧ R(y,z) → R(x,z))&lt;br /&gt;
&lt;br /&gt;
notrivial:  ∀x ∃ R(x,y)&lt;br /&gt;
&lt;br /&gt;
* Demostrar que reflexiva no es consecuencia lógica de {transitiva, simétrica}.&lt;br /&gt;
* Demostrar por resolución que {transitiva, simétrica, notrivial}⊧ reflexiva.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar, por resolución, que si toda persona rica tiene un &lt;br /&gt;
padre rico, entonces existe una persona rica que tiene un abuelo rico.&lt;br /&gt;
Usar la relación R(x) para representar que x es rico, y la función p(x) para&lt;br /&gt;
representar el padre de x.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Se considera la siguiente argumentación: “Hay estudiantes inteligentes y hay estudiantes trabajadores. Por tanto, hay estudiantes inteligentes y trabajadores”.&lt;br /&gt;
&lt;br /&gt;
* Formalizar la argumentación usando los siguientes símbolos: P(x) para  representar que x es un estudiante inteligente y Q(x) para representar que x es un estudiante trabajador.&lt;br /&gt;
* Decidir, mediante resolución, la validez de la argumentación mostrando una prueba o un contramodelo de Herbrand obtenido a partir de la resolución.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan al menos dos elementos.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan dos elementos como máximo.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan exactamente dos elementos.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan exactamente tres elementos.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 5.&amp;#039;&amp;#039;&amp;#039; Se considera la siguiente argumentación:&lt;br /&gt;
&lt;br /&gt;
Quien intente entrar en un país y no tenga pasaporte, encontrará algún aduanero&lt;br /&gt;
que le impida el paso. A algunas personas motorizadas que intentan entrar en un &lt;br /&gt;
país le impiden el paso únicamente personas motorizadas. Ninguna persona &lt;br /&gt;
motorizada tiene pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
Las premisas pueden formalizarse por:&lt;br /&gt;
1. ∀x(E(x) ∧ ¬P(x) → ∃y(A(y) ∧ I(y, x)))&lt;br /&gt;
2. ∃x(M(x) ∧ E(x) ∧ ∀y(I(y, x) → M(y)))&lt;br /&gt;
3. ∀x(M(x) → ¬P(x))&lt;br /&gt;
&lt;br /&gt;
Decidir mediante resolución si el argumento es correcto.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 6.&amp;#039;&amp;#039;&amp;#039; Decidir por resolución si la la fórmula &lt;br /&gt;
∃x(P(x, a) ∧ P( f (x), b)) es consecuencia del conjunto de fórmulas&lt;br /&gt;
S = { ∀x(P(a, x) → P(b, f (x))), ∀x(P( f (x), x) → (∀zP(z, b))), P(a, f (a)) ∧ P( f (b), b)}&lt;br /&gt;
&lt;br /&gt;
En el caso de que no lo sea, construir a partir de la resolución un &lt;br /&gt;
modelo de Herbrand de S que no sea modelo de la fórmula.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_16&amp;diff=230</id>
		<title>Relación 16</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_16&amp;diff=230"/>
		<updated>2016-05-11T09:57:19Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 16: Resolución en Lógica de primer orden  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Se consideran las siguientes fórmulas:&lt;br /&gt;
&lt;br /&gt;
reflexiva:  ∀x R(x,x)&lt;br /&gt;
&lt;br /&gt;
simétrica:  ∀x ∀y (R(x,y) → R(y,x))&lt;br /&gt;
&lt;br /&gt;
transitiva: ∀x ∀y ∀z (R(x,y) ∧ R(y,z) → R(x,z))&lt;br /&gt;
&lt;br /&gt;
notrivial:  ∀x ∃ R(x,y)&lt;br /&gt;
&lt;br /&gt;
* Demostrar que reflexiva no es consecuencia lógica de {transitiva, simétrica}.&lt;br /&gt;
* Demostrar por resolución que {transitiva, simétrica, notrivial}⊧ reflexiva.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar, por resolución, que si toda persona rica tiene un &lt;br /&gt;
padre rico, entonces existe una persona rica que tiene un abuelo rico.&lt;br /&gt;
Usar la relación R(x) para representar que x es rico, y la función p(x) para&lt;br /&gt;
representar el padre de x.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Se considera la siguiente argumentación: “Hay estudiantes inteligentes y hay estudiantes trabajadores. Por tanto, hay estudiantes inteligentes y trabajadores”.&lt;br /&gt;
&lt;br /&gt;
* Formalizar la argumentación usando los siguientes símbolos: P(x) para  representar que x es un estudiante inteligente y Q(x) para representar que x es un estudiante trabajador.&lt;br /&gt;
* Decidir, mediante resolución, la validez de la argumentación mostrando una prueba o un contramodelo de Herbrand obtenido a partir de la resolución.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan al menos dos elementos.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan dos elementos como máximo.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan exactamente dos elementos.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan exactamente tres elementos.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 5.&amp;#039;&amp;#039;&amp;#039; Se considera la siguiente argumentación:&lt;br /&gt;
&lt;br /&gt;
Quien intente entrar en un país y no tenga pasaporte, encontrará algún aduanero&lt;br /&gt;
que le impida el paso. A algunas personas motorizadas que intentan entrar en un &lt;br /&gt;
país le impiden el paso únicamente personas motorizadas. Ninguna persona &lt;br /&gt;
motorizada tiene pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
Las premisas pueden formalizarse por:&lt;br /&gt;
1. ∀x(E(x) ∧ ¬P(x) → ∃y(A(y) ∧ I(y, x)))&lt;br /&gt;
2. ∃x(M(x) ∧ E(x) ∧ ∀y(I(y, x) → M(y)))&lt;br /&gt;
3. ∀x(M(x) → ¬P(x))&lt;br /&gt;
&lt;br /&gt;
Decidir mediante resolución si el argumento es correcto.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 6.&amp;#039;&amp;#039;&amp;#039; Decidir por resolución si la la fórmula &lt;br /&gt;
∃x(P(x, a) ∧ P( f (x), b)) es consecuencia del conjunto de fórmulas&lt;br /&gt;
S = { ∀x(P(a, x) → P(b, f (x))), ∀x(P( f (x), x) → (∀zP(z, b))), P(a, f (a)) ∧ P( f (b), b)}&lt;br /&gt;
&lt;br /&gt;
En el caso de que no lo sea, construir a partir de la resolución un &lt;br /&gt;
modelo de Herbrand de S que no sea modelo de la fórmula.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_16&amp;diff=229</id>
		<title>Relación 16</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_16&amp;diff=229"/>
		<updated>2016-05-11T09:56:47Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 16: Resolución en Lógica de primer orden  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Se consideran las siguientes fórmulas:&lt;br /&gt;
&lt;br /&gt;
reflexiva:  ∀x R(x,x)&lt;br /&gt;
simétrica:  ∀x ∀y (R(x,y) → R(y,x))&lt;br /&gt;
transitiva: ∀x ∀y ∀z (R(x,y) ∧ R(y,z) → R(x,z))&lt;br /&gt;
notrivial:  ∀x ∃ R(x,y)&lt;br /&gt;
&lt;br /&gt;
* Demostrar que reflexiva no es consecuencia lógica de {transitiva, simétrica}.&lt;br /&gt;
* Demostrar por resolución que {transitiva, simétrica, notrivial}⊧ reflexiva.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar, por resolución, que si toda persona rica tiene un &lt;br /&gt;
padre rico, entonces existe una persona rica que tiene un abuelo rico.&lt;br /&gt;
Usar la relación R(x) para representar que x es rico, y la función p(x) para&lt;br /&gt;
representar el padre de x.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Se considera la siguiente argumentación: “Hay estudiantes inteligentes y hay estudiantes trabajadores. Por tanto, hay estudiantes inteligentes y trabajadores”.&lt;br /&gt;
&lt;br /&gt;
* Formalizar la argumentación usando los siguientes símbolos: P(x) para  representar que x es un estudiante inteligente y Q(x) para representar que x es un estudiante trabajador.&lt;br /&gt;
* Decidir, mediante resolución, la validez de la argumentación mostrando una prueba o un contramodelo de Herbrand obtenido a partir de la resolución.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan al menos dos elementos.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan dos elementos como máximo.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan exactamente dos elementos.&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan exactamente tres elementos.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 5.&amp;#039;&amp;#039;&amp;#039; Se considera la siguiente argumentación:&lt;br /&gt;
&lt;br /&gt;
Quien intente entrar en un país y no tenga pasaporte, encontrará algún aduanero&lt;br /&gt;
que le impida el paso. A algunas personas motorizadas que intentan entrar en un &lt;br /&gt;
país le impiden el paso únicamente personas motorizadas. Ninguna persona &lt;br /&gt;
motorizada tiene pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
Las premisas pueden formalizarse por:&lt;br /&gt;
1. ∀x(E(x) ∧ ¬P(x) → ∃y(A(y) ∧ I(y, x)))&lt;br /&gt;
2. ∃x(M(x) ∧ E(x) ∧ ∀y(I(y, x) → M(y)))&lt;br /&gt;
3. ∀x(M(x) → ¬P(x))&lt;br /&gt;
&lt;br /&gt;
Decidir mediante resolución si el argumento es correcto.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 6.&amp;#039;&amp;#039;&amp;#039; Decidir por resolución si la la fórmula &lt;br /&gt;
∃x(P(x, a) ∧ P( f (x), b)) es consecuencia del conjunto de fórmulas&lt;br /&gt;
S = { ∀x(P(a, x) → P(b, f (x))), ∀x(P( f (x), x) → (∀zP(z, b))),&lt;br /&gt;
     P(a, f (a)) ∧ P( f (b), b)}&lt;br /&gt;
&lt;br /&gt;
En el caso de que no lo sea, construir a partir de la resolución un &lt;br /&gt;
modelo de Herbrand de S que no sea modelo de la fórmula.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_16&amp;diff=228</id>
		<title>Relación 16</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_16&amp;diff=228"/>
		<updated>2016-05-11T09:55:21Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 16: Resolución en Lógica de primer orden  ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Se consideran las siguientes fórmulas:  reflexiva:  ∀x R(x,x) simétrica:  ∀x ∀y (...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 16: Resolución en Lógica de primer orden  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Se consideran las siguientes fórmulas:&lt;br /&gt;
&lt;br /&gt;
reflexiva:  ∀x R(x,x)&lt;br /&gt;
simétrica:  ∀x ∀y (R(x,y) → R(y,x))&lt;br /&gt;
transitiva: ∀x ∀y ∀z (R(x,y) ∧ R(y,z) → R(x,z))&lt;br /&gt;
notrivial:  ∀x ∃ R(x,y)&lt;br /&gt;
&lt;br /&gt;
* Demostrar que reflexiva no es consecuencia lógica de {transitiva, simétrica}.&lt;br /&gt;
* Demostrar por resolución que {transitiva, simétrica, notrivial}⊧ reflexiva.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar, por resolución, que si toda persona rica tiene un &lt;br /&gt;
padre rico, entonces existe una persona rica que tiene un abuelo rico.&lt;br /&gt;
Usar la relación R(x) para representar que x es rico, y la función p(x) para&lt;br /&gt;
representar el padre de x.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Se considera la siguiente argumentación: “Hay estudiantes &lt;br /&gt;
inteligentes y hay estudiantes trabajadores. Por tanto, hay estudiantes &lt;br /&gt;
inteligentes y trabajadores”.&lt;br /&gt;
&lt;br /&gt;
* Formalizar la argumentación usando los siguientes símbolos: P(x) para &lt;br /&gt;
representar que x es un estudiante inteligente y Q(x) para representar &lt;br /&gt;
que x es un estudiante trabajador.&lt;br /&gt;
* Decidir, mediante resolución, la validez de la argumentación mostrando &lt;br /&gt;
una prueba o un contramodelo de Herbrand obtenido a partir de la resolución.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan al menos&lt;br /&gt;
  dos elementos.&lt;br /&gt;
&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan dos &lt;br /&gt;
  elementos como máximo.&lt;br /&gt;
&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan exactamente&lt;br /&gt;
  dos elementos.&lt;br /&gt;
&lt;br /&gt;
* Dar un ejemplo de una fórmula F tal que todos sus modelos tengan exactamente&lt;br /&gt;
  tres elementos.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 5.&amp;#039;&amp;#039;&amp;#039; Se considera la siguiente argumentación:&lt;br /&gt;
&lt;br /&gt;
Quien intente entrar en un país y no tenga pasaporte, encontrará algún aduanero&lt;br /&gt;
que le impida el paso. A algunas personas motorizadas que intentan entrar en un &lt;br /&gt;
país le impiden el paso únicamente personas motorizadas. Ninguna persona &lt;br /&gt;
motorizada tiene pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
Las premisas pueden formalizarse por:&lt;br /&gt;
1. ∀x(E(x) ∧ ¬P(x) → ∃y(A(y) ∧ I(y, x)))&lt;br /&gt;
2. ∃x(M(x) ∧ E(x) ∧ ∀y(I(y, x) → M(y)))&lt;br /&gt;
3. ∀x(M(x) → ¬P(x))&lt;br /&gt;
&lt;br /&gt;
Decidir mediante resolución si el argumento es correcto.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 6.&amp;#039;&amp;#039;&amp;#039; Decidir por resolución si la la fórmula &lt;br /&gt;
∃x(P(x, a) ∧ P( f (x), b)) es consecuencia del conjunto de fórmulas&lt;br /&gt;
S = { ∀x(P(a, x) → P(b, f (x))), ∀x(P( f (x), x) → (∀zP(z, b))),&lt;br /&gt;
     P(a, f (a)) ∧ P( f (b), b)}&lt;br /&gt;
&lt;br /&gt;
En el caso de que no lo sea, construir a partir de la resolución un &lt;br /&gt;
modelo de Herbrand de S que no sea modelo de la fórmula.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R15_sol&amp;diff=227</id>
		<title>R15 sol</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R15_sol&amp;diff=227"/>
		<updated>2016-05-11T09:54:51Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 15: Ejercicios de Lógica proposicional  ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Dadas las fórmulas A : (s → p) ∨ (t → q) y B : (s → q) ∨ (t → p), se pide: * Pr...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 15: Ejercicios de Lógica proposicional  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Dadas las fórmulas A : (s → p) ∨ (t → q) y B : (s → q) ∨ (t → p), se pide:&lt;br /&gt;
* Probar que A ⊧ B, mediante resolución proposicional.&lt;br /&gt;
* Describir, razonadamente, todos los modelos de A y, a continuación, probar nuevamente que A ⊧ B, utilizando la definición de consecuencia lógica.&lt;br /&gt;
* ¿Es ¬B → ¬A una tautología?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Consideremos la fórmula proposicional A : (r → p) ∧ (¬r → q ∨ s) → p ∨ q ∨ s&lt;br /&gt;
y el conjunto de fórmulas U = {r ⇔ p ∨ q, s → p, ¬s ∧ ¬r → s ∨ t}.&lt;br /&gt;
* Probar, mediante tableros semánticos, que A es una tautología.&lt;br /&gt;
* Probar, razonadamente, que U es consistente, mostrando para ello un modelo de U.&lt;br /&gt;
* Probar, mediante resolución, que U ⊧ ¬p → (q ∨ t).&lt;br /&gt;
* Sea B la fórmula anterior (¬p → (q ∨ t)). ¿Podemos eliminar alguna fórmula de U de manera que la fórmula B sea consecuencia lógica del conjunto de fórmulas restante?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_15&amp;diff=226</id>
		<title>Relación 15</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_15&amp;diff=226"/>
		<updated>2016-05-11T09:54:28Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Protegió «Relación 15» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 15: Ejercicios de Lógica proposicional  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Dadas las fórmulas A : (s → p) ∨ (t → q) y B : (s → q) ∨ (t → p), se pide:&lt;br /&gt;
* Probar que A ⊧ B, mediante resolución proposicional.&lt;br /&gt;
* Describir, razonadamente, todos los modelos de A y, a continuación, probar nuevamente que A ⊧ B, utilizando la definición de consecuencia lógica.&lt;br /&gt;
* ¿Es ¬B → ¬A una tautología?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Consideremos la fórmula proposicional A : (r → p) ∧ (¬r → q ∨ s) → p ∨ q ∨ s&lt;br /&gt;
y el conjunto de fórmulas U = {r ⇔ p ∨ q, s → p, ¬s ∧ ¬r → s ∨ t}.&lt;br /&gt;
* Probar, mediante tableros semánticos, que A es una tautología.&lt;br /&gt;
* Probar, razonadamente, que U es consistente, mostrando para ello un modelo de U.&lt;br /&gt;
* Probar, mediante resolución, que U ⊧ ¬p → (q ∨ t).&lt;br /&gt;
* Sea B la fórmula anterior (¬p → (q ∨ t)). ¿Podemos eliminar alguna fórmula de U de manera que la fórmula B sea consecuencia lógica del conjunto de fórmulas restante?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_15&amp;diff=225</id>
		<title>Relación 15</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_15&amp;diff=225"/>
		<updated>2016-05-11T09:54:16Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 15: Ejercicios de Lógica proposicional  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Dadas las fórmulas A : (s → p) ∨ (t → q) y B : (s → q) ∨ (t → p), se pide:&lt;br /&gt;
* Probar que A ⊧ B, mediante resolución proposicional.&lt;br /&gt;
* Describir, razonadamente, todos los modelos de A y, a continuación, probar nuevamente que A ⊧ B, utilizando la definición de consecuencia lógica.&lt;br /&gt;
* ¿Es ¬B → ¬A una tautología?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Consideremos la fórmula proposicional A : (r → p) ∧ (¬r → q ∨ s) → p ∨ q ∨ s&lt;br /&gt;
y el conjunto de fórmulas U = {r ⇔ p ∨ q, s → p, ¬s ∧ ¬r → s ∨ t}.&lt;br /&gt;
* Probar, mediante tableros semánticos, que A es una tautología.&lt;br /&gt;
* Probar, razonadamente, que U es consistente, mostrando para ello un modelo de U.&lt;br /&gt;
* Probar, mediante resolución, que U ⊧ ¬p → (q ∨ t).&lt;br /&gt;
* Sea B la fórmula anterior (¬p → (q ∨ t)). ¿Podemos eliminar alguna fórmula de U de manera que la fórmula B sea consecuencia lógica del conjunto de fórmulas restante?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_15&amp;diff=224</id>
		<title>Relación 15</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_15&amp;diff=224"/>
		<updated>2016-05-11T09:53:53Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 15: Ejercicios de Lógica proposicional  ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Dadas las fórmulas A : (s → p) ∨ (t → q) y B : (s → q) ∨ (t → p), se pide: * Pr...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 15: Ejercicios de Lógica proposicional  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Dadas las fórmulas A : (s → p) ∨ (t → q) y B : (s → q) ∨ (t → p), se pide:&lt;br /&gt;
* Probar que A ⊧ B, mediante resolución proposicional.&lt;br /&gt;
* Describir, razonadamente, todos los modelos de A y, a continuación, probar nuevamente&lt;br /&gt;
que A ⊧ B, utilizando la definición de consecuencia lógica.&lt;br /&gt;
* ¿Es ¬B → ¬A una tautología?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Consideremos la fórmula proposicional A : (r → p) ∧ (¬r → q ∨ s) → p ∨ q ∨ s&lt;br /&gt;
y el conjunto de fórmulas U = {r ⇔ p ∨ q, s → p, ¬s ∧ ¬r → s ∨ t}.&lt;br /&gt;
* Probar, mediante tableros semánticos, que A es una tautología.&lt;br /&gt;
* Probar, razonadamente, que U es consistente, mostrando para ello un modelo de U.&lt;br /&gt;
* Probar, mediante resolución, que U ⊧ ¬p → (q ∨ t).&lt;br /&gt;
* Sea B la fórmula anterior (¬p → (q ∨ t)). ¿Podemos eliminar alguna fórmula de U de&lt;br /&gt;
manera que la fórmula B sea consecuencia lógica del conjunto de fórmulas restante?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=223</id>
		<title>Lógica matemática y fundamentos (2015-16)</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=223"/>
		<updated>2016-05-11T09:53:20Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(a)&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1. ([[R2 |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(a)&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:SintaxisSemantica.hs |Enunciado]], [[Relación 2a |Solución colaborativa]] y [[R2a sol | Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1:  cuestiones ([[R2b |Enunciado]] y [[Relación 2b |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]). [http://www.cs.us.es/~mjoseh/R4.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]][http://www.cs.us.es/~mjoseh/R5.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R9 |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 11 |Solución colaborativa]]  y [[R11 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[R12 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 14 |Solución colaborativa]] y [[R14 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 15&amp;#039;&amp;#039;&amp;#039;: Ejercicios de Lógica proposicional. ([[Relación 15 |Solución colaborativa]] y [[R15 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 16&amp;#039;&amp;#039;&amp;#039;: Resolución en Lógica de primer orden. ([[Relación 16 |Solución colaborativa]] y [[R16 sol | Una solución ]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;font style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;Relación 5 (resuelta)&amp;lt;/font&amp;gt;&amp;#039;&amp;#039;&amp;#039;:[[Relación 5 (resuelta) |Solución]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]] y [[R7 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 9 |Solución colaborativa]] y [[Una solución | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[R12 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Argumentación y Deducción natural en lógica de primer orden.([[R14 |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 15&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R15 |Enunciado]] y [[Relación 15 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 16&amp;#039;&amp;#039;&amp;#039;: Resolución en lógica de primer orden.([[R16 |Enunciado]] y [[Relación 16 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Segundo examen (resuelto)&amp;#039;&amp;#039;&amp;#039;:([[Ejercicio 4 (a) |Solución_4a]], [[Ejercicio 4 (b)|Solución_4b]],[[Ejercicio 5 (a) |Solución_5a]] y [[Ejercicio 5 (b) |Solución_5b]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 9 |Solución colaborativa]] y [[Media:Clausulas_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 10 |Solución colaborativa]] y [[Media:ResolucionProposicional_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R11.thy |Enunciado]], [[Relación 11 |Solución colaborativa]] y [[Solución Relación 11 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas en Isabelle/HOL. ([[R12.thy |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[Solución Relación 12 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R13.thy |Enunciado]], [[Relación 13 |Solución colaborativa]] y [[Solución Relación 13 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 2&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex-30-b.hs |Primera parte]] y [[Segunda parte |Segunda parte]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 3&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex3_sol.hs |Primera parte]], [[Media:Sintaxis.hs |Sintaxis]] y [[Segunda parte (ex.3) |Segunda parte (ex3)]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 4&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex4_sol.hs |Primera parte]] y [[Segunda parte (ex.4) |Segunda parte (ex. 4)]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 13&amp;#039;&amp;#039;&amp;#039;: [[Tema 13 | Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Razonamiento por casos y por inducción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Verificación de la ordenación por inserción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 16&amp;#039;&amp;#039;&amp;#039;: [[Tema 16 | Verificación de un compilador de expresiones aritméticas]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]] y [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]] y [[AplicacionesLP |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R14_sol&amp;diff=222</id>
		<title>R14 sol</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R14_sol&amp;diff=222"/>
		<updated>2016-05-10T12:34:46Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;&amp;lt;source lang =&amp;quot;haskell&amp;quot;&amp;gt; -- ResolucionProposicional.hs -- Resolución proposicional. -- ---------------------------------------------------------------------  module ResolucionP...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang =&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- ResolucionProposicional.hs&lt;br /&gt;
-- Resolución proposicional.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module ResolucionProposicional where&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import FormasNormales&lt;br /&gt;
import Clausulas&lt;br /&gt;
import Data.List&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Resolventes                                                        --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    resolvente :: Clausula -&amp;gt; Clausula -&amp;gt; Literal -&amp;gt; Clausula&lt;br /&gt;
-- tal que (resolvente c1 c2 l) es la resolvente de c1 y c2 respecto del&lt;br /&gt;
-- literal l. Por ejemplo,&lt;br /&gt;
--    resolvente [no p,q] [no q,r] q  ==&amp;gt;  [no p,r]&lt;br /&gt;
--    resolvente [no p,no q] [q,r] (no q)  ==&amp;gt;  [no p,r]&lt;br /&gt;
--    resolvente [no p,q] [no p,no q] q  ==&amp;gt;  [no p]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
resolvente :: Clausula -&amp;gt; Clausula -&amp;gt; Literal -&amp;gt; Clausula&lt;br /&gt;
resolvente c1 c2 l =&lt;br /&gt;
    union (delete l c1) (delete (complementario l) c2) &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    resolventes :: Clausula -&amp;gt; Clausula -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (resolventes c1 c2) es el conjunto de las resolventes de c1 y&lt;br /&gt;
-- c2. Por ejemplo,&lt;br /&gt;
--    resolventes [no p,q] [p,no q]  ==&amp;gt;  [[q,no q],[no p,p]]&lt;br /&gt;
--    resolventes [no p,q] [p,q]     ==&amp;gt;  [[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
resolventes :: Clausula -&amp;gt; Clausula -&amp;gt; [Clausula]&lt;br /&gt;
resolventes c1 c2 =&lt;br /&gt;
    [resolvente c1 c2 l | l &amp;lt;- c1, (complementario l) `elem` c2]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    resolventesClausulaConjunto :: Clausula -&amp;gt; [Clausula] -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (resolventes c s) es el conjunto de las resolventes de c y&lt;br /&gt;
-- s. Por ejemplo, &lt;br /&gt;
--    resolventesClausulaConjunto [no p,q] [[p,q],[p,r],[no q,s]]&lt;br /&gt;
--    ==&amp;gt; [[q],[q,r],[no p,s]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
resolventesClausulaConjunto :: Clausula -&amp;gt; [Clausula] -&amp;gt; [Clausula]&lt;br /&gt;
resolventesClausulaConjunto c s =&lt;br /&gt;
    unionGeneral [resolventes c c1 | c1 &amp;lt;- s]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Eliminación de tautologías                                         --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    esTautologia :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTautologia c) se verifica si c es una tautología. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esTautologia [p, q, no p]  ==&amp;gt;  True&lt;br /&gt;
--    esTautologia [p, q, no r]  ==&amp;gt;  False&lt;br /&gt;
--    esTautologia []            ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTautologia :: Clausula -&amp;gt; Bool&lt;br /&gt;
esTautologia c = &lt;br /&gt;
    [f | f &amp;lt;- c, elem (complementario f) c] /= []&lt;br /&gt;
&lt;br /&gt;
esTautologia2 :: Clausula -&amp;gt; Bool&lt;br /&gt;
esTautologia2 c = &lt;br /&gt;
   or [elem (complementario f) c | f &amp;lt;- c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    eliminaTautologias :: [Clausula] -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (eliminaTautologias s) es el conjunto obtenido eliminando las&lt;br /&gt;
-- tautologías de s. Por ejemplo,&lt;br /&gt;
--    eliminaTautologias [[p, q], [p, q, no p]]  ==&amp;gt;  [[p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
eliminaTautologias :: [Clausula] -&amp;gt; [Clausula]&lt;br /&gt;
eliminaTautologias s =&lt;br /&gt;
    [c | c &amp;lt;- s, not (esTautologia c)]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Decisión de inconsistencia por resolución                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    esInconsistentePorResolucion :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esInconsistentePorResolucion s) se verifica si s es&lt;br /&gt;
-- inconsistente mediante resolución. Por ejemplo,&lt;br /&gt;
--    esInconsistentePorResolucion [[p],[no p,q],[no q]]&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esInconsistentePorResolucion [[p],[no p,q]]&lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
--    esInconsistentePorResolucion [[p,q],[no p,q],[p,no q],[no p,no q]]&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esInconsistentePorResolucion [[p,q],[p,r],[no q,no r],[no p]]&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esInconsistentePorResolucion :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
esInconsistentePorResolucion s =&lt;br /&gt;
    esInconsistentePorResolucion&amp;#039; s []&lt;br /&gt;
&lt;br /&gt;
esInconsistentePorResolucion&amp;#039; :: [Clausula] -&amp;gt; [Clausula] -&amp;gt; Bool&lt;br /&gt;
esInconsistentePorResolucion&amp;#039; soporte usables &lt;br /&gt;
    | null soporte    = False&lt;br /&gt;
    | elem [] soporte = True&lt;br /&gt;
    | otherwise       =&lt;br /&gt;
        esInconsistentePorResolucion&amp;#039; soporte&amp;#039; usables&amp;#039;&lt;br /&gt;
        where actual   = head soporte&lt;br /&gt;
              usables&amp;#039; = union [actual] usables&lt;br /&gt;
              soporte&amp;#039; = union (tail soporte)&lt;br /&gt;
                               [c &lt;br /&gt;
                                | c &amp;lt;- resolventesClausulaConjunto&lt;br /&gt;
                                       actual &lt;br /&gt;
                                       usables&amp;#039;&lt;br /&gt;
                                , not (esTautologia c)&lt;br /&gt;
                                , notElem c soporte&lt;br /&gt;
                                , notElem c usables&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Validez mediante resolución                                        --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    esValidaPorResolucion :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esValidaPorResolucion f) se verifica si f es válida por&lt;br /&gt;
-- resolución. Por ejemplo, &lt;br /&gt;
--    esValidaPorResolucion (p --&amp;gt; p)                 ==&amp;gt;  True&lt;br /&gt;
--    esValidaPorResolucion ((p --&amp;gt; q) \/ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
--    esValidaPorResolucion (p --&amp;gt; q)                 ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esValidaPorResolucion :: Prop -&amp;gt; Bool&lt;br /&gt;
esValidaPorResolucion f =&lt;br /&gt;
    esInconsistentePorResolucion &lt;br /&gt;
    (eliminaTautologias (clausulas (Neg f)))&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia mediante resolución                                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    esConsecuenciaPorResolucion :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuenciaPorResolucion s f) se verifica si f es&lt;br /&gt;
-- consecuencia de s mediante el método de resolución. Por ejemplo,&lt;br /&gt;
--    esConsecuenciaPorResolucion [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)  &lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsecuenciaPorResolucion [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)&lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConsecuenciaPorResolucion :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaPorResolucion s f =&lt;br /&gt;
    esInconsistentePorResolucion &lt;br /&gt;
    (eliminaTautologias (clausulasConjunto ((Neg f):s)))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R12_sol&amp;diff=221</id>
		<title>R12 sol</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R12_sol&amp;diff=221"/>
		<updated>2016-05-10T12:34:03Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;&amp;lt;source lang =&amp;quot;haskell&amp;quot;&amp;gt; -- Clausulas.hs -- Cláusulas. -- ---------------------------------------------------------------------  module Clausulas where  -- --------------------...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang =&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- Clausulas.hs&lt;br /&gt;
-- Cláusulas.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module Clausulas 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 FormasNormales&lt;br /&gt;
import Data.List&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Cláusulas                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir el tipo de datos Clausula como una lista de&lt;br /&gt;
-- literales. &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
type Clausula = [Literal]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    clausula :: Prop -&amp;gt; Clausula&lt;br /&gt;
-- tal que (clausula f) es la clausula de la fórmula-clausal f. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    clausula p                                 ==&amp;gt;  [p]&lt;br /&gt;
--    clausula (no p)                            ==&amp;gt;  [no p]&lt;br /&gt;
--    clausula (((no p) \/ r) \/ ((no p) \/ q))  ==&amp;gt;  [q,r,no p]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
clausula :: Prop -&amp;gt; Clausula&lt;br /&gt;
clausula f &lt;br /&gt;
    | literal f     = [f]&lt;br /&gt;
clausula (Disj f g) = sort ((clausula f) `union` (clausula g))&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    clausulasFNC :: Prop -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (clausulasFNC f) es el conjunto de clausulas de la fórmula en&lt;br /&gt;
-- forma normal conjuntiva f. Por ejmplo,&lt;br /&gt;
--    clausulasFNC (p /\ ((no q) \/ r))&lt;br /&gt;
--    ==&amp;gt; [[p],[r, no q]]&lt;br /&gt;
--    clausulasFNC (((no p) \/ q) /\ ((no p) \/ (no r)))&lt;br /&gt;
--    ==&amp;gt; [[q, no p],[no p,no r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
clausulasFNC :: Prop -&amp;gt; [Clausula]&lt;br /&gt;
clausulasFNC (Conj f g) = &lt;br /&gt;
    (clausulasFNC f) `union`  (clausulasFNC g) &lt;br /&gt;
clausulasFNC f =&lt;br /&gt;
    [clausula f]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    clausulas :: Prop -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (clausulas f) es un conjunto de clausulas equivalente a&lt;br /&gt;
-- f. Por ejemplo,&lt;br /&gt;
--    clausulas (p /\ (q --&amp;gt; r))       &lt;br /&gt;
--    ==&amp;gt; [[p],[r,no q]]&lt;br /&gt;
--    clausulas (no (p /\ (q --&amp;gt; r)))  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p,no r]]&lt;br /&gt;
--    clausulas (no(p &amp;lt;--&amp;gt; r))         &lt;br /&gt;
--    ==&amp;gt; [[p,r],[p,no p],[r,no r],[no p,no r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
clausulas :: Prop -&amp;gt; [Clausula]&lt;br /&gt;
clausulas f =&lt;br /&gt;
    clausulasFNC (formaNormalConjuntiva f)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Clausulas de un conjunto de fórmulas                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    clausulasConjunto :: [Prop] -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (clausulasConjunto s) es un conjunto de clausulas equivalente&lt;br /&gt;
-- a s. Por ejemplo,&lt;br /&gt;
--    clausulasConjunto [p --&amp;gt; q, q --&amp;gt; r]   ==&amp;gt;  [[q,no p],[r,no q]]&lt;br /&gt;
--    clausulasConjunto [p --&amp;gt; q, q &amp;lt;--&amp;gt; p]  ==&amp;gt;  [[q,no p],[p,no q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
clausulasConjunto :: [Prop] -&amp;gt; [Clausula]&lt;br /&gt;
clausulasConjunto s =&lt;br /&gt;
    unionGeneral [clausulas f | f &amp;lt;- s]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Simbolos proposicionales de una clausula                           --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    simbolosProposicionalesClausula :: Clausula -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (simbolosProposicionalesClausula c) es el conjunto de los&lt;br /&gt;
-- simbolos proposicionales de c. Por ejemplo,&lt;br /&gt;
--    simbolosProposicionalesClausula [p, q, no p]  ==&amp;gt;  [p,q]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
simbolosProposicionalesClausula :: Clausula -&amp;gt; [Prop]&lt;br /&gt;
simbolosProposicionalesClausula = simbolosPropConj&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Simbolos proposicionales de un conjunto de clausulas               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    simbolosProposicionalesConjuntoClausula :: [Clausula] -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (simbolosProposicionalesConjuntoClausula s) es el conjunto de los&lt;br /&gt;
-- simbolos proposicionales de s. Por ejemplo,&lt;br /&gt;
--    simbolosProposicionalesConjuntoClausula [[p, q],[no q, r]]&lt;br /&gt;
--    ==&amp;gt; [p,q,r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
simbolosProposicionalesConjuntoClausula :: [Clausula] -&amp;gt; [Prop]&lt;br /&gt;
simbolosProposicionalesConjuntoClausula s =&lt;br /&gt;
    unionGeneral [simbolosProposicionalesClausula c | c &amp;lt;- s]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Interpretaciones de una clausula                                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    interpretacionesClausula :: Clausula -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (interpretacionesClausula c) es el conjunto de&lt;br /&gt;
-- interpretaciones de c. Por ejemplo,&lt;br /&gt;
--    interpretacionesClausula [p, q, no p]  ==&amp;gt;  [[p,q],[p],[q],[]]&lt;br /&gt;
--    interpretacionesClausula []            ==&amp;gt;  [[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
interpretacionesClausula :: Clausula -&amp;gt; [Interpretación]&lt;br /&gt;
interpretacionesClausula c =&lt;br /&gt;
    subconjuntos (simbolosProposicionalesClausula c)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Interpretaciones de un conjunto de clausulas                       --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    interpretacionesConjuntoClausula :: [Clausula] -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (interpretacionesConjuntoClausula s) es el conjunto de&lt;br /&gt;
-- interpretaciones de s. Por ejemplo,&lt;br /&gt;
--    interpretacionesConjuntoClausula [[p, no q],[no p, q]]&lt;br /&gt;
--    ==&amp;gt; [[p,q],[p],[q],[]]&lt;br /&gt;
--    interpretacionesConjuntoClausula []&lt;br /&gt;
--    ==&amp;gt; [[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
interpretacionesConjuntoClausula :: [Clausula] -&amp;gt; [Interpretación]&lt;br /&gt;
interpretacionesConjuntoClausula c =&lt;br /&gt;
    subconjuntos (simbolosProposicionalesConjuntoClausula c)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos de clausulas                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    esModeloLiteral :: Interpretación -&amp;gt; Literal -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloLiteral i l) se verifica si i es modelo de l. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloLiteral [p,r] p       ==&amp;gt;  True&lt;br /&gt;
--    esModeloLiteral [p,r] q       ==&amp;gt;  False&lt;br /&gt;
--    esModeloLiteral [p,r] (no p)  ==&amp;gt;  False&lt;br /&gt;
--    esModeloLiteral [p,r] (no q)  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloLiteral :: Interpretación -&amp;gt; Literal -&amp;gt; Bool&lt;br /&gt;
esModeloLiteral i (Atom s)       = elem (Atom s) i&lt;br /&gt;
esModeloLiteral i (Neg (Atom s)) = notElem (Atom s) i&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    esModeloClausula :: Interpretación -&amp;gt; Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloClausula i c) se verifica si i es modelo de c . Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloClausula [p,r] [p, q]     ==&amp;gt;  True&lt;br /&gt;
--    esModeloClausula [r] [p, no q]    ==&amp;gt;  True&lt;br /&gt;
--    esModeloClausula [q,r] [p, no q]  ==&amp;gt;  False&lt;br /&gt;
--    esModeloClausula [q,r] []         ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloClausula :: Interpretación -&amp;gt; Clausula -&amp;gt; Bool&lt;br /&gt;
esModeloClausula i c =&lt;br /&gt;
    or [esModeloLiteral i l | l &amp;lt;- c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    modelosClausula :: Clausula -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (modelosClausula c) es la lista de los modelos de c. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosClausula [no p, q]  ==&amp;gt;  [[p,q],[q],[]]&lt;br /&gt;
--    modelosClausula [no p, p]  ==&amp;gt;  [[p],[]]&lt;br /&gt;
--    modelosClausula []         ==&amp;gt;  []&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosClausula :: Clausula -&amp;gt; [Interpretación]&lt;br /&gt;
modelosClausula c =&lt;br /&gt;
    [i | i &amp;lt;- interpretacionesClausula c,&lt;br /&gt;
         esModeloClausula i c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos de conjuntos de clausulas                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    esModeloConjuntoClausulas :: Interpretación -&amp;gt; [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloConjuntoClausulas i c) se verifica si i es modelo de&lt;br /&gt;
-- c. Por ejemplo,&lt;br /&gt;
--    esModeloConjuntoClausulas [p,r] [[p, no q], [r]]  ==&amp;gt;  True&lt;br /&gt;
--    esModeloConjuntoClausulas [p] [[p, no q], [r]]    ==&amp;gt;  False&lt;br /&gt;
--    esModeloConjuntoClausulas [p] []                  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloConjuntoClausulas :: Interpretación -&amp;gt; [Clausula] -&amp;gt; Bool&lt;br /&gt;
esModeloConjuntoClausulas i s =&lt;br /&gt;
    and [esModeloClausula i c | c &amp;lt;- s]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    modelosConjuntoClausulas :: [Clausula] -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (modelosConjuntoClausulas s) es la lista de los modelos de&lt;br /&gt;
-- s. Por ejemplo, &lt;br /&gt;
--    modelosConjuntoClausulas [[no p, q], [no q, p]]    &lt;br /&gt;
--    ==&amp;gt; [[p,q],[]]&lt;br /&gt;
--    modelosConjuntoClausulas [[no p, q], [p], [no q]]  &lt;br /&gt;
--    ==&amp;gt; []&lt;br /&gt;
--    modelosConjuntoClausulas [[p, no p, q]]            &lt;br /&gt;
--    ==&amp;gt; [[p,q],[p],[q],[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosConjuntoClausulas :: [Clausula] -&amp;gt; [Interpretación]&lt;br /&gt;
modelosConjuntoClausulas s =&lt;br /&gt;
    [i | i &amp;lt;- interpretacionesConjuntoClausula s,&lt;br /&gt;
         esModeloConjuntoClausulas i s] &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Clausulas válidas, satisfacibles e insatisfacibles                 --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esClausulaValida :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esClausulaValida c) se verifica si la clausula c es&lt;br /&gt;
-- válida. Por ejemplo, &lt;br /&gt;
--    esClausulaValida [p, q, no p]  ==&amp;gt;  True&lt;br /&gt;
--    esClausulaValida [p, q, no r]  ==&amp;gt;  False&lt;br /&gt;
--    esClausulaValida []            ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esClausulaValida :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaValida c =&lt;br /&gt;
    [l | l &amp;lt;- c, elem (complementario l) c] /= [] &lt;br /&gt;
&lt;br /&gt;
esClausulaValida1 :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaValida1 c =&lt;br /&gt;
    or [elem (complementario l) c | l &amp;lt;- c]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Definición alternativa:&lt;br /&gt;
esClausulaValida2 :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaValida2 c =&lt;br /&gt;
    and [esModeloClausula i c | i &amp;lt;- interpretacionesClausula c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16: Definir la función&lt;br /&gt;
--    esClausulaInsatisfacible :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esClausulaInsatisfacible c) se verifica si la clausula c es&lt;br /&gt;
-- insatisfacible. Por ejemplo, &lt;br /&gt;
--    esClausulaInsatisfacible [p, q, no p]  ==&amp;gt;  False&lt;br /&gt;
--    esClausulaInsatisfacible [p, q, no r]  ==&amp;gt;  False&lt;br /&gt;
--    esClausulaInsatisfacible []            ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esClausulaInsatisfacible :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaInsatisfacible c =&lt;br /&gt;
    null c&lt;br /&gt;
&lt;br /&gt;
-- Definición alternativa:&lt;br /&gt;
esClausulaInsatisfacible1 :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaInsatisfacible1 c =&lt;br /&gt;
    and [not (esModeloClausula i c) | i &amp;lt;- interpretacionesClausula c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 17: Definir la función&lt;br /&gt;
--    esClausulaSatisfacible :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esClausulaSatisfacible c) se verifica si la clausula c es&lt;br /&gt;
-- satisfacible. Por ejemplo, &lt;br /&gt;
--    esClausulaSatisfacible [p, q, no p]  ==&amp;gt;  True&lt;br /&gt;
--    esClausulaSatisfacible [p, q, no r]  ==&amp;gt;  True&lt;br /&gt;
--    esClausulaSatisfacible []  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esClausulaSatisfacible :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaSatisfacible c =&lt;br /&gt;
    not (null c)&lt;br /&gt;
&lt;br /&gt;
-- Definición alternativa:&lt;br /&gt;
esClausulaSatisfacible1 :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaSatisfacible1 c =&lt;br /&gt;
    or [esModeloClausula i c | i &amp;lt;- interpretacionesClausula c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Conjuntos válidos, consistentes e inconsistentes de clausulas      --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 18: Definir la función&lt;br /&gt;
--    esConjuntoValidoDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConjuntoValidoDeClausulas s) se verifica si el conjunto de&lt;br /&gt;
-- clausulas s es válido. Por ejemplo,&lt;br /&gt;
--    esConjuntoValidoDeClausulas [[no p, q], [no q, p]]  ==&amp;gt;  False&lt;br /&gt;
--    esConjuntoValidoDeClausulas [[no p, p], [no q, q]]  ==&amp;gt;  True&lt;br /&gt;
--    esConjuntoValidoDeClausulas []                      ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConjuntoValidoDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
esConjuntoValidoDeClausulas s =&lt;br /&gt;
    and [esClausulaValida c | c &amp;lt;- s]&lt;br /&gt;
&lt;br /&gt;
-- Definición alternativa:&lt;br /&gt;
esConjuntoValidoDeClausulas1 :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
esConjuntoValidoDeClausulas1 s =&lt;br /&gt;
    modelosConjuntoClausulas s == interpretacionesConjuntoClausula s&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 19: Definir la función&lt;br /&gt;
--    esConjuntoConsistenteDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConjuntoConsistenteDeClausulas s) se verifica si el&lt;br /&gt;
-- conjunto de clausulas s es consistente. Por ejemplo,&lt;br /&gt;
--    esConjuntoConsistenteDeClausulas [[no p, q], [no q, p]]  ==&amp;gt;  True&lt;br /&gt;
--    esConjuntoConsistenteDeClausulas [[no p, p], [no q, q]]  ==&amp;gt;  True&lt;br /&gt;
--    esConjuntoConsistenteDeClausulas []                      ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConjuntoConsistenteDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
esConjuntoConsistenteDeClausulas s =&lt;br /&gt;
    not (null (modelosConjuntoClausulas s))&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 20: Definir la función&lt;br /&gt;
--    esConjuntoInconsistenteDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConjuntoInconsistenteDeClausulas s) se verifica si el&lt;br /&gt;
-- conjunto de clausulas s es consistente. Por ejemplo,&lt;br /&gt;
--    esConjuntoInconsistenteDeClausulas [[no p,q],[no q,p]]  ==&amp;gt;  False&lt;br /&gt;
--    esConjuntoInconsistenteDeClausulas [[no p],[p]]         ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConjuntoInconsistenteDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
esConjuntoInconsistenteDeClausulas s =&lt;br /&gt;
    null (modelosConjuntoClausulas s)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Validez de fórmulas mediante clausulas                             --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 21: Definir la función&lt;br /&gt;
--    esValidaPorClausulas :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esValidaPorClausulas f) se verifica si el conjunto de&lt;br /&gt;
-- clausulas de f es válido. Por ejemplo,&lt;br /&gt;
--    esValidaPorClausulas (p --&amp;gt; q)                 ==&amp;gt;  False&lt;br /&gt;
--    esValidaPorClausulas (p --&amp;gt; p)                 ==&amp;gt;  True&lt;br /&gt;
--    esValidaPorClausulas ((p --&amp;gt; q) \/ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esValidaPorClausulas :: Prop -&amp;gt; Bool&lt;br /&gt;
esValidaPorClausulas f =&lt;br /&gt;
    esConjuntoValidoDeClausulas (clausulas f)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia mediante clausulas                                    --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 22: Definir la función&lt;br /&gt;
--    esConsecuenciaEntreClausulas :: [Clausula] -&amp;gt; [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuenciaEntreClausulas s1 s2) se verifica si todos los&lt;br /&gt;
-- modelos de s1 son modelos de s2. Por ejemplo,&lt;br /&gt;
--    esConsecuenciaEntreClausulas [[no p,q],[no q,r]] [[no p,r]]  &lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsecuenciaEntreClausulas [[p]] [[p],[q]]                 &lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConsecuenciaEntreClausulas :: [Clausula] -&amp;gt; [Clausula] -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaEntreClausulas s1 s2 =&lt;br /&gt;
    null [i | i &amp;lt;- interpretacionesConjuntoClausula (s1++s2)&lt;br /&gt;
            , esModeloConjuntoClausulas i s1&lt;br /&gt;
            , not ((esModeloConjuntoClausulas i s2))]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 23: Definir la función&lt;br /&gt;
--    esConsecuenciaPorClausulas1 :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuenciaPorClausulas s f) se verifica si las clausulas&lt;br /&gt;
-- de f son consecuencias de las de s. Por ejemplo,&lt;br /&gt;
--    esConsecuenciaPorClausulas [(p --&amp;gt; q), (q --&amp;gt; r)] (p --&amp;gt; r)&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsecuenciaPorClausulas [p] (p /\ q)&lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConsecuenciaPorClausulas :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaPorClausulas s f =&lt;br /&gt;
    esConsecuenciaEntreClausulas (clausulasConjunto s) (clausulas f)&lt;br /&gt;
&lt;br /&gt;
-- Definición alternativa:&lt;br /&gt;
esConsecuenciaPorClausulas1 :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaPorClausulas1 s f =&lt;br /&gt;
    esConjuntoInconsistenteDeClausulas (clausulasConjunto ((Neg f):s))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=220</id>
		<title>Lógica matemática y fundamentos (2015-16)</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=220"/>
		<updated>2016-05-10T12:33:20Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(a)&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1. ([[R2 |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(a)&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:SintaxisSemantica.hs |Enunciado]], [[Relación 2a |Solución colaborativa]] y [[R2a sol | Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1:  cuestiones ([[R2b |Enunciado]] y [[Relación 2b |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]). [http://www.cs.us.es/~mjoseh/R4.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]][http://www.cs.us.es/~mjoseh/R5.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R9 |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 11 |Solución colaborativa]]  y [[R11 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[R12 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 14 |Solución colaborativa]] y [[R14 sol | Una solución ]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;font style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;Relación 5 (resuelta)&amp;lt;/font&amp;gt;&amp;#039;&amp;#039;&amp;#039;:[[Relación 5 (resuelta) |Solución]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]] y [[R7 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 9 |Solución colaborativa]] y [[Una solución | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[R12 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Argumentación y Deducción natural en lógica de primer orden.([[R14 |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 15&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R15 |Enunciado]] y [[Relación 15 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 16&amp;#039;&amp;#039;&amp;#039;: Resolución en lógica de primer orden.([[R16 |Enunciado]] y [[Relación 16 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Segundo examen (resuelto)&amp;#039;&amp;#039;&amp;#039;:([[Ejercicio 4 (a) |Solución_4a]], [[Ejercicio 4 (b)|Solución_4b]],[[Ejercicio 5 (a) |Solución_5a]] y [[Ejercicio 5 (b) |Solución_5b]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 9 |Solución colaborativa]] y [[Media:Clausulas_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 10 |Solución colaborativa]] y [[Media:ResolucionProposicional_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R11.thy |Enunciado]], [[Relación 11 |Solución colaborativa]] y [[Solución Relación 11 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas en Isabelle/HOL. ([[R12.thy |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[Solución Relación 12 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R13.thy |Enunciado]], [[Relación 13 |Solución colaborativa]] y [[Solución Relación 13 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 2&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex-30-b.hs |Primera parte]] y [[Segunda parte |Segunda parte]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 3&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex3_sol.hs |Primera parte]], [[Media:Sintaxis.hs |Sintaxis]] y [[Segunda parte (ex.3) |Segunda parte (ex3)]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 4&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex4_sol.hs |Primera parte]] y [[Segunda parte (ex.4) |Segunda parte (ex. 4)]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 13&amp;#039;&amp;#039;&amp;#039;: [[Tema 13 | Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Razonamiento por casos y por inducción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Verificación de la ordenación por inserción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 16&amp;#039;&amp;#039;&amp;#039;: [[Tema 16 | Verificación de un compilador de expresiones aritméticas]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]] y [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]] y [[AplicacionesLP |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R11_sol&amp;diff=219</id>
		<title>R11 sol</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R11_sol&amp;diff=219"/>
		<updated>2016-05-03T12:41:58Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt; -- FormasNormales.hs -- Formas normales. -- ---------------------------------------------------------------------  module FormasNormales where  -- ----...&amp;#039;&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;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    esEquivalente :: Prop -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esEquivalente f g) se verifica si f y g son&lt;br /&gt;
-- equivalentes. Por ejemplo,&lt;br /&gt;
--    esEquivalente (p &amp;lt;--&amp;gt; q) ((p --&amp;gt; q) /\ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
--    esEquivalente (p --&amp;gt; q)  ((no p) \/ q)             ==&amp;gt;  True&lt;br /&gt;
--    esEquivalente (p /\ q)   (no ((no p) \/ (no q)))   ==&amp;gt;  True&lt;br /&gt;
--    esEquivalente (p \/ q)   (no ((no p) /\ (no q)))   ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esEquivalente :: Prop -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esEquivalente f g = esValida (Equi f g)&lt;br /&gt;
&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;
&lt;br /&gt;
eliminaEquivalencias :: Prop -&amp;gt; Prop&lt;br /&gt;
eliminaEquivalencias (Atom f)   = &lt;br /&gt;
    (Atom f)&lt;br /&gt;
eliminaEquivalencias (Neg f)    = &lt;br /&gt;
    Neg (eliminaEquivalencias f) &lt;br /&gt;
eliminaEquivalencias (Conj f g) = &lt;br /&gt;
    Conj (eliminaEquivalencias f) (eliminaEquivalencias g) &lt;br /&gt;
eliminaEquivalencias (Disj f g) = &lt;br /&gt;
    Disj (eliminaEquivalencias f) (eliminaEquivalencias g) &lt;br /&gt;
eliminaEquivalencias (Impl f g) = &lt;br /&gt;
    Impl (eliminaEquivalencias f) (eliminaEquivalencias g) &lt;br /&gt;
eliminaEquivalencias (Equi f g) = &lt;br /&gt;
    Conj (Impl (eliminaEquivalencias f) (eliminaEquivalencias g))&lt;br /&gt;
         (Impl (eliminaEquivalencias g) (eliminaEquivalencias f))&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;
&lt;br /&gt;
eliminaImplicaciones :: Prop -&amp;gt; Prop&lt;br /&gt;
eliminaImplicaciones (Atom f)   = &lt;br /&gt;
    (Atom f)&lt;br /&gt;
eliminaImplicaciones (Neg f)    = &lt;br /&gt;
    Neg (eliminaImplicaciones f) &lt;br /&gt;
eliminaImplicaciones (Conj f g) = &lt;br /&gt;
    Conj (eliminaImplicaciones f) (eliminaImplicaciones g) &lt;br /&gt;
eliminaImplicaciones (Disj f g) = &lt;br /&gt;
    Disj (eliminaImplicaciones f) (eliminaImplicaciones g) &lt;br /&gt;
eliminaImplicaciones (Impl f g) = &lt;br /&gt;
    Disj (Neg (eliminaImplicaciones f)) (eliminaImplicaciones g) &lt;br /&gt;
&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;
&lt;br /&gt;
interiorizaNegación :: Prop -&amp;gt; Prop&lt;br /&gt;
interiorizaNegación (Atom f)   = &lt;br /&gt;
    (Atom f)&lt;br /&gt;
interiorizaNegación (Neg f)    = &lt;br /&gt;
    interiorizaNegaciónAux f&lt;br /&gt;
interiorizaNegación (Conj f g) = &lt;br /&gt;
    Conj (interiorizaNegación f) (interiorizaNegación g) &lt;br /&gt;
interiorizaNegación (Disj f g) = &lt;br /&gt;
    Disj (interiorizaNegación f) (interiorizaNegación g) &lt;br /&gt;
&lt;br /&gt;
interiorizaNegaciónAux :: Prop -&amp;gt; Prop&lt;br /&gt;
interiorizaNegaciónAux (Atom f)   = &lt;br /&gt;
    Neg (Atom f)&lt;br /&gt;
interiorizaNegaciónAux (Neg f)    = &lt;br /&gt;
    interiorizaNegación f &lt;br /&gt;
interiorizaNegaciónAux (Conj f g) = &lt;br /&gt;
    Disj (interiorizaNegaciónAux f) (interiorizaNegaciónAux g) &lt;br /&gt;
interiorizaNegaciónAux (Disj f g) = &lt;br /&gt;
    Conj (interiorizaNegaciónAux f) (interiorizaNegaciónAux g) &lt;br /&gt;
&lt;br /&gt;
&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;
&lt;br /&gt;
formaNormalNegativa :: Prop -&amp;gt; Prop&lt;br /&gt;
formaNormalNegativa f =&lt;br /&gt;
    interiorizaNegación (eliminaImplicaciones (eliminaEquivalencias f))&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;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal (Atom f)       = True&lt;br /&gt;
literal (Neg (Atom f)) = 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;
complementario :: Literal -&amp;gt; Literal&lt;br /&gt;
complementario (Atom f)       = Neg (Atom f)&lt;br /&gt;
complementario (Neg (Atom f)) = Atom f&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;
literalesFórmulaFNN :: Prop -&amp;gt; [Literal]&lt;br /&gt;
literalesFórmulaFNN (Disj f g) =&lt;br /&gt;
    (literalesFórmulaFNN f) `union` (literalesFórmulaFNN g)&lt;br /&gt;
literalesFórmulaFNN (Conj f g) =&lt;br /&gt;
    (literalesFórmulaFNN f) `union` (literalesFórmulaFNN g)&lt;br /&gt;
literalesFórmulaFNN f          = [f]&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;
interiorizaDisyunción :: Prop -&amp;gt; Prop&lt;br /&gt;
interiorizaDisyunción (Disj (Conj f1 f2) g) =&lt;br /&gt;
    interiorizaDisyunción &lt;br /&gt;
    (Conj (Disj (interiorizaDisyunción f1) (interiorizaDisyunción g))&lt;br /&gt;
          (Disj (interiorizaDisyunción f2) (interiorizaDisyunción g)))&lt;br /&gt;
interiorizaDisyunción (Disj f (Conj g1 g2)) =&lt;br /&gt;
    interiorizaDisyunción&lt;br /&gt;
    (Conj (Disj (interiorizaDisyunción f) (interiorizaDisyunción g1))&lt;br /&gt;
          (Disj (interiorizaDisyunción f) (interiorizaDisyunción g2)))&lt;br /&gt;
interiorizaDisyunción (Conj f g) =&lt;br /&gt;
    Conj (interiorizaDisyunción f) (interiorizaDisyunción g)&lt;br /&gt;
interiorizaDisyunción 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;
formaNormalConjuntiva :: Prop -&amp;gt; Prop&lt;br /&gt;
formaNormalConjuntiva f =&lt;br /&gt;
    interiorizaDisyunción (formaNormalNegativa f)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Ejercicio 11.2: Definir la función&lt;br /&gt;
--    validaPorFNC:: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (validaPorFNC f) comprueba si f es válida. Por ejemplo,&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;
validaPorFNC:: Prop -&amp;gt; Bool&lt;br /&gt;
validaPorFNC f = all tieneParComplementario (listaLiterales f)&lt;br /&gt;
    where tieneParComplementario xs = or [(complementario p) `elem` xs | p &amp;lt;- xs]&lt;br /&gt;
&lt;br /&gt;
listaLiterales :: Prop -&amp;gt; [[Prop]]&lt;br /&gt;
listaLiterales f = &lt;br /&gt;
    map listaLiteralesDisyuncion &lt;br /&gt;
            (listaDisyuncionesFNC (formaNormalConjuntiva f))&lt;br /&gt;
&lt;br /&gt;
listaDisyuncionesFNC :: Prop -&amp;gt; [Prop]&lt;br /&gt;
listaDisyuncionesFNC (Conj f g) = (listaDisyuncionesFNC f) `union`&lt;br /&gt;
                                  (listaDisyuncionesFNC g)         &lt;br /&gt;
listaDisyuncionesFNC f = [f]&lt;br /&gt;
&lt;br /&gt;
listaLiteralesDisyuncion :: Prop -&amp;gt; [Prop]&lt;br /&gt;
listaLiteralesDisyuncion (Disj f g) = (listaLiteralesDisyuncion f) `union`&lt;br /&gt;
                                      (listaLiteralesDisyuncion g)&lt;br /&gt;
listaLiteralesDisyuncion f = [f]&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;
interiorizaConjunción :: Prop -&amp;gt; Prop&lt;br /&gt;
interiorizaConjunción (Conj (Disj f1 f2) g) =&lt;br /&gt;
    interiorizaConjunción&lt;br /&gt;
    (Disj (Conj (interiorizaConjunción f1) (interiorizaConjunción g))&lt;br /&gt;
          (Conj (interiorizaConjunción f2) (interiorizaConjunción g)))&lt;br /&gt;
interiorizaConjunción (Conj f (Disj g1 g2)) =&lt;br /&gt;
    interiorizaConjunción&lt;br /&gt;
    (Disj (Conj (interiorizaConjunción f) (interiorizaConjunción g1))&lt;br /&gt;
          (Conj (interiorizaConjunción f) (interiorizaConjunción g2)))&lt;br /&gt;
interiorizaConjunción (Disj f g) =&lt;br /&gt;
    Disj (interiorizaConjunción f) (interiorizaConjunción g)&lt;br /&gt;
interiorizaConjunción 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;
formaNormalDisyuntiva :: Prop -&amp;gt; Prop&lt;br /&gt;
formaNormalDisyuntiva f =&lt;br /&gt;
    interiorizaConjunción (formaNormalNegativa f)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--     satisfaciblePorFND:: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (satisfaciblePorFND f) comprueba si f es satisfacible. Por&lt;br /&gt;
-- ejemplo,&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;
&lt;br /&gt;
satisfaciblePorFND:: Prop -&amp;gt; Bool&lt;br /&gt;
satisfaciblePorFND f = any noTieneParComplementario (listaLiterales&amp;#039; f)&lt;br /&gt;
    where noTieneParComplementario xs = &lt;br /&gt;
              and [not ((complementario p) `elem` xs) | p &amp;lt;- xs]&lt;br /&gt;
&lt;br /&gt;
listaLiterales&amp;#039; :: Prop -&amp;gt; [[Prop]]&lt;br /&gt;
listaLiterales&amp;#039; f = &lt;br /&gt;
    map listaLiteralesConjuncion &lt;br /&gt;
            (listaConjuncionesFND (formaNormalDisyuntiva f))&lt;br /&gt;
&lt;br /&gt;
listaConjuncionesFND :: Prop -&amp;gt; [Prop]&lt;br /&gt;
listaConjuncionesFND (Disj f g) = (listaConjuncionesFND f) `union`&lt;br /&gt;
                                  (listaConjuncionesFND g)         &lt;br /&gt;
listaConjuncionesFND f = [f]&lt;br /&gt;
&lt;br /&gt;
listaLiteralesConjuncion :: Prop -&amp;gt; [Prop]&lt;br /&gt;
listaLiteralesConjuncion (Conj f g) = (listaLiteralesConjuncion f) `union`&lt;br /&gt;
                                      (listaLiteralesConjuncion g)&lt;br /&gt;
listaLiteralesConjuncion f = [f]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=218</id>
		<title>Lógica matemática y fundamentos (2015-16)</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=218"/>
		<updated>2016-05-03T12:41:24Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(a)&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1. ([[R2 |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(a)&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:SintaxisSemantica.hs |Enunciado]], [[Relación 2a |Solución colaborativa]] y [[R2a sol | Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1:  cuestiones ([[R2b |Enunciado]] y [[Relación 2b |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]). [http://www.cs.us.es/~mjoseh/R4.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]][http://www.cs.us.es/~mjoseh/R5.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R9 |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 11 |Solución colaborativa]]  y [[R11 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 12 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 14 |Solución colaborativa]] y [[R14 sol | Una solución ]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;font style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;Relación 5 (resuelta)&amp;lt;/font&amp;gt;&amp;#039;&amp;#039;&amp;#039;:[[Relación 5 (resuelta) |Solución]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]] y [[R7 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 9 |Solución colaborativa]] y [[Una solución | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[R12 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Argumentación y Deducción natural en lógica de primer orden.([[R14 |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 15&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R15 |Enunciado]] y [[Relación 15 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 16&amp;#039;&amp;#039;&amp;#039;: Resolución en lógica de primer orden.([[R16 |Enunciado]] y [[Relación 16 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Segundo examen (resuelto)&amp;#039;&amp;#039;&amp;#039;:([[Ejercicio 4 (a) |Solución_4a]], [[Ejercicio 4 (b)|Solución_4b]],[[Ejercicio 5 (a) |Solución_5a]] y [[Ejercicio 5 (b) |Solución_5b]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 9 |Solución colaborativa]] y [[Media:Clausulas_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 10 |Solución colaborativa]] y [[Media:ResolucionProposicional_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R11.thy |Enunciado]], [[Relación 11 |Solución colaborativa]] y [[Solución Relación 11 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas en Isabelle/HOL. ([[R12.thy |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[Solución Relación 12 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R13.thy |Enunciado]], [[Relación 13 |Solución colaborativa]] y [[Solución Relación 13 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 2&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex-30-b.hs |Primera parte]] y [[Segunda parte |Segunda parte]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 3&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex3_sol.hs |Primera parte]], [[Media:Sintaxis.hs |Sintaxis]] y [[Segunda parte (ex.3) |Segunda parte (ex3)]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 4&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex4_sol.hs |Primera parte]] y [[Segunda parte (ex.4) |Segunda parte (ex. 4)]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 13&amp;#039;&amp;#039;&amp;#039;: [[Tema 13 | Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Razonamiento por casos y por inducción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Verificación de la ordenación por inserción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 16&amp;#039;&amp;#039;&amp;#039;: [[Tema 16 | Verificación de un compilador de expresiones aritméticas]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]] y [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]] y [[AplicacionesLP |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_14&amp;diff=217</id>
		<title>Relación 14</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_14&amp;diff=217"/>
		<updated>2016-05-03T12:39:04Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt; -- ResolucionProposicional.hs -- Resolución proposicional. -- ---------------------------------------------------------------------  module Resolucion...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- ResolucionProposicional.hs&lt;br /&gt;
-- Resolución proposicional.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module ResolucionProposicional where&lt;br /&gt;
&lt;br /&gt;
import SintaxisSemantica&lt;br /&gt;
import FormasNormales&lt;br /&gt;
import Clausulas&lt;br /&gt;
import Data.List&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Resolventes                                                        --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    resolvente :: Clausula -&amp;gt; Clausula -&amp;gt; Literal -&amp;gt; Clausula&lt;br /&gt;
-- tal que (resolvente c1 c2 l) es la resolvente de c1 y c2 respecto del&lt;br /&gt;
-- literal l. Por ejemplo,&lt;br /&gt;
--    resolvente [no p,q] [no q,r] q  ==&amp;gt;  [no p,r]&lt;br /&gt;
--    resolvente [no p,no q] [q,r] (no q)  ==&amp;gt;  [no p,r]&lt;br /&gt;
--    resolvente [no p,q] [no p,no q] q  ==&amp;gt;  [no p]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
resolvente :: Clausula -&amp;gt; Clausula -&amp;gt; Literal -&amp;gt; Clausula&lt;br /&gt;
resolvente c1 c2 l = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    resolventes :: Clausula -&amp;gt; Clausula -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (resolventes c1 c2) es el conjunto de las resolventes de c1 y&lt;br /&gt;
-- c2. Por ejemplo,&lt;br /&gt;
--    resolventes [no p,q] [p,no q]  ==&amp;gt;  [[q,no q],[no p,p]]&lt;br /&gt;
--    resolventes [no p,q] [p,q]     ==&amp;gt;  [[q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
resolventes :: Clausula -&amp;gt; Clausula -&amp;gt; [Clausula]&lt;br /&gt;
resolventes c1 c2 = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    resolventesClausulaConjunto :: Clausula -&amp;gt; [Clausula] -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (resolventes c s) es el conjunto de las resolventes de c y&lt;br /&gt;
-- s. Por ejemplo, &lt;br /&gt;
--    resolventesClausulaConjunto [no p,q] [[p,q],[p,r],[no q,s]]&lt;br /&gt;
--    ==&amp;gt; [[q],[q,r],[no p,s]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
resolventesClausulaConjunto :: Clausula -&amp;gt; [Clausula] -&amp;gt; [Clausula]&lt;br /&gt;
resolventesClausulaConjunto c s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Eliminación de tautologías                                         --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    esTautologia :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTautologia c) se verifica si c es una tautología. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esTautologia [p, q, no p]  ==&amp;gt;  True&lt;br /&gt;
--    esTautologia [p, q, no r]  ==&amp;gt;  False&lt;br /&gt;
--    esTautologia []            ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esTautologia :: Clausula -&amp;gt; Bool&lt;br /&gt;
esTautologia c = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    eliminaTautologias :: [Clausula] -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (eliminaTautologias s) es el conjunto obtenido eliminando las&lt;br /&gt;
-- tautologías de s. Por ejemplo,&lt;br /&gt;
--    eliminaTautologias [[p, q], [p, q, no p]]  ==&amp;gt;  [[p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
eliminaTautologias :: [Clausula] -&amp;gt; [Clausula]&lt;br /&gt;
eliminaTautologias s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Decisión de inconsistencia por resolución                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    esInconsistentePorResolucion :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esInconsistentePorResolucion s) se verifica si s es&lt;br /&gt;
-- inconsistente mediante resolución. Por ejemplo,&lt;br /&gt;
--    esInconsistentePorResolucion [[p],[no p,q],[no q]]&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esInconsistentePorResolucion [[p],[no p,q]]&lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
--    esInconsistentePorResolucion [[p,q],[no p,q],[p,no q],[no p,no q]]&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esInconsistentePorResolucion [[p,q],[p,r],[no q,no r],[no p]]&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esInconsistentePorResolucion :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
esInconsistentePorResolucion s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Validez mediante resolución                                        --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    esVálidaPorResolucion :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esVálidaPorResolucion f) se verifica si f es válida por&lt;br /&gt;
-- resolución. Por ejemplo, &lt;br /&gt;
--    esVálidaPorResolucion (p --&amp;gt; p)                 ==&amp;gt;  True&lt;br /&gt;
--    esVálidaPorResolucion ((p --&amp;gt; q) \/ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
--    esVálidaPorResolucion (p --&amp;gt; q)                 ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esVálidaPorResolucion :: Prop -&amp;gt; Bool&lt;br /&gt;
esVálidaPorResolucion f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia mediante resolución                                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    esConsecuenciaPorResolucion :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuenciaPorResolucion s f) se verifica si f es&lt;br /&gt;
-- consecuencia de s mediante el método de resolución. Por ejemplo,&lt;br /&gt;
--    esConsecuenciaPorResolucion [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)  &lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsecuenciaPorResolucion [p --&amp;gt; q, q --&amp;gt; r] (p &amp;lt;--&amp;gt; r)&lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConsecuenciaPorResolucion :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaPorResolucion s f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Archivo:ResolucionProposicional.hs&amp;diff=216</id>
		<title>Archivo:ResolucionProposicional.hs</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Archivo:ResolucionProposicional.hs&amp;diff=216"/>
		<updated>2016-05-03T12:38:05Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R13&amp;diff=215</id>
		<title>R13</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R13&amp;diff=215"/>
		<updated>2016-05-03T12:37:33Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Protegió «R13» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 13: Cuestiones  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
* Para toda fórmula F se tiene que si G es una forma de Skolem de F entonces ⊧ F ⇔ G.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Dar una fórmula F, tal que todo modelo de F tenga al menos 3 elementos. Generalizarlo a n cualquiera.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Dar una fórmula F satisfacible, tal que todos sus modelos sean necesariamante infinitos.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; ¿Cuántos elementos han de tener los modelos de la fórmula F = ∀x f(f(x))= x ∧ ∀x f(x) ≠ x?&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_13&amp;diff=214</id>
		<title>Relación 13</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_13&amp;diff=214"/>
		<updated>2016-05-03T12:37:19Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 13: Cuestiones  ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:  * Para toda fórmula F se tiene que si G es una forma de Skolem de F e...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 13: Cuestiones  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
* Para toda fórmula F se tiene que si G es una forma de Skolem de F entonces ⊧ F ⇔ G.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Dar una fórmula F, tal que todo modelo de F tenga al menos 3 elementos. Generalizarlo a n cualquiera.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Dar una fórmula F satisfacible, tal que todos sus modelos sean necesariamante infinitos.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; ¿Cuántos elementos han de tener los modelos de la fórmula F = ∀x f(f(x))= x ∧ ∀x f(x) ≠ x?&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R13&amp;diff=213</id>
		<title>R13</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R13&amp;diff=213"/>
		<updated>2016-05-03T12:37:08Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 13: Cuestiones  ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:  * Para toda fórmula F se tiene que si G es una forma de Skolem de F e...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 13: Cuestiones  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
* Para toda fórmula F se tiene que si G es una forma de Skolem de F entonces ⊧ F ⇔ G.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Dar una fórmula F, tal que todo modelo de F tenga al menos 3 elementos. Generalizarlo a n cualquiera.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Dar una fórmula F satisfacible, tal que todos sus modelos sean necesariamante infinitos.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; ¿Cuántos elementos han de tener los modelos de la fórmula F = ∀x f(f(x))= x ∧ ∀x f(x) ≠ x?&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=212</id>
		<title>Lógica matemática y fundamentos (2015-16)</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=212"/>
		<updated>2016-05-03T12:36:47Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(a)&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1. ([[R2 |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(a)&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:SintaxisSemantica.hs |Enunciado]], [[Relación 2a |Solución colaborativa]] y [[R2a sol | Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1:  cuestiones ([[R2b |Enunciado]] y [[Relación 2b |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]). [http://www.cs.us.es/~mjoseh/R4.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]][http://www.cs.us.es/~mjoseh/R5.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R9 |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 11 |Solución colaborativa]] &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 12 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 14 |Solución colaborativa]] y [[R14 sol | Una solución ]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;font style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;Relación 5 (resuelta)&amp;lt;/font&amp;gt;&amp;#039;&amp;#039;&amp;#039;:[[Relación 5 (resuelta) |Solución]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]] y [[R7 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 9 |Solución colaborativa]] y [[Una solución | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[R12 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Argumentación y Deducción natural en lógica de primer orden.([[R14 |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 15&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R15 |Enunciado]] y [[Relación 15 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 16&amp;#039;&amp;#039;&amp;#039;: Resolución en lógica de primer orden.([[R16 |Enunciado]] y [[Relación 16 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Segundo examen (resuelto)&amp;#039;&amp;#039;&amp;#039;:([[Ejercicio 4 (a) |Solución_4a]], [[Ejercicio 4 (b)|Solución_4b]],[[Ejercicio 5 (a) |Solución_5a]] y [[Ejercicio 5 (b) |Solución_5b]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 9 |Solución colaborativa]] y [[Media:Clausulas_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 10 |Solución colaborativa]] y [[Media:ResolucionProposicional_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R11.thy |Enunciado]], [[Relación 11 |Solución colaborativa]] y [[Solución Relación 11 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas en Isabelle/HOL. ([[R12.thy |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[Solución Relación 12 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R13.thy |Enunciado]], [[Relación 13 |Solución colaborativa]] y [[Solución Relación 13 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 2&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex-30-b.hs |Primera parte]] y [[Segunda parte |Segunda parte]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 3&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex3_sol.hs |Primera parte]], [[Media:Sintaxis.hs |Sintaxis]] y [[Segunda parte (ex.3) |Segunda parte (ex3)]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 4&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex4_sol.hs |Primera parte]] y [[Segunda parte (ex.4) |Segunda parte (ex. 4)]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 13&amp;#039;&amp;#039;&amp;#039;: [[Tema 13 | Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Razonamiento por casos y por inducción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Verificación de la ordenación por inserción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 16&amp;#039;&amp;#039;&amp;#039;: [[Tema 16 | Verificación de un compilador de expresiones aritméticas]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]] y [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]] y [[AplicacionesLP |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_9&amp;diff=211</id>
		<title>Relación 9</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_9&amp;diff=211"/>
		<updated>2016-05-02T16:27:52Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 9: Cuestiones  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
* Sean G₁ una forma normal disyuntiva de F₁ y G₂ una forma normal disyuntiva de F₂. Si F₁ y F₂ son equivalentes, entonces G₁ y G₂ son fórmulas iguales.&lt;br /&gt;
* Para toda fórmula F se tiene que si G₁ es una forma normal conjuntiva de F y G₂ es una forma normal normal disyuntiva de F, entonces G₁ y G₂ son fórmulas distintas.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguientes afirmaciones:&lt;br /&gt;
&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, D ⊂ C₁ y D ≠ C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂ y D = C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, C₁ ⊂ D y C₂ no es una tautología&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_12&amp;diff=210</id>
		<title>Relación 12</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_12&amp;diff=210"/>
		<updated>2016-04-29T08:05:55Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt; -- Clausulas.hs -- Cláusulas. -- ---------------------------------------------------------------------  module Clausulas where  -- -------------------...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- Clausulas.hs&lt;br /&gt;
-- Cláusulas.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module Clausulas 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 FormasNormales&lt;br /&gt;
import Data.List&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Cláusulas                                                          --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir el tipo de datos Cláusula como una lista de&lt;br /&gt;
-- literales. &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
type Clausula = [Literal]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    clausula :: Prop -&amp;gt; Clausula&lt;br /&gt;
-- tal que (clausula f) es la clausula de la fórmula-clausal f. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    clausula p                                 ==&amp;gt;  [p]&lt;br /&gt;
--    clausula (no p)                            ==&amp;gt;  [no p]&lt;br /&gt;
--    clausula (((no p) \/ r) \/ ((no p) \/ q))  ==&amp;gt;  [q,r,no p]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
clausula :: Prop -&amp;gt; Clausula&lt;br /&gt;
clausula f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    clausulasFNC :: Prop -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (clausulasFNC f) es el conjunto de cláusulas de la fórmula en&lt;br /&gt;
-- forma normal conjuntiva f. Por ejmplo,&lt;br /&gt;
--    clausulasFNC (p /\ ((no q) \/ r))&lt;br /&gt;
--    ==&amp;gt; [[p],[r, no q]]&lt;br /&gt;
--    clausulasFNC (((no p) \/ q) /\ ((no p) \/ (no r)))&lt;br /&gt;
--    ==&amp;gt; [[q, no p],[no p,no r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
clausulasFNC :: Prop -&amp;gt; [Clausula]&lt;br /&gt;
clausulasFNC = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    clausulas :: Prop -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (clausulas f) es un conjunto de cláusulas equivalente a&lt;br /&gt;
-- f. Por ejemplo,&lt;br /&gt;
--    clausulas (p /\ (q --&amp;gt; r))       &lt;br /&gt;
--    ==&amp;gt; [[p],[r,no q]]&lt;br /&gt;
--    clausulas (no (p /\ (q --&amp;gt; r)))  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p,no r]]&lt;br /&gt;
--    clausulas (no(p &amp;lt;--&amp;gt; r))         &lt;br /&gt;
--    ==&amp;gt; [[p,r],[p,no p],[r,no r],[no p,no r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
clausulas :: Prop -&amp;gt; [Clausula]&lt;br /&gt;
clausulas f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Cláusulas de un conjunto de fórmulas                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    clausulasConjunto :: [Prop] -&amp;gt; [Clausula]&lt;br /&gt;
-- tal que (clausulasConjunto s) es un conjunto de cláusulas equivalente&lt;br /&gt;
-- a s. Por ejemplo,&lt;br /&gt;
--    clausulasConjunto [p --&amp;gt; q, q --&amp;gt; r]   ==&amp;gt;  [[q,no p],[r,no q]]&lt;br /&gt;
--    clausulasConjunto [p --&amp;gt; q, q &amp;lt;--&amp;gt; p]  ==&amp;gt;  [[q,no p],[p,no q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
clausulasConjunto :: [Prop] -&amp;gt; [Clausula]&lt;br /&gt;
clausulasConjunto s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Símbolos proposicionales de una cláusula                           --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir la función&lt;br /&gt;
--    simbolosProposicionalesClausula :: Clausula -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (simbolosProposicionalesClausula c) es el conjunto de los&lt;br /&gt;
-- símbolos proposicionales de c. Por ejemplo,&lt;br /&gt;
--    simbolosProposicionalesClausula [p, q, no p]  ==&amp;gt;  [p,q]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
simbolosProposicionalesClausula :: Clausula -&amp;gt; [Prop]&lt;br /&gt;
simbolosProposicionalesClausula = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Símbolos proposicionales de un conjunto de cláusulas               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    simbolosProposicionalesConjuntoClausula :: [Clausula] -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (simbolosProposicionalesConjuntoClausula s) es el conjunto de los&lt;br /&gt;
-- símbolos proposicionales de s. Por ejemplo,&lt;br /&gt;
--    simbolosProposicionalesConjuntoClausula [[p, q],[no q, r]]&lt;br /&gt;
--    ==&amp;gt; [p,q,r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
simbolosProposicionalesConjuntoClausula :: [Clausula] -&amp;gt; [Prop]&lt;br /&gt;
simbolosProposicionalesConjuntoClausula s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Interpretaciones de una cláusula                                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    interpretacionesClausula :: Clausula -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tal que (interpretacionesClausula c) es el conjunto de&lt;br /&gt;
-- interpretaciones de c. Por ejemplo,&lt;br /&gt;
--    interpretacionesClausula [p, q, no p]  ==&amp;gt;  [[p,q],[p],[q],[]]&lt;br /&gt;
--    interpretacionesClausula []            ==&amp;gt;  [[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
interpretacionesClausula :: Clausula -&amp;gt; [Interpretacion]&lt;br /&gt;
interpretacionesClausula c = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Interpretaciones de un conjunto de cláusulas                       --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    interpretacionesConjuntoClausula :: [Clausula] -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tal que (interpretacionesConjuntoClausula s) es el conjunto de&lt;br /&gt;
-- interpretaciones de s. Por ejemplo,&lt;br /&gt;
--    interpretacionesConjuntoClausula [[p, no q],[no p, q]]&lt;br /&gt;
--    ==&amp;gt; [[p,q],[p],[q],[]]&lt;br /&gt;
--    interpretacionesConjuntoClausula []&lt;br /&gt;
--    ==&amp;gt; [[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
interpretacionesConjuntoClausula :: [Clausula] -&amp;gt; [Interpretacion]&lt;br /&gt;
interpretacionesConjuntoClausula c = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos de cláusulas                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    esModeloLiteral :: Interpretacion -&amp;gt; Literal -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloLiteral i l) se verifica si i es modelo de l. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloLiteral [p,r] p       ==&amp;gt;  True&lt;br /&gt;
--    esModeloLiteral [p,r] q       ==&amp;gt;  False&lt;br /&gt;
--    esModeloLiteral [p,r] (no p)  ==&amp;gt;  False&lt;br /&gt;
--    esModeloLiteral [p,r] (no q)  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloLiteral :: Interpretacion -&amp;gt; Literal -&amp;gt; Bool&lt;br /&gt;
esModeloLiteral = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    esModeloClausula :: Interpretacion -&amp;gt; Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloClausula i c) se verifica si i es modelo de c . Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloClausula [p,r] [p, q]     ==&amp;gt;  True&lt;br /&gt;
--    esModeloClausula [r] [p, no q]    ==&amp;gt;  True&lt;br /&gt;
--    esModeloClausula [q,r] [p, no q]  ==&amp;gt;  False&lt;br /&gt;
--    esModeloClausula [q,r] []         ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloClausula :: Interpretacion -&amp;gt; Clausula -&amp;gt; Bool&lt;br /&gt;
esModeloClausula i c = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    modelosClausula :: Clausula -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tal que (modelosClausula c) es la lista de los modelos de c. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosClausula [no p, q]  ==&amp;gt;  [[p,q],[q],[]]&lt;br /&gt;
--    modelosClausula [no p, p]  ==&amp;gt;  [[p],[]]&lt;br /&gt;
--    modelosClausula []         ==&amp;gt;  []&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosClausula :: Clausula -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosClausula c = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos de conjuntos de cláusulas                                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    esModeloConjuntoClausulas :: Interpretacion -&amp;gt; [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloConjuntoClausulas i c) se verifica si i es modelo de&lt;br /&gt;
-- c. Por ejemplo,&lt;br /&gt;
--    esModeloConjuntoClausulas [p,r] [[p, no q], [r]]  ==&amp;gt;  True&lt;br /&gt;
--    esModeloConjuntoClausulas [p] [[p, no q], [r]]    ==&amp;gt;  False&lt;br /&gt;
--    esModeloConjuntoClausulas [p] []                  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloConjuntoClausulas :: Interpretacion -&amp;gt; [Clausula] -&amp;gt; Bool&lt;br /&gt;
esModeloConjuntoClausulas i s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    modelosConjuntoClausulas :: [Clausula] -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tal que (modelosConjuntoClausulas s) es la lista de los modelos de&lt;br /&gt;
-- s. Por ejemplo, &lt;br /&gt;
--    modelosConjuntoClausulas [[no p, q], [no q, p]]    &lt;br /&gt;
--    ==&amp;gt; [[p,q],[]]&lt;br /&gt;
--    modelosConjuntoClausulas [[no p, q], [p], [no q]]  &lt;br /&gt;
--    ==&amp;gt; []&lt;br /&gt;
--    modelosConjuntoClausulas [[p, no p, q]]            &lt;br /&gt;
--    ==&amp;gt; [[p,q],[p],[q],[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosConjuntoClausulas :: [Clausula] -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosConjuntoClausulas s = undefined &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Clausulas válidas, satisfacibles e insatisfacibles                 --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    esClausulaValida :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esClausulaValida c) se verifica si la cláusula c es&lt;br /&gt;
-- válida. Por ejemplo, &lt;br /&gt;
--    esClausulaValida [p, q, no p]  ==&amp;gt;  True&lt;br /&gt;
--    esClausulaValida [p, q, no r]  ==&amp;gt;  False&lt;br /&gt;
--    esClausulaValida []            ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esClausulaValida :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaValida c = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16: Definir la función&lt;br /&gt;
--    esClausulaInsatisfacible :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esClausulaInsatisfacible c) se verifica si la cláusula c es&lt;br /&gt;
-- insatisfacible. Por ejemplo, &lt;br /&gt;
--    esClausulaInsatisfacible [p, q, no p]  ==&amp;gt;  False&lt;br /&gt;
--    esClausulaInsatisfacible [p, q, no r]  ==&amp;gt;  False&lt;br /&gt;
--    esClausulaInsatisfacible []            ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esClausulaInsatisfacible :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaInsatisfacible c = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 17: Definir la función&lt;br /&gt;
--    esClausulaSatisfacible :: Clausula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esClausulaSatisfacible c) se verifica si la cláusula c es&lt;br /&gt;
-- satisfacible. Por ejemplo, &lt;br /&gt;
--    esClausulaSatisfacible [p, q, no p]  ==&amp;gt;  True&lt;br /&gt;
--    esClausulaSatisfacible [p, q, no r]  ==&amp;gt;  True&lt;br /&gt;
--    esClausulaSatisfacible []  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esClausulaSatisfacible :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaSatisfacible c = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Conjuntos válidos, consistentes e inconsistentes de cláusulas      --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 18: Definir la función&lt;br /&gt;
--    esConjuntoVálidoDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConjuntoVálidoDeClausulas s) se verifica si el conjunto de&lt;br /&gt;
-- cláusulas s es válido. Por ejemplo,&lt;br /&gt;
--    esConjuntoVálidoDeClausulas [[no p, q], [no q, p]]  ==&amp;gt;  False&lt;br /&gt;
--    esConjuntoVálidoDeClausulas [[no p, p], [no q, q]]  ==&amp;gt;  True&lt;br /&gt;
--    esConjuntoVálidoDeClausulas []                      ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConjuntoVálidoDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
esConjuntoVálidoDeClausulas s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 19: Definir la función&lt;br /&gt;
--    esConjuntoConsistenteDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConjuntoConsistenteDeClausulas s) se verifica si el&lt;br /&gt;
-- conjunto de cláusulas s es consistente. Por ejemplo,&lt;br /&gt;
--    esConjuntoConsistenteDeClausulas [[no p, q], [no q, p]]  ==&amp;gt;  True&lt;br /&gt;
--    esConjuntoConsistenteDeClausulas [[no p, p], [no q, q]]  ==&amp;gt;  True&lt;br /&gt;
--    esConjuntoConsistenteDeClausulas []                      ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConjuntoConsistenteDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
esConjuntoConsistenteDeClausulas s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 20: Definir la función&lt;br /&gt;
--    esConjuntoInconsistenteDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConjuntoInconsistenteDeClausulas s) se verifica si el&lt;br /&gt;
-- conjunto de cláusulas s es consistente. Por ejemplo,&lt;br /&gt;
--    esConjuntoInconsistenteDeClausulas [[no p,q],[no q,p]]  ==&amp;gt;  False&lt;br /&gt;
--    esConjuntoInconsistenteDeClausulas [[no p],[p]]         ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConjuntoInconsistenteDeClausulas :: [Clausula] -&amp;gt; Bool&lt;br /&gt;
esConjuntoInconsistenteDeClausulas s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Validez de fórmulas mediante cláusulas                             --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 21: Definir la función&lt;br /&gt;
--    esValidaPorClausulas :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esValidaPorClausulas f) se verifica si el conjunto de&lt;br /&gt;
-- cláusulas de f es válido. Por ejemplo,&lt;br /&gt;
--    esValidaPorClausulas (p --&amp;gt; q)                 ==&amp;gt;  False&lt;br /&gt;
--    esValidaPorClausulas (p --&amp;gt; p)                 ==&amp;gt;  True&lt;br /&gt;
--    esValidaPorClausulas ((p --&amp;gt; q) \/ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esValidaPorClausulas :: Prop -&amp;gt; Bool&lt;br /&gt;
esValidaPorClausulas f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia mediante cláusulas                                    --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 22: Definir la función&lt;br /&gt;
--    esConsecuenciaEntreClausulas :: [Clausula] -&amp;gt; [Clausula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuenciaEntreClausulas s1 s2) se verifica si todos los&lt;br /&gt;
-- modelos de s1 son modelos de s2. Por ejemplo,&lt;br /&gt;
--    esConsecuenciaEntreClausulas [[no p,q],[no q,r]] [[no p,r]]  &lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsecuenciaEntreClausulas [[p]] [[p],[q]]                 &lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConsecuenciaEntreClausulas :: [Clausula] -&amp;gt; [Clausula] -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaEntreClausulas s1 s2 = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 23: Definir la función&lt;br /&gt;
--    esConsecuenciaPorClausulas1 :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuenciaPorClausulas s f) se verifica si las cláusulas&lt;br /&gt;
-- de f son consecuencias de las de s. Por ejemplo,&lt;br /&gt;
--    esConsecuenciaPorClausulas [(p --&amp;gt; q), (q --&amp;gt; r)] (p --&amp;gt; r)&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsecuenciaPorClausulas [p] (p /\ q)&lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConsecuenciaPorClausulas :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaPorClausulas s f = undefined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_11&amp;diff=209</id>
		<title>Relación 11</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_11&amp;diff=209"/>
		<updated>2016-04-29T08:05:09Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt; -- FormasNormales.hs -- Formas normales. -- ---------------------------------------------------------------------  module FormasNormales where  -- ----...&amp;#039;&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;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir la función&lt;br /&gt;
--    esEquivalente :: Prop -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esEquivalente f g) se verifica si f y g son&lt;br /&gt;
-- equivalentes. Por ejemplo,&lt;br /&gt;
--    esEquivalente (p &amp;lt;--&amp;gt; q) ((p --&amp;gt; q) /\ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
--    esEquivalente (p --&amp;gt; q)  ((no p) \/ q)             ==&amp;gt;  True&lt;br /&gt;
--    esEquivalente (p /\ q)   (no ((no p) \/ (no q)))   ==&amp;gt;  True&lt;br /&gt;
--    esEquivalente (p \/ q)   (no ((no p) /\ (no q)))   ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esEquivalente :: Prop -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esEquivalente f g = undefined&lt;br /&gt;
&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;
&lt;br /&gt;
eliminaEquivalencias :: Prop -&amp;gt; Prop&lt;br /&gt;
eliminaEquivalencias = undefined&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;
&lt;br /&gt;
eliminaImplicaciones :: Prop -&amp;gt; Prop&lt;br /&gt;
eliminaImplicaciones  = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    interiorizaNegacion :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (interiorizaNegacion 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;
--    interiorizaNegacion (no (no p))         ==&amp;gt;  p&lt;br /&gt;
--    interiorizaNegacion (no (p /\ q))       ==&amp;gt;  (no p \/ no q)&lt;br /&gt;
--    interiorizaNegacion (no (p \/ q))       ==&amp;gt;  (no p /\ no q)&lt;br /&gt;
--    interiorizaNegacion (no (no (p \/ q)))  ==&amp;gt;  (p \/ q)&lt;br /&gt;
--    interiorizaNegacion (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;
&lt;br /&gt;
interiorizaNegacion :: Prop -&amp;gt; Prop&lt;br /&gt;
interiorizaNegacion = undefined&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;
&lt;br /&gt;
formaNormalNegativa :: Prop -&amp;gt; Prop&lt;br /&gt;
formaNormalNegativa f = undefined&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;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal = undefined&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;
complementario :: Literal -&amp;gt; Literal&lt;br /&gt;
complementario = undefined &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    literalesFormulaFNN :: Prop -&amp;gt; [Literal]&lt;br /&gt;
-- tal que (literalesFormulaFNN f) es el conjunto de los literales de la&lt;br /&gt;
-- fórmula en forma normal negativa f.&lt;br /&gt;
--    literalesFormulaFNN (p \/ ((no q) \/ r))  ==&amp;gt;  [p,no q,r]&lt;br /&gt;
--    literalesFormulaFNN p                     ==&amp;gt;  [p]&lt;br /&gt;
--    literalesFormulaFNN (no p)                ==&amp;gt;  [no p]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
literalesFormulaFNN :: Prop -&amp;gt; [Literal]&lt;br /&gt;
literalesFormulaFNN = undefined &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;
--    interiorizaDisyuncion :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (interiorizaDisyuncion 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;
--    interiorizaDisyuncion (p \/ (q /\ r))  ==&amp;gt;  ((p \/ q) /\ (p \/ r))&lt;br /&gt;
--    interiorizaDisyuncion ((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;
interiorizaDisyuncion :: Prop -&amp;gt; Prop&lt;br /&gt;
interiorizaDisyuncion = undefined &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;
formaNormalConjuntiva :: Prop -&amp;gt; Prop&lt;br /&gt;
formaNormalConjuntiva f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Ejercicio 11.2: Definir la función&lt;br /&gt;
--    validaPorFNC:: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (validaPorFNC f) comprueba si f es válida. Por ejemplo,&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;
&lt;br /&gt;
validaPorFNC:: Prop -&amp;gt; Bool&lt;br /&gt;
validaPorFNC = undefined&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;
--    interiorizaConjuncion :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (interiorizaConjuncion 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;
--    interiorizaConjuncion (p /\ (q \/ r))  ==&amp;gt;  ((p /\ q) \/ (p /\ r))&lt;br /&gt;
--    interiorizaConjuncion ((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;
interiorizaConjuncion :: Prop -&amp;gt; Prop&lt;br /&gt;
interiorizaConjuncion = undefined&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;
formaNormalDisyuntiva :: Prop -&amp;gt; Prop&lt;br /&gt;
formaNormalDisyuntiva f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--     satisfaciblePorFND:: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (satisfaciblePorFND f) comprueba si f es satisfacible. Por&lt;br /&gt;
-- ejemplo,&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;
-- ---------------------------------------------------------------------&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;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Archivo:Clausulas.hs&amp;diff=208</id>
		<title>Archivo:Clausulas.hs</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Archivo:Clausulas.hs&amp;diff=208"/>
		<updated>2016-04-29T08:04:24Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Archivo:FormasNormales.hs&amp;diff=207</id>
		<title>Archivo:FormasNormales.hs</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Archivo:FormasNormales.hs&amp;diff=207"/>
		<updated>2016-04-29T08:04:09Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=206</id>
		<title>Lógica matemática y fundamentos (2015-16)</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=206"/>
		<updated>2016-04-29T07:56:36Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(a)&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1. ([[R2 |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(a)&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:SintaxisSemantica.hs |Enunciado]], [[Relación 2a |Solución colaborativa]] y [[R2a sol | Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1:  cuestiones ([[R2b |Enunciado]] y [[Relación 2b |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]). [http://www.cs.us.es/~mjoseh/R4.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]][http://www.cs.us.es/~mjoseh/R5.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R9 |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 11 |Solución colaborativa]] &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 12 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;font style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;Relación 5 (resuelta)&amp;lt;/font&amp;gt;&amp;#039;&amp;#039;&amp;#039;:[[Relación 5 (resuelta) |Solución]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]] y [[R7 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 9 |Solución colaborativa]] y [[Una solución | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[R12 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Argumentación y Deducción natural en lógica de primer orden.([[R14 |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 15&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R15 |Enunciado]] y [[Relación 15 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 16&amp;#039;&amp;#039;&amp;#039;: Resolución en lógica de primer orden.([[R16 |Enunciado]] y [[Relación 16 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Segundo examen (resuelto)&amp;#039;&amp;#039;&amp;#039;:([[Ejercicio 4 (a) |Solución_4a]], [[Ejercicio 4 (b)|Solución_4b]],[[Ejercicio 5 (a) |Solución_5a]] y [[Ejercicio 5 (b) |Solución_5b]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 9 |Solución colaborativa]] y [[Media:Clausulas_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 10 |Solución colaborativa]] y [[Media:ResolucionProposicional_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R11.thy |Enunciado]], [[Relación 11 |Solución colaborativa]] y [[Solución Relación 11 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas en Isabelle/HOL. ([[R12.thy |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[Solución Relación 12 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R13.thy |Enunciado]], [[Relación 13 |Solución colaborativa]] y [[Solución Relación 13 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 2&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex-30-b.hs |Primera parte]] y [[Segunda parte |Segunda parte]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 3&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex3_sol.hs |Primera parte]], [[Media:Sintaxis.hs |Sintaxis]] y [[Segunda parte (ex.3) |Segunda parte (ex3)]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 4&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex4_sol.hs |Primera parte]] y [[Segunda parte (ex.4) |Segunda parte (ex. 4)]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 13&amp;#039;&amp;#039;&amp;#039;: [[Tema 13 | Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Razonamiento por casos y por inducción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Verificación de la ordenación por inserción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 16&amp;#039;&amp;#039;&amp;#039;: [[Tema 16 | Verificación de un compilador de expresiones aritméticas]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]] y [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]] y [[AplicacionesLP |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_9&amp;diff=205</id>
		<title>Relación 9</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_9&amp;diff=205"/>
		<updated>2016-04-28T07:16:33Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 9: Cuestiones  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
* Sean G₁ una forma normal disyuntiva de F₁ y G₂ una forma normal disyuntiva de F₂. Si F₁ y F₂ son equivalentes, entonces G₁ y G₂ son fórmulas iguales.&lt;br /&gt;
* Para toda fórmula F se tiene que si G₁ es una forma normal conjuntiva de F y G₂ es una forma normal normal disyuntiva de F, entonces G₁ y G₂ son fórmulas distintas.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguientes afirmaciones:&lt;br /&gt;
&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, D ⊂ C₁ y D ≠ C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂ y D = C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, C₁ ⊂ D y C₂ no&lt;br /&gt;
es una tautología&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_10&amp;diff=204</id>
		<title>Relación 10</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_10&amp;diff=204"/>
		<updated>2016-04-28T06:20:38Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 10: Tableros semánticos en LPO  ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:  ∀x (P(x) → Q(x)) ⊧ (∃x P(x)) → (∃ x Q(x))  ----  ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 10: Tableros semánticos en LPO  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
∀x (P(x) → Q(x)) ⊧ (∃x P(x)) → (∃ x Q(x))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
⊧ ∀x (P(x) → R(x,x)) → ∀x ∃ y (R(x,y) ∨ ¬ P(y))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
∀x ∃ y (R(x,y) ∨ ¬ P(y)) ⊧ ∀x (P(x) → R(x,x))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
∀x ∀ y (R(x,y) → R(y,x)) ⊧ ∀x ∀y ∀z (R(x,y) ∧ R(x,z) → ∃u (R(y,u) ∧ R(z,u)))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 5.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
* ⊧ (∃x P(x)) → P(a)&lt;br /&gt;
* {∀x(P(x) → Q(x)), ∀y(Q(a) ∨ R(y) → S(a))} ⊧ ∀x (P(x) → S(a))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R10&amp;diff=203</id>
		<title>R10</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R10&amp;diff=203"/>
		<updated>2016-04-28T06:20:30Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Protegió «R10» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 10: Tableros semánticos en LPO  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
∀x (P(x) → Q(x)) ⊧ (∃x P(x)) → (∃ x Q(x))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
⊧ ∀x (P(x) → R(x,x)) → ∀x ∃ y (R(x,y) ∨ ¬ P(y))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
∀x ∃ y (R(x,y) ∨ ¬ P(y)) ⊧ ∀x (P(x) → R(x,x))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
∀x ∀ y (R(x,y) → R(y,x)) ⊧ ∀x ∀y ∀z (R(x,y) ∧ R(x,z) → ∃u (R(y,u) ∧ R(z,u)))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 5.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
* ⊧ (∃x P(x)) → P(a)&lt;br /&gt;
* {∀x(P(x) → Q(x)), ∀y(Q(a) ∨ R(y) → S(a))} ⊧ ∀x (P(x) → S(a))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R10&amp;diff=202</id>
		<title>R10</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R10&amp;diff=202"/>
		<updated>2016-04-28T06:20:23Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 10: Tableros semánticos en LPO  ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:  ∀x (P(x) → Q(x)) ⊧ (∃x P(x)) → (∃ x Q(x))  ----  ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 10: Tableros semánticos en LPO  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
∀x (P(x) → Q(x)) ⊧ (∃x P(x)) → (∃ x Q(x))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
⊧ ∀x (P(x) → R(x,x)) → ∀x ∃ y (R(x,y) ∨ ¬ P(y))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
∀x ∃ y (R(x,y) ∨ ¬ P(y)) ⊧ ∀x (P(x) → R(x,x))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 4.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
∀x ∀ y (R(x,y) → R(y,x)) ⊧ ∀x ∀y ∀z (R(x,y) ∧ R(x,z) → ∃u (R(y,u) ∧ R(z,u)))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 5.&amp;#039;&amp;#039;&amp;#039; Decidir por tableros semánticos, si:&lt;br /&gt;
&lt;br /&gt;
* ⊧ (∃x P(x)) → P(a)&lt;br /&gt;
* {∀x(P(x) → Q(x)), ∀y(Q(a) ∨ R(y) → S(a))} ⊧ ∀x (P(x) → S(a))&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R9&amp;diff=201</id>
		<title>R9</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R9&amp;diff=201"/>
		<updated>2016-04-28T06:19:49Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 9: Cuestiones  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
* Sean G₁ una forma normal disyuntiva de F₁ y G₂ una forma normal disyuntiva de F₂. Si&lt;br /&gt;
F₁ y F₂ son equivalentes, entonces G₁ y G₂ son fórmulas iguales.&lt;br /&gt;
* Para toda fórmula F se tiene que si G₁ es una forma normal conjuntiva de F y G₂ es una&lt;br /&gt;
forma normal normal disyuntiva de F, entonces G₁ y G₂ son fórmulas distintas.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguientes afirmaciones:&lt;br /&gt;
&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, D ⊂ C₁ y D ≠ C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂ y D = C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, C₁ ⊂ D y C₂ no&lt;br /&gt;
es una tautología&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_9&amp;diff=200</id>
		<title>Relación 9</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_9&amp;diff=200"/>
		<updated>2016-04-28T06:19:35Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 9: Cuestiones  ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:  * Sean G₁ una forma normal disyuntiva de F₁ y G₂ una forma normal...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 9: Cuestiones  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
* Sean G₁ una forma normal disyuntiva de F₁ y G₂ una forma normal disyuntiva de F₂. Si&lt;br /&gt;
F₁ y F₂ son equivalentes, entonces G₁ y G₂ son fórmulas iguales.&lt;br /&gt;
* Para toda fórmula F se tiene que si G₁ es una forma normal conjuntiva de F y G₂ es una&lt;br /&gt;
forma normal normal disyuntiva de F, entonces G₁ y G₂ son fórmulas distintas.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguientes afirmaciones:&lt;br /&gt;
&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, D ⊂ C₁ y D ≠ C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂ y D = C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, C₁ ⊂ D y C₂ no&lt;br /&gt;
es una tautología&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R9&amp;diff=199</id>
		<title>R9</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R9&amp;diff=199"/>
		<updated>2016-04-28T06:19:20Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Protegió «R9» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 10: Cuestiones  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
* Sean G₁ una forma normal disyuntiva de F₁ y G₂ una forma normal disyuntiva de F₂. Si&lt;br /&gt;
F₁ y F₂ son equivalentes, entonces G₁ y G₂ son fórmulas iguales.&lt;br /&gt;
* Para toda fórmula F se tiene que si G₁ es una forma normal conjuntiva de F y G₂ es una&lt;br /&gt;
forma normal normal disyuntiva de F, entonces G₁ y G₂ son fórmulas distintas.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguientes afirmaciones:&lt;br /&gt;
&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, D ⊂ C₁ y D ≠ C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂ y D = C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, C₁ ⊂ D y C₂ no&lt;br /&gt;
es una tautología&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R9&amp;diff=198</id>
		<title>R9</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R9&amp;diff=198"/>
		<updated>2016-04-28T06:19:13Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 10: Cuestiones  ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:  * Sean G₁ una forma normal disyuntiva de F₁ y G₂ una forma norma...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 10: Cuestiones  ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
* Sean G₁ una forma normal disyuntiva de F₁ y G₂ una forma normal disyuntiva de F₂. Si&lt;br /&gt;
F₁ y F₂ son equivalentes, entonces G₁ y G₂ son fórmulas iguales.&lt;br /&gt;
* Para toda fórmula F se tiene que si G₁ es una forma normal conjuntiva de F y G₂ es una&lt;br /&gt;
forma normal normal disyuntiva de F, entonces G₁ y G₂ son fórmulas distintas.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguientes afirmaciones:&lt;br /&gt;
&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, D ⊂ C₁ y D ≠ C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂ y D = C₁.&lt;br /&gt;
* Existen cláusulas C₁, C₂ y D tales que D es una resolvente de C₁ y C₂, C₁ ⊂ D y C₂ no&lt;br /&gt;
es una tautología&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=197</id>
		<title>Lógica matemática y fundamentos (2015-16)</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=197"/>
		<updated>2016-04-28T06:18:28Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(a)&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1. ([[R2 |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(a)&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:SintaxisSemantica.hs |Enunciado]], [[Relación 2a |Solución colaborativa]] y [[R2a sol | Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1:  cuestiones ([[R2b |Enunciado]] y [[Relación 2b |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]). [http://www.cs.us.es/~mjoseh/R4.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]][http://www.cs.us.es/~mjoseh/R5.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R9 |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;font style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;Relación 5 (resuelta)&amp;lt;/font&amp;gt;&amp;#039;&amp;#039;&amp;#039;:[[Relación 5 (resuelta) |Solución]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]] y [[R7 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 9 |Solución colaborativa]] y [[Una solución | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[R12 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Argumentación y Deducción natural en lógica de primer orden.([[R14 |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 15&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R15 |Enunciado]] y [[Relación 15 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 16&amp;#039;&amp;#039;&amp;#039;: Resolución en lógica de primer orden.([[R16 |Enunciado]] y [[Relación 16 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Segundo examen (resuelto)&amp;#039;&amp;#039;&amp;#039;:([[Ejercicio 4 (a) |Solución_4a]], [[Ejercicio 4 (b)|Solución_4b]],[[Ejercicio 5 (a) |Solución_5a]] y [[Ejercicio 5 (b) |Solución_5b]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 9 |Solución colaborativa]] y [[Media:Clausulas_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 10 |Solución colaborativa]] y [[Media:ResolucionProposicional_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R11.thy |Enunciado]], [[Relación 11 |Solución colaborativa]] y [[Solución Relación 11 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas en Isabelle/HOL. ([[R12.thy |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[Solución Relación 12 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R13.thy |Enunciado]], [[Relación 13 |Solución colaborativa]] y [[Solución Relación 13 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 2&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex-30-b.hs |Primera parte]] y [[Segunda parte |Segunda parte]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 3&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex3_sol.hs |Primera parte]], [[Media:Sintaxis.hs |Sintaxis]] y [[Segunda parte (ex.3) |Segunda parte (ex3)]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 4&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex4_sol.hs |Primera parte]] y [[Segunda parte (ex.4) |Segunda parte (ex. 4)]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 13&amp;#039;&amp;#039;&amp;#039;: [[Tema 13 | Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Razonamiento por casos y por inducción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Verificación de la ordenación por inserción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 16&amp;#039;&amp;#039;&amp;#039;: [[Tema 16 | Verificación de un compilador de expresiones aritméticas]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]] y [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]] y [[AplicacionesLP |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_8&amp;diff=187</id>
		<title>Relación 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_8&amp;diff=187"/>
		<updated>2016-04-21T11:51:41Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 8: Cuestiones sobre tableros semánticos ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:  Sea T un tablero de S₁, I un modelo de una ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 8: Cuestiones sobre tableros semánticos ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
Sea T un tablero de S₁, I un modelo de una hoja abierta de T y S₂ ⊆ S₁. Entonces,&lt;br /&gt;
I ⊧ S2.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
Si S es un conjunto inconsistente de fórmulas, entonces el tablero semántico cerrado de&lt;br /&gt;
S obtenido aplicando las reglas α antes que las reglas β tiene menos nodos que el tablero&lt;br /&gt;
semántico cerrado de S obtenido aplicando las reglas β antes que las reglas α.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R8&amp;diff=186</id>
		<title>R8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R8&amp;diff=186"/>
		<updated>2016-04-21T11:51:28Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Protegió «R8» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 8: Cuestiones sobre tableros semánticos ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
Sea T un tablero de S₁, I un modelo de una hoja abierta de T y S₂ ⊆ S₁. Entonces,&lt;br /&gt;
I ⊧ S2.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
Si S es un conjunto inconsistente de fórmulas, entonces el tablero semántico cerrado de&lt;br /&gt;
S obtenido aplicando las reglas α antes que las reglas β tiene menos nodos que el tablero&lt;br /&gt;
semántico cerrado de S obtenido aplicando las reglas β antes que las reglas α.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R8&amp;diff=185</id>
		<title>R8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R8&amp;diff=185"/>
		<updated>2016-04-21T11:51:11Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039; === Relación 8: Cuestiones sobre tableros semánticos ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:  Sea T un tablero de S₁, I un modelo de una ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Relación 8: Cuestiones sobre tableros semánticos ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
Sea T un tablero de S₁, I un modelo de una hoja abierta de T y S₂ ⊆ S₁. Entonces,&lt;br /&gt;
I ⊧ S2.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Demostrar o refutar la siguiente afirmación:&lt;br /&gt;
&lt;br /&gt;
Si S es un conjunto inconsistente de fórmulas, entonces el tablero semántico cerrado de&lt;br /&gt;
S obtenido aplicando las reglas α antes que las reglas β tiene menos nodos que el tablero&lt;br /&gt;
semántico cerrado de S obtenido aplicando las reglas β antes que las reglas α.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_7&amp;diff=184</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_7&amp;diff=184"/>
		<updated>2016-04-21T11:50:43Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;&amp;lt;source lang = &amp;quot;haskell&amp;quot;&amp;gt;  -- TablerosSemánticos.hs -- Tableros semánticos proposicionales. -- José A. Alonso Jiménez &amp;lt;jalonso@us.es&amp;gt; -- ------------------------------------...&amp;#039;&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 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;
literal :: Prop -&amp;gt; Bool&lt;br /&gt;
literal = undefined&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;
--    dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (dobleNegacion f) se verifica si f es una doble negación. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    dobleNegacion (no (no p))     ==&amp;gt;  True&lt;br /&gt;
--    dobleNegacion (no (p --&amp;gt; q))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
dobleNegacion :: Prop -&amp;gt; Bool&lt;br /&gt;
dobleNegacion = 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;
--    tieneContradiccion :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (tieneContradiccion fs) se verifica si fs contiene una&lt;br /&gt;
-- fórmula y su negación. Por ejemplo,&lt;br /&gt;
--    tieneContradiccion [r, p /\ q, s, no(p /\ q)]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tieneContradiccion :: [Prop] -&amp;gt; Bool&lt;br /&gt;
tieneContradiccion fs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    expansionDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansionDN fs f) es la expansión de fs mediante la doble&lt;br /&gt;
-- negación f. Por ejemplo,&lt;br /&gt;
--    expansionDN [p, no(no q), r] (no(no q))  ==&amp;gt;  [[q,p,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansionDN :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansionDN fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    expansionAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansionAlfa fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula alfa f. Por ejemplo,&lt;br /&gt;
--    expansionAlfa [q, (p1 /\ p2) , r] (p1 /\ p2)  ==&amp;gt;  [[p1,p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansionAlfa :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansionAlfa fs f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    expansionBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
-- tal que (expansionBeta fs f) es la expansión de fs mediante la&lt;br /&gt;
-- fórmula beta f. Por ejemplo,&lt;br /&gt;
--    expansionBeta [q, (p1 \/ p2) , r] (p1 \/ p2)  ==&amp;gt;  [[p1,q,r],[p2,q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
expansionBeta :: [Prop] -&amp;gt; Prop -&amp;gt; [[Prop]]&lt;br /&gt;
expansionBeta 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 = 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 = 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>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Archivo:TablerosSemanticos.hs&amp;diff=183</id>
		<title>Archivo:TablerosSemanticos.hs</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Archivo:TablerosSemanticos.hs&amp;diff=183"/>
		<updated>2016-04-21T11:49:36Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=182</id>
		<title>Lógica matemática y fundamentos (2015-16)</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=182"/>
		<updated>2016-04-21T11:48:50Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(a)&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1. ([[R2 |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(a)&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:SintaxisSemantica.hs |Enunciado]], [[Relación 2a |Solución colaborativa]] y [[R2a sol | Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1:  cuestiones ([[R2b |Enunciado]] y [[Relación 2b |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]). [http://www.cs.us.es/~mjoseh/R4.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]][http://www.cs.us.es/~mjoseh/R5.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;font style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;Relación 5 (resuelta)&amp;lt;/font&amp;gt;&amp;#039;&amp;#039;&amp;#039;:[[Relación 5 (resuelta) |Solución]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]] y [[R7 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 9 |Solución colaborativa]] y [[Una solución | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[R12 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Argumentación y Deducción natural en lógica de primer orden.([[R14 |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 15&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R15 |Enunciado]] y [[Relación 15 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 16&amp;#039;&amp;#039;&amp;#039;: Resolución en lógica de primer orden.([[R16 |Enunciado]] y [[Relación 16 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Segundo examen (resuelto)&amp;#039;&amp;#039;&amp;#039;:([[Ejercicio 4 (a) |Solución_4a]], [[Ejercicio 4 (b)|Solución_4b]],[[Ejercicio 5 (a) |Solución_5a]] y [[Ejercicio 5 (b) |Solución_5b]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 9 |Solución colaborativa]] y [[Media:Clausulas_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 10 |Solución colaborativa]] y [[Media:ResolucionProposicional_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R11.thy |Enunciado]], [[Relación 11 |Solución colaborativa]] y [[Solución Relación 11 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas en Isabelle/HOL. ([[R12.thy |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[Solución Relación 12 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R13.thy |Enunciado]], [[Relación 13 |Solución colaborativa]] y [[Solución Relación 13 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 2&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex-30-b.hs |Primera parte]] y [[Segunda parte |Segunda parte]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 3&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex3_sol.hs |Primera parte]], [[Media:Sintaxis.hs |Sintaxis]] y [[Segunda parte (ex.3) |Segunda parte (ex3)]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 4&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex4_sol.hs |Primera parte]] y [[Segunda parte (ex.4) |Segunda parte (ex. 4)]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 13&amp;#039;&amp;#039;&amp;#039;: [[Tema 13 | Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Razonamiento por casos y por inducción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Verificación de la ordenación por inserción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 16&amp;#039;&amp;#039;&amp;#039;: [[Tema 16 | Verificación de un compilador de expresiones aritméticas]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]] y [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]] y [[AplicacionesLP |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R2a_sol&amp;diff=181</id>
		<title>R2a sol</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R2a_sol&amp;diff=181"/>
		<updated>2016-04-21T11:48:21Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &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;
-- ---------------------------------------------------------------------&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 SimboloProposicional = String&lt;br /&gt;
&lt;br /&gt;
data Prop = Atom SimboloProposicional&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;
--    simbolosPropForm :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (simbolosPropForm f) es el conjunto formado por todos los&lt;br /&gt;
-- símbolos proposicionales que aparecen en f. Por ejemplo,&lt;br /&gt;
--    simbolosPropForm (p /\ q --&amp;gt; p)  ==&amp;gt; [p,q]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
simbolosPropForm :: Prop -&amp;gt; [Prop]&lt;br /&gt;
simbolosPropForm (Atom f)   = [(Atom f)]&lt;br /&gt;
simbolosPropForm (Neg f)    = simbolosPropForm f&lt;br /&gt;
simbolosPropForm (Conj f g) = simbolosPropForm f `union` simbolosPropForm g&lt;br /&gt;
simbolosPropForm (Disj f g) = simbolosPropForm f `union` simbolosPropForm g&lt;br /&gt;
simbolosPropForm (Impl f g) = simbolosPropForm f `union` simbolosPropForm g&lt;br /&gt;
simbolosPropForm (Equi f g) = simbolosPropForm f `union` simbolosPropForm g&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; Interpretacion -&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;
&lt;br /&gt;
significado :: Prop -&amp;gt; Interpretacion -&amp;gt; Bool&lt;br /&gt;
significado (Atom f)   i = (Atom f) `elem` i&lt;br /&gt;
significado (Neg f)    i = not (significado f i)&lt;br /&gt;
significado (Conj f g) i = (significado f i) &amp;amp;&amp;amp; (significado g i)&lt;br /&gt;
significado (Disj f g) i = (significado f i) || (significado g i)&lt;br /&gt;
significado (Impl f g) i = significado (Disj (Neg f) g) i&lt;br /&gt;
significado (Equi f g) i = significado (Conj (Impl f g) (Impl g f)) i&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;
subconjuntos :: [a] -&amp;gt; [[a]]&lt;br /&gt;
subconjuntos []     = [[]]&lt;br /&gt;
subconjuntos (x:xs) = [x:ys | ys &amp;lt;- xss] ++ xss&lt;br /&gt;
                      where xss = subconjuntos xs&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    interpretacionesForm :: Prop -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tal que (interpretacionesForm f) es la lista de todas las&lt;br /&gt;
-- interpretaciones de f. Por ejemplo, &lt;br /&gt;
--    interpretacionesForm (p /\ q --&amp;gt; p)  ==&amp;gt;  [[p,q],[p],[q],[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
interpretacionesForm :: Prop -&amp;gt; [Interpretacion]&lt;br /&gt;
interpretacionesForm f = subconjuntos (simbolosPropForm f)&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;
--    esModeloFormula :: Interpretacion -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloFormula i f) se verifica si i es un modelo de f. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloFormula [r]   ((p \/ q) /\ ((no q) \/ r))    ==&amp;gt;  False&lt;br /&gt;
--    esModeloFormula [p,r] ((p \/ q) /\ ((no q) \/ r))    ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloFormula :: Interpretacion -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esModeloFormula i f = significado f i&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosFormula :: Prop -&amp;gt; [Interpretacion]&lt;br /&gt;
-- tal que (modelosFormula f) es la lista de todas las interpretaciones&lt;br /&gt;
-- de f que son modelo de F. Por ejemplo,&lt;br /&gt;
--    modelosFormula ((p \/ q) /\ ((no q) \/ r)) &lt;br /&gt;
--    ==&amp;gt; [[p,q,r],[p,r],[p],[q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosFormula :: Prop -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosFormula f =&lt;br /&gt;
    [i | i &amp;lt;- interpretacionesForm f,&lt;br /&gt;
         esModeloFormula i f]&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;
--    esValida :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esValida f) se verifica si f es válida. Por ejemplo,&lt;br /&gt;
--    esValida (p --&amp;gt; p)                 ==&amp;gt;  True&lt;br /&gt;
--    esValida (p --&amp;gt; q)                 ==&amp;gt;  False&lt;br /&gt;
--    esValida ((p --&amp;gt; q) \/ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esValida :: Prop -&amp;gt; Bool&lt;br /&gt;
esValida f = &lt;br /&gt;
    modelosFormula f == interpretacionesForm f&lt;br /&gt;
&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;
esInsatisfacible :: Prop -&amp;gt; Bool&lt;br /&gt;
esInsatisfacible f =&lt;br /&gt;
    modelosFormula f == []&lt;br /&gt;
&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;
&lt;br /&gt;
esSatisfacible :: Prop -&amp;gt; Bool&lt;br /&gt;
esSatisfacible f =&lt;br /&gt;
    modelosFormula 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;
--    unionGeneral :: Eq a =&amp;gt; [[a]] -&amp;gt; [a]&lt;br /&gt;
-- tal que (unionGeneral x) es la unión de los conjuntos de la lista de&lt;br /&gt;
-- conjuntos x. Por ejemplo,&lt;br /&gt;
--    unionGeneral []                 ==&amp;gt;  []&lt;br /&gt;
--    unionGeneral [[1]]              ==&amp;gt;  [1]&lt;br /&gt;
--    unionGeneral [[1],[1,2],[2,3]]  ==&amp;gt;  [1,2,3]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
unionGeneral :: Eq a =&amp;gt; [[a]] -&amp;gt; [a]&lt;br /&gt;
unionGeneral []     = []&lt;br /&gt;
unionGeneral (xs:xss) = xs `union` unionGeneral xss &lt;br /&gt;
&lt;br /&gt;
uniónG :: Eq a =&amp;gt; [[a]] -&amp;gt; [a]&lt;br /&gt;
uniónG = foldl union []&lt;br /&gt;
&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;
símbolosPropConj :: [Prop] -&amp;gt; [Prop]&lt;br /&gt;
símbolosPropConj s&lt;br /&gt;
    = unionGeneral [simbolosPropForm f | f &amp;lt;- s]&lt;br /&gt;
&lt;br /&gt;
símbolosPropConj2 :: [Prop] -&amp;gt; [Prop]&lt;br /&gt;
símbolosPropConj2 = uniónG . map simbolosPropForm&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; [Interpretacion]&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;
interpretacionesConjunto :: [Prop] -&amp;gt; [Interpretacion]&lt;br /&gt;
interpretacionesConjunto s =&lt;br /&gt;
    subconjuntos (símbolosPropConj 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 :: Interpretacion -&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;
esModeloConjunto :: Interpretacion -&amp;gt; [Prop] -&amp;gt; Bool&lt;br /&gt;
esModeloConjunto i s =&lt;br /&gt;
    and [esModeloFormula i f | f &amp;lt;- s]&lt;br /&gt;
&lt;br /&gt;
esModeloConjunto2 :: Interpretacion -&amp;gt; [Prop] -&amp;gt; Bool&lt;br /&gt;
esModeloConjunto2 i s = all (esModeloFormula i) s&lt;br /&gt;
&lt;br /&gt;
-- --------------------g-------------------------------------------------&lt;br /&gt;
-- Ejercicio 19: Definir la función&lt;br /&gt;
--    modelosConjunto :: [Prop] -&amp;gt; [Interpretacion]&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;
modelosConjunto :: [Prop] -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosConjunto s =&lt;br /&gt;
    [i | i &amp;lt;- interpretacionesConjunto s,&lt;br /&gt;
         esModeloConjunto i s]&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;
esConsistente :: [Prop] -&amp;gt; Bool&lt;br /&gt;
esConsistente s =&lt;br /&gt;
    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;
esInconsistente :: [Prop] -&amp;gt; Bool&lt;br /&gt;
esInconsistente s =&lt;br /&gt;
    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;
esConsecuencia :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuencia s f =&lt;br /&gt;
    null [i | i &amp;lt;- interpretacionesConjunto (f:s),&lt;br /&gt;
              esModeloConjunto i s,&lt;br /&gt;
              not (esModeloFormula i f)]&lt;br /&gt;
&lt;br /&gt;
esConsecuencia2 :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuencia2 s f =&lt;br /&gt;
    and [esModeloFormula i f | i &amp;lt;- interpretacionesConjunto (f:s),&lt;br /&gt;
                               esModeloConjunto i s]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=180</id>
		<title>Lógica matemática y fundamentos (2015-16)</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos_(2015-16)&amp;diff=180"/>
		<updated>2016-04-21T11:47:20Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(a)&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1. ([[R2 |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(a)&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:SintaxisSemantica.hs |Enunciado]], [[Relación 2a |Solución colaborativa]] y [[R2a sol | Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2(b)&amp;#039;&amp;#039;&amp;#039;: Tema 1:  cuestiones ([[R2b |Enunciado]] y [[Relación 2b |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]). [http://www.cs.us.es/~mjoseh/R4.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]][http://www.cs.us.es/~mjoseh/R5.thy]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]] y [[R7 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;font style=&amp;quot;background:#FFFF00&amp;quot;&amp;gt;Relación 5 (resuelta)&amp;lt;/font&amp;gt;&amp;#039;&amp;#039;&amp;#039;:[[Relación 5 (resuelta) |Solución]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la Lógica de primer orden ([[R6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:TablerosSemanticos.hs |Enunciado]], [[Relación 7 |Solución colaborativa]] y [[R7 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Cuestiones sobre tableros semánticos ([[R8 |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]],[[Relación 9 |Solución colaborativa]] y [[Una solución | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R10 |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[R12 sol | Una solución ]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Cuestiones. ([[R13 |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Argumentación y Deducción natural en lógica de primer orden.([[R14 |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 15&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos en lógica de primer orden.([[R15 |Enunciado]] y [[Relación 15 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 16&amp;#039;&amp;#039;&amp;#039;: Resolución en lógica de primer orden.([[R16 |Enunciado]] y [[Relación 16 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Segundo examen (resuelto)&amp;#039;&amp;#039;&amp;#039;:([[Ejercicio 4 (a) |Solución_4a]], [[Ejercicio 4 (b)|Solución_4b]],[[Ejercicio 5 (a) |Solución_5a]] y [[Ejercicio 5 (b) |Solución_5b]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]], [[Relación 9 |Solución colaborativa]] y [[Media:Clausulas_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]], [[Relación 10 |Solución colaborativa]] y [[Media:ResolucionProposicional_sol.hs | una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[R11.thy |Enunciado]], [[Relación 11 |Solución colaborativa]] y [[Solución Relación 11 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Cuantificadores sobre listas en Isabelle/HOL. ([[R12.thy |Enunciado]], [[Relación 12 |Solución colaborativa]] y [[Solución Relación 12 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Recorridos de árboles. ([[R13.thy |Enunciado]], [[Relación 13 |Solución colaborativa]] y [[Solución Relación 13 |Una solución]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 2&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex-30-b.hs |Primera parte]] y [[Segunda parte |Segunda parte]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 3&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex3_sol.hs |Primera parte]], [[Media:Sintaxis.hs |Sintaxis]] y [[Segunda parte (ex.3) |Segunda parte (ex3)]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Examen 4&amp;#039;&amp;#039;&amp;#039;: Soluciones ([[Media:ex4_sol.hs |Primera parte]] y [[Segunda parte (ex.4) |Segunda parte (ex. 4)]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 13&amp;#039;&amp;#039;&amp;#039;: [[Tema 13 | Razonamiento sobre programas con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Razonamiento por casos y por inducción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Verificación de la ordenación por inserción]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 16&amp;#039;&amp;#039;&amp;#039;: [[Tema 16 | Verificación de un compilador de expresiones aritméticas]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]] y [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]] y [[AplicacionesLP |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R6&amp;diff=177</id>
		<title>R6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R6&amp;diff=177"/>
		<updated>2016-04-19T10:57:38Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 6: Sintaxis y semántica de la Lógica de primer orden ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
Sea F la fórmula P(x) → P ( a ) , donde a es un símbolo de constante. ¿Es&lt;br /&gt;
F satisfacible? ¿Tiene modelos? ¿Es F una fórmula válida?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Formalizar el siguiente argumento &lt;br /&gt;
Sea L un lenguaje de primer orden con dos símbolos de predicado, P (de&lt;br /&gt;
aridad 1), Q (de aridad 2) y un símbolo de función, f , de aridad 1. Sea I = ( U, I ) la&lt;br /&gt;
estructura dada por:&lt;br /&gt;
U = { a, b, c, d } ;&lt;br /&gt;
I ( P ) = { a, b } ,&lt;br /&gt;
I ( Q ) = {( a, b ) , ( b, b ) , ( c, b )} ,&lt;br /&gt;
I ( f ) = {( a, b ) , ( b, b ) , ( c, a ) , ( d, c )} .&lt;br /&gt;
Decidir cuáles de las siguientes fórmulas de L son válidas en I :&lt;br /&gt;
* P ( x ) → ∃ yQ ( y, x ) .&lt;br /&gt;
*. ∀ xQ ( f ( x ) , x ) .&lt;br /&gt;
* Q ( f ( x ) , x ) → Q ( x, x ) .&lt;br /&gt;
* Q ( x, y ) → P ( x ) .&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
En el lenguaje con igualdad L = { a, f } , siendo f un símbolo de función&lt;br /&gt;
de aridad 1 y a una constante, se consideran las siguientes fórmulas:&lt;br /&gt;
F_1 : = ∀ x [ f ( x ) ≠ a ] ,&lt;br /&gt;
F_2 : = ∀ x ∀ y [ f ( x ) = f ( y ) → x = y ] ,&lt;br /&gt;
F_3 : = ∀ x [ x ≠ a → ∃ y [ f ( y ) = x ]] .&lt;br /&gt;
&lt;br /&gt;
Probar que ninguna de las tres fórmulas es consecuencia de las dos restantes.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_6&amp;diff=176</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_6&amp;diff=176"/>
		<updated>2016-04-19T10:57:19Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 6: Sintaxis y semántica de la Lógica de primer orden ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
Sea F la fórmula P(x) → P ( a ) , donde a es un símbolo de constante. ¿Es&lt;br /&gt;
F satisfacible? ¿Tiene modelos? ¿Es F una fórmula válida?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Formalizar el siguiente argumento &lt;br /&gt;
Sea L un lenguaje de primer orden con dos símbolos de predicado, P (de&lt;br /&gt;
aridad 1), Q (de aridad 2) y un símbolo de función, f , de aridad 1. Sea I = ( U, I ) la&lt;br /&gt;
estructura dada por:&lt;br /&gt;
U = { a, b, c, d } ;&lt;br /&gt;
I ( P ) = { a, b } ,&lt;br /&gt;
I ( Q ) = {( a, b ) , ( b, b ) , ( c, b )} ,&lt;br /&gt;
I ( f ) = {( a, b ) , ( b, b ) , ( c, a ) , ( d, c )} .&lt;br /&gt;
Decidir cuáles de las siguientes fórmulas de L son válidas en I :&lt;br /&gt;
* P ( x ) → ∃ yQ ( y, x ) .&lt;br /&gt;
* ∀ xQ ( f ( x ) , x ) .&lt;br /&gt;
* Q ( f ( x ) , x ) → Q ( x, x ) .&lt;br /&gt;
* Q ( x, y ) → P ( x ) .&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
1. No es válida pues existe una asignación que hace a la fórmula falsa. Tomando A(x) = a&lt;br /&gt;
&lt;br /&gt;
P(a) = 1&lt;br /&gt;
&lt;br /&gt;
Q(y,a) = 0 para cualquier asignación de y&lt;br /&gt;
&lt;br /&gt;
Luego la implicación es falsa.&lt;br /&gt;
&lt;br /&gt;
2. No es válida pues existe una asignación que hace a la fórmula falsa.&lt;br /&gt;
&lt;br /&gt;
Tomando de nuevo A(x)=a&lt;br /&gt;
&lt;br /&gt;
Q(f(a),a)=Q(b,a)=0&lt;br /&gt;
&lt;br /&gt;
Luego hemos encontrado un x que no satisface Q(f(x),x) y&lt;br /&gt;
&lt;br /&gt;
por tanto la fórmula es falsa.&lt;br /&gt;
&lt;br /&gt;
3. Si es válida pues para toda asignación de x se verifica la fórmula.&lt;br /&gt;
&lt;br /&gt;
Si A(x)=a entonces Q(f(a),a)=Q(b,a)=0 y Q(a,a)=0 luego la implicación es verdadera.&lt;br /&gt;
&lt;br /&gt;
Si A(x)=b entonces Q(f(b),b)=Q(b,b)=1 y Q(b,b)=1 luego la implicación es verdadera.&lt;br /&gt;
&lt;br /&gt;
Si A(x)=c entonces Q(f(c),c)=Q(a,c)=0 y Q(c,c)=0 luego la implicación es verdadera.&lt;br /&gt;
&lt;br /&gt;
Si A(x)=d entonces Q(f(d),d)=Q(c,d)=0 y Q(d,d)=0 luego la implicación es verdadera.&lt;br /&gt;
&lt;br /&gt;
4. No es válida pues existe una asignación que hace a la fórmula falsa.&lt;br /&gt;
&lt;br /&gt;
Tomando A(x)=c y A(y)=b tenemos que Q(c,b)=1 y P(c)=0 luego es falsa la implicación.&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
En el lenguaje con igualdad L = { a, f } , siendo f un símbolo de función&lt;br /&gt;
de aridad 1 y a una constante, se consideran las siguientes fórmulas:&lt;br /&gt;
F_1 : = ∀ x [ f ( x ) ≠ a ] ,&lt;br /&gt;
F_2 : = ∀ x ∀ y [ f ( x ) = f ( y ) → x = y ] ,&lt;br /&gt;
F_3 : = ∀ x [ x ≠ a → ∃ y [ f ( y ) = x ]] .&lt;br /&gt;
&lt;br /&gt;
Probar que ninguna de las tres fórmulas es consecuencia de las dos restantes.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_6&amp;diff=172</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_6&amp;diff=172"/>
		<updated>2016-04-07T06:44:40Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 6: Sintaxis y semántica de la Lógica de primer orden ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
Sea F la fórmula P(x) → P ( a ) , donde a es un símbolo de constante. ¿Es&lt;br /&gt;
F satisfacible? ¿Tiene modelos? ¿Es F una fórmula válida?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Formalizar el siguiente argumento &lt;br /&gt;
Sea L un lenguaje de primer orden con dos símbolos de predicado, P (de&lt;br /&gt;
aridad 1), Q (de aridad 2) y un símbolo de función, f , de aridad 1. Sea I = ( U, I ) la&lt;br /&gt;
estructura dada por:&lt;br /&gt;
U = { a, b, c, d } ;&lt;br /&gt;
I ( P ) = { a, b } ,&lt;br /&gt;
I ( Q ) = {( a, b ) , ( b, b ) , ( c, b )} ,&lt;br /&gt;
I ( f ) = {( a, b ) , ( b, b ) , ( c, a ) , ( d, c )} .&lt;br /&gt;
Decidir cuáles de las siguientes fórmulas de L son válidas en I :&lt;br /&gt;
* P ( x ) → ∃ yQ ( y, x ) .&lt;br /&gt;
* ∀ xQ ( f ( x ) , x ) .&lt;br /&gt;
* Q ( f ( x ) , x ) → Q ( x, x ) .&lt;br /&gt;
* Q ( x, y ) → P ( x ) .&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
En el lenguaje con igualdad L = { a, f } , siendo f un símbolo de función&lt;br /&gt;
de aridad 1 y a una constante, se consideran las siguientes fórmulas:&lt;br /&gt;
F_1 : = ∀ x [ f ( x ) ≠ a ] ,&lt;br /&gt;
F_2 : = ∀ x ∀ y [ f ( x ) = f ( y ) → x = y ] ,&lt;br /&gt;
F_3 : = ∀ x [ x ≠ a → ∃ y [ f ( y ) = x ]] .&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_6&amp;diff=171</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=Relaci%C3%B3n_6&amp;diff=171"/>
		<updated>2016-04-07T06:44:26Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;=== Relación 6: Sintaxis y semántica de la Lógica de primer orden ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039;  Sea F la fórmula P(x) → P ( a ) , donde a es un símbolo de constante. ¿Es...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 6: Sintaxis y semántica de la Lógica de primer orden ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
Sea F la fórmula P(x) → P ( a ) , donde a es un símbolo de constante. ¿Es&lt;br /&gt;
F satisfacible? ¿Tiene modelos? ¿Es F una fórmula válida?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Formalizar el siguiente argumento &lt;br /&gt;
Sea L un lenguaje de primer orden con dos símbolos de predicado, P (de&lt;br /&gt;
aridad 1), Q (de aridad 2) y un símbolo de función, f , de aridad 1. Sea I = ( U, I ) la&lt;br /&gt;
estructura dada por:&lt;br /&gt;
U = { a, b, c, d } ;&lt;br /&gt;
I ( P ) = { a, b } ,&lt;br /&gt;
I ( Q ) = {( a, b ) , ( b, b ) , ( c, b )} ,&lt;br /&gt;
I ( f ) = {( a, b ) , ( b, b ) , ( c, a ) , ( d, c )} .&lt;br /&gt;
Decidir cuáles de las siguientes fórmulas de L son válidas en I :&lt;br /&gt;
* P ( x ) → ∃ yQ ( y, x ) .&lt;br /&gt;
*. ∀ xQ ( f ( x ) , x ) .&lt;br /&gt;
* Q ( f ( x ) , x ) → Q ( x, x ) .&lt;br /&gt;
* Q ( x, y ) → P ( x ) .&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
En el lenguaje con igualdad L = { a, f } , siendo f un símbolo de función&lt;br /&gt;
de aridad 1 y a una constante, se consideran las siguientes fórmulas:&lt;br /&gt;
F_1 : = ∀ x [ f ( x ) ≠ a ] ,&lt;br /&gt;
F_2 : = ∀ x ∀ y [ f ( x ) = f ( y ) → x = y ] ,&lt;br /&gt;
F_3 : = ∀ x [ x ≠ a → ∃ y [ f ( y ) = x ]] .&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R6&amp;diff=170</id>
		<title>R6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R6&amp;diff=170"/>
		<updated>2016-04-07T06:44:18Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Protegió «R6» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 6: Sintaxis y semántica de la Lógica de primer orden ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
Sea F la fórmula P(x) → P ( a ) , donde a es un símbolo de constante. ¿Es&lt;br /&gt;
F satisfacible? ¿Tiene modelos? ¿Es F una fórmula válida?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Formalizar el siguiente argumento &lt;br /&gt;
Sea L un lenguaje de primer orden con dos símbolos de predicado, P (de&lt;br /&gt;
aridad 1), Q (de aridad 2) y un símbolo de función, f , de aridad 1. Sea I = ( U, I ) la&lt;br /&gt;
estructura dada por:&lt;br /&gt;
U = { a, b, c, d } ;&lt;br /&gt;
I ( P ) = { a, b } ,&lt;br /&gt;
I ( Q ) = {( a, b ) , ( b, b ) , ( c, b )} ,&lt;br /&gt;
I ( f ) = {( a, b ) , ( b, b ) , ( c, a ) , ( d, c )} .&lt;br /&gt;
Decidir cuáles de las siguientes fórmulas de L son válidas en I :&lt;br /&gt;
* P ( x ) → ∃ yQ ( y, x ) .&lt;br /&gt;
*. ∀ xQ ( f ( x ) , x ) .&lt;br /&gt;
* Q ( f ( x ) , x ) → Q ( x, x ) .&lt;br /&gt;
* Q ( x, y ) → P ( x ) .&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
En el lenguaje con igualdad L = { a, f } , siendo f un símbolo de función&lt;br /&gt;
de aridad 1 y a una constante, se consideran las siguientes fórmulas:&lt;br /&gt;
F_1 : = ∀ x [ f ( x ) ≠ a ] ,&lt;br /&gt;
F_2 : = ∀ x ∀ y [ f ( x ) = f ( y ) → x = y ] ,&lt;br /&gt;
F_3 : = ∀ x [ x ≠ a → ∃ y [ f ( y ) = x ]] .&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R6&amp;diff=169</id>
		<title>R6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2016/index.php?title=R6&amp;diff=169"/>
		<updated>2016-04-07T06:44:10Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;=== Relación 6: Sintaxis y semántica de la Lógica de primer orden ===  ---- &amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039;  Sea F la fórmula P(x) → P ( a ) , donde a es un símbolo de constante. ¿Es...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Relación 6: Sintaxis y semántica de la Lógica de primer orden ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 1.&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
Sea F la fórmula P(x) → P ( a ) , donde a es un símbolo de constante. ¿Es&lt;br /&gt;
F satisfacible? ¿Tiene modelos? ¿Es F una fórmula válida?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 2.&amp;#039;&amp;#039;&amp;#039; Formalizar el siguiente argumento &lt;br /&gt;
Sea L un lenguaje de primer orden con dos símbolos de predicado, P (de&lt;br /&gt;
aridad 1), Q (de aridad 2) y un símbolo de función, f , de aridad 1. Sea I = ( U, I ) la&lt;br /&gt;
estructura dada por:&lt;br /&gt;
U = { a, b, c, d } ;&lt;br /&gt;
I ( P ) = { a, b } ,&lt;br /&gt;
I ( Q ) = {( a, b ) , ( b, b ) , ( c, b )} ,&lt;br /&gt;
I ( f ) = {( a, b ) , ( b, b ) , ( c, a ) , ( d, c )} .&lt;br /&gt;
Decidir cuáles de las siguientes fórmulas de L son válidas en I :&lt;br /&gt;
* P ( x ) → ∃ yQ ( y, x ) .&lt;br /&gt;
*. ∀ xQ ( f ( x ) , x ) .&lt;br /&gt;
* Q ( f ( x ) , x ) → Q ( x, x ) .&lt;br /&gt;
* Q ( x, y ) → P ( x ) .&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ejercicio 3.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
En el lenguaje con igualdad L = { a, f } , siendo f un símbolo de función&lt;br /&gt;
de aridad 1 y a una constante, se consideran las siguientes fórmulas:&lt;br /&gt;
F_1 : = ∀ x [ f ( x ) ≠ a ] ,&lt;br /&gt;
F_2 : = ∀ x ∀ y [ f ( x ) = f ( y ) → x = y ] ,&lt;br /&gt;
F_3 : = ∀ x [ x ≠ a → ∃ y [ f ( y ) = x ]] .&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Solución:&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
</feed>