この記事では、フェルマーの小定理の さまざまな証明をまとめています。フェルマーの小定理とは、
以下に示すフェルマーの小定理の証明のいくつかは、2つの簡略化に基づいている。
まず、a は0 ≤ a ≤ p − 1の範囲にあると仮定できます。これはモジュラー演算の法則の単純な帰結です。つまり、まずa をpで割った余りを求めることができるということです。これは、 aをp で割った余りを求めることと矛盾しません。 確認できるように、pを法として。
第二に、以下のことを証明すれば十分である。
1 ≤ a ≤ p − 1の範囲のaに対して。実際、このようなaに対して前の主張が成り立つ場合、両辺にaを掛けると、定理の元の形式が得られます。
一方、a = 0の場合、この定理は自明に成り立つ。
これはおそらく最も単純な証明であり、必要な数学的知識も最小限です。これは組み合わせ論的証明(複数の対象を2つの異なる方法で数える証明)の魅力的な例です。
ここで示されている証明は、ゴロンブの証明を改変したものである。[ 1 ]
話を単純にするために、 a は正の整数であると仮定します。異なる記号のアルファベットを使用して、p 個の記号からなるすべての可能な文字列を考えます。p個の位置それぞれに可能性があるので、そのような文字列の総数はa pです(積の法則を参照)。
例えば、p = 5、a = 2の場合、2 つの記号 ( AとBなど) を持つアルファベットを使用でき、長さ 5 の文字列は2 5 = 32通りあります。
以下で説明するように、リストから単一の記号からなる文字列(この例ではAAAAAとBBBBB)を取り除くと、残りのa p − a個の文字列はグループに分けられ、各グループにはちょうどp個の文字列が含まれます。したがって、a p − aはpで割り切れます。


それぞれの紐をネックレスに見立ててみましょう。つまり、紐の両端をつなぎ合わせ、一方の紐を回転させることでもう一方の紐が得られる場合、2本の紐を同じネックレスとみなします。この場合、2本の紐は「友達」であると言います。この例では、次の紐はすべて友達です。
以下に挙げるリストの各行は、それぞれ1本のネックレスに対応しており、リスト全体では32本の紐すべてが含まれています。
上記のリストでは、複数のシンボルを持つネックレスはそれぞれ5つの異なる文字列で表され、1つの文字列で表されるネックレスの数は2つ、つまり異なるシンボルの数であることに注意してください。したがって、このリストは32 − 2が5で割り切れる理由を非常に明確に示しています。
与えられた文字列Sが持つ友達の数を計算するには、次のルールを使用できます。
例えば、文字列S = ABBABBABBABBから始めるとします。これは、より短い文字列 T = ABB を複数コピーして構成されています。これを一度に 1 つのシンボルずつ回転させると、次の 3 つの文字列が得られます。
ABBはちょうど3つの記号で構成されており、それ以上繰り返しの文字列に分解することはできないため、他に同様の文字列は存在しません。
上記の規則を用いると、フェルマーの小定理の証明を以下のように非常に簡単に完了できます。p個の文字列からなる初期プールは、次の2つのカテゴリに分けられます。
2番目のカテゴリにはp − a個の文字列が含まれており、それらはp個の文字列のグループに分けられ、各グループがネックレス1つに対応します。したがって、約束どおり、 p − aはpで割り切れなければなりません。
この証明では、力学系の基本的な概念をいくつか使用します。[ 2 ]
まず、 n ≥ 2 は整数である関数 族T n ( x ) を考えます。この関数は、次の式によって区間[0, 1] をそれ自身に写像します。
ここで、 { y }はyの小数部分を表します。例えば、関数T3 ( x )は以下のように表されます。

数x 0は、 f ( x 0 ) = x 0が成り立つ場合、関数f ( x )の不動点であると言われます。言い換えれば、f がx 0を固定したままにする場合です。関数の不動点は、グラフを使って簡単に求めることができます。不動点は、f ( x )のグラフが直線y = xのグラフと交わる点のx座標です。たとえば、関数T 3 ( x )の不動点は0、1/2、1 です。これらは次の図に黒丸で示されています。

以下の2つの補題が必要となります。
補題1.任意のn ≥ 2に対して、関数T n ( x )はちょうどn個の不動点を持つ。
証明。上の図には、区間に対応する 3 つの固定点があります。xについても同様であり、同じ幾何学的議論がすべての x に当てはまります。。
補題2.任意の正の整数nとm、および任意の0 ≤ x ≤ 1に対して、
言い換えれば、T mn ( x ) はT n ( x ) とT m ( x )の合成です。
証明。この補題の証明は難しくないが、端点x = 1 には少し注意する必要がある。この点では、補題は明らかに正しい。
では、0 ≤ x < 1と仮定しましょう。この場合、
したがって、T m ( T n ( x )) は次のように与えられる。
したがって、私たちが本当に示さなければならないのは
そのためには、{ nx } = nx − kであることに注目します。ここで、kはnxの整数部分です。
mkは整数なので。
それでは、関数T a p ( x ) を調べることで、フェルマーの小定理の証明を本格的に始めましょう。a ≥ 2と仮定します。補題 1 から、この関数はa p 個の不動点を持つことがわかります。補題 2 から、
したがって、 T a ( x )の任意の不動点は、自動的にT a p ( x )の不動点になります。
我々は、 T a p ( x )の固定点であって、T a ( x )の固定点ではないものに興味がある。そのような点の集合をSと呼ぶことにしよう。補題 1 により、T a ( x ) はちょうどa個の固定点を持つので、 Sにはa p − a個の点がある。次の図は、 a = 3、p = 2の場合の状況を示している。黒丸はSの点であり、その数は 3 2 − 3 = 6 個である。

証明の主なアイデアは、集合S をT aの下での軌道に分割することです。これは、 S内の点x 0を選び、それにT a (x) を繰り返し適用して、点の列を得ることを意味します。
この数列はT a の下でのx 0の軌道と呼ばれます。補題 2 により、この数列は次のように書き換えることができます。
x 0 はT a p ( x )の固定点であると仮定すると、pステップ後にT a p ( x 0 ) = x 0に到達し、その時点からシーケンスが繰り返されます。
しかし、数列はそれより早く繰り返されることはありません。もし繰り返されるとしたら、繰り返し部分の長さはpの約数でなければならず、1 でなければなりません ( pは素数なので)。しかし、これはx 0がT aの固定点ではないという我々の仮定と矛盾します。
言い換えれば、軌道にはちょうどp 個の異なる点が含まれています。これはSのすべての軌道について成り立ちます。したがって、 p − a個の点を含む集合Sは、それぞれp個の点を含む軌道に分割できるため、p − aはpで割り切れます。
(この証明は、上記で示したネックレス数え上げの証明と本質的に同じですが、単に異なる視点から見ているだけです。区間[0, 1]は、基数aの数字の列で与えられると考えることができます(0と1の区別は、整数を「.0000...」で終わるものと「.9999...」で終わるものの区別に対応します)。T a nは、そのような列をn桁ずらすことに相当します。この固定点は、周期がnを割り切る巡回列になります。特に、T a pの固定点は、長さpのネックレスと考えることができ、T a nは、そのようなネックレスをnスポット回転させることに対応します。
この証明は、0と1を区別せずに、単に半開区間[0, 1)を用いるだけでも示すことができる。その場合、T nはn − 1個の不動点しか持たないが、 T a p − T aは依然としてa p − aに収束し、必要な結果が得られる。
オイラーによるこの証明[3]は、帰納法を用いてすべての整数a ≥ 0に対して定理を証明している。
基本ステップである0 p ≡ 0 (mod p ) は自明です。次に、定理がa = kに対して真であれば、 a = k + 1 に対しても真であることを示さなければなりません。この帰納的ステップには、次の補題が必要です。
補題。任意の整数xとyおよび任意の素数pに対して、( x + y ) p ≡ x p + y p (mod p ) が成り立つ。
この補題は、新入生の夢のような例だ。証明は後回しにして、帰納法を進めよう。
証明。k p ≡ k (mod p ) と仮定し、( k + 1) pを考える。補題より、
帰納法の仮定を用いると、k p ≡ k (mod p ) となり、自明なことに 1 p = 1 となる。したがって
これは、 a = k + 1の場合の定理の記述です。∎
補題を証明するために、任意の正の整数nに対して、次の二項定理を導入する必要があります。
ここで係数は二項係数であり、
階乗関数で表すと、n ! = 1×2×3×⋯× nとなります。
補題の証明。指数が素数pの場合の二項係数を考える。
二項係数はすべて整数です。分子は階乗の定義により因数pを含みます。0 < i < pの場合、分母のどちらの項もpの因数を含みません ( pの素数性に基づく)。したがって、係数自体が分子からpの素因数を持つことになります。
法pを用いると、素数pに対する二項定理の右辺の和のうち、最初と最後の項を除くすべての項が消去される。∎
pの素数性は補題に不可欠である。そうでなければ、次のような例が出てくる。
これは4で割り切れません。
補題を用いると、次のようになる。
証明は、最初にライプニッツによって発見され(彼はそれを公表しなかった)[ 4 ] 、後にオイラーによって再発見された[ 3 ]。これは、多項式の定理の非常に単純な応用であり、次のように述べている。
どこ
そして総和は、すべてのk iの合計がnとなるような、非負の整数インデックスk 1、k 2、 ...、k mのすべてのシーケンスについて取られます。
したがって、 a を1 の和として表すと、
明らかに、pが素数であり、任意のjに対してk jがpと等しくない場合、次のようになります。
そして、あるjに対してk jがpに等しい場合、
k j = pとなる要素がちょうど個存在するので、定理が成り立つ。
(この証明は、先に述べたネックレス数え上げ証明の粗粒度版です。多項係数は、文字列を任意のアナグラムに並べ替える方法の数を数え、ネックレスの議論は、文字列を循環アナグラムに回転させる方法の数を数えます。つまり、ここで非自明な多項係数がpで割り切れることは、長さpの非自明なネックレスをp通りの方法で文字列に展開できるという事実の結果と見なすことができます。 )
この多項式展開は、もちろん、上記の二項定理に基づく証明の根底にあるものでもある。
形式的なべき積展開に基づく加法的組み合わせ論的証明は、ギエドリウス・アルカウスカスによって与えられた。[ 5 ]この証明は、ユークリッドの互除法も二項定理も使用せず、有理係数を持つ形式的なべき級数を使用する。
この証明[ 3 ] [ 6 ]は、ジェームズ・アイボリー[ 7 ]によって発見され、ディリクレ[ 8 ]によって再発見されたもので、モジュラー算術に関するある程度の予備知識を必要とする。
aは正であり、 pで割り切れないと仮定しましょう。
数字の列を書き出すと、
そしてそれぞれをpで割ると、結果として得られる数列は、
したがって、各数列の数値を掛け合わせると、結果は法pに関して同一になるはずです。
用語をまとめると次のようになります
最後に、この等式の両辺から1, 2, ..., p − 1を「消去」すると、次の式が得られます。
上記の証明には、正当化する必要のある2つのステップがあります。
以下でこれらのことを証明しますが、まずはこの証明が実際にどのように機能するかの例を見てみましょう。
a = 3かつp = 7の場合、問題の数列は次のようになります。
7を法として還元すると
これは単に
これらを掛け合わせると
つまり、
1 × 2 × 3 × 4 × 5 × 6を約分すると、
これは、 a = 3およびp = 7の場合のフェルマーの小定理です。
まず、特定の状況下で「取り消し」が有効である理由を説明しましょう。正確な記述は次のとおりです。u 、x、yが整数であり、uが素数pで割り切れず、かつ
そうすれば、私たちはあなたから「キャンセル」して取得することができます
上記のフェルマーの小定理の証明でこの消去法則を使用したことは正当でした。なぜなら、1、2、...、p − 1の数は確かにpで割り切れないからです(実際、それらはpより小さいです)。
一般的に素数pが積ab ( aとbは整数) を割り切るならば、 p はaまたはbを割り切る、というユークリッドの補題を使えば、消去法則を簡単に証明できます。実際、主張 ( C )は、 p がux − uy = u ( x − y )を割り切ることを意味します。pはu を割り切らない素数なので、ユークリッドの補題によれば、代わりにx − yを割り切るはずです。つまり、( D ) が成り立ちます。
消去法則が成り立つ条件は非常に厳格であることに注意が必要です。これが、フェルマーの小定理がpが素数であることを要求している理由です。例えば、2×2 ≡ 2×5 (mod 6)ですが、 2 ≡ 5 (mod 6)は成り立ちません。ただし、消去法則の次の一般化が成り立ちます。u 、x 、y、zが整数で、uとzが互いに素で、かつ
そうすれば、私たちはあなたから「キャンセル」して取得することができます
これはユークリッドの補題の一般化から導かれる。
最後に、このシーケンスがなぜ
pを法として還元すると、数列の並べ替えになります。
まず、項a、2 a、 ...、( p − 1) aのいずれもpを法として 0 と合同になることはありません。なぜなら、kが1、 2、 ...、p − 1 のいずれかの数である場合、 k はpと互いに素であり、a も同様であるため、ユークリッドの補題によればka はpと共通因数を持たないからです。したがって、少なくとも、数a、2 a、 ...、( p − 1) a をpを法として簡約すると、1、 2、 3、 ...、p − 1 の数の中に必ず含まれることがわかります。
さらに、a、2a、...、( p - 1) aは、 pを法として簡約した後、すべて異なる値でなければなりません。なぜなら、
ここでkとmは1、2 、 ...、p - 1 のいずれかであり、消去法則によれば、
kとmはどちらも1からp - 1の間にあるので、等しくなければなりません。したがって、項a、2a 、 ...、( p - 1) aをpで割った余りは互いに異なる必要があります。まとめると、p - 1個の数a、2a 、 ...、( p - 1) aをpで割った余りは、数列1、2、...、p - 1の異なる要素になります。これらの数はちょうどp - 1個なので、前者が後者の並べ替えである可能性しかありません。
この方法は、オイラーの定理を証明するためにも使用できます。ただし、 1からp -1までの数を、ある数m (必ずしも素数である必要はない)と互いに素で、かつpより小さい数に置き換えるというわずかな変更が必要です。並べ替えの性質と消去法則(上述の一般化された形式の下で)はどちらも満たされ、利用できます。
例えば、m = 10の場合、 mより小さく、mと互いに素な数は1、3、7、9です。したがって、次のようになります。
したがって、
考え方は、集合G = {1, 2, ..., p − 1 } に乗法(法p)を加えると群を形成するという点を認識することです。検証に多少の努力が必要な唯一の群の公理は、Gの各要素が可逆であるということです。とりあえずこれを前提として、aは1 ≤ a ≤ p − 1 の範囲にある、つまりaはGの要素であると仮定します。aの位数をkとします。つまり、kはa k ≡ 1 (mod p )となる最小の正の整数です。すると、1, a , a 2 , ..., a k −1を法pで簡約したものは、位数がkであるGの部分群を形成し、したがってラグランジュの定理により、kはGの位数p − 1を割り切ります。したがって、p − 1 = km (ある正の整数mに対して)となり、
Gのすべての要素bが可逆であることを証明するには、次のように進めます。まず、bはpと互いに素です。したがって、ベズーの恒等式により、 bx + py = 1となる整数xとyが存在します。この等式を法pで読むと、 bx ≡ 1 (mod p )なので、x はbの逆元であることがわかります。したがって、 Gのすべての要素は可逆です。つまり、先に述べたように、Gは群です。
例えば、p = 11の場合、各要素の逆数は次のように与えられます。
前の証明を取り、ラグランジュの定理を使う代わりに、この特定の状況で証明しようとすると、オイラーの 3 番目の証明が得られます。これは彼がより自然だと感じたものです。[ 10 ] [ 11 ] A を、要素がp を法とする数1、a、a 2、...、a k − 1である集合とします。A = Gの場合、k = p − 1であり、したがってk はp − 1を割り切ります。そうでない場合、何らかのb 1 ∈ G \ Aが存在します。
A 1 を、 pを法とする数b 1、ab 1、a 2 b 1、 ...、a k − 1 b 1を要素とする集合とする。このとき、 A 1はk個の異なる要素を持つ。そうでなければ、 a m b 1 ≡ a n b 1 (mod p )となるような異なる数m、n ∈ {0, 1, ..., k − 1 }が 2 つ存在することになり、これはa m ≡ a n (mod p )となるので不可能である。一方、A 1のどの要素もAの要素にはなり得ない。そうでなければ、 a m b 1 ≡ a n (mod p )となるような数m、n ∈ {0, 1, ..., k − 1 }が存在し、b 1 ≡ a n a k − m ≡ a n + k − m (mod p )となるが、これはb 1 ∉ Aなので不可能である。
したがって、集合A ∪ A 1には2 k 個の要素があります。これがGと等しい場合、2 k = p −1となり、したがってk はp −1を割り切ります。そうでない場合は、何らかのb 2 ∈ G \( A ∪ A 1 )が存在し、要素がb 2、ab 2、a 2 b 2、 ...、a k − 1 b 2を法pで簡約した集合としてA 2を定義することで、最初からやり直すことができます。G は有限なので、このプロセスはどこかの時点で停止する必要があり、これによりk がp − 1を割り切ることが証明されます。
例えば、a = 5かつp = 13の場合、
k = 4でA = {1, 5, 8, 12 }です。明らかに、A ≠ G = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 } です。b 1 を G \ A の要素とします。例えば、 b 1 = 2 とします 。 すると、
A 1 = {2, 3, 10, 11 }である。明らかに、A ∪ A 1 ≠ Gである。b 2をG \( A ∪ A 1 )の要素とする。例えば、b 2 = 4とする。すると、
A 2 = {4, 6, 7, 9 }です。そして、G = A ∪ A 1 ∪ A 2 です。
集合A、A 1などは、実際にはGにおけるAの剰余類であることに注意してください。