Форма записи множества

— Пример записи множества всех чётных чисел

Фо́рма за́писи мно́жества (также зада́ние мно́жества, нота́ция мно́жества) в теории множеств и её приложениях к логике, математике и информатике — это математические обозначения для описания множества путём перечисления его элементов или указания свойств, которым элементы множества должны удовлетворять[1].

Общие сведения

Множества, задаваемые перечислением

Множество можно описать путём перечисления всех его элементов внутри фигурных скобок, как в следующих примерах:

  •  — это множество, содержащее четыре числа: 3, 7, 15 и 31.
  •  — это множество, содержащее a, b и c (порядок элементов в множестве не рассматривается, только их присутствие).

Такое задание иногда называется «методом перечисления» для конкретного множества[2].

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

  •  — это множество целых чисел от 1 до 100 включительно.
  •  — это множество всех натуральных чисел.
  •  — это множество всех целых чисел.

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

Так, означает множество всех натуральных чисел , таких что . При n < 1 это множество по соглашению считается пустым множеством . Аналогично, обозначает множество всех для .

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

  • номера домов по проспекту Косыгина  — это множество всех номеров домов по проспекту Косыгина.

Однако такой подход может привести к потере точности или двусмысленности. Так, список адресов по проспекту Косыгина может означать как список домов, так и список квартир в этих домах.

Определение множеств предикатами

Для записи множества могут использоваться предикаты (логические условия, которые для каждого значения переменной либо истинны, либо ложны), а не явное перечисление элементов[1]. Такая запись включает три элемента: переменная, двоеточие или вертикальная черта в качестве разделителя и логический предикат. В этом случае есть переменная слева от разделителя и правило справа от него. Эти три части заключаются в фигурные скобки:

или

Разделитель можно читать «такое что», «для которого», или «со свойством». Φ(x) — это предикат . Все значения переменной x, для которых предикат является истинным, принадлежат определяемому множеству. Все значения x, для которых предикат является ложным, множеству не принадлежат. Таким образом,  — это множество всех значений x, для которых верна формула Φ. Это может быть пустое множество, если никакое значение x не удовлетворяет формуле.

Задание базового множества

Базовое множество E указывается слева от вертикальной черты:

или оно может быть объединено с предикатом:

Символ ∈ обозначает принадлежность множеству, а  — логическое «И» (конъюнкция). Запись означает множество всех элементов x, принадлежащих некоторому базовому множеству E, для которых предикат принимает значение истина (см. параграф «Схема аксиом выделения» ниже). Если является конъюнкцией , то форма иногда записывается в виде , используя запятую вместо .

Если базовое множество не задано явно, то выражение вида для произвольного предиката подразумевает неограниченное собрание всех объектов, удовлетворяющих , что может привести к парадоксам. Например, при возникает парадокс Рассела[3]. Чтобы избежать подобных противоречий, в теории множеств принято правило: элементы нового множества нужно выделять предикатом из некоторого уже существующего множества E. Запись означает множество всех x из E, для которых предикат истинен.

Если базовое множество было указано заранее, его можно опускать в последующих записях.

Примеры

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

  •  — это множество всех строго положительных вещественных чисел, что можно записать в интервальных обозначениях как .
  •  — это множество . Это множество можно определить также, как ; см. параграф «эквивалентные предикаты задают равные множества» ниже.
  • Для каждого целого m мы можем определить . В качестве примеров: и .
  •  — множество упорядоченных пар вещественных чисел , удовлетворяющих условию для заданной функции .
  •  — это множество всех чётных натуральных чисел.Знак обозначает операцию «И» (конъюнкция). Знак ∃ обозначает «существует» (квантор существования). Так, например, читается как «существует x, такое что P(x) верно …».
  •  — это другой вариант записи того же самого множества чётных натуральных чисел. Условие слева от вертикальной черты можно опустить, так как оно логически следует из существования натурального , для которого .
  •  — это множество рациональных чисел, то есть это вещественные числа, которые можно записать как частное двух целых чисел.

Более сложные выражения в левой части

Расширение формы записи множеств заменяет единственную переменную x выражением. Таким образом вместо мы можем иметь , что можно читать как

.

Например:

  • , где  — множество всех натуральных чисел — это множество всех чётных натуральных чисел.
  • , где  — множество всех целых чисел — это , множество всех рациональных чисел.
  •  — это множество нечётных целых.
  •  — множество всех пар , где  — целое число.

Если обратные функции можно явно указать, выражение слева может быть исключено посредством простой подстановки. Рассмотрим в качестве примера множество . Сделаем подстановку , откуда получаем , затем заменим t в форме записи множества

Эквивалентные предикаты задают равные множества

Два множества равны тогда и только тогда, когда они имеют одни и те же элементы. Для множеств, задаваемых характеристическими предикатами (то есть в форме ), равенство выполняется тогда и только тогда, когда эти предикаты логически эквивалентны (с учётом базовых множеств). То есть:

тогда и только тогда, когда

.

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

Например:

Поскольку два предиката-правила логически эквивалентны:

Равенство выполняется, поскольку для любого вещественного числа условие равносильно условию . В частности, оба множества равны множеству .

Схема аксиом выделения

Во многих формальных теориях множеств, таких как система Цермело — Френкеля, нотация не является частью формального синтаксиса теории. Вместо этого используется схема аксиом выделения (также называемая аксиомой выделения или схемой выделения), которая гарантирует, что для любого множества и любого предиката существует множество :

Множество , существование которого утверждается аксиомой, есть в точности множество, описанное в форме записи .

Параллели в языках программирования

Аналогичная нотация, доступная во многих языках программирования (особенно Python и Haskell) — это Генератор списков (англ. list comprehension), который комбинирует операции map и фильтр над одним и более списком.

На языке Python скобки записи множества заменяются на квадратные скобки, круглые или фигурные скобки, для определения списка, генератора и множества соответственно. Python использует синтаксис английского языка. Haskell заменяет скобки записи множества квадратными скобками и использует математические символы, включая стандартную для записи множества вертикальную черту. В Haskell генератор списков записывается как [выражение | переменная <- список, условие], где <- означает «берётся из», а условия (стражи) служат для фильтрации элементов.

В Scala используется конструкция for-comprehension: запись for (enumerators) yield e создаёт коллекцию значений выражения e, где enumerators — это разделённые точкой с запятой генераторы (например, x <- список) и фильтры (например, if x > 0).

В языке C# аналогичная конструкция реализована через LINQ (Language Integrated Query) с ключевыми словами from, in, where, select.

В SQL роль характеристического предиката выполняет условие в предложении WHERE оператора SELECT: в результат попадают только строки таблицы, для которых это условие истинно. Рассмотрим следующие задания множеств в некоторых языках программирования:

Пример 1 Пример 2
Форма записи множества
Python
[l for l in L]
[(k, x) for k in K for x in X if P(x)]
Haskell
[l | l <- ls]
[(k, x) | k <- ks, x <- xs, p x]
Scala
for (l <- L) yield l
for (k <- K; x <- X if P(x)) yield (k,x)
C#
from l in L select l
from k in K from x in X where P(x) select (k,x)
SQL
SELECT l FROM L_set
 SELECT k, x FROM K_set, X_set WHERE P(x)

В примерах на языке Python используется генератор списков (англ. list comprehension) — конструкция для создания списков, цикл for для перебора элементов, оператор принадлежности `in` и условный оператор `if` для фильтрации.

Форма записи множества и генератор списков являются частными случаями более общей нотации, известной как монадическая абстракция.

Примечания

  1. 1 2 Колмогоров, Фомин, 2007, с. 18—21.
  2. Судоплатов, Овчинникова, 2017, с. Глава 1.
  3. Рассела парадокс. Большая российская энциклопедия. Дата обращения: 12 августа 2026.

Литература

  • Новиков П. С. Элементы математической логики : учебное пособие. — 3-е изд. — Москва: Ленанд, 2022. — С. 19—21. — 400 с. — ISBN 978-5-9710-9426-5.
  • Колмогоров А.Н., Фомин С.В. Элементы теории функций и функционального анализа : учебник. — Москва: Физматлит, 2007. — С. 18—21. — 573 с. — ISBN 978-5-9221-0266-7.
  • Судоплатов С.В., Овчинникова Е.В. Дискретная математика : учебник. — Новосибирск: НГТУ, 2012. — С. 1 Гл.. — ISBN 978-5-7782-2820-7.
  • Лутц М. Часть 1 // Изучаем Python. — Санкт-Петербург: Символ-Плюс, 2011. — С. Часть 1. — 1274 с. — ISBN 978-5-93286-159-2.

Дополнительно по теме