Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Мультифунктор в категорию множеств (\(\mathbf{Mol} \to \mathbf{Set}\))

$$ F : \mathbf{Mol} \to \mathbf{Set} $$

Все объекты из \(\mathbf{Mol}\) превращаются во множества с одним элементом:

$$ F(\mathsf{H_2O}) = \{\mathsf{H_2O}\} $$

$$ F(\mathsf{CO_2}) = \{\mathsf{CO_2}\} $$

$$ \cdots $$

При этом в категории \(\mathbf{Set}\) всегда есть множество всех молекул:

$$ K = \bigcup_{m \in \mathrm{Ob}(\mathbf{Mol})} F(m), \quad K \in \mathbf{Set} $$

Каждому морфизму \(f: (X_1, \dots, X_n) \to Y\) в \(\mathbf{Mol}\) сопоставляется функция:

$$ F(f): F(X_1) \times \dots \times F(X_n) \to F(Y) $$

Эти функции не несут в себе интересной динамики, однако сам функтор \(F\) позволяет нам определить множество всех молекул \(K\), а также использовать его как основу для дальнейших отображений.

$$ \mathsf{H_2O} \in K $$

При этом там не существует молекулы \(2H_2O\):

$$ \mathsf{2H_2O} \notin K $$

Давайте попробуем описать множество всех химических элементов \(E\):

$$ E \subset K $$

$$ \mathsf{H} \in E $$

$$ \mathsf{H_2O} \notin E $$

Давайте также введем подмножества для разных элементов, например металлов или неметеллов:

  • \(NM\) - множество неметаллов:

$$ NM \subset E $$

$$ \{\mathsf{H}, \mathsf{C}, \mathsf{N}, \mathsf{O}\} \subset NM $$

  • \(HM\) - множество полуметаллов:

$$ HM \subset E $$

  • \(M\) - множество металлов:

$$ M \subset E $$

$$ \mathsf{Ti} \in M $$

При этом:

$$ NM \cap M = \emptyset $$

$$ HM \cap M = \emptyset $$

$$ HM \cap NM = \emptyset $$

При этом это множество можно также разделить на разные типы металлов:

  • \(M_{A}\) - Щелочные металлы:

$$ M_A \subset M $$

$$ \mathsf{Na} \in M_{A} $$

Можно еще описать это множество так (все элементы первой группы кроме водорода):

$$ M_A = \{e \in E \mid G(e) = 1\} \setminus \{\mathsf{H}\} = \{\mathsf{Li}, \mathsf{Na}, \mathsf{K}, \mathsf{Rb}, \mathsf{Cs}, \mathsf{Fr}\} $$

Функция \(G\) будет описана чуть ниже. Это такая функция, которая каждому элементу присваивает группу.

  • Щелочноземельные металлы(\(M_{AE}\))

$$ M_{AE} \subset M $$

При этом это все элементы второй группы:

$$ M_{AE} = \{e \in E \mid G(e) = 2\} = \{\mathsf{Be}, \mathsf{Mg}, \mathsf{Ca}, \mathsf{Sr}, \mathsf{Ba}, \mathsf{Ra}\} $$

  • Переходные металлы (\(M_T\)): \(M_T \subset M\)
  • Лантаноиды (\(M_L\)): \(M_L \subset M\)
  • Актиноиды (\(M_{AC}\)): \(M_{AC} \subset M\)
  • Постпереходные металлы (\(M_{PT}\)): \(M_{PT} \subset M\)

Давайте также опишем множество агрегатных состояний, которые может принимать та или иная молекула:

  • Газ \(GF\) (Gas Form)
  • Жидкость \(LF\) (Liquid Form)
  • Твердое \(SF\) (Solid Form)

$$ GF \subset K \quad ;\quad LF \subset K \quad ; \quad SF \subset K $$

Например, молекула \(\mathsf{H_2O}\) находится во всех трех этих множествах одновременно:

$$ \mathsf{H_2O} \in GF \cap LF \cap SF $$

Что означает, что эта молекула может иметь все три агрегатных состояния.


При этом существует функция, для получения картежа всех элементов, которые находятся в молекуле:

$$ \mathbb{E} : K \to \bigcup_{k=1}^\infty E^k $$

Например:

$$ \mathbb{E}(\mathsf{H_2O}) = (\mathsf{H}, \mathsf{H}, \mathsf{O}) $$

$$ \mathbb{E}(\mathsf{O_2}) = (\mathsf{O}, \mathsf{O}) $$

Также есть еще одна функция с таким же именем:

$$ \mathbb{E} : \mathcal{P}(K) \to \bigcup_{k=1}^\infty E^k $$

Для этой функции даже можно составить реализацию:

$$ \mathbb{E}(x \in \mathcal{P}(K)) = \bigcup_{k \in x} \mathbb{E}(k) $$

Как вы помните, наши объекты из \(\mathbf{Mol}\) переходят во множества с одним элементом (\(F(H_2O) = \{H_2O\}\)). Любое такое множество является элементом множества \(\mathcal{P}(K)\), поэтому возможна запись:

$$ \mathbb{E}(F(\mathsf{H_2O})) = (\mathsf{H}, \mathsf{H}, \mathsf{O}), \quad \mathsf{H_2O} \in \mathbf{Mol} $$

Или даже это:

$$ \mathbb{E}(\{ \mathsf{H_2O}, \ \mathsf{O_2} \}) = \mathbb{E}(\mathsf{H_2O}) \cup \mathbb{E}(\mathsf{O_2}) = (\mathsf{H}, \mathsf{H}, \mathsf{O}, \mathsf{O}, \mathsf{O}) $$

Молярная масса

Давайте введем функцию для нахождения малярной массы:

$$ M: E \to \mathbb{R}^+ $$

Например для элемента \(\mathsf{O}\):

$$ M(\mathsf{O}) = 16 $$

Давайте также введем еще одну функцию:

$$ M : K \to \mathbb{R}^+ $$

При этом у этой функции всегда одна реализация:

$$ M(k\in K) = \sum_{e \in \mathbb{E}(k)}M(e) $$

Для молекулы \(\mathsf{O_2}\):

$$ M(\mathsf{O_2}) = M(O) + M(O) = 32 $$

Также есть еще одна функция:

$$ M : \mathcal{P}(K) \to \mathbb{N} $$ $$ M(x \in \mathcal{P}(K)) = \sum_{e \in x} M(e) $$

С которой возможна такая запись:

$$ M(F(\mathsf{O_2})) = M(\mathsf{O}) + M(\mathsf{O}) = 32, \quad \mathsf{O_2} \in \mathbf{Mol} $$ $$ M(\{\mathsf{H_2O}, \ \mathsf{O_2}\}) = M(\mathsf{H_2O}) + M(\mathsf{O_2}) = M(\mathsf{H}) + M(\mathsf{H}) + M(\mathsf{O}) + M(\mathsf{O}) + M(\mathsf{O}) = 50 $$

Атомный номер (число протонов в ядре атома)

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

$$ Z : E \to \mathbb{N} $$

$$ Z(\mathsf{N}) = 7 $$ $$ \mathsf{O} \mapsto 8, \quad \mathsf{Ni} \mapsto 28, \quad \mathsf{Ti} \mapsto 22, \quad \cdots $$

Группа

Есть функция, сопоставляющая каждому элементу группу:

$$ G : E \to \mathbb{N} $$

$$ G(\mathsf{Co}) = 9 $$

Период

Есть функция, сопоставляющая каждому элементу период:

$$ P : E \to \mathbb{N} $$

$$ P(\mathsf{K}) = 4 $$

Относительная атомная масса

Есть функция, сопоставляющая каждому элементу относительную атомную массу:

$$ Ar : E \to \mathbb{R}^+ $$

$$ Ar(\mathsf{H}) = 1,008 $$

Массовое число

Есть функция, сопоставляющая каждому элементу массовое число:

$$ A : E \to \mathbb{R}^+ $$

Число нейтронов

Есть функция, сопоставляющая каждому элементу число нейтронов:

$$ N : E \to \mathbb{R}^+ $$

При этом:

$$ N(\mathsf{e}) = A(\mathsf{e}) - Z(\mathsf{e}), \quad e \in E $$

Имена молекул

Как вы помните в категории \(\mathbf{Mol}\) все молекулы не имеют имен и являются абстрактными молекулами. Имена мы даем отдельно, определяя множество \(Names\):

\(Names\) — это привычные имена молекул на подобии \(\mathsf{H_2O}\):

$$ \mathsf{H_2O} \in Names $$

Там также лежат имена, которые редко используются:

$$ \mathsf{OH_2} \in Names $$

Существует функция:

$$ Name : K \to \mathcal{P}(Names) $$

И теперь мы можем полностью абстрагироваться от названий молекул, чтобы не возникало путаницы, что мы подразумеваем под водой (\(\mathsf{H_2O}\) и / или \(\mathsf{OH_2}\)):

$$ Name(▲) = \{\mathsf{H_2O}, \ \mathsf{OH_2}, \ \dots\} $$

В данном случае \(▲\) — это вода. Мы как-бы берем то, что прячется за словами "вода", "\(\mathsf{H_2O}\)}" или "\(\mathsf{OH_2}\)".