Язык соединений и превращений для формальной эвологии (Даниил Исакевич, OSSDEVCONF-2024)
Материал из 0x1.tv
- Докладчик
- Даниил Исакевич
Язык записи химических реакций обобщён для описания развития. Показан пример представления высокоуровневого понятия на полученном «метахимическом» языке.
Предложена графическая нотация, изображающая наборы формул языка в виде графов и реализованная средствами Рефал-М и graphviz.
Содержание
Видео
Презентация
Thesis
Предыстория
Классической логики для описания развития недостаточно; нужна неклассическая[1] со своим языком — например, общеизвестным языком записи химических реакций.
Попытки расширить его применения: учение о «специальной химии», которая «рассматривает как элемент каждую субстанцию, имеющую отдельную функцию, даже самую сложную»[2]; утверждение о том, что «связи в ландшафтах напоминают цепочку реакций, которые совершаются в них»[3]; переусложнённая линейная логика Жирара[4].
Описание языка
Две связки, достаточные для записи реакций:
- соединение «+» (коммутативное и ассоциативное) и превращение «→»;
- «+» имеет приоритет перед «→», так что выражение
пишем без скобок. Чтобы строить формулы-определения, добавим в язык символ «=». Пример:
Формула определяет «C» — соединение «A» и «B».
Формула определяет «элемент» «C» — «субстанцию, имеющую отдельную функцию»[2] превращать (при его наличии) в «B».
Эти «субстанции» сами могут участвовать в соединениях и превращениях.
Так мы получаем «химическую» надстройку над языком реакций — «метахимический» язык соединений и превращений (ЯСП). Соединения этих «субстанций» могут повлечь недетерминированность их функции, например
есть превращение в одну из альтернатив и .
Это превращение можно использовать, чтобы формализовать понятие выбора и :
Полученный набор формул — второго уровня (содержит превращения превращений).
Графическая нотация
Набор формул ЯСП изображается схемой. Пример — на рисунке.
Схема — граф, имеющий узлы имён (с текстовыми метками), соединения «+» (частей в целое), превращения «→» (входа в выход).
Дуги входа и выхода снабжены стрелкой, направленной соответственно к узлу превращения и от него. Ещё одна дуга при узле превращения не имеет стрелок, определяет само превращение и может быть связана другим концом с узлом имени. Одна из дуг при узле соединения изображает соединение, а остальные дуги — его составляющие.
При разных инструментах обозначения могут различаться. Например, узел соединения естественно рисовать как слияние линий, но пакет graphviz не умеет этого делать правильно. В graphviz узел соединения обозначим точкой, а дугу соединения пометим дужкой, раскрытой к этому узлу. Узел превращения изобразим ромбом; входы и выходы — стрелками; дугу превращения — без стрелок.
Катализаторы
Взаимодействие — реакция вида . Если одна из взаимодействующих частей неизменна, то реакция — действие неизменной части на меняющуюся. Например, в формуле
учтено лишь воздействие книги на читателя. Неизменную действующую часть («катализатор» превращения) будем выделять явно, что делает формулы
и схемы выразительней.
На схеме катализатор будем изображать при узле превращения как отдельную дугу с двумя стрелками.
Программная реализация
Для ввода связок ЯСП с клавиатуры используются +, ->, =:
Чтение = Читатель + Книга -> Умный читатель + Книга.
Имена можно снабжать HTML-разметкой. Формулу можно размещать на последовательных строках и нужно завершать точкой. Конец набора формул — пустая строка либо конец файла. Программа[5] на Рефале[6] читает набор формул и превращает его в описания узлов и дуг, которые включаются в описание графа схемы для программы dot пакета graphviz.
Примечания и ссылки
- ↑ Непейвода Н. Н. Прикладная логика: учебное пособие. 3-е изд., существ. перераб. и доп. — Москва, Берлин: Директ-Медиа, 2019. — 575 с.: ил. DOI: 10.23681/561272
- ↑ 2,0 2,1 Успенский П. Д. В поисках чудесного. Фрагменты неизвестного учения. Перевод Н. В. фон Бока. — СПб.: Издательство Чернышева, 1992. https://lib.ru/URIKOVA/USPENSKIJ/poiski.txt
- ↑ Кружалин В. И., Симонов Ю. Г., Симонова Т. Ю. Человек, общество, рельеф: Основы социально-экономической геоморфологии. — М.: Диалог культур, 2004. — 120 с., 8 с. цв. вкл.
- ↑ Girard J.-Y. Linear Logic: Its Syntax and Semantics. [1]
- ↑ Исакевич Д. Преобразователь формул ЯСП в схемы GraphViz. [2]
- ↑ Трусов С. strusov/refal-machine: Исполнитель диалекта Рефал. [3]