Перейти к содержимому
Topos Uranos

Краткое содержание

Всякая формула определяет таблицу истинности; этот урок доказывает обратное утверждение: всякая таблица, то есть всякое сопоставление истинностных значений строкам, есть таблица некоторой формулы. Он определяет функции истинности, подсчитывает функции от nn аргументов (22n2^{2^{n}}) и уточняет, когда формула представляет одну из них. Затем он доказывает теорему о функциональной полноте с помощью формулы таблицы, дизъюнкции конъюнкций литералов, построенной строка за строкой, которую урок о нормальных формах использует как первое доказательство существования дизъюнктивной нормальной формы. Поскольку всякая формула курса есть цепочка кружков и дисков, отсюда без всякой дополнительной работы следует, что одной стрелки Пирса достаточно, и показывается, как записать с её помощью любую функцию. Наконец, урок изучает, каких систем связок достаточно для представления всех функций: доказывает общий критерий, применяет его к {¬,∧}\{\neg, \wedge\}, {¬,∨}\{\neg, \vee\}, {¬,→}\{\neg, \rightarrow\}, {↓}\{\downarrow\} и к штриху Шеффера и доказывает, что {∧,∨,→,↔}\{\wedge, \vee, \rightarrow, \leftrightarrow\} недостаточно, потому что все формулы над этой системой сохраняют значение 11.

Цели обучения

  1. Подсчитывать функции истинности от nn аргументов и решать с помощью представляемых ими функций, когда две формулы эквивалентны.
  2. Строить по таблице функции истинности формулу, которая её представляет, и, когда это удобно, искать более короткую эквивалентную формулу.
  3. Объяснять, почему в языке курса одной стрелки Пирса достаточно, и записывать с помощью одной лишь стрелки Пирса формулы, представляющие данные функции.
  4. Доказывать, что система связок полна, выражая формулами над ней стрелку Пирса.
  5. Доказывать, что система связок не полна, с помощью свойства, которое сохраняют все формулы над ней.

Функции истинности

Урок о семантике логики высказываний сопоставил каждой формуле при каждой оценке истинностное значение и показал, что это значение зависит лишь от значений входящих в неё переменных; откуда всякая формула с nn переменными имеет таблицу истинности из 2n2^{n} строк. Вопрос этого урока обратный. Пусть дана произвольная таблица, то есть столбец единиц и нулей, произвольно выписанный рядом с 2n2^{n} строками: найдётся ли формула, для которой она является таблицей? Если это так для всякой таблицы, то в языке нет выразительных пробелов: всё, что можно сказать об истинностном значении nn высказываний в зависимости от их значений, говорится формулой. А поскольку в этом курсе всякая составная формула есть стрелка Пирса, ответ скажет также, достаточно ли одной связки, чтобы сказать всё.

Что используется из предыдущих уроков

Оценка есть функция vv из множества переменных {v1,v2,…}\{v_1, v_2, \ldots\} в {0,1}\{0, 1\}, где 11 означает истину, а 00 ложь; её продолжение на все формулы, которое тоже обозначается vv, определено рекурсией: v((φ↓ψ))=1v((\varphi \downarrow \psi)) = 1 тогда и только тогда, когда v(φ)=0v(\varphi) = 0 и v(ψ)=0v(\psi) = 0. Исходя из официальных сокращений, тот же урок вычислил в теореме о значениях производных связок значение каждой связки; записанные через суммы и произведения, эти значения таковы для всякой оценки vv и всяких формул φ\varphi и ψ\psi:

v(¬φ)=1−v(φ),v((φ∧ψ))=v(φ) v(ψ),v((φ∨ψ))=v(φ)+v(ψ)−v(φ) v(ψ)v(\neg\varphi) = 1 - v(\varphi), \qquad v((\varphi \wedge \psi)) = v(\varphi)\,v(\psi), \qquad v((\varphi \vee \psi)) = v(\varphi) + v(\psi) - v(\varphi)\,v(\psi)
v((φ→ψ))=1−v(φ)+v(φ) v(ψ),v((φ↓ψ))=(1−v(φ)) (1−v(ψ))v((\varphi \rightarrow \psi)) = 1 - v(\varphi) + v(\varphi)\,v(\psi), \qquad v((\varphi \downarrow \psi)) = (1 - v(\varphi))\,(1 - v(\psi))

Кроме того, v((φ↔ψ))=v(φ) v(ψ)+(1−v(φ)) (1−v(ψ))v((\varphi \leftrightarrow \psi)) = v(\varphi)\,v(\psi) + (1 - v(\varphi))\,(1 - v(\psi)), что равно 11 тогда и только тогда, когда v(φ)=v(ψ)v(\varphi) = v(\psi), и v((φ⊻ψ))=v(φ)+v(ψ)−2 v(φ) v(ψ)v((\varphi \veebar \psi)) = v(\varphi) + v(\psi) - 2\,v(\varphi)\,v(\psi), что равно 11 тогда и только тогда, когда v(φ)≠v(ψ)v(\varphi) \neq v(\psi). Поскольку значения суть 00 или 11, квадрат значения равен самому значению, v(φ) v(φ)=v(φ)v(\varphi)\,v(\varphi) = v(\varphi), а произведение значений равно 11 тогда и только тогда, когда каждый множитель равен 11; оба наблюдения будут использоваться без повторения. Используется также лемма о совпадении: если две оценки совпадают на переменных формулы φ\varphi, то есть на переменных, являющихся подформулами φ\varphi, они придают φ\varphi одно и то же значение. Из урока о семантическом следовании и эквивалентности берётся семантическая эквивалентность: φ≡ψ\varphi \eqsem \psi, когда v(φ)=v(ψ)v(\varphi) = v(\psi) для всякой оценки vv. Наконец, действует соглашение о буквах из урока о формализации: pp, qq и rr обозначают переменные v1v_1, v2v_2 и v3v_3.

Функции истинности и их число

Пусть nn есть натуральное число. Строка из nn значений есть последовательность a=(a1,…,an)a = (a_1, \ldots, a_n), в которой каждое aia_i равно 00 или 11; множество всех таких строк обозначается {0,1}n\{0, 1\}^{n}. Функция истинности от nn аргументов есть функция

f ⁣:{0,1}n→{0,1}f\colon \{0, 1\}^{n} \to \{0, 1\}

которая сопоставляет каждой строке истинностное значение. Она задаётся таблицей: строки записываются в порядке таблицы, начиная с той, в которой все значения равны 11 (для двух аргументов: 1 11\,1, 1 01\,0, 0 10\,1, 0 00\,0), и рядом с каждой строкой записывается её значение. Таким образом, функция истинности есть таблица истинности без формулы: правый столбец, в заголовке которого ничего не написано.

УтверждениеСуществует 22n2^{2^{n}} функций истинности от nn аргументов

Для всякого натурального nn существует ровно 2n2^{n} строк из nn значений и 22n2^{2^{n}} функций истинности от nn аргументов.

Доказательство

  1. 1 0 1    ⟼    ∙∘∙\dato{filas}{1\,0\,1 \;\; \longmapsto \;\; \sigI\sigO\sigI}

    Строка есть последовательность из nn символов, каждый из которых есть 11 или 00. Если писать диск вместо 11 и кружок вместо 00, строки взаимно однозначно соответствуют цепочкам длины nn в алфавите из двух символов, которых 2n2^{n} по первой решённой задаче урока об индукции, доказанной там индукцией по nn.

  2. f    ⟼    f(1,…,1)    …    f(0,…,0)f \;\; \longmapsto \;\; f(1, \ldots, 1) \;\; \ldots \;\; f(0, \ldots, 0)

    Функция истинности определяется своими значениями на строках, и любой выбор этих значений даёт функцию. Если записать значения в порядке таблицы, функции взаимно однозначно соответствуют последовательностям из 2n2^{n} символов, каждый из которых есть 11 или 00.

  3. 22n2^{\resaltar{2^{n}}}

    По тому же подсчёту, применённому теперь к последовательностям длины 2n2^{n}, функций всего 22 в степени 2n2^{n}.

  4. 22=4,24=16,28=256,216=65 5362^{2} = 4, \quad 2^{4} = 16, \quad 2^{8} = 256, \quad 2^{16} = 65\,536

    Первые значения показывают, как быстро растёт это число: при пяти аргументах функций уже больше четырёх миллиардов.

ПримерФункции от одного и от двух аргументов

Четыре функции от одного аргумента суть константа 11, тождественная функция, функция, меняющая значение, и константа 00; формулы ⊤\top, pp, ¬p\neg p и ⊥\bot, где ⊤:=(p→p)\top := (p \rightarrow p) и ⊥:=¬⊤\bot := \neg\top суть формулы, зафиксированные в уроке о семантике, имеют соответственно эти таблицы. Среди шестнадцати функций от двух аргументов есть функции шести связок курса: стрелки Пирса, дизъюнкции, конъюнкции, импликации, эквиваленции и строгой дизъюнкции. Остаются ещё десять, среди них обе константы, функции, учитывающие лишь один из аргументов, и штрих Шеффера (альтернативное отрицание), который равен 00 лишь тогда, когда оба аргумента равны 11; решённая задача 1 классифицирует их все.

Формулы, представляющие функции

Формула и функция истинности связаны следующим образом. Если φ\varphi есть формула, переменные которой находятся среди v1,…,vnv_1, \ldots, v_n, то говорят, что φ\varphi представляет функцию истинности ff от nn аргументов, если для всякой оценки vv

v(φ)=f(v(v1),…,v(vn))v(\varphi) = f(v(v_1), \ldots, v(v_n))

то есть если таблица φ\varphi, записанная с переменными v1,…,vnv_1, \ldots, v_n, есть таблица ff. Условие на переменные не является мелочью: формула (p∧q)(p \wedge q) не представляет никакой функции от одного аргумента, потому что её значение зависит не только от значения pp.

УтверждениеФункция формулы

Пусть φ\varphi есть формула, переменные которой находятся среди v1,…,vnv_1, \ldots, v_n. Тогда φ\varphi представляет ровно одну функцию истинности от nn аргументов, которая обозначается fφf_\varphi. Если ψ\psi есть другая формула, переменные которой находятся среди v1,…,vnv_1, \ldots, v_n, то φ≡ψ\varphi \eqsem \psi тогда и только тогда, когда fφ=fψf_\varphi = f_\psi.

Доказательство

  1. va(vi)=ai(i≤n),va(vk)=0(k>n)\dato{va}{v_a(v_i) = a_i \quad (i \leq n), \qquad v_a(v_k) = 0 \quad (k > n)}

    Для каждой строки aa существует оценка, которая даёт каждой переменной viv_i значение aia_i: достаточно дать остальным переменным значение 00.

  2. v(vi)=v′(vi)=ai(i≤n)    ⇒    v(φ)=v′(φ)=fφ(a)v(v_i) = v'(v_i) = a_i \quad (i \leq n) \;\; \Rightarrow \;\; v(\varphi) = v'(\varphi) = \resaltar{f_\varphi(a)}

    Если две оценки дают v1,…,vnv_1, \ldots, v_n значения строки aa, они совпадают на переменных φ\varphi и по лемме о совпадении придают φ\varphi одно и то же значение. Это общее значение принимается за fφ(a)f_\varphi(a); по построению φ\varphi представляет fφf_\varphi.

  3. g(a)=va(φ)=fφ(a)g(a) = v_a(\varphi) = f_\varphi(a)

    Если φ\varphi представляет также функцию gg, то в каждой строке aa имеем g(a)=va(φ)=fφ(a)g(a) = v_a(\varphi) = f_\varphi(a): представляемая функция единственна.

  4. v(φ)=fφ(v(v1),…,v(vn))=fψ(v(v1),…,v(vn))=v(ψ)v(\varphi) = f_\varphi(v(v_1), \ldots, v(v_n)) = f_\psi(v(v_1), \ldots, v(v_n)) = v(\psi)

    Если fφ=fψf_\varphi = f_\psi, то при всякой оценке vv значения φ\varphi и ψ\psi суть значение одной и той же функции в одной и той же строке; откуда φ≡ψ\varphi \eqsem \psi.

  5. fφ(a)=va(φ)=va(ψ)=fψ(a)f_\varphi(a) = v_a(\varphi) = v_a(\psi) = f_\psi(a)

    Обратно, если φ≡ψ\varphi \eqsem \psi, то в каждой строке aa оценка vav_a даёт обеим формулам одно и то же значение, и, следовательно, fφ(a)=fψ(a)f_\varphi(a) = f_\psi(a).

Формул с переменными среди v1,…,vnv_1, \ldots, v_n бесконечно много, а функций лишь 22n2^{2^{n}}; следовательно, многие формулы представляют одну и ту же функцию, и утверждение говорит, что это в точности формулы, эквивалентные друг другу. Остаётся узнать, всякая ли функция представляется некоторой формулой или же некоторые таблицы остаются без формулы, которая бы их имела.