Conjunción

Conjunción
Y

diagrama de Venn
Definición
mesa de la verdad
puerta lógica
formas normales
Disyuntivo
conjuntival
Polinomio de Zhegalkin
Membresía en clases precompletas
Guarda 0
Guarda 1
Monótono
lineal No
Auto-dual No

La conjunción (del latín  conjunctio  - "unión, conexión") es una operación lógica , en el sentido de lo más cerca posible de la unión "y". Sinónimos: "Y" lógico , multiplicación lógica , a veces simplemente "Y" [1] .

Una conjunción puede ser una operación binaria (es decir, tener dos operandos), una operación ternaria (es decir, tener tres operandos) o una operación n-aria (es decir, tener n operandos).

Notación

La notación más común para la operación de conjunción es:

(en el caso de utilizar un punto como signo de multiplicación lógica, este signo, como en la multiplicación ordinaria en álgebra , puede omitirse: [1] ).

Al mismo tiempo , la notación recomendada por la norma ISO 31-11 es la más utilizada en las matemáticas modernas y la lógica matemática , donde, sin embargo, compite con el signo ampersand & [1] ; este último, apareciendo en el siglo I a.C. mi. como abreviatura gráfica ( ligadura ) del latín union et 'y', ya fue utilizado por Jacob y Johann Bernoulli en 1685 como enlace lógico (en ellos, sin embargo, no conectó enunciados , sino conceptos ) [2] [3] . George Boole (seguido por otros pioneros de la aplicación sistemática del método simbólico a la lógica: W. S. Jevons , E. Schroeder , P. S. Poretsky ) denotó la conjunción con un signo  - como multiplicación ordinaria [4] . El símbolo (signo de disyunción invertida ) como símbolo de conjunción fue propuesto por Arend Heyting (1930) [5] .

La notación ⋀para la conjunción también se usó en los primeros lenguajes de programación Algol 60 [6] . Sin embargo, debido a la falta de un carácter correspondiente en los conjuntos de caracteres estándar (por ejemplo, en ASCII o EBCDIC ) utilizados en la mayoría de las computadoras , los lenguajes de programación más utilizados proporcionaron otras notaciones para la conjunción. Así, en Fortran IV y PL/I , respectivamente, se utilizaron las designaciones .AND.y &(con la posibilidad de sustituir esta última por la palabra clave AND ) [7] ; Pascal y Ada usan la palabra reservada and[8] [9] ; los lenguajes C y C++ usan la notación &para conjunción bit a bit y &&para conjunción lógica [10] ).

Finalmente, bajo el ordenamiento natural de los valores de verdad de la lógica bivaluada (cuando se supone que ), resulta que Así, la conjunción resulta ser un caso especial de la operación de cálculo del mínimo ; esto abre la forma más natural de definir la operación de la conjunción en sistemas de lógica polivalente (aunque a veces se consideran otras formas de generalizar la conjunción, por ejemplo, en el caso de la lógica k -valuada, en la que el conjunto de valores de verdad está representado por el segmento inicial del semigrupo de los números naturales ) [11] [12] .

Álgebra booleana

Definición.
La función lógica MIN en la lógica de dos valores (binaria) se llama conjunción ( "AND" lógico , multiplicación lógica o simplemente "AND" ).

Regla: El resultado es igual al operando más pequeño.

Descripción.
En álgebra booleana , una conjunción es una función de dos, tres o más variables (también son los operandos de una operación, también son los argumentos de una función). Las variables pueden tomar valores de un conjunto . El resultado también pertenece al conjunto . El resultado se calcula según una regla simple, o según la tabla de verdad . En lugar de valores , se puede usar cualquier otro par de caracteres adecuados, por ejemplo, o "falso", "verdadero", pero con tal designación, es necesario definir adicionalmente la antigüedad, por ejemplo, con designación digital, antigüedad es natural Regla: el resultado es , si todos los operandos son iguales ; en todos los demás casos el resultado es .

Tablas de verdad:
para conjunciones binarias

para conjunción ternaria

0 0 0 0
una 0 0 0
0 una 0 0
una una 0 0
0 0 una 0
una 0 una 0
0 una una 0
una una una una


La conjunción es conmutativa , asociativa y distributiva con respecto a la disyunción débil [13] .

Lógica multivaluada

La operación, llamada conjunción en lógica binaria , en lógica multivaluada suele estar asociada a la operación mínima : , donde a  es el valor de la lógica; sin embargo, también son posibles otras opciones para generalizar la conjunción habitual al caso de valor fijo. Como regla general, se intenta mantener la compatibilidad con el álgebra booleana para los valores de los operandos y .

El nombre de esta operación mínima tiene sentido en lógicas con cualquier valor, incluso en lógica binaria, y los nombres conjunción , "Y" lógico , multiplicación lógica y simplemente "Y" son típicos de la lógica binaria y se usan con menos frecuencia cuando se pasa a lógicas multivaluadas.

Lógica clásica

En el cálculo proposicional clásico, las propiedades de una conjunción se definen mediante axiomas . El cálculo proposicional clásico puede estar dado por diferentes sistemas de axiomas, y algunos de ellos describirán las propiedades de la conjunción. Una de las opciones más comunes incluye 3 axiomas para la conjunción:


Usando estos axiomas, se pueden probar otras fórmulas que contienen la operación de conjunción. Tenga en cuenta que en el cálculo proposicional clásico, el resultado no se calcula a partir de los valores de los operandos (como en el álgebra booleana), sino que se requiere probar la fórmula como un todo en base a axiomas y reglas de inferencia.

Circuitos

El elemento lógico que implementa la función de conjunción se denomina circuito de coincidencia [13] . La regla mnemotécnica para la conjunción con cualquier número de entradas es: La salida será:

Teoría de conjuntos

En términos de teoría de conjuntos , la conjunción es análoga a la operación de intersección .

Programación

En los lenguajes informáticos, se utilizan dos versiones principales de la conjunción: "Y" lógico y "Y" bit a bit (bit a bit). Por ejemplo, en los lenguajes C/C++, un AND lógico se indica con el símbolo "&&", y uno bit a bit  se indica con el símbolo "&". En la terminología utilizada en C# , la operación "&" se denomina "AND" lógico, y la operación "&&" se denomina "AND" condicional , porque los valores de los operandos son condiciones para la continuación del cálculo. En los lenguajes Pascal/Delphi, ambos tipos de conjunción se denotan usando la palabra clave " y " y el resultado de la acción está determinado por el tipo de los operandos. Si los operandos son de tipo booleano (por ejemplo, Boolean), se realiza una operación lógica, si un número entero (por ejemplo, Byte) es una operación bit a bit.

El "AND" lógico se usa en declaraciones de salto condicional o en casos similares cuando se requiere un resultado o . Por ejemplo:

si ( a & b & c ) { /* algunas acciones */ };

La comparación en este caso continuará hasta el final de la expresión, independientemente de los resultados intermedios. El principio del condicional "Y" en una situación similar:

a = falso _ b = verdadero ; c = verdadero ; si ( a && b && c ) { /* algunas acciones */ };

La verificación de la veracidad de la expresión en este caso se detendrá después de verificar la variable a, ya que una comparación posterior no tiene sentido.

El resultado será igual si ambos operandos son iguales (no iguales para tipos numéricos ). En cualquier otro caso, el resultado será .

En este caso, se aplica la convención estándar: si el valor del operando izquierdo es igual a , entonces el valor del operando derecho no se calcula (en su lugar, puede haber una fórmula compleja). Esta convención acelera la ejecución del programa y es una técnica útil en algunos casos. El compilador Delphi admite una directiva especial que incluye

{$B-}

o apagar

{$B+}

comportamiento similar. Por ejemplo, si el operando de la izquierda comprueba si se puede evaluar el operando de la derecha:

si ( a != 0 && b / a > 3 ) { /* algunas acciones */ };

En este ejemplo, debido a la verificación del operando izquierdo, el operando derecho nunca se dividirá por cero.

El "Y" bit a bit realiza la operación de álgebra booleana habitual en todos los bits del operando izquierdo y derecho en pares. Por ejemplo,

si
un =
b=
después
a y b =

Relación con el lenguaje natural

A menudo se señala la similitud entre la conjunción y la conjunción "y" en el lenguaje natural. El enunciado compuesto " A y B " se considera verdadero cuando ambos enunciados, A y B , son verdaderos ; de lo contrario, el enunciado compuesto es falso. Esto corresponde exactamente a la definición de conjunción en el álgebra booleana, si "verdadero" se denota por , y "falso" por . Al mismo tiempo, a menudo se hace la cláusula estándar de ambigüedad del lenguaje natural . Por ejemplo, dependiendo del contexto, la unión “y” puede tener una connotación adicional “y luego”, “y por lo tanto”, “y luego”. La diferencia entre la lógica del lenguaje natural y la lógica matemática fue ingeniosamente expresada por el matemático estadounidense Stephen Kleene , señalando que en el lenguaje natural "Mary se casó y tuvo un bebé" no es lo mismo que "Mary dio a luz a un bebé y se casó".

Véase también

Notas

  1. 1 2 3 Kondakov, 1975 , pág. 264-266, 534-536.
  2. Símbolo comercial . // Diccionario de etimología en línea del sitio web . Consultado el 7 de febrero de 2016. Archivado desde el original el 18 de febrero de 2011.
  3. Kondakov, 1975 , pág. 67.
  4. Styazhkin N. I. . Formación de la lógica matemática. — M .: Nauka , 1967. — 508 p.  - S. 321, 348, 352, 368.
  5. Primeros usos de los símbolos de la teoría y la lógica de conjuntos . // Sitio web Páginas web de Jeff Miller . Fecha de acceso: 7 de febrero de 2016. Archivado desde el original el 21 de agosto de 2011.
  6. Kondakov, 1975 , pág. treinta.
  7. Pratt T. Lenguajes de programación: desarrollo e implementación. — M .: Mir , 1979. — 574 p.  - S. 352, 439.
  8. Grogono P. . Programación en Pascal. — M .: Mir , 1982. — 384 p.  - S. 51.
  9. Wegner P. . Programación en lenguaje Ada. — M .: Mir , 1983. — 240 p.  - S. 68.
  10. Ellis M. , Stroustrup B.  . Una guía de referencia del lenguaje de programación C++ con comentarios. — M .: Mir , 1992. — 445 p. — ISBN 5-03-002868-4 .  - S. 65, 86-87.
  11. Yablonsky S. V.  . Introducción a las matemáticas discretas. — M .: Nauka , 1979. — 272 p.  - S. 9-10, 37.
  12. Rvachev V. L.  . Teoría de las funciones R y algunas de sus aplicaciones. - Kiev: Naukova Dumka , 1982. - 552 p.  - S. 38, 66.
  13. 1 2 Diccionario de Cibernética. 2ª ed./ed. V. S. Mikhalevich. - Kiev: Enciclopedia soviética ucraniana , 1989. - 751 p. - ISBN 5-88500-008-5 .

Literatura