スキップしてメイン コンテンツに移動

投稿

ラベル(数学)が付いた投稿を表示しています

3進丸め Collatz 予想

Collatz 予想は、良く知られているように (C) 正整数に対し、偶数ならば2で割り、奇数ならば3倍して1を足す なる操作を繰り返すと、全ての正整数は1に到達する。というものである。この操作を (C2) 正整数を2進数として見て、1の位が0ならば1桁下位にシフトし、1の位が0でないならば1桁上位にシフトしたものを足して1の位を繰り上げて0にする と読み替える。これの3進数類似を考える。「1の位を繰り上げ」るのは丸め方の指示だと思うと、同様に全て繰り上げる方法の他に近い方に丸めるという方法もある。 (C3-ceilling) 正整数を3進数として見て、1の位が0ならば1桁下位にシフトし、1の位が0でないならば1桁上位にシフトしたものを足して1の位を繰り上げて0にする (C3-round) 正整数を3進数として見て、1の位が0ならば1桁下位にシフトし、1の位が0でないならば1桁上位にシフトしたものを足して1の位を丸めて一番近い3の倍数にする この二つの規則を考えてみよう。 C3-ceilling まずは計算しよう。 1→6→2→9→3→1 4→18→6... 5→21→7→30→10→42→14→57→19→78→26→105→35→141→47→189→63→21(ループ) 8→33→11→45→15→5... 12→4... 13→54→18... 16→66→22→90→30... 17→69→23→93→31→126→42... ... は既出の列に合流した、という意味。 1を含むループに落ち込むケースと7を含むループに落ち込むケースがあるようだ。 C3-round こちらも計算してみよう。 1→3→1 2→9→3... 4→15→5→21→7→27→9... 6→2... 8→33→11→45→15... 10→39→13→51→17→69→23→93→31→123→41→165→55→219→73→291→97→387→129→43→171→57→19→75→25→99→33... 12→4... 14→57... 16→63→21... 18→6... ここまで全て1...

Schur Number

Youtube の Numberphile チャンネルで最近出た Schur Number の動画を見た、 そこでのシューア数の定義は OEIS の "version 1" の方 Smallest number such that for any n-coloring of the integers 1, ..., a(n) no color is sum-free, that is, some color contains a triple x + y = z. だったが、 "version 2" の Largest number such that there is an n-coloring of the integers 1, ..., a(n) such that each color is sum-free, that is, no color contains a triple x + y = z. の方が解り易いからこちらで話を進める。version 2 の方が 1 小さい値になるというだけの違いがある。 動画の内容は \(a(n) = 160\) になる証明が2ペタバイトのデータ量で凄い、みたいなこと。 結局、全ての n-coloring を確認するしかないとか何とか。 ここではそういう難しい部分の話はせずに、1, 4, 13, 44, 160 という増え方が大体 3 倍を超えるぐらいというのを納得する議論をしてみたい。 よりはっきり言うと、1, 4, 13 と増える \(a_{n+1} = 3a_n + 1\) という数列が下限になることを示す。 一つ注意を述べると、n-coloring を考えるというより \(\{1,\ldots,k\}\) の和抜き(sum-free)集合による被覆を考えれば良い。被覆ができれば彩色を作れる(自由度を失うだけ)ので。 そういうわけで \(\{1\}\) の被覆を考え始めるわけだが、そちらも \(\{1\}\) で良い。 次に \(\{1, 2\}\) の被覆を考えるが \(1+1=2\) なので \(\{1,2\}\) は和抜きではない。よって \(\{1, 2\}\) の和抜き集合による被覆は \(...

トロピカル多項式

トロピカル幾何学で扱われる"トロピカル多項式"の話をしたい。 引用符を付けたのは、特別な多項式があるわけではなくただの実数係数多項式だ、と言いたいからだ。 もちろん、代入操作がトロピカル代数を使った評価になる。 以前( 多項式環はモノイド環 )、次のように書いた。 多項式環をモノイド環として見ると、「代入」によって冪乗や係数との積が取られることは全く自明ではなくなるが、説明付けることは可能だ。 いま可換環\(R\)と\(R\)代数\(S\)がある状況を考えよう。 \(R[\mathbb{N}^n]\)の元\(f\)に\(s\in S^n\)を代入するとは、 \(\mathbb{N}^n\) から \(s\) で \(S\) の積により生成されるモノイド \(\langle s \rangle\) への準同型で \(R[\mathbb{N}^n]\) を \(R[\langle s \rangle]\) に写した上で、 \(\langle s \rangle\) の元を \(S\) の元と考え、係数を \(R\) の作用と考え、形式和を \(S\) の和に読み替えて、全てを \(S\) の中で評価した結果を得ることを言う、ということになるだろう。 トロピカル代数にこれを当てはめてみたい。 と、その前にトロピカル代数を定義しておこう(一般論はよく知らないので、よく出てくる min-plus 代数というやつだけ考える)。 \(\mathbb{R}\) を実数体とし、\(\overline{\mathbb{R}}=\mathbb{R}\cup\{\infty\}\) とする。 \(\overline{\mathbb{R}}\)に次のように演算を定義する。 積\(\otimes\)を\(\mathbb{R}\)の和(もちろん\(\infty\)に何を足しても\(\infty\))とし、 和\(\oplus\)を\(\min\)とする。 積の単位元は\(0\)、和の単位元は\(\infty\)となる。 和が逆元を持たないので通常の意味で環ではないが、この点だけを除けば大体環みたいなので半環と呼ばれる。 \(\mathbb{R}\)の\(\overline{\mathbb{R}...

隣接代数と多項式環

概要: 前回 多項式の積を余代数から定義するということをしたが、その余代数の出所はどこだ、というような話。 自然数は加法モノイドであるだけでなく、順序集合である、ということが大事なのではないか。 局所有限な半順序集合(poset) \(P\) に対し、その区間(interval)を \([x, y]\) のように書く。 局所有限とは、\(x \leq y\) なる2元が何であっても \(x \leq z \leq y\) となる \(z\) は有限個しかない、という条件である。 体 \(K\) を固定して、\(P\) の区間を基底にした線型空間 \(I_P\) を考える。 \(I_P\) に余乗法(comultiplication) \(\Delta\) を \[\Delta ([x, y]) = \sum_{z \in [x, y]} [x, z]\otimes [z, y]\] で定義する。余単位 \(\epsilon\) は \([x, x]\) に対して \(1\)、それ以外で \(0\)となる関数とする。 これによって \(I_P\) は余代数となる。 この余代数に対して、双対空間を代数にするために、前回やった積の \(m_K \circ (f \otimes g) \circ \Delta\) という作り方を踏襲すると \[ (fg)([x, y]) = \sum_{z \in [x, y]}f([x, z]) g([z, y])\] という形で双対空間 \(I_P^*\) が代数になるが、これを \(P\) の隣接代数(incidence algebra)という。 ζ関数とかメビウス関数とかを定義して poset に関する議論をするために使うものだ。 そうそう、積の単位元はδ関数(1点からなる区間で 1、 それ以外で 0 となる関数)だ。 モノイドの構造と両立する順序構造を備えたものを順序モノイドという。 ねじれのない(torsion-free)消去的可換モノイドには全順序が入れられる。 多項式を考えるためには \(\mathbb{N}\) や \(\mathbb{N}^n\) などを考える。 後者に全順序が入るのも大事ではあるのだがいったん忘れて、\(\mathbb{N}...

多項式の掛け算の回りくどい定義

多項式の定義にはいくつか方法があるが、今回は「多項式は自然数から係数環への関数」というタイプの定義を扱う。 この前、Gilmer の Commutative Semigroup Rings を読み返していて、半群環の定義に差し掛かった。 R is an associative ring and that (S, *) is a semigroup. Let T be the set of functions f from S into R that are finitely nonzero, with addition and multiplication defined in T as follows. \[(f+g)(s) = f(s) + g(s)\] \[(fg)(s) = \sum_{t*u=s}f(t)g(u)\] where the symbol \(\sum_{t*u=s}\) indicates that the sum is taken over all pairs (t, u) of elements of S such that t*u=s. S を自然数の加法モノイドだと見れば多項式環の定義になる。 そこでふと思ったのは、この \(\sum_{t*u=s}\) の辺りは余乗法(comultiplication)なのでは、ということである。 群環を Hopf 代数と考えるときの余乗法は \(\Delta(g)=g\otimes g\) というタイプのものなので、それとは異なる何かということになる。 S が基底になるような線型空間 V に、余乗法を \(\Delta(s)=\sum_{t*u=s}t\otimes u\) から定める。 余単位 \(\epsilon\) は S の単位元だけ 1 に写して、ほかは 0 になるクロネッカーのデルタを使う。 これで余結合律や余単位律が成り立って V が余代数になる。 (S が半群という仮定だと単位元の存在が保証されないから、モノイドでないと通らない。 また、余代数は線型空間に余乗法を入れたものなので、係数が体になってしまった。 ここは多分言葉の問題で、環を係数にしても話は同じに進行すると思う。) 今度はこれを多項式の乗法の...

情報が物理的……つまり数学は形式主義

今回はだいぶ大風呂敷です。 そして雑です。 まずは世界から語り始めます。 世界は存在します。 と仮定しないと話が進まないので仮定します。 しかしながら、人間は(あるいはおよそ全ての生物や機械は)それをあるがままに受け取ることはできずに、常に観測によって観測値を受け取ることしかできません。 観測値は、離散的です。 言い替えると、何らかのビット列で表現される情報です。 思い切った言い方をすれば自然数です。 そして、この過程は世界の内に起こる現象なので、情報も世界と独立にあるのではなく、必ず世界の内に表現されます。 情報は物理的である(by Landauer)、ということです。 情報とは離散的に変化しうる対象の一時的な永続状態で、書き換えられる(別の状態に移行する)までは何度でも同じ状態を観測できるもの、と考えていいでしょう。 (情報についてこういう説明をしているのを見たことはないのですが、多分こんなところだと思います。) 自然数のみで表現される世界を情報世界と呼びましょう。 人間の思考もここに全て含まれます。 少なくとも言葉(や記号)を使った思考はここに含まれ、他人と共有できる思考は全て含まれるのは明らかでしょう。 およそ学問は情報世界にあります。 物理学は、世界に対峙して、観測値の間の整合的な関係を追求しています。 量子力学に至るまでは、世界と観測値はほぼ同じものに見えていましたが、観測が世界の状態を不可逆に変えてしまうということが知られた以上、世界は世界、観測値は観測値と考えざるを得なくなりました。 その上で、観測値はデタラメではなくある種の確率論にしたがって得られる、というのが量子力学の新しい観点なのでした。 数学は(ひとまず世界に関係なく)情報の間の整合的な関係を追求しています。 数学が物理学の役に立つのは仕組上必然的であって、驚くようなことではないのです。 (「整合的」とは何か、ということを考えると根本的には物理的な基盤を共有しているから、というべきかも知れません。話が膨らみすぎるので省略します。) さて、数学の基礎は情報にあります。 数学者の言い方でいえば記号と論理です。 記号は、それ自体以外に、指し示す対象を持つと考えるのが自然に思えますが、...

多項式の次数

概要: 多項式の次数はただの自然数ではないという話。 自然数は和による可換モノイドであるだけでなく、全順序の構造も持つ。 一般に、半順序の構造を持つ半群を順序半群という。 そこでは不等式(順序関係)の両辺で同じ元との半群演算を行っても順序構造が変わらない、という条件を置く。 自然数はその意味で順序半群の一種である。 多項式の次数は、自然数みたいなものである。 次数 \(n\) の多項式と次数 \(m\) の多項式を掛けるとき、次数は \(n+m\) と足し算になる。 面倒なのが \(0\) の扱いで、雑に扱うときは多項式 \(0\) の「次数は考えない」などと言ってごまかす。 ごまかさないとすれば、\(0\) は多項式の積における零元なので、次数にも零元が必要になる。 しかし、自然数には零元が存在しない(和を考えているので \(0\) は単位元であって零元ではない)。 半群に零元を添加するのはいつでも可能である。 自然数にも零元を添加しよう。 仮に \(\lozenge\) で表すことにする。 満たすべき演算規則は次の通り。 \[n + \lozenge = \lozenge + n = \lozenge\] この \(\lozenge\) を導入した自然数を \(N_\lozenge\) と表すことにする。 いま、考えていた自然数の構造は順序半群(実際は全順序モノイド)だったので、半群としての零元の導入が順序についても矛盾なく行われなければ、あまり意味がない。 自然数の順序構造は全順序だったので、\(\lozenge\) の入る余地は3通り考えられる。 最小元、最大元、中間の元である。 が、中間の元にはできないことを先に確認しよう。 \(\lozenge\) が \(a\) と \(a+1\) の中間に埋まると仮定しよう。 すなわち、 \[a \lneq \lozenge,\qquad \lozenge \lneq a+1\] ところが、左の式の両辺に \(1\) を足すと \[a + 1 \lneq \lozenge\] となり、右の式と矛盾する。 したがって、\(\lozenge\) は自然数の間に入ることはない。 次に、最小元の場合を考...

不変式論のお勧めの本はありますか?

以前、 円分体って名前がそもそもどうなんだ という記事を書いた。 雑にまとめると、円分体と呼ばれている体は有限巡回群の有理数を係数とする群環を考えれば良く、その有限巡回群の自己同型群による不変部分環が係数体に一致してしまうし、もう複素数とかそれに引きずられた名称とかいらないだろう、という話だった。 しかし群環という構造はちょっと特殊すぎて応用が利かないので枠組みを広げてみたい、というのが今回のもくろみとなる。 一番重要だったのは群が作用して不変部分環を考えられる部分だったので、有限集合とそこに作用する群があってそれをうまく環の世界に持ち込めれば良い。 そこで、多変数多項式環とその変数の入れ替えという作用を考える。 例としては、すぐに複雑になってしまうので3変数多項式環 \(K[X_1, X_2, X_3]\) と3次巡回群 \(C_3\) を取ろう。 係数は \(K\) と書いたが標数が \(0\) の体で、変数たちは \(K\) に入らないとする。 では不変部分環 \(A = K[X_1, X_2, X_3]^{C_3}\) がどうなるかをみよう。 不変式はいくつもある。 基本対称式 \[I_1 = X_1 + X_2 + X_3\] \[I_2 = X_1 X_2 + X_2 X_3 + X_3 X_1\] \[I_3 = X_1 X_2 X_3\] の他に、 \[I_4 = (X_1 - X_2)(X_2 - X_3)(X_3 - X_1)\] がある。 \(I_4\) は対称性を見易くするためにこの形で書いたが、差積 \((X_1 - X_2)(X_2 - X_3)(X_1 - X_3) = -I_4\) を選んでもいい。 さらに、 \[I_5 = X_1^2 X_2 + X_2^2 X_3 + X_3^2 X_1\] \[I_6 = X_1 X_2^2 + X_2 X_3^2 + X_3 X_1^2\] など、色々な形の式を取ることができる。 簡単に見て取れるように \(I_1\), \(I_2\), \(I_3\) から各 \(X_i\) は \(X^3 - I_1 X^2 + I_2 X - I_3 = 0\) の解である。 また \(I_4\) は2乗すると対称式になって \(I_1\) から \(I_3\) で書けるようになる(具体的な式は...

Aurifeuille 恒等式の計算方法 (Brent)

Brent による Aurifeuille 恒等式の計算方法を紹介していく。 Brent によれば Stevenhagen の方法 は互除法の係数爆発が起きるので次数の大きな円分多項式には適用できないとのことである。 Stevenhagen の方法は実質的に「\(\sqrt{k\zeta_n}\) が \(\mathbb{Q}[\zeta_n]\) に入っているならば、\(\zeta_n\) の多項式で表せる」という事実しか使わなかったが、Brent の方法ではもう少し特殊事情を考えて多項式の係数を決定していく。 あまり複雑な一般化は省いて、 平方因子を持たない \(3\) 以上の奇数 \(k\) に対し、\(n\) を \(k\equiv 1\pmod 4\) ならば \(k\)、そうでなければ \(2k\) とする。 \(\zeta = \zeta_{2n}\) とすると \(\mathbb{Q}[\zeta]\) の \(\mathbb{Q}\) 上のガロワ群は \(\left(\mathbb{Z}/2n\mathbb{Z}\right)^{\times}\) と同型である。 \(\mathbb{Q}[\zeta]\) に含まれる実2次体 \(\mathbb{Q}[\sqrt{k}]\) に対応する指数 \(2\) の部分群 \(H\) を見つけられる。 具体的には \(H=\left\{\pm a \in \left(\mathbb{Z}/2n\mathbb{Z}\right)^{\times} | 1 \leq a \leq n \land (\frac{k}{a})=1\right\}\) だ。 \[L(X) = \prod_{a\in H}(X - \zeta^a)\] を考えると実は \[L(X) = F(X^2) - \left(\frac{2}{k}\right) X\sqrt{k} G(X^2)\] となることが Schinzel によって示されているそうだ(論文を参照できていないので伝聞)。 つまり、偶数次の項を拾うと \(F\) が得られて奇数次の項を拾うと \(G\) が得られるのだ。 具体的な係数を得るには次のように考えればいい。 \(L(X)\) の係数は根が与えられているので解と係数の関係から計算できる。 そこに現れる根の対称...

Aurifeuille 恒等式の計算方法 (Stevenhagen)

この Aurifeuille シリーズは2年ほどブランクがあって3回目。 前2回は Aurifeuillian 因数分解 と Aurifeuille 恒等式 について書いた。 今回は計算方法の一つを紹介する。 簡単にするためにあまり複雑な一般化は省いて、 平方因子を持たない \(2\) 以上の整数 \(k\) に対し、\(n\) を \(k \equiv 1 \pmod{4}\) ならば \(k\)、そうでなければ \(2k\) とする。 このときある整数係数多項式 \(F\) と \(G\) により円分多項式 \(\Phi_n(X)\) を \(F(X)^2 - kX G(X)^2\) という形(Aurifeuille 恒等式)に書ける。 この \(F\) と \(G\) を求める方法を見ていきたい。 \(k=5\) の時のように整数 \(\Phi_n(k)\) の因数分解をして \(k\) 進数展開から求めるのは、いろいろ問題がある。 整数の因数分解自体が難しいし、\(k\) 以上の係数や負の係数が必要になると破綻してしまう。 一般的に使える方法は、もっと代数的な議論だ。 前に見たように \(k\zeta_n\) が \(\mathbb{Q}[\zeta_n]\) で平方数になっているというのがキーだった。 ここで紹介する Stevenhagen の方法は、\(\sqrt{k\zeta_n}\) が \(\mathbb{Q}[\zeta_n]\) に入っているならば、\(\zeta_n\) の多項式で表せるという事実に基づいている。 具体的な \(\sqrt{k\zeta_n}\) を表す \(\zeta_n\) の多項式が \[H(X) = \sum_{1 \leq a \leq 2n \land (a, 2n) =1 \land (\frac{k}{a})=1} X^{(a+1)/2}\] と与えられる。実際 \(X\) に \(\zeta_n\) を代入すると、 \(1/2\) 乗は \(\zeta_n\) を \(\zeta_{2n}\) にし、 \(+1\) の分の \(\zeta_{2n}\) で括った残りは \(\mathbb{Q}(\zeta_2n)\) から \(\mathbb{Q}(\sqrt{k})\) へのトレースになりそれ...

functools.cache とフィボナッチ

フィボナッチ数を計算する関数を再帰で素直に書く。 def fib(n): if n < 0: return n return fib(n-1) + fib(n-2) このままではものすごく遅いので、メモ化すると良い。 というのは一般常識の内だろう。 Python には 3.9 からデコレーター functools.cache があるので、簡単だ。 from functools import cache @cache def fib(n): if n < 0: return n return fib(n-1) + fib(n-2) もう少し前のバージョンを使わなければならない人も安心して欲しい。 デコレーター functools.lru_cache が 3.2 から存在していて、 lru_cache(maxsize=None) と書けば実質的に cache と同じことをしてくれる。 実は上のフィボナッチ数を計算するプログラムは functools 公式ドキュメントの lru_cache 使用例から持ってきたものだ。 話はちょっと飛ぶのだが、昔やっていた NZMATH というプロジェクトをもう一度動かそうという動きがあるとかないとか。 いや動きがあるとは聞いているのだが、実際に動き出したかどうかはまだ見えていない。 そんな NZMATH にもフィボナッチ数を計算する関数 nzmath.sequence.fibonacci があった。 FIBONACCI = {0:0, 1:1} def fibonacci(n): """ param non-negative integer n return the n-th term of the Fibonacci effect FIBONACCI[n] = fibonacci(n) """ if n < 0: raise ValueError("fibonacci(n) 0 <= n ?") if n in FIBONACCI: retu...

ピュタゴラス学派の再興

ピュタゴラス学派に帰依しよう。 「万物は数である」 (注意)この文章は、いつにも増してラフなできあがりとなっております。 21世紀的解釈 私は「万物は数である」なる標語を次のように解釈する。 「ビットから構成される世界だけが認識できる」 ビットは物理的存在である。 持続する対比可能な状態は何でもビットたり得る。 持続時間はそれをビットとして利用する存在にとって利用可能とみなすことができれば良い。 生身の人間には CPU 内部の電気信号は小さすぎるし変化が速すぎてビットとして利用可能でないが、 CPU にとってはビットとして当然利用可能だし、コンピュータというシステムを介せば人間にとってもビットとして利用可能と言って良い。 これを抽象概念と片付けてはいけない。 たとえば思考を経由せずに生物は DNA に記録されたビットを操作できるのだから。 自然数はビット列の一つの、一番自然な、解釈である。 当然ながら古代ギリシアにはビットの概念は見つかっておらず、代わりに数を取り上げたピュタゴラスの卓見には敬服するしかない。 ビットが物理的存在であると同様に自然数も物理的存在だと言って良い。 ただし、数学者のように自然数が無限に存在する、と言うためには理想化された世界モデルが必要になってくる。 言語もビットの上に構築されるシステムである。 音素や文字などの持続する対比可能な状態から組み立てられている。 人間が「認識できる」ものが言語化されず、数値化もされないことがあろうか。 学問分野間の関係 ビットの科学と言えば計算機科学だろう。 数学から20世紀に派生した、と考えられるが、そこに現れる大きな特徴は全てが離散的(ビットに基づいていると言って良い)で、なおかつ計算はビットの操作の積み重ねであることを明確にした点にある。 特に、計算量の理論は重要である。 数学を算術と幾何に分ける古い分類に従って考えてみると、算術は正にビットの理論だったと言って良い。 一方の幾何はピュタゴラスの昔からビットとの相性が悪い。 幾何をビットで表そうとすると一般に無限の操作が要求される。 たとえば実数は「直線上の地点をどれだけでも正確に指定し分けることができる」ということを実現するためのシステムと言って良いと思うのだが、一つの地点を指定するのに無限の労力(計算量)が要求される。 これ...

円分体って名前がそもそもどうなんだ

有限巡回群の群環の自己同型群およびその部分群による不変部分環を考えてみたい。 まずは実例から。 適度な複雑さがあった方が良いので、7次巡回群 \(C_7\) を考えよう。 生成元を \(g\) として、乗法的に書くことにする。 自己同型群 \(\mathrm{Aut}(C_7)\) は \((\mathbb{Z}/7\mathbb{Z})^{\times}\) なのだが、\(\Gamma_7\) と書くことにしよう。 \(\Gamma_7\) は群環 \(\mathbb{Q}C_7\) にも自然に作用しているので、不変部分環 \(\mathbb{Q}C_7\,^{\Gamma_7}\) を考えることができる。 この中には生成元 \(g\) の \(\Gamma_7\)-軌道の和、すなわち \(g + g^2 + g^3 + g^4 + g^5 + g^6\) が入る。 そしてこの元(の多項式)以外の\(\Gamma_7\)-不変な元はないので、\(\mathbb{Q}C_7\,^{\Gamma_7} = \mathbb{Q}[g + g^2 + g^3 + g^4 + g^5 + g^6]\) だと言って良い。 以降 \(g + g^2 + g^3 + g^4 + g^5 + g^6\) を \(\Omega\) と表すことにする。 \(\Omega^2\) を計算してみよう \[g \Omega = \Omega + 1 - g\] \[g^2 \Omega = g(\Omega + 1 - g) = \Omega + 1 - g^2\] 等々なので \[\Omega^2 = 6\Omega + 6 - g - g^2 - \cdots - g^6 = 5\Omega + 6\] つまり \(\Omega\) は2次方程式 \(X^2 - 5X - 6 = 0\) を満たす。 ところがこの方程式の解は \(-1\) と \(6\) であり、どちらも整数、ということは有理数体に入ってしまう。 つまり、\(\mathbb{Q}[\Omega] = \mathbb{Q}\) であった。 \(\Omega\) の値としてどちらを選ぶかが重要であることはこれからの計算で解るだろう。 次は部分群について考えてみる。 \(\Gamma_7\) の部分群は \(2\) で...

短大ホモロジー

鎖複体。 加群の系列 \(C_i\) で、 \(C_i\) から \(C_{i-1}\) への境界作用素と呼ばれる準同型 \(d_i\) があり \(d_{i-1}\circ d_{i} = 0\) を満たす。 というわけなのだが、加群の解り易い例としてベクトル空間を考えることにする。 有限次元のベクトル空間は勝手に持ってきた有限集合を基底にして考えれば良いので、 つまり有限集合の系列を考えると解り易い。 唐突だが短大の年度ごとの学生集団を考えよう。 各空間はある年の学生全員を基底とするベクトル空間で、境界作用素は進級する作用だ。 もちろん留年する人はいないと仮定しないと2年で構成員が入れ替わるという想定にならず話が進まない。 添え字は年度にすると逆向きになってしまうので、マイナスの年度とか適当に決める。 ある年の1年生が翌年全員進級して2年生になり、さらに翌年いなくなった人が卒業したこの2年生の集団だけ、という状況ならば、 この2年生の年度において、系列は完全である。 ところが、卒業する2年生以外に、1年生からドロップアウトが出ると、\(d_{i-1}\) の核が \(d_{i}\) の像より真に大きくなり、 商空間であるホモロジー群がドロップアウトした人数次元のベクトル空間になる。 これを短大ホモロジーと呼んでも悪くはないだろう。 役には立たないけど。 さて、残りは言い訳です。 単体的複体などを書物で見て学び始めた頃、まあ解りにくかった、という記憶があります。 幾何学の中では単体的複体が一番シンプルなのかも知れませんが、鎖複体だけの話があったら理解の助けになったことでしょう。 積年の恨みというか、あの頃の自分に向けて。 もう一つは、自然数を見たらベクトル空間の次元と思えという思想に立脚すれば、ただの数列だってベクトル空間の列に見えるはず、という思考です。 ベクトル空間と有限集合の行き来は圏論の最初の方で憶える見方です。 ホモロジーも何も関係なく、実は最初は漠然とそういう文脈でした。 境界作用素としての性質を満たす例にするために短大とか持ち出しましたが、もちろん、2回の変化で元の何かが消えて別の何かが残るような過程はいろいろあると思います。

多項式環はモノイド環

多項式環はモノイド環だ。 一変数多項式の場合使われているモノイドは自然数 \(\mathbb{N}\) の加法モノイドだ。 もちろん「自然数」は \(0\) 以上の整数という意味で使っている。 多変数多項式の場合のモノイドは有限生成自由可換モノイドだ。 若干大仰に響くが、要するに自然数の直積 \(\mathbb{N}^n\) に他ならない。 モノイド環と言うからには、多項式はこれらを基底とする有限形式和なのだが、 たとえば整数係数の自然数の和を見たらただの整数に見えてしまうので、 表示の上では「変数」または「不定元」と呼ばれる無意味なラベルを導入してモノイドの演算を乗法にする。 したがって自然数(の直積)上のモノイド環とラベル(の順序付き集合)の対が通常の意味での多項式環である。 今まで述べてきたものは(少なくとも変数部分は)可換な多項式だが、 世の中には非可換多項式というものを考えたい人もいる。 非可換多項式環はモノイドを有限生成自由モノイドに取り替えれば実現できる。 非可換多項式では「変数と係数は可換」と説明し始めることもあるが、 これは式の見た目としてはその通りだったとしても、モノイド環として考えた場合は無意味である。 そもそも係数と基底の並びは積ではない。 非可換の話はこれぐらいにして、可換な多項式環に戻ろう。 多項式には次数という数が付随する。 ひとまず一変数多項式での話を思い出そう。 係数が \(0\) でない項の中で、通常の自然数の大小の意味で最大の基底をその多項式の次数という。 このように定義すると一つだけ問題があって、それは零元の扱いである。 零元には係数が \(0\) でない項が無い。 モノイド環の積の定義から、多項式の積の次数が(係数の積が消えてしまわない限り)次数の和になる。 これを零元でも満たすようにするためにはその次数を自然数の加法に対する零元にするしかない。 が、そんなものはないので添加する。 一般には \(-\infty\) で書かれる元を \(\mathbb{N}\) に対する零元として添加したモノイド \(\mathbb{N}_{-\infty}\) 、それが次数の値域となる。 多変数の場合も同様である。 元々の基底である有限生成可換モノイドに零元を添加したモノイドが次数の値域となる。 全次数といって和で代表する場合も...

形式和の定義を見たことがありますか?

ないかもしれないな。まあ、あれだよ。適当な環と集合をもってきて、環の元で重みをつけて集合の元を足し合わせたものだよ。 — 重みとは何でしょう? 足し合わせるとは? 「重み」という言葉には意味は無いよ。環の元と集合の元とを対にして扱う、という気持ちだな。後なんだっけ、「足し合わせる」? 書き並べるに当たって、区切り記号が + ってだけだよ。 — 本当にそれだけですか? ん? — それだけなら、コンマで区切って並べても良いわけじゃないですか。 意外と鋭いね。そうだな、足し算と思いたい事情もなくはない。一つめは、並べる順番に意味が無いということだな。違う順番に書き並べても違うものとは思わないことにしておきたい。もう一つは、同類項をまとめてしまいたい。 — 同類項。 集合の同じ元を2回使う場面があったら、その足し算は係数の環の方に寄せてしまって一つにまとめられるだろう。だから、集合の同じ元を使った項をまとめられる項という意味で同類項と言うわけだ。 — 係数という言葉が出てきましたが… 重み重み。 — はい。その重みですが、今のところ環の元である必要性は無いように思えます。足し算しか… いやそれはさあ、君。重箱の隅ってものだろ。現実的な使用に即して話しているわけだからさ。デフォルトは整数だし良く使われるのはむしろ体だったりするのに、何だ、アーベル群で良いだろうっていうことか。 — いけないでしょうか。 うーん。いけなくはない。いけなくはなさそうだが…

現象

数学の対象は存在ではなく現象である。 というフレーズを思いついた。 1 という対象はどこにも存在しない。 整数という対象は存在しない。 整数の論理的条件に合致する現象について考えることしかできない。 最近、ホモトピー型理論 HoTT (Homotopy Type Theory) という理論を聞きかじった。 そこに univalence axiom (テキトーに訳すと「統価公理」)という要請がある。 ざっくりした理解で言えば、同じ振る舞いをする型は同じ型ということにする、という原理である。 実装の違いに依らず整数は整数、というような説明をされる。 この理論を計算機科学の文脈で捉えるだけなら実装と言っておけば良いのだが、 集合論に代わる基礎論の文脈からはこれをどう考えるのだろう、とどこか引っかかっていた。 整数のように振る舞う対象は整数である。 そう考えると、全ての自由巡回群は整数である。 集合論的には別物に見えても、同じ振る舞いしかしないのだから。 つまり、整数について語ることは個別の存在について語っていると言うより、整数という現象について語っているのだ。 これがたどり着いた結論である。 数学では存在量化子という記号を使って存在について語っているように見える。 しかし、現象についてしか語っていないとすれば、この記号は別様に解釈しなければならない。 古典論理では、「外れることのない現象の予言」と見なせるだろう。 外れることがないのだからそれに基づいてさらなる予言を積み重ねることが正当化されるという立場。 しかし直観主義論理では「成就への筋道が示された現象の予言」しか受け入れない。 外れないのは必ず当たることとは別だという立場である。 プラトニズムのお花畑から距離を置くことができたかな。

Aurifeuille 恒等式

前回 、概要を紹介した Aurifeuille 因数分解。 その最後に円分多項式が \(F(X)^2-kX^qG(X)^2\) という形に分解される、というところまで書いた。 今回は、そちらをメインに書いていこうと思う。 と、その前に、タイトルについて補足しておこう。 前回のタイトルが「Aurifeuillian 因数分解」だったのだが、慣習として人名の形容詞形は日本語の中では使わないことを思い出して — Hermitian operator はエルミート演算子、Cartesian coordinates はデカルト座標、のように — 今回は「Aurifeuille 恒等式」というタイトルにした。 最初に記号をまとめておく。 \(k\) を無平方な(素因数の二乗では割り切れない)正整数とする。 \(d\) を \(\mathbb{Q}(\sqrt{k})\) の判別式とする。 \(k \equiv 1 \pmod 4\) ならば \(d=k\)、そうでなければ \(d=4 k\) である。 \(n\) は奇数であって \(d\) で割り切れるか、偶数であって \(d\) では割り切れないが \(2\) 倍すれば \(d\) で割り切れる正整数とする。 つまり \(k \equiv 1 \pmod 4\) ならば \(k\) の奇数倍、そうでなければ \(2 k\) の奇数倍である。 \(q\) はほとんど使わないが、\(q = \prod_{p|n,p\neq 2}p^{v_p(n) - 1}\) とする。 \(n\) を無平方に限っておけば \(q=1\) である。 さて、いろいろ調べてみると、円分多項式に対する恒等式として似たようなものが2種類ある。 1つは主に Gauss の名に紐付けられる、 \[4\Phi_n(X) = A(X)^2-\epsilon k B(X)^2\] という形の恒等式、もう1つが主に Aurifeuille の名に紐付けられる \[\Phi_n(X) = F(X)^2 - k X^q G(X)^2\] という形の恒等式である。 どちらも円分体とその部分体である2次体との関係を利用するのだが、やり方が少し異なる。 Gauss の方は、円分多項式の根を冪が平方剰余のものと平方非剰余のものに分ける。 \[\Phi(X) = \pr...

Aurifeuillian 因数分解

ちょっと特殊な因数分解の話。 知っている人にとっては何ら目新しい話ではないのだが、日本語の情報をほとんど見掛けないので書いてみる。 たとえば、こういうぱっと見には不思議な因数分解である: \[16385 = 2^{14}+1 = (2^7-2^4+1)(2^7+2^4+1) = 113 \times 145\] Aurifeuille ( 1 )という19世紀フランスの数学者が最初にこの手の因数分解に言及したとされることから名前がつけられているらしい。 ちなみにこうして分解されるときの小さい方の因子を L、大きい方を M と呼ぶ慣習がある。 因数分解できると言われてみれば確かに、\(2^7+1\) を2乗して、左辺と比べて過剰になった \(2\times 2^7 = 2^8\) を引くと、ちょうどうまく平方の差の形になって、和と差の積に分解できる。 また、簡単な一般化として、\(2^7\) の代わりに \(2^{2k-1}\) つまり \(2\) の奇数乗を使っても同じような因数分解が得られるのも見て取れるだろう。 さらに言えば、\(2 n^2\) を使っても、同じような因数分解が得られる( 3 )。 それを踏まえて振り返ってみると、左辺は実は \(X^2+1\) という多項式に \(2^7\) を代入していたのだ。 この多項式 \(X^2+1\) は4次円分多項式 \(\Phi_4(X)\) と呼ばれている。 円分多項式はこのブログ頻出だが一応おさらいしておく。 \(1\) の原始 \(d\) 乗根全てを根に持つ多項式を \(d\)次円分多項式といい \(\Phi_d\) と書く。 だからたとえば、上の4次円分多項式 \(\Phi_d(X)\) は \(1\) の原始4乗根すなわち虚数単位 \(i\) とその共役 \(-i\) が根である。 式で書けば \(1\) の原始 \(d\) 乗根の一つを \(\zeta_d\) として \[\Phi_d(X) = \prod (X - \zeta_d^k)\] である、ただし \(k\) は \(d\) 以下の \(d\) と互いに素な自然数を走る。 話を戻すと、Aurifeuillian 因数分解と呼ばれるものは、円分多項式に特別な数を代入したときに現れる因数分解なのである。 今後代入される数は \(a\)...

Collatz "主要項" 予想 (3752)

以前書いた Collatz "主要項" 予想。 何だったかというと、 \(\DeclareMathOperator{\ceil}{ceil}\) \[f(x) = x - (-1)^{\ceil(x)}\frac{x}{2}\] という関数を繰り返し適用すると、任意の正実数から出発してそのうち \(1\) 未満になる、 と個人的に予想したもの。 言いっぱなしも良くないので、プログラムを書いてみた、というのが前回までのお話。 せっかくプログラムを書いたので、計算させてみる。 前回も実際 \(200\) 以下については確かめたのであった。 その計算を細々と続けていたのだが、 10日ほど前に始めた区間 \((3752, 3753]\) の計算が収束しないのである。 もしかして、成立しないのだろうか。 だとすればどのように? 成り立つ前提でプログラムを書いたので、止まらない場合の解析は難しい。 とりあえずメモリー使用量はじわじわと上昇する感じなので、いきなり無限大に向かって発散して行ってしまっているわけではなさそう。