Что такое логические операторы И, ИЛИ, НЕ в программировании. Как работают сложные логические выражения. Какие бывают типы логических операторов. Как используются логические операторы на практике.
Что такое логические операторы в программировании
Логические операторы — это специальные символы или ключевые слова, которые используются для создания сложных логических выражений и управления потоком выполнения программы. Основные логические операторы:
- И (AND) — обозначается символами && или словом AND
- ИЛИ (OR) — обозначается символами || или словом OR
- НЕ (NOT) — обозначается символом ! или словом NOT
Эти операторы позволяют комбинировать простые логические выражения в более сложные и проверять несколько условий одновременно.
Как работает логический оператор И (AND)
Логический оператор И возвращает истину (true) только если оба проверяемых условия истинны. Во всех остальных случаях результат ложь (false).
Таблица истинности для оператора И:
- true AND true = true
- true AND false = false
- false AND true = false
- false AND false = false
Пример использования оператора И в коде:
if (age > 18 && hasLicense == true) {
println("Вы можете водить автомобиль");
}
В этом примере проверяется, что возраст больше 18 И есть водительские права. Только при выполнении обоих условий выводится сообщение.
Принцип работы логического оператора ИЛИ (OR)
Оператор ИЛИ возвращает истину, если хотя бы одно из проверяемых условий истинно. Ложь возвращается только если оба условия ложны.
Таблица истинности для оператора ИЛИ:
- true OR true = true
- true OR false = true
- false OR true = true
- false OR false = false
if (isWeekend || isHoliday) {
println("Сегодня выходной!");
}
Здесь проверяется, является ли день выходным ИЛИ праздничным. Если хотя бы одно из этих условий истинно, выводится сообщение.
Особенности работы логического оператора НЕ (NOT)
Оператор НЕ инвертирует значение выражения — превращает истину в ложь и наоборот.
Таблица истинности для НЕ:
- NOT true = false
- NOT false = true
Пример использования оператора НЕ:
if (!isLoggedIn) {
println("Пожалуйста, войдите в систему");
}
В этом примере проверяется, что пользователь НЕ авторизован. Если это так, выводится сообщение с просьбой войти.
Сложные логические выражения с несколькими операторами
На практике часто требуется проверять более двух условий одновременно. Для этого логические операторы можно комбинировать, создавая сложные выражения:
if ((age > 18 && hasLicense) || isEmergency) {
allowDriving();
}
В этом примере вождение разрешается, если возраст больше 18 И есть права, ИЛИ если это чрезвычайная ситуация.
При построении сложных выражений важно учитывать приоритет операторов и использовать скобки для группировки условий.
Приоритет логических операторов
Логические операторы имеют следующий порядок приоритета (от высшего к низшему):
- NOT (!)
- AND (&&)
- OR (||)
Это означает, что в выражении без скобок сначала выполняются операции НЕ, затем И, и в последнюю очередь ИЛИ.
Для изменения порядка вычислений используются круглые скобки. Выражения в скобках всегда вычисляются первыми.
Короткое замыкание логических операторов
Логические операторы И и ИЛИ в большинстве языков программирования используют принцип «короткого замыкания». Это означает, что вычисление выражения прекращается, как только становится известен конечный результат.
Для оператора И:
- Если первое условие ложно, второе не проверяется, так как результат в любом случае будет ложь
Для оператора ИЛИ:
- Если первое условие истинно, второе не проверяется, так как результат уже истина
Это позволяет оптимизировать работу программы и избежать ненужных вычислений.
Использование логических операторов с нелогическими значениями
В некоторых языках программирования, например JavaScript, логические операторы могут использоваться с нелогическими значениями. В этом случае они работают по следующим правилам:
- Оператор И возвращает первое ложное значение или последнее истинное
- Оператор ИЛИ возвращает первое истинное значение или последнее ложное
Пример:
console.log(5 && 2); // Выведет 2 console.log(0 || "Hello"); // Выведет "Hello"
Это позволяет использовать логические операторы для условного присваивания значений.
Практическое применение логических операторов
Логические операторы широко используются в программировании для различных целей:
- Проверка сложных условий в операторах if-else
- Фильтрация данных
- Валидация пользовательского ввода
- Управление потоком выполнения программы
- Оптимизация вычислений
Понимание принципов работы логических операторов позволяет писать более эффективный и читаемый код.
Особенности реализации логических операторов в разных языках
Хотя базовые принципы работы логических операторов одинаковы во всех языках программирования, есть некоторые отличия в их реализации:
- В Python вместо символов && и || используются ключевые слова and и or
- В SQL для И используется AND, для ИЛИ — OR
- В некоторых языках (например, Ruby) есть дополнительные логические операторы
При изучении нового языка программирования важно обратить внимание на особенности реализации логических операторов в нем.
Заключение
Логические операторы — мощный инструмент в руках программиста. Они позволяют создавать сложные условные выражения, управлять потоком выполнения программы и оптимизировать вычисления. Правильное использование логических операторов делает код более эффективным и читаемым.
Логические связки, или логические операции — это символические конструкции логических языков (см. Язык формализованный), используемые для образования сложных высказываний (формул) из элементарных высказываний (см. Высказывание). Логическими связками называют также соответствующие этим символам союзы естественного языка (см. Язык). Обычно используются пять общеизвестных логических связок:
Из указанных логических связок отрицание называется одноместной (унарной) связкой; другие называются двухместными (бинарными) связками. В принципе, логические связки могут быть сколь угодно местными, но на практике более, чем бинарные, используются очень редко. В классической логике (см. Логика) любые многоместные логические связки выразимы через перечисленные. Некоторый практический смысл даёт также использование тернарной логической связки, называемой условной дизъюнкцией, связывающей три высказывания A, B и Классическая логика рассматривает логические связки экстенсионально (игнорируя содержательный смысл связываемых ими высказываний) как функции истинности, определяемые истинностными значениями связываемых ими высказываний. При двух имеющих место в этой логике истинностных значениях 1 (истинно) и 0 (ложно) высказывания A и B могут иметь четыре возможных набора упорядоченных истинностных значений: (1, 1), (1, 0), (0, 1), (0, 0). Пропозициональная истинностная функция ставит в соответствие каждому перечисленному набору одно из значений истинности — 1 или 0. Всего таких функций 16. Конъюнкция приписывает выражению A & B значение 1 только в случае, когда как A, так и B истинны, то есть оба имеют значение 1, в остальных случаях значение A & B равно 0. Дизъюнкция Α ∨ B, напротив, ложна только в одном случае, когда ложны как A, так и B. Импликация A ⊃ B является ложной только при истинном (антецеденте) A и ложном (консеквенте) B. В остальных случаях A ⊃ B принимает значение 1.Из четырёх одноместных функций интерес представляет только отрицание, меняющее значение высказывания на противоположное: когда A — истинно, ¬ A — ложно, и наоборот. Все другие унарные и бинарные классические функции могут быть выражены через представленные. Когда принятая в соответствующей семантике система логических связок позволяет дать определение всех остальных, её называют функционально полной. К полным системам в классической логике относятся, в частности, конъюнкция и отрицание; дизъюнкция и отрицание; импликация и отрицание. Конъюнкция и дизъюнкция определимы друг через друга за счёт эквивалентностей ( Функции антидизъюнкция и антиконъюнкция, определимые соответственно как ¬ (A ∨ B) и ¬ (A & B), также представляют каждая в отдельности функционально полную систему связок. Это последнее обстоятельство было известно уже Ч. С. Пирсу (неопубликованная при его жизни работа 1880 года) и было переоткрыто X. Шеффером. Используя антидизъюнкцию как единственную логическую связку, Шеффер в 1913 построил полное исчисление высказываний. Антидизъюнкцию обозначают A∣B и называют штрихом Шеффера, читая данное выражение, как «не-A и не-B». Ж. Нико употребил то же обозначение для антиконъюнкции («Неверно, что одновременно A и B») и с помощью только этой связки в 1917 сформулировал полное исчисление высказываний с одной (всего!) аксиомой и одним правилом вывода. Таким образом, штрихом Шеффера называют по сути саму вертикальную черту, которая у разных авторов может обозначать как антидизъюнкцию, так и антиконъюнкцию. Экстенсиональность логических связок придаёт им однозначность, упрощает проблему построения логических исчислений, даёт возможность решать для последних метатеоретические проблемы непротиворечивости, разрешимости, полноты. Однако в некоторых случаях истинностно-функциональная трактовка связок приводит к значительному несоответствию с тем, как они понимаются в естественном языке. Так, указанная истинностная интерпретация импликации вынуждает признавать верными предложения вида «Если A, то B» даже в том случае, когда между высказываниями A и B (и, соответственно, событиями, о которых в них идёт речь) нет никакой реальной связи. Достаточно, чтобы A было ложным или B — истинным. Поэтому из двух предложений: «Если A, то B» и «Если B, то A», по крайней мере одно приходится признавать верным, что плохо сообразуется с обычным употреблением условной связки. Импликацию в данном случае специально называют «материальной», отличая её тем самым от условного союза, предполагающего, что между антецедентом и консеквентом истинного условного высказывания имеется действительная связь. При этом материальная импликация может прекрасно использоваться во многих контекстах, например, математических, когда при этом не забывают о её специфических особенностях. В некоторых случаях, однако, именно контекст не позволяет трактовать условный союз как материальную импликацию, предполагая взаимосвязь высказываний. Для анализа таких контекстов приходится строить специальные неклассические логики (например, релевантные логики), в язык которых вместо материальной импликации (или наряду с ней) вводятся другие импликации, которые понимаются интенсионально (содержательно) и верность которых не может быть обоснована истинностно-функционально. Интенсионально могут трактоваться также и другие логические связки. |
Логические выражения и операторы. Урок 6 курса «Python. Введение в программирование»
Логические выражения и логический тип данных
Часто в реальной жизни мы соглашаемся с каким-либо утверждением или отрицаем его. Например, если вам скажут, что сумма чисел 3 и 5 больше 7, вы согласитесь, скажете: «Да, это правда». Если же кто-то будет утверждать, что сумма трех и пяти меньше семи, то вы расцените такое утверждение как ложное.
Подобные фразы предполагают только два возможных ответа – либо «да», когда выражение оценивается как правда, истина, либо «нет», когда утверждение оценивается как ошибочное, ложное. В программировании и математике если результатом вычисления выражения может быть лишь истина или ложь, то такое выражение называется логическим.
Например, выражение 4 > 5 является логическим, так как его результатом является либо правда, либо ложь. Выражение 4 + 5 не является логическим, так как результатом его выполнения является число.
На позапрошлом уроке мы познакомились с тремя типами данных – целыми и вещественными числами, а также строками. Сегодня введем четвертый – логический тип данных (тип bool
). Его также называют булевым. У этого типа всего два возможных значения: True (правда) и False (ложь).
>>> a = True >>> type(a) <class 'bool'> >>> b = False >>> type(b) <class 'bool'>
Здесь переменной a было присвоено значение True
, после чего с помощью встроенной в Python функции type()
проверен ее тип. Интерпретатор сообщил, что это переменная класса bool
. Понятия «класс» и «тип данных» в данном случае одно и то же. Переменная b также связана с булевым значением.
В программировании False
обычно приравнивают к нулю, а True
– к единице. Чтобы в этом убедиться, можно преобразовать булево значение к целочисленному типу:
>>> int(True) 1 >>> int(False) 0
Возможно и обратное. Можно преобразовать какое-либо значение к булевому типу:
>>> bool(3.4) True >>> bool(-150) True >>> bool(0) False >>> bool(' ') True >>> bool('') False
И здесь работает правило: всё, что не 0 и не пустота, является правдой.
Логические операторы
Говоря на естественном языке (например, русском) мы обозначаем сравнения словами «равно», «больше», «меньше». В языках программирования используются специальные знаки, подобные тем, которые используются в математике: >
(больше), <
(меньше), >=
(больше или равно), <=
(меньше или равно), ==
(равно), !=
(не равно).
Не путайте операцию присваивания значения переменной, обозначаемую в языке Python одиночным знаком «равно», и операцию сравнения (два знака «равно»). Присваивание и сравнение – разные операции.
>>> a = 10 >>> b = 5 >>> a + b > 14 True >>> a < 14 - b False >>> a <= b + 5 True >>> a != b True >>> a == b False >>> c = a == b >>> a, b, c (10, 5, False)
В данном примере выражение c = a == b
состоит из двух подвыражений. Сначала происходит сравнение (==
) переменных a и b. После этого результат логической операции присваивается переменной c. Выражение a, b, c
просто выводит значения переменных на экран.
Сложные логические выражения
Логические выражения типа kByte >= 1023
являются простыми, так как в них выполняется только одна логическая операция. Однако, на практике нередко возникает необходимость в более сложных выражениях. Может понадобиться получить ответа «Да» или «Нет» в зависимости от результата выполнения двух простых выражений. Например, «на улице идет снег или дождь», «переменная news больше 12 и меньше 20″.
В таких случаях используются специальные операторы, объединяющие два и более простых логических выражения. Широко используются два оператора – так называемые логические И (and) и ИЛИ (or).
Чтобы получить True
при использовании оператора and
, необходимо, чтобы результаты обоих простых выражений, которые связывает данный оператор, были истинными. Если хотя бы в одном случае результатом будет False
, то и все сложное выражение будет ложным.
Чтобы получить True
при использовании оператора or
, необходимо, чтобы результат хотя бы одного простого выражения, входящего в состав сложного, был истинным. В случае оператора or
сложное выражение становится ложным лишь тогда, когда ложны оба составляющие его простые выражения.
Допустим, переменной x было присвоено значение 8 (x = 8
), переменной y присвоили 13 (y = 13
). Логическое выражение y < 15 and x > 8
будет выполняться следующим образом. Сначала выполнится выражение y < 15
. Его результатом будет True
. Затем выполнится выражение x > 8
. Его результатом будет False
. Далее выражение сведется к True and False
, что вернет False
.
>>> x = 8 >>> y = 13 >>> y < 15 and x > 8 False
Если бы мы записали выражение так: x > 8 and y < 15
, то оно также вернуло бы False
. Однако сравнение y < 15
не выполнялось бы интерпретатором, так как его незачем выполнять. Ведь первое простое логическое выражение (x > 8
) уже вернуло ложь, которая, в случае оператора and
, превращает все выражение в ложь.
В случае с оператором or
второе простое выражение проверяется, если первое вернуло ложь, и не проверяется, если уже первое вернуло истину. Так как для истинности всего выражения достаточно единственного True
, неважно по какую сторону от or
оно стоит.
В языке Python есть еще унарный логический оператор not
, то есть отрицание. Он превращает правду в ложь, а ложь в правду. Унарный он потому, что применяется к одному выражению, стоящему после него, а не справа и слева от него как в случае бинарных and
и or
.
Здесь у < 15
возвращает True
. Отрицая это, мы получаем False
.
>>> a = 5 >>> b = 0 >>> not a False >>> not b True
Число 5 трактуется как истина, отрицание истины дает ложь. Ноль приравнивается к False
. Отрицание False
дает True
.
Практическая работа
Присвойте двум переменным любые числовые значения.
Используя переменные из п. 1, с помощью оператора
and
составьте два сложных логических выражения, одно из которых дает истину, другое – ложь.Аналогично выполните п. 2, но уже с оператором
or
.Попробуйте использовать в логических выражениях переменные строкового типа. Объясните результат.
Напишите программу, которая запрашивала бы у пользователя два числа и выводила бы
True
илиFalse
в зависимости от того, больше первое число второго или нет.
Примеры решения и дополнительные уроки в android-приложении и pdf-версии курса
Выражения и операторы — JavaScript
Эта глава описывает выражения и операторы языка JavaScript, такие как операторы присваивания, сравнения, арифметические, битовые, логические, строчные, и различные специальные операторы.
Полный и детальный список операторов и выражений также доступен в этом руководстве.
В JavaScript есть следующие типы операторов. Данный подраздел описывает каждый тип и содержит информацию об их приоритетах друг над другом.
JavaScript поддерживает бинарные и унарные операторы, а также ещё один специальный тернарный оператор — условный оператор. Бинарная операция использует два операнда, один перед оператором и другой за ним:
operand1 operator operand2
Например: 3+4
или x*y
.
В свою очередь унарная операция использует один операнд, перед или после оператора:
operator operand
или
operand operator
Например: x++
или ++x
.
Операторы присваивания
В результате операции присваивания операнду слева от оператора присваивания (en-US) (знак «=») устанавливается значение , которое берётся из правого операнда. Основным оператором присваивания является =, он присваивает значение правого операнда операнду, находящемуся слева. Таким образом, выражение x = y означает, что x присваивается значение y.
Существуют также составные операторы присваивания, которые используются для сокращённого представления операций, описанных в следующей таблице:
Деструктуризация
Для более сложного присваивания в JavaScript есть синтаксис деструктуризации — это выражение, которое позволяет извлекать данные из массивов или объектов, используя синтаксис, который зеркалирует конструкторы массивов и литералы объектов.
var foo = ["one", "two", "three"];
var one = foo[0];
var two = foo[1];
var three = foo[2];
var [one, two, three] = foo;
Операторы сравнения
Оператор сравнения (en-US) сравнивает свои операнды и возвращает логическое значение, базируясь на истинности сравнения. Операнды могут быть числами, строками, логическими величинами или объектами. Строки сравниваются на основании стандартного лексикографического порядка, используя Unicode-значения. В большинстве случаев, если операнды имеют разный тип, то JavaScript пробует преобразовать их в тип, подходящий для сравнения. Такое поведение обычно происходит при сравнении числовых операндов. Единственным исключением из данного правила является сравнение с использованием операторов ===
и !==
, которые производят строгое сравнение на равенство или неравенство. Эти операторы не пытаются преобразовать операнды перед их сравнением. Следующая таблица описывает операторы сравнения в контексте следующего примера кода:
Оператор | Описание | Примеры, возвращающие true |
---|---|---|
Равно (== ) | Возвращает true, если операнды равны. | 3 == var1 "3" == var1 3 == '3' |
Не равно (!= ) | Возвращает true, если операнды не равны. | var1 != 4 |
Строго равно (=== ) | Возвращает true, если операнды равны и имеют одинаковый тип. Смотрите также Object.is и sameness in JS. | 3 === var1 |
Строго не равно(!== ) | Возвращает true, если операнды не равны и/или имеют разный тип. | var1 !== "3" |
Больше (> ) | Возвращает true, если операнд слева больше операнда справа. | var2 > var1 |
Больше или равно (>= ) | Возвращает true, если операнд слева больше или равен операнду справа. | var2 >= var1 |
Меньше (< ) | Возвращает true, если операнд слева меньше операнда справа. | var1 < var2 |
Меньше или равно (<= ) | Возвращает true, если операнд слева меньше или равен операнду справа. | var1 <= var2 |
Арифметические операторы
Арифметические операторы (en-US) используют в качестве своих операндов числа (также литералы или переменные) и в качестве результата возвращают одно числовое значение. Стандартными арифметическими операторами являются сложение (+), вычитание (-), умножение (*), и деление (/). При работе с числами с плавающей точкой эти операторы работают аналогично их работе в большинстве других языках программирования (обратите внимание, что деление на ноль возвращает бесконечность Infinity
). Например:
console.log(1 / 2);
console.log(1 / 2 == 1.0 / 2.0);
Кроме того, JavaScript позволяет использовать следующие арифметические операторы, представленные в таблице:
Оператор | Описание | Пример |
---|---|---|
Остаток от деления (en-US) (% ) | Бинарный оператор. Возвращает целочисленный остаток от деления двух операндов. | 12 % 5 вернёт 2. |
Инкремент (en-US) (++ ) | Унарный оператор. Добавляет единицу к своему операнду. Если используется в качестве префикса (++x ), то возвращает значение операнда с добавленной к нему единицей; а в случае применения в качестве окончания (x++ ) возвращает значение операнда перед добавлением к нему единицы. | Если x равно 3, тогда ++x установит значение x равным 4 и вернёт 4, напротив x++ вернёт 3 и потом установит значение x равным 4. |
Декремент (en-US) (-- ) | Унарный оператор. Вычитает единицу из значения своего операнда. Логика данного оператора аналогична оператору инкремента. | Если x равно 3, тогда --x установит значение x равным 2 и вернёт 2, напротив x-- вернёт 3 и потом установит значение x равным 2. |
Унарный минус (en-US)- | Унарный оператор. Возвращает отрицательное значение своего операнда. | Если x равно 3, тогда -x вернёт -3. |
Унарный плюс (en-US) (+ ) | Унарный оператор. Пытается конвертировать операнд в число, если он ещё не оно. | +"3" вернёт 3 .+true вернёт 1. |
Возведение в степень (en-US) (** ) | Возводит основание в показатель степени , как, основаниестепень | 2 ** 3 вернёт 8 .10 ** -1 вернёт 0.1 . |
Битовые (поразрядные) операторы
Битовые операторы (en-US) обрабатывают свои операнды как последовательности из 32 бит (нулей и единиц), а не как десятичные, шестнадцатеричные или восьмеричные числа. Например, десятичное число 9 имеет двоичное представление 1001. b
~ a
a << b
a
в двоичном представлении на b
бит влево, добавляя справа нули.a >> b
a
в двоичном представлении на b
бит вправо, отбрасывая сдвигаемые биты.a >>> b
a
в двоичном представлении на b
бит вправо, отбрасывая сдвигаемые биты и добавляя слева нули.Битовые логические операторы
Основной смысл работы битовых логических операторов состоит в следующем:
- Операнды преобразуются в 32-битные целые числа и представляются в виде последовательности бит (нулей и единиц). Числа, имеющие более 32 битов будут сокращены. Например, следующее число имеет больше 32 битов и сконвертируется в 32-х битное:
До : 11100110111110100000000000000110000000000001 После : 10100000000000000110000000000001
- Каждый бит первого операнда связывается с соответствующим битом второго операнда: первый бит с первым битом, второй бит — со вторым, и так далее.
- К каждой паре бит применяется заданный оператор, и побитово формируется итоговый результат.
Например, двоичным представлением числа 9 является 1001, а двоичным представлением пятнадцати — 1111. Результаты применения к этим числам битовых логических операторов выглядят следующим образом:
Выражение | Результат | Двоичное описание |
---|---|---|
15 & 9 | 9 | 1111 & 1001 = 1001 |
15 | 9 | 15 | 1111 | 1001 = 1111 |
15 ^ 9 | 6 | 1111 ^ 1001 = 0110 |
~15 | -16 | ~ 00000000... 00001111 = 1111 1111 ... 11110000 |
~9 | -10 | ~ 00000000 ... 0000 1001 = 1111 1111 ... 1111 0110 |
Обратите внимание, что все 32 бита преобразуются с использованием битового оператора НЕ, и что величины с наиболее значимым (самым левым) битом равным 1 представляют собой отрицательные числа (в представлении дополнения до двух).
Битовые операторы сдвига
Битовые операторы сдвига используют два операнда: первый представляет величину, подлежащую сдвигу, а второй операнд указывает число битовых позиций на которое должен быть сдвинут первый операнд. Направление операции сдвига определяется используемым оператором.
Операторы сдвига преобразуют свои операнды в 32-битные целые числа и возвращают результат того же типа, каким является левый операнд.
Операторы сдвига перечислены в следующей таблице.
Оператор | Описание | Пример |
---|---|---|
Сдвиг влево (en-US) ( << ) | Данный оператор сдвигает первый операнд на указанное количество бит влево. Излишние биты, сдвинутые влево, отбрасываются. Справа число дополняется нулевыми битами. | 9<<2 равно 36, так как 1001 после сдвига на 2 бита влево превращается в 100100, что соответствует числу 36. |
Сдвиг вправо с переносом знака (en-US) (>> ) | Данный оператор сдвигает первый операнд на указанное количество бит вправо. Излишние биты, сдвинутые вправо, отбрасываются. Слева число дополняется копиями крайнего слева бита. | 9>>2 равно 2, так как 1001 после сдвига на 2 бита вправо превращается в 10, что соответствует числу 2. Подобным же образом -9>>2 равно -3, так как знак сохраняется. |
Сдвиг вправо с заполнением нулями (en-US) (>>> ) | Данный оператор сдвигает первый операнд на указанное количество бит вправо. Излишние биты, сдвинутые вправо, отбрасываются. Слева число дополняется нулевыми битами. | 19>>>2 равно 4, так как 10011 после сдвига на 2 бита вправо превращается в 100, что соответствует числу 4. Для неотрицательных чисел сдвиг вправо с заполнением нулями и сдвиг вправо с переносом знака дают одинаковый результат. |
Логические операторы
Логические операторы (en-US) обычно используются с булевыми (логическими) значениями; при этом возвращаемое ими значение также является булевым. Однако операторы && и || фактически возвращают значение одного из операндов, поэтому, если эти операторы используются с небулевыми величинами, то возвращаемая ими величина также может быть не булевой. Логические операторы описаны в следующей таблице.
Оператор | Использование | Описание |
---|---|---|
Логическое И (en-US) (&& ) | expr1 && expr2 | (Логическое И) Возвращает операнд expr1 , если он может быть преобразован в false ; в противном случае возвращает операнд expr2 . Таким образом, при использовании булевых величин в качестве операндов, оператор && возвращает true , если оба операнда true ; в противном случае возвращает false . |
Логическое ИЛИ (en-US)(|| ) | expr1 || expr2 | (Логическое ИЛИ) Возвращает операнд expr1 , если он может быть преобразован в true ; в противном случае возвращает операнд expr2 . Таким образом, при использовании булевых величин в качестве операндов, оператор || возвращает true , если один из операндов true ; если же оба false , то возвращает false . |
Логическое НЕ (en-US)(! ) | !expr | (Логическое НЕ) Возвращает false , если операнд может быть преобразован в true ; в противном случае возвращает true . |
Примерами выражений, которые могут быть преобразованы в false являются: null, 0, NaN, пустая строка («») или undefined.
Следующий код демонстрирует примеры использования оператора && (логическое И).
var a1 = true && true;
var a2 = true && false;
var a3 = false && true;
var a4 = false && (3 == 4);
var a5 = "Cat" && "Dog";
var a6 = false && "Cat";
var a7 = "Cat" && false;
Следующий код демонстрирует примеры использования оператора || (логическое ИЛИ).
var o1 = true || true;
var o2 = false || true;
var o3 = true || false;
var o4 = false || (3 == 4);
var o5 = "Cat" || "Dog";
var o6 = false || "Cat";
var o7 = "Cat" || false;
Следующий код демонстрирует примеры использования оператора ! (логическое НЕ).
var n1 = !true;
var n2 = !false;
var n3 = !"Cat";
Сокращённая оценка
Так как логические выражения вычисляются слева направо, они проверяются на возможность выполнения сокращённой оценки с использованием следующих правил:
false
&& anything — сокращение с результатом false.true
|| anything — сокращение с результатом true.
Правила логики гарантируют, что данные вычисления всегда корректны. Обратите внимание, что часть «anything» представленных выше выражений не вычисляется, таким образом удаётся избежать любых побочных эффектов вычисления данной части.
Строковые операторы
В дополнение к операторам сравнения, которые могут использоваться со строковыми значениями, оператор (+) позволяет объединить две строки, возвращая при этом третью строку, которая представляет собой объединение двух строк-операндов:
console.log("my " + "string");
Сокращённый оператор присваивания += также может быть использован для объединения (конкатенации) строк:
var mystring = "alpha"; mystring += "bet";
Условный (тернарный) оператор
Условный оператор является единственным оператором JavaScript, который использует три операнда. Оператор принимает одно из двух значений в зависимости от заданного условия. Синтаксис оператора:
condition ? val1 : val2
val1 и val2 обязательно должны что-то возвращать, поэтому в этой конструкции нельзя использовать continue или break
Если condition (условие)
— истина, то оператор принимает значение val1
. В противном случае оператор принимает значение val2
. Вы можете использовать условный оператор во всех случаях, где может быть использован стандартный оператор.
var status = (age >= 18) ? "adult" : "minor";
Данное выражение присваивает значение «adult» переменной status
, если age
имеет значение 18 или более. В противном случае переменной status
присваивается значение «minor».
Оператор запятая
Оператор запятая (,
) просто вычисляет оба операнда и возвращает значение последнего операнда. Данный оператор в основном используется внутри цикла for
, что позволяет при каждом прохождении цикла одновременно обновлять значения нескольких переменных.
Например, если a
является двумерным массивом, каждая строка которого содержит 10 элементов, то следующий код с использованием оператора запятая позволяет выполнять одновременное приращение двух переменных. Данный код выводит на экран значения диагональных элементов массива:
for (var i = 0, j = 9; i <= 9; i++, j--)
document.writeln("a[" + i + "][" + j + "]= " + a[i][j]);
Унарные операторы
Унарная операция — операция только с одним операндом.
delete
Оператор delete выполняет удаление объекта, свойства объекта, или элемента массива с заданным индексом. Синтаксис оператора:
delete objectName;
delete objectName.property;
delete objectName[index];
delete property;
где objectName
представляет собой имя объекта, property
— свойство объекта, а index
— целое число, указывающее на положение (номер позиции) элемента в массиве.
Четвёртый вариант использования позволяет удалить свойство объекта, но допускается только внутри with
.
Вы можете использовать оператор delete
для удаления переменных, объявленных неявно, но вы не можете с его помощью удалять переменные, объявленные с помощью var
.
После применения оператора delete
свойство элемента меняется на undefined
. Оператор delete
возвращает true
если выполнение операции возможно; оператор возвращает false
, если выполнение операции невозможно.
x = 42;
var y = 43;
myobj = new Number();
myobj.h = 4;
delete x;
delete y;
delete Math.PI;
delete myobj.h;
delete myobj;
Удаление элементов массива
Удаление элемента массива не влияет на длину массива. Например, если вы удалите a[3]
, элемент a[4]
останется a[4],
a[3]
станет undefined.
Когда элемент массива удаляется с помощью оператора delete
, то из массива удаляется значение данного элемента. В следующем примере элемент trees[3]
удалён с помощью оператора delete
. Однако, элемент trees[3]
остаётся адресуемым и возвращает значение undefined
.
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
delete trees[3];
if (3 in trees) {
}
Если вы хотите, чтобы элемент оставался в массиве, но имел значение undefined, то используйте ключевое слово undefined
вместо оператора delete
. В следующем примере элементу trees[3]
присвоено значение undefined
, но элемент при этом остаётся в массиве:
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
trees[3] = undefined;
if (3 in trees) {
}
Оператор typeof
Оператор typeof
используется одним из следующих способов:
typeof operand typeof (operand)
Оператор typeof
возвращает строку обозначающую тип невычисленного операнда. Значение operand
может быть строкой, переменной, дескриптором, или объектом, тип которого следует определить. Скобки вокруг операнда необязательны.
Предположим, вы определяете следующие переменные:
var myFun = new Function("5 + 2");
var shape = "round";
var size = 1;
var today = new Date();
Оператор typeof
возвращает следующие результаты для этих переменных:
typeof myFun;
typeof shape;
typeof size;
typeof today;
typeof dontExist;
Для дескрипторов true
и null
оператор typeof
возвращает следующие результаты:
typeof true;
typeof null;
Для чисел и строк оператор typeof
возвращает следующие результаты:
typeof 62;
typeof 'Hello world';
Для свойств оператор typeof
возвращает тип значения данного свойства:
typeof document.lastModified;
typeof window.length;
typeof Math.LN2;
Для методов и функций оператор typeof
возвращает следующие результаты:
typeof blur;
typeof eval;
typeof parseInt;
typeof shape.split;
Для встроенных объектов оператор typeof
возвращает следующие результаты:
typeof Date;
typeof Function;
typeof Math;
typeof Option;
typeof String;
Оператор void
Оператор
void
используется любым из следующих способов:
void (expression) void expression
Оператор void
определяет выражение, которое должно быть вычислено без возвращения результата. expression
— это выражение JavaScript, требующее вычисления. Скобки вокруг выражения необязательны, но их использование является правилом хорошего тона.
Вы можете использовать оператор void
для указания на то, что операнд-выражение является гипертекстовой ссылкой. При этом выражение обрабатывается, но не загружается в текущий документ.
Следующий код служит примером создания гипертекстовой ссылки, которая бездействует при нажатии на неё пользователем. Когда пользователь нажимает на ссылку, void(0)
вычисляется равным undefined
, что не приводит ни к каким действиям в JavaScript.
<A HREF="javascript:void(0)">Нажмите здесь, чтобы ничего не произошло</A>
Приведённый ниже код создаёт гипертекстовую ссылку, которая подтверждает отправку формы при клике на ней пользователем:
<A HREF="javascript:void(document.form.submit())">
Нажмите здесь, чтобы подтвердить отправку формы</A>
Операторы отношения
Оператор отношения сравнивает свои операнды и возвращает результат сравнения в виде булева значения.
Оператор in
Оператор in
возвращает true, если указанный объект имеет указанное свойство. Синтаксис оператора:
propNameOrNumber in objectName
где propNameOrNumber
— строка или числовое выражение, представляющее имя свойства или индекс массива, а objectName
— имя объекта.
Некоторые примеры способов использования оператора in
:
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
0 in trees;
3 in trees;
6 in trees;
"bay" in trees;
"length" in trees;
"PI" in Math;
var myString = new String("coral");
"length" in myString;
var mycar = {make: "Honda", model: "Accord", year: 1998};
"make" in mycar;
"model" in mycar;
Оператор
instanceof
Оператор instanceof
возвращает true, если заданный объект является объектом указанного типа. Его синтаксис:
objectName instanceof objectType
где objectName
— имя объекта, тип которого необходимо сравнить с objectType
, а objectType
— тип объекта, например, Date
или Array
.
Используйте оператор instanceof
, когда вам необходимо подтвердить тип объекта во время выполнения программы. Например, при перехвате исключений вы можете создать различные программные переходы для обработки исключений в зависимости от типа обрабатываемого исключения.
Например, следующий код использует оператор instanceof
для проверки того, является ли объект theDay
объектом типа Date
. Так как theDay
действительно является объектом типа Date
, то программа выполняет код, содержащийся в утверждении if
.
var theDay = new Date(1995, 12, 17);
if (theDay instanceof Date) {
}
Приоритет операторов
Приоритет операторов определяет порядок их выполнения при вычислении выражения. Вы можете влиять на приоритет операторов с помощью скобок.
Приведённая ниже таблица описывает приоритет операторов от наивысшего до низшего.
Тип оператора | Операторы |
---|---|
свойство объекта | .= |= |
запятая | , |
Более подробная версия данной таблицы, содержащая ссылки и дополнительную информацию по каждому оператору, находится в справочнике JavaScript.
Выражением является любой корректный блок кода, который возвращает значение.
Концептуально, существуют два типа выражений: те которые присваивают переменной значение, и те, которые вычисляют значение без его присваивания.
Выражение x = 7
является примером выражения первого типа. Данное выражение использует оператор = для присваивания переменной x
значения 7. Само выражение также равняется 7.
Код 3 + 4
является примером выражения второго типа. Данное выражение использует оператор «+» для сложения чисел 3 и 4 без присваивания переменной полученного результата 7.
Все выражения в JavaScript делятся на следующие категории:
- Арифметические: вычисляются в число, например: 3.14159 (Используют арифметические операторы).
- Строковые: вычисляются в текстовую строку, например: «Fred» или «234» (Используют строковые операторы).
- Логические: вычисляются в true или false (Используют логические операторы).
- Основные выражения: Базовые ключевые слова и основные выражения в JavaScript.
- Левосторонние выражения: Значениям слева назначаются значения справа.
Основные выражения
Базовые ключевые слова и основные выражения в JavaScript.
Оператор
this
Используйте ключевое слово this
для указания на текущий объект. В общем случае this
указывает на вызываемый объект, которому принадлежит данный метод. Используйте this
следующим образом:
this["propertyName"] this.propertyName
Предположим, функция validate
выполняет проверку свойства value
некоторого объекта; задан объект, а также верхняя и нижняя граница величины данного свойства:
function validate(obj, lowval, hival){
if ((obj.value < lowval) || (obj.value > hival))
alert("Неверное значение!");
}
Вы можете вызвать функцию validate
для обработчика события onChange
для каждого элемента формы, используя this
для указания на элемент формы, как это показано в следующем примере:
<B>Введите число от 18 до 99:</B>
<INPUT TYPE="text" NAME="age" SIZE=3
onChange="validate(this, 18, 99);">
Оператор группировки
Оператор группировки "скобки" ( )
контролирует приоритет вычисления выражений. Например, вы можете переопределить порядок — «умножение и деление, а потом сложение и вычитание», так чтобы, например, чтобы сложение выполнялось до умножения:
var a = 1;
var b = 2;
var c = 3;
a + b * c
a + (b * c)
(a + b) * c
a * c + b * c
Упрощённый синтаксис создания массивов и генераторов
Упрощённый синтаксис — экспериментальная возможность JavaScript, которая возможно будет добавлена в будущие версии ECMAScript. Есть 2 версии синтаксиса:
[for (x of y) x]
- Упрощённый синтаксис для массивов.
(for (x of y) y)
- Упрощённый синтаксис для генераторов.
Упрощённые синтаксисы существуют во многих языках программирования и позволяют вам быстро собирать новый массив, основанный на существующем. Например:
[for (i of [ 1, 2, 3 ]) i*i ];
var abc = [ "A", "B", "C" ];
[for (letters of abc) letters.toLowerCase()];
Левосторонние выражения
Значениям слева назначаются значения справа.
new
Вы можете использовать оператор new
для создания экземпляра объекта пользовательского типа или одного из встроенных объектов. Используйте оператор new
следующим образом:
var objectName = new objectType([param1, param2, ..., paramN]);
super
Ключевое слово используется, чтобы вызывать функции родительского объекта. Это полезно и с классами для вызова конструктора родителя, например.
Оператор расширения
Оператор расширения позволяет выражению расширяться в местах с множеством аргументов (для вызовов функций) или множестве элементов (для массивов).
Пример: Сегодня, если у вас есть массив и вы хотите создать новый с существующей частью первого, то литерального синтаксиса массива уже не достаточно, и вы должны писать императивный (без вариантов) код, используя комбинацию push
, splice
, concat
и т.д. Но с этим оператором код становится более коротким:
var parts = ['shoulder', 'knees'];
var lyrics = ['head', ...parts, 'and', 'toes'];
Похожим образом оператор работает с вызовами функций:
function f(x, y, z) { }
var args = [0, 1, 2];
f(...args);
Логические элементы компьютера
В 1938 году была опубликована магистерская диссертация (1937 года) Клода Шеннона «Символьный анализ реле и коммутаторов». В публикации Шеннон представил работу релейных схем с помощью булевой алгебры и двоичной арифметики, тем самым по сути заложив основы цифровой техники.
Устройства компьютера, предназначенные для выполнения арифметических и логических операций можно рассматривать как преобразователь, который получает на входы двоичные сигналы, а на выходе новую двоичную последовательность.
Определение. Дискретный преобразователь, который выдает после обработки двоичных сигналов значение одной из логических операций, называется логическим элементом (вентилем).
Логические элементы преобразуют сигнал в соответствие с таблицей состояния, которая по сути является таблицей истинности реализуемой логической функции.
Любую логическую функцию можно представить с помощью базиса «НЕ», «И» и «ИЛИ». Таким образом, для реализации сложных логических функций будет достаточно комбинаций трех элементов, реализующих указанные операции:
- Логический элемент «И» (конъюнктор) реализует операцию конъюнкции.
- Логический элемент «ИЛИ» (дизъюнктор) реализует операцию дизъюнкции.
- Логический элемент «НЕ» (инвертор) реализует операцию дизъюнкции.
В микроэлектронике базовыми также являются логические элементы «И-НЕ» и «ИЛИ-НЕ», которые соответственно реализуют функции штрих Шеффера и стрелка Пирса.
Для обозначения логических элементов в компьютерной схемотехнике используются несколько стандартов. Наиболее распространенными являются международный (IEC), российский (ГОСТ), американский (ANSI) и европейский (DIN).
Согласно ГОСТ 2.743-91 условные графические обозначения в электронных схемах простейших логических элементов выглядят следующим образом:
Небольшой кружок на выходе (или на входе) условного обозначения логического элемента означает операцию «НЕ».
НОУ ИНТУИТ | Лекция | Простейшие логические элементы
Аннотация: В лекции рассматриваются принципы работы, характеристики и типовые схемы включения простейших логических элементов — инверторов, буферов, элементов И и ИЛИ, а также приводятся схемотехнические решения, позволяющие реализовать на их основе часто встречающиеся функции.
Изучение базовых элементов цифровой электроники мы начнем с наиболее простых, а затем будем рассматривать все более сложные. Примеры применения каждого следующего элемента будут опираться на все элементы, рассмотренные ранее. Таким образом, будут постепенно даны главные принципы построения довольно сложных цифровых устройств.
Логические элементы (или, как их еще называют, вентили, «gates») — это наиболее простые цифровые микросхемы. Именно в этой простоте и состоит их отличие от других микросхем. Как правило, в одном корпусе микросхемы может располагаться от одного до шести одинаковых логических элементов. Иногда в одном корпусе могут располагаться и разные логические элементы.
Обычно каждый логический элемент имеет несколько входов (от одного до двенадцати) и один выход. При этом связь между выходным сигналом и входными сигналами (таблица истинности) предельно проста. Каждой комбинации входных сигналов элемента соответствует уровень нуля или единицы на его выходе. Никакой внутренней памяти у логических элементов нет, поэтому они относятся к группе так называемых комбинационных микросхем. Но в отличие от более сложных комбинационных микросхем, рассматриваемых в следующей лекции, логические элементы имеют входы, которые не могут быть разделены на группы, различающиеся по выполняемым ими функциям.
Главные достоинства логических элементов, по сравнению с другими цифровыми микросхемами, — это их высокое быстродействие (малые времена задержек), а также малая потребляемая мощность (малый ток потребления). Поэтому в тех случаях, когда требуемую функцию можно реализовать исключительно на логических элементах, всегда имеет смысл проанализировать этот вариант. Недостаток же их состоит в том, что на их основе довольно трудно реализовать сколько-нибудь сложные функции. Поэтому чаще всего логические элементы используются только в качестве дополнения к более сложным, к более «умным» микросхемам. И любой разработчик обычно стремится использовать их как можно меньше и как можно реже. Существует даже мнение, что мастерство разработчика обратно пропорционально количеству используемых им логических элементов. Однако это верно далеко не всегда.
Инверторы
Самый простой логический элемент — это инвертор (логический элемент НЕ, «inverter»), уже упоминавшийся в «Базовые понятия цифровой электроники» . Инвертор выполняет простейшую логическую функцию — инвертирование, то есть изменение уровня входного сигнала на противоположный. Он имеет всего один вход и один выход. Выход инвертора может быть типа 2С или типа ОК. На рис. 3.1 показаны условные обозначения инвертора, принятые у нас и за рубежом, а в табл. 3.1 представлена таблица истинности инвертора.
Рис. 3.1. Условные обозначения инверторов: зарубежные (слева) и отечественные (справа)
В одном корпусе микросхемы обычно бывает шесть инверторов. Отечественное обозначение микросхем инверторов — «ЛН». Примеры: КР1533ЛН1 (SN74ALS04) — шесть инверторов с выходом 2С, КР1533ЛН2 (SN74ALS05) — шесть инверторов с выходом ОК. Существуют также инверторы с выходом ОК и с повышенным выходным током (ЛН4), а также с повышенным выходным напряжением (ЛН3, ЛН5). Для инверторов с выходом ОК необходимо включение выходного нагрузочного резистора pull-up. Его минимальную величину можно рассчитать очень просто: R < U/IOL, где U — напряжение питания, к которому подключается резистор. Обычно величина резистора выбирается порядка сотен Ом — единиц кОм.
Вход | Выход |
---|---|
0 | 1 |
1 | 0 |
Две основные области применения инверторов — это изменение полярности сигнала и изменение полярности фронта сигнала (рис. 3.2). То есть из положительного входного сигнала инвертор делает отрицательный выходной сигнал и наоборот, а из положительного фронта входного сигнала — отрицательный фронт выходного сигнала и наоборот. Еще одно важное применение инвертора — буферирование сигнала (с инверсией), то есть увеличение нагрузочной способности сигнала. Это бывает нужно в том случае, когда какой-то сигнал надо подать на много входов, а выходной ток источника сигнала недостаточен.
Рис. 3.2. Инверсия полярности сигнала и инверсия полярности фронта сигнала
2.2. Логические элементы | Электронная библиотека
Используемые для обработки цифровых сигналов устройства называются логическими элементами, и для их идентификации используют логические символы. В международной технической литературе могут использоваться различные стандарты начертания логических символов, но чаще всего встречаются три варианта отображения логических схем – в стандартах ГОСТ, DIN или ANSI.
Так, в большинстве государств СНГ используются начертания логических символов, определяемые Госстандартом Российской Федерации (ГОСТ). В странах Северной Америки (США и Канада) применяются обозначения логических символов, утвержденные Американским национальным институтом стандартов (ANSI). А в странах Европейского Союза (ЕС) логические символы обозначаются согласно стандартам, разработанным Институтом стандартизации Германии (DIN).
Ниже приведены семь основных логических элементов цифровых систем. В таблице истинности 0 означает низкий уровень напряжения (Low), a 1 – высокий (High). Для каждого элемента приведены выполняемые им логические или как их еще называют булевы[1] функции.
1. Инвертор. Логическое НЕ (NOT).
Обозначение логического элемента:
а) в стандарте России и СНГ | б) в стандарте DIN (страны ЕС) | в) в стандарте ANSI (США и Канада) |
Таблица истинности:
Вход X | Выход Y |
0 | 1 |
1 | 0 |
Булева функция:
2. Конъюнктор. Логическое И (AND).
Обозначение логического элемента:
а) в стандарте России | б) в стандарте DIN | в) в стандарте ANSI |
[1] Дж. Буль (1815–1864) – английский математик и логик, им заложены основы математической логики. Выражение «булева функция» часто используется как синоним выражения «логическая функция».
Таблица истинности:
Вход X1 | Вход X2 | Выход Y |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Булева функция:
3. Конъюнктор с инверсией. Логическое И-НЕ (NAND).
Обозначение логического элемента:
а) в стандарте России | б) в стандарте DIN | в) в стандарте ANSI |
Таблица истинности:
Вход X1 | Вход X2 | Выход Y |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Булева функция:
4. Дизъюнктор. Логическое ИЛИ (OR).
Обозначение логического элемента:
а) в стандарте России | б) в стандарте DIN | в) в стандарте ANSI |
Таблица истинности:
Вход X1 | Вход X2 | Выход Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Булева функция: .
5.
Дизъюнктор с инверсией. Логическое ИЛИ-НЕ (NOR).
Обозначение логического элемента:
а) в стандарте России | б) в стандарте DIN | в) в стандарте ANSI |
Таблица истинности:
Вход X1 | Вход X2 | Выход Y |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
Булева функция:
6. Исключающее ИЛИ (ХOR).
Обозначение логического элемента:
а) в стандарте России | б) в стандарте DIN | в) в стандарте ANSI |
Таблица истинности:
Вход X1 | Вход X2 | Выход Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Булева функция:
6. Исключающее ИЛИ с инверсией (ХNOR).
Обозначение логического элемента:
а) в стандарте России | б) в стандарте DIN | в) в стандарте ANSI |
Таблица истинности:
Вход X1 | Вход X2 | Выход Y |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Булева функция:
§ 2., *,` по аналогии с алгебраическим умножением может никак не обозначаться
Дизъюнкция, нестрогая дизъюнкция, логическое сложение, операция ИЛИ, операция OR.
`|«, vv, +`
Строгая дизъюнкция, разделительная дизъюнкция, исключающее ИЛИ, сложение по модулю `2`.
`o+, Delta`
Эквивалентность, эквиваленция, равенство, равнозначность.
`iff, -=`
Импликация, следование, следствие
`=>, ->`
Теперь для того чтобы строго определить эти логические операции, нам нужно для каждой из них выписать таблицу истинности. Все перечисленные операции кроме отрицания имеют два операнда. Знак операции в выражениях пишется между операндами (как в алгебре чисел). Операция отрицания имеет один операнд и в выражениях записывается либо в виде черты над операндом, либо в виде символа «приставка» слева от операнда.
Для того, чтобы не путаться и гарантированно перебрать все возможные комбинации значений операндов, принято записывать их в лексикографическом порядке (условно считается, что «ложь» `<` «истина»).
Таблица истинности для конъюнкции
Первый операнд |
Второй операнд |
Значение операции |
`0` |
`0` |
`bb0` |
`0` |
`1` |
`bb0` |
`1` |
`0` |
`bb0` |
`1` |
`1` |
`bb1` |
Таблица истинности для дизъюнкции
Первый операнд |
Второй операнд |
Значение операции |
`0` |
`0` |
`bb0` |
`0` |
`1` |
`bb1` |
`1` |
`0` |
`bb1` |
`1` |
`1` |
`bb1` |
Таблица истинности для строгой дизъюнкции
Первый операнд |
Второй операнд |
Значение операции |
`0` |
`0` |
`bb0` |
`0` |
`1` |
`bb1` |
`1` |
`0` |
`bb1` |
`1` |
`1` |
`bb0` |
Таблица истинности для эквивалентности
Первый операнд |
Второй операнд |
Значение операции |
`0` |
`0` |
`bb1` |
`0` |
`1` |
`bb0` |
`1` |
`0` |
`bb0` |
`1` |
`1` |
`bb1` |
Таблица истинности для импликации
Первый операнд |
Второй операнд |
Значение операции |
`0` |
`0` |
`bb1` |
`0` |
`1` |
`bb1` |
`1` |
`0` |
`bb0` |
`1` |
`1` |
`bb1` |
Таблица истинности для отрицания
Значение операнда |
Значение операции |
`0` |
`bb1` |
`1` |
`bb0` |
Теперь осталось лишь установить соответствие между логическими операциями и логическими связками в русском языке.
Логическая операция |
Логические связки в русском языке |
Отрицание |
Неверно что… |
Конъюнкция |
и, а, но, а также, при этом, одновременно с этим, хотя |
Дизъюнкция |
Или |
Строгая дизъюнкция |
или, либо |
Эквивалентность |
Тогда и только тогда когда, необходимо и достаточно чтобы |
Импликация |
если то, необходимо чтобы, достаточно чтобы |
Обратите внимание, что союз ИЛИ может означать, как строгую, так и нестрогую дизъюнкцию. Его интерпретация зависит от содержания (!!!) высказывания.
Рассмотрим высказывание: «Мы идём в кино в субботу или в воскресение». Здесь два простых высказывания: «Мы идём в кино в субботу» и «Мы идём в кино в воскресение». Между ними стоит союз ИЛИ, который можно интерпретировать двояко. В данном случае очевидно, что мы можем пойти в кино и в субботу, и в воскресение, поэтому дизъюнкция будет нестрогая. Возьмём две логические переменные – `p` и `q` и присвоим им простые высказывания. Тогда исходное высказывание в формализованном виде будет выглядеть, как `bb(pvvq)`.
Рассмотрим высказывание: «Я сейчас на севере Москвы или на юго-западе Москвы». Здесь тоже два простых высказывания, которые связаны союзом ИЛИ. Но в этом случае союз ИЛИ интерпретируется, как строгая дизъюнкция, поскольку нельзя одновременно находиться в двух местах. Таким образом, если снова взять логические переменные `p` и `q`, то получится следующая логическая формула: `bb(p»o+q)`.
Рассмотрим высказывание: «Для того чтобы четырёхугольник был квадратом, необходимо, чтобы все его стороны были равны». Здесь два простых высказывания: «Четырёхугольник является квадратом» и «Все стороны четырёхугольника равны». Присвоим их соответственно логическим переменным `p` и `q`. Логическая связка «необходимо, чтобы» — это импликация. Весь вопрос в том, что из чего следует. (Какая запись правильная: `bbp -> bbq` или `bbq ->bbp`?) Импликация ложна только в единственном случае: когда левый операнд имеет значение «истина», а правый – «ложь». Рассмотрим все возможные значения операндов и проанализируем, какая из ситуаций невозможна.
1) `p` и `q` ложны. Это значит, что четырёхугольник не является квадратом и его стороны не равны. Это возможная ситуация.
2) `p` – ложно, `q` – истинно. Это значит, что четырёхугольник не является квадратом, но стороны у него равны. Это возможно (ромб).
3) `p` – истинно, `q` – истинно. Это значит, что четырёхугольник является квадратом и стороны у него равны. Это возможная ситуация.
4) `p` – истинно, `q` – ложно. Это значит, что четырёхугольник является квадратом, но стороны у него не равны. Это невозможная ситуация.
Анализ ситуаций показывает, что левым операндом импликации должна быть переменная `p`. Таким образом, в формализованном виде исходное высказывание выглядит как `bb(p -> q)`.
Очень часто вместо «присвоим логическим переменным эти высказывания» говорят «обозначим высказывания следующим образом». В дальнейшем мы тоже будем использовать этот речевой оборот.
Логика и обозначение множеств
Теория множеств — это раздел математической логики. Поэтому естественно, что для описания множеств используются логический язык и символы. В этом разделе мы рассмотрим основные логические символы и способы определения множеств.
Логика высказываний
Предложение — это декларативное утверждение, которое либо истинно, либо ложно. Если предложение истинно, то мы говорим, что оно имеет истинностное значение true. Соответственно, если предложение ложно, его истинностное значение ложно.2} \) также четное.
Примеры ложных предложений:
- Электрон тяжелее протона;
- \ (1 + 2 \ gt 3; \)
- \ (6 \) — простое число.
Не все предложения являются предложениями:
- \ (x \ gt 5 \) (Это может быть истина или ложь в зависимости от \ (x \))
- Идёт дождь? (Это вопрос, а не декларативное предложение)
- Картины Мондриана слишком абстрактны. (Что абстрактного и слишком абстрактного?)
Для обозначения предложений мы обозначаем их буквами.Наиболее распространенные буквы: \ (p, \) \ (q, \) \ (r, \) \ (s, \) \ (t. \)
Используя логические операторы или связки, мы можем строить сложные предложения.
Логические операторы и таблицы истинности
Пусть \ (p \) и \ (q \) — два предложения. Каждое из этих утверждений может принимать два значения — истина (\ (T \)) и ложь (\ (F \)). Итак, есть \ (4 \) пары входных значений: \ (TT, \) \ (TF, \) \ (FT, \) и \ (FF. \)
Предположим, что новое предложение \ (r \) составлено из \ (p \) и \ (q.4 = 16 \) возможных выходных комбинаций (функций истинности) для \ (2 \) двоичных входных переменных. Каждая из этих комбинаций представлена определенным логическим оператором.
Далее мы рассмотрим наиболее важные операторы.
Отрицание
Отрицание — унарный логический оператор. Если \ (p \) — предложение, то отрицание \ (p \) называется not \ (p \) и обозначается \ (\ lnot p. \)
.Для представления значения логического выражения удобно использовать таблицу истинности.Каждая строка таблицы содержит одну возможную конфигурацию входных переменных и значений истинности выходных предложений.
В случае оператора отрицания таблица истинности очень проста:
Как видите, оператор логического отрицания меняет значение истинности входного предложения.
Пример 1:
\ (п: \) | Трапеция четырехугольник (истинный) |
\ (\ lnot p: \) | Трапеция не четырехугольник (ложный) |
Пример 2:
\ (п: \) | \ (2 \) — простое число (правда) |
\ (\ lnot p: \) | \ (2 \) не является простым числом (ложь) |
Рассмотрим теперь несколько бинарных операторов.
Соединение
Если \ (p \) и \ (q \) — два предложения, то их соединение означает \ (p \) и \ (q \) и обозначается \ (p \ land q. \)
Конъюнкция \ (p \ land q \) истинна только тогда, когда оба \ (p \) и \ (q \) истинны. В противном случае это ложь. Таким образом, таблица истинности конъюнкции выглядит следующим образом:
Пример 1:
\ (п: \) | Соединенное Королевство является членом Европейского Союза (неверно) |
\ (q: \) | Ирландия является членом Европейского Союза (правда) |
\ (п \ земля q: \) | Соединенное Королевство и Ирландия являются членами Европейского Союза (неверно) |
Пример 2:
\ (п: \) | \ (3 \) простое (истинное) |
\ (q: \) | \ (3 \) нечетное (правда) |
\ (п \ земля q: \) | \ (3 \) простое и нечетное (истинное) |
Дизъюнкция
Если \ (p \) и \ (q \) — два предложения, то их дизъюнкция означает \ (p \) или \ (q \) и обозначается \ (p \ lor q.\)
Дизъюнкция \ (p \ lor q \) истинна, когда либо \ (p \) истинно, \ (q \) истинно, либо оба истинны. Это неверно, если оба \ (p \) и \ (q \) ложны.
Таблица истинности дизъюнкции:
Пример 1:
\ (п: \) | Протон имеет отрицательный заряд (ложно) |
\ (q: \) | Нейтрон имеет отрицательный заряд (ложный) |
\ (p \ lor q: \) | Протон или нейтрон имеют отрицательный заряд (ложный) |
Пример 2:
\ (п: \) | \ (\ frac {2} {3} \) — рациональное число (верно) |
\ (q: \) | \ (\ frac {\ sqrt {2}} {5} \) — рациональное число (ложно) |
\ (p \ lor q: \) | Либо \ (\ frac {2} {3} \), либо \ (\ frac {\ sqrt {2}} {5} \), либо оба числа являются рациональными (истинными) |
Материал условный
Материальное условие для \ (p \) и \ (q \) означает утверждение, если \ (p \), то \ (q \), и обозначается как \ (p \ to q.\) Этот логический оператор также называется условным оператором.
Если \ (p \) истинно, то условное выражение \ (p \ to q \) принимает значение истинности \ (q. \). Если \ (p \) ложно, то условное выражение \ (p \ to q \) по умолчанию считается истинным.
Вот таблица истинности условного оператора:
Условное выражение \ (p \ to q \) может быть выражено разными предложениями, некоторые из них перечислены ниже:
- \ (p \) означает \ (q \)
- \ (p \) является достаточным условием для \ (q \)
- \ (q \) — необходимое условие для \ (p \)
- \ (q \) следует из \ (p \)
- \ (p \), только если \ (q \)
Пример:
\ (п: \) | \ (x \) делится на \ (2 \) и \ (3 \) |
\ (q: \) | \ (x \) делится на \ (6 \) |
\ (от p \ к q: \) | Если \ (x \) делится на \ (2 \) и \ (3, \), то \ (x \) делится на \ (6.\) |
\ (х = 12: \) | \ (p \) верно, \ (q \) верно и \ (p \ to q \) верно. |
\ (х = 13: \) | \ (p \) ложно, \ (q \) ложно, а \ (p \ to q \) верно. |
Специальные условные предложения
- Обратным к \ (p \ к q \) является предложение \ (q \ to p \)
- Противоположностью \ (p \ to q \) является предложение \ (\ neg q \ to \ neg p \)
- Обратным к \ (p \ to q \) является предложение \ (\ neg p \ to \ neg q \)
Если утверждение \ (p \ to q \) верно, то верно и противоположное.Если верно обратное, то верно и обратное.
Специальные условные операторы определяются следующей таблицей истинности:
Пример:
Выражение \ (p \) |
Четырехугольник — это прямоугольник (ложь) |
Выражение \ (q \) |
Сумма внутренних углов четырехугольника равна \ (360 \) градусов (правда). |
Условное выражение \ (p \ to q \) |
Если четырехугольник является прямоугольником, то сумма его внутренних углов равна \ (360 \) градусам (истинно). |
Преобразование \ (p \ to q: \) \ (q \ to p \) |
Если сумма внутренних углов четырехугольника равна \ (360 \) градусов, то это прямоугольник ( ложный). |
Обратно \ (p \ to q: \) \ (\ neg p \ to \ neg q \) |
Если четырехугольник не является прямоугольником, то сумма его внутренних углов не равна \ (360 \) градусов (ложь). |
Противоположность \ (p \ to q: \) \ (\ neg q \ to \ neg p \) |
Если сумма внутренних углов четырехугольника не равна \ (360 \) градусам, то это не прямоугольник (правда). |
Материал Biconditional
Материальное биконусное или логическое биконусное выражение \ (p \) и \ (q \) означает утверждение \ (p \) тогда и только тогда, когда \ (q \) и обозначается \ (p \ leftrightarrow q. \)
Двухусловный оператор имеет то же значение истинности, что и составной логический оператор \ (\ left ({p \ to q} \ right) \ land \ left ({q \ to p} \ right), \), что означает \ (p \) влечет \ (q \), а \ (q \) влечет \ (p. \)
Таблица истинности для двусмысленного утверждения имеет вид
Пример 1:
\ (п: \) | Три вектора компланарны (истинно) |
\ (q: \) | Скалярное тройное произведение трех векторов равно нулю (истина) |
\ (p \ leftrightarrow q: \) | Три вектора компланарны тогда и только тогда, когда их тройное скалярное произведение равно нулю (истина) |
Пример 2:
\ (п: \) | Теннисный матч будет проводиться на открытом воздухе (ложь) |
\ (q: \) | Идёт дождь (правда) |
\ (p \ leftrightarrow q: \) | Теннисный матч будет проводиться на открытом воздухе только в том случае, если идет дождь (неверно) |
Логическая эквивалентность
Утверждения \ (p \) и \ (q \) называются логически эквивалентными, если они имеют одинаковые таблицы истинности.Логическая эквивалентность \ (p \) и \ (q \) обозначается как \ (p \ Equiv q, \) или иногда как \ (\ Leftrightarrow \) в зависимости от используемых обозначений.
Предикаты и квантификаторы
До сих пор мы рассматривали предложения, которые определяются как утверждения, которые могут быть как истинными, так и ложными.
Чтобы расширить простую логику высказываний, мы вводим понятие предиката.
Предикат — это логический оператор, содержащий одну или несколько переменных или параметров.Предикаты обозначаются заглавной буквой, а переменные указываются в качестве аргументов, например \ (P \ left (x \ right) \) или \ (Q \ left ({x, y} \ right). \) Значение истинности предикат зависит от значений его переменных.
Пример 1:
Предикат \ (P \ left (x \ right) \) | |
\ (P \ left (x \ right): \) \ (x \) — это планета | |
\ (x \ ) = Венера | Истинное предположение |
\ (P \ left (\ text {Venus} \ right): \) Венера — планета | |
\ (x \) = Антарес | Ложное утверждение |
\ (P \ left (\ text {Antares} \ right): \) Антарес — это планета |
Пример 2:
Предикат \ (Q \ left ({x, y} \ right) \) | |
\ (Q \ left ({x, y} \ right): {x ^ 2} + {y ^ 2 } \ le 4 \) | |
\ (x = 1, y = -1 \) | Истинное предложение |
\ (Q \ left ({1, -1} \ right): {1 ^ 2 } + {\ left ({- 1} \ right) ^ 2} \ le 4 \) | |
\ (x = 1, y = 2 \) | Ложное утверждение |
\ (Q \ left ( {1,2} \ right): {1 ^ 2} + {2 ^ 2} \ le 4 \) |
Подобно суждениям, предикат принимает два значения — истина или ложь.Следовательно, к ним применимы все операции логической алгебры. Используя операторы \ (\ neg, \ land, \ lor, \ rightarrow, \) и \ (\ leftrightarrow, \), мы можем формировать более сложные предикаты.
Существует также дополнительная операция, определенная для предикатов и называемая квантификацией. Количественная оценка позволяет нам указать степень достоверности предиката, то есть диапазон значений переменных, для которых этот предикат должен выполняться.
В логике предикатов есть два типа кванторов — универсальный квантор и квантор существования.
Универсальный квантификатор
Универсальный квантификатор используется для выражения предложений такими словами, как все или каждый. Он обозначается символом \ (\ forall. \). Обозначение \ (\ forall x P \ left ({x} \ right) \) означает «для каждого значения \ (x \) в определенной области предикат \ (P \ left ({x} \ right) \) верно «. Область называется универсумом дискурса или областью дискурса.
Экзистенциальный квантификатор
Квантификатор существования используется для выражения предложений такими словами, как «некоторая» или «есть».Он обозначается символом \ (\ существует. \) Обозначение \ (\ exists x P \ left ({x} \ right) \) означает, что «существует некоторое значение \ (x \) такое, что \ (P \ left ({x} \ right) \) верно «.
Предикаты, логические операторы и кванторы — это мощный набор инструментов для описания математических объектов и моделирования реального мира.
Обозначение конструктора множеств
Нотация построителя множеств используется для определения набора объектов с помощью предиката. Обычная нотация включает части \ (3 \): переменную \ (x, \), разделитель двоеточия или вертикальной черты и логический предикат \ (P \ left ({x} \ right): \)
\ [S = \ left \ {{x | P \ left (x \ right)} \ right \}, \]
где \ (S \) обозначает множество объектов.
Единственная переменная \ (x \) может быть заменена термином, который может включать одну или несколько переменных в сочетании с функциями, действующими на них. Предикат \ ({P \ left (x \ right)} \) может быть представлен сложной логической формулой.
Некоторые другие определения и обозначения
\ (\ {\; \} \) | — это набор |
\ (x \ дюйм S \) | \ (x \) является элементом или членом \ (S \) |
\ (x \ notin S \) | \ (x \) не является элементом \ (S \) |
\ (S \ Subteq T \) | \ (S \) является подмножеством \ (T \) |
\ (S = T \) | эквивалентно \ (\ left ({S \ substeq T} \ right) \ land \ left ({T \ substeq S} \ right) \) |
\ (S \ подмножество T \) | \ (S \) является собственным подмножеством \ (T.\) Это означает \ (\ left ({S \ substeq T} \ right) \ land \ left ({T \ ne S} \ right) \) |
\ (\ varnothing \) | пустой набор |
См. Решенные проблемы на странице 2.
Полный список логических символов
В философии и математике логика играет ключевую роль в формализации правильных дедуктивных выводов и других форм рассуждений. Ниже приводится исчерпывающий список наиболее известных символов в логике, включающий символы из логики высказываний, логики предикатов, булевой логики и модальной логики.
Для удобства чтения эти символы сгруппированы по их функциям в таблицах . Другие исчерпывающие списки символов, сгруппированные по теме и типу, также можно найти на соответствующих страницах ниже (или на панели навигации).
Предпочитаете версию в формате PDF?
Получите общее резюме математических символов в электронной книге формы — вместе с использованием каждого символа и кодом LaTeX.
Константы
В логике константы часто используются для обозначения определенных объектов в логической системе.В следующей таблице представлены наиболее известные из них, а также их соответствующие примеры и значения.
Переменные
Подобно другим областям математики, переменных используются в качестве символов-заполнителей для различных логических объектов. В следующей таблице приведены наиболее известные из них, а также их соответствующие примеры и значения.
Название символа | Пояснение | Пример |
---|---|---|
$ x, y, w, z $ | Переменные количественного определения | $ x_1 + x_2 = y $ |
$ \ mathbf {x}, \ mathbf {y}, \ mathbf {w}, \ mathbf {z} $ | Метапеременные для количественных переменных | Для всех переменных $ \ mathbf {x} _1 $ и $ \ mathbf {x} _2 $, ‘$ \ mathbf {x} _1 = \ mathbf {x} _2 $’ — формула. |
$ f, g, h $ | Функциональные символы | $ h \ left (f_1 (x), g (x, y) \ right) $ |
$ \ mathbf {s}, \ mathbf {t} $ | Метапеременные для терминов | Для всех терминов $ \ mathbf {t} _1 $ и $ \ mathbf {t} _2 $, ‘$ f (\ mathbf {t} _1, \ mathbf { t} _2) $ ‘- это термин. |
$ P, Q, R $ | Пропозициональные / Предикатные символы | $ P (x, a) \ land Q_1 (z) $ |
$ \ alpha, \ beta, \ gamma , \ phi, \ psi $ | Метапеременные для формул | Для всех формул $ \ alpha $ и $ \ beta $, $ \ alpha \ land \ beta \ Equiv \ beta \ land \ alpha $. |
$ \ Sigma, \ Phi, \ Psi $ | Метапеременные для набора предложений | Если $ \ Sigma $ несовместим, то $ \ Sigma \ cup \ Phi $ тоже. |
$ \ mathcal {L} $ | Метапеременная для формальных языков | Если $ \ mathcal {L} $ — язык с равенством и константой $ a $, то ‘$ a = a $’ будет формула в $ \ mathcal {L} $. |
Операторы
Операторы — это символы, используемые для обозначения математических операций, которые служат для преобразования одного или нескольких входов в аналогичный выход.В логике эти операторы включают логические связки из пропозициональной / модальной логики, кванторы из логики предикатов, а также другие операторы, связанные с синтаксической заменой и семантической оценкой.
Унарные логические связки
Имя символа | Пояснение | Пример |
---|---|---|
$ \ lnot P $, $ \ sim \! \! P $, $ \ overline {P} $ | Отрицание $ P $ (не $ P $) | $ \ lnot \ lnot P \ Equiv P $ |
$ \ Diamond P $ | Возможно $ P $ | Если $ \ Diamond P $ , то $ \ Diamond \ Diamond P $. |
$ \ Box P $ | Обязательно $ P $ | Если $ \ Box P $, то $ \ neg \ Diamond \ neg P $. |
Двоичные логические связки
Название символа | Пояснение | Пример |
---|---|---|
$ P \ land Q $ | Соединение (P $ и $ Q $) | $ P \ land P \ эквив P $ |
$ P \ lor Q $ | Дизъюнкция ($ P $ или $ Q $) | $ \ neg (P \ lor Q) \ эквив $ $ \ neg P \ land \ neg Q $ |
$ P \ veebar Q $, $ P \ oplus Q $ | Исключительная дизъюнкция ($ P $ xor $ Q $) | $ P \ oplus Q \ Equiv $ $ (P \ lor Q) \ land \ neg (P \ land Q) $ |
$ P \ uparrow Q $ | Отрицание конъюнкции ($ P $ nand $ Q $) | $ P \ uparrow Q \ Equiv \ neg (P \ land Q) $ |
$ P \ downarrow Q $ | Отрицание дизъюнкции ($ P $ или $ Q $) | $ P \ downarrow Q \ Equiv \\ (\ neg P \ land \ neg Q ) $ |
$ P \ to Q $ | Условное (Если $ P $, то $ Q $) | Для всех $ P $, $ P \ to P $ является тавтологией. |
$ P \ not \ to Q $ | Безусловный (Not ‘if $ P $, then $ Q $’) | $ P \ not \ to Q \ Equiv P \ land \ neg Q $ |
$ P \ leftarrow Q $ | Условное преобразование (Если $ Q $, то $ P $) | $ Q \ leftarrow (P \ land Q) $ |
$ P \ not \ leftarrow Q $ | Converse безусловный (Not ‘if $ Q $, then $ P $’) | $ (P \ to Q) \ land \\ (P \ not \ leftarrow Q) $ |
$ P \ leftrightarrow Q $ | Двуусловный ($ P $ тогда и только тогда, когда $ Q $) | $ P \ leftrightarrow Q \ Equiv $ $ (P \ to Q) \ land (P \ leftarrow Q) $ |
$ P \ not \ leftrightarrow Q $ | Безусловный (Не ‘$ P $, если и только если $ Q $’) | Если $ P \ not \ to Q $, то $ P \ not \ leftrightarrow Q $.2) $ |
$ \ существует! \ mathbf {x} $ | Количественная оценка уникальности (Существует уникальный $ \ mathbf {x} $) | $ \ exists! \, q, r \ in \ mathbb {Z} \, $ $ ( n = dq + r \, \ land $ $ 0 \ le | r | |
$ \ mathrm {N} \ mathbf {x} $, $ \ nexists \ mathbf {x} $ | Количественная оценка отсутствия ($ \ mathbf {x} $ не существует) | $ \ mathrm {N} x P (x) \ Equiv \\ \ forall x \, \ neg P (x) $ |
$ \ exists_n \ mathbf {x} $ | Числовое определение (Есть ровно $ n $ $ \ mathbf {x} $) | $ \ exists_3 x \ in \ mathbb {Z} \, (5 < x <9) $ |
$ \ exists _ {\ ge n} \ mathbf {x} $ | Числовое определение (Есть не менее $ n $ $ \ mathbf {x} $) | $ \ существует _ {\ ge 2} x \, Q (x) \ Equiv $ $ \ exists x \ exists y \, (Q (x) \ land $ $ Q (y) \ land x \ ne y) $ |
$ \ exists _ {\ le n} \ mathbf {x} $ | Численное определение 9 0550 (Максимум $ n $ $ \ mathbf {x} $) | $ \ exists _ {\ le 10} x \, (x ^ 2 \ le 100) \ Equiv $ $ \ neg \ left (\ существует _ {\ ge 11} x \, (x ^ 2 \ le 100) \ right) $ |
Операторы на основе подстановки
Имя символа | Пояснение | Пример |
---|---|---|
$ \ mathbf {t} [\ mathbf {x} / \ mathbf {t} _0] $ | Замещенный термин (термин $ \ mathbf {t} $ с вхождениями $ \ mathbf {x} $ заменен на $ \ mathbf {t} _0 $) | $ (x ^ 2 + y) [x / 1] [y / 5] = $ 1 ^ 2 + 5 $ |
$ \ mathbf {\ alpha} [\ mathbf {x} / \ mathbf {t_0}] $ | Замещенная формула (формула $ \ mathbf {\ alpha} $ с свободными вхождениями $ \ mathbf {x} $ заменена термином $ \ mathbf {t_0} $) | $ (\ forall x (x = y)) [x / a] = $ $ \ forall x (x = y) $ |
Операторы на основе оценки
Название символа | Пояснение ation | Пример |
---|---|---|
$ \ mathbf {t} ^ {\ sigma} $ | Референт термина $ \ mathbf {t} $ при оценке $ \ sigma $ | $ \ left (f ( a, b) \ right) ^ {\ sigma} = $ $ \ mathrm {отец} (\ mathrm {Al}, \ mathrm {Bob}) $ |
$ \ alpha ^ {\ sigma} $ | Истинное значение формулы $ \ alpha $ при оценке $ \ sigma $ | Если $ P ^ {\ sigma} $ — симметричное отношение, то $ \ left (P (x, y) \ right) ^ {\ sigma } = \\ \ left (P (y, x) \ right) ^ {\ sigma} $ |
$ \ sigma (\ mathbf {x} / u) $ | Переоценка $ \ sigma $, где переменная $ \ mathbf {x} $ переоценивается как $ u $ | $ (\ forall x \, \ alpha) ^ {\ sigma} = \ top $ тогда и только тогда, когда для всех $ u $ во вселенной дискурса $ U $, $ \ alpha ^ {\ sigma (x / u)} = \ top $. |
Реляционные символы
В логике реляционных символов играют ключевую роль в превращении одной или нескольких математических сущностей в формулы и предложения и могут встречаться как внутри логической системы, так и вне ее (как металогические символы). В следующей таблице приведены наиболее известные из этих символов, а также их соответствующие значения и примеры.
Имя символа | Пояснение | Пример |
---|---|---|
$ \ mathbf {t} _1 = \ mathbf {t} _2 $ | Идентификационный символ в логической системе с равенством | ‘$ \ neg \ left (1 = s (1) \ right) $ ‘- формула на языке арифметики первого порядка. |
$ \ alpha \! \ подразумевает \! \ beta $ | Предложение $ \ alpha $ подразумевает предложение $ \ beta $ | $ \ forall x \, (x \ ge 1) \! \ подразумевает 1 \ ge 1 $ |
$ \ alpha \! \ impliedby \! \ beta $ | Предложение $ \ alpha $ — это , подразумеваемое предложением $ \ beta $ | $ 5 \ mid x \! \ impliedby \! 5 \ mid 7x $ |
$ \ alpha \ Equiv \ beta $, $ \ alpha \ Leftrightarrow \ beta $, $ \ alpha \! \ iff \! \ beta $ | Предложения $ \ alpha $ и $ \ beta $ логически эквивалентны | $ \ neg (P \ to Q) \ Equiv \\ P \ land \ neg Q $ |
$ \ sigma \ models \ alpha $ | Оценка $ \ sigma $ удовлетворяет формуле $ \ alpha $ | Если $ \ phi ^ {\ sigma} = \ top $, то $ \ sigma \ models \ phi $. |
$ \ Phi \ models \ phi $ | Набор предложений $ \ Phi $ влечет за собой предложений $ \ phi $ ($ \ phi $ является логическим следствием $ \ Phi $) | If $ \ Phi \ models \ phi $, затем $ \ Phi \ cup \ Psi \ models \ phi $. |
$ \ Phi \ nvDash \ phi $ | Набор предложений $ \ Phi $ не влечет за собой предложений $ \ phi $ | $ \ {P \ to Q, Q \ to R \} \ nvDash R $ |
$ \ models \ phi $ | Предложение $ \ phi $ — тавтология | $ \ models \ forall x \, (x = x) $ |
$ \ Phi \ vdash \ phi $ | Набор предложений $ \ Phi $ доказывает предложений $ \ phi $ | $ \ forall x \, P (x, a) \ vdash \\ P (a, a) $ |
$ \ Phi \ nvdash \ phi $ | Набор предложений $ \ Phi $ не доказывает предложение $ \ phi $ | $ \ exists x \, R (x) \ nvdash R (a) $ |
$ \ vdash \ phi $ | Предложение $ \ phi $ является теоремой | $ \ vdash \ forall x \ forall y \, (x = y \ to $ $ y = x) $ |
$ \ phi \ потому что \ Phi $ | $ \ phi $, потому что $ \ Phi $ | $ A = 95 ^ {\ circ} \ потому что $ $ A + B = 180 ^ {\ circ}, $ $ B = 85 ^ {\ circ} $ |
$ \ Phi \ поэтому \ phi $ | $ \ Phi $, следовательно $ \ phi $ | $ P \ lor Q, \ neg P \\ \ поэтому Q $ |
Для основного списка символов см. математические символы.Списки символов по категориям тип и предмету см. На соответствующих страницах ниже.
Предпочитаете версию в формате PDF?
Получите общее резюме математических символов в электронной книге формы — вместе с использованием каждого символа и кодом LaTeX.
Дополнительные ресурсы
2. «Если… то…» и «Дело не в том, что…» — Краткое введение в логику
2.1 Условное
Как мы отметили в главе 1, есть предложения естественного языка, такого как английский, которые не являются атомарными предложениями.Наши примеры включают
Если Линкольн победит на выборах, то Линкольн станет президентом.
Земля не является центром Вселенной.
Мы можем рассматривать их как атомарные предложения, но тогда мы потеряем много важной информации. Например, первое предложение говорит нам кое-что о взаимосвязи между элементарными предложениями «Линкольн побеждает на выборах» и «Линкольн будет президентом». И второе предложение выше, как можно предположить, будет иметь интересную связь с предложением «Земля — центр Вселенной».Чтобы сделать эти отношения явными, нам нужно будет понять, что означают «если… то…» и «не». Таким образом, было бы полезно, если бы наш логический язык мог выражать такие предложения таким образом, чтобы эти элементы были явными. Начнем с первого.
Предложение «Если Линкольн победит на выборах, то Линкольн будет президентом» содержит два элементарных предложения: «Линкольн победит на выборах» и «Линкольн будет президентом». Таким образом, мы могли бы представить это предложение, позволив
Линкольн побеждает на выборах
будет представлено на нашем логическом языке как
-П
А давая
Линкольн станет президентом
будет представлено
квартал
Тогда все выражение можно представить в виде
Если P, то Q
Однако было бы полезно заменить английскую фразу «if… then…» одним символом на нашем языке.Наиболее часто используемый такой символ — «→». Таким образом, мы бы написали
P → Q
Однако следует отметить еще одну вещь. Возможно, мы захотим объединить это сложное предложение с другими предложениями. В этом случае нам нужен способ определить, что это одно предложение, когда оно сочетается с другими предложениями. Есть несколько способов сделать это, но наиболее знакомый (хотя и не самый элегантный) — использовать круглые скобки. Таким образом, запишем наше выражение
(P → Q)
Этот вид приговора называется «условным».Его также иногда называют «материальным условием». Первое составное предложение (предложение перед стрелкой, которое в этом примере — «P») называется «антецедентом». Второе предложение (то, которое стоит после стрелки, в этом примере — «Q») называется «консеквент».
Мы умеем писать условные выражения, но что они означают? Как и раньше, мы примем значение, которое придают условия истинности, то есть описание того, когда предложение является истинным или ложным. Мы делаем это с помощью таблицы истинности.Но теперь наше предложение состоит из двух частей, которые являются атомарными предложениями, P и Q. Обратите внимание, что любое атомарное предложение может быть истинным или ложным. Это означает, что мы должны рассмотреть четыре возможных типа ситуаций. Мы должны учитывать, когда P истинно, а когда ложно, но тогда нам нужно рассмотреть эти два типа ситуаций дважды: один раз, когда Q истинно, и один раз, когда Q ложно. Таким образом, левая часть нашей таблицы истинности будет выглядеть так:
п. | Q | |
т | т | |
т | Ф. | |
Ф | т | |
Ф | Ф. |
Мы должны рассмотреть четыре возможных варианта развития мира.
Обратите внимание, что, поскольку существует два возможных значения истинности (истина и ложь), всякий раз, когда мы рассматриваем другое атомарное предложение, существует вдвое больше способов, которыми может быть мир, которые мы должны рассмотреть. Таким образом, для n атомарных предложений наша таблица истинности должна иметь 2n строк. В случае условного выражения, сформированного из двух элементарных предложений, как в нашем примере (P → Q), наша таблица истинности будет иметь 22 строки, что составляет 4 строки. Мы видим, что это именно так.
Теперь мы должны решить, что означает условие.В какой-то степени это зависит от нас. Важно то, что, как только мы определим семантику условного оператора, мы будем придерживаться нашего определения. Но мы хотим уловить как можно больше смысла английского «if… then…», оставаясь при этом абсолютно точными в нашем языке.
Давайте рассмотрим все, чем может быть мир. Для первой строки таблицы истинности мы имеем, что P истинно, а Q истинно. Предположим, мир таков, что Линкольн побеждает на выборах, а также Линкольн будет президентом.Тогда, сказал бы я правду, если бы сказал: «Если Линкольн победит на выборах, то Линкольн станет президентом»? Большинство людей согласны с этим. Точно так же предположим, что Линкольн победит на выборах, но Линкольн не будет президентом. Будет ли верным предложение «Если Линкольн победит на выборах, то Линкольн станет президентом»? Большинство согласны с тем, что сейчас это было бы ложью. Итак, первые строки нашей таблицы истинности бесспорны.
п | Q | (P → Q) |
---|---|---|
т | т | Т |
т | F | F |
Ф | т | |
Ф | F |
Однако некоторым студентам трудно определить, какие значения истинности должны быть в следующих двух строках.Обратите внимание, что наш принцип двухвалентности требует, чтобы мы заполняли эти строки. Мы не можем оставить их пустыми. Если бы мы это сделали, мы бы сказали, что иногда условное выражение не может иметь истинного значения; то есть мы могли бы сказать, что иногда некоторые предложения не имеют значения истинности. Но наш принцип двухвалентности требует, чтобы во всех ситуациях каждое предложение было либо истинным, либо ложным, но никогда и тем и другим, никогда ни тем и другим. Итак, если мы собираемся соблюдать принцип двухвалентности, тогда мы должны указать либо T, либо F для каждой из последних двух строк.
Здесь полезно изменить наш пример. Давайте рассмотрим два разных примера, чтобы проиллюстрировать, как лучше всего заполнить оставшуюся часть таблицы истинности для условного выражения.
Сначала предположим, что я говорю вам следующее: «Если вы дадите мне 50 долларов, я куплю вам билет на концерт сегодня вечером». Пусть
Ты даешь мне 50 долларов
будет представлено в нашей логике
R
и пусть
Я куплю тебе билет на концерт сегодня вечером.
будет представлено
S
Тогда наше предложение —
(R → S)
И его таблица истинности — насколько мы сейчас понимаем — это:
R | S | (R → S) |
---|---|---|
т | т | Т |
т | F | F |
Ф | т | |
Ф | F |
То есть, если вы дадите мне деньги, и я куплю вам билет, мое утверждение, что «Если вы дадите мне 50 долларов, я куплю вам билет на концерт сегодня вечером», верно.И, если вы дадите мне деньги, а я не куплю вам билет, я солгал, и мое заявление не соответствует действительности. А теперь предположим, что вы не дадите мне 50 долларов, а я куплю вам билет на концерт в подарок. Было ли мое заявление ложным? Нет. Я просто купил тебе билет в подарок, но, по-видимому, купил бы его, если бы ты дал мне деньги. Точно так же, если вы не дадите мне денег, и я не куплю вам билет, это полностью согласуется с моим утверждением.
Итак, лучший способ заполнить таблицу истинности следующий.
R | S | (R → S) |
---|---|---|
т | т | Т |
т | F | F |
Ф | т | Т |
Ф | F | Т |
Во-вторых, рассмотрим другое предложение, которое имеет то преимущество, что оно очень четкое по отношению к этим последним двум строкам.Предположим, что a — конкретное натуральное число, только мы с вами не знаем, что это за число (натуральные числа — это целые положительные числа: 1, 2, 3, 4…). Рассмотрим теперь следующее предложение.
Если a делится без остатка на 4, то a без остатка делится на 2.
(Под «делимым без остатка» я имею в виду делимый без остатка.) Первое, что нужно спросить себя: верно ли это предложение? Я надеюсь, что мы все согласимся с тем, что это так, даже если мы не знаем, что такое a. Пусть
a делится на 4 без остатка
будет представлено в нашей логике
U
и пусть
a делится на 2 без остатка
будет представлено
В
Тогда наше предложение —
(U → V)
И его таблица истинности — насколько мы сейчас понимаем — это:
U | В | (U → V) |
---|---|---|
т | т | Т |
т | F | F |
Ф | т | |
Ф | F |
Теперь рассмотрим случай, когда а равно 6.Это похоже на третью строку таблицы истинности. Дело не в том, что 6 без остатка делится на 4, но в том случае, когда 6 без остатка делится на 2. И рассмотрим случай, когда а равно 7. Это похоже на четвертую строку таблицы истинности; 7 не делится без остатка ни на 4, ни на 2. Но мы согласились, что условие истинно — независимо от значения a! Итак, таблица истинности должна быть: [3]
U | В | (U → V) |
---|---|---|
т | т | Т |
т | F | F |
Ф | т | Т |
Ф | F | Т |
Следуя этой схеме, мы также должны заполнить нашу таблицу о выборах:
п | Q | (P → Q) |
---|---|---|
т | т | Т |
т | F | F |
Ф | т | Т |
Ф | F | Т |
Если вас это не устраивает, может быть полезно подумать об этих последних двух строках как о пустых случаях.Условное выражение говорит нам о том, что произойдет, если антецедент верен. Но когда антецедент ложен, мы просто по умолчанию принимаем значение true.
Теперь мы готовы предложить более формальным образом синтаксис и семантику условного оператора.
Синтаксис условного оператора: если Φ и Ψ — предложения, то
(Φ → Ψ)
— это приговор.
Семантика условного оператора задается таблицей истинности. Для любых предложений Φ и Ψ:
Φ | Ψ | (Φ → Ψ) |
---|---|---|
т | т | Т |
т | F | F |
Ф | т | Т |
Ф | F | Т |
Помните, что эта таблица истинности теперь является определением.Он определяет значение «→». Мы соглашаемся использовать символ «→» для обозначения этого и впредь.
Элементы логики высказываний, такие как «→», которые мы добавляем в наш язык, чтобы сформировать более сложные предложения, называются «функциональными связками истинности». Надеюсь, понятно почему: значение этого символа дано в функции истинности. (Если вы не знакомы или не уверены в идее функции, подумайте о функции как о машине, которая принимает один или несколько входных данных, а затем всегда выдает ровно один результат.Для условного выражения входными данными являются два значения истинности; и на выходе получается одно значение истинности. Например, поместите T F в функцию истинности под названием «→», и вы получите F.)
2.2 Альтернативные фразы на английском языке для условного. Только если.
English включает множество альтернативных фраз, которые кажутся эквивалентными условному. Кроме того, в английском и других естественных языках порядок условных обозначений иногда меняется на обратный. Мы можем уловить общий смысл этих случаев, осознав, что каждая из следующих фраз будет переведена как (P → Q).(В этих примерах мы смешиваем английский язык и нашу логику высказываний, чтобы лаконично проиллюстрировать вариации.)
Если P, то Q.
Q, если P.
При условии, что P, Q.
Q, при условии, что P.
Учитывая, что P, Q.
Q, учитывая, что P.
При условии, что P, Q.
Q, при условии, что P.
Когда P, то Q.
Q, когда P.
P означает
Q.Q подразумевается P.
P достаточно для Q.
Q необходим для P.
Необычность английского языка состоит в том, что слово «only» меняет значение «if». Вы можете убедиться в этом, если рассмотрите следующие два предложения.
Фифи — кошка, если Фифи — млекопитающее.
Фифи — кошка, только если Фифи — млекопитающее.
Предположим, мы знаем, что Фифи — это организм, но мы не знаем, что это за организм. Фифи могла быть собакой, кошкой, серым китом, божьей коровкой, губкой. Кажется очевидным, что первое предложение не обязательно верно.Если, например, Фифи — серый кит, то верно, что Фифи — млекопитающее, но неверно, что Фифи — кошка; Итак, первое предложение было бы ложным. Но второе предложение выглядит так, как будто оно должно быть правдой (учитывая то, что мы с вами знаем о кошках и млекопитающих).
Таким образом, мы должны осознавать, что «только если» не означает то же самое, что и «если». (Если бы это было так, эти два предложения имели бы одинаковое значение истинности во всех ситуациях.) На самом деле, кажется, что «только если» лучше всего можно выразить условным выражением, где «только если» появляется перед следствием (помните, консеквент — это вторая часть условного выражения, на которую указывают стрелки).Таким образом, предложений такой формы:
P, только если Q.
Только если Q, P.
лучше всего выражается формулой
(P → Q)
2.3 Проверьте свое понимание условного
Иногда условные выражения сбивают с толку. Отчасти это происходит потому, что некоторые люди путают их с другим типом связки, определяющей функцию истины, о которой мы узнаем позже, которая называется «бикондиционной». Кроме того, иногда «if… then…» используется в английском языке по-другому (см. Раздел 17.7, если вам интересно узнать об альтернативных возможных значениях). Но с этого момента мы будем понимать условность, как описано выше. Чтобы проверить, правильно ли вы усвоили условное выражение, рассмотрите следующую загадку. [4]
У нас есть набор из четырех карт на рисунке 2.1. Каждая карта имеет следующее свойство: с одной стороны у нее есть форма, а с другой — буква. Мы перемешиваем и перемешиваем карты, переворачивая некоторые во время перемешивания. Затем выкладываем четыре карты:
Фигура 2.1Учитывая наше ограничение, заключающееся в том, что каждая карта имеет букву на одной стороне и форму на другой, мы знаем, что карта 1 имеет форму на невидимой стороне; карта 2 имеет букву на невидимой стороне; и так далее.
Рассмотрим теперь следующую претензию:
Для каждой из этих четырех карт, если карта имеет Q на лицевой стороне карты, то у нее есть квадрат на стороне формы карты.
Вот наша загадка: какое минимальное количество карт мы должны перевернуть, чтобы проверить, верно ли это утверждение для всех четырех карт; и какие это карты, которые мы должны перевернуть? Конечно, мы могли бы перевернуть их все, но головоломка просит вас идентифицировать все и только карты, которые будут проверять претензию.
Прекратите читать сейчас и посмотрите, сможете ли вы определиться с ответом. Имейте в виду, что люди обычно плохо справляются с этой головоломкой. Подумайте об этом немного. Ответ дан ниже в задаче 1.
2.4 Альтернативные символы условного
Некоторые книги по логике и некоторые логики используют альтернативные символы для различных функциональных связок истинности. Значения (то есть таблицы истинности) всегда одинаковы, но используемые символы могут быть разными. По этой причине мы найдем время в этом тексте, чтобы кратко рассмотреть альтернативные символы.
Условное условие иногда обозначается следующим символом: «⊃». Таким образом, в таком случае (P → Q) будет записано
(P⊃Q)
2,5 Отрицание
В главе 1 мы рассматривали в качестве примера предложение
Земля не является центром Вселенной.
На первый взгляд такое предложение может показаться принципиально непохожим на условное. В нем не два предложения, а только одно. В предложении есть «не», но оно не связывает два предложения.Однако мы все еще можем думать об этом предложении как о построении функциональной связки истины, если мы готовы признать, что это предложение эквивалентно следующему предложению.
Это не тот случай, когда Земля является центром Вселенной.
Если это предложение эквивалентно предыдущему, то мы можем трактовать «Это не так» как функциональную связку истинности. Традиционно эту громоздкую английскую фразу заменяют одним символом «¬». Тогда, смешав нашу логику высказываний с английской, мы получим
¬Земля — центр Вселенной.
И если мы позволим W быть предложением на нашем языке, имеющим значение Земля является центром вселенной , мы напишем
¬W
Эта связка называется «отрицание». Его синтаксис: если Φ — предложение, то
¬Φ
— это приговор. Мы называем такое предложение «приговором отрицания».
Семантика отрицательного предложения также очевидна и дается следующей таблицей истинности.
Отрицать истинный приговор — значит говорить неправду.Отрицать ложное предложение — значит сказать правду.
Наш синтаксис всегда рекурсивен. Это означает, что синтаксические правила можно многократно применять к продукту правила. Другими словами, наш синтаксис говорит нам, что если P — предложение, то ¬P — это предложение. Но теперь обратите внимание, что снова применяется то же правило: если ¬P — это предложение, то ¬¬P — это предложение. И так далее. Точно так же, если P и Q — предложения, синтаксис условного выражения говорит нам, что (P → Q) — это предложение. Но тогда так же ¬ (P → Q), как и (¬ (P → Q) → (P → Q)).И так далее. Если у нас есть только одно атомарное предложение, наш рекурсивный синтаксис позволит нам формировать бесконечно много разных предложений с отрицанием и условным выражением.
2.6 Альтернативные символы для отрицания
В некоторых текстах может использоваться символ «~» для отрицания. Таким образом, ¬P будет выражено с помощью
.~
п.2.7 Проблемы
- Ответ на нашу карточную игру был таков: вам нужно перевернуть только карты 3 и 4. Поначалу это может показаться многим запутанным.Но помните значение условия: оно может быть ложным, только если первая часть истинна, а вторая ложна. Предложение, которое мы хотим проверить, звучит так: «Для каждой из этих четырех карт, если карта имеет Q на стороне буквы карты, то у нее есть квадрат на стороне формы карты». Пусть Q означает «у карты есть Q на лицевой стороне карты». Пусть S означает «карта имеет квадрат на стороне формы карты». Затем мы могли бы составить таблицу истинности, чтобы выразить смысл проверяемого утверждения:
Q | S | (Q → S) |
т | т | Т |
т | F | F |
Ф | т | Т |
Ф | F | Т |
Посмотрите на карты.Первая карта имеет букву R. Итак, предложение Q ложно. Но тогда мы оказываемся в ситуации, подобной двум последним строкам таблицы истинности, и условное выражение не может быть ложным. Нам не нужно проверять эту карту. На второй карте есть квадрат. Это означает, что S верно для этой карты. Но тогда мы оказываемся в ситуации, представленной либо первой, либо третьей строкой таблицы истинности. Опять же, утверждение, что (Q → S) не может быть ложным ни в одном случае по отношению к этой карте, поэтому нет смысла проверять эту карту.Третья карта показывает Q. Это соответствует ситуации, которая похожа на первую или вторую строку таблицы истинности. Тогда мы не можем сказать, истинно или ложно (Q → S) для этой карты, не перевернув карту. Точно так же последняя карта показывает ситуацию, когда S ложно, поэтому мы находимся в ситуации, представленной либо второй, либо последней строкой таблицы истинности. Мы должны перевернуть карту, чтобы определить, является ли (Q → S) истинным или ложным для этой карты.
Попробуйте решить эту головоломку еще раз. Рассмотрим следующее утверждение о тех же четырех картах: если на лицевой стороне карты есть звезда, значит, на буквенной стороне карты есть буква R.Какое минимальное количество карт вы должны перевернуть, чтобы проверить это заявление? Какие это карты?
- Рассмотрим следующие четыре карты на рисунке 2.2. Каждая карта имеет букву на одной стороне и фигуру на другой стороне.
Для каждого из следующих утверждений, чтобы определить, верно ли утверждение для всех четырех карт, опишите (1) минимальное количество карт, которое вы должны перевернуть, чтобы проверить претензию, и (2) какие эти карты находятся.
- На лицевой стороне карты нет буквы Q.
- На лицевой стороне карты нет восьмиугольника.
- Если на стороне формы карты есть треугольник, то на стороне буквы карты есть буква P.
- Буква R отображается на лицевой стороне карты только в том случае, если на лицевой стороне карты есть ромб.
- На лицевой стороне карты изображен шестиугольник при условии, что на лицевой стороне карты есть буква P.
- Ромб появляется на лицевой стороне карты только в том случае, если на лицевой стороне карты есть буква P.
3. Что из следующего имеет правильный синтаксис? Какие из них имеют неправильный синтаксис?
- P → Q
- ¬ (P → Q)
- (¬P → Q)
- (P¬ → Q)
- (P → ¬Q)
- ¬¬P
- ¬P¬
- (¬P¬Q)
- (¬P → ¬Q)
- (¬P → ¬Q) ¬
4. Используйте следующий ключ перевода, чтобы перевести следующие предложения в логику высказываний.
Ключ перевода | |
---|---|
Логика | Английский |
п. | Абэ умеет. |
Q | Абэ честный. |
- Если Эйб честен, Эйб может.
- Абэ честен только в том случае, если Абэ может.
- Абэ умеет, если Абэ честен.
- Абэ честен, только если Авель может.
- Абэ не умеет.
- Дело не в том, что Эйб не может.
- Абэ не может, только если Абэ нечестен.
- Абэ может, при условии, что Абэ нечестен.
- Если Эйб не может, значит, Абэ нечестен.
- Дело не в том, что если Эйб может, то Абэ честен.
5. Составьте свой собственный ключ перевода, чтобы перевести следующие предложения в логику высказываний. Затем используйте свой ключ, чтобы перевести предложения в логику высказываний. Ваш ключ перевода должен содержать только атомарные предложения. Это должны быть все и только элементарные предложения, необходимые для перевода следующих английских предложений. Пусть вас не беспокоит, что некоторые предложения неверны.
- Джози кошка.
- Джози — млекопитающее.
- Джози не млекопитающее.
- Если Джози не кошка, значит, Джози не млекопитающее.
- Джози — рыба.
- Если Джози — млекопитающее, Джози не рыба.
- Джози — кошка, только если Джози — млекопитающее.
- Джози — рыба, только если Джози не млекопитающее.
- Дело не в том, что Джози не млекопитающее.
- Джози не кошка, если Джози рыба.
6. В этой задаче будет использоваться принцип рекурсивности нашего синтаксиса. Перевод этих предложений сложнее. Придумайте свой собственный ключ перевода, чтобы перевести следующие предложения в логику высказываний. Ваш ключ перевода должен содержать только атомарные предложения; это должны быть все и только элементарные предложения, необходимые для перевода следующих английских предложений.
- Это не тот случай, когда Том не сдаст экзамен.
- Если Том учится, Том сдаст экзамен.
- Это не тот случай, если Том учится, то Том сдает экзамен.
- Если Том не учится, то Том не сдаст экзамен.
- Если Том учится, Том будет сдавать экзамен — при условии, что он вовремя проснется.
- Если Том сдает экзамен, то если Стив учится, то Стив сдает экзамен.
- Дело не в том, что если Том сдает экзамен, то если Стив учится, то Стив сдает экзамен.
- Если Том не сдает экзамен, то если Стив учится, то Стив сдает экзамен.
- Если Том не сдает экзамен, это не тот случай, если Стив будет учиться, Стив будет сдавать экзамен.
- Если Том не сдает экзамен, то если Стив не учится, Стив не сдает экзамен.
7. Составьте свой собственный ключ перевода, чтобы переводить следующие предложения на английский язык. Выпишите английские эквиваленты в английских предложениях, которые кажутся (насколько это возможно) естественными.
- (R → S)
- ¬¬R
- (S → R)
- ¬ (S → R)
- (¬S → ¬¬R)
- ¬¬ (R → S)
- (¬R → S)
- (R → ¬S)
- (¬R → ¬S)
- ¬ (¬R → ¬S)
[3] Во втором примере с неизвестным номером a одна вещь немного забавная.Мы не сможем найти число, которое делится без остатка на 4 и не делится без остатка на 2, поэтому мир никогда не будет похож на второй ряд этой таблицы истинности. Об этом нужно сказать две вещи. Во-первых, эта странность возникает из-за математических фактов, а не фактов нашей логики высказываний, то есть нам нужно знать, что означает «делимый», что означают «4» и «2» и так далее, чтобы понять предложение. . Итак, когда мы видим, что вторая строка невозможна, мы основываем это на нашем знании математики, а не на знании логики высказываний.Во-вторых, некоторые условные выражения могут быть ложными. При определении условного выражения нам необходимо учитывать все возможные условные выражения; Итак, мы должны определить условное выражение для любого случая, когда антецедент истинен, а следствие ложно, даже если этого не может произойти в данном конкретном примере.
[4] См. Wason (1966).
2.1: Операторы и логические операторы
ПРОСМОТР АКТИВНОСТИ \ (\ PageIndex {1} \): Составные операторы
Математики часто разрабатывают способы построения новых математических объектов из существующих математических объектов.Можно сформировать новые утверждения из существующих утверждений, соединив утверждения такими словами, как «и» и «или», или путем отрицания утверждения. Логический оператор (или связка ) в математических утверждениях — это слово или комбинация слов, которые объединяют одно или несколько математических утверждений для создания нового математического утверждения. Составной оператор — это оператор, содержащий один или несколько операторов. Поскольку некоторые операторы так часто используются в логике и математике, мы даем им имена и используем специальные символы для их представления.
- Конъюнкция операторов \ (P \) и \ (Q \) — это утверждение «\ (P \) и \ (Q \)», которое обозначается как \ (P \ wedge Q \). Утверждение \ (P \ wedge Q \) верно только тогда, когда оба \ (P \) и \ (Q \) верны.
- Дизъюнкция операторов \ (P \) и \ (Q \) — это утверждение «\ (P \) или \ (Q \)», которое обозначается как \ (P \ vee Q \). Утверждение \ (P \ vee Q \) истинно только тогда, когда истинно хотя бы одно из \ (P \) или \ (Q \).
- Отрицание ( утверждения ) утверждения \ (P \) — это утверждение «, а не \ (P \)» и обозначается \ (\ urcorner P \).Отрицание \ (P \) истинно, только когда \ (P \) ложно, а \ (\ urcorner P \) ложно, только когда \ (P \) истинно.
- Импликация или условная — это утверждение « Если \ (P \) , то \ (Q \)» и обозначается \ (P \ to Q \). Утверждение \ (P \ to Q \) часто читается как «\ (P \) влечет \ (Q \), и мы видели в разделе 1.1, что \ (P \ to Q \) ложно только тогда, когда \ (P \) истинно, а \ (Q \) ложно.
Несколько замечаний по поводу дизъюнкции.
Важно понимать использование оператора «или». В математике мы используем « включительно или », если не указано иное. Это означает, что \ (P \ vee Q \) истинно, когда оба \ (P \) и \ (Q \) истинны, а также когда истинно только одно из них. То есть \ (P \ vee Q \) истинно, если хотя бы одно из \ (P \) или \ (Q \) истинно, или \ (P \ vee Q \) ложно, только когда оба \ (P \ ) и \ (Q \) ложны.
Другое использование слова «или» — « исключающее или ». Для исключающего или результирующий оператор является ложным, если оба утверждения верны.То есть, «\ (P \) эксклюзивное или \ (Q \)» истинно только тогда, когда истинно ровно одно из \ (P \) или \ (Q \). В повседневной жизни мы часто используем эксклюзивное или. Когда кто-то говорит: «На перекрестке поверните налево или идите прямо», этот человек использует исключительное или.
Некоторые комментарии по поводу отрицания . Хотя выражение \ (\ urcorner P \) можно прочитать как «Это не тот случай, когда \ (P \)», часто есть лучшие способы сказать или написать это на английском языке. Например, мы обычно говорим (или пишем):
- Отрицание утверждения «391 простое» означает «391 не простое число».”
- Отрицание утверждения «\ (12 <9 \)» равно «\ (12 \ ge 9 \)».
- Для выписки
\ (P \): 15 — нечетное \ (Q \): 15 — простое
запишите каждое из следующих утверждений как английские предложения и определите, истинны они или ложны.
(а) \ (P \ клин Q \). (б) \ (P \ vee Q \). (c) \ (P \ клин \ urcorner Q \). (г) \ (\ urcorner P \ vee \ urcorner Q \). - Для выписок
P: 15 нечетное R: 15 <17
запишите каждое из следующих утверждений в символической форме, используя операторы \ (\ wedge \), \ (\ vee \) и \ (\ urcorner \)
(а) 15 \ (\ ge \) 17.(b) 15 нечетно или 15 \ (\ ge \) 17.
(c) 15 четно или 15 <17. (г) 15 нечетно и 15 \ (\ ge \) 17.
ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР \ (\ PageIndex {2} \): истинные значения утверждений
Мы будем использовать следующие два оператора для всего этого действия предварительного просмотра:
- \ (P \) — это утверждение «Идет дождь».
- \ (Q \) — это утверждение «Дейзи играет в гольф».
В каждой из следующих четырех частей утверждениям \ (P \) и \ (Q \) будет присвоено значение истинности.Например, в вопросе (1) мы предполагаем, что каждое утверждение истинно. В вопросе (2) мы будем предполагать, что \ (P \) истинно, а \ (Q \) ложно. В каждой части определите истинность каждого из следующих утверждений:
(a) (\ (P \ wedge Q \)) Идет дождь, и Дейзи играет в гольф.
(b) (\ (P \ vee Q \)) Идет дождь или Дейзи играет в гольф.
(c) (\ (P \ to Q \)) Если идет дождь, значит, Дейзи играет в гольф.
(d) (\ (\ urcorner P \)) Дождя нет.
Какие из четырех утверждений [от (a) до (d)] верны, а какие — ложны в каждой из следующих четырех ситуаций?
1. Когда \ (P \) истинно (идет дождь) и \ (Q \) истинно (Дейзи играет в гольф).
2. Когда \ (P \) истинно (идет дождь) и \ (Q \) ложно (Дейзи не играет в гольф).
3. Когда \ (P \) ложно (дождь не идет) и \ (Q \) истинно (Дейзи играет в гольф).
4. Когда \ (P \) ложно (дождь не идет) и \ (Q \) ложно (Дейзи не играет в гольф).
В предварительных упражнениях этого раздела мы узнали о составных утверждениях и их истинностных значениях. Эта информация может быть сведена к таблицам истинности, как показано ниже.
\ (P \) | \ (\ urcorner P \) |
---|---|
т | F |
ф | т |
\ (P \) | \ (Q \) | \ (P \ клин Q \) |
---|---|---|
т | т | Т |
т | Ф | F |
ф | т | F |
ф | Ф | F |
\ (P \) | \ (Q \) | \ (P \ vee Q \) |
---|---|---|
т | т | т |
т | Ф | т |
ф | т | т |
ф | Ф | Ф |
\ (P \) | \ (Q \) | \ (от P \ до Q \) |
---|---|---|
т | т | т |
т | Ф | F |
ф | т | т |
ф | Ф | т |
Вместо того, чтобы запоминать таблицы истинности, для многих людей легче запомнить правила, приведенные в Таблице 2.1.
Оператор | Символическая форма | Сводка истинных ценностей |
---|---|---|
Соединение | \ (P \ клин Q \) | Верно, только если оба \ (P \) и \ (Q \) верны |
Дизъюнкция | \ (P \ vee Q \) | Ложь, только если оба \ (P \) и \ (Q \) неверны |
Отрицание | \ (\ urcorner P \) | Значение противоположной истинности \ (P \) |
условно | \ (P \ to Q \) | Ложь, только если \ (P \) истинно, а \ (Q \) ложно |
Другие формы условных отчетов
Условные утверждения чрезвычайно важны в математике, потому что почти все математические теоремы (или могут быть) сформулированы в форме условного утверждения в следующей форме:
Если «соблюдаются определенные условия», то «что-то происходит.”
Крайне важно, чтобы все студенты, изучающие математику, досконально понимали значение условного утверждения и таблицы истинности условного утверждения.
Нам также необходимо знать, что в английском языке существуют другие способы выражения условного оператора \ (P \ to Q \), кроме «Если \ (P \), то \ (Q \)». Ниже приведены некоторые распространенные способы выражения условного оператора \ (P \ to Q \) на английском языке:
Progress Check 2.1: Заявление «Только если»
Напомним, что четырехугольник — это четырехугольник.Пусть \ (S \) представляет следующее истинное условное утверждение:
Если четырехугольник — квадрат, то это прямоугольник.
Запишите это условное выражение на английском языке, используя
.- слово «всякий раз, когда»
- фраза «только если»
- фраза «необходимо»
- фраза «достаточно для»
- Ответ
Добавьте сюда тексты. Не удаляйте сначала этот текст.
Построение таблиц истины
Таблицы истинности для составных утверждений могут быть построены с использованием таблиц истинности для основных связок. Чтобы проиллюстрировать это, мы построим таблицу истинности для. \ ((P \ клин \ urcorner Q) \ к R \). Первый шаг — определить необходимое количество строк.
- Для таблицы истинности с двумя разными простыми утверждениями необходимы четыре строки, поскольку существует четыре различных комбинации значений истинности для двух утверждений.Мы должны согласовываться с тем, как мы расставляем ряды. В этом тексте мы сделаем это так, чтобы пометить строки для первого оператора (T, T, F, F) и строки для второго оператора (T, F, T, F). Все таблицы истинности в тексте имеют эту схему.
- Для таблицы истинности с тремя различными простыми утверждениями необходимо восемь строк, поскольку существует восемь различных комбинаций значений истинности для трех утверждений. Наша стандартная схема для этого типа таблицы истинности показана в Таблице 2.2 .
Следующим шагом будет определение столбцов, которые будут использоваться. Один из способов сделать это — вернуться назад от формы данного оператора. Для \ ((P \ wedge \ urcorner Q) \ to R \) последний шаг — иметь дело с условным оператором \ ((\ to) \). Для этого нам нужно знать значения истинности \ ((P \ wedge \ urcorner Q) \) и \ (R \). Чтобы определить значения истинности для \ ((P \ wedge \ urcorner Q) \), нам нужно применить правила для оператора конъюнкции \ ((\ wedge) \), и нам нужно знать значения истинности для \ (P \ ) и \ (\ urcorner Q \).
Таблица 2.2 — это завершенная таблица истинности для \ ((P \ wedge \ urcorner Q) \ to R \) с номерами шагов, указанными внизу каждого столбца. Номера шагов соответствуют порядку заполнения столбцов.
\ (П \) | \ (Q \) | \ (R \) | \ (\ urcorner Q \) | \ ((P \ клин \ urcorner Q) \) | \ ((P \ клин \ urcorner Q) \ to R \) |
---|---|---|---|---|---|
т | т | т | F | F | т |
т | т | F | F | F | т |
т | Ф | т | т | т | т |
т | Ф | F | т | т | F |
ф | т | т | F | F | т |
ф | т | F | F | F | т |
ф | Ф | т | т | F | т |
ф | Ф | F | т | F | т |
1 | 1 | 1 | 2 | 3 | 4 |
- При заполнении столбца для \ (P \ wedge \ urcorner Q \) помните, что конъюнкция истинна только тогда, когда оба \ (P \) и \ (\ urcorner Q \) истинны.
- При заполнении столбца для \ ((P \ wedge \ urcorner Q) \ to R \) помните, что условное утверждение ложно только тогда, когда гипотеза \ ((P \ wedge \ urcorner Q) \) верна и заключение \ (R \) неверно.
Последний введенный столбец — это таблица истинности для утверждения \ ((P \ wedge \ urcorner Q) \ to R \) с использованием настройки в первых трех столбцах.
Проверка выполнения 2.2: построение таблиц истинности
Создайте таблицу истинности для каждого из следующих утверждений:
- \ (P \ клин \ urcorner Q \)
- \ (\ urcorner (P \ клин Q) \)
- \ (\ urcorner P \ клин \ urcorner Q \)
- \ (\ urcorner P \ vee \ urcorner Q \)
Есть ли у любого из этих утверждений одна и та же таблица истинности?
- Ответ
Добавьте сюда тексты.Не удаляйте сначала этот текст.
Заявление с двумя условными условиями
Некоторые математические результаты сформулированы в форме «\ (P \) тогда и только тогда, когда \ (Q \)» или «\ (P \) необходимо и достаточно для \ (Q \)». Примером может быть: «Треугольник является равносторонним тогда и только тогда, когда его три внутренних угла совпадают». Символическая форма для биконусного утверждения «\ (P \) тогда и только тогда, когда \ (Q \)» есть \ (P \ leftrightarrow Q \). Чтобы определить таблицу истинности для двусмысленного утверждения, поучительно внимательно посмотреть на форму фразы «\ (P \) тогда и только тогда, когда \ (Q \)».Слово «и» предполагает, что это утверждение является союзом. На самом деле это комбинация утверждений «\ (P \), если \ (Q \)» и «\ (P \), только если \ (Q \)». Символическая форма этого соединения — \ ([(Q \ to P) \ wedge (P \ to Q] \).
Progress Check 2.3: Таблица истинности для двоякового утверждения
Заполните таблицу истинности для \ ([(Q \ to P) \ wedge (P \ to Q] \). Используйте следующие столбцы: \ (P \), \ (Q \), \ (Q \ to P \ ), \ (P \ to Q \) и \ ([(Q \ to P) \ wedge (P \ to Q] \). Последний столбец этой таблицы будет истинным для \ (P \ leftrightarrow Q \ ).
- Ответ
Добавьте сюда тексты. Не удаляйте сначала этот текст.
Другие формы двусмысленного заявления
Как и в случае с условным оператором, существует несколько распространенных способов выражения двузонального оператора \ (P \ leftrightarrow Q \) на английском языке.
Пример
- \ (P \) есть и только если \ (Q \).
- \ (P \) необходимо и достаточно для \ (Q \).
- \ (P \) влечет \ (Q \), а \ (Q \) влечет \ (P \).
Тавтологии и противоречия
Определение: тавтология
Тавтология — это составное утверждение S, которое истинно для всех возможных комбинаций значений истинности составных утверждений, которые являются частью \ (S \). Противоречие — это составное утверждение, которое ложно для всех возможных комбинаций значений истинности составных утверждений, которые являются частью \ (S \).
То есть тавтология обязательно истинна при любых обстоятельствах, а противоречие обязательно ложно при любых обстоятельствах.
Проверка выполнения 2.4 (тавтологии и противоречия)
Для выписок \ (P \) и \ (Q \):
- Используйте таблицу истинности, чтобы показать, что \ ((P \ vee \ urcorner P) \) является тавтологией.
- Используйте таблицу истинности, чтобы показать, что \ ((P \ wedge \ urcorner P) \) противоречие.
- Используйте таблицу истинности, чтобы определить, является ли \ (P \ to (P \ vee P) \) тавтологией, противоречием или нет.
- Ответ
Добавьте сюда тексты. Не удаляйте сначала этот текст.
Упражнения к разделу 2.1
- Предположим, Дейзи говорит: «Если не пойдет дождь, я буду играть в гольф». Позже в тот же день вы узнаете, что шел дождь, но Дейзи все еще играла в гольф. Было ли заявление Дейзи правдой или ложью? Поддержите свой вывод.
- Предположим, что \ (P \) и \ (Q \) — утверждения, для которых верно \ (P \ to Q \) и для которых верно \ (\ urcorner Q \).Какой вывод (если таковой имеется) можно сделать об истинности каждого из следующих утверждений?
(a) \ (P \)
(b) \ (P \ wedge Q \)
(c) \ (P \ vee Q \) - Предположим, что \ (P \) и \ (Q \) — утверждения, для которых \ (P \ to Q \) ложно. Какой вывод (если таковой имеется) можно сделать об истинности каждого из следующих утверждений?
(a) \ (\ urcorner P \ to Q \)
(b) \ (Q \ to P \)
(c) \ (P \ vee Q \) - Предположим, что \ (P \) и \ (Q \) — утверждения, для которых \ (Q \) ложно и \ (\ urcorner P \ to Q \) истинно (и неизвестно, если \ (R \) верно или неверно).Какой вывод (если таковой имеется) можно сделать об истинности каждого из следующих утверждений?
(a) \ (\ urcorner Q \ to P \)
(b) \ (P \)
(c) \ (P \ wedge R \)
(d) \ (R \ to \ urcorner P \) - Постройте таблицу истинности для каждого из следующих утверждений:
(a) \ (P \ to Q \)
(b) \ (Q \ to P \)
(c) \ (\ urcorner P \ to \ urcorner Q \)
(d) \ (\ urcorner Q \ to \ urcorner P \)Есть ли у любого из этих утверждений одна и та же таблица истинности?
- Постройте таблицу истинности для каждого из следующих утверждений:
(a) \ (P \ vee \ urcorner Q \)
(b) \ (\ urcorner (P \ vee Q) \)
(c) \ (\ urcorner P \ vee \ urcorner Q \)
(d) \ (\ urcorner P \ wedge \ urcorner Q \)Есть ли у любого из этих утверждений одна и та же таблица истинности?
- Постройте таблицу истинности для \ (P \ wedge (Q \ vee R) \) и \ ((P \ wedge Q) \ vee (P \ wedge R) \).Что вы наблюдаете.
- Предположим, что каждое из следующих утверждений верно.
- Лаура учится в седьмом классе.
- — Лаура получила пятерку за тест по математике или Сара получила пятерку за тест по математике.
- �� Если Сара получила пятерку на тесте по математике, значит, Лора не учится в седьмом классе.
Если возможно, определите истинность каждого из следующих утверждений. Тщательно объясните свои рассуждения.
(a) Лаура сдала тест по математике на пятерку.2 \) четное ». Выразите условное выражение \ (P \ to Q \) на английском языке, используя
(a) Форма условного оператора «if then»
(b) Слово «Implies»
(c) Форма «only if» выражения условное утверждение
(d) Фраза «необходимо для»
(e) Фраза «достаточно для» - Повторите упражнение (9) для условного оператора \ (Q \ to P \).
- Для утверждений \ (P \) и \ (Q \) используйте таблицы истинности, чтобы определить, является ли каждое из следующих утверждений тавтологией, противоречием или ни тем, ни другим.
(а) \ (\ urcorner Q \ vee (P \ to Q) \).
(b) \ (Q \ клин (P \ клин \ urcorner Q) \).
(c) \ ((Q \ клин P) \ клин (P \ to \ urcorner Q) \).
(d) \ (\ urcorner Q \ to (P \ клин \ urcorner P) \). - Для утверждений \ (P \), \ (Q \) и \ (R \):
(a) Докажите, что \ ([(P \ to Q) \ wedge P] \ to Q \) является тавтологией. Примечание : В символической логике это важная форма логического аргумента, называемая modus ponens .
(b) Докажите, что \ ([(P \ to Q) \ wedge (Q \ to R)] \ to (P \ to R) \) является автологией. Примечание : В символической логике это важная форма логического аргумента, называемая силлогизмом .Разведки и работы
- Работа с условными операторами. Заполните следующую таблицу:
Английская форма Гипотеза Заключение Символическая форма Если \ (P \), то \ (Q \) \ (П \) \ (Q \) \ (от P \ до Q \) \ (Q \) только если \ (P \) \ (Q \) \ (П \) \ (Q \ to P \) \ (P \) необходимо для \ (Q \) \ (P \) достаточно для \ (Q \) \ (Q \) необходимо для \ (P \) \ (P \) подразумевает \ (Q \) \ (P \) только если \ (Q \) \ (P \) если \ (Q \) если \ (Q \), то \ (P \) если \ (\ urcorner Q \), то \ (\ urcorner P \) если \ (Q \), то \ (Q \ wedge R \) если \ (P \ vee Q \), то \ (R \) - Работа с истинностью утверждений. Предположим, что \ (P \) и \ (Q \) — истинные утверждения, что \ (U \) и \ (V \) — ложные утверждения, и что \ (W \) — утверждение, и неизвестно, если \ (W \) истинно или ложно.
Какие из следующих утверждений верны, какие ложны и для каких утверждений невозможно определить, истинно оно или ложно? Обоснуйте свои выводы.
(a) \ ((P \ vee Q) \ vee (U \ клин W) \) (f) \ ((\ urcorner P \ vee \ urcorner U) \ клин (Q \ vee \ urcorner V) \)
(b) \ (P \ клин (Q \ к W) \) (g) \ ((P \ клин \ urcorner Q) \ клин (U \ vee W) \)
(c) \ (P \ клин ( W \ to Q) \) (h) \ ((P \ vee \ urcorner Q) \ to (U \ wedge W) \)
(d) \ (W \ to (P \ wedge U) \) (i) \ ((P \ vee W) \ to (U \ wedge W) \)
(e) \ (W \ to (P \ wedge \ urcorner U) \) (j) \ ((U \ wedge \ urcorner V) \ to (P \ клин W) \)
- Ответ
Добавьте сюда тексты.Не удаляйте сначала этот текст.
таблиц истинности пяти общих логических связок или операторов
В этом уроке мы построим пять (5) общих логических связок или операторов. Они считаются обычными логическими связками, потому что они очень популярны, полезны и всегда преподаются вместе.
Прежде чем мы начнем, я предлагаю вам просмотреть другой мой урок, ссылка на который приведена ниже.
Этот вводный урок о таблицах истинности содержит предварительные знания или информацию, которые помогут вам лучше понять содержание этого урока.
Введение в таблицы истины, утверждения и связки
Ле начинает с перечисления пяти (5) общих логических связок.
Пять (5) общих логических связок или операторов
- Логическое отрицание
- Логическое соединение (И)
- Логическое разъединение (включающее ИЛИ)
- Логическое следствие (условное)
- Логическое биконусное (двойное следствие)
I. Таблица истинности логического отрицания
Отрицание утверждения также является утверждением, значение истинности которого прямо противоположно исходному утверждению.Например, отрицание утверждения символически записывается как
~ \ large {P} или \ large {\ neg P}.
~ {P} или {\ neg P} читается как «не P.»
Помните: Оператор отрицания, обозначенный символом ~ или \ neg, принимает значение истинности исходного утверждения, а затем выводит значение, прямо противоположное его значению истинности. Другими словами, отрицание просто меняет значение истинности данного утверждения. Таким образом, если утверждение P истинно, то значение истинности его отрицания ложно.Таким же образом, если P ложно, истинное значение его отрицания истинно.
II. Таблица истинности логического соединения
Соединение — это тип составного оператора, который состоит из двух предложений (также известных как простые утверждения), соединенных оператором AND.
Символ, который используется для обозначения оператора AND или логического соединения, — \ color {red} \ Large {\ wedge}. Похоже на перевернутую букву V.
Если у нас есть два простых оператора P и Q, и мы хотим сформировать составной оператор, соединенный оператором AND, мы можем записать его как:
\ large {P \ wedge Q}.
{P \ wedge Q} читается как «P и Q».
Помните: Значение истинности составного утверждения P \ wedge Q истинно, только если значения истинности P и Q оба истинны. В противном случае P \ wedge Q ложно.
Обратите внимание в таблице истинности ниже, что когда P истинно, а Q истинно, P \ wedge Q истинно. Однако остальные три комбинации предложений P и Q ложны.
III. Таблица истинности логической дизъюнкции
Дизъюнкция — это разновидность составного оператора, который состоит из двух простых операторов, образованных путем соединения операторов с помощью оператора OR.
В операторе дизъюнкции используется логическое ИЛИ. Это означает «одно или другое» или и то, и другое.
Для обозначения оператора ИЛИ или логического дизъюнкции используется символ \ color {red} \ Large {\ vee}. Он напоминает букву V алфавита.
Два предложения P и Q, соединенные оператором OR, чтобы сформировать составное утверждение, записываются как:
\ large {P \ vee Q}.
{P \ vee Q} читается как «P или Q».
Помните: Значение истинности составного утверждения P \ vee Q истинно, если значение истинности одного из двух простых утверждений P и Q истинно.Моресо, P \ vee Q также истинно, когда истинные значения обоих утверждений P и Q истинны. Однако единственный раз, когда оператор дизъюнкции P \ vee Q ложен, происходит, когда значения истинности P и Q ложны.
IV. Таблица истинности логического следствия
Импликация (также известная как условная инструкция ) — это тип составного оператора, который формируется путем соединения двух простых операторов с помощью связки или оператора логической импликации.
Символ, который используется для представления оператора логического следования, — это стрелка, указывающая вправо, то есть стрелка вправо.
Когда два простых оператора P и Q соединяются оператором импликации, мы имеем:
\ Large {P \ to Q}.
- , где P известна как гипотеза
- где Q известна как вывод
Есть много способов читать условное {P \ to Q}.Ниже приведены некоторые из немногих распространенных.
{P \ to Q} читается как «P подразумевает Q».
{P \ to Q} читается как «Если P, то Q».
{P \ to Q} читается как «P, только если Q».
{P \ to Q} читается как «Если P достаточно для Q».
{P \ to Q} читается как «Q необходимо для P».
{P \ to Q} читается как «Q следует из P».
{P \ to Q} читается как «Q, если P».
Помните: Значение истинности составного утверждения P \ to Q истинно, когда истинны оба простых утверждения P и Q.Более того, P \ to Q всегда истинно, если P ложно. Единственный сценарий, в котором P \ to Q ложно, происходит, когда P истинно, а Q ложно.
V. Таблица истинности логической биконусной или двойной импликации
Двойная импликация (также известная как двухусловный оператор , ) — это тип составного оператора, который формируется путем соединения двух простых операторов с двухусловным оператором. Двуусловный оператор на самом деле представляет собой комбинацию условного оператора и его обратного.
Двузначный оператор обозначается двунаправленной стрелкой.
Когда вы соединяете два простых утверждения (также известных как молекулярные утверждения) с бикондиционным оператором, мы получаем:
\ Large {P \ leftrightarrow Q}
{P \ leftrightarrow Q} читается как «P тогда и только тогда, когда Q».
- где P известен как антецедент
- где Q известен как консеквент
Помните: Значение истинности биконусного утверждения P \ leftrightarrow Q истинно, когда оба простых утверждения P и Q истинны или оба ложны.В противном случае P \ leftrightarrow Q ложно.
Вас также может заинтересовать:
Введение в таблицы истинности, утверждения и логические связки
Обратное, обратное и противоположное условному утверждению
логических соединителей
логических соединителейМатематика работает в соответствии с законами логики, которые определяют, как делать действительные вычеты. Чтобы применить законы логики к математические утверждения, вы должны понимать их логических формы .
Если вы пройдете курс математической логики, вы увидите формальный обсуждение доказательств. Вы начинаете с формального язык , в котором описаны символы, которые вам разрешено использовать, и как их объединить, и правила вывода , которые описывают допустимые способы выполнения шагов доказательства. Все это символы! Если бы я сделал это здесь, вам, вероятно, было бы трудно следить. Так что обсуждение здесь будет неформальным (хотя вы можете не думаю, что это так!).
Доказательства состоят из утверждений . Заявление — повествовательное предложение, которое может быть либо правда, либо ложь.
Замечание. Многие настоящие доказательства содержат вещи, которые на самом деле это не утверждения — вопросы, описания и так далее. Они помогают объяснить читателю вещи. Когда я сказал «Доказательства состоят из утверждений», я имею в виду фактическое математическое содержание с удаленными пояснительными материалами.
Пример. Какие из следующих заявления? Если это утверждение, по возможности определите, правда или ложь.
«Кэлвин Баттербол — математик».
«.»
«Диаметр земли — 1 дюйм, или я съел пиццу».
«У вас есть бутерброд со свининой барбекю?»
«Дайте мне кофе мокко!»
«.»
«.»
«Кэлвин Баттерболл — математик», — говорится в заявлении.Ты бы нужно знать больше о Кальвине и математических специальностях, чтобы знать, утверждение верно или неверно.
«» является ложным заявлением (предполагая, что «0» и «1» относятся к реальной числа 0 и 1).
«Диаметр Земли — 1 дюйм, иначе я получу пицца »- это утверждение. Первая часть (« Диаметр земля 1 дюйм «) неверно, но вам нужно кое-что знать о моих недавних приемах пищи, чтобы узнать, является ли фраза «Я ел пиццу» правда или ложь.Тем не менее, разумно предположить, что вы может выяснить, правда ли «Я съел пиццу» или нет — и, следовательно, истинно ли исходное утверждение «или» или ложь.
«У вас есть бутерброд со свининой барбекю?» это не заявление — это вопрос.
Точно так же «Дайте мне кофе мокко!» это не заявление — это повелительное предложение, то есть приказ что-то сделать.
«» — это заявление. Простой способ сказать для прочтите и посмотрите, является ли это полным декларативным предложение , которое является либо истинным, либо ложным.Это заявление прочтите (прописью):
«Один плюс один равен двум».
Вы можете видеть, что это полное декларативное предложение (и бывает, что чтобы быть верным утверждением о реальных числах).
С другой стороны, «» — это , а не a. утверждение. Это будет читаться как «Один плюс один», что не является предложение, поскольку в нем нет глагола. (Такие вещи, как «» обозначаются как термины или выражения .)
Поскольку доказательства состоят из утверждений , вы никогда не должны содержать отдельные фразы (вроде или «») в ваших доказательствах.Убедитесь, что каждая строка доказательства — это утверждение. Прочтите каждую строку, чтобы сам, чтобы быть уверенным.
С точки зрения логической формы утверждения строятся из более простых операторы с использованием логических связок .
Определение. Логические связки Смысловая логика:
(a) Отрицание («не»), обозначено.
(b) Соединение («и»), обозначенное .
(c) Дизъюнкция («или»), обозначено.
(d) Условный («если-то» или «импликация»), обозначено.
(e) Biconditional («если и только если» или «двойное значение»), обозначено.
Позже я рассмотрю кванторы «для все «(обозначено) и» там существует «(обозначено).
Замечание. Вы можете увидеть разные символы, используемые другие люди. Например, некоторые используют для отрицания. И иногда используется для условного, и в этом случае используется для двусмысленной.
Пример. Представьте следующие утверждения используя логические связки.
(а) P или нет Q.
(b) Если P и R, то Q.
(c) P тогда и только тогда, когда (Q и R).
(d) Не P и не Q.
(e) Это не так, что если P, то Q.
(f) Если P и Q, то R или S.
а)
(б)
(c)
(г)
(е)
(е)
Замечание. Вы можете возразить, что (например) «», что можно прочитать как «P или Q «не похоже на утверждение (полное предложение на английском языке). Однако в контексте доказательства символы P и Q будут стоять для операторов и заменяя P и Q на утверждения, которые они стоят для получения полного предложения на английском языке (например, «The диаметр земли 1 дюйм или я съела пиццу »).
В утверждениях могут встречаться другие слова или фразы. Вот таблица некоторые из них и как они переведены.
Рассмотрим, например, слово «но». Если я скажу «Кальвин здесь, но Бонзо там «, я имею в виду, что Кальвин здесь и Бонзо есть. Мое намерение состоит в том, чтобы оба утверждения должны быть правдой. Это то же самое, что я имею в виду, когда говорю «Кальвин здесь, а Бонзо здесь».
На практике математики обычно используют небольшой набор фраз вместо и более. Это не делает чтение увлекательным, но позволяет читателю сосредоточиться на смысле написанного.Например, математик обычно скажет «если Q, то P», скорее чем логически эквивалентный «P, если Q» или «P только если Q «. Последние две версии менее знакомы, и поэтому заставляют читателя дольше понять, что имеется в виду.
На мой взгляд, вам следует избегать выражений в таблице выше в письменной форме . Пусть вещи будут скучными и простыми.
Сейчас хорошее время, чтобы обсудить, как слово «или» используется в математике. Когда вы говорите: «Я поужинаю в MacDonald’s или в Pizza Hut «, вы , вероятно, имеете в виду «или» в его исключительном смысле : вы пообедать в MacDonald’s или поужинать в пиццерии Хижина, , но не обе .»Но не то и другое» — вот что делает это эксклюзивным или .
Математики используют «или» в включительно смысл. Когда «или» используется таким образом, «Я поужинаю в MacDonald’s или Pizza Hut» означает вы будете ужинать в MacDonald’s или вы будете ужинать в Pizza Hut, или, возможно, оба . Очевидно, я не гарантирует , что оба варианта произойдут; Я просто не управляю этим из.
Причина такого выбора, вероятно, в том, что когда слово «или» встречается в математике, обычно в инклюзивном способ.Например, если X и Y — множества, их объединение состоит из вещей которые находятся в X или в Y или в обоих . Итак, если мы решили использовать «или» исключительно, я должен сказать «или в оба «. Включая» или «, я могу просто сказать «в X или в Y», поскольку предполагается «в обоих». Как и во многих математических соглашениях, так оно и есть, потому что мы ленивый, и это экономит письмо.
Пример. Переведите следующие утверждения в логическую нотацию, используя следующие символы:
S = «Стромболи горячие.»
L = «Лазанья остыла.»
P = «Пицца будет доставлена».
(а) «Стромболи горячие, а пицца не будет доставлен.»
б) «Если лазанья остыла, то пицца будет доставлен.»
(c) «Либо лазанья остыла, либо пицца не будет доставлен.»
(d) «Если пицца не будет доставлена, то оба стромболи будут горячая, а лазанья холодная «.
(e) «Лазанья не холодная тогда и только тогда, когда стромболи не горячий.»
(f) «Пицца будет доставлена только в том случае, если лазанья холодно.»
(g) «Стромболи горячие, а лазанья не холодная, но пицца будет доставлена ».
а)
(б)
(c)
(г)
(е)
(е)
(грамм)
Порядок приоритета логических связок:
1.Отрицание
2. Соединение
3. Дизъюнкция
4. Последствия
5. Двойное следствие
Как обычно, круглые скобки отменяют другие правила приоритета.
В большинстве случаев для наглядности лучше использовать круглые скобки, даже если они не требуются из-за приоритета правила. Например, лучше написать
В любом случае приоритет будет сгруппировать P и Q, но первое выражение яснее.
Использование скобок для группировки в обычных предложения. Поэтому, когда вы переводите логические утверждения в слова, вам может потребоваться использовать определенные выражения для обозначения группировки.
(а) Комбинация «Либо … или …» используется для обозначения что все между «либо» и «или» — это первая часть оператора «или».
(b) Комбинация «Оба … и …» используется для обозначения что все между «и» и «и» это первая часть утверждения «и».
В некоторых случаях единственный способ сказать что-то однозначно — это быть немного многословен. К счастью, математики находят способы выразить сами по себе, которые понятны, но избегают чрезмерного лингвистического сложность.
Пример. Предположим, что
C = «Чизстейк хороший.»
F = «Картофель фри жирный».
W = «Крылышки пряные».
Переведите следующие логические утверждения в слова (без логические символы):
(а)
(б)
(в)
(г).
(а) «Если сырный бифштекс плохой, а картофель фри не жирные, то крылышки острые ».
(б) Если я скажу: «Это не тот чизстейк, или крылышки острые », может быть непонятно, отрицание относится только к «сырный бифштекс хорош» или к дизъюнкция «сырный бифштекс хорош или крылышки пряный».
Так что лучше сказать: «Дело не в том, что сырный бифштекс или крылышки острые «, так как «либо» означает «сырный бифштекс» или «крылышки острые» — сгруппированы вместе в или-заявление.
В этом случае «либо» блокирует отрицание от применительно к «сырный бифштекс хорош», поэтому отрицание применить ко всему утверждению «или».
(c) «Дело не в том, что оба крылышка не острые, а сырный бифштекс хорош ». «либо» в (б), я добавил слово «оба» к указывают, что начальное отрицание применяется к соединению «крылышки не острые, а сырный бифштекс хороший».
В этом случае «оба» блокируют отрицание от применения к «крылья не острые», поэтому отрицание должно применяться ко всему высказыванию «и».
(d) Дословный перевод: «Дело не в том, что картофель-фри не жирный «. Или (что более неловко) можно сказать «Дело не в том, что картофель-фри жирные «.
Конечно, это означает то же самое, что и «Картофель фри жирный «.
Чтобы ответить на этот вопрос, вы, вероятно, должны спросить, переводиться буквально символами («синтаксически») или по значению («семантически»).На практике математики почти всегда упростил бы удаление двойного отрицания.
В наших предыдущих примерах использовались утверждения из реального мира. Что о актуальная математика?
Пример. Выразите следующие примеры фактический математический текст с использованием логических символов. (Тебе не нужно знаете, о чем говорят эти утверждения!)
(a) ([1], теорема 25.11) Пусть в полупростом кольце R — левый идеал с порождающим идемпотентом e.Тогда L является минимальным левым идеалом тогда и только тогда, когда является телом.
(b) ([2], предложение 14.11) Пусть X и Y -комплексы. Затем (с компактно порожденная топология) является CW комплексом и является подкомплексом.
(Цифры в квадратных скобках — ссылок (например, foonotes). Я скажу кое-что о них в конце этого раздела.)
(а) Вы могли бы выразить это с помощью логических связок в следующем способ. Позволять
A = «R — полупростое кольцо».
B = «- левый идеал с порождающим идемпотентный е «.
C = «L — минимальный левый идеал».
D = «тело».
Заявление можно перевести как.
Обратите внимание, что для определения логической формы вам не нужно знайте, что означают эти слова!
Математики используют слово «пусть», чтобы представить гипотез в формулировке теоремы. С точки зрения с точки зрения логической формы, утверждения, которые сопровождают «пусть» образуют if-часть условного оператора, как здесь делают операторы A и B.
(б) Пусть
P = «X и Y — комплексы».
Q = «(с компактно порожденным топология) является комплексом CW «.
R = «это подкомплекс».
Тогда предложение может быть записано в логической записи как.
Обратите внимание, что вы часто можете переводить высказывание по-разному. Например, я мог бы позволить
A = «X является -комплексом».
B = «Y является -комплексом».
C = «(с компактно порожденным топология) является комплексом CW «.
D = «это подкомплекс».
Теперь предложение становится. Нет никакой разницы в математическом содержании, и нет разницы в том, как вы это докажете.
Примечание. Было бы лучше выразить приведенные выше утверждения, используя кванторы , которые мы обсудим позже.
Кстати, математики обычно переводят , а не . математические утверждения в логическую нотацию в , делая математике (если они не работают в области математическая логика).Логический формализм служит основой для математика — и когда вначале вы запутались в логики, может быть полезно думать о вещах с точки зрения логики обозначение. Спустя некоторое время математики обретают интуитивное чутье для правильная логика, необходимая для их работы. Затем перевод преобразование математики в логику — это просто дополнительная работа, которая может усложнить задачу постигать.
Мы учимся читать, писать и говорить, используя слов в самом начале наши жизни.Это естественный способ общения людей и понимать. Символы сжимают журнал значений в маленькие пробелы, поэтому они хороши для коротких периодов вычислений. Но, как упаковывая много вещей в коробку, сжатие скрывает смысл, который почему пробираться сквозь сплошные страницы символов в математических заданиях может быть так пугающий.
Это правда, что некоторые люди предположили, что математика следует записать более формально (например, облегчать компьютерные доказательства), но в настоящее время математика обычно пишется комбинацией слов и символов.Вам следует научитесь правильно использовать и то, и другое.
Как показывает последний пример, логические следствия часто возникают в математические утверждения.
Определение. Если это подразумевается, то:
(a) P — это антецедент или гипотеза , а Q — это последующий или вывод .
(b) обратное является условным.
(c) инверсия является условной.
(d) контрапозитив является условным.
Я часто буду использовать if-part вместо «антецедент» или «гипотеза», и «тогдашняя часть» вместо «следствие» или «заключение». Хотя термины в определении больше традиционные, я думаю, «если-часть» и «потом-часть» понятнее для людей в наши дни.
Пример. Найдите антецедент (если-часть) и следствие (тогдашняя часть) следующего условного оператора:
«Если, тогда.»
Постройте обратное, обратное и противоположное.
Антецедент — «», а следствие — «».
Обратное — «Если, то».
Обратное — «Если, то».
Противоположным является «Если, тогда «.
Позже я покажу, что условный оператор и его контрапозитивными являются , логически эквивалентные .
Пример. Постройте обратное, обратное, и противоположность следующего условного утверждения:
«Если Кэлвин получит хот-дог, то Кэлвин не получит газировку.»
Обратное: «Если Кальвин не получает газировку, то Кальвин получает хот-дог ».
Обратное: «Если Кальвину не достанется хот-дог, то Кальвин получает газировку ». (Обратите внимание, что буквальное отрицание последующего «Это не тот случай, когда Кальвин не получает газировку». Но два отрицания уравновешиваются — это называется двойное отрицание — так что я получаю «Кальвин получает газировку».)
Противоположный ответ гласит: «Если Кальвин получит газировку, то Кальвин не получает хот-дог «.
В разных полях используются разные форматы цитирования источников. Для Например, вы могли видеть книги, в которых ссылки на источники используют сноски. Математики часто используют числа в квадратных скобках (например, «[1]» или «[2]») для цитирования. Цифры относятся к по ссылкам, которые указаны в конце статьи или книги. Помимо прочего, это уменьшает беспорядок на текстовых страницах и легче набирать.
Некоторые авторы предпочитают использовать сокращения, включающие название автор или дата публикации вместо цифр.Если ты публикуя статью в журнале, журнал обычно имеет стиль, которому вы должны следовать. Я думаю важные вещи должны давать полные ссылки, чтобы читатель мог их найти, и чтобы было понятно, какую ссылку в библиографии вы ссылаясь на.
Вот ссылки, которые я привел в примере выше.
[1] Чарльз В. Кертис и Ирвинг Райнер, Теория представлений Конечные группы и ассоциативные алгебры .Нью-Йорк: Interscience Publishers, 1962. [ISBN 0-470-18975-4]
[2] Брайтон Грей, Гомотопическая теория . Нью-Йорк: Academic Press, 1975. [ISBN 0-12-296050-5]
Контактная информация
Домашняя страница Брюса Икенаги
Авторские права 2019 Брюс Икенага
Логика| Britannica
Объем и основные концепции
Вывод — это управляемый правилами шаг от одного или нескольких предложений, называемых предпосылками, к новому предложению, обычно называемому заключением.Говорят, что правило вывода сохраняет истину, если вывод, полученный в результате применения правила, истинен, когда истинны посылки. Выводы, основанные на правилах сохранения истины, называются дедуктивными, а изучение таких выводов известно как дедуктивная логика. Правило вывода считается действительным или дедуктивно действительным, если оно обязательно сохраняет истину. То есть в любом мыслимом случае, в котором посылки истинны, вывод, сделанный правилом вывода, также будет истинным.Выводы, основанные на действительных правилах вывода, также считаются действительными.
Логика в узком смысле эквивалентна дедуктивной логике. По определению, такое рассуждение не может дать никакой информации (в форме заключения), которая еще не содержится в предпосылках. В более широком смысле, близком к обычному использованию, логика также включает изучение умозаключений, которые могут привести к заключениям, содержащим действительно новую информацию. Такие выводы называются амплиативными или индуктивными, а их формальное изучение известно как индуктивная логика.Они проиллюстрированы выводами, сделанными умными детективами, такими как вымышленный Шерлок Холмс.
Получите подписку Britannica Premium и получите доступ к эксклюзивному контенту. Подпишитесь сейчасКонтраст между дедуктивными и амплиативными выводами можно проиллюстрировать на следующих примерах. Из предпосылки «кто-то всем завидует» можно обоснованно сделать вывод, что «все кому-то завидуют». Не существует мыслимого случая, в котором посылка этого вывода истинна, а вывод ложен.Однако, когда судмедэксперт делает вывод из определенных свойств набора человеческих костей о приблизительном возрасте, росте и различных других характеристиках умершего человека, его аргументация является усиленной, потому что, по крайней мере, можно предположить, что сделанные им выводы ошиблись.
В еще более узком смысле логика ограничивается изучением выводов, которые зависят только от определенных логических концепций, выражаемых так называемыми «логическими константами» (логику в этом смысле иногда называют элементарной логикой).Наиболее важные логические константы — это кванторы, пропозициональные связки и идентичность. Квантификаторы являются формальными аналогами английских фраз, таких как «there is…» или «there exists…», а также «for every…» и «for all…». Они используются в формальных выражениях, таких как (∃ x ) (читается как «есть человек, назовите его x , так что для x верно то, что…») и (∀ y ) (читается как «для каждого человека, назовите его y , это верно для и , что… »).Основные пропозициональные связки в английском языке аппроксимируются «not» (~), «and» (&), «or» (∨) и «if… then…» (⊃). Идентичность, представленная символом ≡, обычно передается на английском языке как «… является…» или «… идентично…». Два приведенных выше примера предложения могут быть выражены как (1) и (2) соответственно:
(1) (∃ x ) (∀ y ) ( x завидует y )
(2) (∀ y ) (∃ x ) ( x завидует y )
Способ, которым различные логические константы в предложении связаны друг с другом, известен как логическая форма предложения.Логическую форму можно также рассматривать как результат замены всех нелогических понятий в предложении логическими константами или общими логическими символами, известными как переменные. Например, заменяя реляционное выражение «a завидует b» на «E (a, b)» в (1) и (2) выше, получаем (3) и (4) соответственно:
(3) (∃ x ) (∀ y ) E ( x , y )
(4) (∀ y ) (∃ x ) E ( x , y )
Формулы в (3) и (4) выше являются явным представлением логических форм соответствующих английских предложений.Изучение отношений между такими неинтерпретируемыми формулами называется формальной логикой.
Следует отметить, что логические константы имеют такое же значение в логических формулах, как (3) и (4), как и в предложениях, которые также содержат нелогические понятия, такие как (1) и (2). Логическая формула, переменные которой заменены нелогическими понятиями (значениями или референтами), называется «интерпретируемым» утверждением или просто «интерпретацией». Один из способов выразить обоснованность вывода из (3) в (4) состоит в том, чтобы сказать, что соответствующий вывод из предложения, подобного (1), к предложению, подобному (2), будет действительным для всех возможных интерпретаций (3) и (4).
Правильные логические выводы становятся возможными благодаря тому факту, что логические константы в сочетании с нелогическими концепциями позволяют утверждению представлять реальность. Действительно, эту репрезентативную функцию можно считать их самой фундаментальной особенностью. Предложение G, например, может быть достоверно выведено из другого предложения F, когда все сценарии, представленные F — сценарии, в которых F истинно, — также сценарии, представленные G — сценарии, в которых G истинно. В этом смысле (2) можно обоснованно вывести из (1), потому что все сценарии, в которых верно то, что кто-то завидует всем, также являются сценариями, в которых верно то, что всем завидует по крайней мере один человек.
Утверждение считается логически истинным, если оно истинно во всех возможных сценариях или «возможных мирах». Утверждение противоречиво, если оно ложно во всех возможных мирах. Таким образом, еще один способ выразить обоснованность вывода из F в G — сказать, что условное утверждение «Если F, то G» (F ⊃ G) логически истинно.
Однако не все философы принимают эти объяснения логической достоверности. Для некоторых из них логические истины — это просто самые общие истины о реальном мире.Для других это истина об определенной неуловимой части реального мира, содержащей абстрактные сущности, подобные логическим формам.
Помимо дедуктивной логики, существуют другие ветви логики, изучающие выводы, основанные на таких понятиях, как знание этого (эпистемическая логика), вера в это (доксастическая логика), время (временная логика) и моральное обязательство (деонтическая логика), среди которых другие. Эти области иногда называют философской логикой или прикладной логикой. Некоторые математики и философы считают теорию множеств, изучающую отношения принадлежности между множествами, еще одной ветвью логики.