Finale Semantik und beobachtbares Verhalten

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Eine dynamische Menge, die diese Operationen unterstützt,
Polynomial Root Isolation
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Claudio Moraga; Gisbert Dittrich
Prof. Dr. W. Conen 15. November 2004
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Es sei SPEC = (, E) eine Spezifikation mit einer
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 4 / 1 Termalgebren Definition "Freie Algebra" Die -Algebra A = [A, F ] heißt.
Kapitel 4 Datenstrukturen
Ein Modellansatz zur Beschreibung von Vagheiten
Algorithmentheorie 04 –Hashing
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Kapitel 5 Stetigkeit.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 10 Claudio Moraga; Gisbert Dittrich FBI Unido
Datentyp  Zusammenfassung von Mengen von "Werten" mit auf
? Grammatik  Orthographie ?
d.h. für alle  mit () = (s1,s2 ,...,sn,s) gilt: wenn
Beispiele für Ausdrucksalgebren
Eine (Gleichungs-)Spezifikation ist ein Paar SPEC = (, E),
Einführung Wat jibt´s denn? Mit Computa kenn´ ick mir aus! Guten Tag,
Gleichungskalkül und Induktion
Folie 1 Kapitel II. Vom Raumbegriff zu algebraischen Strukturen Neubeginn: Herleitung des Begriffs Vektorraum aus intuitiven Vorstellungen über den Raumbegriff.
Folie 1 § 30 Erste Anwendungen (30.2) Rangberechnung: Zur Rangberechnung wird man häufig die elementaren Umformungen verwenden. (30.1) Cramersche Regel:
§9 Der affine Raum – Teil 2: Geraden
§9 Der affine Raum – Teil 2: Geraden
§14 Basis und Dimension  (14.1) Definition: V sei wieder ein K-Vektorraum. Eine Menge B von Vektoren aus V heißt Basis von V, wenn B ist Erzeugendensystem.
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
Variationsformalismus für das freie Teilchen
§17 Produkte und Quotienten von Vektorräumen
§24 Affine Koordinatensysteme
Einführung in die Programmierung
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Grundlagen der Programmierung
§23 Basiswechsel und allgemeine lineare Gruppe
§3 Allgemeine lineare Gleichungssysteme
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Fuzzymengen – Was ist das?
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Folie 1 §21 Das Produkt von Matrizen (21.1) Definition: Für eine (m,n)-Matrix A und eine (n,s)-Matrix B ist das (Matrizen-) Produkt AB definiert als (21.2)
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig 0 / 1 Syntax, Semantik, Spezifikation Grundlagen der Informatik R. Hartwig.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 10 / 1 Kapitel 10 Initialität Eine beliebige gleichungsdefinierbare Klasse.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
? definierende Gleichungen  gültige Gleichungen ?
 Sortigkeit oder Arität
Folie 1 §8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
 Präsentation transkript:

Finale Semantik und beobachtbares Verhalten Kapitel 13 Finale Semantik und beobachtbares Verhalten Das Ziel der Benutzung von Gleichungsspezifikationen SPEC = (, E) zur Festlegung eines monomorphen abstrakten Datentyps ADTSPEC hat uns zur initialen Semantik geführt. Aber die Isomorphieklasse der initialen Algebren in AlgSPEC ist natürlich nicht die einzige Isomorphieklasse in AlgSPEC. Sie ist auch nicht a priori vor anderen Isomorphieklassen ausgezeichnet. Die initiale Semantik besitzt auch Nachteile. Es ist z.B. sehr leicht möglich, inkonsistente „Erweiterungen“ zu entwerfen. Deshalb ist es zweckmäßig, auch andere Semantiken zu suchen und zu untersuchen. Zur Motivation der Richtung der Suche betrachten wir wieder ein Beispiel.

Beispiel Es seien wieder nat und bool wie bei den früheren Beispielen gegeben. nateq = nat + bool + oprs eq : nat, nat  bool var n, m : nat eqns (0 eq 0) = true (0 eq suc(n)) = false (suc(n) eq 0) = false (suc(n) eq suc(m)) = (n eq m) end nateq Es ist relativ leicht, nachzuweisen, daß die Spezifikation nateq eine Erweiterung von nat ist. Überzeugen Sie sich selbst davon!

Beispiel (Forts.) setofnat = nateq + sorts set oprs  :  set insert : set, nat  set del : set, nat  set if-then-else-set : bool, set, set  set if-then-else-nat : bool, nat, nat  nat if-then-else-bool : bool, bool, bool  bool  : nat, set  bool equal : set, set  bool  : set, set  bool card : set  nat var  eqns  end setofnat andere Spezifikation von „Mengen natürlicher Zahlen“ als in früherem Beispiel siehe nächste Folie

Beispiel (Forts.) setofnat = nateq + sorts  oprs  var s, t : nat ; m, n : nat ; p, q : bool eqns if true then s else t set = s if false then s else t set = t if true then m else n nat = m if false then m else n nat = n if true then p else q bool = p if false then p else q bool = q n   = false n  insert(s, m) = if (n eq m) then true else ns bool  end setofnat siehe vorige Folie weitere Gleichungen nächste Folie

Beispiel (Forts.) setofnat = nateq + sorts  oprs  var s, t : nat ; m, n : nat ; p, q : bool eqns  card() = 0 card(insert(s, n)) = if ns then card(s) else suc(card(s)) nat del(, n) =  del(insert(s, n), m) = if (n eq m) then del(s, m) else insert(del(s, m), n) set (  ) = true (  insert(s, n)) = true (insert(s, n)  t ) = and(n  t , s  t) (s equal t ) = and(s  t, t  s) end setofnat siehe Folie vorn Gleichungen aus voriger Folie und ...

insert(insert(s, 0), 0) E* insert(s, 0), Beispiel (Forts.) Wie man sich leicht überzeugt, ist nun in setofnat nicht mehr  E* insert(, 0) abzuleiten, allerdings gilt nun auch insert(insert(s, 0), 0) E* insert(s, 0), d.h. die Kongruenzklassen [insert(s, 0)] und [insert(insert(s, 0), 0)] in Tsetofnat sind verschieden! Es werden also verschiedene Darstellungen „derselben Menge“ unterschieden. Das liegt hier auch an der initialen Semantik. Das initiale Modell erweist sich hier wieder einmal als zu groß! Wenn man sich aber die in setofnat erfaßbaren Eigenschaften der Mengen genauer ansieht, stellt man fest, daß hierbei verschiedene Darstellungen derselben Menge dieselben Eigenschaften haben!

Beispiel (Forts.) In setofnat gilt z.B. card(insert(insert(, n), n)) E* if ninsert(, n) then card(insert(, n)) else suc(card(insert(, n))) nat E* card(insert(, n)) und analoge Gleichungen für , equal,  . Ein oft genutzter Ansatz für Datentypen ist es, zwischen „sichtbaren“ und „versteckten“ Sorten und Operatoren zu unterscheiden. Wenn man also über die „neuen“ Elemente nur durch Anwendung der „erlaubten“ Operationen etwas erfährt, dann lassen sich die obigen verschiedenen Darstellungen nicht mehr unterscheiden! Das beobachtbare Verhalten ist gleich! setofnat  hidden sorts set oprs , insert, del 

Initiale Modelle sind zur Erfassung des beobachtbaren Verhaltens i.a. zu groß! Generell kann man die initiale Algebra T,E in Alg,E als „möglichst große“ Algebra mit leeren Erzeugendensystem beschreiben. Für beliebige Terme t1, t2  T gilt [t1]E  [ t2]E , sobald sie nur in einer einzigen Algebra A  Alg,E verschiedene Werte haben! A h Alg,E T g nat(E) T,E Wenn h(t1)  h (t2), so wegen h = nat(E)  g auch [t1]E  [ t2]E .

Initiale Modelle zu groß! Gibt es evtl. auch „möglichst kleine“ Algebren mit leerem Erzeugendensystem in Alg,E ? Dual zum initialen Fall sollten zwei Terme t1, t2  T in dieser neuen „semantischen Algebra“ nur dann verschiedene Werte haben, wenn sie in allen Modellen, d.h. in allen (, E)-Algebren, verschiedene Werte haben. Beachte aber: In Alg,E liegt immer die entartete Algebra mit genau einem Element in jeder Trägermenge. Diese erfüllt obige Bedingung, ist aber viel zu klein! Initialität wurde mittels Homomorphismen definiert. Wir definieren einen dualen Begriff „finale Algebra“.

Sei K  Alg eine Klasse von -Algebren. Definition „finale Algebra“ Sei K  Alg eine Klasse von -Algebren. Dann heißt eine Algebra A  K final in K genau dann, wenn zu jeder Algebra B  K genau ein Homomorphismus h von B in A existiert. Analog zum Falle der Initialität kann man leicht zeigen, daß die in einer Klasse K finalen Algebren eine Isomorphieklasse bilden. Aber natürlich gibt es nicht in jeder Klasse K finale Algebren.

Es sei A eine (, E)-Algebra Es sei A eine (, E)-Algebra. Angenommen, in Alg,E gibt es eine finale Algebra F , so ergibt sich: Für beliebige Terme t1, t2  T folgt aus i(t1) = i(t2) sofort gfin(h(t1)) = gfin(h (t2)). Umgekehrt, wenn t1, t2 in der Algebra A denselben Wert haben, h(t1) = h (t2), ist auch i(t1) = i(t2), d.h. sie haben auch in F denselben Wert. A h Alg,E T gfin i F Die entartete Algebra ist also final in Alg,E.

Eine sinnvolle finale Semantik erfordert die Verkleinerung der Algebrenklasse, um die entartete Algebra auszuschließen. Üblich sind zwei Methoden: Definition einer Unterklasse MOD  Alg ,E zulässiger Modelle von SPEC = (, E). Wenn es in MOD eine finale Algebra F gibt, so ist deren Isomorphieklasse der durch die finale Semantik bestimmte abstrakte Datentyp FINSPEC . Definition einer Kongruenzrelation E mittels des Gleichungssystems E und bilde T E . Zeige, daß T E final in einer bestimmten Modellklasse MOD  Alg ,E ist. Die Isomorphieklasse von T E ist dann wieder der abstrakte Datentyp FINSPEC .

Initiale Semantik ist ein fester Begriff. Bei der finalen Semantik gibt es Wahlmöglichkeiten in der direkten Bestimmung der zulässigen Modellklasse MOD bzw. durch die Festlegung einer geeigneten Kongruenz E . Es gibt sehr unterschiedliche Ansätze für die finale Semantik. Durch geeignete Definition der Kongruenzrelation E gelingt es z.B., das sog. „beobachtbare Verhalten“ zu modellieren. Auch für die Formalisierung des beobachtbaren Verhaltens gibt es verschiedene Möglichkeiten.