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

Documents pareils