Обозначение конструктора множеств - Set-builder notation

Набор всех четных целых чисел ,
выраженный в нотации создателя множеств.

В теории множеств и ее приложений к логике , математике и информатике , набор-конструктор обозначение является математическая нотация для описания множества перечислением его элементов , или с указанием свойств , что ее члены должны удовлетворять.

Определение наборов свойств также известно как набор понимания , установленная абстракция или определение набора в интенции .

Наборы, определяемые перечислением

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

  • - это набор, содержащий четыре числа 3, 7, 15 и 31 и ничего больше.
  • - это набор, содержащий a , b и c , и ничего больше (нет порядка среди элементов набора).

Иногда это называют «методом составления списков» для определения набора.

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

  • представляет собой набор целых чисел от 1 до 100 включительно.
  • это набор натуральных чисел .
  • это набор всех целых чисел.

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

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

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

  • Адреса на Пайн-стрит - это совокупность всех адресов на Пайн-стрит.

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

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

Нотация построителя множеств может использоваться для описания набора, который определяется предикатом , то есть логической формулой, которая принимает значение true для элемента набора и false в противном случае. В этой форме нотация конструктора множеств состоит из трех частей: переменной, разделителя двоеточия или вертикальной черты и предиката. Таким образом, слева от разделителя находится переменная, а справа - правило. Эти три части заключены в фигурные скобки:

или

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

Указание домена

Слева от вертикальной полосы может появиться домен E :

или добавив его к сказуемому:

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

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

В случаях, когда множество E ясно из контекста, оно может быть не указано явно. В литературе принято, чтобы автор заранее формулировал предметную область, а затем не указывал ее в нотации создателя множеств. Например, автор может сказать что-то вроде: «Если не указано иное, переменные следует рассматривать как натуральные числа». Хотя в менее формальных контекстах, в которых можно предположить предметную область, письменное упоминание часто не требуется.

Примеры

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

  • - это множество всех строго положительных действительных чисел , которые можно записать в интервальной записи как .
  • это набор . Этот набор также можно определить как ; см. эквивалентные предикаты, дающие равные множества ниже.
  • Для каждого целого числа m мы можем определить . В качестве примера и .
  • - это набор пар действительных чисел таких, что y больше 0 и меньше f ( x ) для данной функции f . Здесь декартово произведение обозначает набор упорядоченных пар действительных чисел.
  • - это множество всех четных натуральных чисел . Знак означает «и», который известен как логическая связь . Знак ∃ означает «существует», что известно как количественная оценка существования . Так, например, читается как «существует x такой, что P ( x )».
  • вариант записи для того же набора четных натуральных чисел. Нет необходимости указывать, что n - натуральное число, поскольку это подразумевается формулой справа.
  • - множество рациональных чисел ; то есть действительные числа, которые можно записать как отношение двух целых чисел .

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

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

.

Например:

  • , где - множество всех натуральных чисел, - множество всех четных натуральных чисел.
  • , где - множество всех целых чисел, - множество всех рациональных чисел.
  • - множество нечетных целых чисел.
  • создает набор пар, где каждая пара ставит целое число в соответствие с нечетным целым числом.

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

Эквивалентные предикаты дают равные наборы

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

если и только если

.

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

Например,

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

Эта эквивалентность имеет место, потому что для любого действительного числа x мы имеем тогда и только тогда, когда x является рациональным числом с . В частности, оба набора равны множеству .

Установить аксиому существования

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

Множество Y, полученное с помощью этой аксиомы, в точности описывается в обозначении построителя множеств как .

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

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

В Python фигурные скобки конструктора множеств заменены квадратными скобками, круглыми скобками или фигурными скобками, что дает список, генератор и набор объектов соответственно. Python использует синтаксис на основе английского языка. Haskell заменяет фигурные скобки конструктора множеств квадратными скобками и использует символы, включая стандартную вертикальную черту конструктора множеств.

То же самое может быть достигнуто в Scala с использованием Sequence Computing, где ключевое слово "for" возвращает список полученных переменных с помощью ключевого слова "yield".

Рассмотрим эти примеры нотации построителя множеств на некоторых языках программирования:

Пример 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)

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

Смотрите также

Примечания