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

投稿

2020の投稿を表示しています

コメントの文脈

正しいコメント文とは何かを考えていた。 正直に言うと、コメント文をコードから追い出して別レイヤーに配置する方法を考えていた。 それにはまず正しいコメント文のあり方を把握しなければならない。 コメント文は色々と文句を言われるが、結局実行に影響を与えないので、捨て置かれているのだと思う。 文句はたとえば、多すぎる、少なすぎる、コードの実態と合わなくなる、何に対するコメントか不明確、などだ。 最後の文句の解消を考えよう。 まともなコメントであれば、それは何らかの対象に関するもののはずだ。 たとえば変数の値に対する、特定の値しか使わないとか、単位は何だとか、といった注釈。 たとえば関数の引数や型に関する説明、処理内容や、アルゴリズムの選択について。 たとえばコードブロックの役割や、不変量の説明。 したがって、コメントはその説明される対象と同じスコープを持つと思って良い。 スコープを持つものだとすれば、オブジェクトであればよいだろう。 ただ、コメントされる対象と一緒に初期化されるだけのオブジェクトでは、 コードブロック特にコメントされる対象が単に意味的なまとまりとしか言えない数行のコードブロックの場合に、不明確である。 従って、逆にコメントがスコープを作り出すほどの力を持っていた方が適切とも言える。 ここから話は Python に限定される細道に入る。 他の言語では変数スコープの規則が違って、やりにくいかもしれない。 という注意を先にしておこう。 Python ではコンテキストマネージャーという仕組を使うことで、with 文により好き勝手にスコープを切れる。 このとき、変数のスコープはあくまで関数単位(関数の外にあるものはモジュール単位)になるので、このスコープはあくまでコンテキストマネージャーによって提供されるコンテキストの話である。 コメントをコンテキストマネージャーにすることで、コメントの影響範囲は明確化できる。 たとえば、 # A をする a = A() # B をする if a に関する条件: B(a, 追加の引数) else: B(a, 違う引数) のようなコードが、 with Comment("A をする"): a = A() with Comment("B をする"): if a ...

ピュタゴラス学派の再興

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

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

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

庭のシダ

庭に生えている植物は樹木以外はほぼ勝手に生えているように思っていたが、本当は違うのかも知れない。 と思い始めたのは、薬味のための茗荷、大葉、三つ葉などが生えている不自然さからだった。 昔は生えていた(たしか枯れてしまった)山椒もアゲハチョウの餌と思っていたが木ノ芽として使えるものだし、雑草然と生えてもいた薄荷も何か使う意図があったのかも知れない。 などと考えたとき、シダ植物の類いも実は人為的に植えられた可能性がないとは言い切れない。 いかにもシダっぽいシダはイヌワラビだろうか。 図鑑を見ても判断が付きにくい。 勝手に生えてきそうだと思うがどうか。 奥に写るトクサは明らかに植えた物が元だろう。 最近気になったのが、この檜の葉っぱのようなイヌカタヒバ。 写真を撮った辺りとは全然別の一角にも繁茂している。 元来の生息地である沖縄地方では絶滅危惧種だが、園芸品種としてはよくある物らしい。 つまり人為導入説を示唆する物証。 石の間にあるのはイノモトソウ。 これはどっちだろう。 自転車に絡みつくように伸びるのはおそらくカニクサ。 今までも生えていた物か、最近生えてきた物か。 最近生えてきたならば、自然由来もあり得るという証左になる。 今回は見つからなかったが、以前はヤブソテツかそれに近い種類の大雑把な葉っぱのシダもあったはず。 あれは何となく大ぶりだし、植えた物だった可能性が高かったと思う。 結論が特にあるわけではない。 シダ植物は見た目が綺麗で好き。

香港

国家安全維持法という法律によって、香港の一国二制度は実質的に終了した。 一国二制度は結局中華人民共和国の方便であって永遠に変わらないものではなかった。 中華人民共和国のモデルは戦前の日本だろうか。 言論を統制するために国家体制の安全を錦の御旗にし、 周辺を武力で威圧し(一部は植民地化し)、 憲法の上に存在する絶対的な権力を守る。 中国共産党と天皇制は不可侵という意味で似たようなものであるように見える。 生まれて初めて、迫り来る戦争の恐怖を感じた。 漠然と。 その記念にこんな柄にもない文章を残してみる。

短大ホモロジー

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

多項式環はモノイド環

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

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

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

現象

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

2019年の読書

恒例なので、去年読んだ本から記憶に残ったものを紹介する。 2019年は読んだ冊数が少なかった気がする。 2018年の後半にいくつか読んでいた数の体系の話は、2019年も少し引き続いた。 読んだ本で言うと高木貞治「 数の概念 」(最近 ブルーバックス でも出た)、足立恒雄「 フレーゲ・デデキント・ペアノを読む 」。 結局実数を成り立たせるように現在の数学ができているという確認に終わった。 科学系では生物の本も読んだように思うが、あまり記憶に残っていない。 インパクトが大きかったのは主に物理学で、特にカルロ・ロヴェッリ「 すごい物理学講義 」「 時間は存在しない 」。 単発では「 原子核から読み解く超新星爆発 」が印象に残っている。 その他のジャンルでは紀田順一郎「 蔵書一代 」は考えさせられた。 ※本のリンクはamazonアフィリエイトです。