Импликация | |
---|---|
Не больше, IMPLY | |
![]() Диаграмма Венна | |
Определение | |
Таблица истинности | |
Логический вентиль |
|
Нормальные формы | |
Дизъюнктивная | |
Конъюнктивная | |
Полином Жегалкина | |
Принадлежность предполным классам | |
Сохраняет 0 | Нет |
Сохраняет 1 | Да |
Монотонна | Нет |
Линейна | Нет |
Самодвойственна | Нет |
Импликация (от лат. implicatio — «связь») — бинарная логическая связка, по своему применению приближенная к союзам «если…, то…».
Импликация записывается как посылка следствие; применяются также стрелки другой формы и направленные в другую сторону, но всегда указывающие на следствие.
Суждение, выражаемое импликацией, выражается также следующими способами[1][2]:
Импликация играет очень важную роль в умозаключениях. С её помощью формулируются определения различных понятий, теоремы, научные законы[3].
При учёте смыслового содержания высказываний импликация подразумевает причинную связь между посылкой и заключением[4]:.
В булевой логике импликация — это функция двух переменных (они же — операнды операции, они же — аргументы функции). Переменные могут принимать значения из множества . Результат также принадлежит множеству . Вычисление результата производится по простому правилу, либо по таблице истинности. Вместо значений может использоваться любая другая пара подходящих символов, например или или «ложь», «истина».
Правило:
Импликация как булева функция ложна лишь тогда, когда посылка истинна, а следствие ложно. Иными словами, импликация — это сокращённая запись для выражения .
Таблицы истинности:
прямая импликация
(от a к b) (материальная импликация, материальный кондиционал)
если первый операнд не больше второго операнда, то 1,
если , то истинно (1),
«Житейский» смысл импликации. Для более лёгкого понимания смысла прямой импликации и запоминания её таблицы истинности может пригодиться житейская модель: А — начальник. Он может приказать «работай» (1) или сказать «делай что хочешь» (0). В — подчиненный. Он может работать (1) или бездельничать (0). В таком случае импликация — не что иное, как послушание подчиненного начальнику. По таблице истинности легко проверить, что послушания нет только тогда, когда начальник приказывает работать, а подчиненный бездельничает.
обратная импликация (от b к a, )
если первый операнд не меньше второго операнда, то 1,
если , то истинно (1),
обратная импликация — отрицание (негация, инверсия) обнаружения увеличения (перехода от 0 к 1, инкремента).
отрицание (инверсия, негация) прямой импликации
если первый операнд больше второго операнда, то 1,
если , то истинно (1).
отрицание (инверсия, негация) обратной импликации (),
разряд займа в двоичном полувычитателе,
если первый операнд меньше второго операнда, то 1,
если , то истинно (1).
Другими словами, две импликации (прямая и обратная) и две их инверсии — это четыре оператора отношений. Результат операций зависит от перемены мест операндов.
Импликация высказываний означает, что одно из них следует из другого. Импликация обозначается символом , и ей соответствует вложение множеств: пусть , тогда
Например, если — множество всех квадратов, а — множество прямоугольников, то, конечно, и
(если a является квадратом, то a является прямоугольником).
В классическом исчислении высказываний свойства импликации определяются с помощью аксиом.
Можно доказать эквивалентность импликации формуле (с первого взгляда более очевидна её эквивалентность формуле , которая принимает значение «ложь» в случае, если выполняется A (посылка), но не выполняется B (следствие)).
В интуиционистской логике импликация никоим образом не сводится к отрицаниям. Скорее напротив, отрицание ¬A можно представить в виде , где — пропозициональная константа «ложь». Впрочем, такое представление отрицания возможно и в классической логике.
В интуиционистской теории типов импликации соответствует множество (тип) отображений из A в B.
В учении о силлогизмах импликации отвечает «общеутвердительное атрибутивное высказывание».
В языках программирования импликация используется, как правило, неявно. Например, конструкция, предполагающая истинность условия B в данном участке программы:
if ( выражение A ) {
if ( выражение B ) {
сделать_что-то_полезное
}
else {
<font color=Red>сбой</font>
};
}
будет успешно выполняться тогда и только тогда, когда верна импликация A→B. В то же время эти условия можно спокойно написать в одной строке, объединив их оператором конъюнкции.
if ( выражение A ) and ( выражение B ) {
сделать_что-то_полезное
}
При стандартных опциях компилятора (Delphi, C++ Builder) проверка идет до тех пор, пока результат не станет очевидным, и если А ложно, то (А и В) ложно вне зависимости от В, и не нужно ставить еще один условный оператор.
//выражение A - ложно
if ( выражение A ) {
//Дальше проверка не идет
... if ( выражение B ) {
сделать_что-то_полезное
} ...
}
В функциональных языках импликация может быть не только правилом вычислений, но и видом отношения между данными, то есть обрабатываться (в том числе и выполняться) и создаваться по ходу выполнения программы.