型なしラムダ計算で、 以上の整数 のチャーチ数を
と定める。関数適用は左結合とし、 は を表す。
ラムダ項 は 簡約によって、あるチャーチ数 を正規形にもつ。この を で割った余りを求めよ。
のようなべきの塔を、オイラーの定理で指数の法を に順に下げて計算し、 を で割った余りのような値を求められる
読み込み中…
右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
のように指数が何段も積み重なった数(べきの塔)は、桁数すら書き下せないほど巨大ですが、ある数 で割った余りなら手で求められます。鍵は、底と互いに素な法 では指数を で割った余りに置きかえてよいことです。指数そのものもまたべきの塔なので、法を と順に下げながら計算します。 のようなアッカーマン関数の値の下数桁を求めるときなどに使います。
法 と底 が互いに素なら、 の余りは単元群 の元です。この群の位数は で、元の位数は群の位数を割り切るので (オイラーの定理)が成り立ちます。すると ()と書けば となり、 は指数 を で割った余り だけで決まります。つまり巨大な指数 は「」さえわかればよく、その がまたべきの塔なら、同じ考えを法 で繰り返せばよいのです。 なら なので法はどんどん小さくなり、数段で や に達して計算が止まります(法 ではどんな数も余り )。
底と法が互いに素でないとき(底 と法 など)はオイラーの定理をそのまま使えません。そこで法を ( は奇数)と互いに素な数の積に分けます。 の部分では、 と書けるので、指数が のときに限り です。 なら でこれ自身が余りになり、 にはなりません。たとえば は法 では指数 なので余り のままです。したがって「 か」はどの段でも毎回確かめます。確かめるのは難しくありません。 だけの塔は段数を 増やすごとに を施すので、 と増えていき、 段以上の塔なら指数は 以上、 段以上なら 以上です。手計算で扱う法の ( なら )はこれらよりずっと小さいので、塔がその高さを超えていることを示せば条件が確かめられます。 の部分は なので上の指数の置きかえが使えます。最後に中国剰余定理で 2 つの余りを 1 つにまとめます(底が奇素数 で が を含むときも、同様に の部分を分けて を確かめます)。
塔を上から読み、上の小さな段はそのまま計算しておく(例: )。塔は右上から結合する:
法 を、底と共通の素因数をもつ部分 と、底と互いに素な部分 に分ける:
の部分: 指数 が を満たすことを具体的な値の下限(例: 指数が 以上)で確かめてから とする。 なら がそのまま余り
の部分: 指数 を で割った余り を求める。 自身がべきの塔なら、法 に対してこの手順全体を(法が小さくなるまで)繰り返す
を繰り返し二乗法などで計算する:
中国剰余定理で と の余りをまとめ、 で割った余りを得る
( が 個並んだべきの塔)を で割った余りを求めよ。
【手順 1】上の段から計算すると , , なので , である。
【手順 2】 と分ける()。
【手順 3】法 (): 指数 を確かめたので 。
【手順 4】法 : なので が必要。 について、法 で同じ手順を繰り返す。
- 法 (手順 3): 指数 なので 。
- 法 (手順 4・5): なので指数 を で割った余りが必要。 より 。よって を使って 。
- (手順 6), を満たす の値は のうち で割って 余る 。よって 。
【手順 5】。, より 。
【手順 6】, 。 のうち の倍数は 。よって 。
答え:
答え:
底と法が互いに素でないのにオイラーの定理を使い、 を だけで決めてしまう誤り。実際 は偶数なので 。正しくは と分け、法 では を確かめて 、法 では を使う。
指数を法 そのもので割ってしまう誤り(例: を で計算する)。正しくは指数は で割る: 。
塔を下から結合してしまう誤り(例: とする)。正しくは 。
の部分で指数の大きさを確かめずに とする誤り(例: を法 で とする)。 は のときだけ成り立ち、 は なので法 で余り である。
この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。