Algebraische Spezifikation - Informatik - FB3
Transcription
Algebraische Spezifikation - Informatik - FB3
Algebraische Spezifikation Hans-Jörg Kreowski February 10, 2004 2 Algebraische Spezifikation ➤ Spezifikation und Modellierung von datenverarbeitenden Systemen von den Anforderungen bis zur Realisierung (bzw. nahe davor) ➤ formale Syntax & Semantik (z.B. algebraische Spezifikationssprache CASL) ➤ Korrektheitsbeweise H-J. Kreowski: Algebraische Spezifikation February 10, 2004 3 Signatur SIG = < S , OP > Name Menge von Sorten (OPw,s)w∈S∗,s∈S Mengenfamilie von Operationssymbolen ➤ S3s benennt Datenbereich ➤ OPλ,s3op benennt Konstante ➤ OPs1···sn,s3op benennt Operation ➤ W deklariert Argumentbereiche, s Wertebereich H-J. Kreowski: Algebraische Spezifikation February 10, 2004 4 Syntax Signatur SIG S3s OPλ,s3c OPs1···sn,s3op Mengen der SIG-Terme TSIG,s TSIG,s⊇OPλ,s3c TSIG,s3op(t1, . . . ,tn) für OPs1···sn,s3op & TSIG,si 3ti H-J. Kreowski: Algebraische Spezifikation February 10, 2004 Semantik SIG-Algebra A (Datentyp) As Datenmenge cA3As ausgez. Element opA:As1 × · · · ×Asn →As Operation (Abb.) 5 Terme ➤ Menge der SIG-Terme zur Sorte s∈S: (i) OPλ,s⊆TSIG,s (ii) op(t1, . . . , tn)∈TSIG,s falls op∈OPs1···sn,s & ti∈TSIG,si ➤ Induktionsprinzip über Termaufbau: Eigenschaft prop gilt für alle SIG-Terme, falls (i) prop f. a. c∈OPλ,s gilt (IA) und (ii) prop für op(t1, . . . ,tn) gilt (IS), vorausgesetzt prop gilt für t1, . . . ,tn (IV) H-J. Kreowski: Algebraische Spezifikation February 10, 2004 6 ➤ jeder SIG-Term liefert in jeder SIG-Algebra A genau einen Wert, d.h. die Interpretationen evals:TSIG,s→As, die definiert sind durch (i) evals(c)=cA (ii) evals(op(t1, . . . ,tn))=opA(evals1 (t1), . . . ,evalsn (tn)) sind Abbildungen H-J. Kreowski: Algebraische Spezifikation February 10, 2004 7 ➤ Terme & Termaufbau ergeben einen Datentyp, die SIG-Termalgebra TSIG mit • Datenmengen TSIG,s f.a. s∈S • ausgezeichneten Elementen cTSIG =cT:=c f.a. c∈OPλ,s & s∈S • Operationen opTSIG =opT:TSIG,s1 × · · · ×TSIG,sn →TSIG,s def. durch opT(t1, . . . ,tn):=op(t1, . . . ,tn) f.a. op∈OPs1···sn,s ; si,s∈S ; ti∈TSIG,si H-J. Kreowski: Algebraische Spezifikation February 10, 2004 8 Beobachtung eval:TSIG→A einziger SIG-Homomorphismus ➤ TSIG und A operieren bis auf Interpretation der Terme gleich ➤ ist eval sogar SIG-Isomorphismus (d.h. bijektiv), dann sind TSIG und A sogar gleich bis auf Repräsentation (Darstellung) der Daten in Zeichen: TSIG∼ =A ➤ TNAT∼ =IN und TSTRING∼ =A∗ H-J. Kreowski: Algebraische Spezifikation February 10, 2004 9 Spezifikation ➤ Gleichheit fordern durch Paare von Termen mit Variablen ➤ Variablen dienen als Platzhalter für alle Werte SPEC = < SIG , EQ > spec SPEC = SIG : Signatur EQ : Menge von Gleichungen sorts . . . opns . . . eqns . . . H-J. Kreowski: Algebraische Spezifikation February 10, 2004 0 0 t=t für t,t ∈TSIG(Xs), s∈S 10 Gültigkeit von Gleichungen ➤ Wertzuweisung ass:X→A (SIG -Algebra) ➤ Interpretation (Auswertung) ass§:TSIG(X)→A : (i) ass§(c)=cA für c∈OPλ,s (ii) ass§(x)=ass(x) für x∈Xs (iii) ass§(op(t1, . . . ,tn))=opA(ass§(t1), . . . ,ass§(tn)) für op∈OPs1···sn,s , ti∈TSIG(X)si 0 § § 0 ➤ t=t gilt in A, falls ass (t)=ass (t ) für alle ass ➤ A SPEC-Algebra, falls alle Gleichungen aus EQ in A gelten H-J. Kreowski: Algebraische Spezifikation February 10, 2004 11 Syntax Signatur SIG Gleichung Zeichen 0 t=t Semantik A SIG-Algebra, insbes. TSIG Gültigkeit in A Gleichheit in A § § 0 ass (t) = ass (t ) @ @ Daten in As für alle ass : X → A Spezifikation SPEC A SPEC-Algebra, falls alle Gleichungen aus EQ in A gelten = SIG-Terme der Sorte s mit Variablen aus X < SIG,EQ > Gleichungsmenge H-J. Kreowski: Algebraische Spezifikation February 10, 2004 12 Algebraische Spezifikation mit Gleichungen ➤ Gleichungen spezifizieren gewünschte Gleichheiten in einem Datentyp, wobei die Variablen für alle Werte der entsprechenden Sorte stehen und die Konstanten- und Operationssymbole auf die entsprechenden Konstanten und Operationen verweisen ➤ das lässt sich in der Termalgebra widerspiegeln durch Angabe der Terme, die eigentlich gleich sein sollten H-J. Kreowski: Algebraische Spezifikation February 10, 2004 13 EQ-erzeugte Äquivalenz auf TSIG (1) Substitution: ass§(L) ≡ ass§(R) für alle L = R ∈ EQ & ass : X → TSIG 0 0 (2) Op-Abschluss: op(t1, . . . ,tn) ≡ op(t1 , . . . ,tn ) für alle 0 op ∈ OPs1···sn ,s & t ≡ t , i = 1, . . . ,n (3) t ≡ t (Reflexivität) 0 0 (4) t ≡ t impl. t ≡ t (Symmetrie) 0 0 00 00 (5) t ≡ t & t ≡ t impl. t ≡ t (Transitivität) Beobachtung: ≡ wegen (iii) - (v) Äquivalenz und wegen (ii) auch Kongruenz H-J. Kreowski: Algebraische Spezifikation February 10, 2004 14 Quotiententermalgebra Semantik 7→ TSPEC 7→ TSPEC,s = {[t] | t ∈ TSIG,s} = Syntax SPEC S3s 0 0 {t | t ≡ t } OPλ,s 3 c 7→ c = [c] ∈ TSPEC,s OPs1···sn,s 3 op 7→ op : TSPEC,s1 × · · · × TSPEC,sn → TSPEC,s definiert durch op([t1], . . . ,[tn]) =[op(t1, . . . ,tn)] H-J. Kreowski: Algebraische Spezifikation February 10, 2004 15 SPEC0 - Anteil SPEC0= < S0,OP0,EQ0 > Spezifikationen, ➤ A SPEC1−Algebra SPEC1= < S1,OP1,EQ1 > T | T | T | SPEC0-Anteil ASPEC0 von A: (i) (ASPEC0 )s : = As f.a. s ∈ S0 (ii) opASPEC0 : = opA f.a. op ∈ OP0 H-J. Kreowski: Algebraische Spezifikation February 10, 2004 ) SPEC0−Algebra 16 ➤ Achtung: Für die Quotiententermalgebren TSPEC0 , TSPEC1 ist der eindeutige Homomorphismus TSPEC0 → (TSPEC1 )SPEC0 im Allgemeinen weder surjektiv noch injektiv. ➤ Extension EXT=SPEC1+ < S2 ,OP2,EQ2 >: (i) EXT ist Kombination (ii) der SPEC1-Anteil von TEXT ist isomorph zur SPEC1-Quotiententermalgebra: (TEXT)SPEC1 ∼ = TSPEC1 ➤ Enrichment: Extension EXT mit S2=∅ H-J. Kreowski: Algebraische Spezifikation February 10, 2004 17 Kombination ➤ Kombination COMB = SPEC1 + < S2,OP2,EQ2 >: (i) SPEC1 = < S1,OP1,EQ1 > Spezi− (ii) SPEC = < S1∪S2,OP1∪OP2,EQ1∪EQ2 > fikation ➤ Semantik: TCOMB : = TSPEC ➤ Schreibweise: spec SPEC = SPEC1 + SPEC2 oder spec SPEC = SPEC1 sorts . . . opns . . . eqns . . . H-J. Kreowski: Algebraische Spezifikation February 10, 2004 18 beweistheoretische Beschreibung ➤ init injektiv gdw. t1 ≡SPEC t2 impliziert t1 ≡SPEC0 t2 f. a. SPEC0-Terme t1, t2 ➤ init surjektiv gdw. f.a. SPEC-Terme t mit SPEC0-Sorte SPEC0-Term t0 existiert mit t ≡SPEC t0 H-J. Kreowski: Algebraische Spezifikation February 10, 2004 19 Syntax Semantik Pragmatik SPEC0 ⊆ SPEC ASPEC0 insbes. :(TSPEC)SPEC0 Anteil, Vergissbild, Redukt, Ausschnitt, Sicht init:TSPEC0 →(TSPEC0 )SPEC0 Vergleich SPEC=SPEC0+ (S−S0,OP−OP0,EQ−EQ0) insbes. :Kombination, Erweiterung, Weiterund Wiederverwendung (alt-neu, vorhernachher) init injektiv Verschiedenes bleibt verschieden init surjektiv nichts Neues in alten Sorten H-J. Kreowski: Algebraische Spezifikation February 10, 2004 20 Systementwicklung korrekt? (2) −→ ←− Entwurf alg. Spez. mit loser Semantik (4) −→ ←− (1) −→ ←− Anforderungsdefinition korrekt? (3) alg. Spez. mit initialer Semantik korrekt? Programm (1) Problemlösen & Strukturieren (2) schrittweise verfeinern (3) CASL-Tools (4) Parametrisierung H-J. Kreowski: Algebraische Spezifikation February 10, 2004