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

		<summary type="html">&lt;p&gt;Pedperroj: &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;
-- 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 :: Cláusula -&amp;gt; Cláusula -&amp;gt; Literal -&amp;gt; Cláusula&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;
--Jose M Contreras&lt;br /&gt;
&lt;br /&gt;
resolvente :: Clausula -&amp;gt; Clausula -&amp;gt; Literal -&amp;gt; Clausula&lt;br /&gt;
resolvente c1 c2 x = union (delete x c1) (delete (complementario x) c2)&lt;br /&gt;
--La función complementario se define en el fichero importado FormasNormales &lt;br /&gt;
&lt;br /&gt;
--Miriam Núñez-Romero&lt;br /&gt;
&lt;br /&gt;
resolvente2 :: Clausula -&amp;gt; Clausula -&amp;gt; Literal -&amp;gt; Clausula&lt;br /&gt;
resolvente2 c1 c2 l = delete l (delete (complementario l) (c1`union`c2))&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    resolventes :: Cláusula -&amp;gt; Cláusula -&amp;gt; [Cláusula]&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;
--Jose M Contreras&lt;br /&gt;
&lt;br /&gt;
resolventes :: Clausula -&amp;gt; Clausula -&amp;gt; [Clausula]&lt;br /&gt;
resolventes c1 c2 = [resolvente c1 c2 x| x&amp;lt;-c1, elem (complementario x) c2]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    resolventesCláusulaConjunto :: Cláusula -&amp;gt; [Cláusula] -&amp;gt; [Cláusula]&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;
--    resolventesCláusulaConjunto [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;
--Jose M Contreras&lt;br /&gt;
&lt;br /&gt;
resolventesClausulaConjunto :: Clausula -&amp;gt; [Clausula] -&amp;gt; [Clausula]&lt;br /&gt;
resolventesClausulaConjunto c s = unionGeneral [resolventes c x|x&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;
--    esTautología :: Cláusula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esTautología c) se verifica si c es una tautología. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esTautología [p, q, no p]  ==&amp;gt;  True&lt;br /&gt;
--    esTautología [p, q, no r]  ==&amp;gt;  False&lt;br /&gt;
--    esTautología []            ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Jose M Contreras&lt;br /&gt;
&lt;br /&gt;
esTautologia :: Clausula -&amp;gt; Bool&lt;br /&gt;
esTautologia c = or[elem (complementario x) (delete x c)|x&amp;lt;-c]&lt;br /&gt;
&lt;br /&gt;
--Miriam Núñez-Romero&lt;br /&gt;
esTautologia2 :: Clausula -&amp;gt; Bool&lt;br /&gt;
esTautologia2 c = or [elem (complementario x) c |x&amp;lt;-c]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    eliminaTautologías :: [Cláusula] -&amp;gt; [Cláusula]&lt;br /&gt;
-- tal que (eliminaTautologías s) es el conjunto obtenido eliminando las&lt;br /&gt;
-- tautologías de s. Por ejemplo,&lt;br /&gt;
--    eliminaTautologías [[p, q], [p, q, no p]]  ==&amp;gt;  [[p,q]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Jose M Contreras&lt;br /&gt;
 &lt;br /&gt;
eliminaTautologias :: [Clausula] -&amp;gt; [Clausula]&lt;br /&gt;
eliminaTautologias s = [x|x&amp;lt;-s, not(esTautologia x)]&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;
--    esInconsistentePorResolución :: [Cláusula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esInconsistentePorResolución s) se verifica si s es&lt;br /&gt;
-- inconsistente mediante resolución. Por ejemplo,&lt;br /&gt;
--    esInconsistentePorResolución [[p],[no p,q],[no q]]&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esInconsistentePorResolución [[p],[no p,q]]&lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
--    esInconsistentePorResolución [[p,q],[no p,q],[p,no q],[no p,no q]]&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esInconsistentePorResolución [[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;
esInconsistentePorResolución :: [Cláusula] -&amp;gt; Bool&lt;br /&gt;
esInconsistentePorResolución s =&lt;br /&gt;
    esInconsistentePorResolución&amp;#039; s []&lt;br /&gt;
&lt;br /&gt;
esInconsistentePorResolución&amp;#039; :: [Cláusula] -&amp;gt; [Cláusula] -&amp;gt; Bool&lt;br /&gt;
esInconsistentePorResolución&amp;#039; soporte usables &lt;br /&gt;
    | null soporte    = False&lt;br /&gt;
    | elem [] soporte = True&lt;br /&gt;
    | otherwise       =&lt;br /&gt;
        esInconsistentePorResolución&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;- resolventesCláusulaConjunto&lt;br /&gt;
                                       actual &lt;br /&gt;
                                       usables&amp;#039;&lt;br /&gt;
                                , not (esTautología c)&lt;br /&gt;
                                , notElem c soporte&lt;br /&gt;
                                , notElem c usables&amp;#039;]&lt;br /&gt;
&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álidaPorResolución :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esVálidaPorResolución f) se verifica si f es válida por&lt;br /&gt;
-- resolución. Por ejemplo, &lt;br /&gt;
--    esVálidaPorResolución (p --&amp;gt; p)                 ==&amp;gt;  True&lt;br /&gt;
--    esVálidaPorResolución ((p --&amp;gt; q) \/ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
--    esVálidaPorResolución (p --&amp;gt; q)                 ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esVálidaPorResolución :: Prop -&amp;gt; Bool&lt;br /&gt;
esVálidaPorResolución f = &lt;br /&gt;
   esInconsistentePorResolucion (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;
--    esConsecuenciaPorResolución :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuenciaPorResolución 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;
--    esConsecuenciaPorResolución [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)  &lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsecuenciaPorResolución [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;
esConsecuenciaPorResolución :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaPorResolución s f = &lt;br /&gt;
   esInconsistentePorResolucion (eliminaTautologias (clausulasConjunto ((Neg f):s))) &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedperroj</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_10&amp;diff=535</id>
		<title>Relación 10</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_10&amp;diff=535"/>
		<updated>2013-05-22T17:52:41Z</updated>

		<summary type="html">&lt;p&gt;Pedperroj: &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 Cláusula = [Literal]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir la función&lt;br /&gt;
--    cláusula :: Prop -&amp;gt; Cláusula&lt;br /&gt;
-- tal que (cláusula f) es la cláusula de la fórmula-clausal f. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    cláusula p                                 ==&amp;gt;  [p]&lt;br /&gt;
--    cláusula (no p)                            ==&amp;gt;  [no p]&lt;br /&gt;
--    cláusula (((no p) \/ r) \/ ((no p) \/ q))  ==&amp;gt;  [q,r,no p]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--José M Contreras&lt;br /&gt;
&lt;br /&gt;
clausula :: Prop -&amp;gt; Clausula&lt;br /&gt;
clausula f | 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;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    cláusulasFNC :: Prop -&amp;gt; [Cláusula]&lt;br /&gt;
-- tal que (cláusulasFNC f) es el conjunto de cláusulas de la fórmula en&lt;br /&gt;
-- forma normal conjuntiva f. Por ejmplo,&lt;br /&gt;
--    cláusulasFNC (p /\ ((no q) \/ r))&lt;br /&gt;
--    ==&amp;gt; [[p],[r, no q]]&lt;br /&gt;
--    cláusulasFNC (((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;
--José M Contreras&lt;br /&gt;
&lt;br /&gt;
clausulasFNC :: Prop -&amp;gt; [Clausula]&lt;br /&gt;
clausulasFNC (Conj f g)= union (clausulasFNC f) (clausulasFNC g) &lt;br /&gt;
clausulasFNC f=[clausula f]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir la función&lt;br /&gt;
--    cláusulas :: Prop -&amp;gt; [Cláusula]&lt;br /&gt;
-- tal que (cláusulas f) es un conjunto de cláusulas equivalente a&lt;br /&gt;
-- f. Por ejemplo,&lt;br /&gt;
--    cláusulas (p /\ (q --&amp;gt; r))       &lt;br /&gt;
--    ==&amp;gt; [[p],[r,no q]]&lt;br /&gt;
--    cláusulas (no (p /\ (q --&amp;gt; r)))  &lt;br /&gt;
--    ==&amp;gt; [[q,no p],[no p,no r]]&lt;br /&gt;
--    cláusulas (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;
--José M Contreras&lt;br /&gt;
 &lt;br /&gt;
clausulas :: Prop -&amp;gt; [Clausula]&lt;br /&gt;
clausulas = clausulasFNC . formaNormalConjuntiva&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;
--    cláusulasConjunto :: [Prop] -&amp;gt; [Cláusula]&lt;br /&gt;
-- tal que (cláusulasConjunto s) es un conjunto de cláusulas equivalente&lt;br /&gt;
-- a s. Por ejemplo,&lt;br /&gt;
--    cláusulasConjunto [p --&amp;gt; q, q --&amp;gt; r]   ==&amp;gt;  [[q,no p],[r,no q]]&lt;br /&gt;
--    cláusulasConjunto [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;
--Isabel Duarte&lt;br /&gt;
clausulasConjunto :: [Prop] -&amp;gt; [Cláusula]&lt;br /&gt;
clausulasConjunto s = unionGeneral [clausulas f | f &amp;lt;- s]&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;
--    símbolosProposicionalesCláusula :: Cláusula -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (símbolosProposicionalesCláusula c) es el conjunto de los&lt;br /&gt;
-- símbolos proposicionales de c. Por ejemplo,&lt;br /&gt;
--    símbolosProposicionalesCláusula [p, q, no p]  ==&amp;gt;  [p,q]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
simbolosProposicionalesClausula :: Clausula -&amp;gt; [Prop]&lt;br /&gt;
simbolosProposicionalesClausula = simbolosPropConj&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;
--    símbolosProposicionalesConjuntoCláusula :: [Cláusula] -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (símbolosProposicionalesConjuntoCláusula s) es el conjunto de los&lt;br /&gt;
-- símbolos proposicionales de s. Por ejemplo,&lt;br /&gt;
--    símbolosProposicionalesConjuntoCláusula [[p, q],[no q, r]]&lt;br /&gt;
--    ==&amp;gt; [p,q,r]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
simbolosProposicionalesConjuntoClausula :: [Cláusula] -&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 cláusula                                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    interpretacionesCláusula :: Cláusula -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (interpretacionesCláusula c) es el conjunto de&lt;br /&gt;
-- interpretaciones de c. Por ejemplo,&lt;br /&gt;
--    interpretacionesCláusula [p, q, no p]  ==&amp;gt;  [[p,q],[p],[q],[]]&lt;br /&gt;
--    interpretacionesCláusula []            ==&amp;gt;  [[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
interpretacionesClausula :: Cláusula -&amp;gt; [Interpretación]&lt;br /&gt;
interpretacionesClausula c = subconjuntos (simbolosProposicionalesClausula c)&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;
--    interpretacionesConjuntoCláusula :: [Cláusula] -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (interpretacionesConjuntoCláusula s) es el conjunto de&lt;br /&gt;
-- interpretaciones de s. Por ejemplo,&lt;br /&gt;
--    interpretacionesConjuntoCláusula [[p, no q],[no p, q]]&lt;br /&gt;
--    ==&amp;gt; [[p,q],[p],[q],[]]&lt;br /&gt;
--    interpretacionesConjuntoCláusula []&lt;br /&gt;
--    ==&amp;gt; [[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
interpretacionesConjuntoClausula :: [Cláusula] -&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 cláusulas                                               --&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;
--Isabel Duarte&lt;br /&gt;
esModeloLiteral :: Interpretacion -&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;
--    esModeloCláusula :: Interpretación -&amp;gt; Cláusula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloCláusula i c) se verifica si i es modelo de c . Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloCláusula [p,r] [p, q]     ==&amp;gt;  True&lt;br /&gt;
--    esModeloCláusula [r] [p, no q]    ==&amp;gt;  True&lt;br /&gt;
--    esModeloCláusula [q,r] [p, no q]  ==&amp;gt;  False&lt;br /&gt;
--    esModeloCláusula [q,r] []         ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
esModeloClausula :: Interpretacion -&amp;gt; Clausula -&amp;gt; Bool&lt;br /&gt;
esModeloClausula i c = or [esModeloLiteral i p | p &amp;lt;- c]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    modelosCláusula :: Cláusula -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (modelosCláusula c) es la lista de los modelos de c. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    modelosCláusula [no p, q]  ==&amp;gt;  [[p,q],[q],[]]&lt;br /&gt;
--    modelosCláusula [no p, p]  ==&amp;gt;  [[p],[]]&lt;br /&gt;
--    modelosCláusula []         ==&amp;gt;  []&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Isabel Duarte&lt;br /&gt;
modelosClausula :: Clausula -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosClausula c = [ x | x &amp;lt;- (interpretacionesClausula c), esModeloClausula x c]&lt;br /&gt;
&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;
--    esModeloConjuntoCláusulas :: Interpretación -&amp;gt; [Cláusula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloConjuntoCláusulas i c) se verifica si i es modelo de&lt;br /&gt;
-- c. Por ejemplo,&lt;br /&gt;
--    esModeloConjuntoCláusulas [p,r] [[p, no q], [r]]  ==&amp;gt;  True&lt;br /&gt;
--    esModeloConjuntoCláusulas [p] [[p, no q], [r]]    ==&amp;gt;  False&lt;br /&gt;
--    esModeloConjuntoCláusulas [p] []                  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Miriam Núñez-Romero&lt;br /&gt;
&lt;br /&gt;
esModeloConjuntoClausulas :: Interpretacion -&amp;gt; [Clausula] -&amp;gt; Bool&lt;br /&gt;
esModeloConjuntoClausulas i s = 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;
--    modelosConjuntoCláusulas :: [Cláusula] -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (modelosConjuntoCláusulas s) es la lista de los modelos de&lt;br /&gt;
-- s. Por ejemplo, &lt;br /&gt;
--    modelosConjuntoCláusulas [[no p, q], [no q, p]]    &lt;br /&gt;
--    ==&amp;gt; [[p,q],[]]&lt;br /&gt;
--    modelosConjuntoCláusulas [[no p, q], [p], [no q]]  &lt;br /&gt;
--    ==&amp;gt; []&lt;br /&gt;
--    modelosConjuntoCláusulas [[p, no p, q]]            &lt;br /&gt;
--    ==&amp;gt; [[p,q],[p],[q],[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Miriam Núñez-Romero&lt;br /&gt;
&lt;br /&gt;
modelosConjuntoClausulas :: [Clausula] -&amp;gt; [Interpretacion]&lt;br /&gt;
modelosConjuntoClausulas s = [i|i&amp;lt;-interpretacionesConjuntoClausula s,&lt;br /&gt;
                                   esModeloConjuntoClausulas i s]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Cláusulas 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;
--    esCláusulaVálida :: Cláusula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esCláusulaVálida c) se verifica si la cláusula c es&lt;br /&gt;
-- válida. Por ejemplo, &lt;br /&gt;
--    esCláusulaVálida [p, q, no p]  ==&amp;gt;  True&lt;br /&gt;
--    esCláusulaVálida [p, q, no r]  ==&amp;gt;  False&lt;br /&gt;
--    esCláusulaVálida []            ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Miriam Núñez-Romero&lt;br /&gt;
&lt;br /&gt;
esClausulaValida :: Clausula -&amp;gt; Bool&lt;br /&gt;
esClausulaValida c = [l|l&amp;lt;-c,elem (complementario l) c]/=[]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16: Definir la función&lt;br /&gt;
--    esCláusulaInsatisfacible :: Cláusula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esCláusulaInsatisfacible c) se verifica si la cláusula c es&lt;br /&gt;
-- insatisfacible. Por ejemplo, &lt;br /&gt;
--    esCláusulaInsatisfacible [p, q, no p]  ==&amp;gt;  False&lt;br /&gt;
--    esCláusulaInsatisfacible [p, q, no r]  ==&amp;gt;  False&lt;br /&gt;
--    esCláusulaInsatisfacible []            ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Alejandro Ballesteros&lt;br /&gt;
&lt;br /&gt;
esCláusulaInsatisfacible :: Cláusula -&amp;gt; Bool&lt;br /&gt;
esCláusulaInsatisfacible c = null c&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 17: Definir la función&lt;br /&gt;
--    esCláusulaSatisfacible :: Cláusula -&amp;gt; Bool&lt;br /&gt;
-- tal que (esCláusulaSatisfacible c) se verifica si la cláusula c es&lt;br /&gt;
-- satisfacible. Por ejemplo, &lt;br /&gt;
--    esCláusulaSatisfacible [p, q, no p]  ==&amp;gt;  True&lt;br /&gt;
--    esCláusulaSatisfacible [p, q, no r]  ==&amp;gt;  True&lt;br /&gt;
--    esCláusulaSatisfacible []  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Alejandro Ballesteros&lt;br /&gt;
&lt;br /&gt;
esCláusulaSatisfacible :: Cláusula -&amp;gt; Bool&lt;br /&gt;
esCláusulaSatisfacible c = not (null c)&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álidoDeCláusulas :: [Cláusula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConjuntoVálidoDeCláusulas s) se verifica si el conjunto de&lt;br /&gt;
-- cláusulas s es válido. Por ejemplo,&lt;br /&gt;
--    esConjuntoVálidoDeCláusulas [[no p, q], [no q, p]]  ==&amp;gt;  False&lt;br /&gt;
--    esConjuntoVálidoDeCláusulas [[no p, p], [no q, q]]  ==&amp;gt;  True&lt;br /&gt;
--    esConjuntoVálidoDeCláusulas []                      ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Alejandro Ballesteros&lt;br /&gt;
&lt;br /&gt;
esConjuntoVálidoDeCláusulas :: [Cláusula] -&amp;gt; Bool&lt;br /&gt;
esConjuntoVálidoDeCláusulas s = and [ esClausulaValida c|c&amp;lt;-s]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 19: Definir la función&lt;br /&gt;
--    esConjuntoConsistenteDeCláusulas :: [Cláusula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConjuntoConsistenteDeCláusulas s) se verifica si el&lt;br /&gt;
-- conjunto de cláusulas s es consistente. Por ejemplo,&lt;br /&gt;
--    esConjuntoConsistenteDeCláusulas [[no p, q], [no q, p]]  ==&amp;gt;  True&lt;br /&gt;
--    esConjuntoConsistenteDeCláusulas [[no p, p], [no q, q]]  ==&amp;gt;  True&lt;br /&gt;
--    esConjuntoConsistenteDeCláusulas []                      ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Alejandro Ballesteros&lt;br /&gt;
&lt;br /&gt;
esConjuntoConsistenteDeCláusulas :: [Cláusula] -&amp;gt; Bool&lt;br /&gt;
esConjuntoConsistenteDeCláusulas s = not( null (modeloConjuntoClausulas s))&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 20: Definir la función&lt;br /&gt;
--    esConjuntoInconsistenteDeCláusulas :: [Cláusula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConjuntoInconsistenteDeCláusulas s) se verifica si el&lt;br /&gt;
-- conjunto de cláusulas s es consistente. Por ejemplo,&lt;br /&gt;
--    esConjuntoInconsistenteDeCláusulas [[no p,q],[no q,p]]  ==&amp;gt;  False&lt;br /&gt;
--    esConjuntoInconsistenteDeCláusulas [[no p],[p]]         ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Alejandro Ballesteros&lt;br /&gt;
&lt;br /&gt;
esConjuntoInconsistenteDeCláusulas :: [Cláusula] -&amp;gt; Bool&lt;br /&gt;
esConjuntoInconsistenteDeCláusulas s = null (modeloConjuntoClausulas s))&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;
--    esVálidaPorCláusulas :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esVálidaPorCláusulas f) se verifica si el conjunto de&lt;br /&gt;
-- cláusulas de f es válido. Por ejemplo,&lt;br /&gt;
--    esVálidaPorCláusulas (p --&amp;gt; q)                 ==&amp;gt;  False&lt;br /&gt;
--    esVálidaPorCláusulas (p --&amp;gt; p)                 ==&amp;gt;  True&lt;br /&gt;
--    esVálidaPorCláusulas ((p --&amp;gt; q) \/ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esVálidaPorCláusulas :: Prop -&amp;gt; Bool&lt;br /&gt;
esVálidaPorCláusulas f = esConjuntoValidoDeClausulas (clausulas f)&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;
--    esConsecuenciaEntreCláusulas :: [Cláusula] -&amp;gt; [Cláusula] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuenciaEntreCláusulas s1 s2) se verifica si todos los&lt;br /&gt;
-- modelos de s1 son modelos de s2. Por ejemplo,&lt;br /&gt;
--    esConsecuenciaEntreCláusulas [[no p,q],[no q,r]] [[no p,r]]  &lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsecuenciaEntreCláusulas [[p]] [[p],[q]]                 &lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Pedro José Perea Rojo&lt;br /&gt;
&lt;br /&gt;
esConsecuenciaEntreCláusulas :: [Cláusula] -&amp;gt; [Cláusula] -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaEntreClausulas s1 s2 = null [k | k &amp;lt;- interpretacionesConjuntoClausula (s1++s2)&lt;br /&gt;
                                             , esModeloConjuntoClausulas k s1&lt;br /&gt;
                                             , not ((esModeloConjuntoClausulas k s2))]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 23: Definir la función&lt;br /&gt;
--    esConsecuenciaPorCláusulas1 :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuenciaPorCláusulas s f) se verifica si las cláusulas&lt;br /&gt;
-- de f son consecuencias de las de s. Por ejemplo,&lt;br /&gt;
--    esConsecuenciaPorCláusulas [(p --&amp;gt; q), (q --&amp;gt; r)] (p --&amp;gt; r)&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsecuenciaPorCláusulas [p] (p /\ q)&lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Alejandro Ballesteros&lt;br /&gt;
&lt;br /&gt;
esConsecuenciaPorCláusulas :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaPorCláusulas s f = esConjuntoInconsistenteDeClausulas (clausulasConjunto((Neg f):s))&lt;br /&gt;
&lt;br /&gt;
--Pedro José Perea Rojo&lt;br /&gt;
esConsecuenciaPorClausulas2 :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuenciaPorClausulas2 s f = esConsecuenciaEntreClausulas (clausulasConjunto s) (clausulas f)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pedperroj</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Ejercicio_3&amp;diff=463</id>
		<title>Ejercicio 3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Ejercicio_3&amp;diff=463"/>
		<updated>2013-04-29T18:38:45Z</updated>

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

		<summary type="html">&lt;p&gt;Pedperroj: /* Selección del ejercicio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Enunciado ==&lt;br /&gt;
El segundo ejercicio evaluable consiste en la realización de una demostración por deducción natural en la Lógica de primer orden, con Isabelle/HOL.&lt;br /&gt;
Para ello, &lt;br /&gt;
* Cada alumno elegirá uno de los ejercicios propuestos en [[T2|T2]].&lt;br /&gt;
* Una vez elegido, lo anotará en la lista que se muestra a continuación, no pudiendo un mismo ejercicio ser elegido por más de un alumno. &lt;br /&gt;
* El ejercicio resuelto se enviará a mjoseh@us.es en un fichero usuario_2.thy antes del viernes 26 de abril de 2013.&lt;br /&gt;
* En la valoración del ejercicio se tendrá en cuenta tanto el nivel de dificultad como la calidad de la demostración.&lt;br /&gt;
&lt;br /&gt;
== Selección del ejercicio ==&lt;br /&gt;
&lt;br /&gt;
* Ejercicio 1: Francisco Vilches Chacón&lt;br /&gt;
* Ejercicio 2: Ana Rocío del Valle Benavides&lt;br /&gt;
* Ejercicio 3: &lt;br /&gt;
* Ejercicio 4: &lt;br /&gt;
* Ejercicio 5: Concepción García Vidal&lt;br /&gt;
* Ejercicio 6: &lt;br /&gt;
* Ejercicio 7: &lt;br /&gt;
* Ejercicio 8: Inmaculada Arjona Arjona&lt;br /&gt;
* Ejercicio 9: &lt;br /&gt;
* Ejercicio 10: Carmen Martínez Navarro&lt;br /&gt;
* Ejercicio 11: Pedro José Perea Rojo&lt;br /&gt;
* Ejercicio 12: &lt;br /&gt;
* Ejercicio 13: &lt;br /&gt;
* Ejercicio 14: &lt;br /&gt;
* Ejercicio 15: &lt;br /&gt;
* Ejercicio 16: &lt;br /&gt;
* Ejercicio 17: &lt;br /&gt;
* Ejercicio 18: &lt;br /&gt;
* Ejercicio 19: &lt;br /&gt;
* Ejercicio 20: &lt;br /&gt;
* Ejercicio 21: &lt;br /&gt;
* Ejercicio 22: Erlinda Menéndez Pérez&lt;br /&gt;
* Ejercicio 23: Irene Araujo Guijo&lt;br /&gt;
* Ejercicio 24: &lt;br /&gt;
* Ejercicio 25: &lt;br /&gt;
* Ejercicio 26: José Mª Contreras Beltrán&lt;br /&gt;
* Ejercicio 27: FºJavier Sanz Gil&lt;br /&gt;
* Ejercicio 28: Isabel Duarte Tosso&lt;br /&gt;
* Ejercicio 29: &lt;br /&gt;
* Ejercicio 30: &lt;br /&gt;
* Ejercicio 31: Antonio Jesús Molero del Río&lt;br /&gt;
* Ejercicio 32: Mª de los Remedios Sillero Denamiel&lt;br /&gt;
* Ejercicio 33: Pedro Ros Reina&lt;/div&gt;</summary>
		<author><name>Pedperroj</name></author>
		
	</entry>
</feed>