Beruflich Dokumente
Kultur Dokumente
Nomenclatura
Puerta Lógica
Tabla de la Verdad
Conectivas lógicas
Afirmación lógica
Disyunción opuesta ↓ {\displaystyle \downarrow } \downarrow
vde
Índice
1 Lógica de proposiciones
2 Definición
3 Notación
4 Propiedades
4.2 Dualidad
4.3 Linealidad
4.4 Autodualidad
5 Reglas de inferencia
6 Programación
7 Véase también
8 Referencias
9 Lecturas adicionales
10 Enlaces externos
Lógica de proposiciones
Definición
La negación clásica es una operación sobre un valor de verdad, típicamente, el valor de una
proposición, que produce un valor de verdadero cuando su operando es falso, y un valor de
falso cuando su operando es verdadero. Por tanto, si el enunciado A es verdadero, entonces
¬A (pronunciado "no A") sería consecuentemente falso; y lo contrario, si ¬A es verdadero,
entonces A sería falso.
Tabla de verdad de ¬p p ¬p
Verdadero Falso
Falso Verdadero
La negación clásica se puede definir en términos de otras operaciones lógicas. Por ejemplo, ¬p
se puede definir como p → F, donde "→" es una implicación lógica y F es una falsedad
absoluta. Por el contrario, se puede definir F como p & ¬p para cualquier proposición p, donde
"&" es una conjunción lógica. La idea aquí es que cualquier contradicción es falsa. Mientras
estas ideas funcionan tanto en la lógica clásica como en la instuicionista, no funcionan en la
lógica paraconsistente, donde las contradicciones no son necesariamente falsas.
En lógica clásica tenemos una identidad adicional: p → q se puede definir como ¬p ∨ q, donde
"∨" es la disyunción lógica: "no p, o q".
Notación
Notación Vocalización
complemento de p
barra p
Propiedades
Doble negación
Dentro de un sistema de lógica clásica, la doble negación, esto es, la negación de la negación
de una proposición p, es lógicamente equivalente a p. Expresado simbólicamente, ¬(¬p) ⇔ p.
En lógica intuicionista, una proposición implica su doble negación, pero no al revés. Esto marca
una importante diferencia entre la negación clásica e intuicionista. Algebraicamente, la
negación clásica es llamada una involución de periodo dos.
Sin embargo, en lógica intuicionista, sí tenemos la equivalencia entre ¬¬¬p y ¬p. Es más, en el
caso proposicional, una oración es demostrable de forma clásica, si su doble negación es
demostrable de manera intuicionista. Este resultado es conocido como el teorema de
Glivenko.
Dualidad
Las leyes de De Morgan proporcionan una forma de dualidad: la negación sobre la disyunción
inclusiva equivale a la conjunción de negaciones; y recíprocamente, la negación de la
conjunción es igual a la unión de las negaciones de las disyunciones inclusivas :
Linealidad
En el álgebra de Boole, una función lineal es una función tal que:
Si existe a0, a1, ..., an ∈ {\displaystyle \in } \in {0,1} tal que f(b1, ..., bn) = a0 ⊕ (a1 ∧
{\displaystyle \land } \land b1) ⊕ ... ⊕ (an ∧ {\displaystyle \land } \land bn), para todo b1, ...,
bn ∈ {\displaystyle \in } \in {0,1}.
Otra forma de expresar esto es que cada variable siempre cambia su valor de verdad de la
operación o nunca cambia. La negación es un operador lógico lineal.
Autodualidad
Si f(a1, ..., an) = ~f(~a1, ..., ~an) para todo a1, ..., an ∈ {\displaystyle \in } \in {0,1}. La negación
es un operador lógico de autodualidad.
Reglas de inferencia
Hay varias formas equivalentes entre sí, de formular reglas para la negación. Una forma usual
de formular la negación clásica, al establecer una deducción natural, es tomar como reglas
primitivas de inferencia:
Introducción de la negación (Si p implica a q y ¬q, inferimos ¬p; esta regla también se llama
reductio ad absurdum),
Las reglas para negación intuicionista se obtienen de la misma forma, pero excluyendo la
eliminación de la doble negación.
Programación
if (!(r == t))
El signo "!" significa NO lógico en B, C, y otros lenguajes inspirados en la sitaxis de C como C++,
Java, Perl, PHP, etc. "NOT" es el operador usado en ALGOL 60, BASIC, COBOL, y lenguajes
inspirados en la sintaxis de ALGOL como Pascal, Ada, Seed7, etc. Algunos lenguajes (C++, Perl,
etc.) proveen más de un operador para la negación. Algunos lenguajes como PL/I y Ratfor,
usan ¬ para la negación. Algunas computadoras y sistemas operativos modernos muestran ¬
como ! en archivos condificados en ASCII.
Existe también la negación a nivel de bits. Ésta toma el valor dado, y cambia todo el binario; los
1 cambian a 0 y los 0 a 1. Esta operación es usada normalmente para generar el complemento
a uno o "~" en C o C++ y el complemento a dos (sólo simplificado a "-" o el signo negativo ya
que esto es equivalente a tomar el valor aritmético negativo del número) ya que básicamente
genera el opuesto (valor negativo equivalente) o complemento matemático del valor (donde
ambos valores se agregan juntos para crear un todo).
Para obtener el valor absoluto (equivalente positivo) de un entero dado, el siguiente código
trabajaría cambiando el signo de negativo a positivo (es negativo porque "x < 0" resulta
verdadero)
if (x < 0)
return -x;
else
return x;
return x;
else
return -x;