Terminierungsanalyse mithilfe von Matrix

Werbung
Terminierungsanalyse mithilfe von
Matrix-Interpretationen
Eine Elaboration
Niklas Hoppe
RWTH Aachen
3. Februar 2009
1
Einleitung
Die folgende Ausarbeitung soll Überblick und Verständnis der Idee zum Thema Terminierungsanalyse von Termersetzungssystemen mithilfe von MatrixInterpretationen vermitteln. Auf Beweise wird bewusst verzichtet, aber an entsprechender Stelle hingewiesen.
2
2.1
Voraussetzungen
Termersetzungssysteme
Ein Termersetzungssystem (TES) P über der Signatur (Σ, X ) ist eine Menge,
die aus Paaren (l, r) ∈ T (Σ, X ) × T (Σ, X ) besteht, sodass l ∈
/ X , d.h. l besteht
nicht nur aus einer Variable, und alle Variablen die in r enthalten sind, sind auch
in l enthalten. Solche Paare (l, r) sind sog. Regeln und werden üblicherweise
geschrieben als l → r. Außerdem steht SN (P ) für die Terminierung des TES P
und SN (P/R) für die relative Terminierung der TESe P und R.
Für eine ausführliche Erläuterung von Termersetzungssystemen siehe [4].
2.2
Monotone Algebren
Eine Σ-Algebra (A, [·]) besteht aus einer Menge A und für jedes f ∈ Σ gibt es
eine Funktion [f ] : A × ... × A → A. Die Funktion [f ] ist die Interpretation von
f.
α ist eine Abbildung α : X → A und instantiiert sozusagen alle Variablen
eines Terms. Die Abbildung [·, α] : T (Σ, X ) → A evaluiert dabei die Terme
1
induktiv:
[x, α] = α(x)
[f (t1 , ..., tn ), α] = [f ]([t1 , α], ..., [tn , α])
Die Interpretation [f ] : A×...×A → A eines Funktionssymbols f ist monoton
in Beziehung zu einer Binärrelation ◦ über A, wenn für alle ai , bi ∈ A, für
i = 1, ..., n mit ai ◦ bi für gewisse i und aj = bj für alle j 6= i folgendes gilt:
[f ](a1 , ..., an ) ◦ [f ](b1 , ..., bn )
Eine schwach monotone Σ-Algebra (A, [·], >, &) ist eine Σ-Algebra (A, [·])
mit zwei Relationen > und & über A, sodass:
1. > ist fundiert sowie > · & ⊆ >
2. Für jedes f ∈ Σ ist die Interpretation [f ] monoton in Beziehung zu &
Zu (1): Eine fundierte Relation über einer Menge A ist eine Relation, die
keine unendliche absteigende Kette a1 , a2 , a3 , ... mit ai ∈ A enthält. Das heißt
also, dass die Menge A immer ein Ende nach unten hat. Dies ist eine zentrale
Eigenschaft für die Verwendung zur Terminierungsanalyse.
2.3
Starke Normalisierung
Die bisherigen Voraussetzungen charakterisieren Termersetzungssysteme und ihre Terminierung sowie Σ-Algebren und ihre Monotonie. Das folgende, für die
Terminierungsanalyse zentrale, Theorem verbindet Termersetungssysteme und
Σ-Algebren sowie deren Eigenschaften.
Theorem 1. ([1]) Seien P und R TESe.
SN (Ptop /R) genau dann, wenn es eine schwach monotone Σ-Algebra (A, [·], >, &)
gibt, sodass [l, α] > [r, α] für jede Regel l → r ∈ R und [l, α] & [r, α] für jede
Regel l → r ∈ P , für alle Variableninstantiierungen α : X → A.
Das folgende Theorem erlaubt die schrittweise Vorgehensweise beim später
konstruierten Verfahren, sodass nicht in einem Schritt alle Regeln des einen
Termersetzungssystems die strikte Eigenschaft [l, α] > [r, α] erfüllen müssen.
Stattdessen können die Regeln des Termersetzungssystems nacheinander ausgeschlossen werden ohne die Korrektheit des Beweises einzubüßen.
Theorem 2. ([1]) Seien P und R TESe und sei (A, [·], >, &) eine schwach
monotone Σ-Algebra, sodass [l, α] & [r, α] für jede Regel l → r in P ∪ R und
jedes α : X → A. Sei P 0 die Menge aller Regeln l → r aus P für die gilt
[l, α] > [r, α] für alle Variableninstantiierungen α : X → A.
Dann gilt: SN ((P \P 0 )top /R) ⇒ SN (Ptop /R).
Beispiel 1. Seien Σ = {a, b, f, g} und X, Y ∈ X . Weiter seien P , R TESe
über der Signatur Σ und A = N. > entspreche dem üblichen > über N und &
entspreche dem üblichen ≥ über N.
2
• P besteht aus der Regel f (X) → X.
• R besteht aus der Regel g(X, Y ) → f (X).
• [a] = 1, [b] = 2, [c] = 3, [f ](X) = 2 ∗ α(X), [g](X, Y ) = 3 ∗ [α](X)
Offensichtlich gilt [l, α] & [r, α] für alle Regeln l → r ∈ P ∪R. Es gilt darüber
hinaus [l, α] > [r, α] für die Regel f (X) → X ∈ P . Nach Theorem 2 kann man
diese Regel aus P entfernen, sodass zu beweisen bleibt: SN (∅/ {g(X, Y ) → f (X)}).
Das ist nach Theorem 1 wahr und damit ist auch SN (Ptop /R) bewiesen.
2.4
Dependency Pairs
Für ein TES P ist f ∈ Σ ein definiertes Funktionssymbol, wenn f die linke
Seite einer Regel aus P ist. Für jedes definierte Funktionssymbol f gebe es ein
markiertes Funktionssymbol f# . Wenn
f (s1 , ..., sn ) → C[g(t1 , ..., tm )]
eine Regel aus P und g ein definiertes Funktionssymbol ist, dann ist f# (s1 , ..., sn ) →
g# (t1 , ..., tm ) ein sogenanntes Dependency Pair von P . Die Menge aller Dependency Pairs von P heißt DP (P ).
Beispiel 2. Sei P TES mit den folgenden drei Regeln:
f (X) → X; g(X, Y ) → f (X); h(X, Y ) → f (g(X, Y ))
Dann besteht DP (P ) aus:
g# (X, Y ) → f# (X); h# (X, Y ) → f# (g(X, Y )); h# (X, Y ) → g# (X, Y )
Theorem 3. ([3]) Sei P ein TES. Dann gilt SN (P ) ⇔ SN (DP (P )top /P )
3
Matrix-Interpretationen
Hinter der Interpretation von Termen in eine Σ-Algebra steckt die Idee, jedem
Term eine gewisse Wertigkeit zuzuweisen, beispielsweise als natürliche Zahl oder
Vektor über den natürlichen Zahlen. Man fordert von den Regeln des TES, dass
die Wertigkeit ihrer rechten Seiten im Gegensatz zu den linken Seiten möglichst
abnimmt. Da durch die natürlichen Zahlen ein Ende nach unten gegeben ist,
kann die Wertigkeit eines Terms nicht beliebig klein werden und damit auch keine unendliche Reihe von Termen t1 , t2 , t3 , ... mit ti → ti+1 für alle i = 1, 2, 3, ...
entstehen. Die absteigende Wertigkeit und die Grenze der natürlichen Zahlen
ist also direkt verknüpft mit der Terminierung eines Termersetzungssystems.
Basierend auf den beiden vorgestellten Theoremen ist die Strategie für den
Terminierungsbeweis eines Termersetzungssystems P über der Signatur Σ wie
folgt:
3
1. Durch Theorem 3 lässt sich die Terminierung SN (P ) reduzieren auf
SN (DP (P )top /P ).
2. Man wählt A und die beiden Relationen > sowie &, sodass > über A
fundiert ist und > · & ⊆ > gilt.
3. Man wählt die Interpretationen [f ] der Funktionssymbole f ∈ Σ, sodass
diese monoton im Bezug auf & (schwach monoton) sind.
4. Alle Regeln l → r aus DP (P ), für die gilt [l, α] > [r, α] für alle Variableninstantiierungen α : X → A, können nach Theorem 2 aus DP (P )
entfernt werden. Ist DP (P ) = ∅, gilt trivialerweise SN (DP (P )top /P ). Ist
DP (P ) 6= ∅, wiederholt man das Verfahren mit der veränderten Menge
DP (P ).
Der entscheidende Punkt des Terminierungsbeweises ist daher die Wahl von
A, >, & und [f ]. Im Fall von Polynom-Interpretationen ist A = N, alle Funktionen [f ] sind Polynomfunktionen, > hat seine übliche Bedeutung und & entspricht ≥.
Hier geht es dagegen um Matrix-Interpretationen.1 Dazu wählt man nun
A = Nd . Die Relationen & und > über A = Nd sind wie folgt definiert:
(v1 , ..., vd ) & (u1 , ..., ud ) ⇔ vi ≥ ui mit i = 1, 2, 3, ..., d
(v1 , ..., vd ) > (u1 , ..., ud ) ⇔ v1 > u1 ∧ vi ≥ ui mit i = 2, 3, ..., d
Offensichtlich gilt: > ist fundiert sowie > · & ⊆ >.
Außerdem setzt man folgende Rahmenbedingungen für die Wahl der Interpretation [f ] eines Funktionssymbols f bzw. [f# ] eines definierten Funktionssymbols f# .
Bei Stelligkeit n von f , wählt man n Matrizen F1 , F2 , ..., Fn ∈ Nd×d . Hinzu
kommt ein Vektor f~ ∈ Nd . Die Interpretation [f ] von f ist dann:
[f ](~v1 , ..., ~vn ) = F1~v1 + ... + Fn~vn + f~
mit vi ∈ Nd . 0-stellige Funktionssymbole werden offensichtlich ohne Matrizen
direkt als Vektoren f~ ∈ Nd interpretiert. [f ] ist monoton in Beziehung zu &.
In der selben Form kann man die rechte und linke Seite einer Regel l →
r interpretieren. Die Regelseiten l, r einer Regel l → r ∈ P ∪ DP (P ) haben
folgende Form:
[l, α] = L1 ~x1 + ... + Lk ~xk + ~l
[r, α] = R1 ~x1 + ... + Rk ~xk + ~r
mit den Matrizen L1 , ..., Lk , R1 , ..., Rk ∈ Nd×d und Vektoren ~l, ~r ∈ Nd .
1 Die Bezeichnung Matrix-Interpretationen ist irreführend, da die Terme eigentlich als Vektoren interpretiert werden und nicht als Matrizen.
4
Erinnerung: Die Abbildung α : X → A steht für die Variableninstantiierung.
x1 , ..., xk sind also die Variablen, die in der Regel l → r vorkommen. Die Instantiierung und Interpretation einer Variable α(xi ) = ~xi resultiert daher in einem
Vektor.
Wie in der Beweisstrategie aufgeführt, möchte man die Regelseiten l und r
einer Regel l → r vergleichen: [l, α] & [r, α]. Dazu muss man, analog zum Vergleich von Vektoren, nun noch die Relation & über Matrizen wie folgt definieren:
B & C ⇔ ∀i, j : (B)i,j ≥ (C)i,j
Folgendes Lemma verknüpft die Relation der Interpretation einer Regelseite
L1 , ..., Lk und ~l bzw. R1 , ..., Rk und ~r für eine Regel l → r ∈ P mit der Relation
der Regelseiten [l, α] bzw. [r, α]:
Lemma 4. ([4]) Seien L1 , ..., Lk , R1 , ..., Rk Matrizen und ~l, ~r Vektoren die wie
beschrieben zu einer Regel l → r gehören. Dann gilt:
∀ α : X → A : [l, α] & [r, α] ⇔ Li & Ri mit i = 1, ..., k und ~l & ~r
∀ α : X → A : [l, α] > [r, α] ⇔ Li & Ri mit i = 1, ..., k und ~l > ~r
Nun kann man die vorläufige Strategie zum Beweis SN (P ) eines TES R,
anhand eines Beispiels, folgendermaßen konkretisieren:
Beispiel 3. Seien Σ = {a, b, f, g} und X, Y ∈ X . Weiter seien A = Nd sowie
alle Relationen und Operationen wie zuvor beschrieben. Sei P TES über Σ mit
den folgenden Regeln:
f (X) → X
g(X, Y ) → f (f (X))
Schritt 1. Nach Theorem 3 beweist man SN (DP (P )top /P ) statt SN (P )
DP (P ) = {g# (X, Y ) → f# (X); g# (X, Y ) → f# (f (X))}
Schritt 2. Man legt die Dimension d fest.
Dimension d = 3
Schritt 3. Man wählt n Matrizen Fi ∈ Nd×d für jedes Funktionssymbol f und
jedes f# , wobei n die Stelligkeit von f bzw. f# ist. Hinzu kommt der Vektor
f~ ∈ Nd .


 


 
1 0 0
1
1 0 0
1
F1 = 0 0 0, f~ = 0, F#1 = 0 0 0, f~# = 0
0 0 0
0
0 0 0
0




 
1 0 0
1 0 0
2
G1 = 0 0 0, G2 = 0 0 0, ~g = 0
0 0 0
0 0 0
0




 
2 0 0
1 0 0
3
G#1 = 0 0 0, G#2 = 0 0 0, g~# = 0
0 0 0
0 0 0
0
5
Schritt 4. Für alle Regeln l → r ∈ P ∪ DP (P ) überprüfen, ob gilt Li & Ri für
i = 1, ..., k und ~l & ~r. Sind die Bedingungen nicht erfüllt, schlägt das Verfahren
fehl.
f (X) → X: Trivial X
   
2
2
g(X, Y ) → f (f (X)): ~g = 0 & 0 = F1 · f~ + f~ X
0
0

 

1 0 0
1 0 0
und G1 = 0 0 0 & 0 0 0 = F1 · F1 X
0 0 0
0 0 0

 

2 0 0
1 0 0
g# (X, Y ) → f# (X): G#1 = 0 0 0 & 0 0 0 = F#1 X
0 0 0
0 0 0
   
3
1
und g~# = 0 & 0 = f~# X
0
0




2 0 0
1 0 0
g# (X, Y ) → f# (f (X)): G#1 = 0 0 0 & 0 0 0 =
0 0 0
0 0 0
F#1 · F1 X
   
2
3
und g~# = 0 & 0 = f~# + f~ X
0
0
Schritt 5. Alle Regeln l → r ∈ DP (P ), für die darüber hinaus gilt ~l > ~r,
werden aus DP (P ) entfernt.
   
3
1
g# (X, Y ) → f# (X): g~# = 0 > 0 = f~# X
0
0
   
3
2
g# (X, Y ) → f# (f (X)): g~# = 0 > 0 = f~# + F#1 · f~ X
0
0
Die Regeln g# (X, Y ) → f# (X) und g# (X, Y ) → f# (f (X)) können
also aus DP (P ) entfernt werden.
Schritt 6. Ist DP (P ) die leere Menge, folgt SN (P ). Ist DP (P ) nicht leer,
wiederholt man das Verfahren mit der reduzierten Menge DP (P ) ab Punkt 2.
DP (P ) = ∅ ⇒ SN (P ). Fertig.
6
4
Arktische Matrizen
Die Interpretation von Termen als Vektoren über den natürlichen Zahlen A = Nd
wie im vorangegangenen Abschnitt lässt sich außerdem auf die Interpretation
als Vektoren über den sog. arktischen natürlichen Zahlen A = AN realisieren.
Die arktischen natürlichen Zahlen AN sind nichts anderes als die natürlichen
Zahlen N vereinigt mit −∞.
Durch die Hinzunahme von −∞ ist eine andere Definition der zwei benötigten Binärrelationen > und & über A = AN nötig, damit diese die Kriterien für
eine schwach monotone Σ-Algebra erfüllen.
Außerdem sind die Operationen über A = AN nicht trivial und müssen die
Monotonie der Interpretationen [f ] in Beziehung zu & gewährleisten.
Man wählt daher folgende Definitionen:
Die neue Operation ⊕ über AN entspricht dem üblichen max. Das bedeutet,
dass −∞ das neutrale Element der Operation ⊕ ist: x⊕−∞ = x bzw. −∞⊕x =
x.
Die zweite neue Operation ⊗ über AN entspricht dem üblichen +. Das bedeutet, dass 0 das neutrale Element der Operation ⊗ ist: x ⊗ 0 = x bzw. 0 ⊗ x = x.
Außerdem ergibt sich: −∞ ⊗ x = x ⊗ −∞ = −∞.
Vektor- und Matrixmultiplikation funktionieren entsprechend dem folgenden
Beispiel:
Beispiel 4.
1
0
=
1
−∞
0
1
−∞
1
(1 ⊗ 0) ⊕ (1 ⊗ 1)
(1 ⊗ −∞) ⊕ (1 ⊗ 1)
(0 ⊗ 0) ⊕ (−∞ ⊗ 1) (0 ⊗ −∞) ⊕ (1 ⊗ 1)
1⊕2
−∞ ⊕ 2
2 2
=
=
0 ⊕ −∞ −∞ ⊕ 2
0 2
Die Interpretation [f ] eines Funktionssymbols f ∈ Σ mit Stelligkeit n hat
folgende lineare Form analog zur bereits beschriebenen Matrix-Interpretation:
[f ](~v1 , ..., ~vn ) = F1 ⊗ ~v1 ⊕ ... ⊕ Fn ⊗ ~vn ⊕ f~
Weiterhin:
• Eine Zahl a ∈ A ist finit, wenn a > −∞
• Ein Vektor x = (x1 , ..., xd ) ∈ AdN ist finit, wenn x1 finit ist.
• Eine Matrix F ∈ Ad×d ist finit, wenn F1,1 finit ist.
• Eine lineare Funktion [f ] ist irgendwo finit, wenn für die dazugehörigen
Matrizen Fi gilt ∃1 ≤ i ≤ n : Fi finit oder der dazugehörige Vektor f~ ist
finit.
7
Die Relationen und & sind wie folgt definiert:
• x y ⇔ (x > y) ∨ (x = y = −∞)
• x & y ⇔ (x > y) ∨ (x = y)
Die definierten Operationen, Relationen und Interpretationen erfüllen die
nötigen Kriterien für eine schwach monotone Σ-Algebra. Mit dem folgenden
abschließenden Theorem lässt sich der Terminierungsbeweis mithilfe der verwendeten arktischen Zahlen AN als Grundlage analog zum Terminierungsbeweis
mithilfe der natürlichen Zahlen N bewerkstelligen:
Theorem 5. Seien P , R TES über der Signatur Σ und (AdN , [·], , &) eine
schwach monotone Σ-Algebra.
Wenn:
• Für alle Funktionssymbole f ∈ Σ ist die Interpretation [f ] irgendwo finit.
• [l] & [r] für alle Regeln l → r ∈ P ∪ R.
• P 0 ist die Menge aller Regeln l → r ∈ P , für die gilt [l] [r].
Dann gilt: SN ((P \P 0 )top /R) ⇒ SN (P/R)
Beweis siehe [2].
Beispiel 5. Das TES P sei wie in Beispiel 4. Die Beweisstrategie folgt ebenfalls
Beispiel 4.
Schritt 1.
DP (P ) = {g# (X, Y ) → f# (X); g# (X, Y ) → f# (f (X))}
Schritt 2.
Dimension d = 3
Schritt 3.




1
−∞ −∞
1
0
−∞, f~ = −∞,
F1 = −∞
−∞ −∞
0
−∞




1
−∞ −∞
1
0
−∞, f~# = −∞
F#1 = −∞
−∞ −∞
0
−∞



2
−∞ 0
1
−∞
0
0, G2 = −∞ −∞
G1 = −∞
−∞ −∞ 0
−∞ −∞



2
0 −∞
1
0
G#1 = −∞ 0 −∞, G#2 = −∞ 0
−∞ 0
0
−∞ 0
8



0
2
0, ~g = −∞
0
−∞

 
−∞
3
−∞, g~# = 0
0
0
Schritt 4.
f (X) → X: Trivial X

 

2
1
g(X, Y ) → f (f (X)): ~g = −∞ & −∞ = f~ ⊕ F1 ⊗ f~ X
−∞
−∞

 

2
−∞ 0
2
−∞ −∞
0
0 & −∞
0
−∞ = F1 ⊗ F1 X
und G1 = −∞
−∞ −∞ 0
−∞ −∞
0
g# (X, Y ) → f# (X):

 

2
0 −∞
1
−∞ −∞
0
−∞ = F#1 X
G#1 = −∞ 0 −∞ & −∞
−∞ 0
0
−∞ −∞
0
  

3
1
und g~# = 0 & −∞ = f~# X
0
−∞
g# (X, Y ) → f# (f (X)):

 

2
−∞ −∞
2
0 −∞
0
−∞ = F#1 ⊗ F1 X
G#1 = −∞ 0 −∞ & −∞
−∞ −∞
0
−∞ 0
0
  

3
1
und g~# = 0 & −∞ = f~# ⊕ F#1 ⊗ f~ X
0
−∞
Schritt 5.

  
1
3
g# (X, Y ) → f# (X): g~# = 0 > −∞ = f~# X
−∞
0

  
1
3
g# (X, Y ) → f# (f (X)): g~# = 0 > −∞ = f~# ⊕ F#1 ⊗ f~ X
−∞
0
Die Regeln g# (X, Y ) → f# (X) und g# (X, Y ) → f# (f (X)) können
also aus DP (P ) entfernt werden.
Schritt 6.
DP (P ) = ∅ ⇒ SN (P ). Fertig.
5
Implementierung
Die tatsächliche Implementierung des vorgestellten Verfahrens folgt einem etwas
anderen Schema als das Verfahren selbst. So werden Σ-Algebra und Interpretationen [f ] der Funktionssymbole f nicht im klassischen Sinne gesucht. Es geht
9
um die Erfüllung der konkreten Bedingungen (Constraints) bei der Wahl der
Vektoren und Matrizen der Interpretation:
^
{(l → r) ∈ P ∪ DP (P ) : Li & Ri mit i = 1, ..., k und ~l & ~r}
Wobei Li bzw. Ri die Koeffizienten-Matrizen der linken bzw. rechten Regelseite sind und ~l sowie ~r die Koeffizienten-Vektoren. Hinzu kommt die Bedingung
um mindestens eine der Regeln aus DP (P ) löschen zu dürfen:
_
{(l → r) ∈ DP (P ) : ~l 6= ~r}
Die Leistung der Implementierung liegt also in der Umwandlung des Problems in eine aussagenlogische Formel. Das Lösen dieser entstehenden SATFormel wird auf einen separaten SAT-Solver ausgelagert.
6
Zusammenfassung
Die Terminierungsanalyse mithilfe von Matrix-Interpretationen basiert also auf
der Interpretation der Funktionssymbole in den mehrdimensionalen Raum der
natürlichen oder arktischen Zahlen. Analog dazu gibts es auch die Möglichkeit
der Interpretation als Polynomfunktionen über den natürlichen Zahlen. Mehrstellige Funktionssymbole werden als lineare und monotone Funktionen dargestellt. 0-stellige Funktionssymbole werden direkt als Vektoren interpretiert.
Das Finden von Vektoren und Funktionen, die die beschriebenen Kriterien
der Monotonie erfüllen, ist äquivalent mit der Terminierung des Termersetzungssystems.
Die Automatisierung ist dabei nichts anderes, als die Umwandlung dieser
Kriterien in eine aussagenlogische Formel, deren Lösung ausgelagert wird.
Literatur
[1] J. Endrullis, J. Waldmann, and H. Zantema: Matrix interpretations for proving termination of term rewriting. Journal of Automated Reasoning, Seiten
195-220, 2007.
[2] A. Koprowski and J. Waldmann: Arctic Termination... Below Zero. Proceedings of the 19th International Conference on Rewriting Techniques and
Applications, Seiten 202-216, 2008.
[3] T. Arts and J. Giesl: Termination of term rewriting using dependency pairs.
Theoretical Computer Science, Seiten 133-178, 2000.
[4] J. Giesl: Termersetungssysteme. Vorlesungsskript, 2007.
10
Herunterladen