弱最内戦略を完全にするための TRS の等価変換について

15
1 弱弱弱弱弱弱弱弱弱弱弱弱弱弱 TRS 弱弱弱弱 弱弱弱弱弱 弱弱弱弱弱弱弱弱 弱弱弱弱弱弱弱 弱弱 弱弱

description

弱最内戦略を完全にするための TRS の等価変換について. 名古屋大学大学院 情報科学研究科 岡本 晃治. Add ( s ( x ) , y ) → s ( Add ( x , y )). R =. Add (0 , y ) → y. 項書換え系 (TRS). 関数型プログラミング言語の計算モデル 書換え規則で項を書換えて計算. 例:自然数の加算の TRS. 書換え規則が適用不能な項( 正規形 )に到達. s ( x ) : x +1 を表す. - PowerPoint PPT Presentation

Transcript of 弱最内戦略を完全にするための TRS の等価変換について

Page 1: 弱最内戦略を完全にするための TRS の等価変換について

1

弱最内戦略を完全にするための TRS の等価変換について

名古屋大学大学院情報科学研究科岡本 晃治

Page 2: 弱最内戦略を完全にするための TRS の等価変換について

2

項書換え系 (TRS)

関数型プログラミング言語の計算モデル 書換え規則で項を書換えて計算

例:自然数の加算の TRSR =

Add(s(x) , y) → s(Add(x , y))

Add(0 , y) → y

s(x) : x+1 を表す

書換え規則が適用不能な項(正規形)に到達

Add(s(0) , s(s(0))) → s(Add(0 , s(s(0))) → s(s(s(0))) 1 + 2 = 3

Page 3: 弱最内戦略を完全にするための TRS の等価変換について

3

TRSの完全な書換え戦略

与えられた項の全ての正規形に到達可能 書換え戦略:規則を適用する場所の選び方

f (g(x)) → xf (x) → s(x)R=h(x) → x

例 :

f (g(h(0)))

s(g(0))

0h(0)

s(g(h(0)))

f (g(0))

: 最内戦略の書換え

R において最内戦略は完全な書換え戦略

Page 4: 弱最内戦略を完全にするための TRS の等価変換について

4

研究概要・目的 (1/2)

合流性を持たない TRSの計算戦略 逆関数を表す TRS

最内戦略が完全となる TRSの条件の発見 冗長な書換えの枝刈りが可能

弱最内戦略が完全となる TRSの条件 最内戦略が完全とならない TRS

合流性:規則の適用順序によらず 同一の正規形に到達

Page 5: 弱最内戦略を完全にするための TRS の等価変換について

5

研究概要・目的 (2/2)H(s2(0))H(0) → 0

H(0) → s(0)R=H(s(x)) → U(H(x))U(x) → s(s(x))

H :自然数を 1/2倍する関数の逆関数

U(s3(0))

H(s2(0))

s5(0)s4(0)

U(H(s(0)))

U2(H(0))s2(H(s(0)))

U2(0) s2(U(H(0))) U(s2(H(0))) U2(s(0))

s2(U(0)) U(s2(0)) s4(H(0)) s2(U(s(0)))

深さ優先探索で 37 ステップの書換えが必要

Page 6: 弱最内戦略を完全にするための TRS の等価変換について

6

研究概要・目的 (2/2)H(s2(0))

U(H(s(0)))

U2(H(0))s2(H(s(0)))

U2(0) s2(U(H(0))) U(s2(H(0))) U2(s(0))

s2(U(0)) U(s2(0)) s4(H(0)) s2(U(s(0)))

s5(0)s4(0)

8 ステップの最内書換えで全正規形に到達可能

:最内書換え

U(s3(0))

H(0) → 0H(0) → s(0)R=H(s(x)) → U(H(x))U(x) → s(s(x))

H :自然数を 1/2倍する関数の逆関数

Page 7: 弱最内戦略を完全にするための TRS の等価変換について

7

弱最内戦略

最内リデックスもしくは最内リデックスと重なりを持つリデックスを書き換える戦略

f (g(x)) → xg (x) → s(x)

R=f (g(0))

g(0) は f(g(0)) の最内リデックス

f (s(0))

wi(R)

0wi(R)リデックス f(g(0)) は最内リデックス g(0) と重なりを持つ

Page 8: 弱最内戦略を完全にするための TRS の等価変換について

8

: R

R = f(x)

s(x)

g(h(a,x))

h(x,b)

a

s(x)

g(x)

c

d

b

→→→→

f(h(a,b))

f(h(b,b)) f(d)s(h(a,b))

g(d)

s(d)

c

g(h(a,b))

g(h(b,b))

s(h(b,b))

項 f(h(a,b)) には ,c,g(d) の2 つの正規形が存在

最内戦略が完全にならない TRS

Page 9: 弱最内戦略を完全にするための TRS の等価変換について

9

: R

R = f(x)

s(x)

g(h(a,x))

h(x,b)

a

s(x)

g(x)

c

d

b

→→→→

f(h(a,b))

f(h(b,b)) f(d)s(h(a,b))

g(d)

s(d)

c

g(h(a,b))

g(h(b,b))

s(h(b,b))

R による弱最内書換えではc に到達できない : wi(R)

最内戦略が完全にならない TRS

Page 10: 弱最内戦略を完全にするための TRS の等価変換について

10

f(h(a,b))

f(h(b,b)) f(d)s(h(a,b))

g(d)

s(d)

c

g(h(a,b))

g(h(b,b))

s(h(b,b))R2 =

f(x)s(x)

g(h(a,x))h(x,b)

a

s(x)g(x)

cd

b

→→→→→

s(h(a,x)) g(h(a,x))→f(h(a,x)) s(h(a,x))→

: R2: wi(R2)

弱最内書換えでc に到達できるように規則を追加

最内戦略が完全にならない TRS

Page 11: 弱最内戦略を完全にするための TRS の等価変換について

11

弱最内戦略を完全にする等価変換 (1/4)

TRS R の左辺の部分集合 M(R) 規則の重なりに注目

f(x)

s(x)

g(h(a,x))

h(x,b)

a

M(R)={g(h(a,x))}

s(x)

g(x)

c

d

b

→→→→

他の規則と重なる部分に注目

R =

Page 12: 弱最内戦略を完全にするための TRS の等価変換について

12

g(x’) と g(h(a,x)) の最凡単一化子             に対して ,規則          を追加

弱最内戦略を完全にする等価変換 (2/4)

集合 M(R) から規則を追加 M(R) の要素とマッチング可能な右辺に注目

R = f(x)

s(x)

g(h(a,x))

h(x,b)

a

s(x)

g(x)

c

d

b

→→→→

M(R)={g(h(a,x))} R’={s(h(a,x)) → g(h(a,x))}

)'()( xgxs ))},(('{ xahgx

Page 13: 弱最内戦略を完全にするための TRS の等価変換について

13

弱最内戦略を完全にする等価変換 (3/4)

T(R) = R ∪R’ とする 新しい規則が追加されなくなるまで T を実行

T(R) =f(x)

s(x)

g(h(a,x))

h(x,b)

a

s(x)

g(x)

c

d

b

→→→→

s(h(a,x)) g(h(a,x))→

T2(R) =f(x)s(x)

g(h(a,x))h(x,b)

a

s(x)g(x)

cd

b

→→→→→

s(h(a,x)) g(h(a,x))→

f(h(a,x)) s(h(a,x))→

M(T(R))={g(h(a,x)), s(h(a,x))}

T3(R)=T2(R)

Page 14: 弱最内戦略を完全にするための TRS の等価変換について

14

弱最内戦略を完全にする等価変換 (4/4)

集合 M(R) の定義).(),()(M lFPospRlhslRl

l|p と l’ が単一化可能

変換 T の定義),(M),(|{)(T RlrFPosprlRR

. が r|p と l’ の最凡単一化子 }

新しい規則が追加されなくなるまで T を実行

Page 15: 弱最内戦略を完全にするための TRS の等価変換について

15

予想

R を停止性を持つ右線形 TRS とする .Ti(R)=Ti+1(R) である自然数 i が存在するとき

弱最内戦略は TRS   Ti(R) の完全な戦略

∀t, s. t →R s ∈ NFR  ⇒ t →wi(Ti(R)) s

R T(⇒ R) T(T(⇒ R)) ⇒ ⇒・・・ Ti(R) = T(i+1)(R)