多項式解釈と停止性

表現系工学特論
項書換え系(2)
多項式解釈と停止性
1.項書換え系の基本用語と記法 (1/4)
変数の集合 V   x, y, z,

関数記号の集合 F   f , g , h,
定数( 0,1,
, a, b, c,

)も引数をもたない関数記号
項の集合 T ( F ,V )
項とは変数または定数または関数記号(項,…,項)の形をした式.
書換え規則:項の順序対 l  r .
項書換え系:有限個の書換え規則の集合 R .
1.項書換え系の基本用語と記法 (2/4)
代入  : V  T ( F ,V )
各変数 x  V に項  ( x)  T ( F ,V ) を割り当てる写像.
   x1
 ( x1 ), , xn
 ( xn ) の形で表現する.
代入の適用  (t )
項 t に出現している各変数 x をすべて項  ( x) で置き換えた
項を  (t ) と書く.
(例)    x
a, y
f (b) のとき,
 ( f ( g ( x, y)))  f ( g (a, f (b)))
1.項書換え系の基本用語と記法 (3/4)
インスタンス
 (t )  s となる代入  が存在するとき,
s は t のインスタンスであるという.
(例) f (g (a) ) は f (x) のインスタンス
1.項書換え系の基本用語と記法 (4/4)
簡約関係  R
ある書換え規則 l  r  R の左辺のインスタンス  (l ) が
項 s の部分項として含まれていて,
 (l ) を  (r ) に置き換えたときに,
s が t になるとき s  R t と書く.
(例) 書換え規則 f(x) → g(x)
書換え関係 h(f(a)) →R h(g(a))
2.停止性の決定不能性 (1/2)
停止性
どんな初期項 t 0 からも,書換えの無限列 t0  R t1  R t2  R
が
存在しないこと.
(例1)
 f (0,1, x)  f ( x, x, x)

R   g ( x, y )  x
 g ( x, y )  y

は停止性をもたない.
f ( g (0,1), g (0,1), g (0,1))
 R   R f (0,1, g (0,1))
 R f ( g (0,1), g (0,1), g (0,1))
2.停止性の決定不能性 (2/2)
定理1(停止性は決定不能)
項書換え系の停止性は決定不能である.
すなわち,任意の項書換え系 R を入力として受け取り,それが
停止性をもつかどうかを有限時間内で判定するアルゴリズムは存
在しない.
3.簡約順序 (1/4)
整礎
無限下降列 a1
a2
a3
( ai  A, i  1 )が存在しないこと.
書換え順序
項の集合 T ( F ,V ) 上で定義されたつぎの条件を満たす
厳格半順序
のこと.
単調性:局所的な減少が大域的な減少となる.
すなわち,任意の項 s, t について:
s
t ならば f ( , s, )
f ( , t, )
安定性:代入により順序が変化しない.
すなわち,任意の項 s, t と代入  について:
s
t ならば  ( s)  (t )
3.簡約順序 (2/4)
簡約順序
整礎な書換え順序のこと.
定理2(停止性の必要十分条件)
項書換え系 R が停止性をもつ必要十分条件は,
すべての書換え規則 l  r  R について l
となる簡約順序
r
が項の集合 T ( F ,V ) の上に存在することである.
3.簡約順序 (3/4)
(例2)
項 t のサイズ(含まれる変数および関数記号の総数)を | t | と書く.
また,項 t に変数 x が現れている回数を | t |x と書く.
s
t
 | s |  | t | and | s |x  | t |x for all x  V
と定義すると,
は簡約順序である.
したがって,つぎの R は停止性をもつ.
nand ( x, x)  not ( x)

R
not (nand ( x, y ))  and ( x, y )
3>2
4>3
3.簡約順序 (4/4)
(例3)
変数に重み 1,関数記号 f に正の整数の重み w f を与え,
項 t の重みの総和を w(t ) と書く.
s
t
と定義すると,
 w(s)  w(t ) and | s |x  | t |x for all x  V
は簡約順序である.
したがって,つぎの R は停止性をもつ.
not (and ( x, y ))  or (not ( x), not ( y ))
R
not (not ( x))  x
w(not )  w(or )  1, w(and )  3
3>1
6>5
4.多項式解釈に基づく停止性証明 (1/6)
単調関数による解釈
A  {1,2,3, } を正の整数の集合とし,
各関数記号 f  F に A の上で定義された関数 f A : A   A  A を
対応させる. f A はつぎの式で定義される単調なものとする.
単調性: a  b 
f A ( , a, )  f A ( , b, )
項 t T ( F ,V ) に現れているすべての変数 x  V を A 上を動く変数
x  A と解釈し,各関数記号 f を A 上の単調な関数 f A と解釈して
できる数式を  (t ) とする.
f A と  (t ) をそれぞれ f と t の解釈という.
4.多項式解釈に基づく停止性証明 (2/6)
(例4)
f A ( x, y )  2 x  y  1, g A ( x, y)  xy のとき,
 ( g ( x, f ( y, z )))  g A ( x, f A ( y, z ))
 g A ( x, 2 y  z  1)
 x(2 y  z  1)
 2 xy  xz  x
4.多項式解釈に基づく停止性証明 (3/6)
解釈に基づく半順序
項の集合 T ( F ,V ) 上の半順序 A をつぎの式で定義する.
s A t   ( s )   (t )
ただし,不等式  (s)   (t ) は,含まれる変数が A のどの値をとっても
成り立つことを表す.
定理3 すべての関数記号 f  F の解釈 f A が単調ならば,
A は項の集合 T ( F ,V ) 上の簡約順序である.
4.多項式解釈に基づく停止性証明 (4/6)
系4(解釈に基づく停止性証明)
すべての書換え規則 l  r  R について  (l )   (r ) となる単調な解
釈が存在すれば, R は停止性をもつ.
多項式解釈
f A が多項式のときの解釈を多項式解釈という.
多項式のすべての係数を正の整数とし,かつ,
式の値がすべての変数に依存するようにすれば,その多項式は単調.
4.多項式解釈に基づく停止性証明 (5/6)
(例5)
and ( x, or ( y, z ))  or (and ( x, y ), and ( x, z ))
R
or (or ( x, y ), z )  or ( x, or ( y, z ))
(停止性の証明)
A  {2,3,4, } , orA ( x, y )  2 x  y  1, and A ( x, y )  xy とすると,
 (and ( x, or ( y, z )))  x(2 y  z  1)
 2 xy  xz  x
 2 xy  xz  1
  (or (and ( x, y ), and ( x, z )))
4.多項式解釈に基づく停止性証明 (6/6)
and ( x, or ( y, z ))  or (and ( x, y ), and ( x, z ))
R
or (or ( x, y ), z )  or ( x, or ( y, z ))
(停止性の証明)
A  {2,3,4, } , orA ( x, y )  2 x  y  1, and A ( x, y )  xy とすると,
続き
 (or (or ( x, y ), z ))  2(2 x  y  1)  z  1
 4x  2 y  z  3
 2x  2 y  z  2
  (or ( x, or ( y, z )))
したがって,すべての書換え規則 l  r  R について  (l )   (r ) .
演習問題
多項式解釈
A  {2,3, 4, }
plus A ( x, y )  x  2 y,
s A ( x)  x  1
double A ( x)  3x
0A  2
を用いて,つぎの項書換え系の停止性を証明せよ.
 plus ( x,0)  x
 plus ( x, s ( y ))  s ( plus ( x, y ))

R
 double(0)  0
 double( s ( x ))  s ( s (double( x ))