gates exercises español booleana and boolean-logic

boolean-logic - exercises - boolean search español



Implicación booleana (6)

Necesito ayuda con esta implicación booleana.

Alguien puede explicar cómo funciona esto en términos simples:

A implica B = B + A'' (si A entonces B). También equivalente a A >= B


A juzgar por las tablas de verdad, es posible inferir el valor de a => b solo para a = 1 y b = 0. En este caso, el valor de a => b es 0. Para el resto de valores (a, b), el valor de a => b no está definido: ambos (a => b) = 0 ("a no implica b ") y (a => b) = 1 (" a implica b ") son posibles:

a b a=>b comment 0 0 ? it is not possible to infer whether a implies b because a=0 0 1 ? --"-- 1 0 0 b is 0 when a is 1, so it is possible to conclude that a does not imply b 1 1 ? whether a implies b is undefined because it is not known whether b can be 0 when a=1 .

Para a implica que b es necesario y suficiente que b = 1 siempre cuando a = 1, de modo que no haya contraejemplo cuando a = 1 y b = 0. Para las filas 1, 2 y 4 en la tabla de verdad, no se sabe si hay un contraejemplo: estas filas no se contradicen con (a => b) = 1, pero tampoco prueban (a => b) = 1 . En contraste, la fila 3 refuta inmediatamente (a => b) = 1 porque proporciona un contraejemplo cuando a = 1 y b = 0. Supongo que puedo sorprender a algunos lectores con estas explicaciones, pero parece que hay errores graves en los aspectos básicos de la lógica que se nos enseña, y esa es una de las razones por las cuales problemas como Boolean Satisfiability aún no se han resuelto.


Así es como lo pienso:

if(A) return B; else return True;

si A es verdadero, entonces b es relevante y debe verificarse; de ​​lo contrario, ignore B y devuelva verdadero.


Creo que veo de dónde viene Serge y trataré de explicar la diferencia. Esto es demasiado largo para un comentario, así que lo publicaré como respuesta.

Serge parece estar abordando esto desde la perspectiva de cuestionar si la implicación se aplica o no. Esto es algo así como un científico que intenta determinar la relación entre dos eventos. Considere la siguiente historia:

Un científico visita cuatro países diferentes en cuatro días diferentes. En cada país, ella quiere determinar si la lluvia implica que las personas usarán paraguas. Ella genera la siguiente tabla de verdad:

Did it rain? Did people Does rain => umbrellas? Comment use umbrellas? No No ?? It didn''t rain, so I didn''t get to observe No Yes ?? People were shielding themselves from the hot sun; I don''t know what they would do in the rain Yes No No Perhaps the local government banned umbrellas and nobody can use them. There is definitely no implication here. Yes Yes ?? Perhaps these people use umbrellas no matter what weather it is

En lo anterior, la científica no conoce la relación entre la lluvia y los paraguas y ella está tratando de determinar qué es. Solo en uno de los días en uno de los países puede decir definitivamente que eso no es la relación correcta.

De manera similar, parece que Serge está intentando probar si A => B, y solo es capaz de determinarlo en un caso.

Sin embargo, cuando estamos evaluando la lógica booleana, conocemos la relación con anticipación y queremos comprobar si se respetó la relación. Otra historia:

Una madre le dice a su hijo: "Si te ensucias, toma un baño" (sucio => baño). En cuatro días separados, cuando la madre regresa a casa del trabajo, verifica si se siguió la regla. Ella genera la siguiente tabla de verdad:

Get dirty? Take a bath? Follow rule? Comment No No Yes Son didn''t get dirty, so didn''t need to take a bath. Give him a cookie. No Yes Yes Son didn''t need to take a bath, but wanted to anyway. Extra clean! Give him a cookie. Yes No No Son didn''t follow the rule. No cookie and no TV tonight. Yes Yes Yes He took a bath to clean up after getting dirty. Give him a cookie.

La madre ha establecido la regla antes de tiempo. Ella sabe cuál es la relación entre la suciedad y los baños, y quiere asegurarse de que se cumpla la regla.

Cuando trabajamos con lógica booleana, somos como la madre: conocemos a los operadores con anticipación y queremos trabajar con la declaración en esa forma. Quizás queremos transformar la declaración en una forma diferente (como era la pregunta original, él o ella quería saber si dos declaraciones son equivalentes). En la programación de computadoras, a menudo queremos incluir un conjunto de variables en la declaración y ver si toda la declaración se evalúa como verdadera o falsa.

No se trata de saber si implica que se aplique, no se habría escrito allí si no fuera así. Las tablas de verdad no tienen que ver con determinar si una regla se aplica, sino con determinar si una regla se cumplió.


La implicación booleana A implies B simplemente significa "si A es cierto, entonces B debe ser verdadero". Esto implica (juego de palabras) que si A no es cierto, entonces B puede ser cualquier cosa. Así:

False implies False -> True False implies True -> True True implies False -> False True implies True -> True

Esto también puede leerse como (not A) or B , es decir, "A es falso o B debe ser verdadero".


La mejor contribución a esta pregunta la da Serge Rogatch.

La lógica booleana se aplica solo cuando el resultado de la cuantificación (o evaluación) es verdadero o falso y la relación entre las proposiciones lógicas booleanas se basa en este hecho.

Así que debe existir una relación o conexión entre las proposiciones.

En la lógica de orden superior, la relación no es solo un caso de encendido / apagado, 1/0 o + voltaje / -tensión, la evaluación de una propuesta redactada es más compleja. Si no existe una relación entre las proposiciones redactadas, entonces la implicación para las proposiciones redactadas no es equivalente a las proposiciones lógicas booleanas.

Si bien la tabla de verdad de implicación siempre arroja resultados correctos para las proposiciones binarias, este no es el caso de las proposiciones redactadas que pueden no estar relacionadas de ninguna manera.

~ Tabla de verdad AVB:

Resultado AB / Evaluación

1 1 1

1 0 0

0 1 1

0 0 1

Proposición redactada A: La luna está hecha de crema agria.
Proposición formulada B: Mañana ganaré la lotería.

Resultado AB / Evaluación

1? ?

Como puede ver, en este caso, ni siquiera puede determinar el estado de B que decidirá el resultado. ¿Esto tiene sentido ahora?

En esta tabla de verdad, la proposición ~ A siempre se evalúa como 1, por lo tanto, las dos últimas filas no se aplican. Sin embargo, las dos últimas filas siempre se aplican en la lógica booleana.

http://thenewcalculus.weebly.com


Me gusta usar el ejemplo: si está lloviendo, entonces está nublado.

Raining => Cloudy

Al contrario de lo que muchos principiantes podrían pensar, esto no sugiere de ninguna manera que la lluvia cause nubosidad o que la nubosidad cause la lluvia. ( EDITAR: Significa solo que, en este momento , no llueve ni está nublado. Vea mi blog reciente sobre implicaciones materiales here . Aquí, entre otras cosas, desarrolle un fundamento para la "definición" habitual de implicaciones materiales El lector requerirá cierta familiaridad con los métodos básicos de prueba, por ejemplo, prueba directa y prueba por contradicción).

~[Raining & ~Cloudy]