-- I1M 2009-10: G1_Rel_3.hs
-- 3ª relación de ejercicios (26 de Octubre)
-- Departamento de Ciencias de la Computación e I.A.
-- Universidad de Sevilla
-- =====================================================================

-- ---------------------------------------------------------------------
-- Importación de librerías auxiliares                                --
-- ---------------------------------------------------------------------

import Test.QuickCheck

-- ---------------------------------------------------------------------
-- Ejercicio 1 (Raices de una ecuación de segundo grado)
-- ---------------------------------------------------------------------
-- Ejercicio 1.1. Definir la función raices de forma que raices a b c
-- devuelve la lista de las raices reales de la ecuación 
-- ax² + bx + c = 0. Por ejemplo, 
--    raices 1 (-2) 1 => [1.0,1.0]
--    raices 1 2 3    => [-1.0,-2.0]
-- Escribir distintas definiciones de la función raices.
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 1.2. Comprobar con QuickCheck si todas las definiciones
-- coinciden. 
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 1.3. Comprobar con QuickCheck que las definiciones son
-- correctas; es decir, que los elementos del resultado son raices de la
-- ecuación.
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 2. La disyunción excluyente xor de dos fórmulas se verifica
-- si una es verdadera y la otra es falsa.
-- ---------------------------------------------------------------------
-- Ejercicio 2.1. Definir la función xor_1 que calcule la disyunción
-- excluyente a partir de la tabla de verdad. Usar 4 ecuaciones, una por
-- cada línea de la tabla.
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 2.2. Definir la función xor_2 que calcule la disyunción
-- excluyente a partir de la tabla de verdad y patrones. Usar 2
-- ecuaciones, una por cada valor del primer argumento.
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 2.3. Definir la función xor_3 que calcule la disyunción
-- excluyente a partir de la disyunción (||), conjunción (&&) y negación
-- (not). Usar 1 ecuación.
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 2.4. Definir la función xor_4 que calcule la disyunción
-- excluyente a partir de desigualdad (/=). Usar 1 ecuación.
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 2.5. Comprobar con QuickCheck la equivalencia de las 4
-- definiciones anteriores.
-- ---------------------------------------------------------------------

