В логике функция истинности [1] — это функция , которая принимает значения истинности в качестве входных данных и выдает уникальное значение истинности в качестве выходных данных. Другими словами: входные данные и выходные данные функции истинности являются значениями истинности; функция истинности всегда выводит ровно одно значение истинности, а ввод одних и тех же значений истинности всегда выводит одно и то же значение истинности. Типичный пример — пропозициональная логика , в которой составное утверждение строится с использованием отдельных утверждений, соединенных логическими связками ; если значение истинности составного утверждения полностью определяется значением истинности составляющих утверждений, составное утверждение называется функцией истинности, а любые используемые логические связки называются функциональными истинами . [2]
Классическая пропозициональная логика является истинностно-функциональной логикой [3] , в которой каждое утверждение имеет ровно одно истинностное значение, которое либо истинно, либо ложно, и каждая логическая связка является истинностно-функциональной (с соответствующей таблицей истинности ), таким образом, каждое составное утверждение является истинностной функцией. [4] С другой стороны, модальная логика не является истинностно-функциональной.
Логическая связка является истинностно-функциональной, если истинностное значение сложного предложения является функцией истинностного значения его подпредложений. Класс связок является истинностно-функциональным, если каждый из его членов является истинностным. Например, связка " and " является истинностно-функциональной, поскольку предложение типа " Apples are fruits and carrots are vegetables " истинно тогда и только тогда , когда каждое из его подпредложений " apples are fruits " и " carrots are vegetables " истинно, и ложно в противном случае. Некоторые связки естественного языка, такого как английский, не являются истинностно-функциональными.
Связки вида "x считает, что ..." являются типичными примерами связок, которые не являются истинностно-функциональными. Если, например, Мэри ошибочно полагает, что Эл Гор был президентом США 20 апреля 2000 года, но она не верит, что луна сделана из зеленого сыра, то предложение
верно, пока
ложно. В обоих случаях каждое составное предложение (например, « Эл Гор был президентом США 20 апреля 2000 года » и « Луна сделана из зеленого сыра ») ложно, но каждое сложное предложение, образованное префиксом фразы « Мэри верит, что » отличается по истинностному значению. То есть истинностное значение предложения формы « Мэри верит, что... » определяется не только истинностным значением его составного предложения, и, следовательно, (унарный) соединительный элемент (или просто оператор , поскольку он унарный) не является истинностно-функциональным.
Класс классических логических связок (например , & , → ), используемых при построении формул, является истинностно-функциональным. Их значения для различных истинностных значений в качестве аргумента обычно задаются таблицами истинности . Истинностно-функциональное пропозициональное исчисление — это формальная система , формулы которой могут быть интерпретированы как истинные или ложные.
В двузначной логике существует шестнадцать возможных функций истинности, также называемых булевыми функциями , двух входов P и Q. Любая из этих функций соответствует таблице истинности определенной логической связки в классической логике, включая несколько вырожденных случаев, таких как функция, не зависящая от одного или обоих своих аргументов. Истина и ложь обозначаются как 1 и 0 соответственно в следующих таблицах истинности для краткости.
Поскольку функция может быть выражена как композиция , истинностно-функциональному логическому исчислению не нужно иметь выделенные символы для всех вышеупомянутых функций, чтобы быть функционально полным . Это выражается в пропозициональном исчислении как логическая эквивалентность определенных составных утверждений. Например, классическая логика имеет ¬ P ∨ Q, эквивалентную P → Q. Условный оператор "→" поэтому не является необходимым для логической системы на основе классики , если "¬" (не) и "∨" (или) уже используются.
Минимальный набор операторов, который может выразить каждое высказывание, выражаемое в исчислении высказываний, называется минимальным функционально полным набором . Минимально полный набор операторов достигается только с помощью NAND {↑} и NOR {↓}.
Ниже приведены минимальные функционально полные наборы операторов, арность которых не превышает 2: [5]
Некоторые функции истинности обладают свойствами, которые могут быть выражены в теоремах, содержащих соответствующую связку. Некоторые из этих свойств, которые может иметь бинарная функция истинности (или соответствующая логическая связку), следующие:
Набор функций истинности является функционально полным тогда и только тогда, когда для каждого из следующих пяти свойств он содержит по крайней мере один элемент, не обладающий им:
Конкретная функция может также называться оператором . В двузначной логике есть 2 нуль-арных оператора (константы), 4 унарных оператора , 16 бинарных операторов , 256 тернарных операторов и n -арные операторы. В трехзначной логике есть 3 нуль-арных оператора (константы), 27 унарных операторов , 19683 бинарных оператора , 7625597484987 тернарных операторов и n -арные операторы. В k -значной логике есть k нуль-арных операторов, унарных операторов, бинарных операторов, тернарных операторов и n -арных операторов. n -арный оператор в k -значной логике является функцией из . Следовательно, число таких операторов равно , откуда и были получены приведенные выше числа.
Однако некоторые операторы определенной арности на самом деле являются вырожденными формами, которые выполняют операцию с более низкой арностью на некоторых входах и игнорируют остальные входы. Из 256 тернарных булевых операторов, приведенных выше, некоторые из них являются такими вырожденными формами бинарных или операторов с более низкой арностью, использующими принцип включения-исключения . Тернарный оператор — это один из таких операторов, который на самом деле является унарным оператором, примененным к одному входу и игнорирующим два других входа.
«Не» — это унарный оператор , он принимает один член (¬ P ). Остальные — бинарные операторы , принимающие два члена для создания составного оператора ( P ∧ Q , P ∨ Q , P → Q , P ↔ Q ).
Множество логических операторов Ω можно разбить на непересекающиеся подмножества следующим образом:
В этом разбиении есть множество символов операторов арности j .
В более привычных исчислениях высказываний обычно разделяется следующим образом:
Вместо использования таблиц истинности логические соединительные символы могут быть интерпретированы с помощью функции интерпретации и функционально полного набора функций истинности (Gamut 1991), как подробно описано в принципе композиционности смысла. Пусть I будет функцией интерпретации, пусть Φ , Ψ будут любыми двумя предложениями и пусть функция истинности f nand будет определена как:
Тогда для удобства f not , f or f и т. д. определяются с помощью f nand :
или, в качестве альтернативы , f not , f или f и т. д. определяются напрямую:
Затем
и т. д.
Таким образом, если S — это предложение, которое является строкой символов, состоящей из логических символов v 1 ... v n , представляющих логические связки, и нелогических символов c 1 ... c n , то тогда и только тогда, когда I ( v 1 )... I ( v n ) были предоставлены для интерпретации v 1 в v n с помощью f nand (или любого другого набора функциональных полных функций истинности), то истинностное значение полностью определяется истинностными значениями c 1 ... c n , т. е. I ( c 1 )... I ( c n ) . Другими словами, как и ожидалось и требовалось, S является истинным или ложным только при интерпретации всех его нелогических символов.
Логические операторы реализованы как логические вентили в цифровых схемах . Практически все цифровые схемы (главным исключением является DRAM ) построены из NAND , NOR , NOT и вентилей передачи . Вентили NAND и NOR с 3 или более входами вместо обычных 2 входов довольно распространены, хотя они логически эквивалентны каскаду вентилей с 2 входами. Все другие операторы реализованы путем разбиения их на логически эквивалентную комбинацию из 2 или более из указанных выше логических вентилей.
«Логическая эквивалентность» «только NAND», «только NOR» и «NOT и AND» аналогична эквивалентности Тьюринга .
Тот факт, что все функции истинности могут быть выражены только с помощью NOR, продемонстрирован бортовым компьютером миссии «Аполлон» .