自然数から整数を作る、グロタンディーク

整数 - Wikipedia

  • 非可換幾何をやっていると、順序群を整数に対応付ける話が出てくる
  • その際、非負整数から整数を構成する、という話が出てくる
  • このようにして出来上がった、整数と非負整数のペアによって、整数全体の順序が定まるという話がある
  • そんな話が、Wikipedia

グロタンディーク群 - Wikipedia
では「グロタンディーク群(英: Grothendieck group)とは、可換なモノイドから最も普遍的な方法で構成されるアーベル群である」と書かれ、それが"自然数から整数を構成する標準的な方法"の一般化として説明されている

  • 冒頭のリンクのWikipedia記事「整数」の「厳密な構成」で説明されている通り、まず、非負整数(自然数)を用意する
  • これは、加法は閉じているが減法は閉じていない
  • 今、非負整数のペアを考え、(a,b) \sim (c,d)なる同値関係をa+d=b+cで定める
    • 例えば、a=1,b=2,c=2,d=3a+d=1+3=4,b+c=2+2=4なので、(a,b) \sim (c,d)となる
  • こうすると、非負整数の二次元空間のグリッド点(非負整数のペア(x1,x2))について、たとえば、(1,2)という格子点と(2,3)という格子点とを通る直線上の格子点が同一視される
  • y = x + kなる直線が同値類を表す
  • 各同値類の代表グリッド点を(m+1,1),(1,m+1)として取ると、(m+1,1)は正整数、(1,m+1)は負整数のように振る舞う

ペンローズタイリングからの非可換幾何

  • この記事では、ペンローズタイリングを例に、非可換幾何の道具立ての流れをなるべく簡潔に示し、その各ステップを理解するための周辺知識は後回しにすることを目指す
  • ペンローズタイリングは、あるタイプのタイリング(敷き詰め)パターンの集合。幾何学的でとらえどころがない
  • 順次、異なる数学対象に対応付けて行き、特徴を取り出しやすくする(数学対象を切り替えて計算しやすくして特徴づける。この計算しやすい特徴づけ〜同型判定の道具を不変量という(不変量 - Wikipedia)
  • その数学対象の切り替えは以下のようになる
  • ペンローズタイリングパターンを01無限列の同値類に対応付ける。タイリングの集合 → 01無限列同値類の集合
  • 同値類集合という空間を考える代わりに、その上の代数(の構造)を考える。無限次元複素行列であって、ある制約の入ったものがその代数。01無限列同値類の集合 → C*-代数=ある制約を持つ無限次元複素行列集合(無限次元複素行列集合の部分集合であって、C*-代数になっているもの)
  • C*-代数〜制約付き無限次元複素行列集合〜の空間を順序群に対応付ける
    • この対応付けに、K-理論を用いている
    • K-理論は、大きな行列の集合が空間になっているようなときに、その空間を分類(特徴づけ)る理論。より扱いやすい数学対象に対応付ける方法を提供する理論。異なる数学対象に対応付けるものが圏論では「関手」なので、「K-理論は関手の族を構成する」と説明されるK理論 - Wikipedia
  • 順序群は群そのものと、その正錐とのペアで定まる
  • 無限次元複素正方行列の部分集合(C*-代数)が、有限なそれ(有限次元複素正方行列の部分集合)の極限として定められたので、有限な順序群の極限としてとる
    • 無限次元極限を取る操作には、2つの低次元複素正方行列(2つの部分代数)の直和を取るので、極限としての無限次元複素正方行列の部分集合(無限次元C*-代数)は、2つの低次の複素正方行列(2つの部分代数)がそれぞれ対応する順序群の直和として表現される
  • 有限次元の順序群は、群そのものが整数に対応付けられ、正錐が非負整数に対応付けられる
  • 順序群のペアとして構成する順序群は、群そのものに対応する「整数の直和」の「極限」と、「非負整数の直和」の「極限」として特徴づけられる
  • ペンローズタイリングの場合、対応する順序群の群そのものに対応する「整数の直和」の「極限」は「整数の直和」となり、「非負整数の直和」の「極限」は、\{(a,b) \ in \mathcal{Z}^2; (1+\sqrt{5})/2 a + b \ge 0\}になる
    • これはどういうことかというと、2次元格子点(a,b)に、行列\begin{pmatrix}1 1 \\ 1 0 \end{pmatrix}を次々に掛けていくと、(a,b) -> (a1,b1) -> (a2,b2) ...と格子点が推移していく。\begin{pmatrix}1 1 \\ 1 0 \end{pmatrix}固有値黄金比rが現れるのだが、平面上の点(a,b)y = - r xより上にある点はy=1/r x上であって、x>0,y>0の点に収束する。y=-rxより下にある点は、同じ直線のx<0,y<0の点に収束する。その線上の点は、原点に向かって振動しながら収束していく。極限にて\mathcal{Z}^ \oplus \mathcal{Z}^+なる点に収束するようなオリジナルの格子点(a,b)は、y=-rxより上にある格子点であって、これが「極限としての非負整数直和」の条件。ちなみに、原点に「収束する点が、y=-rxの直線上を原点をまたいで振動しながら収束するので、n=1,2,...のいずれにおいても、非負整数直和になるようなオリジナル格子点はもう少し制約が強そうだ。。。その条件が\{(a,b) \in \mathcal{Z}^2 | 0 \le rx + y \le r+1\}なのかとも思ったが違いそうだ。この両側を不等式で挟んだ制約はhttps://www224.math.arizona.edu/~ura-reports/043/McMurdie.Christopher/Final.pdfこのPDFのp22の記載による
  • ペンローズタイリングの集合が、「整数の直和」と\{(a,b) \ in \mathcal{Z}^2; (1+\sqrt{5})/2 a + b \ge 0\}とのペアとしての順序群に対応付けられた
  • この最後の順序群の情報は、ペンローズタイリングの集合を切り換えて得られた数学対象であって、同型判定する能力があり計算が簡単なので、不変量と言える
  • W = \{\mathbf{w} =  (w_0,...,w_\infty) , w_i \in  \{0,1\}\}
    • 0,1で作る無限列の集合
  • K =\{\mathbf{z} = (z_0,...,z_\infty) \in W |  \forall i  z_i  z_{i+1} \in  \{00,01,10\}\}
    • 1の後は必ず0、というルールでできるWの部分集合K
  • R = \{(\mathbf{z},\mathbf{z'}) | \mathbf{z},\mathbf{z'} \in K \exists z_j = z'_j \forall j \ge n\}
    • Kの2要素の同一視ルール
  • X = K/R
    • Rという同一視ルールによるKの商空間がX
  • t, t' \in x \Longleftrightarrow (z^t,z^{t'}) \in R
    • x \in Xは(無限に広がる)ペンローズタイリングの1パターン
    • t \in xペンローズタイリングの1パターンxのタイルの一枚
    • tにはz^tが対応する
    • zが決まると(そのタイルを初期タイルとして)ペンローズタイリングが作れる
    • (z,z') \in Rのとき、別の初期タイルからz'によりペンローズタイリングが作られるが、それは同じタイリングになる
  • A := C*-algebra on X
  • a = (a_{z,z'}) \in M(\mathcal{C})_\infty, a \in A
    • Aの要素aは無限サイズ正方行列表現を持つ。その行列の行は(すべての)z、列は(すべての)z'、要素は(z,z')というペアによって番地指定される
  • \mathbf{\xi} = a(x) \mathbf{\zeta} = \begin{pmatrix} \xi_1 \\ \xi_2 \\ ... \\ \xi_\infty \end{pmatrix} = (\xi_z) = \sum_{z'} a_{z,z'} \zeta_{z'}, \forall \mathbf{\xi},\mathbf{\zeta} \in l^2_{x}
    • aはあるxを決めると、xに含まれる同一視zたちが張る無限次元ヒルベルト空間l^2_{x}のベクトル\mathbf{\zeta}に作用する作用素a(x)となる
    • a(x) \in L(l^2_x), \forall x \in X... ヒルベルト空間上の有界作用素全体がバナッハ空間をなすので、a(x)はl^2(x)というヒルベルト空間を考えたときにL(l^2_x)というバナッハ空間にある、という意味
    • (\lambda a + \mu b)(x) = \lambda a(x) + \mu b(x)
    • (ab)(x) = a(x) b(x)
    • \forall a,b \in A, \lambda,\mu \in \mathcal{C}, x \in X
  • K = K_\infty = \lim_{n \to \infty; \text{projective limit}} K_n
    • K_n =\{\mathbf{z} = (z_0,...,z_n) |  \forall i  z_i  z_{i+1} \in  \{00,01,10\}\}:長さn+1の有限列の集合
    • K_{n+1} \to K_nというprojectionがある
  • 1. いろいろなペンローズタイリングが点として存在する空間Xを作る
  • 2. 空間の上に関数を乗せて、その変化具合を考えるのが常道なのだが、このXは変な空間になっているので、Xに乗せた空間の様子表す関数も変。この関数(空間X上の点xを取る作用素)a,b,がC*-代数Aになっている(a,b \in A)
  • 3. a,b,...\in Aは無限次元正方複素行列の形をしている(複素行列はC*-代数の好例)。ただし、Xの構造・制約を反映して、一定の制約のある行列になっている。行列の行と列とは、Kの要素になっているので、行列の行zと列z’とに対応する要素をa_{z,z'}と書く。i行 j列の成分を使ってm = (m_{i,j})と行列を表すように、zに相当する行、z'に相当する列の成分を使ってa = (a_{z,z'})と書く
  • 4. Aの順序群(K_0(A),K_0^+(A))について考えたい。Aは無限サイズ行列の代数だが、それを考えるにあたって、有限版を構成し、その極限を考えるのだが、行列サイズを大きくするときに、z,z'の長さを1ずつ大きくすると、行列サイズがフィボナッチ数列的に大きくなる。今、有限長で考えると、Aの有限サイズ版A_nのサイズはfib_{n+2} \times fib_{n+2} = (fib_{n+1}+fib_{n}) \times (fib_{n+1} + fib_{n}); fib_0=1,fib_1=1となる。そして、それは、M(C)_{fib_{n+1}} \oplus M(C)_{fib_{n}}のように、2つの正方行列の直和の形(2つの正方行列を対角に並べたブロック対角行列)になる。これは、ある有限サイズのC*-代数A_nが2つの行列代数の直和になっていることを意味する
  • 5. C*-代数Aには不変量を計算することができて、色々な定義の分類を適用することができる。その不変量計算のやり方に、G. Elliottの方法があり、そこではAに順序群を見出して不変量を得る。この順序群をK_0(A)と書く。不変量を使うのがK-理論の基本的アプローチであるが、そのK-理論の道具がこのK_0(A)である。ここにvon Neumann環と射影作用素・射影行列が絡む
  • 6. 順序群は(Z,Z^+)という群Zとその部分群Z^+とのペアとして「順序構造を強調して」表現できる。Z^+とは、Zの要素のうち、非負に相当する要素の部分集合のことである。この部分集合を正錐という。この表現にならって(K_0(A),K_0^+(A))がAからできる順序群をその順序構造を強調した記載法である
  • 7. 順序群を考えるときには、Aの要素ペアに順序が定まる必要がある。2つの正方行列に順序を入れるときにProjection(射影行列)が登場する
  • 8. 代数A_nは2つの行列代数の直和になっているが、それぞれの行列代数は順序群になっているので、それぞれの行列代数を整数Zに対応付けることができるから(準同型、かな?)、A_nに対応する順序群はK_0(A_n)=Z \oplus ZのようにZの直和が対応する。正錐K_0(A_n)の方には同様にK_0(A_n) = Z^+ \oplus Z^+が対応する
  • 9. nの極限を取りたい。K_0(A)の方はK_0(A_n)=Z^2の極限がZ^2になるが、K_0^+(A)の方は、K_0^+(A_n)=Z^+ \oplus Z^+の極限がZ^+ \oplus Z^+にならず、K_0^+(A) =   \{(a,b) \in Z^2; (1+\sqrt{5}+2)a +b \ge 0\}になる
  • 上記、9. を中心に未消化だが、ひとまず、メモしておく
  • 以下、細かいことをメモしていきたい。。。
  • {0,1}を要素とする無限長列の集合F={00000...,1000000,...}を考える
  • Fに制約を入れて、Kという無限長列の集合を作る
    • その制約とは、1の次は0、というもの。したがって、0110....  \notin K
  • Kの要素に次のような同一視ルールRを入れて、その商空間X=K/Rを考える
    • 2つの無限長01列が、n番目以降、すべて同じであるなら、その2つの無限長列は同一視する
    • z \sim z' \Longleftrightarrow \exists n \text{ such that } z_j = z'_j \; \forall j \ge n
    • R = \{(z,z') _in K \times K ; \exists n \text{ such that } z_j = z'_j \; \forall j \ge n \} と同一視ルールを書く
    • 同一視される無限長列は無限個ある。それらをZ=\{z_1,...,\}とし、Zの2つの要素を考えるときは、z,z'のように書くことにする
  • この商空間X=K/Rの要素の一つ一つが、色々なペンローズタイリングの一つ一つを表す(一つ一つのペンローズタイリングは2種類のタイルで敷き詰められており、無限に広がっているパターンのこと)

python cairo でペンローズタイリングお絵描き

  • cairoというお絵描き仕様がある
    • pythonにもあって、それ以外でも使われている
    • 特徴は、ベクター仕様でのお絵描きであること。ラスター画像ではないということ
    • 画面をピクセルに分けて、そこを何色にするか、というラスター画像では、拡縮をしたときにいちいち滑らかさの調整をしないといけないが、ベクター仕様では、そうならない
    • SVGとかがその方法をとっているが、それ以外にもPDFなどでも
    • 例えば線分の指定では、始点と終点とを指定することでベクトルを与える。そのうえで、そのベクトルは、座標変換(平行移動、回転、拡縮など)をして、描図オブジェクトすべてを一括変換することもできる
    • こちらにその解説がある

magazine.rubyist.net

  • さて。このcairoだが、pythonで使おうとおもったら、インストールに難航した
    • PC環境に、所謂pythonが入っていて、Anacondaも別途に入れてあって

、sagemathのダウンロードによりそれ専用のpython環境もあって、そのどこでcairoが使いたいのかが自分でもぼんやりとしていたことが難航の原因

    • pipは普通のpython環境、condaを使ったパッケージインストールはanaconda環境、sagemathのpython環境はsageでのpipを使わないといけない

www.python.jp

    • また、sagemath下でのpythonパッケージ導入は、めんどうくさいらしく、結局pycairoについては断念。。。
    • 参考サイトを一応、挙げておく

sonickun.hatenablog.com

ask.sagemath.org

  • 基本的には、pipもcondaも環境を最新版に上げ続けるのが吉。pythonも更新しておくほうが良い
    • Anacondaは、面倒くさいので一旦全部削除して入れ直すほうが速そう

Anacondaのアンインストールからの再インストール | Udemyのセールを活用してほしかったあのスキルを手に入れよう!【非公式】

  • その他としてはjupyter notebook でcairoの画像をinlineに出すにはさらに工夫が必要
    • こちらのサイトを参考に、cairoが作ったベクター形式の画像の元情報を、pngファイルに書き出す関数を作った上で、inline にださせるという作戦

qiita.com

  • これらを経て作ったjupyter notebookが以下:

github.com

sagemathをMacBookに入れる、Jupyterで立ち上げる

-
hackmd.io

  • こちらのサイトを参考に、sagemathのサイトに行き、ダウンロードサイトに進む。日本、RIKEN、intelCPUに進むとここに来る

ftp.riken.jp

  • 一番上の圧縮ファイルをダウンロードする(それなりに時間がかかる)
  • ダウンロードしたら解凍する
  • 解凍したら、そのフォルダ SageMathの下に色々あるのでそこに行って
./sage
  • と叩くと、インターラクティブな処理ができるようになる(ターミナルで)
./sage -n jupyter
  • と叩くとJupyter notebookを立ち上げるブラウザが出て、そこにはすでにsagemathをカーネルとして選べるようになっている
  • sagemathでのpython package
    • sagemathの世界はpythonをコンピュータ上のほかのところとは別に持って管理しているので。。。
sh sage
  • と、sage置き場にて、sage用のシェルを立ち上げた上で pip install hogeする

sonickun.hatenablog.com

ペンローズタイリングから非可換幾何へ

  • こちらの記事ペンローズタイリングを0,1の列で表現すること、個々のペンローズタイリングには、たくさんの0,1列が対応するので、ペンローズタイリングのすべてを納めた空間は、0,1の列全体の空間を、「同一のタイリングに対応する0,1列を同一視」した空間とみることができることについて、自分なりに書いた
  • ただし、0,1の列ではあるが、まったく自由ではなく、0の次は必ず1という制約が入ることは、ペンローズタイリングのピースの関係から要請されている
  • A. Connesの非可換幾何学入門

による、ペンローズタイリングを C*代数に持ち込む部分を読んで、なんとか、何を言っているのかを理解したい

  • C*代数では複素行列がその良い例になっている(*演算は共役複素数とかそういう計算を抽象化したもの、みたいな意味で)
  • また、「作用素」として考えるとき、無限次元行列を考えるが、この無限次元が、ペンローズタイリングの0,1列の無限長と相性がよいのだろう
  • また、\begin{pmatrix}1,1\\1,0\end{pmatrix}という行列が登場する
  • \begin{pmatrix}1,1\\1,0 \end{pmatrix} \begin{pmatrix} A_n \\ B_n \end{pmatrix} = \begin{pmatrix} A_n + B_n \\ A_n \end{pmatrix} = \begin{pmatrix} A_{n+1} \\ B_{n+1} \end{pmatrix}という式を見よう
  • これは、ペンローズタイリングで、タイルのピースをだんだん大きくするべく、辺を除去する作業でのピースの関係によく似ている。A_nB_nとを合併して新たなA_{n+1}とし、残るA_nは、B_{n+1}に見直す、というのは、まさに、Kite and Dartのタイリングの逐次処理と同じである
  • この2x2行列の固有値の1つは\frac{1+\sqrt{5}}{2}。。。黄金数である。
  • これが、同書の説明で、(いきなり)黄金数が出てくる理由らしい
> m
     [,1] [,2]
[1,]    1    1
[2,]    1    0
> eigen(m)
eigen() decomposition
$values
[1]  1.618034 -0.618034

$vectors
           [,1]       [,2]
[1,] -0.8506508  0.5257311
[2,] -0.5257311 -0.8506508

> (1+sqrt(5))/2
[1] 1.618034

ペンローズタイリングを数列表現すること、そして非可換幾何へ

  • ペンローズタイリングというのは、こういうタイリングのこと

ja.wikipedia.org

  • 規則的なようで微妙に不規則なタイリング
  • 不規則なので、同じか違うかを考えたくなる
  • 異同を考えたくなるが、図のままだと扱いにくい
  • 数列に対応付けられるよ、という話がある
  • 数列に対応付けできれば、異同の評価は楽になる
  • ペンローズタイリングにも色々あるので、Kite-and-dart (P2)というパターンのを考える

https://upload.wikimedia.org/wikipedia/commons/2/26/Penrose_vertex_figures.svg(https://upload.wikimedia.org/wikipedia/commons/2/26/Penrose_vertex_figures.svg)

  • 説明する(資料は

https://alainconnes.org/wp-content/uploads/book94bigpdf.pdf
の179頁"Appendix D: Penrose Tilings"を。

  • Kite は鈍角三角形、Dartは鋭角三角形
  • あるタイリング状態に着目すると、Kiteの方が面積が大きくDartの方が面積が小さいときもある。上記の図ではすべてDartの方が面積が大きいパターンになっている
  • タイリングパターンをよく見ると、DartがKiteより大きいときには、DartとKiteが1つずつ貼り合わさって、一回り大きいKiteができていることに気づく。逆に、KiteよりDartが大きいときには、DartとKiteが1つずつ貼り合わさって、一回り大きいDartgaできていることに気づく
  • そのような貼り合わせの辺を消し去ると、タイリングパターンが変わる。より具体的には、DartがKiteより大きいときには、一回り大きいKiteと同じ大きさのままのDartで出来たパターンになる。ここで注意するべきは、新たにできたパターンでは、大きい方がKiteに変わっていることである。KiteがDartより大きいときには、一回り大きいDartと同じ大きさのままのKiteとのパターンとなる。こちらもまた、大きい方がKiteからDartに入れ替わっていることに注意する
  • もう一度、この貼り合わせ辺を消す作業をすると、(Dart > Kite) ----> (Kite' > Dart) ---> (Dart' > Kite')のように変化し、大きい方が元に戻りつつ、DartもKiteも一回りずつ大きくなる
  • さて、今、あるタイリングに着目し、その一つの三角形タイルを選ぶ。そして、この貼り合わせ辺の除去作業を繰り返すことにする。タイリングは無限に広がっているものとすれば、無限に作業が繰り返せる
  • 最初に着目した三角形は、DartかKiteになり、その後も、その三角形は、何かしらの三角形の一部になっている。各ステップで、その三角形は、DartかKiteなわけだが、「大きい方か小さい方か」という見方もできる。この大きい方か小さい方かのシークエンスが作れる。「大→大→小→大→。。。」のような
  • ここで、タイリングの改変ルールから「小」の次は必ず「大」になっていることが知られている
  • 「大、小」のシークエンスは面倒くさいので、「大=1」「小=0」にすれば、"11010111101010111..."のような数列ができる。0の次は必ず1で、1の次は0か1
  • 今、ある大きさのDart(またはKite)が分割されて、細かいDart,Kiteでタイリングされているとする。その細かいタイルの2つを取り出すと、それらに対応する2つの数列はもちろん違うが、2つの小さな三角形が、ある一つの三角形の一部になったら、それ以降は処理を繰り返しても、出現する配列は同一になることがわかる
    • z \sim z'(2つの数列が同一視する)とは \exists n, \forall j \ge n  z_j = z'_j と言うことと同じ、と
  • このような間柄にある、二つの数列は、「元々、同じペンローズタイリングの異なる2つの小三角形」由来であるという意味で、「同じペンローズタイリング」を体現した数列であると言える。これをequivalentな関係とすれば(同一視 )すれば、無限に作れる01数列(ただし0の次は1)が、この同一視の下で分類され、その分類の1つ1つが、あるペンローズタイリングに対応する
  • したがって、01無限数列(ただし0の次は1)という数列の集合を、この同一視ルールで商を取ったものが、すべてのペンローズタイリングの空間構造を表している…と言う
  • ほほー、ペンローズタイリングが配置された空間は、無限01数列を、その同一視ルールで商を取ったもの、と定義できた
  • が、ここで、次のような問題が生じる
  • 数列が同じペンローズタイリングに属するか否かは、有限長の比較ではわからない、ということである
  • そして、この結果、ペンローズタイリング空間のある1点(とあるペンローズタイリング)と、ありとあらゆるペンローズタイリングとは、有限長数列で判断しようとする限り区別ができないということになる
  • 01配列を、普通の意味で、空間に配置して、それが隣同士になっているかどうか、というような遠近関係・位相関係は役立たずであると言うことになるらしい
  • そして、このような対象を扱う工夫として非可換幾何が出てくるらしい

座標環の「座標」

  • 座標環の「座標」ってどうして「座標」って言うの?と言う質問がMath Exchangeにあった
  • -

math.stackexchange.com

  • その中の回答を読むと、こういうことらしい
  • 座標環を考えるときには、それをもたらす代数多様体がある
  • 代数多様体が連立多項式の零点集合なので、例えば、f_1(x_1,...,x_n)=0,f_2(x_1,...,x_n)=0,...,f_k(x_1,...,x_n)=0のようにk個の関数で与えられているとする。
  • この代数多様体イデアルIが、まさにこのk個の関数f_i(x_1,...)だったとすると、座標感はC(x) / Iと表されるが、これは、F(x_1,...,x_n) = \sum_i \prod_j \alpha_j^{(i)}  f_j(x)^{b_j^{(i)}}のような関数の集まりのこと
  • 言い換えると、イデアルを成り立たせている関数(素イデアル)を変数と見た、多項式になっている。ただし、関数となっている変数の係数が、多項式である、というように、この世界では、変数も多項式なら、係数も多項式になっている。なぜなら、「多項式の環」を考えているから
  • 多項式ではあるが、しょせんは数とか、数を代弁している代数変数に過ぎないわけだから、k個の変数に対応する関数達は、座標軸を定めているとみることもできる
  • つまり、k個の変数を座標軸として、それに係数がかかっていれば、その係数は、その座標軸の値がいくつになるのか、ということを表すという意味で「座標」のことになる、とそういう意味
  • ちなみに、全多項式からなる座標環は、f_i(x) = x_iという関数を「座標軸」とするような座標環になっていて、このような座標環では、多項式全体が座標環の要素になっている