Тверской государственный университет
Опубликован: 03.10.2011 | Доступ: свободный | Студентов: 3284 / 60 | Оценка: 4.33 / 3.83 | Длительность: 19:48:00
ISBN: 978-5-9963-0573-5
Лекция 6:

Логики вполне достаточно

Случай пустых множеств

Множество SOME_SET, рассматриваемое в выражениях с кванторами, может быть пустым. Эффект воздействия на него двух кванторов отражает их двойственность.

  • ∃ s: SOME_SET | s.some_property истинно в соответствии с определением, если и только если некоторый член SOME_SET удовлетворяет some_property. Если SOME_SET пусто, у него нет членов, и следовательно, нет члена, удовлетворяющего свойству. Потому значение выражения в этом случае независимо от some_property всегда есть False.
  • ∀ s: SOME_SET | s.some_property ложно, если и только если некоторые члены SOME_SET не удовлетворяют свойству some_property. Если SOME_SET пусто, то нет члена, играющего роль "контрпримера", поскольку у множества нет членов. Поэтому значения выражения в этом случае всегда есть True.

Мы можем также рассматривать второй случай как следствие определения выражения с квантором всеобщности ∀ s: SOME_SET | s.some_property, переходя к квантору существования:

not (∃ s: SOME_SET | not s.some_property)

По предыдущему соглашению, любое выражение (∃ s: SOME_SET | …) в круглых скобках равно False, если SOME_SET пусто. Потому ∀-выражение, выводимое с применением not, имеет значение True.

На практике это означает, что можно полагать истинным каждое предложение в форме "Каждый объект такого или такого вида удовлетворяет любому свойству", если только нет объектов указанного вида. Так что можно пообещать студентам: "Я обещаю вам, что каждый блондин в этой аудитории станет губернатором еще до конца этого года, а если нет, то я каждому из вас выплачу по миллиону долларов (буду ставить только отличные оценки)". Конечно, такое обещание можно дать, если предварительно вы тщательно проверили и убедились, что у всех студентов в аудитории есть черные волосы. Тогда блондинов нет и утверждение, что блондины станут губернаторами, истинно.

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

Как следствие этих наблюдений, официальное имя для квантора всеобщности "For all" мы не можем признать вполне удачным, поскольку неформально "Для всех" предполагает существование некоторых элементов, о которых идет речь. Лучшим именем было бы "For all, if any" или просто "For any".

(Было бы прекрасно называть два квантора симметрично: "For some" и "For any" – "Для некоторого" и "Для любого")

Смена устоявшихся терминов привела бы к совершенно ненужной путанице, поэтому по-прежнему будем говорить "For all" и "Exists", но следует помнить, что это только формальные имена и математическая интерпретация For all дает True, так же как и Exists дает False, если нет элементов, для которых можно было бы проверить выполнимость условия.

Другой способ выражения этого свойства состоит в представлении квантора существования записью a1 or a2 oror an, а квантора всеобщности – a1 and a2 andand an. Тогда, если n равно нулю, дизъюнкция ложна, а конъюнкция истинна. Последнее следует из определения операций: a or b истинно, если и только если по меньшей мере один из элементов a или b истинен, и a and b ложно, если и только если по крайней мере один из элементов a или b ложен.

Еще одна неформальная интерпретация связывает это свойство с предыдущим обсуждением импликации, когда ложная посылка всегда дает истинность импликации. Мы можем понимать ∀ x: SOME_SET | x.some_property как следующую импликацию: "x is a member of SOME_SET" implies x.some_property.

Если SOME_SET пусто, то посылка ложна для каждого возможного x, поэтому импликация истинна.

5.5. Дальнейшее чтение

Материал этой лекции является введением, частью учебного плана по информатике, так что большинство студентов будет иметь отдельный курс, специально посвященный логике. Стандартным учебником, требующим определенной математической подготовки, является

Elliot Mendelson: Introduction to Mathematical Logic, fourth edition, Chapman & Hall/CRC, 1997. (Э. Мендельсон "Введение в математическую логику", Наука, М, 1976 г.)

Следующие учебники обращены непосредственно к тем, кто изучает информатику:

Zohar Manna, Richard Waldinger: The Deductive Foundations of Computer Programming, Addison-Wesley, 1993.

Mordechai Ben-Ari: Mathematical Logic for Computer Science, 2nd edition (2001), Springer-Verlag, third corrected printing, 2008.

5.6. Ключевые концепции, изучаемые в этой лекции

  • Логика точно и строго определяет способы вывода. Она обеспечивает основу как для математики, так и для программирования.
  • Пропозициональное исчисление определяет операции над "булевскими переменными", которые могут принимать только значения True и False. Базисными "булевскими операциями" являются отрицание (not), дизъюнкция (or) и конъюнкция (and).
  • Дизъюнкция и конъюнкция являются двойственными операциями по отношению друг к другу. Отрицание одной операции, примененное к отрицанию операндов, дает другую операцию. Законы Де Моргана отражают этот факт.
  • Дизъюнкция и конъюнкция могут быть обобщены на произвольное число операндов благодаря введению кванторов ∃ и ∀ – существования и всеобщности исчисления предикатов, которые применяются к членам заданного множества.
  • Для пустого множества вне зависимости от проверяемого свойства квантор существования дает значение False, а квантор всеобщности – значение True.
  • Импликация может быть просто выражена через дизъюнкцию и отрицание: a implies b – то же самое, что и (not a) or b. Импликация может использоваться для вывода новых свойств из ранее доказанных. Она не подразумевает причинности. False влечет True.
  • В приложениях к программированию булевские операции имеют полустрогие версии, вырабатывающие значения даже в тех случаях, в которых второй операнд не определен. Этими полустрогими версиями для or и and являются or else и and then. Для импликации implies лучшее определение дает полустрогая версия.

Новый словарь

Antecedent Посылка Boolean value Булевское значение Boolean expression Булевское выражение
Boolean operator Булевская операция Boolean variable Булевская переменная Conjunction Конъюнкция
Consequent Заключение (следствие) Contradiction Противоречие Disjunction Дизъюнкция
Existential quantifier Квантор существования Implication Импликация Logic Логика
Negation Отрицание Opposite Противоположность Predicate calculus Исчисление предикатов
Propositional calculus Пропозицио-нальное исчисление (исчисление высказываний) Quantifier Квантор Satisfiable Выполнимое
Satisfies Удовлетворяет Strict Строгий Stronger Сильнее
Tautology Тавтология Truth assignment Истинностное высказывание (распределение) Truth table Таблица истинности (истинностная таблица)
Universal quantifier Квантор всеобщности Weaker Слабее

5-У. Упражнения

5-У.1. Словарь

Дайте точные определения всех терминов словаря.

5-У.2. Карта концепций

  1. Создайте карту концепций для терминов словаря.
  2. Скомбинируйте эту карту с картой, составленной в предыдущих лекциях.

5-У.3. Свойства булевских операций

(Обоснуйте ваши ответы)

  1. Обладает ли свойством рефлексивности and?
  2. Обладает ли свойством рефлексивности or?
  3. Обладает ли свойством ассоциативности эквивалентность?

5-У.4. Искаженная логика

"Если температура в городе поднимается выше 30 градусов, то возникает угроза загрязнений. Сегодня температура достигла только 28 градусов, поэтому угрозы загрязнений нет".

  1. Неформально: что ошибочно в этом высказывании?
  2. Введите подходящие булевские переменные, представив это высказывание в виде булевского выражения.
  3. Докажите, что оно не является тавтологией (подсказка: постройте истинностное присваивание, при котором выражение становится ложным).
  4. Является ли оно противоречием? (Обоснуйте ответ)

5-У.5. Соответствует ли предупреждение?

На входе в компьютерный центр можно прочитать: "Вход запрещен всем, кто не авторизован или не имеет сопровождающего". Можно считать, что здесь нет неопределенности и авторизованный – это человек, обладающий нужными правами, а сопровождающим является авторизованный человек.

  1. Введите подходящие булевские переменные и выразите правило на входе в виде булевского выражения.
  2. Объясните, почему правило не включает все случаи запрета, которого, видимо, добивался автор объявления (подсказка: используйте законы Де Моргана).
  3. Запишите выражение, соответствующее намерениям автора объявления.
  4. Используя выражение как руководство, перепишите текст объявления.

5-У.6. Неравенство

Выпишите таблицу истинности для неравенства /=.

5-У.7. Ассоциативность и импликация

Является ли импликация implies ассоциативной? (Обоснуйте ответ)

5-У.8. Признаки силы

Мы говорим, что a "сильнее или равно" b, если a implies b.

Докажите, что a and b сильнее или равно a и что a сильнее или равно a or b.

5-У.9. Импликация и отрицание

При обсуждении импликации отмечалось, что не является тавтологией. Упростив это выражение, используя приведенные в этой лекции теоремы и не используя таблицу истинности, покажите, при каких условиях (приведите истинностное присваивание) оно выполняется.

(a implies b) = ((not a) implies (not b))

5-У.10. Импликация

  1. Докажите, что для любых булевских выражений a и b следующее выражение является тавтологией:
    ((a implies b) and ((not a) implies b)) implies b
    
  2. На дорожном знаке, установленном в Цюрихе вблизи ETH, написано: "Разумные водители здесь не паркуются. Остальным парковка запрещена". Используя подходящие булевские переменные, включающие: is_reasonable, parks_here, parking_prohibited, выразите это предписание в виде булевского выражения.
  3. Докажите, что если это выражение является тавтологией и водители выполняют предписание, то parks_here ложно.

5-E.11. "Исключающее или" как начало всех булевских операций

Булевская операция "исключающее или", xor, является истинной, если и только если истинно либо a, либо b, но не оба вместе. Мы можем установить это свойство, определив a xor b как

(a or b) and (not (a and b))                                                               [X1]
  1. Напишите таблицу истинности для xor.
  2. Если a – булевская переменная, то что является значением выражения a xor a? (Обоснуйте ваш ответ либо построением таблицы истинности, либо как следствие определения)
  3. Докажите, что a xor b всегда имеет то же значение, что и not (a = b).

    Для каждого из последующих булевских выражений (с нулем, одним или двумя операндами) постройте другое булевское выражение, которое для любого значения операндов дает тот же ответ, что и данное выражение, и использует только заданные операнды, константу True и операцию xor (другие операции не используются). Ответы обоснуйте.

  4. False
  5. not a
  6. a = b
  7. a and b
  8. a or b
  9. aa implies b

Возможность выразить через xor любую булевскую операцию делает эту операцию особенно интересной. Ее можно рассматривать как основу при построении других операций, что и используют проектировщики электронных цепей, основанных на булевской логике.

5-У.12. Свойства "исключающего или"

Основываясь на определении [X1] для xor, докажите или опровергните следующие свойства:

  1. Операция xor коммутативна.
  2. Операция xor ассоциативна.
  3. Для любых a и x имеет место x xor (a xor x) = x.

5-У.13. Голубые шляпы и красные шляпы

Сто человек выстроены в ряд, на каждом одета шляпа, красная или голубая. Каждый может видеть цвет шляпы тех, кто стоит впереди, но не видит цвет шляп стоящих сзади и не знает цвета своей шляпы.

Начиная с конца ряда, с человека, который видит цвета шляп всех, кроме себя, каждый по очереди выкрикивает одно из двух – "красный" или "голубой", и это слышат все в ряду.

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

Следующие замечания могут быть полезными.

  • Простая стратегия заключается в том, что нечетные номера (предполагается, что нумерация начинается с последнего в ряду) выкрикивают цвет четных номеров, стоящих перед ними. Четные номера выкрикивают цвет своей шляпы, названный предшественником. Эта стратегия гарантирует, что половина людей в ряду правильно назовут цвет своей шляпы (фактически, правильных ответов будет больше; при равномерном распределении цветов вероятность правильных ответов для такой стратегии равна 0,75).
  • Другая стратегия, гарантирующая те же 50 процентов правильных ответов, состоит в том, что последний в ряду, тот, кто первым дает ответ, называет цвет шляп, преобладающий в ряду, – "красный", если в ряду 50 или более красных шляп, и "синий" в противном случае. Все остальные повторяют цвет, названный первым.
  • Нет стратегии, гарантирующей 100 процентов правильных ответов, так как цвет шляпы последнего в строю никто не знает, так что оценка сверху для оптимальной стратегии равна 99 из 100. Как близко можно подойти к оптимальной стратегии?
  • Еще раз напомним, что решение не должно оперировать с вероятностями. Стратегия должна максимизировать число гарантированно корректных ответов.

Подсказка: Может помочь предыдущее упражнение.

5-У.14. Истинностные таблицы с неопределенностями:полустрогие булевские операции

Расширим исчисление высказываний, допуская три значения вместо двух: True, False, Undefined. Например, запрос l.i_th (i) будет иметь значение Undefined, если он не удовлетворяет предусловию.

Полагая, что a, b и результирующее выражение может принимать любое из трех значений, постройте таблицу истинности, содержащую 9 строк для

  1. a or else b;
  2. |a and then b.

5-У.15. Таблица истинности с неопределенностями: обычные булевские операции

Как и в предыдущем упражнении, предположим, что булевские значения включают True, False и Undefined. Обоснуйте ваше решение при построении таблицы истинности для:

  1. a or b;
  2. a and b.

Смысл могут иметь несколько истинностных таблиц, а потому интересно обоснование предлагаемого вами выбора.

Кирилл Юлаев
Кирилл Юлаев
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?