Формальне представлення ієрархії абстракцій


9

Вступ

Я пишу кандидатську дисертацію з абстрактного моделювання дельта (ADM), абстрактного алгебраїчного опису модифікацій (відомих як дельти ), здатних діяти на продукти (як у «програмних продуктах»). Це може бути використано для організації набору супутніх продуктів ("продуктової лінійки") як простого основного продукту та набору умовно застосованих дельт, і таким чином давати можливість більшого повторного використання основних артефактів.

Деталі дельтаного моделювання не дуже важливі для мого питання, але ADM є хорошим прикладом для пояснення проблеми, тому я введу найважливіші поняття.

Фон

Основна структура інтересу - дельтоїд (P,D,,ϵ,[[]]). Вироби виходять з універсального наборуP. Дельти походять від моноїда(D,,ϵ) з оператором композиції :D×DD і нейтральний елемент ϵD. Оператор семантичної оцінки[[]]:D2P×P перетворює «синтаксичну» дельту dD у відношення [[d]]P×P який вирішує як d може модифікувати продукт.

Питання

Оскільки ADM - це абстрактна алгебра, більшість моїх робіт абстрагується від конкретного характеру виробів і дельтів, і ряд результатів доведено, не опускаючись до більш конкретного рівня. Очікується, що ці результати перенесуться на більш конкретну область, але я ще не формалізував це.

Існують приклади та приклади, які працюють в конкретній області: об'єктно-орієнтований вихідний код, LATEXкод, натуральні номери, профілі мобільного телефону тощо. Існують також деякі проміжні етапи абстрагування, такі як вкладені пари ключ-значення. Для кожного я переосмислюю (або "уточнюю")(P,D,,ϵ,[[]]).

Я хотів би зробити цю ієрархію явною: (1) забезпечити більшу чіткість для читача та (2) формально обґрунтувати, використовуючи результати з більш абстрактних рівнів.

Моє запитання: Як я повинен формально організувати ці рівні абстракції?

Я сподіваюся, що зможу міркувати простим уточненням на дельтоїди. І я відчуваю, що це можна було б визначити, просто звернувшись до відношення підмножини наP і D. Але я ще не впевнений. Чи існують підходи до того, яку проблему я описую? Публікації, які я повинен прочитати?

Дельтоїдна ієрархія

Щоб краще зрозуміти, що я маю на увазі, ось дельтаїдна ієрархія абстракції, яку я маю на увазі:

  • Анотація Дельтоїда : Це основний дельтоїд, в якому продукти та дельти все ще можуть бути будь-якими. Більшість теорій базується на цьому, більшість результатів доведено саме на цьому рівні.
    • Реляційний Дельтоїд : Дельти - це відносиниP і [[]] є функцією ідентичності.
      • Функціональний дельтоїд : дельти функціональні (або «детерміновані»).
    • Дельтоїд натурального числа : Це найпростіший бетонний дельтоїд, створений просто для ілюстрації дельтоїдної вишуканості. Тут продуктиP=N - натуральні числа та дельти D=N+ - це прості послідовності чисел, що представляють поліноміальні операції.
    • Вкладений ключ-значення пари Дельтоїд : проміжний рівень абстракції для будь-якої ієрархії, в якій ключі відображаються на значення або на підієрархії. Дельти можуть виконувати модифікації цього "дерева" на будь-якій глибині.
      • OOP Deltoid : для абстрактних уявлень об'єктно-орієнтованих програм. Вони в основному є вкладеними парами «ключ-значення», оскільки програми відображають назви модулів на набори класів, які відображають імена класів у набори методів, які відображають імена методів у реалізацію методів.
        • ABS Deltoid : ABS - це реальна об'єктно-орієнтована мова програмування.
      • Профіль телефону Deltoid : Тут продукт являє собою плоське відображення параметрів (наприклад, гучності, яскравості екрана тощо) на значення з відповідного домену.
    • LATEXDeltoid : Продукти єLATEX документи та дельти модифікують їх шляхом перевизначення макросів.

Ну, це повинно дати вам чітке уявлення про те, що я маю на увазі. Зауважте, до речі, що для будь-якого дельтоїда,[[]] це моноїдний гомоморфізм від D до D належність до відповідного реляційного дельтоїда.

Фактична ієрархія може бути більшою. Він також може бути інакше організований, виходячи з того, яку теорію вдосконалення я буду використовувати. Наприклад, якщо я перейду до простого відношення підмножини наP і DABS Deltoid не підходив би до вкладених клавішних пар Deltoid, оскільки його продукти та дельти - це фактично простий текст (вихідний код). Але дана ієрархія все ж може працювати, якщо я використовую гомоморфізми.


3
Чи можете ви зробити більш чітким, що таке ієрархія абстракції? Які речі - це абстракції, які інші речі?
Дейв Кларк

Привіт Дейв! Я оновив своє запитання. Я сподіваюся, що це трохи прояснює речі.
mhelvens

4
Як щодо побудови категорій для кожного виду дельтоїдів, а потім вивчити ліві та праві суміжні функтори (якщо такі є) між ними?
Мартін Бергер

Боюсь, я не добре розбираюся в теорії категорій. :-(
mhelvens

Відповіді:


8

Я вважаю, вам було б корисно шукати теорію абстрактної інтерпретації, яка дає дуже ґрунтовні відповіді на подібні питання дещо іншої області програмного аналізу на основі ґрат.

Мені здається, ви використовуєте рамку, засновану на алгебрах. Я використовую тут слово алгебра у значенні універсальної алгебри, де я припускаю, що обмеження на структуру алгебри задаються рівностями між термінами. Є два різні органи чуття, в яких абстракції (або ієрархії) входять у картину.

  1. Абстракція як взаємозв'язок між двома конкретними алгебрами. Ви можете сказати, що одна алгебра має більш багату структуру, ніж інша алгебра, або що кожну проблему, яку ви можете вирішити за допомогою однієї алгебри, ви можете вирішити з іншою. Такий взаємозв'язок - це те, що було б формалізовано при купівлі гомоморфізмів чи іншому відображенні між алгебрами.
  2. Ієрархії абстракцій як сім'ї алгебр. У вашому випадку це були б сімейства дельтоїдів з певними властивостями. Як більш загальний приклад розглянемо всі частково впорядковані набори. Ми можемо розглядати решітки, розподільні решітки та булеві ґрати як послідовність підсімей, які мають багатші властивості.

Два поняття тісно пов'язані, але різні.

Абстракція між двома структурами

Розуміння абстрактної інтерпретації полягає в тому, що корисно наділити структури, які ви вважаєте, поняттям порядку. Розглянемо дві структури

(M,fM) і (N,fN), с fM:MM і fN:NN як операції, що представляють інтерес.

Гомоморфізм у сенсі універсальної алгебри виглядатиме приблизно так:

h:MN це функція, що задовольняє рівність h(fM(a))=fN(h(a)).

Ми можемо розглядати дві структури, що з’являються вище, як попередньо замовлені структури

(M,=,fM) і (N,=,fN)

і гомоморфізм, який ми можемо переписати, це функція, що задовольняє

  1. що якщо a=b тоді h(a)=h(b), і
  2. для усіх a в M, h(fM(a))=fN(h(a)).

Тепер, припустимо, у вас є якесь інше поняття наближення, яке має сенс. Наприклад, коли ми маємо справу з наборами станів під час перевірки програми, включення підмножини має сенс для певного застосування, або коли ми маємо справу з формулами в автоматизованому виведенні, імплікація має сенс. Більш загально, ми можемо розглянути

(M,,fM) і (N,,fN), де і є передлежаннями.

Тепер замість гомоморфізму ми можемо мати функцію абстракції

α:MN який

  1. монотонна, тобто коли завгодно ab ми маємо α(a)α(b), і
  2. напівзміни з операціями: α(fM(a))fN(α(a)) для усіх a в M.

Функція абстракції дає чітку думку про те, що якщо структура закінчиться N - це абстракція структури над M, потім оцінюючи термін в N не може дати більш точних результатів (стосовно поняття наближення в N), ніж оцінювання того ж терміна в M а потім відобразити його на карту N.

Тепер ми можемо запитати, чи потрібно підходити до проблеми з точки зору абстракції на відміну від уточнення. Значення, чи не можемо ми цього сказати?M є уточненням Nі сформулювати умови в термінах. Саме це робить функція конкретизації .

Функція конкретизації γ:NMє монотонним і задовольняє нерівністьfM(γ(b))γ(fN(b)).

Умови абстракції та конкретизації називаються умовами міцності в абстрактній інтерпретації. У окремому випадку, щоα і γутворюють зв'язок Галуа, умови абстракції та конкретизації рівнозначні. Взагалі вони не рівноцінні.

Все, що ми зробили поки що, лише формалізує поняття абстракції між парою структур. Те, що я говорив, може бути сформульовано набагато коротше мовою теорії категорій. Я уникав категорій через ваш коментар вище.

Ієрархії абстракції

Припустимо, у нас є структура Mнаділений попереднім замовленням та деякими операціями. Ми можемо розглянути всі структуриN такий як N є абстракцією Mу сенсі вище. Якщо у нас це єN1 є абстракцією N2 і обидва є абстракціями M, у нас є три елементи ієрархії. Співвідношення "є абстракцією" дозволяє нам визначити попередній порядок між структурами. Назвемо сім'ю структур, упорядкованих абстракцією, ієрархією .

Якщо я розглядаю ваш приклад, виявляється, що ваш абстрактний дельтоїд може бути кандидатом на максимальний елемент у певній ієрархії. Я не зовсім впевнений, оскільки абстрактний дельтоїд виявляється сімейством дельтоїдів, а не специфічним дельтоїдом.

Тепер ви можете розглянути різні ієрархії. Ієрархія всіх дельтоїдів. Підієрархія, що ґрунтується на різних міркуваннях, зазначених вище. Конкретний приклад у контексті абстрактної інтерпретації - це ієрархія повних решіток, що знаходяться у зв’язку Галуа з заданою решіткою енергетичного набору, та підієрархій, що складаються лише з розподільних або лише булевих ґрат.

Як в коментарях зазначає Мартін Бергер, це поняття абстракції між ієрархіями захоплюється поняттям доповнень між категоріями.

Категорична перспектива

Був коментар із проханням отримати більше коментарів щодо категорій. Цього коментаря вже немає, але я все одно відповім.

Давайте відступимо і подивимось, що ви робите при розробці дельтоїдів і що я описав вище з більш загальної точки зору. Ми зацікавлені в розумінні суттєвої структури об'єктів, якими ми маніпулюємо, в програмному контексті та відносин між цими сутностями.

Перша важлива усвідомлення полягає в тому, що нас цікавить не лише набір елементів, а операції, які ми можемо виконувати над цими елементами, та властивості цих операцій. Ця інтуїція визначає дизайн класів об'єктно-орієнтованого програмування та визначення алгебраїчних структур. Ви вже зробили цю інтуїцію явною у визначенні дельтоїда, який визначив кілька цікавих операцій. Більш загально, це процес мислення, що лежить в основі алгебраїчних описів. Нам потрібно визначити, якими є наші операції та якими властивостями вони володіють. Цей крок розповість нам про тип структури, з якою ми працюємо.

Друге усвідомлення полягає в тому, що нас цікавить не просто набір елементів, а абстрактні відносини. Найпростіша формалізація, яку я можу собі уявити за абстракцією, - це розглянути наборовий набір. Ми можемо думати про заздалегідь заданий набір як суворе узагальнення множини до чогось, що випливає з поняттям наближення.

Ми в ідеалі хочемо працювати в умовах, коли обидві думки вище є громадянами першого класу. Це означає, що ми хочемо ввести налаштування, подібне до алгебри, а також налаштування попереднього замовлення. Першим кроком у цьому напрямку є розгляд решітки. Решітка - це концептуально цікава структура, оскільки ми можемо визначити її двома рівнозначними способами.

  1. Ми можемо визначити решітку рівнянням як множину (L,,)обладнаний операцією зустрічі та приєднання. Тоді ми можемо отримати частковий порядок шляхом визначенняab проводити коли завгодно ab=a.
  2. Альтернативою є визначення решітки як частково впорядкованого набору (L,) задовольняючи, що кожна пара елементів в Lмає унікальну найбільшу нижню межу та найменшу верхню межу. Тоді ми можемо отримати операції зустрічі та приєднання з часткового порядку.

Решітка, таким чином, є математичною структурою, до якої можна звернутися з алгебраїки або з точки зору наближення. Недолік тут полягає в тому, що самі елементи решітки не мають типової структури, яка вводиться у відношення наближення. Значить, ми не можемо порівнювати елементи, виходячи з поняття, що мають більшу чи меншу структуру.

У контексті вашої проблеми ви можете розглядати категорії як природне узагальнення передмов, що фіксують як поняття наближення (у морфізмах), так і тип структури в алгебраїчній обстановці. Встановлення теорії категорій дозволяє нам позбутися різних непотрібних розрізнень та зосередитись на структурі сутностей, про які ви дбаєте, та наближенні цієї структури. Універсальні властивості та доповнення дають вам дуже потужний словник та інструменти для розуміння ландшафту структур, які вас цікавлять, і дозволяє сувору математичну обробку навіть інтуїтивних понять, таких як різні рівні абстракції.

Щодо мого коментаря про абстрактні дельтоїди, то здається, що те, що ти хочеш, - це категорія. Абстрактний дельтоїд - це конкретна категорія, аналогічна категорії множин. Є й інші категорії, які ви розглядаєте. Я спочатку думав, що ви визначаєте дельтоїда, що в сенсі теорії категорій буде кінцевим (або кінцевим) об'єктом.

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

Список літератури

  1. Абстрактна інтерпретація та застосування до логічних програм Патріка Кусота та Радхії Кузот. Перша половина цієї статті - загальний вступ до теми абстрактної інтерпретації підручника.
  2. Абстрактні рамки інтерпретації Патріка Кусота та Радхії Кузо. У цій статті дуже докладно розглядаються всі можливості, які я накреслював щодо функцій абстракції та конкретизації.
  3. Систематичне проектування систем аналізу програм , Патрік Кузот та Радхіа Кузот. Це був документ, який вніс поняття ієрархії абстракцій у контексті програмного аналізу.
  4. Узагальнене сильне збереження за абстрактним тлумаченням Франческо Ранзато та Франческо Таппаро. У цій роботі ці ідеї застосовуються в іншому контексті абстракцій, які зберігають часові логічні формули. Тут ви знайдете відпрацьовані приклади булевих та розподільних абстракцій.
  5. Абстрактне тлумачення, логічні стосунки та розширення Кан , Самсон Абрамський. Представлена ​​перспектива теорії категорій на теоретичний матеріал про порядок вище.

Дякуємо за вашу ретельну відповідь! І відсутність категорій дуже цінується. ;-) (У майбутньому мені доведеться вивчити деякі теорії проміжних категорій.) Я розгляну ваші посилання. - = # = - У середній час у мене виникає питання щодо вашого твердження: "абстрактний дельтоїд видається сімейством дельтоїдів, а не конкретним дельтоїдом". Чи можете ви пояснити, чим абстрактний дельтоїд відрізняється в цьому відношенні від інших? Чи не можна будь-яку алгебраїчну структуру розглядати як сімейство всіх її вдосконалень?
mhelvens

@VijayD Дякую за оновлення на КТ. Я винен у коментарі, а потім видалив його. Я глибоко вважаю, що КТ більше підходить для випуску ОП. Я ще більше переконався, побачивши ваше оновлення. Я думаю, якщо ОП не хоче це робити за допомогою КТ, хтось інший зробить це.
scaaahu

Дуже ймовірно, що теорія категорій дає найкращі відповіді на мої запитання. І я з нетерпінням чекаю його вивчити і краще зрозуміти ці відповіді. І справді, мій брак часу для вивчення та застосування теорії категорій не повинен бути приводом для надання «неповноцінної» відповіді на цьому веб-сайті. - = # = - Тим не менш, я дуже вдячний за враження Віяя. Його відповідь на рівні моноїдів була досить корисною. - = # = - Тому я зараз не можу використовувати категорії. Але я обов’язково вивчу варіант у майбутній роботі. Дякую всім!
mhelvens

Ви в змозі підібрати тему, оскільки перед вами є проблема, яку ви добре розумієте і можете безпосередньо проаналізувати з категоричної точки зору. Я вважаю це найкращим способом чогось навчитися і закликаю вас не зволікати, оскільки тексти теорії категорій здаються залякуючими. Я впевнений, що для вивчення є порції розміру укусу. Успіхів обороні.
Vijay D

9

Ви працюєте над доктором наук. Кажучи: "Я не дуже добре розбираюсяX"- це не привід. І якщо ти добрий, то говорити" мій радник не знає X"теж не є приводом.

Ви використовуєте моноїди там, де вам слід використовувати категорії. Ваші моноїдні операції передбачають, що ви можете комбінувати будь-якіδразом. Але чи справді це має сенс, наприклад, як би ви склали "додати пластиковий кожух" та "додати металевий кожух"? Я гадаю, деякі вашіδРезультат у порожніх відносинах, оскільки вони не мають сенсу. Вам слід підозріло ставитися до подібних речей.

Як зацікавлений спостерігач, здається, що моноїд повинен бути категорією, тому ми можемо скласти дві δтільки в тому випадку, якщо є сенс їх складати. Тоді ваше семантичне оцінювання - це лише функція в категорії множин і відносин. І тоді ви бачите, що існує багато інших категорій, якими ви могли б користуватися. Функціональні дельти будуть відповідати функтору, який відображає в категорію множин і функцій, натуральний числа дельтоїд - це функтор в моноїд многочленів на натуральних числах (розглядається як категорія) тощо.

Я не впевнений, що ви хочете занадто серйозно формалізувати мобільні телефони LaTeX та Nokia в загальній теорії. Але звичайно ваша теорія повинна бути застосована до таких прикладів (просто не зациклюйтесь, коли виявите, що мобільні телефони насправді не мають чітко визначеної семантики).

Ви насправді дефікуєте себе, наполягаючи на заздалегідь визначеній технології (вашим радником?), На її зовнішньому вигляді.


2
Загалом я з вами згоден. І я ніколи не використовував як привід. :-) Але в цьому випадку більшість моєї дисертації вже написана, і моноїд був використаний у всіх моїх публікаціях. - = # = - Якщо говорити, ви чудово розумієте. У прикладі пластикових / металевих кожухів я зараз обробляю це, дозволяючи складі, але маючи отриману дельту оцінити до порожнього відношення (як ви здогадалися). Це все чітко визначено, тому зараз достатньо. Але я бачу, що ваша пропозиція є більш елегантною. Ви дали мені ще один вагомий привід вивчити теорію категорій. Дякую!
mhelvens

@mhelvens Я пенсійний інженер-програмний інженер, який давно живе в галузі. Приїхав назад в ТКС після виходу на пенсію. Я поставлю вам реальне життєве запитання. Припустимо, ви успішно оформляєте продукти телефону Nokia, використовуючи моноід у своїй дипломній роботі, що ви скажете в усному захисті, якщо Apple оголосить, що придбає Nokia? Чи порушить це оголошення вашу модель? Мені здається, чим загальнішою є теорія, тим кращою вона буде.
scaaahu

@scaaahu Цікаве запитання. :-) Дозвольте почати з відповіді: "Ні, зовсім не". Теорія не залежить від "типу" пристрою. - = # = - Запевняю, немає необхідності переконувати мене в перевагах узагальнення. (Насправді, я думаю, що інколи перестараюся.) Так буває, що я не вчасно натрапив на теорію категорій, щоб вона була корисною для моєї докторської роботи. Як я вже сказав, я згоден, що це може бути цінним підходом. Але два місяці після закінчення моєї дипломної роботи не час кардинально змінити мій підхід.
mhelvens

Зрозуміло, ви готові до постдоку; ;)
Андрій Бауер

Заявка на отримання грантів уже надіслана. :-) Я сподіваюся, що мені вдасться продовжувати в цій галузі.
mhelvens
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.