В логике и математике истинностное значение , иногда называемое логическим значением , — это значение, указывающее отношение предложения к истине , которое в классической логике имеет только два возможных значения ( истина или ложь ). [1] [2]
В некоторых языках программирования любое выражение может быть оценено в контексте, который ожидает тип данных Boolean . Обычно (хотя это зависит от языка программирования) выражения, такие как число zero , пустая строка , пустые списки и null , рассматриваются как false, а строки с содержимым (например, "abc"), другие числа и объекты оцениваются как true. Иногда эти классы выражений называются false и truthy . Например, в Lisp nil , пустой список, рассматривается как false, а все остальные значения рассматриваются как true. В C число 0 или 0.0 является false, а все остальные значения рассматриваются как true.
В JavaScript пустая строка ( ""
), null
, undefined
, NaN, +0, −0 и false
[3] иногда называются ложными (дополнением к которым является истина ) для различения строго проверенных и приведенных булевых значений (см. также: Синтаксис JavaScript#Преобразование типов ). [4] В отличие от Python, пустые контейнеры (массивы, карты, наборы) считаются истинными. Такие языки, как PHP, также используют этот подход.
В классической логике с ее предполагаемой семантикой значениями истинности являются истина (обозначается 1 или verum ⊤), и неистина или ложь (обозначается 0 или falsum ⊥); то есть классическая логика является двузначной логикой . Этот набор из двух значений также называется булевой областью . Соответствующая семантика логических связок является функциями истинности , значения которых выражаются в виде таблиц истинности . Логическое двуусловное отношение становится бинарным отношением равенства , а отрицание становится биекцией , которая переставляет истину и ложь. Конъюнкция и дизъюнкция являются дуальными по отношению к отрицанию, что выражается законами Де Моргана :
Пропозициональные переменные становятся переменными в булевой области. Присвоение значений пропозициональным переменным называется оценкой .
В то время как в классической логике значения истинности образуют булеву алгебру , в интуиционистской логике и, в более общем смысле, в конструктивной математике значения истинности образуют алгебру Гейтинга . Такие значения истинности могут выражать различные аспекты действительности, включая локальность, временность или вычислительное содержание.
Например, можно использовать открытые множества топологического пространства в качестве интуиционистских истинностных значений, и в этом случае истинностное значение формулы выражает, где формула верна, а не то, верна ли она.
В реализуемости значения истинности — это наборы программ, которые можно понимать как вычислительное доказательство действительности формулы. Например, значение истинности утверждения «для каждого числа существует простое число, большее его» — это набор всех программ, которые принимают на вход число и выводят простое число, большее .
В теории категорий истинностные значения выступают как элементы подобъектного классификатора . В частности, в топосе каждой формуле логики высшего порядка может быть присвоено истинностное значение в подобъектном классификаторе.
Даже если алгебра Гейтинга может иметь много элементов, это не следует понимать как существование значений истинности, которые не являются ни истинными, ни ложными, поскольку интуиционистская логика доказывает («не бывает так, чтобы не было ни истинным, ни ложным»). [5]
В интуиционистской теории типов соответствие Карри-Ховарда демонстрирует эквивалентность предложений и типов, согласно которой истинность эквивалентна обитанию типа.
О других понятиях интуиционистских значений истинности см. интерпретацию Брауэра–Гейтинга–Колмогорова и Интуиционистскую логику § Семантика .
Многозначные логики (такие как нечеткая логика и релевантная логика ) допускают более двух значений истинности, возможно, содержащих некоторую внутреннюю структуру. Например, на единичном интервале [0,1] такая структура является полным порядком ; это может быть выражено как существование различных степеней истинности .
Не все логические системы являются истинностно-оценочными в том смысле, что логические связки могут быть интерпретированы как функции истинности. Например, интуиционистская логика не имеет полного набора истинностных значений, поскольку ее семантика, интерпретация Брауэра–Гейтинга–Колмогорова , определена в терминах условий доказуемости , а не напрямую в терминах необходимой истинности формул.
Но даже не-истинностно-оценочные логики могут связывать значения с логическими формулами, как это делается в алгебраической семантике . Алгебраическая семантика интуиционистской логики задается в терминах алгебр Гейтинга , по сравнению с семантикой булевой алгебры классического пропозиционального исчисления.