Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18,...

45
¨ Ubersicht Gleichungsspezifikationen Kongruenzabschluss f¨ ur Grundtermgleichungen Kritische Paare und Knuth-Bendix-Vervollst¨ andigung Orthogonale Termersetzungssysteme Deduktion, SS 10, F olien TES, Seite 1, 13. Juli2010

Transcript of Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18,...

Page 1: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Ubersicht

• Gleichungsspezifikationen

• Kongruenzabschluss fur Grundtermgleichungen

• Kritische Paare und Knuth-Bendix-Vervollstandigung

• Orthogonale Termersetzungssysteme

Deduktion, SS 10, Folien TES, Seite 1, 13. Juli2010

Page 2: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Gleichungsspezifikationen

Eine (Gleichungs-)Spezifikation ist ein Paar spec = (Σ, E), wobei

• Σ = (S, F,arity) eine Signatur

• E = {u1 = v1, . . .} ein Gleichungssystem uber Σ und einem System

von Variablen V, d.h.

– ui, vi ∈ TermS(F,V) fur ein S ∈ S

Deduktion, SS 10, Folien TES, Seite 2, 13. Juli2010

Page 3: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Σ-Algebra

Signatur Σ = (S, F,arity), System von Variablen V , Spezifikation

spec = (Σ, E)

Eine Σ-Algebra A = (A, F ) besteht aus

• Tragermenge A =⋃

S∈SAS mit AS 6= ∅ und AS ∩AS′ = ∅ fur S 6= S′.

• Menge von Funktionen F = {f | f ∈ F}, so dass fur arity(f) =

S1 . . . Sn → S gilt, dass f eine Funktion f : AS1× . . .×ASn → AS ist.

Deduktion, SS 10, Folien TES, Seite 3, 13. Juli2010

Page 4: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Interpretation, Modell

Eine Interpretation ϕ zur Σ-Algebra A ist gegeben durch ϕ : V → A

wobei ϕ : VS → AS fur alle S ∈ S

Erweiterung auf Terme:

ϕ(f) = f , falls f eine Konstanteϕ((f(t1, . . . , tn)) = f(ϕ(t1), . . . , ϕ(tn)), sonst.

Σ-Algebra A ist ein Modell von spec = (Σ, E),

falls fur jede Interpretation ϕ gilt:

ϕ(s) = ϕ(t) fur alle s = t ∈ E.

Deduktion, SS 10, Folien TES, Seite 4, 13. Juli2010

Page 5: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Semantische E-Gleichheit

Sei spec = (Σ, E) eine Spezifikation.

• Σ-Algebra A erfullt eine Gleichung s = t falls fur jede Interpretation

ϕ gilt: ϕ(s) = ϕ(t) gilt in A.

• s, t sind E-gleich, falls jedes Modell von spec die Gleichung s = t

erfullt. Schreibweise: E |= s = t

Deduktion, SS 10, Folien TES, Seite 5, 13. Juli2010

Page 6: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Operationale E-Gleichheit

Sei spec = (Σ, E) eine Spezifikation.

t1E−→ t2 gdw.

formal:

es gibt p ∈ Pos(t1), s1 = s2 ∈ E und Substitution σ

mit σ(s) = t1/p und t2 = t1[σ(s2)/p]

informal:

t2 entsteht aus t1 durch Anwenden einer Gleichung

auf einen Teilterm von t1

t1 =E t1 gdw. t1E,∗←−→ t2

Schreibweise: E ` t1 = t2

Deduktion, SS 10, Folien TES, Seite 6, 13. Juli2010

Page 7: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Satz von Birkhoff

Fur jede Spezifikation spec = (Σ, E) gilt

E ` s = t gdw. E |= s = t

Deduktion, SS 10, Folien TES, Seite 7, 13. Juli2010

Page 8: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Unentscheidbarkeit

Gleichheit von Termen bzgl. einer endlichen Menge von Gleichheits-

axiomen E ist unentscheidbar.

D.h. das Wortproblem in beliebigen Gleichheitstheorien (mit endlichen

vielen Axiomen) ist unentscheidbar.

Aber: Es gibt Falle in denen das Wortproblem entscheidbar ist!

Deduktion, SS 10, Folien TES, Seite 8, 13. Juli2010

Page 9: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Zu betrachtende entscheidbare Falle

• endlich viele Grundtermgleichungen

– Berechne Congruence Closure

• konvergentesE−→

– Zeige Konvergenz. Ausreichend: Terminierung und lokale Kon-

fluenz.

Methode fur lokale Konfluenz: Knuth-Bendix-Test

– oder: Erstelle konvergentesE′−→ mit

E′,∗←−→=

E,∗←−→,

Methode: Knuth-Bendix-Vervollstandigung

Deduktion, SS 10, Folien TES, Seite 9, 13. Juli2010

Page 10: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Wortproblem auf endlicherMenge von

Grundtermgleichungen

Deduktion, SS 10, Folien TES, Seite 10, 13. Juli2010

Page 11: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Endliches Grundtermgleichungssystem

Grundterm : Term ohne Variablen

Grundtermgleichung s = t: s, t Grundterme

Fur Grundtermgleichungssystem E gilt: =E ist der Kongruenzabschluss

CC(E) von E, d.h. die kleinste Kongruenz uber Term(Σ,V) die E

enthalt.

Deduktion, SS 10, Folien TES, Seite 11, 13. Juli2010

Page 12: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Berechnung des Kongruenzabschlusses

Sei EG Grundtermgleichungssytem. Berechnung von CC(EG)

Fur

refl(E) = {s = s | s ∈ Term(Σ,V)}symm(E) = {t = s | s = t ∈ E}trans(E) = {s = t | s = r, r = t ∈ E}cong(E) = {f(s1 . . . sn) = f(t1 . . . tn) | si = ti ∈ E}cl(E) = E ∪ refl(E) ∪ symm(E) ∪ trans(E) ∪ cong(E)

gilt CC(EG) =⋃

i≥0cli(EG) wobei

cl0(EG) = EG

cli(EG) = cl(cli−1(EG)) fur i > 1

Terminiert nicht immer, da u.U. CC(EG) unendlich groß!

Deduktion, SS 10, Folien TES, Seite 12, 13. Juli2010

Page 13: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Losung

Um u =EGv zu entscheiden, braucht man nicht alle Terme aus CC(EG)

Es reicht nur die Terme aus CC(EG) berechnen, die benotigt werden.

Das sind gerade alle Unterterme der Gleichungen aus EG und von u

und v.

subterms(s) = {s/p | p ∈ Pos(s)}subterms(s = t) = subterms(s) ∪ subterms(t)

Deduktion, SS 10, Folien TES, Seite 13, 13. Juli2010

Page 14: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Berechnung des relevanten Teils

Sei EG Grundtermgleichungssytem. Frage: Gilt u =EGv ?

Sei S = subterms(EG) ∪ subterms(u) ∪ subterms(v)

Fur

refl(E) = {s = s | s ∈ S}symm(E) = {t = s | s = t ∈ E}trans(E) = {s = t | s = r, r = t ∈ E}cong(E) = {f(s1 . . . sn) = f(t1 . . . tn) | si = ti ∈ E}cl(E) = E ∪ refl(E) ∪ symm(E) ∪ trans(E) ∪ cong(E)

gilt: u =EGv gdw. (u, v) ∈

⋃i≥0

cli(EG) wobei

cl0(EG) = EG

cli(EG) = cl(cli−1(EG)) ∩ (S × S) fur i > 1

terminiert, da S endlich und cli(EG) ⊆ cli+1(EG) ⊆ (S × S)

Deduktion, SS 10, Folien TES, Seite 14, 13. Juli2010

Page 15: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Programm in Haskell (Ausschnitt)

Datentyp fur Terme:

data Term = Fn String [Term] -- Funktionssymbol mit Argumenten

| Var String -- Variablen

Z.B. f(x, g(y)) als Term: Fn "f" [Var "x", Fn "g" [Var "y"]]

Gleichungen:

type Gleichung = (Term,Term)

Deduktion, SS 10, Folien TES, Seite 15, 13. Juli2010

Page 16: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Operationen fur Reflexivitat, Symmetrie, Transitivitat und Kongruenz

-- s: Alle Unterterme

-- e: Gleichungen

-- fs: (Alle Funktionssymbole mit Stelligkeiten)

refl s e = [(t,t) | t <- s]

symm s e = [(t1,t2) | (t2,t1) <- e]

trans s e = [(t1,t3) | (t1,t2) <-e, t3 <-s, (t2,t3) ‘elem‘ e]

cong fs s e = [(Fn f a, Fn f b) |

(f,l) <- fs,

(a,b) <- nub (map unzip (gen l e)), l > 0]

-- berechnet Liste aller Paare ([s1,...,sl],[t1,...,tl])

-- mit (si,ti) aus e

Page 17: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Eine Iteration:

oneIter fs s e = let s_X_s = [(t,r) | t <- s, r <- s]

ohneS q = intersect q s_X_s

in e ‘union‘ (ohneS $ refl s e)

‘union‘ (ohneS $ symm s e)

‘union‘ (ohneS $ trans s e)

‘union‘ (ohneS $ cong fs s e)

Gesamten Kongruenzabschluss berechnen:

closure e u v =

let

s = nub $ unterterme u ++ unterterme v ++ gleichungenUT e

...

go e = let eneu = nub (oneIter fs s e)

in if eqSet eneu e -- e = eneu ??

then e -- ja, dann fertig (Fixpunkt erreicht)

else go eneu -- nein, dann weiter mit eneu

in go e

Page 18: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Beispiel: Binare Addition

e = parseEq "add(0,0)=0; add(0,1)=1; add(1,0)=1; add(1,1)=0"

u = parseTerm "add(add(add(0,1),add(1,0)),1)"

v = parseTerm "1"

closure e u v ergibt

[(add(0,0),0), (add(0,1),1), (add(1,0),1), (add(1,1),0),(add(add(add(0,1),add(1,0)),1),add(add(add(0,1),add(1,0)),1)),(add(add(0,1),add(1,0)),add(add(0,1),add(1,0))), (add(0,1),add(0,1)), (0,0), (1,1),(add(1,0),add(1,0)), (add(0,0),add(0,0)), (add(1,1),add(1,1)), (0,add(0,0)),(1,add(0,1)), (1,add(1,0)), (0,add(1,1)), (add(add(0,1),add(1,0)),add(1,1)),(add(1,1),add(add(0,1),add(1,0))), (add(0,0),add(1,1)), (add(0,1),add(1,0)),(add(1,0),add(0,1)), (add(1,1),add(0,0)), (add(add(0,1),add(1,0)),0),(0,add(add(0,1),add(1,0))), (add(add(0,1),add(1,0)),add(0,0)),(add(0,0),add(add(0,1),add(1,0))), (add(add(add(0,1),add(1,0)),1),add(0,1)),(add(0,1),add(add(add(0,1),add(1,0)),1)), (add(add(add(0,1),add(1,0)),1),1),(add(add(add(0,1),add(1,0)),1),add(1,0)), (1,add(add(add(0,1),add(1,0)),1)),(add(1,0),add(add(add(0,1),add(1,0)),1))]

Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010

Page 19: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Wortproblem fur konvergentesReduktionssystem E−→

Deduktion, SS 10, Folien TES, Seite 19, 13. Juli2010

Page 20: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Konvergenz impliziert Entscheidbarkeit

Spezifikation spec = (Σ, E). SeiE−→ konvergentes Reduktionssystem.

Dann ist das Wortproblem entscheidbar: Frage: Gilt u =E v? Es reicht

zu testen, ob gilt u↓= v↓. Denn fur konvergentesE−→ gilt u↓= v↓ gdw.

uE←−→ v

Frage: Wie entscheidet man, obE−→ konvergent ist?

• Im allgemeinen unentscheidbar!

• Hinreichende Bedingung: Zeige

1.E−→ ist noethersch. (zeige Terminierung)

2.E−→ ist lokal konfluent. (Methode: Knuth-Bendix-Test)

Deduktion, SS 10, Folien TES, Seite 20, 13. Juli2010

Page 21: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Kritische Paare

Zwei (variablendisjunkte) Regeln: • l1 → r1 • l2 → r2

Sei u ∈ Pos(l1), so dass• l1/u 6∈ V und• l1/u und l2 sind unifizierbar

Sei σ ∈ mgu(l1/u, l2).

Dann heißt σ(l1) eine Uberlappung von l2 → r2 in l1 → r1

Kritisches Paar zu l1 → r1 und l2 → r2: 〈σ(r1), σ(l1)[u→ σ(r2)]〉

Uberlappungstripel 〈σ(r1), σ(l1), σ(l1)[u→ σ(r2)]〉

CP(R) = Menge aller kritischen Paare, die man aus Regeln in R bilden kann

Deduktion, SS 10, Folien TES, Seite 21, 13. Juli2010

Page 22: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Kritische Paare

Deduktion, SS 10, Folien TES, Seite 22, 13. Juli2010

Page 23: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Kritische Paare

Deduktion, SS 10, Folien TES, Seite 23, 13. Juli2010

Page 24: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Kritische Paare

Deduktion, SS 10, Folien TES, Seite 24, 13. Juli2010

Page 25: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Kritische Paare

Deduktion, SS 10, Folien TES, Seite 25, 13. Juli2010

Page 26: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Kritische Paare

Deduktion, SS 10, Folien TES, Seite 26, 13. Juli2010

Page 27: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Kritische Paare in Haskell (Ausschnitt)-- start fuer (l1,r1) (l2,r2) mit-- cp l1 id l2 r1 r2

cp :: Term -> (Term -> Term) -> Term -> Term -> Term -> [(Term,Term)]cp (Var v) lcon l2 r1 r2 = []cp l1@(Fn f args) lcon l2 r1 r2 =let rek = cpL [] argsincase unify [(l1,l2)] ofNothing -> rekJust sigma -> (apply sigma r1 , apply sigma (lcon (apply sigma r2))) : rek

wherecpL bs [] = []cpL bs (a:as) = (cp a (\x -> lcon (Fn f (bs ++ [x] ++ as))) l2 r1 r2)

++ (cpL (bs ++ [a]) as)

-- Substitutionapply [] t2 = t2apply ((v,t):xs) t2 = apply xs (subst v t t2)

subst v t (Var v’)| v == v’ = t| otherwise = Var v’

subst v t (Fn f args) = Fn f (map (subst v t) args)

Deduktion, SS 10, Folien TES, Seite 27, 13. Juli2010

Page 28: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Unifikation in Haskellunify :: [(Term,Term)] -> Maybe [(String,Term)]unify [] = Just []unify (((Fn a argsA),(Fn b argsB)):xs)| a == b = unify $ (zip argsA argsB) ++ xs -- Dekomposition| otherwise = Nothing -- Fail

unify ((Var v,Var v’):xs)| v == v’ = unify xs -- Loeschen v=v

unify ((Var v,t):xs)| v ‘occursInNonVar‘ t = Nothing -- Fail (Occurs Check)| otherwise = case unify (map (\(l,r) -> (subst v t l, subst v t r)) xs) of

-- Einsetzen + Rekursiver AufrufJust ys -> Just ((v,apply ys t):ys) -- Voll instanziierenNothing -> Nothing -- Fail

unify ((t,Var v):xs) = unify ((Var v,t):xs) -- Drehen t=v -> v=t

-- Occurs CheckoccursInNonVar v (Var _) = FalseoccursInNonVar v t = v ‘elem‘ (varsOf t)

-- Variablen eines Terms berechnenvarsOf (Var v) = [v]varsOf (Fn f args) = concatMap varsOf args

Deduktion, SS 10, Folien TES, Seite 28, 13. Juli2010

Page 29: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Eigenschaften Kritischer Paare

Zwei Terme s und t heißen zusammenfuhrbar, falls es ein z gibt mit

s∗−→ z und t

∗−→ z. (Notation s↓↓t).

Critical Pair Lemma von Knuth und Bendix:

Aus t1R←− t

R−→ t2 folgt t1↓↓t2 oder t1CP (R)←−→ t2.

Satz:

• Regelsystem R ist genau dann lokal konfluent,

wenn alle kritischen Paare zusammenfuhrbar sind.

• Noethersches R ist genau dann konfluent (und auch konvergent),

wenn alle kritischen Paare zusammenfuhrbar sind.

Deduktion, SS 10, Folien TES, Seite 29, 13. Juli2010

Page 30: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Knuth-Bendix-Test

Eingabe: Noethersches Regelsystem R.

Ausgabe: R ist Konfluent? ja / nein

1. Berechne CP(R).

2. Fur alle (s, t) ∈ CP(R):

Berechne s↓ und t↓Wenn s↓6= t↓, dann gebe Nein aus und breche ab

3. Gebe Ja aus

Deduktion, SS 10, Folien TES, Seite 30, 13. Juli2010

Page 31: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Einfacher Test fur Spezifikationen

spec = (Σ, E) Spezifikation,E−→ die operationale E-Gleichheit.

Wir wissen: WennE−→ konvergent, dann ist das Wortproblem fur spec

entscheidbar.

Methode:

1. Richte Gleichungen in E und zeige, dassE−→ terminierend.

2. Zeige lokale Konfluenz mit Knuth-Bendix-Test

Nachteil: Funktioniert oft nicht!

Deduktion, SS 10, Folien TES, Seite 31, 13. Juli2010

Page 32: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Knuth-Bendix-Vervollstandigung

Sei spec(Σ, E) Spezifikation,E−→ die operationale E-Gleichheit

1. Richte Gleichungen in E und finde Ordnung zum Nachweis, dassE−→ terminiert.

2. Berechne CP (E−→) und teste auf Zusammenfuhrbarkeit.

Seien E′ die nicht zusammenfuhrbaren kritischen Paare

3. Wenn E′ = ∅dann: stoppe mit Ausgabe

E−→,

sonst: gehe zu 1. mit E := E ∪ E′.

Deduktion, SS 10, Folien TES, Seite 32, 13. Juli2010

Page 33: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Knuth-Bendix-Vervollstandigung

Wenn die Vervollstandigung terminiert, dann gilt fur die AusgabeE′−→:

• E′−→ ist konvergent

• sE,∗←−→ t gdw. s

E′,∗←−→ t, d.h.

E′−→ entscheidet E.

Deduktion, SS 10, Folien TES, Seite 33, 13. Juli2010

Page 34: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Beispiel

Betrachte E = {f(g(x)) = g(x), f(f(x)) = g(x)}Richten der Gleichungen

E−→:= {f(g(x))→ g(x), f(f(x))→ g(x)},E−→ terminiert, da Termgroße strikt kleiner wird

Berechnen von CP(E−→):

• f(g(x))→ g(x) mit sich selbst: keine kritischen Paare

• f(g(x))→ g(x) mit f(f(x))→ g(x): keine kritischen Paare

• f(f(x))→ g(x) mit sich selbst:

f( f(x) ) //g(x)

f(f(y))��

g(y)

mgu:{x 7→ f(y)} f( f(f(y))

��

) //g(f(y))

f( g(y) )

Kritisches Paar 〈g(f(y)), f(g(y))〉

Deduktion, SS 10, Folien TES, Seite 34, 13. Juli2010

Page 35: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

• f(f(x))→ g(x) mit f(g(y))→ g(y):

f( f(x) ) //g(x)

f(g(y))��

g(y)

mgu:{x 7→ g(y)} f( f(g(y))

��

) //g(g(y))

f( g(y) )

Kritisches Paar 〈g(g(y)), f(g(y))〉

Die Kritischen Paare 〈g(f(y)), f(g(y))〉 und 〈g(g(y)), f(g(y))〉 sind beide

nicht zusammenfuhrbar (daE−→:= {f(g(x))→ g(x), f(f(x))→ g(x)} )

Neues

E1 = { f(g(x)) = g(x),f(f(x)) = g(x),g(f(y)) = f(g(y)),g(g(y)) = f(g(y))}

Page 36: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Richten der Gleichungen

E1−−→ = { f(g(x))→ g(x),f(f(x))→ g(x),g(f(y))→ f(g(y)),g(g(y))→ f(g(y))}

terminiert: Ordnungen (Termgroße, Term als String)

Kritische Paare:

〈g(f(x)), f(g(x))〉,〈f(g(g(x))), g(f(g(x)))〉,〈g(f(x)), f(f(g(x)))〉,〈g(g(x)), f(f(g(x)))〉,〈g(g(x)), f(g(x))〉,〈f(g(g(x))), g(g(x))〉,〈f(g(f(x))), g(g(x))〉,〈f(g(f(x))), g(f(g(x)))〉

Alle zusammenfuhrbar, d.h.E1−−→ entscheidet E.

Page 37: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

OrthogonaleTermersetzungssysteme

Deduktion, SS 10, Folien TES, Seite 37, 13. Juli2010

Page 38: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Lineare Termersetzungssysteme

Linearer Term := keine Doppelvorkommen der

selben Variablen.

Rewrite-Regel l→ r rechts-linear := r ist linear

Rewrite-Regel l→ r links-linear := l ist linear

Rewrite-Regel l→ r linear := l→ r ist recht- und links-linear

TES ist linear

(links-linear, rechts-linear)

:= alle Regeln sind linear

(links-linear,rechts-linear)

Z.B. sind die linken Seiten von Definitionen von Funktionen in funk-

tionalen Programmiersprachen linear ({fi(x1, . . . , xi,n) = ei})

Knuth-Bendix-Test benotigt Terminierung, um Konfluenz zu zeigen,

aber z.B. Programmiersprachen lassen i.A. auch nichtterminierende

Funktionen zu.

Deduktion, SS 10, Folien TES, Seite 38, 13. Juli2010

Page 39: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Konfluenzbeweis trotz Nichtterminierung

Methode: Zeige Konfluenz uber das Kriterium der starken Konfluenz.

Proposition

Wenn das TES R linear ist, und alle kritischen Paare

die starke Konfluenzbedingung erfullen,

dann ist das TES auch (stark) konfluent.

u∗~~~~

~~~~

~~ ∗��@

@@@@

@@@

x∗ @

@@

@ y∗��~

~~

~

z

u

~~~~~~

~~~~

��@@@

@@@@

@

x∗ @

@@

@ y

≤1��~~

~~

zkonfluent stark konfluent

Deduktion, SS 10, Folien TES, Seite 39, 13. Juli2010

Page 40: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Orthogonale TES

Ein TES heißt orthogonal, wenn es links-linear ist und keine kritischen

Paare hat.

Theorem

Jedes orthogonale Termersetzungssystem ist konfluent.

Deduktion, SS 10, Folien TES, Seite 40, 13. Juli2010

Page 41: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Funktionale Programmiersprachen

Funktionen in funktionalen Programmiersprachen sind links-linear und

haben keine kritischen Paare, wenn die Definition jeweils mit disjunkten

Pattern gemacht wird.

Man muss aber eine parallele Reduktion (mehrere Definitionseinset-

zungen auf einmal) zulassen

Die parallele Reduktion kann man als stark konfluent nachweisen, und

kann danach das Kriterium der starken Konfluenz verwenden.

Deduktion, SS 10, Folien TES, Seite 41, 13. Juli2010

Page 42: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Linkslinearitat ist notwendig als Voraussetzung

Beispiel: TES bestehend aus den Regeln

f(x, x) → af(x, g(x)) → bc → g(c)

Eigenschaften:

• Keine kritischen Paare

• nicht terminierend wg. c→ g(c)

• nicht links-linear (aber rechts-linear).

• Der Ausdruck f(c, c) hat als Normalform a und b,

d.h. das TES ist nicht konfluent

Deduktion, SS 10, Folien TES, Seite 42, 13. Juli2010

Page 43: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Funktionale Programmiersprachen

• Konfluente TES haben eindeutige Normalformen, wenn eine exi-

stiert.

• Konsequenz: Wenn die Regeln einer Programmiersprache orthogo-

nal sind, dann ist die Sprache deterministisch.

Deduktion, SS 10, Folien TES, Seite 43, 13. Juli2010

Page 44: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Programmiersprache mit letrec (1)

Regeln:

letrec . . . , x = t, . . . in C[x]→ letrec . . . , x = t, . . . in C[t]

letrec . . . , x = t, . . . , y = C[x], . . . in s→ letrec . . . , x = t, . . . , y = C[t], . . . in s

letrec . . . , y = C[x], . . . , x = t, . . . , in s→ letrec . . . , y = C[t], . . . , x = t, . . . , in s

Deduktion, SS 10, Folien TES, Seite 44, 13. Juli2010

Page 45: Gleichungsspezifikationen Kongruenzabschluss fur ... · Deduktion, SS 10, Folien TES, Seite 18, 13. Juli2010. Wortproblem f¨ur konvergentes Reduktionssystem −→E Deduktion, SS

Programmiersprache mit letrec (2)

Ist nicht konfluent:letrec x = g(y), y = h(x) in x

rrffffffffffffffffffffffff

++XXXXXXXXXXXXXXXXXXXXXXX

letrec x = g(y), y = h(g(y)) in x

��

letrec x = g(h(x)), y = h(x) in x

��

letrec x = g(y), y = h(g(y)) in g(y)

��

letrec x = g(h(x)), y = h(x) in g(h(x))

��letrec x = g(y), y = h(g(y)) in g(h(g(y)))

��

. . .

��

. . .

��

. . . in g(hg)n(y) . . . in (gh)n(y)

Deduktion, SS 10, Folien TES, Seite 45, 13. Juli2010