Formale Darstellung einer Abstraktionshierarchie

9

Einführung

Ich schreibe meine Doktorarbeit über Abstract Delta Modeling (ADM), eine abstrakte algebraische Beschreibung von Modifikationen (bekannt als Deltas ), die auf Produkte (wie in "Softwareprodukten") einwirken können . Dies kann verwendet werden, um eine Reihe verwandter Produkte (eine „Produktlinie“) als einfaches Kernprodukt und eine Reihe von bedingt angewendeten Deltas zu organisieren und so eine stärkere Wiederverwendung der zugrunde liegenden Artefakte zu ermöglichen.

Die Details der Delta-Modellierung sind für meine Frage nicht wirklich wichtig, aber ADM dient als gutes Beispiel, um das Problem zu erklären, und ich werde die wichtigsten Konzepte vorstellen.

Hintergrund

Die Hauptstruktur von Interesse ist der Deltamuskel . Produkte kommen aus einem universellen Satz . Deltas kommen aus einer monoid mit der Zusammensetzung Operator und neutrales Element . Der semantische Auswertungsoperator transformiert ein 'syntaktisches' Delta in eine BeziehungP ( D , , ϵ ) : D × DD ϵ D [(P,D,,ϵ,[[]])P(D,,ϵ):D×DDϵD d D [[[]]:D2P×PdD[[d]]P×Pwelches entscheidet, wie ein Produkt modifizieren kann.d

Frage

Da ADM eine abstrakte Algebra ist, abstrahieren die meisten meiner Arbeiten von der konkreten Natur von Produkten und Deltas, und eine Reihe von Ergebnissen werden bewiesen, ohne auf eine konkretere Ebene abzusteigen. Es wird erwartet, dass diese Ergebnisse auf einen konkreteren Bereich übertragen werden, aber ich habe dies noch nicht formalisiert.

Es gibt Beispiele und Fallstudien, die in einer konkreten Domäne funktionieren: objektorientierter Quellcode, -Code, natürliche Zahlen, Mobiltelefonprofile usw. Es gibt auch einige Zwischenstufen der Abstraktion, z. B. verschachtelt Schlüssel-Wert-Paare. Für jedes definiere ich neu (oder 'verfeinere') . ( P , D ,,ϵ, [LATEX(P,D,,ϵ,[[]])

Ich möchte diese Hierarchie explizit machen: (1) um dem Leser mehr Klarheit zu bieten und (2) um die Verwendung von Ergebnissen aus abstrakteren Ebenen formal zu rechtfertigen.

Meine Frage: Wie soll ich diese Abstraktionsebenen formal organisieren?

Ich hoffe, mit einer einfachen Verfeinerungsrelation auf zu können. Und ich denke, es könnte einfach definiert werden, indem man die Teilmengenbeziehung auf und anspricht . Aber ich bin mir noch nicht sicher. Gibt es Ansätze für die Art von Problem, die ich beschreibe? Veröffentlichungen, die ich lesen sollte?P D.PD

Die Deltamuskelhierarchie

Um Ihnen eine bessere Vorstellung davon zu geben, was ich meine, hier ist die Deltoid-Abstraktionshierarchie, an die ich denke:

  • Abstract Deltamuskel : Dies ist der grundlegende Deltamuskel, in dem Produkte und Deltas immer noch alles sein können. Der größte Teil der Theorie basiert auf dieser und die meisten Ergebnisse werden auf dieser Ebene bewiesen.
    • Relationaler Deltamuskel : Hier sind Deltas Relationen zu und ist die Identitätsfunktion. [P[[]]
      • Funktioneller Deltamuskel : Hier sind Deltas funktional (oder "deterministisch").
    • Deltamuskel mit natürlicher Zahl : Dies ist der einfachste Deltamuskel aus Beton, der nur zur Veranschaulichung der Verfeinerung des Deltamuskels erstellt wurde. Hier sind Produkte natürliche Zahlen und Deltas sind einfache Zahlenfolgen, die Polynomoperationen darstellen.D = N +P=ND=N+
    • Verschachtelter Schlüssel-Wert-Paar-Deltamuskel : Eine mittlere Abstraktionsebene für jede Hierarchie, in der Schlüssel Werten oder Unterhierarchien zugeordnet sind. Deltas können Änderungen an diesem 'Baum' in jeder Tiefe vornehmen.
      • OOP Deltoid : Für abstrakte Darstellungen objektorientierter Programme. Sie sind im Grunde verschachtelte Schlüssel-Wert-Paare, da Programme Modulnamen Klassen von Klassen zuordnen, die Klassennamen Methodengruppen zuordnen, Methodennamen Methodenimplementierungen zuordnen.
        • ABS Deltoid : ABS ist eine echte objektorientierte Programmiersprache.
      • Telefonprofil-Deltamuskel : Hier ist ein Produkt eine flache Zuordnung von Einstellungen (wie Lautstärke, Bildschirmhelligkeit usw.) zu Werten aus einer entsprechenden Domäne.
    • LATEX Deltamuskel : Produkte sind -Dokumente, und Deltas ändern sie, indem sie Makros neu definieren.LATEX

Nun, das sollte Ihnen eine gute Vorstellung davon geben, was ich vorhabe. Beachten Sie übrigens, dass für jeden Deltamuskel ein Homomorphismus von zu , der zum entsprechenden relationalen Deltamuskel gehört.D D '[[]]DD

Die tatsächliche Hierarchie kann größer sein. Es kann auch anders organisiert sein, je nachdem, welche Art von Verfeinerungstheorie ich verwenden werde. Wenn ich zum Beispiel eine einfache Teilmengenbeziehung für und anstrebe, würde der ABS-Deltamuskel nicht unter den verschachtelten Schlüsselwertpaar-Deltamuskel passen, da seine Produkte und Deltas tatsächlich einfacher Text (Quellcode) sind. Aber die angegebene Hierarchie kann immer noch funktionieren, wenn ich Homomorphismen verwende.D.PD

mhelvens
quelle
3
Können Sie die Abstraktionshierarchie deutlicher machen? Welche Dinge sind Abstraktionen von welchen anderen Dingen?
Dave Clarke
Hallo Dave! Ich habe meine Frage aktualisiert. Ich hoffe das klärt die Dinge ein bisschen.
Mhelvens
4
Wie wäre es, Kategorien für jede Art von Deltamuskel zu erstellen und dann die linken und rechten benachbarten Funktoren (falls vorhanden) zwischen ihnen zu untersuchen?
Martin Berger
Ich fürchte, ich bin mit der Kategorietheorie nicht vertraut. :-(
mhelvens

Antworten:

8

Ich glaube, es wäre für Sie von Vorteil, die Theorie der abstrakten Interpretation nachzuschlagen, die sehr gründliche Antworten auf ähnliche Fragen im etwas anderen Bereich der gitterbasierten Programmanalyse liefert.

Mir scheint, Sie verwenden ein Framework, das auf Algebren basiert. Ich verwende hier das Wort Algebra im Sinne der universellen Algebra, wobei ich davon ausgehe, dass Einschränkungen für die Struktur der Algebra durch Gleichheiten zwischen Begriffen gegeben sind. Es gibt zwei verschiedene Sinne, in denen Abstraktionen (oder Hierarchien) ins Bild kommen.

  1. Abstraktion als Beziehung zwischen zwei spezifischen Algebren. Vielleicht möchten Sie sagen, dass eine Algebra eine reichhaltigere Struktur als eine andere Algebra hat oder dass jedes Problem, das Sie mit einer Algebra lösen können, mit der anderen gelöst werden kann. Diese Art von Beziehung ist das, was formalisierte Kaufhomomorphismen oder eine andere Abbildung zwischen Algebren wäre.
  2. Abstraktionshierarchien als Familien von Algebren. In Ihrem Fall wären dies Familien von Deltamuskeln mit bestimmten Eigenschaften. Betrachten Sie als allgemeineres Beispiel alle teilweise geordneten Mengen. Wir können uns Gitter, Verteilungsgitter und Boolesche Gitter als eine Folge von Unterfamilien vorstellen, die reichere Eigenschaften haben.

Die beiden Begriffe sind eng miteinander verbunden, aber unterschiedlich.

Abstraktion zwischen zwei Strukturen

Die Erkenntnis der abstrakten Interpretation besteht darin, dass es nützlich ist, die von Ihnen betrachteten Strukturen mit einem Ordnungsbegriff auszustatten. Betrachten Sie zwei Strukturen

( N , F N ) f M : M M f N : N N(M,fM) und mit und als interessierenden Operationen.(N,fN)fM:MMfN:NN

Ein Homomorphismus im Sinne der universellen Algebra würde ungefähr so ​​aussehen:

h ( f M ( a ) ) = f N ( h ( a ) )h:MN ist eine Funktion, die die Gleichheit .h(fM(a))=fN(h(a))

Wir können die beiden oben erscheinenden Strukturen als vorbestellte Strukturen betrachten

( N , = , f N )(M,=,fM) und(N,=,fN)

und der Homomorphismus, den wir umschreiben können, um eine befriedigende Funktion zu sein

  1. dass wenn dann undh ( a ) = h ( b )a=bh(a)=h(b)
  2. für alle in ist .M h ( f M ( a ) ) = f N ( h ( a ) )aMh(fM(a))=fN(h(a))

Angenommen, Sie haben einen anderen Begriff der Annäherung, der sinnvoll ist. Wenn wir uns beispielsweise bei der Programmüberprüfung mit Zustandsmengen befassen, ist die Einbeziehung von Teilmengen für bestimmte Anwendungen sinnvoll, oder wenn es sich um Formeln mit automatisierter Ableitung handelt, ist die Implikation sinnvoll. Allgemeiner können wir betrachten

( N , , f N ) (M,,fM) und , wobei und Vorbestellungen sind.(N,,fN)

Anstelle von Homomorphismus können wir jetzt eine Abstraktionsfunktion haben

α:MN das ist

  1. monoton, was bedeutet, dass wir immer dann, wenn , undabα(a)α(b)
  2. Halb pendelt mit den Operationen: für alle in .α(fM(a))fN(α(a))aM

Die Abstraktionsfunktion macht deutlich, dass, wenn die Struktur über eine Abstraktion der Struktur über , die Bewertung eines Terms in keine genaueren Ergebnisse liefern kann (in Bezug auf den Begriff der Approximation in ) als die Bewertung desselben Terms in und ordne es dann .NMNNMN

Jetzt können wir fragen, ob es notwendig ist, das Problem in Bezug auf Abstraktion und nicht in Bezug auf Verfeinerung anzugehen. Das heißt, können wir nicht sagen, dass eine Verfeinerung von und Bedingungen in Begriffen formulieren. Genau das macht eine Konkretisierungsfunktion .MN

Eine Konkretisierungsfunktion ist monoton und erfüllt die Ungleichung .γ:NMfM(γ(b))γ(fN(b))

Die Abstraktions- und Konkretisierungsbedingungen werden in der abstrakten Interpretation als Soliditätsbedingungen bezeichnet. In dem speziellen Fall, dass und eine Galois-Verbindung bilden, sind die Abstraktions- und Konkretisierungsbedingungen äquivalent. Im Allgemeinen sind sie nicht gleichwertig.αγ

Alles, was wir bisher getan haben, formalisiert nur den Begriff der Abstraktion zwischen zwei Strukturen. Die Dinge, die ich gesagt habe, lassen sich in der Sprache der Kategorietheorie viel prägnanter zusammenfassen. Ich habe Kategorien wegen Ihres obigen Kommentars vermieden.

Abstraktionshierarchien

Angenommen, wir haben eine Struktur die mit einer Vorbestellung und einigen Operationen ausgestattet ist. Wir können alle Strukturen so betrachten, dass eine Abstraktion von im obigen Sinne ist. Wenn wir haben, dass eine Abstraktion von und beide Abstraktionen von , haben wir drei Elemente der Hierarchie. Die Beziehung "ist eine Abstraktion von" ermöglicht es uns, eine Vorordnung zwischen Strukturen zu definieren. Nennen wir eine Familie von Strukturen, die nach Abstraktion geordnet sind, eine Hierarchie .N N M N 1 N 2 M.MNNMN1N2M

Wenn ich Ihr Beispiel betrachte, scheint Ihr abstrakter Deltamuskel ein Kandidat für das maximale Element in einer bestimmten Hierarchie zu sein. Ich bin mir nicht ganz sicher, da der abstrakte Deltamuskel eher eine Familie von Deltamuskeln als ein spezifischer Deltamuskel zu sein scheint.

Sie können jetzt verschiedene Hierarchien berücksichtigen. Die Hierarchie aller Deltamuskeln. Eine Unterhierarchie, die auf verschiedenen Überlegungen basiert, die Sie oben haben. Ein spezifisches Beispiel im abstrakten Interpretationskontext ist eine Hierarchie vollständiger Gitter, die in einer Galois-Verbindung mit einem gegebenen Powerset-Gitter stehen, und Unterhierarchien, die nur aus verteilenden oder nur booleschen Gittern bestehen.

Wie Martin Berger in den Kommentaren ausführt, wird dieser Begriff der Abstraktion zwischen Hierarchien durch den Begriff der Adjunktionen zwischen Kategorien erfasst.

Eine kategoriale Perspektive

In einem Kommentar wurden weitere Kommentare zu Kategorien angefordert. Dieser Kommentar ist nicht mehr da, aber ich werde trotzdem antworten.

Lassen Sie uns einen Schritt zurücktreten und uns ansehen, was Sie beim Entwerfen von Deltamuskeln tun und was ich oben aus einer allgemeineren Perspektive beschrieben habe. Wir sind daran interessiert, die wesentliche Struktur der Entitäten, die wir in einem Softwarekontext manipulieren, und die Beziehung zwischen diesen Entitäten zu verstehen.

Die erste wichtige Erkenntnis ist, dass wir nicht nur an einer Reihe von Elementen interessiert sind, sondern auch an den Operationen, die wir an diesen Elementen ausführen können, und an den Eigenschaften dieser Operationen. Diese Intuition treibt den Entwurf von Klassen in der objektorientierten Programmierung und die Definition algebraischer Strukturen voran. Sie haben diese Intuition bereits in der Definition eines Deltamuskels explizit gemacht, der einige interessante Operationen identifiziert hat. Im Allgemeinen ist dies der Denkprozess, der algebraischen Beschreibungen zugrunde liegt. Wir müssen herausfinden, was unsere Operationen sind und welche Eigenschaften sie haben. Dieser Schritt teilt uns die Typstruktur mit, mit der wir arbeiten.

Die zweite Erkenntnis ist, dass wir nicht nur an einer Reihe von Elementen interessiert sind, sondern auch an Abstraktionsbeziehungen. Die einfachste Formalisierung, die ich mir von Abstraktion vorstellen kann, besteht darin, eine vorbestellte Menge zu betrachten. Wir können uns eine vorbestellte Menge als eine strikte Verallgemeinerung einer Menge auf etwas vorstellen, das mit einem eingebrannten Begriff der Annäherung einhergeht.

Wir möchten idealerweise in einem Umfeld arbeiten, in dem beide oben genannten Erkenntnisse erstklassige Bürger sind. Das heißt, wir wollen eine typisierte Einstellung wie die einer Algebra, aber auch die approximationsbewusste Einstellung einer Vorbestellung. Ein erster Schritt in diese Richtung ist die Betrachtung eines Gitters. Ein Gitter ist eine konzeptionell interessante Struktur, da wir es auf zwei äquivalente Arten definieren können.

  1. Wir können ein Gitter als eine Menge die mit einer und einer Join-Operation ausgestattet ist. Wir können dann die ableiten , indem wir , das immer dann gilt, wenn .a b a b = a(L,,)abab=a
  2. Eine Alternative besteht darin, ein Gitter als eine teilweise geordnete Menge erfüllt, dass jedes in eine eindeutige größte Untergrenze und kleinste Obergrenze hat. Wir können dann die Meet & Join-Operationen aus der Teilreihenfolge ableiten .L.(L,)L

Ein Gitter ist somit eine mathematische Struktur, die aus der algebraischen oder der Approximationsperspektive angegangen werden kann. Das Manko dabei ist, dass die Elemente eines Gitters selbst keine Typstruktur besitzen, die in die Approximationsbeziehung einbezogen wird. Das heißt, wir können keine Elemente vergleichen, die auf dem Gedanken beruhen, mehr oder weniger strukturiert zu sein.

Im Kontext Ihres Problems können Sie sich Kategorien als eine natürliche Verallgemeinerung von Vorbestellungen vorstellen, die sowohl den Begriff der Approximation (in den Morphismen) als auch die Typstruktur in einer algebraischen Umgebung erfassen. Die Einstellung der Kategorietheorie ermöglicht es uns, auf verschiedene unnötige Unterscheidungen zu verzichten und uns auf die Struktur der Entitäten zu konzentrieren, die Ihnen wichtig sind, und auf die Annäherung an diese Struktur. Universelle Eigenschaften und Zusätze bieten Ihnen ein sehr leistungsfähiges Vokabular und Werkzeuge, um die Landschaft der Strukturen zu verstehen, an denen Sie interessiert sind, und ermöglichen eine rigorose mathematische Behandlung selbst intuitiver Begriffe wie verschiedener Abstraktionsebenen.

In Bezug auf meinen Kommentar zu abstrakten Deltamuskeln scheint es, dass Sie eine Kategorie wollen. Der abstrakte Deltamuskel ist eine spezifische Kategorie analog zur Kategorie der Mengen. Es gibt andere Kategorien, die Sie in Betracht ziehen. Ich dachte anfangs, Sie definieren einen Deltamuskel, der im Sinne der Kategorietheorie ein terminales (oder endgültiges) Objekt wäre.

Sie untersuchen die Art von Fragen, auf die die Kategorietheorie eine sehr zufriedenstellende Antwort liefert. Ich hoffe, dass Sie selbst zu diesem Schluss kommen können.

Verweise

  1. Abstrakte Interpretation und Anwendung auf Logikprogramme , Patrick Cousot und Radhia Cousot. Die erste Hälfte dieses Artikels ist eine allgemeine Einführung in das Thema der abstrakten Interpretation.
  2. Abstrakte Interpretationsrahmen , Patrick Cousot und Radhia Cousot. Dieser Artikel beschreibt alle Möglichkeiten, die ich oben in Bezug auf Abstraktions- und Konkretisierungsfunktionen skizziert habe, ausführlich.
  3. Systematisches Design von Programmanalyse-Frameworks , Patrick Cousot und Radhia Cousot. Dies war das Papier, das den Begriff der Hierarchien von Abstraktionen in den Kontext der Programmanalyse einführte.
  4. Verallgemeinerte starke Bewahrung durch abstrakte Interpretation , Francesco Ranzato und Francesco Tapparo. Dieses Papier wendet diese Ideen in einem anderen Kontext von Abstraktionen an, die zeitliche Logikformeln bewahren. Hier finden Sie Beispiele für boolesche und verteilende Abstraktionen.
  5. Abstrakte Interpretation, logische Beziehungen und Kan-Erweiterungen , Samson Abramsky. Präsentiert eine kategorietheoretische Perspektive auf das obige ordnungstheoretische Material.
Vijay D.
quelle
Vielen Dank für Ihre gründliche Antwort! Und das Fehlen von Kategorien wird sehr geschätzt. ;-) (Ich muss in Zukunft eine Theorie der Zwischenkategorie studieren.) Ich werde mir Ihre Referenzen ansehen. - = # = - In der Zwischenzeit habe ich eine Frage zu Ihrer Aussage "Der abstrakte Deltamuskel scheint eher eine Familie von Deltamuskeln als ein spezifischer Deltamuskel zu sein". Können Sie erklären, wie sich der abstrakte Deltamuskel in dieser Hinsicht von den anderen unterscheidet? Kann keine algebraische Struktur als die Familie all ihrer Verfeinerungen angesehen werden?
Mhelvens
@ VijayD Danke für das Update auf CT. Ich bin derjenige, der sich schuldig gemacht hat, den Kommentar abgegeben und ihn dann gelöscht zu haben. Ich bin der festen Überzeugung, dass CT für das Problem von OP besser geeignet ist. Ich bin noch mehr überzeugt, nachdem ich Ihr Update gesehen habe. Ich denke, wenn das OP es nicht mit CT machen will, wird es jemand anderes tun.
Scaaahu
Es ist sehr wahrscheinlich, dass die Kategorietheorie die besten Antworten auf meine Fragen liefert. Und ich freue mich darauf, es zu studieren und diese Antworten besser zu verstehen. In der Tat sollte mein Zeitmangel zum Studium und zur Anwendung der Kategorietheorie keine Entschuldigung sein, um auf dieser Website eine „minderwertige“ Antwort zu geben. - = # = - Trotzdem schätze ich Vijays Überlegung sehr. Seine Antwort auf monoider Ebene war sehr nützlich. - = # = - Daher kann ich momentan keine Kategorien verwenden. Aber ich werde die Option in zukünftigen Arbeiten auf jeden Fall untersuchen. Vielen Dank an alle!
Mhelvens
Sie sind in einer hervorragenden Position, um das Thema aufzugreifen, da Sie ein Problem vor sich haben, das Sie gut verstehen und direkt aus der kategorialen Perspektive analysieren können. Ich finde dies der beste Weg, um etwas zu lernen, und möchte Sie dringend bitten, nicht zu zögern, da Texte zur Kategorietheorie einschüchternd wirken. Ich bin sicher, es gibt mundgerechte Portionen zu studieren. Viel Glück für die Verteidigung.
Vijay D
9

XX

δδ

δ

Ich bin mir nicht sicher, ob Sie LaTeX- und Nokia-Mobiltelefone in der allgemeinen Theorie zu ernst nehmen wollen. Aber natürlich sollte Ihre Theorie auf solche Beispiele anwendbar sein (lassen Sie sich einfach nicht aufhängen, wenn Sie feststellen, dass Mobiltelefone keine genau definierte Semantik haben).

Sie ändern sich wirklich, indem Sie auf einer vorgegebenen Technologie bestehen (von Ihrem Berater?), Wie es aussieht.

Andrej Bauer
quelle
2
Im Allgemeinen stimme ich Ihnen zu. Und ich habe es auch nie als Ausrede benutzt. :-) Aber in diesem Fall ist der größte Teil meiner Arbeit bereits geschrieben und das Monoid wurde in allen meinen Veröffentlichungen verwendet. - = # = - Davon abgesehen machen Sie einen ausgezeichneten Punkt. Im Beispiel für ein Kunststoff / Metall-Gehäuse gehe ich jetzt damit um, indem ich die Zusammensetzung zulasse, aber das resultierende Delta als leere Beziehung auswerten lasse (wie Sie vermutet haben). Es ist alles gut definiert, also reicht es vorerst aus. Aber ich kann sehen, dass Ihr Vorschlag eleganter ist. Sie haben mir einen weiteren guten Grund gegeben, Kategorietheorie zu studieren. Vielen Dank!
Mhelvens
@mhelvens Ich bin ein pensionierter Software-Ingenieur, der seit langer Zeit in der Industrie lebt. Kam zurück nach der Pensionierung TCS. Ich werde dir eine echte Frage stellen. Angenommen, Sie haben Nokia-Telefonprodukte in Ihrer Abschlussarbeit erfolgreich mit Monoid formalisiert. Was werden Sie in der mündlichen Verteidigung sagen, wenn Apple die Übernahme von Nokia ankündigt? Wird diese Ankündigung Ihr Modell beschädigen? Es scheint mir, je allgemeiner die Theorie ist, desto besser wäre das Modell.
Scaaahu
@scaaahu Interessante Frage. :-) Lassen Sie mich zunächst antworten: "Nein, überhaupt nicht." Die Theorie ist unabhängig vom Gerätetyp. - = # = - Ich versichere Ihnen, dass Sie mich nicht von den Vorteilen der Verallgemeinerung überzeugen müssen. (Tatsächlich denke ich, dass ich es manchmal übertreibe.) Es kommt einfach so vor, dass ich nicht rechtzeitig auf die Kategorietheorie gestoßen bin, damit sie für meine Doktorarbeit nützlich ist. Wie gesagt, ich stimme zu, dass dies ein wertvoller Ansatz sein kann. Zwei Monate nach Abschluss meiner Abschlussarbeit ist jedoch nicht der richtige Zeitpunkt, um meinen Ansatz grundlegend zu ändern.
Mhelvens
Klar, du bist bereit für einen Postdoc ;-)
Andrej Bauer
Zuschussantrag bereits versandt. :-) Ich hoffe ich kann in diesem Bereich weitermachen.
Mhelvens