• Keine Ergebnisse gefunden

Matching oder Treffende Substitution

N/A
N/A
Protected

Academic year: 2021

Aktie "Matching oder Treffende Substitution"

Copied!
18
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Grundlagen

Termersetzungssysteme

Ziel: Operationalisierung von Spezifikationen und Implementierung funktionaler Programmiersprachen

spec = (sig,E) Wann ist Tspec berechenbare Algebra?

(Tspec)s = {[t] : t ∈ Term(sig)s}

Tspec ist berechenbare Algebra wenn es eine berechenbare Funktion rep : Term(sig) → Term(sig) gibt, mit rep(t) ∈ [t] eindeutiger

Repräsentant in seiner Äquivalenzklasse.

Paradigma: Wähle als Repräsentanten minimale Objekte in der Äquivalenzklasse bezüglich einer Ordnung.

f (x1, ...,xn) : ((Tspec)s1 × ...(Tspec)sn) → (Tspec)s

f ([r1], ...,[rn]) := [rep(f (rep(r1), ..., (rep(rn))]

(2)

Termersetzungssysteme

Definition 9.1 Regeln, Regelmengen, Reduktionsrelation

I Mengen von Variablen: Für t ∈ Terms(F, V) sei V(t) die Menge der Variablen in t (Rek. Definition, immer endlich)

Beachte: V(t) = ∅ gdw t ist Grundterm.

I Eine Regel ist ein Paar (l, r),l, r ∈ Terms(F,V )(s ∈ S) mit Var(r) ⊆ Var(l)

Schreibe: l → r

I Ein Regelsystem R ist eine Menge von Regeln.

R definiert eine Reduktionsrelation →R auf Term(F, V) durch:

t1R t2 gdw ∃ l → r ∈ R, p ∈ O(t1), σ Substitution : t1|p = σ(l) ∧ t2 = t1[σ(r)]p

I (Term(F,V), →R) sei das von R definierte Reduktionssystem (Termersetzungssystem).

(3)

Grundlagen

Termersetzungssysteme

Ziel: Transformiere E in R, so dass =E=←→ R gilt und →R gutartige Terminierungs- und Konfluenzeigenschaften hat.

Etwa konvergent oder konfluent. Oft genügt es wenn diese Eigenschaften

“nur” auf der Menge der Grundterme gelten.

Beachte:

I Die Bedingung V(r) ⊆ V(l) in Regel l → r ist notwendig für die Terminierung.

Gilt weder V(r) ⊆ V(l) noch V(l) ⊆ V(r) in einer Gleichung l = r einer Spezifikation, so hat man wohl überflüssige Variablen bei der Funktionsdefinition verwendet.

IR ist verträglich mit der Substitution und der Termersetzung. D.h.

Aus s →R t folgt, σ(s) →R σ(t) und u[s]pR u[t]p I Insbesondere =R=←→ R

(4)

Matching oder Treffende Substitution

Definition 9.2 Seien l,t ∈ Terms(F,V). Eine Substitution σ heißt Match (treffende Substitution) von l auf t, falls σ(l) = t

Folgerung 9.1 Es gilt:

I ∀ σ Substitution O(l) ⊆ O(σ(l)).

I ∃σ : σ(l) = t gdw es gilt für σ definiert durch

∀u O(l) : l|u = x ∈ V u ∈ O(t) ∧ σ(x) = t|u σ ist Substitution ∧ σ(l) = t.

I Gibt es eine solche Substitution, so ist sie eindeutig auf V(l).

Existenz und gegebenfalls Berechnung sind effektiv.

I Es ist entscheidbar ob t mit Regel l → r reduzierbar.

I Ist R endlich, so ∆(s) = {t : s →R t} endlich un berechenbar.

(5)

Grundlagen

Beispiele

Beispiel 9.1 Ganze Zahlen sig : 0 :→ int

s,p : int → int if 0 : int,int, int → int

F : int,int → int

eqns : 1 :: p(0) = 0 2 :: p(s(x)) = x 3 :: if 0(0, x,y) = x 4 :: if 0(s(z), x, y) = y

5 :: F(x,y) = if 0(x,0,F(p(x),F(x,y))) Interpretation: hN, ..., i spec- Algebra mit Funktionen

ON = 0,sN = λn. n + 1,

pN = λn. if n = 0 then 0 else n − 1 fi if 0N = λi, j,k. if i = 0 then j else k fi FN = λm, n. 0

Orientiere Gleichungen von links nach rechts Regeln R

(Variablenbedingung ist erfüllt). Ist R terminierend? Nicht mit syntaktischer Ordnung, da linke Seite in rechter Seite vorkommt.

(6)

Beispiel (Fort.)

Reduktionsfolge:

F(s(0), 0) →5 if 0(s(0),0,F(p(s(0))

| {z }

2

, F(s(0), 0)

| {z }

5

)

| {z }

)

| {z }

4

4 F(p(s(0))

| {z },F(s(0),0)

| {z })

| {z }

5

2 F(0, F(s(0), 0)

| {z })

| {z }

5

5 if 0(0,0, F(p(0)

|{z},F(0, F(s(0), 0)

| {z })

| {z }

)

| {z }

)

| {z }

3 0

(7)

Grundlagen

Äquivalenz

Definition 9.3 Seien spec = (sig, E),spec0 = (sig, E0) Spezifikationen.

Sie sind äquivalent falls =E==E0, d.h. Tspec = Tspec0.

Ein Regelsystem R über sig ist äquivalent zu E , falls =E=←→ R. Beachte: Ist R endlich, konvegent, äquivalent zu E so ist die E Gleichheit entscheidbar

s =E t gdw s ↓= t ↓ d.h. identische NF

Für funktionale Programme und Berechnungen in Tspec genügt die Grundkonvergenz, d.h. Konvergenz auf Grundtermen.

Probleme: Entscheide ob

I R noethersch (grundnoethersch)

I R konfluent (grundkonfluent)

I R Wie transformiert man E in äquivalentes R mit diesen Eigenschaften?

(8)

Entscheidbarkeitsfragen

Für endliche Grundtermersetzungssysteme sind die Probleme entscheidbar.

Für terminierende Systeme genügt es lokale Konfluenz zu entscheiden, d.h. aus t1 ← t → t2 folgt t1 ↓ t2.

u v

t t

u

v

u | v u < v

Zusammenführbar Kritische Paare

s(l) t(l’)

s(l) t(l’)

(9)

Kritische Paare, Unifikation

Kritische Paare

Betrachte Gruppenaxiome:

(x0 · y0) · z

| {z }

l1

→ x0 · (y0 · z) und x| {z }· x−1

l2

→ 1.

“Überlappungen” (Superpositionen)

(x · x−1) · z (x · y) · (x · y)−1 .l2 &l1 .l2 &l1

1 · z x · (x−1 · z) 1 x · (y · (x · y)−1)

I l1|1 ist “unifizierbar” mit l2 mit Substitution

σ :: {x0 ← x, y0 ← x−1,x ← x} σ(l1|1) = σ(l2)

I l1 “unifizierbar” mit l2 mit Substitution

σ :: {x0 ← x, y0 ← y, z ← (x · y)−1, x ← x · y} σ(l1) = σ(l2)

(10)

Subsumption, Unifikation

Definition 9.4 Subsumptionsordnung auf Terme:

s t gdw ∃σ Substitution : σ(s) Teilterm von t s ≈ t gdw (s t ∧ t s)

s t gdw (t s ∧ ¬(s t))

ist noethersche Partialordnung auf Term(F,V) Beweis!.

Beachte:

O(σ(t)) = O(t) ∪ S

w∈O(t):t|w=x∈V{wv : v ∈ O(σ(x))}

Verträglichkeitseigenschaften:

t|u = t0 σ(t)|u = σ(t0)

t|u = x ∈ V σ(t)|uv = σ(x)|v (v ∈ O(σ(x))) σ(t)[σ(t0)]u = σ(t[t0]u) für u ∈ O(t)

Definition 9.5 s, t ∈ Term(F, V) sind gdw unifizierbar wenn es

(11)

Kritische Paare, Unifikation

Unifikation, Allgemeinster Unifikator

Definition 9.6 Sei V 0 ⊆ V, σ, τ Substitutionen.

I σ τ(V0) gdw ∃ρ Substitution : ρ ◦ σ|V0 = τ|V0 Sprechweise: σ ist allgemeiner als τ auf V 0

I σ ≈ τ(V0) gdw σ τ(V0) ∧ τ σ(V0)

I σ ≺ τ(V0) gdw τ σ(V0) ∧ ¬(σ τ(V0))

I Beachte: ≺ ist noethersche Partialordnung auf den Substitutionen.

Frage: Seien s, t unifizierbar. Gibt es einen allgemeinsten Unifikator mgu(s,t) auf V = Var(s) ∪ Var(t). D.h. für Unifikator σ für s,t gilt stets mgu(s,t) σ(V)?

Ist mgu(s, t) eindeutig? (bis auf Umbenennung von Variablen).

(12)

Unifikationsproblem und seine Lösung

Definition 9.7 I Ein Unifikationsproblem besteht aus einer Menge E = {si

=? ti : i = 1, ...,n} von Gleichungen.

I σ heißt Lösung (oder Unifikator) falls σ(si) = σ(ti) für i = 1, ...,n.

I Gilt τ σ(Var(E)) für jede Lösung τ von E , so mgu(E) := σ allgemeinste Lösung oder allgemeinster Unifikator.

I Sol(E) sei die Menge der Lösungen von E .

E und E0 sind äquivalent, falls Sol(E) = Sol(E0).

I E0 ist in gelöster Form, falls E0 = {xj

=? tj : xi 6= xj (i 6= j), xi ∈/ Var(tj) (1 ≤ i ≤ j ≤ m)}

I E0 ist gelöste Form zu E , falls E0 in gelöster Form und äquivalent zu E mit Var(E0) ⊆ Var(E).

(13)

Kritische Paare, Unifikation

Beispiele

Beispiel 9.2 Betrachte

I s = f (x, g(x, a)) =? f (g(y, y), z) = t

x =? g(y, y) g(x, a) =? z split x =? g(y, y) g(g(y,y), a) =? z merge σ :: x ← g(y,y) z ← g(g(y, y), a) y ← y

I f (x,a) =? g(a, z) Unlösbar (nicht unifizierbar).

I x =? f (x, y) Unlösbar da f (x,y) nicht x frei.

I x =? f (a, y) Lösung σ :: x ← f (a, y) ist allgemeinste Lösung.

(14)

Inferenzsystem für die Unifikation

Definition 9.8 Kalkül UNIFY. Sei σ = Bindungsmenge.

(1) Löschen (E ∪ {s =? s}, σ) (E, σ)

(2) Split (Zerlegen) (E ∪ {f (s1, ..., sm) =? g(t1, ...,tn)}, σ)

(Unlösbar) falls f 6= g (E ∪ {f (s1, ..., sm) =? f (t1, ...,tm)}, σ)

(E ∪ {si

=? ti : i = 1, ...,m}, σ) (3) Merge (Lösen) (E ∪ {x = t}, σ)

(τ(E), σ ∪ τ) falls x ∈/ Var(t), τ = {x =? t}

“occur check” (E ∪ {x = t}, σ)

(Unlösbar) falls x ∈ Var(t) ∧ x 6= t

(15)

Kritische Paare, Unifikation

Unifikationsalgorithmen

Unifikationsalgorithmen basierend auf diesem Kalkül starten stets mit (E0, S0) := (E, ∅) liefern eine Folge (E0,S0) `UNIFY ... `UNIFY (En,Sn) Sie sind erfolgreich falls sie mit En = ∅, unerfolgreich falls sie mit Sn = enden. Sn beschreibt eine Substitution σ die Sol(Sn) und somit auch Sol(E) erfasst.

Lemma 9.1 Korrektheit.

Jede Folge (E0, S0) `UNIFY ... `UNIFY (En, Sn) bricht ab: Entweder mit (Unlösbar, nicht unifizierbar) oder mit (∅, S) und S ist eine gelöste Form zu E .

Beachte: Darstellungen der Substitution in gelöster Form können recht unterschiedlich sein (Aufwand!!):

s =? f (x1, ...,xn) t =? f (g(x0,x0), ...,g(xn−1)) S = {xi

=? g(xi−1,xi−1) : i = 1, ..., n} und S1 = {xi+1 ?

= ti : t0 = g(x0,x0), ti+1 = g(ti,ti) i = 0, ..., n − 1}

sind beide in gelöster Form. Die Länge der t wächst exponentiell mit i.

(16)

Beispiel

Beispiel 9.3 Ausführung:

f (x,g(a,b)) =? f (g(y,b), x)

Ei Si Regel

f (x,g(a,b)) =? f (g(y, b), x) ∅

x =? g(y,b),x =? g(a, b) ∅ split g(y,b) =? g(a, b) x =? g(a,b) lösen y =? a,b =? b x =? g(a,b) split b =? b x =? g(a, b), y =? a lösen x =? g(a, b), y =? a löschen Lösung: mgu = σ = {x ← g(a, b), y ← a}

(17)

Kritische Paare, Unifikation

Kritische Paare - Lokale Konfluenz

Definition 9.9 Sei R Regelsystem und l1 → r1,l2 → r2 ∈ R mit V (l1) ∩ V(l2) = ∅ (Umbenennung von Variablen falls nötig, u.U.

l1 ≈ l2 bzw. l1 → r1 ≈ l2 → r2).

Sei u ∈ O(l1) mit l1|u ∈/ V, σ = mgu(l1|u,l2) existiere.

σ(l1) heißt dann eine Überlappung (Superposition) von l2 → r2 in l1 → r1

und (σ(r1), σ(l1[r2]u)) ist das zugehörige kritische Paar zu l1 → r1,l2 → r2,u ∈ O(l1), sofern σ(r1) 6= σ(l1[r2]u).

CP(R) sei die Menge aller kritischen Paare die man mit Regeln aus R bilden kann.

Beachte: Die Überlappung und somit die Menge der kritischen Paare ist bis auf Umbenennung der Variablen eindeutig.

(18)

Eigenschaften

I Seien σ, τ Substitutionen, x ∈ V, σ(y) = τ(y) für y 6= x und σ(x) →R τ(x). Dann gilt für jeden Term t:

σ(t) → R τ(t)

I Seien l1 → r1,l2 → r2 Regeln, u ∈ O(l1),l|u = x ∈ V. Sei σ(x)|w = σ(l2), d.h. σ(l2) wird durch σ(x) eingeführt.

Dann gilt t1R t2 für

t1 := σ(r1) ← σ(l1) → σ(l1)[σ(r2)]uw =: t2 Lemma 9.2 Critical-Pair Lemma von Knuth/Bendix

Sei R ein Regelsystem. Dann gilt:

Aus t1R t →R t2 folgt t1R t2 oder t1CP(R) t2.

Referenzen

ÄHNLICHE DOKUMENTE

Andreas und Conny möchten sich auch bei Connys Eltern für die Unterstützung bedanken, die immer wieder ihre Kinder betreuen, wenn das Cafe viele Arbeits- stunden abfordert..

„Wenn ich sage, ja ich kann nicht mehr leben oder SO kann ich nicht mehr leben, ob es dann dazu führen kann, dass ich sage, ja ich würde mich auch für einen assistierten

Die Rezeption generiert über die einfach zu bedie- nende intuitive secuENTRY HOTEL Software die Gastcodes.. Mit dem unkomplizierten Einbau des elektronischen Schließzylinders ist

Die Verkäufe im Detailhandel lagen von Frühjahr bis Ende Jahr 2020 insgesamt stets über dem Niveau des Vorjahres, wobei der Zuwachs sowohl bei den Ab- als auch den Umsätzen gegen

Weitere Produkte rund um die Buffet-,Theken- und Tischausstattung finden Sie in unserem neuen Gesamtkatalog f.. Weitere Produkte rund um die Buffet-,Theken- und Tischausstattung

„Wir freuen uns sehr, dass sich immer mehr Kunden aus der Region für die Stadtwerke Nordfriesland entscheiden“, bekräftigte Geschäftsführer Dr. Unternehmensentwickler

„Für alle Hochschulen stellt sich derzeit nicht mehr nur die Frage, wie Lehre digital überhaupt stattfinden kann, sondern wie sie für alle Studierenden qualitativ hochwertig

Aber es gibt noch andere Regeln und Gesetze, die nicht nur für die Vermittlungs-Stelle. und die