Lógica Proposicional: motivación Algoritmos y Estructuras de Datos I 2◦ cuatrimestre de 2008 Práctica número 1 Lógica proposicional y tipos básicos 1 Formulas bien formadas Por ejemplo, queremos que eso no suceda. 2 Semántica clásica: tablas de verdad ¿Cuáles de las siguientes fórmulas son bien formadas? I pq no I p∧q I (p ∧ q) I ((p ∧ q) → p) I (p → False) I (True ∧ p) → ⊥ I ((True ∧ p) → ⊥) I ¬¬¬¬¬p I ¬⊥ I ((p ∧ q ∧ r) → (p ∨ q)) p 1 0 no si p 1 1 0 0 ¬p 0 1 si si p 1 1 0 0 no si si si q 1 0 1 0 q 1 0 1 0 (p → q) 1 0 1 1 (p ∧ q) 1 0 0 0 p 1 1 0 0 p 1 1 0 0 q 1 0 1 0 q 1 0 1 0 (p ∨ q) 1 1 1 0 (p ↔ q) 1 0 0 1 si 3 4 Semántica clásica: resolviendo como un mono Semántica clásica: resolviendo como un mono (cont.) Intentemos con la siguiente fórmula: I ((p ∧ q) → p) p 1 1 0 0 El “algoritmo” para obtener todos los posibles valores de una fórmula es simple. Dada una fórmula, 1. Ponemos una columna para cada las variable proposicional 2. Luego ponemos otra columna con cada subfórmula 3. Ponemos la última columna con la fórmula que queremos demostrar 4. Ponemos tantas filas como combinaciones de valores de las variables proposicionales (¿cuántas hay?) 5. Llenamos las filas con las combinaciones de las variables proposicionales, y comenzamos a resolver la tabla. q 1 0 1 0 (p ∧ q) 1 0 0 0 ((p ∧ q) → p) 1 1 1 1 6 5 Semántica clásica: resolviendo como un mono (cont.) Expresando con LP Volviendo al ejemplo del principio, nos decı́an: Intentemos con la siguiente fórmula: I p 1 1 0 0 ϕ = ((p ↔ ¬q) ∧ (¬p ↔ ¬ q)) q 1 0 1 0 ¬p 0 0 1 1 ¬q 0 1 0 1 (p↔ ¬q) 0 1 1 0 (¬p ↔ ¬q) 1 0 0 1 I “Todos los hı́bridos X son rentables” I “Usted quiere un maı́z rentable” I “Entonces, usted quiere un maı́z X” Simplficando, esto queda ϕ 0 0 0 0 I “Maı́z X es rentable” I “Se quiere rentable” I “Entonces, se quiere maı́z X” o, dicho en lógica proposicional donde m es maı́z, r es rentable: (((m → r ) ∧ r ) → m) ¿Es esto es cierto?, es decir: ¿Es la fórmula anterior es una tautologı́a? 7 8 Expresando con LP (cont.) I Relación de fuerza I Decimos que la fórmula A es más fuerte que otra fórmula B cuando (A → B) es una tautologı́a. I Ejemplos ϕ = (((m → r) ∧ r) → m) m 1 1 0 0 r 1 0 1 0 (m → r) 1 0 1 1 ((m → r) ∧ r) 1 0 1 0 I ϕ 1 1 0 1 I I I p, (p ∧ q) es más fuerte: (p ∧ q) p, (p → q) es más fuerte: ninguna! p, (q → p) es más fuerte: p (p → q), (¬p ∨ q) es más fuerte: iguales! Entonces la marca en cuestión tiene que contratar publicistas que hayan cursado esta materia... 9 Semántica trivaluada: tablas de verdad p 1 0 − ¬p 0 1 − p 1 1 0 0 1 0 − − − q 1 0 1 0 − − 1 0 − (p ∧ q) 1 0 0 0 − 0 − − − 10 Semántica trivaluada: tablas de verdad (cont.) p 1 1 0 0 1 0 − − − q 1 0 1 0 − − 1 0 − (p ∨ q) 1 1 1 0 1 − − − − p 1 1 0 0 1 0 − − − 11 q 1 0 1 0 − − 1 0 − (p → q) 1 0 1 1 − 1 − − − p 1 1 0 0 1 0 − − − q 1 0 1 0 − − 1 0 − (p ↔ q) 1 0 0 1 − − − − − 12 Evaluación secuencial I El orden importa I I I I Tipos básicos Evaluamos de izquierda a derecha Si podemos deducir un valor de verdad no evaluamos más Si nos encontramos un ⊥ toda la fórmula resulta Indefinida Ejemplos, dados I I I I I I I I I Disponemos de los tipos Bool, Int (Z), Float (R), Char con sus operaciones. I Las operaciones de Bool se evaluan con semántica secuencial. I Las operaciones de los otros tipos son estrictas: Si encontramos un ⊥ se indefine toda la operación. p = True q = False r = Indef ¿Qué tipo tienen los siguientes términos? ¿Cuánto valen? I I True (p ∧ (p ∨ r)) Indefinido! ((r ∨ p) ∧ p) False (q ∧ (r ∨ p)) True (p ∨ q ∨ r) Indefinido! (q ∨ r ∨ p) Indefinido! (p → (r ∨ (p ∨ q))) True (q → (r ∨ ...)) I (ord(‘A’) * 5.0)/π I bord(‘A’)/πc Int I char(π) + 1 no tipa I ‘A’+ ‘a’ I ‘Motoneta’ I 7*β(x == 0) + 5*β(x == 1) Float no tipa no tipa depende del tipo de x 13 Tipos básicos: evaluación secuencial I I Fin de la clase Para poder ser evaluados los términos tienen que poder ser tipados. Veamos cuando se indefinen los siguientes términos si I I I i: Int f: Float c: Char I 0 ∗ (1/i) I I (i 6= 0) ∧ ((f /i) > 8) √ √ β( i 6= ⊥) ∗ i I 2log2 (f ) I 14 ‘K’∗5 ∗ √ ¿Preguntas? cuando (i == 0) nunca siempre! cuando (f ≤ 0) fi NO TIPA =) 15 16