Я полагаю, что вам было бы полезно взглянуть на теорию абстрактной интерпретации, которая дает очень подробные ответы на похожие вопросы в несколько иной области анализа программ на основе решеток.
Мне кажется, что вы используете каркас, основанный на алгебрах. Я использую здесь слово алгебра в смысле универсальной алгебры, где я предполагаю, что ограничения на структуру алгебры задаются равенством между членами. Есть два разных смысла, в которых абстракции (или иерархии) входят в картину.
- Абстракция как отношение между двумя конкретными алгебрами. Вы можете сказать, что одна алгебра имеет более богатую структуру, чем другая алгебра, или что каждую задачу, которую вы можете решить с помощью одной алгебры, вы можете решить с другой. Этот тип отношений - это то, что было бы формализовано, чтобы купить гомоморфизмы, или какое-то другое отображение между алгебрами.
- Абстракционные иерархии как семейства алгебр. В вашем случае это будут семейства дельтовидных мышц с определенными свойствами. В качестве более общего примера рассмотрим все частично упорядоченные множества. Мы можем думать о решетках, дистрибутивных решетках и булевых решетках как о последовательности подсемейств, обладающих более богатыми свойствами.
Эти два понятия тесно связаны, но различны.
Абстракция между двумя структурами
Понимание абстрактной интерпретации заключается в том, что полезно придавать структурам, которые вы рассматриваете, понятие порядка. Рассмотрим две структуры
(M,fM) а также (N,fN), с fM:M→M а также fN:N→N как операции, представляющие интерес.
Гомоморфизм в смысле универсальной алгебры будет выглядеть примерно так:
h:M→N является функцией, удовлетворяющей равенству h(fM(a))=fN(h(a)),
Мы можем рассматривать две структуры, представленные выше, как предварительно упорядоченные структуры
(M,=,fM) а также (N,=,fN)
и гомоморфизм мы можем переписать, чтобы быть функцией, удовлетворяющей
- что если a=b тогда h(a)=h(b), а также
- для всех a в M, h(fM(a))=fN(h(a)),
Теперь предположим, что у вас есть другое доступное понятие аппроксимации, которое имеет смысл. Например, когда мы имеем дело с наборами состояний при верификации программы, включение подмножества имеет смысл для определенного приложения, или когда речь идет о формулах в автоматическом удержании, смысл имеет смысл. В целом, мы можем рассмотреть
(M,⪯,fM) а также (N,⊑,fN), где ⪯ а также ⊑ это предзаказы.
Теперь вместо гомоморфизма мы можем иметь функцию абстракции
α:M→N который
- монотонный, то есть всякий раз, когда a⪯b у нас есть α(a)⊑α(b), а также
- Полу коммутирует с операциями: α(fM(a))⊑fN(α(a)) для всех a в M,
Функция абстракции делает явной идею о том, что если структура N это абстракция структуры над Mзатем оценивая термин в N не может дать более точные результаты (в отношении понятия приближения в N), чем оценка того же термина в M а затем сопоставить его с N,
Теперь мы можем спросить, нужно ли подходить к проблеме с точки зрения абстракции, а не уточнения. Смысл, мы не можем сказать, чтоM это уточнение Nи сформулировать условия в терминах. Это именно то, что делает функция конкретизации .
Функция конкретизации γ:N→Mявляется монотонным и удовлетворяет неравенствуfM(γ(b))⪯γ(fN(b)),
Условия абстракции и конкретизации называются условиями устойчивости в абстрактной интерпретации. В особом случае этоα а также γобразуют связь Галуа, условия абстракции и конкретизации эквивалентны. В общем, они не эквивалентны.
Все, что мы сделали до сих пор, только формализует понятие абстракции между парой структур. То, что я сказал, можно изложить гораздо более кратко на языке теории категорий. Я избегал категорий из-за вашего комментария выше.
Абстракция Иерархии
Предположим, у нас есть структура Mнаделены предзаказом и некоторыми операциями. Мы можем рассмотреть все структурыN такой, что N это абстракция Mв смысле выше. Если у нас есть этоN1 это абстракция N2 и оба являются абстракциями MУ нас есть три элемента иерархии. Отношение «является абстракцией» позволяет нам определять предварительный порядок между структурами. Давайте назовем семейство структур, упорядоченных по абстракции, иерархией .
Если я рассмотрю ваш пример, похоже, что ваш абстрактный дельтоид может быть кандидатом на максимальный элемент в некоторой иерархии. Я не совсем уверен, потому что абстрактный дельтовидный отросток, по-видимому, является семейством дельтовидных отростков, а не конкретным дельтовидным отростком.
Теперь вы можете рассмотреть различные иерархии. Иерархия всех дельтовидных мышц. Под-иерархия, основанная на различных соображениях, которые у вас есть выше. Конкретным примером в контексте абстрактной интерпретации является иерархия полных решеток, которые находятся в связи Галуа с данной решеткой powerset, и субиерархии, состоящие только из дистрибутивных или только булевых решеток.
Как отмечает Мартин Бергер в комментариях, это понятие абстракции между иерархиями охватывается понятием соединений между категориями.
Категориальная перспектива
Был комментарий, запрашивающий дополнительные комментарии по категориям. Этого комментария больше нет, но я все равно отвечу.
Давайте сделаем шаг назад и посмотрим, что вы делаете при разработке дельтовидных мышц и что я описал выше, с более общей точки зрения. Мы заинтересованы в понимании существенной структуры сущностей, которыми мы манипулируем в контексте программного обеспечения, и отношений между этими сущностями.
Первое важное понимание состоит в том, что нас интересует не только набор элементов, но и операции, которые мы можем выполнять над этими элементами, и свойства этих операций. Эта интуиция определяет дизайн классов в объектно-ориентированном программировании и определение алгебраических структур. Вы уже сделали эту интуицию явной в определении дельтовидной мышцы, которая определила несколько интересных операций. В более общем смысле, это мыслительный процесс, лежащий в основе алгебраических описаний. Нам нужно определить, какие у нас операции и какими свойствами они обладают. Этот шаг говорит нам о структуре типов, с которой мы работаем.
Вторая реализация заключается в том, что нас интересует не только набор элементов, но и отношения абстракции. Самая простая формализация абстракции, которую я могу себе представить, - рассмотреть предварительно упорядоченное множество. Мы можем думать о предварительно упорядоченном множестве как о строгом обобщении множества о чем-то, что сопровождается понятием аппроксимации.
В идеале мы хотим работать в обстановке, в которой обе идеи являются первоклассными гражданами. Это означает, что нам нужна типизированная настройка, подобная настройке алгебры, а также настройка предзаказа, учитывающая приближение. Первым шагом в этом направлении является рассмотрение решетки. Решетка является концептуально интересной структурой, потому что мы можем определить ее двумя эквивалентными способами.
- Мы можем определить решетку эквационально как множество (L,⊓,⊔)оборудована встреча и операция соединения. Затем мы можем вывести частичный порядок, определивa⊑b держать всякий раз, когда a⊓b=a,
- Альтернативой является определение решетки как частично упорядоченного множества. (L,⊑) удовлетворяя, что каждая пара элементов в Lимеет уникальную наибольшую нижнюю границу и наименее верхнюю границу. Затем мы можем вывести операции встречи и соединения из частичного порядка.
Решетка, таким образом, представляет собой математическую структуру, к которой можно подходить с точки зрения алгебры или аппроксимации. Недостатком здесь является то, что сами элементы решетки не обладают структурой типа, которая учитывается в приближении аппроксимации. То есть мы не можем сравнивать элементы, основываясь на понятии наличия более или менее структуры.
В контексте вашей проблемы вы можете рассматривать категории как естественное обобщение предзаказов, которые охватывают как понятие аппроксимации (в морфизмах), так и структуру типов в алгебраической среде. Настройка теории категорий позволяет нам обойтись без различных ненужных различий и сосредоточиться на структуре сущностей, которые вас интересуют, и приближении этой структуры. Универсальные свойства и присоединения дают вам очень мощный словарь и инструменты для понимания ландшафта структур, которые вас интересуют, и позволяют строго математически трактовать даже интуитивные понятия, такие как различные уровни абстракции.
Что касается моего комментария об абстрактных дельтоидах, то, похоже, вам нужна категория. Абстрактный дельтоид - это особая категория, аналогичная категории множеств. Есть другие категории, которые вы рассматриваете. Сначала я думал, что вы определяете дельтовидную мышцу, которая в смысле теории категорий будет конечным (или конечным) объектом.
Вы изучаете вопросы, на которые теория категорий дает очень удовлетворительные ответы. Я надеюсь, что вы сможете прийти к такому выводу самостоятельно.
Ссылки
- Абстрактная интерпретация и применение к логическим программам Патрика Кузо и Радии Кузо. Первая половина этой статьи представляет собой введение в общий учебный стиль к теме абстрактной интерпретации.
- Абстрактные рамки интерпретации , Патрик Кузо и Радия Кузо. В этой статье подробно рассматриваются все возможности, которые я набросал выше в отношении функций абстракции и конкретизации.
- Систематическое проектирование структур анализа программ , Патрик Кузо и Радия Кузо. Это был документ, который ввел понятие иерархий абстракций в контексте анализа программы.
- Обобщенное сильное сохранение посредством абстрактной интерпретации Франческо Ранзато и Франческо Таппаро. Эта статья применяет эти идеи в другом контексте абстракций, которые сохраняют формулы временной логики. Вы найдете рабочие примеры булевых и дистрибутивных абстракций здесь.
- Абстрактная интерпретация, логические отношения и расширения Кан , Самсон Абрамский. Представляет перспективу теории категорий на материале теории порядка выше.