Formalne przedstawienie hierarchii abstrakcji

9

Wprowadzenie

Piszę pracę doktorską na temat abstrakcyjnego modelowania delty (ADM), abstrakcyjnego algebraicznego opisu modyfikacji (znanych jako delty ) zdolnych do działania na produkty (jak w „produktach programowych”). Można to wykorzystać do zorganizowania zestawu powiązanych produktów („linii produktów”) jako prostego produktu podstawowego i zestawu warunkowo zastosowanych delt, a tym samym umożliwienia większego ponownego wykorzystania podstawowych artefaktów.

Szczegóły modelowania delta nie są tak naprawdę ważne w moim pytaniu, ale ADM stanowi dobry przykład do wyjaśnienia problemu, dlatego przedstawię najważniejsze pojęcia.

tło

Główną interesującą strukturą jest deltoid . Produkty pochodzą z Uniwersalny zestaw . Delta pochodzą z monoid z operatorem kompozycji i neutralne elementu . Operator oceny semantycznej przekształca deltę syntaktyczną w relację(P,D,,ϵ,[[]])P(D,,ϵ):D×DDϵre[[-]]:re2)P.×P.rere[[re]]P.×P.co decyduje o tym, jak może zmodyfikować produkt.re

Pytanie

Ponieważ ADM jest algebrą abstrakcyjną, większość moich prac abstrahuje od konkretnej natury produktów i delt, a wiele wyników zostało udowodnionych bez schodzenia na bardziej konkretny poziom. Oczekuje się, że wyniki te zostaną przeniesione do bardziej konkretnej dziedziny, ale jeszcze tego nie sformalizowałem.

Istnieją przykłady i studia przypadków, które działają w konkretnej dziedzinie: obiektowy kod źródłowy, , liczby naturalne, profile telefonów komórkowych itp. Istnieją również pośrednie etapy abstrakcji, takie jak zagnieżdżanie pary klucz-wartość. Dla każdego ponownie zdefiniuję (lub „poprawię”) .L.ZAT.miX(P.,re,,ϵ,[[-]])

Chciałbym wyrazić tę hierarchię w sposób wyraźny: (1) w celu zapewnienia czytelnikowi większej przejrzystości i (2) w celu formalnego uzasadnienia wykorzystania wyników z bardziej abstrakcyjnych poziomów.

Moje pytanie: Jak formalnie zorganizować te poziomy abstrakcji?

Mam nadzieję, że będę w stanie uzasadnić za pomocą prostej relacji udoskonalenia na deltoidach. I czuję, jak to może być po prostu zdefiniowane przez odwoływanie się do relacji na podzbioru i . Ale nie jestem jeszcze pewien. Czy istnieją jakieś podejścia do tego rodzaju problemu, który opisuję? Publikacje, które powinienem przeczytać?P.re

Hierarchia deltoidalna

Aby lepiej zrozumieć, co mam na myśli, oto hierarchia abstrakcji naramiennej, o której myślę:

  • Streszczenie Deltoid : To podstawowy deltoid, w którym produkty i delty mogą być nadal czymkolwiek. Większość teorii opiera się na tej, a większość wyników została udowodniona na tym poziomie.
    • Relacyjna deltoid : Tutaj delty są relacjami na a jest funkcją tożsamości. P.[[-]]
      • Funkcjonalna deltoid : tutaj delty są funkcjonalne (lub „deterministyczne”).
    • Naturalna deltoid : Jest to najprostsza konkretna deltoid, stworzona tylko w celu zilustrowania udoskonalenia deltoidów. Tutaj produkty są liczbami naturalnymi, a delty to proste sekwencje liczb reprezentujące operacje wielomianowe.P.=N.re=N.+
    • Zagnieżdżona para klucz-wartość deltoid : pośredni poziom abstrakcji dla dowolnej hierarchii, w której klucze są mapowane na wartości lub podhierarchie. Delty mogą dokonywać modyfikacji w tym „drzewie” na dowolnej głębokości.
      • OOP Deltoid : Do abstrakcyjnych reprezentacji programów obiektowych. Są to zasadniczo zagnieżdżone pary klucz-wartość, ponieważ programy mapują nazwy modułów na zestawy klas, które mapują nazwy klas na zestawy metod, które mapują nazwy metod na implementacje metod.
        • ABS Deltoid : ABS to prawdziwy język programowania obiektowego.
      • Profil telefonu Deltoid : W tym przypadku produkt jest płaskim mapowaniem ustawień (takich jak głośność, jasność ekranu itp.) Na wartości z odpowiedniej domeny.
    • L.ZAT.miX Deltoid : Produkty to dokumenty i delty modyfikują je poprzez przedefiniowanie makr.L.ZAT.miX

To powinno dać ci dobry obraz tego, co mam na myśli. mówiąc, dla każdego deltoida jest homomorfizmem od do należącym do odpowiedniego relacyjnego deltoida.[[-]]rere

Rzeczywista hierarchia może być większa. Może być również inaczej zorganizowany, w zależności od tego, jakiej teorii doskonalenia użyję. Na przykład, jeśli wybiorę prostą relację podzbioru na i Deltoid ABS nie mieści się w zagnieżdżonej deltoidzie pary klucz-wartość, ponieważ jego produkty i delty są w rzeczywistości zwykłym tekstem (kod źródłowy). Jednak podana hierarchia może nadal działać, jeśli użyję homomorfizmów.P.re

mhelvens
źródło
3
Czy możesz wyjaśnić, czym jest hierarchia abstrakcji? Jakie rzeczy są abstrakcjami innych rzeczy?
Dave Clarke,
Cześć dave! Zaktualizowałem swoje pytanie. Mam nadzieję, że to trochę wyjaśnia.
mhelvens,
4
Co powiesz na budowanie kategorii dla każdego rodzaju naramiennika, a następnie studiowanie lewych i prawych funktorów sąsiadujących (jeśli występują) między nimi?
Martin Berger,
Obawiam się, że nie znam się na teorii kategorii. :-(
mhelvens

Odpowiedzi:

8

Uważam, że byłoby dobrze, gdybyś zapoznał się z teorią abstrakcyjnej interpretacji, która zapewnia bardzo dokładne odpowiedzi na podobne pytania w nieco innym obszarze analizy programu opartej na sieci.

Wydaje mi się, że używasz frameworka opartego na algebrach. Używam tutaj słowa algebra w znaczeniu algebry uniwersalnej, w której zakładam, że ograniczenia w strukturze algebry wynikają z równości między terminami. Istnieją dwa różne zmysły, w których abstrakcje (lub hierarchie) wchodzą w obraz.

  1. Abstrakcja jako relacja między dwoma konkretnymi algebrami. Możesz powiedzieć, że jedna algebra ma bogatszą strukturę niż inna algebra lub że każdy problem, który możesz rozwiązać za pomocą jednej algebry, możesz rozwiązać za pomocą drugiego. Ten rodzaj relacji sformalizowałby homomorfizmy kupna lub inne mapowanie między algebrami.
  2. Hierarchie abstrakcji jako rodziny algebry. W twoim przypadku byłyby to rodziny deltoidów o określonych właściwościach. Jako bardziej ogólny przykład rozważ wszystkie częściowo uporządkowane zestawy. Możemy myśleć o sieciach kratowych, sieciach dystrybucyjnych i sieciach boolowskich jako o sekwencji podrodzin o bogatszych właściwościach.

Te dwa pojęcia są ze sobą ściśle powiązane, ale różne.

Abstrakcja między dwiema strukturami

Wgląd w abstrakcyjną interpretację jest taki, że przydatne jest nadanie badanym strukturom pojęcia porządku. Rozważ dwie struktury

(M.,faM.) i (N.,faN.), z faM.:M.M. i faN.:N.N. jako operacje będące przedmiotem zainteresowania.

Homomorfizm w sensie algebry uniwersalnej wyglądałby mniej więcej tak:

h:M.N. jest funkcją spełniającą równość h(faM.(za))=faN.(h(za)).

Dwie powyższe struktury możemy zobaczyć jako struktury zamówione w przedsprzedaży

(M.,=,faM.) i (N.,=,faN.)

i homomorfizm, który możemy przepisać, aby był funkcją spełniającą

  1. że jeśli za=b następnie h(za)=h(b), i
  2. dla wszystkich za w M., h(faM.(za))=faN.(h(za)).

Załóżmy teraz, że masz inne pojęcie przybliżenia, które ma sens. Na przykład, gdy mamy do czynienia z zestawami stanów podczas weryfikacji programu, włączenie podzbioru ma sens w przypadku niektórych aplikacji lub gdy mamy do czynienia z formułami zautomatyzowanej dedukcji, implikacja ma sens. Ogólniej możemy rozważyć

(M.,,faM.) i (N.,,faN.), gdzie i są zamówieniami wstępnymi.

Teraz zamiast homomorfizmu możemy mieć funkcję abstrakcji

α:M.N. który jest

  1. monotonowy, co oznacza, że ​​kiedykolwiek zab mamy α(za)α(b), i
  2. częściowo dojeżdża do pracy z operacjami: α(faM.(za))faN.(α(za)) dla wszystkich za w M..

Funkcja abstrakcji wyraża ideę, że jeśli struktura się skończy N. jest abstrakcją struktury M., a następnie oceniając termin w N. nie może dać dokładniejszych wyników (w odniesieniu do pojęcia przybliżenia w N.) niż ocena tego samego terminu w M. a następnie mapowanie na N..

Teraz możemy zapytać, czy konieczne jest podejście do problemu w kategoriach abstrakcji, a nie wyrafinowania. Czyli nie możemy tego powiedziećM. jest udoskonaleniem N.i formułować warunki w kategoriach. To właśnie robi funkcja konkretyzacji .

Funkcja konkretyzacji γ:N.M.jest monotonny i spełnia nierównośćfaM.(γ(b))γ(faN.(b)).

Warunki abstrakcji i konkretyzacji nazywane są warunkami solidności w interpretacji abstrakcyjnej. W specjalnym przypadku toα i γtworzą połączenie Galois, warunki abstrakcji i konkretyzacji są równoważne. Zasadniczo nie są one równoważne.

Wszystko, co do tej pory zrobiliśmy, jedynie formalizuje pojęcie abstrakcji między parą struktur. To, co powiedziałem, można streścić znacznie bardziej zwięźle w języku teorii kategorii. Unikałem kategorii z powodu twojego komentarza powyżej.

Hierarchie abstrakcji

Załóżmy, że mamy strukturę M.obdarzony przedsprzedażą i niektórymi operacjami. Możemy rozważyć wszystkie strukturyN. takie, że N. jest abstrakcją M.w sensie powyżej. Jeśli mamy toN.1 jest abstrakcją N.2) i oba są abstrakcjami M., mamy trzy elementy hierarchii. Relacja „jest abstrakcją” pozwala nam zdefiniować zamówienie wstępne między strukturami. Nazwijmy rodzinę struktur uporządkowanych według abstrakcji hierarchią .

Jeśli wezmę twój przykład, wydaje się, że twoja abstrakcyjna deltoid może być kandydatem na maksymalny element w jakiejś hierarchii. Nie jestem do końca pewien, ponieważ abstrakcyjny deltoid wydaje się być rodziną deltoidów, a nie konkretnym deltoidem.

Teraz możesz rozważyć różne hierarchie. Hierarchia wszystkich deltoidów. Podhierarchia oparta na różnych powyższych rozważaniach. Konkretnym przykładem w kontekście abstrakcyjnej interpretacji jest hierarchia kompletnych sieci, które są w połączeniu Galois z daną siecią zestawów mocy, oraz podhierarchie składające się wyłącznie z sieci dystrybucyjnych lub tylko boolowskich.

Jak zauważa Martin Berger w komentarzach, pojęcie abstrakcji między hierarchiami jest uchwycone przez powiązanie między kategoriami.

Kategoryczna perspektywa

Pojawił się komentarz z prośbą o więcej komentarzy na temat kategorii. Tego komentarza już nie ma, ale i tak odpowiem.

Cofnijmy się i spójrzmy na to, co robisz przy projektowaniu deltoidów, i co opisałem powyżej z bardziej ogólnej perspektywy. Interesuje nas zrozumienie podstawowej struktury podmiotów, którymi manipulujemy w kontekście oprogramowania oraz relacji między tymi podmiotami.

Pierwszą ważną realizacją jest to, że interesuje nas nie tylko zestaw elementów, ale także operacje, które możemy wykonać na tych elementach i właściwości tych operacji. Ta intuicja napędza projektowanie klas w programowaniu obiektowym i definiowanie struktur algebraicznych. Wyraziłeś już tę intuicję w definicji deltoida, która zidentyfikowała kilka interesujących operacji. Mówiąc bardziej ogólnie, jest to proces myślowy leżący u podstaw opisów algebraicznych. Musimy określić, jakie są nasze operacje i jakie mają one właściwości. Ten krok pokazuje nam strukturę typów, z którą pracujemy.

Drugą realizacją jest to, że interesuje nas nie tylko zestaw elementów, ale relacje abstrakcyjne. Najprostszą formalizacją, jaką mogę sobie wyobrazić z abstrakcji, jest rozważenie wcześniej ustalonego zestawu. Możemy pomyśleć o zamówionym zestawie jako ścisłym uogólnieniu zestawu na coś, co przychodzi wraz z koncepcją przybliżenia.

Idealnie chcemy pracować w środowisku, w którym oba powyższe spostrzeżenia są pierwszorzędnymi obywatelami. Oznacza to, że chcemy ustawienia typu takiego jak algebra, ale także ustawienia presetu uwzględniającego przybliżenie. Pierwszym krokiem w tym kierunku jest rozważenie sieci. Krata jest interesującą koncepcyjnie strukturą, ponieważ możemy ją zdefiniować na dwa równoważne sposoby.

  1. Możemy zdefiniować sieć równorzędnie jako zbiór (L.,,)wyposażony w operację Meet i Join. Możemy czerpać częściowy porządek poprzez zdefiniowaniezab trzymać za każdym razem zab=za.
  2. Alternatywą jest zdefiniowanie sieci jako zestawu częściowo uporządkowanego (L.,) spełnianie, że każda para elementów w L.ma unikalną największą dolną granicę i najmniejszą górną granicę. Następnie możemy wyliczyć spotkanie i połączyć operacje z częściowego zamówienia.

Krata jest zatem strukturą matematyczną, do której można podejść z perspektywy algebraicznej lub aproksymacyjnej. Wadą tego jest to, że same elementy sieci nie mają struktury typu, która jest uwzględniona w relacji aproksymacji. Oznacza to, że nie możemy porównywać elementów w oparciu o pojęcie większej lub mniejszej struktury.

W kontekście twojego problemu możesz myśleć o kategoriach jako o naturalnym uogólnieniu zamówień przedpremierowych, które wychwytują zarówno pojęcie aproksymacji (w morfizmach), jak i strukturę typów w układzie algebraicznym. Ustawienie teorii kategorii pozwala nam zrezygnować z różnych niepotrzebnych rozróżnień i skupić się na strukturze istot, na których ci zależy, i przybliżeniu tej struktury. Uniwersalne właściwości i powiązania dają bardzo potężne słownictwo i narzędzia do zrozumienia krajobrazu interesujących cię struktur i umożliwiają rygorystyczne matematyczne traktowanie nawet intuicyjnych pojęć, takich jak różne poziomy abstrakcji.

Jeśli chodzi o mój komentarz na temat abstrakcyjnych deltoidów, wydaje się, że to, czego chcesz, to kategoria. Abstrakcyjna deltoid jest specyficzną kategorią analogiczną do kategorii zbiorów. Istnieją inne kategorie, które rozważasz. Początkowo myślałem, że definiujesz deltoidę, która w sensie teorii kategorii będzie obiektem końcowym (lub końcowym).

Studiujesz pytania, na które teoria kategorii daje bardzo satysfakcjonujące odpowiedzi. Mam nadzieję, że sam dojdziesz do tego wniosku.

Bibliografia

  1. Abstrakcyjna interpretacja i zastosowanie do programów logicznych , Patrick Cousot i Radhia Cousot. Pierwsza połowa tego artykułu to ogólne wprowadzenie do samouczka na temat interpretacji abstrakcyjnej.
  2. Abstrakcyjne ramy interpretacyjne , Patrick Cousot i Radhia Cousot. W tym artykule szczegółowo omówiono wszystkie zarysowane powyżej możliwości dotyczące funkcji abstrakcji i konkretyzacji.
  3. Systematyczne projektowanie ram analizy programów , Patrick Cousot i Radhia Cousot. Był to artykuł, który wprowadził pojęcie hierarchii abstrakcji w kontekście analizy programu.
  4. Uogólnione silne zachowanie według abstrakcyjnej interpretacji , Francesco Ranzato i Francesco Tapparo. W tym artykule zastosowano te idee w innym kontekście abstrakcji, który zachowuje formuły logiki czasowej. Znajdziesz tutaj działające przykłady abstrakcji logicznych i dystrybucyjnych.
  5. Abstrakcyjna interpretacja, relacje logiczne i rozszerzenia Kan , Samson Abramsky. Przedstawia perspektywę teorii kategorii na powyższym materiale teoretycznym rzędu.
Vijay D.
źródło
Dzięki za dokładną odpowiedź! A brak kategorii jest bardzo ceniony. ;-) (W przyszłości będę musiał przestudiować teorię kategorii pośrednich.) Przejrzę twoje referencje. - = # = - Tymczasem mam pytanie dotyczące twojego stwierdzenia „abstrakcyjny deltoid wydaje się być raczej rodziną deltoidów niż konkretnym deltoidem”. Czy możesz wyjaśnić, w jaki sposób abstrakcyjna deltoid różni się pod tym względem od innych? Czy nie można postrzegać żadnej struktury algebraicznej jako rodziny wszystkich jej udoskonaleń?
mhelvens
@VijayD Dziękujemy za aktualizację w CT. To ja jestem winny opublikowania komentarza, a następnie jego usunięcia. Głęboko wierzę, że CT jest bardziej odpowiednie dla problemu OP. Jestem jeszcze bardziej przekonany po obejrzeniu Twojej aktualizacji. Myślę, że jeśli OP nie chce tego zrobić za pomocą CT, ktoś inny to zrobi.
scaaahu
Wydaje się bardzo prawdopodobne, że teoria kategorii zapewnia najlepsze odpowiedzi na moje pytania. Z niecierpliwością czekam na studiowanie i lepsze zrozumienie tych odpowiedzi. I rzeczywiście, mój brak czasu na studiowanie i stosowanie teorii kategorii nie powinien być usprawiedliwieniem do udzielenia „gorszej” odpowiedzi na tej stronie. - = # = - Niemniej jednak bardzo doceniam uwagę Vijay. Jego odpowiedź na poziomie monoidu była całkiem przydatna. - = # = - Więc nie mogę teraz używać kategorii. Ale na pewno zbadam tę opcję w przyszłych pracach. Dziękuje wszystkim!
mhelvens
Jesteś w doskonałej pozycji, aby podnieść temat, ponieważ masz przed sobą problem, który dobrze rozumiesz i który możesz analizować bezpośrednio z kategorycznego punktu widzenia. Uważam, że jest to najlepszy sposób na naukę czegoś, i zachęcam, abyście nie zwlekali, ponieważ teksty dotyczące teorii kategorii wydają się zastraszające. Jestem pewien, że do zbadania są porcje wielkości kęsa. Powodzenia w obronie.
Vijay D
9

Pracujesz nad swoim doktoratem. Mówiąc: „Nie jestem dobrze zorientowanyX„nie jest usprawiedliwieniem. A jeśli jesteś dobry, to powiedz„ mój doradca nie wie X„nie jest również wymówką.

Używasz monoidów tam, gdzie powinieneś używać kategorii. Twoje operacje monoidalne zakładają, że możesz łączyć dowolneδjest razem. Ale czy to naprawdę ma sens, na przykład, jak skomponowałbyś „dodaj plastikową obudowę” i „dodaj metalową obudowę”? Myślę, że niektóre z wasδpowodują puste relacje, ponieważ nie mają sensu. Powinieneś być podejrzliwy wobec tego rodzaju rzeczy.

Jako zainteresowany obserwator wydaje się, że monoid powinien być kategorią, więc możemy skomponować dwie δtylko wtedy, gdy ma sens ich skomponowanie. Zatem twoja ocena semantyczna jest po prostu funktorem do kategorii zbiorów i relacji. A potem widzisz, że istnieje wiele innych kategorii, których możesz użyć. Delty funkcjonalne będą odpowiadały funktorowi, który odwzorowuje się na kategorię zbiorów i funkcji, deltoid liczb naturalnych jest funktorem na monoidę wielomianów na liczbach naturalnych (postrzeganych jako kategoria) itp.

Nie jestem pewien, czy chcesz zbyt poważnie sformalizować telefony komórkowe LaTeX i Nokia w ogólnej teorii. Ale oczywiście twoja teoria powinna mieć zastosowanie do takich przykładów (po prostu nie odkładaj słuchawki, gdy odkryjesz, że telefony komórkowe nie mają właściwie zdefiniowanej semantyki).

Jesteś naprawdę shortchanging siebie poprzez naleganie na określonej technologii (przez doradcę?), Przez wygląda to.

Andrej Bauer
źródło
2
Ogólnie zgadzam się z tobą. I nigdy nie użyłem żadnej z tych wymówek. :-) Ale w tym przypadku większość mojej pracy jest już napisana i monoid został wykorzystany we wszystkich moich publikacjach. - = # = - Biorąc to pod uwagę, robisz doskonały punkt. W przykładzie plastikowej / metalowej obudowy teraz radzę sobie z tym, pozwalając na kompozycję, ale mając wynikową deltę oceniającą na relację pustą (jak się domyślacie). Wszystko jest dobrze zdefiniowane, więc na razie wystarczy. Ale widzę, że twoja sugestia jest bardziej elegancka. Dałeś mi kolejny dobry powód, by przestudiować teorię kategorii. Dzięki!
mhelvens
@mhelvens Jestem emerytowanym inżynierem oprogramowania, który od dawna mieszka w branży. Przyszedł z powrotem do TCS po przejściu na emeryturę. Zadam ci pytanie z prawdziwego życia. Załóżmy, że z powodzeniem sformalizowałeś produkty telefoniczne Nokia za pomocą monoidu w swojej pracy, co powiesz w obronie ustnej, jeśli Apple ogłosi, że nabywa Nokię? Czy to ogłoszenie złamie twój model? Wydaje mi się, że im bardziej ogólna jest teoria, tym lepszy byłby model.
scaaahu
@scaaahu Ciekawe pytanie. :-) Zacznę od odpowiedzi: „Nie, wcale nie”. Teoria jest niezależna od „rodzaju” urządzenia. - = # = - Zapewniam cię, że nie musisz mnie przekonywać o zaletach uogólnienia. (W rzeczywistości wydaje mi się, że czasami przesadzam.) Tak się składa, że ​​nie natrafiłem na teorię kategorii na czas, aby była przydatna w mojej pracy doktorskiej. Jak powiedziałem, zgadzam się, że może to być wartościowe podejście. Ale dwa miesiące od terminu mojej pracy dyplomowej nie nadszedł czas na zasadniczą zmianę mojego podejścia.
mhelvens
Oczywiście jesteś gotowy na postdoc ;-)
Andrej Bauer
Wniosek o przyznanie dotacji został już wysłany. :-) Mam nadzieję, że będę mógł kontynuować w tej dziedzinie.
mhelvens