たらいまわし関数、ひとまず完了

たらいまわし関数 - くるるの数学ノート
たらいまわし関数その後 - くるるの数学ノート

とりあえず自分的に納得いくところまで行ったのでこの辺で手を引こうかなと。結果的にはBailey and CowlesのPreliminary Reportで予想されているのが正しいようです。すなわち、全ての自然数nに対してn次元たらいまわし関数t(x_1, x_2, \cdots, x_n)はcall-by-needでは停止して値としては以下のようなものをとります。

  1. 全てのi=1, 2, ..., n-1についてx_i\gt x_{i+1}が成り立つならばt(x_1, \cdots, x_n)=x_1
  2. そうでない場合には、kをx_k\leq x_{k+1}となるような最小のものとする。もし全てのi=1, 2, ..., k-2に対して、x_i=x_{i+1}+1またはx_{i+1}\gt x_{i+2}+1が成り立つならば、t(x_1, \cdots, x_n)=x_{k+1}
  3. そうでない場合には、lをx_l\gt x_{l+1}+1かつx_{l+1}=x_{l_2}+1となるような最小のものとする。このとき、t(x_1, \cdots, x_n)=\text{max}(x_{l+2}, x_{k+1})

Bailey and Cowlesとは書き方が違っていますが、実質的には同じです。item 3のおかげで、t(5, 3, 2, 0, 1)=2がちゃんと出せるわけですね。
証明を書いて彼らに送ってみようかな、と。一応論文になる可能性が残っているのでブログでは公開しません(小市民、というか小数学者ですな)。興味がある方は所属を書いてメールを下されば、ある程度まとまった時点でメールで送らせていただきます。もっとも、Preliminary Reportが2000年、もう6年も経っているから完全に解けちゃっているかなとも思うんですが。

面白い問題を教えてくださった、k.inabaさんid:yoriyukiさんに感謝いたします。