2
大学数学基礎議論
文献あり

μ-作用素について

197
1

μ-作用素について

ある原始的述語 p(x,y)μ-作用素を施したものμz<y. p(x,z) が原始(帰納)的関数となることの証明に,理解できないことがあるので質問させてください. そのために,まず原始的関数と, 原始的述語 (とその特性関数) を定義します.

定義. 原始的関数を次の (1) から (5) で再帰的に定義する.

  1. 零関数 zero:N0Nzero()=0

  2. 後者関数 suc:NNsuc(x)=x+1

  3. 射影関数 pin:NnNpin(x1,,xn)=xi

  4. 合成 : 原始的関数 g:NmNgi:NnN (1im) に対して
    f(x)=g(g1(x),,gm(x))
    で定義される f:NnN は原始的関数である.

  5. 原始再帰法 : 原始的関数 g:NnNh:Nn+2N に対して
    f(x,0)=g(x)
    f(x,y+1)=h(x,y,f(x,y))
    で定義される f:Nn+1N は原始的関数である.

例として, 定数関数や前者関数, 足し算 +, 引き算 ˙ (ただしx<y のとき x˙y0 を返す), かけ算 × は原始的関数です.

補題. f(x,y) が原始的関数ならば, 限定和
z<yf(x,z)=f(x,0)+f(x,1)++f(x,y1)
と, 限定積
z<yf(x,z)=f(x,0)×f(x,1)××f(x,y1)
も原始的関数である. ただし z<0f(x,z)=0z<0f(x,z)=1 とする.

定義. ある関数 Nn{true,false} を (n 項) 述語と呼ぶ. ある述語 p の特性関数 χpNn{0,1} であって,
χp(x)={0(p(x)=true)1(p(x)=false)
と定義される. ある述語の特性関数が原始的であるとき,その述語を原始的述語と呼ぶ.

たとえば, p(x):x=0 の特性関数は 1˙(1˙x) と原始的関数で表わせるので原始的述語と言えます. 実際計算してみると,x=0 のとき,
1˙(1˙x)=1˙1=0
1x のとき
1˙(1˙x)=1˙0=1
となります.

原始的述語 p(x) が真のとき, その特性関数の値が零元となることは,zy p(x,z) の特性関数が zyχp(x,z) と表わせて, このときひとつでも true があるならば積として書かれるこの述語の特性関数の値が 0となって好ましいです. でも p(x)=true のときその特性関数の値が 1 だとして定義しても, pの否定をとれば結果は変わりません. いずれにしてもこの true がひとつでもあればすべてが 0 となる性質は重要になってきます.

ところで先の補題から zy p(x,z) の特性関数
zyχp(x,z)
は原始的関数の限定積なので原始的関数であって, 原始的述語です.

ひとつ疑問なのは, ある原始的述語に対してその特性関数は一意に定まるのか,ということです.この疑問はのちに述べる疑問にも関係しているような気もします. たとえばある原始的関数が “偶然” ある述語の特性関数となったとき,その述語の “本質(?)” と関係しているのでしょうか. あるいはある述語の“本質(?)” が理解できたとき,必然的にその特性関数を構成することはできるのでしょうか. 理由はよくわかりませんが, わたしはこんな質問をして,なんだか恥ずかしい気持ちがします. よくわかっていないのです. わたしはよくわかっていないのです.

μ-作用素を定義します. pn+1 項述語として,
μz<y. p(x,z)=defmin({wNw<y かつ p(x,w)=true}{y})
μ は述語 pxNn, そして上界 yN が与えられたとき, 自然数の値を返す関数です. なにを返すかというと, その述語が真となる最小の自然数です. ただし,述語を走る自然数 (上でいう z) には上界があって, それが上における y です. なので y 未満を走って述語を真ならしめる最小の自然数を探索し,そのような最小の w がなければ y を返します.

たとえば割り算 xyμz<x (x<y×(z+1)) と表わせます. お気持ちとしては x,yN が与えられたとき,xy は「 y とかけ算をして x を超えてしまうような最小の自然数のひとつ前の自然数」を返してほしいものです. 1033 にかけ算をして 10 を超えてしまう自然数 (4,5,6,) の最小 4 のひとつ前の自然数 3 を返してほしいのです. このお気持ちを表わした述語 p(x,y,z):x<y×(z+1) において, 動いてほしい z のなかで最小のものを返してほしいので μz<x. p(x,y,z) と書けます. z の上界が x であるのはうまく説明できませんが,いろいろな μ-作用素の例をみてみると, 上界は適切であれば適切です.

たとえば不適切な例として, 上の割り算の μ の上界をある自然数 n としてみると, ある大きな数 x=n+1y=1 に対して,μz<n. p(n+1,1,z)=μz<n. (n+1)<1×(z+1)z<n で述語を真にする自然数がないので, n を返します. これは好ましくありません. そうして上界を x にすると安心なのです.

ここからわたしが質問したいところに入ります. pn+1 項原始述語とし, ある xNnyN が与えられ, μ-作用素を施したもの μz<y. p(x,z) を考えます. ここで定義から μz<0. p(x,z)=0 です.
次に y=1 としてみましょう. p(x,0)=true か, あるいはp(x,0)=false のいずれかです. 前者ならば μz<1. p(x,z)=0 で, 後者ならば μz<1. p(x,z)=1 です.

次に y=2 を考えてみます :
μz<2. p(x,z)={0(p(x,0)=true)1(p(x,0)=false, p(x,1)=true)2(p(x,0)=p(x,1)=false)

y=3 は次のようになります :
μz<3. p(x,z)={0(p(x,0)=true)1(p(x,0)=false, p(x,1)=true)2(p(x,0)=p(x,1)=false, p(x,2)=true)3(p(x,0)=p(x,1)=p(x,2)=false)

true になった以後の真偽は関係ありませんので省略してあります. こうしてみると,μz<y. p(x,z) の値は, はじめて true になる前の false の個数と一致しています. そして, 初めて true になった以後の真偽とは関係ありません. このおのおのの場合分けはそれらの積で表現することが可能です.

y=3と固定して, それぞれの場合のそれぞれの述語の特性関数 χp(x,z) の積の値を調べてみると,

  1. p(x,0)=true のとき χp(x,0)=0 なので,
    z0χp(x,z)=z1χp(x,z)=z2χp(x,z)=0
    このときすべてを足すと,
    z0χp(x,z)+z1χp(x,z)+z2χp(x,z)=v<3zvχp(x,z)=0

  2. p(x,0)=false, p(x,1)=true のとき
    z0χp(x,z)=1,z1χp(x,z)=z2χp(x,z)=0
    総和は,
    v<3zvχp(x,z)=1

  3. p(x,0)=p(x,1)=false, p(x,2)=true のとき,
    z0χp(x,z)=z1χp(x,z)=1,z2χp(x,2)=0
    v<3zvχp(x,z)=2

  4. p(x,0)=p(x,1)=p(x,2)=false のとき
    z0χp(x,z)=z1χp(x,z)=z2χp(x,z)=1
    v<3zvχp(x,z)=3

なので,先に述べた “はじめて true になる前の false の個数” と, 上の y=3 個の積の限定和
v<3zvχp(x,z)
は一致します.

一般化して, 最小解が存在するとして, 先に μz<y. p(x,z)=ε とおくと (すなわちはじめて true となるのが ε<y であるとすると),
χp(x,z)=1(z<ε)
χp(x,ε)=0

以後の真偽は関係ありません.

このとき限定積は,
zvχp(x,z)=1(v<ε)
zvχp(x,z)=0(εv<y)

すべてを足すと,
v<yzvχp(x,z)=ε

最小解が存在しないとすると,
χp(x,z)=1(0z<y)
であって,限定積は
zvχp(x,z)=1(v<y)

すべてを足すと,
v<yzvχp(x,z)=y

いずれの場合も
v<yzvχp(x,z)=μz<y. p(x,z)
ところで p は原始的述語であったので, χp(x,z)は原始的関数です. したがってその有限積は原始的であり,その有限積の有限和もまた原始的です. ゆえ, それに等しい μz<y. p(x,z) も原始的関数となります.

わたしの疑問は, なぜこんなにもうまくいくのかわからない, ということです. だから疑問と呼べるのかさえわからないのです. 鍵となるのはたぶん “はじめて true となる数の前の false の個数” が遺伝子を保つ積の和として書けるというところにあると思うのですが,いずれにしてもうまく Yes / No で言える質問ができません.

それと,わたしはこうも考えてみました. v<yzvχp(x,z) が “偶然” μz<y. p(x,z) と一致する, と. ふたつの関数の引数は同じく x,y です. “偶然” うまくいってしまったように感じられるのです,特に, y 個の限定和をとるというところに. 限定和をとるということに必然性を感じられるほど妥当な議論ではないように思えますし,かといってまったく偶然というふうにも思えません. それに,偶然であってほしくはないのです.

たとえば, 神さまがふたつの “本質的に” 異なる関数をわたしたちに与えてくれたとします. そうしてわたしたちはある入力をして,いずれのときもそのふたつの関数は同じ値を出力してくれるとします. けれどもわたしたちは有限の対象なのだから, 有限個の確認しかできずに,そのふたつの関数が等しいと思って死んでゆくのです. μz<y. p(x,z)v<yzvχp(x,z) のふたつの関数も,わたしには区別できません. なぜなら同じ入力に対して同じ出力をしてくれるのですから. わたしはすこしおかしいですか ? かなり疲れています. うまく言葉にできない疑問を持つことはとてもつらいです. 願わくば誰かやさしいひとが, わたしのこの気持ちを悟ってくれますように.

参考文献

[1]
高橋正子, 計算論 計算可能性とラムダ計算
投稿日:2022414
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

isumi
isumi
6
1934

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中