ejemplos desarrollados en el manual

Anuncio
Capitulo 6.nb
1
6. Lógica proposicional:
Tautologías,
contradicciones, formas
normales, equivalencias e
implicaciones lógicas y
argumentaciones
Ejemplos con Mathematica
1. Tautología y contradicción
ü Ejemplo 6.1.
Comprobar si la forma enunciativa: A: ( p1 Ó p2 ) Ô ( p3 Ó p4 ) es tautología o
contradicción.
Capitulo 6.nb
n = 4;
tautologia = True;
p = Table@False, 8t, n<D;
expresion := Hp@@1DD »» p@@2DDL && Hp@@3DD »» p@@4DDL;
For@i = 0, i < 2 ^ n, i ++,
j = i;
For@f = n, f > 0, f −−,
resto = Mod@j, 2D;
j = Floor@j ê 2D;
If@resto 0, p@@fDD = True, p@@fDD = FalseD;
D;
If@TrueQ@expresionD, Null, tautologia = FalseD;
D;
If@tautologia, Print@"La forma enunciativa es una tautología"D,
Print@"La forma enunciativa no es una tautología"DD
La forma enunciativa no es una tautología
n = 4;
contradiccion = True;
p = Table@False, 8t, n<D;
expresion := Hp@@1DD »» p@@2DDL && Hp@@3DD »» p@@4DDL;
For@i = 0, i < 2 ^ n, i ++,
j = i;
For@f = n, f > 0, f −−,
resto = Mod@j, 2D;
j = Floor@j ê 2D;
If@resto 0, p@@fDD = True, p@@fDD = FalseD;
D;
If@TrueQ@expresionD, contradiccion = FalseD;
D;
If@contradiccion, Print@"La forma enunciativa es una contradicción"D,
Print@"La forma enunciativa no es una contradicción"DD
La forma enunciativa no es una contradicción
2. Formas normales
ü Ejemplo 6.2.
Calcular las formas normales de la forma enunciativa A: ( p1 Ó p2 ) Ø p3 .
2
Capitulo 6.nb
n = 3;
cadena = "";
cadena2 = "";
cad = "";
cad2 = "";
contradiccion = True;
tautologia = True;
p = Table@False, 8t, n<D;
expresion := Implies@Hp@@1DD »» p@@2DDL, p@@3DDD;
For@i = 0, i < 2 ^ n, i ++, j = i;
cad = "";
cad2 = "";
For@f = n, f > 0, f −−, resto = Mod@j, 2D;
j = Floor@j ê 2D;
If@resto 0, p@@fDD = True;
If@f n, cad = StringJoin@"p", ToString@fD, cadD,
cad = StringJoin@"p", ToString@fD, " fl ", cadDD;
If@f n, cad2 = StringJoin@"H∼p", ToString@fD, "L", cad2D, cad2 =
StringJoin@"H∼p", ToString@fD, "L", " fi ", cad2DD;, p@@fDD = False;
If@f n, cad = StringJoin@"H∼p", ToString@fD, "L", cadD,
cad = StringJoin@"H∼p", ToString@fD, "L", " fl ", cadDD;
If@f n, cad2 = StringJoin@"p", ToString@fD, cad2D,
cad2 = StringJoin@"p", ToString@fD, " fi ", cad2DD;D;D;
If@TrueQ@expresionD, If@cadena "", cadena = StringJoin@cadena,
"H", cad, "L"D, cadena = StringJoin@cadena, " fi H", cad, "L"DD;
contradiccion = False;, If@cadena2 "",
cadena2 = StringJoin@cadena2, "H", cad2, "L"D,
cadena2 = StringJoin@cadena2, " fl H", cad2, "L"DD;
tautologia = False;D;D;
If@contradiccion, Print@"Es una contradicción."D, Print@
"No es contradicción y la forma normal disyuntiva es: ", cadenaDD;
If@tautologia, Print@"Es una tautología."D,
Print@"No es tautología y la forma normal conmutativa es: ", cadena2DD;
No es contradicción y la forma normal disyuntiva es:
Hp1 fl p2 fl p3L fi Hp1 fl H∼p2L fl p3L fi HH∼p1L fl p2 fl
p3L fi HH∼p1L fl H∼p2L fl p3L fi HH∼p1L fl H∼p2L fl H∼p3LL
No es tautología y la forma normal conmutativa es:
HH∼p1L fi H∼p2L fi p3L fl HH∼p1L fi p2 fi p3L fl Hp1 fi H∼p2L fi p3L
ü Ejemplo 6.3.
Calcular una forma enunciativa restringida equivalente a la forma enunciativa A: p1 Ø p2 .
3
Capitulo 6.nb
Bastará con dar la forma normal disyuntiva o la forma normal conjuntiva de
A para tener tal forma enunciativa restringida.
n = 2;
cadena = "";
cadena2 = "";
cad = "";
cad2 = "";
contradiccion = True;
tautologia = True;
p = Table@False, 8t, n<D;
expresion := Implies@p@@1DD, p@@2DDD;
For@i = 0, i < 2 ^ n, i ++, j = i;
cad = "";
cad2 = "";
For@f = n, f > 0, f −−, resto = Mod@j, 2D;
j = Floor@j ê 2D;
If@resto 0, p@@fDD = True;
If@f n, cad = StringJoin@"p", ToString@fD, cadD,
cad = StringJoin@"p", ToString@fD, " fl ", cadDD;
If@f n, cad2 = StringJoin@"H∼p", ToString@fD, "L", cad2D, cad2 =
StringJoin@"H∼p", ToString@fD, "L", " fi ", cad2DD;, p@@fDD = False;
If@f n, cad = StringJoin@"H∼p", ToString@fD, "L", cadD,
cad = StringJoin@"H∼p", ToString@fD, "L", " fl ", cadDD;
If@f n, cad2 = StringJoin@"p", ToString@fD, cad2D,
cad2 = StringJoin@"p", ToString@fD, " fi ", cad2DD;D;D;
If@TrueQ@expresionD, If@cadena "", cadena = StringJoin@cadena,
"H", cad, "L"D, cadena = StringJoin@cadena, " fi H", cad, "L"DD;
contradiccion = False;, If@cadena2 "",
cadena2 = StringJoin@cadena2, "H", cad2, "L"D,
cadena2 = StringJoin@cadena2, " fl H", cad2, "L"DD;
tautologia = False;D;D;
If@contradiccion, Print@"Es una contradicción."D, Print@
"No es contradicción y la forma normal disyuntiva es: ", cadenaDD;
If@tautologia, Print@"Es una tautología."D,
Print@"No es tautología y la forma normal conmutativa es: ", cadena2DD;
No es contradicción y la forma normal disyuntiva es:
Hp1 fl p2L fi HH∼p1L fl p2L fi HH∼p1L fl H∼p2LL
No es tautología y la forma normal conmutativa es: HH∼p1L fi p2L
Por tanto, una solución para este problema sería la forma enunciativa
restringida ( p1 Ó (~ p2 )).
4
Capitulo 6.nb
ü Ejemplo 6.4.
Aplicamos el procedimiento logica a la forma enunciativa ((pØq)Ø(~r))
logica :=
Module@8tabla, cadena, cadena2, cad, cad2, contradiccion, tautologia<,
tabla = Table@"F", 8x, H2 ^ n + 1L<, 8y, n + 1<D;
For@k = 1, k < n + 1, k ++, tabla@@1, kDD = \!\H"p" \_ k\LD;
tabla@@1, n + 1DD = "Exp";
For@i = 0, i < 2 ^ n, i ++, j = i;
For@f = n, f > 0, f −−, resto = Mod@j, 2D;
j = Floor@j ê 2D;
If@resto 0, p@@fDD = True; tabla@@i + 2, fDD = "V", p@@fDD = FalseD;D;
If@TrueQ@expresionD, tabla@@i + 2, n + 1DD = "V"D;D;
Print@"La tabla de verdad es: "D;
Print@TableForm@tablaDD;
cadena = "";
cadena2 = "";
cad = "";
cad2 = "";
contradiccion = True;
tautologia = True;
For@i = 0, i < 2 ^ n, i ++, j = i;
cad = "";
cad2 = "";
For@f = n, f > 0, f −−, resto = Mod@j, 2D;
j = Floor@j ê 2D;
If@resto 0, p@@fDD = True;
If@f n, cad = StringJoin@"p", ToString@fD, cadD,
cad = StringJoin@"p", ToString@fD, " fl ", cadDD;
If@f n, cad2 = StringJoin@"H∼p", ToString@fD, "L", cad2D, cad2 =
StringJoin@"H∼p", ToString@fD, "L", " fi ", cad2DD;, p@@fDD = False;
If@f n, cad = StringJoin@"H∼p", ToString@fD, "L", cadD,
cad = StringJoin@"H∼p", ToString@fD, "L", " fl ", cadDD;
If@f n, cad2 = StringJoin@"p", ToString@fD, cad2D,
cad2 = StringJoin@"p", ToString@fD, " fi ", cad2DD;D;D;
If@TrueQ@expresionD, If@cadena "", cadena = StringJoin@cadena,
"H", cad, "L"D, cadena = StringJoin@cadena, " fi H", cad, "L"DD;
contradiccion = False;, If@cadena2 "",
cadena2 = StringJoin@cadena2, "H", cad2, "L"D,
cadena2 = StringJoin@cadena2, " fl H", cad2, "L"DD;
tautologia = False;D;D;
If@contradiccion, Print@"Es una contradicción."D, Print@
"No es contradicción y la forma normal disyuntiva es: ", cadenaDD;
If@tautologia, Print@"Es una tautología."D,
Print@"No es tautología y la forma normal conjuntiva es: ", cadena2DDD
5
Capitulo 6.nb
6
n = 3;
p = Table@False, 8t, n<D;
expresion := Implies@Implies@p@@1DD, p@@2DDD, ! p@@3DDD
logica
La tabla de verdad es:
p1
V
V
V
V
F
F
F
F
p2
V
V
F
F
V
V
F
F
p3
V
F
V
F
V
F
V
F
Exp
F
V
V
V
F
V
F
V
No es contradicción y la forma normal disyuntiva es:
Hp1 fl p2 fl H∼p3LL fi Hp1 fl H∼p2L fl p3L fi Hp1 fl H∼p2L fl
H∼p3LL fi HH∼p1L fl p2 fl H∼p3LL fi HH∼p1L fl H∼p2L fl H∼p3LL
No es tautología y la forma normal conjuntiva es:
HH∼p1L fi H∼p2L fi H∼p3LL fl Hp1 fi H∼p2L fi H∼p3LL fl Hp1 fi p2 fi H∼p3LL
3. Equivalencias lógicas e implicaciones lógicas
ü Ejemplo 6.5.
Comprobar que las siguientes formas enunciativas son equivalentes:
a) (p Ø q)
b) ((~q) Ø (~p))
Capitulo 6.nb
Sii@a_, b_D := Implies@a, bD && Implies@b, aD;
n = 2;
tautologia = True;
p = Table@False, 8t, n<D;
expresion := Sii@Implies@p@@1DD, p@@2DDD, Implies@! p@@2DD, ! p@@1DDDD;
For@i = 0, i < 2 ^ n, i ++, j = i;
For@f = n, f > 0, f −−, resto = Mod@j, 2D;
j = Floor@j ê 2D;
If@resto 0, p@@fDD = True, p@@fDD = FalseD;D;
If@TrueQ@expresionD, Null, tautologia = FalseD;D;
If@tautologia, Print@"La forma enunciativa es una tautología"D,
Print@"La forma enunciativa no es una tautología"DD
La forma enunciativa es una tautología
Por tanto, la forma enunciativa ((p Ø q) ¨ ((~ q) Ø (~ p))) es una tautología de lo que deducimos que (p Ø q) es lógicamente equivalente a ((~
q) Ø (~ p)).
4. Argumentaciones válidas
ü Ejemplo 6.6.
Estudiar la validez o invalidez de la siguiente argumentación:
((p Ô q) Ø r), q ; \ (p Ø r)
Sólo tenemos que ver si la forma enunciativa (((pÔq)Ør)Ôq)Ø(pØr) es una
tautología
7
Capitulo 6.nb
n = 3;
tautologia = True;
p = Table@False, 8t, n<D;
expresion := Implies@
Implies@p@@1DD && p@@2DD, p@@3DDD && p@@2DD, Implies@p@@1DD, p@@3DDDD;
For@i = 0, i < 2 ^ n, i ++,
j = i;
For@f = n, f > 0, f −−,
resto = Mod@j, 2D;
j = Floor@j ê 2D;
If@resto 0, p@@fDD = True, p@@fDD = FalseD;
D;
If@TrueQ@expresionD, Null, tautologia = FalseD;
D;
If@tautologia, Print@"La forma enunciativa es una tautología"D,
Print@"La forma enunciativa no es una tautología"DD
La forma enunciativa es una tautología
Por tanto, la forma argumentativa es válida.
ü Ejemplo 6.7.
Cierta empresa necesita incrementar su plantilla con un nuevo miembro que
pueda programar en Mathematica o que sepa programación. Además si
sabe programación entonces puede programar en Mathematica. ¿Podemos
deducir de lo anterior que dicha empresa necesita una persona que sepa
utilizar el programa Mathematica?
En realidad, este enunciado se puede estudiar a través de una argumentación con premisas A1 : p Ó q, A2 : q Ø p y conclusión A: p. La respuesta a
la pregunta planteada será afirmativa si la argumentación es valida y en
otro caso será negativa.
8
Capitulo 6.nb
n = 2;
tautologia = True;
p = Table@False, 8t, n<D;
expresion :=
Implies@Hp@@1DD »» p@@2DDL && Implies@p@@2DD, p@@1DDD, p@@1DDD;
For@i = 0, i < 2 ^ n, i ++, j = i;
For@f = n, f > 0, f −−, resto = Mod@j, 2D;
j = Floor@j ê 2D;
If@resto 0, p@@fDD = True, p@@fDD = FalseD;D;
If@TrueQ@expresionD, Null, tautologia = FalseD;D;
If@tautologia, Print@"La forma enunciativa es una tautología"D,
Print@"La forma enunciativa no es una tautología"DD
La forma enunciativa es una tautología
Por tanto, la forma argumentativa es válida y efectivamente la empresa
necesita una persona que sepa utilizar el programa Mathematica.
9
Descargar