a, bを実数の定数として、f(x) = ax + b は中学校で習った1次関数です。xの変域を単位閉区間 [0, 1] = {x∈R | 0 ≦ x ≦1} に制限します。ax + b = b(1 - x) + (a + b)x であることに注意して、s := b (sはstart点のs), t := a + b (tはtarget点のt)と置けば、f(x) を次のように書き換えられます。
- f(x) = s(1 - x) + tx
xを時刻とみなせば、時刻0でスタート点s(出発地)にいて、時刻1でターゲット点t(目的地)に到着する等速直線運動(速度はa)の記述と解釈できます。0と1の中間の時刻(例えば x = 1/2)でも、必ず対応する位置 f(x) が存在します。
さて、いま二点だけの集合 {2, 3} を考えます。ホントに二点だけですよ! 中間の位置はありません。関数 f:[0, 1]→{2, 3} で、f(x) = 2(1 - x) + 3x と書けるものはあるでしょうか?
普通に考えると、x = 1/2 で f(1/2) = 2(1 - 1/2) + 3(1/2) = 5/2、しかし5/2は{2, 3}の要素ではないのでウマクないですよね。なにかしら普通ではない、しかし合理的で説得的な考え方により、f(x) = 2(1 - x) + 3x : [0, 1]→{2, 3} に意味を与えたいのです。さあ、どうしましょうか?
内容:
カーク・スターツの論文
カーク・スターツ(Kirk Sturtz)は、2017年7月にarXiv.orgに投稿され、2018年4月に更新(ver.4)された論文により、ジリィモナド界隈の人々が成立するだろうと期待していた(しかし、証明はなかった)定理を証明しました。
- Title: The factorization of the Giry monad
- Author: Kirk Sturtz
- Pages: 18p
- URL: https://arxiv.org/abs/1707.00488
新しい証明・理論には、新しいアイディアが必要です。スターツは、いくつもの新しいアイディアを駆使して証明・理論を組み立てていますが、そのなかに、小さな/ささいなアイディアかも知れませんが、僕には大きな驚きだったものがあります。
それが表題にある「二点しかない離散空間に長さ1の線分を描く方法」です。正確な言葉づかいをするなら、要素が2つだけの集合に凸構造〈convex structure〉を定義することです。
実は僕も、「二元集合(要素が2つだけの集合)に凸構造が入ったらいいなー」と思ったことがあります。しかし、「出来るわけないよな、こりゃ無理ムリ」と決めてかかっていました。なので、スターツが二元集合上の凸構造を作っているのを知って、もうビックリ! だったのです。
スターツのアイディア*1と共に、僕がどんな先入観に囚われていたかも説明します。
ベクトル空間内の凸集合
Vを実数体R上のベクトル空間とします*2。Vの部分集合Aが凸集合〈convex set〉だとは、次が成立することです。
- x, y∈A ならば、0 ≦ τ ≦ 1 である実数τに対して、((1 - τ)x + τy)∈A
ここから先、閉区間 [0, 1] に所属する実数はギリシャ文字小文字で表すことにします。文字τ(タウ、ラテン文字tに相当)を選んだのは、時間パラメータの雰囲気(τ = time)を残したかったからです。
ベクトル空間Vの要素x, yを固定して、τを0から1へと動かした場合、(1 - τ)x + τy は、xからyへと至る線分〈segment〉(直線の一部)を描きます。この線分を [x, y] と書きます。
- [x, y] := {v∈V | 0 ≦ τ ≦ 1 である実数τにより v = (1 - τ)x + τy と書ける}
V = R の場合を考えると、閉区間の記法 [0, 1] は、今定義した記法と整合します。
- [0, 1] := {s∈R | 0 ≦ τ ≦ 1 である実数τにより s = (1 - τ)0 + τ1 と書ける}
線分を使って凸集合の定義を言い換えると:
- A⊆V が凸集合 :⇔ (x, y∈A ⇒ [x, y]⊆A)
':⇔'は、定義であることを強調した論理的同値、'⇒'は「ならば」(論理的含意)です。
平面(2次元ベクトル空間)内の円板(円周ではない)や、内部を含む三角形などは凸集合です。平面全体や一点だけの集合も凸集合です。凸集合の例を作るときに役立つ定理があります。
- f:V→R が線形写像のとき、a∈R に対して、{v∈V | f(v) ≧ a} は凸集合である。
- Iはインデックス集合(無限集合でもよい)として、各 i∈I に対してAiが凸集合のとき、共通部分 ∩{Ai | i∈I} は凸集合である。
{v∈V | f(v) ≧ a} の形の集合は、アフィン半空間〈affine half-space〉*3と呼ばれるので、すぐ上の一番目の定理は、「アフィン半空間は凸集合である」と言い換えられます。
{v∈V | f(v) ≧ a}∩{v∈V | -f(v) ≧ a} = {v∈V | f(v) = a} なので、Vの超平面(アフィン超平面)は凸集合なのが分かります。{fi(v) ≧ ai | i = 1, 2, ..., k} という連立不等式で定義される多角形・多面体も凸集合です。円板のように、多角形とは呼べない図形でも、無限個の半空間の共通部分として書けます。
ハート形は凸集合ではありません。次の図のように、両端がハート形に入っているのに、ハート形からはみ出す線分が存在するからです。
空集合は凸集合です。これは、そう約束したと思ってもいいですが、例外事項を付加したわけではなくて、定義だけから厳密に言えることです。最近、論理と証明の話を書いたばかりなので、論理的に確認してみましょう。
Pow(V)はベクトル空間(の台集合)Vのベキ集合だとして、Aが凸集合であることを、ちゃんと書いてみると:
- for A∈Pow(V) (Aが凸集合 ⇔ ∀x, y∈V.(x, y∈A ⇒ [x, y]⊆A))
A = ∅ (空集合)と具体化してみると:
- ∅が凸集合 ⇔ ∀x, y∈V.(x, y∈∅ ⇒ [x, y]⊆∅)
∅が凸集合であるかないかの判定は、x, y∈∅ ⇒ [x, y]⊆∅ という命題の真偽判定と同じことです。含意命題('⇒'を含む命題)の前件('⇒'の左側) x, y∈∅ は常に偽なので、含意命題全体は真です。つまり、∀x, y∈V.(x, y∈∅ ⇒ [x, y]⊆∅) が真であることから、「∅が凸集合」も真になります。
別な(逆な)発想として、「∅が凸集合でない」と言いたいなら、
- ∃x, y∈V.(x, y∈∅ ∧ ¬([x, y]⊆∅))
を示す必要があります。x, y∈∅ が常に偽なので、この命題は絶対に成立しません(「∅が凸集合」に対する反例となる2点を見つけられない)。二重否定の原理から、「∅が凸集合でない」が成立し得ない、とは「∅は凸集合である」ことです。
[/補足]
凸結合の性質
前節の凸集合の定義で出てきた (1 - τ)x + τy を、xとyの凸結合〈convex combination〉と呼びます。凸結合を、τ, x, y の3引数を持つ関数〈写像〉ccと考えましょう。つまり、
- cc:[0, 1]×V×V→V
- cc(τ, x, y) := (1 - τ)x + τy
型付きのラムダ記法を使うなら:
- cc := λ(τ, x, y)∈[0, 1]×V×V.( (1 - τ)x + τy :V )
A⊆V が凸集合であることは、ccをA上に制限した cc:[0, 1]×A×A→A がちゃんと定義できる(well-defined)ことと同じです。
cc(τ, x, y) を ccτ(x, y) とも書きます。ccは次の性質を持ちます。
- cc0(x, y) = x ---(始点条件)
- ccτ(x, x) = x ---(退化線分条件)
- cc1-τ(x, y) = ccτ(y, x) ---(反転対称性)
- ccτ(x, ccρ(y, z)) = ccτρ(ccσ(x, y), z) ただし τ(1 - ρ) = (1 - τρ)σ ---(パラメータ付き結合律)
これらの等式は、ccの定義に従って計算すれば出てきます(ぜひ、やってみてください)。それぞれの等式の意味を説明しましょう。
ccを等速直線運動のパラメータ表示と考えると、τ = 0 では始点xにいるはずです。それを表した等式が「始点条件」です。
始点と終点が一致している等速直線運動は、一点に退化した線分を描きます。一点に退化した線分とは定数写像になります。「退化線分条件」はそのことを表していますね。
パラメータτを τ' = 1 - τ に変更すると、時間を反転したことになり、終点から始点へと逆行する運動になります。時間反転が、空間的には線分の対称性を導きます。「反転対称性」です。
最後の「パラメータ付き結合律」は少し複雑です。一般に、二項演算(=ニ変数関数)fが f(x, f(y, z)) = f(f(x, y), z) を満たすなら、fは結合律を満たします。ccの場合、パラメータをうまく調整すると結合律を満たします。パラメータに関する条件も含めて結合律を述べたのが「パラメータ付き結合律」です。
μ = τσ と置くと、
- ccτ(x, ccρ(y, z)) = ccμ(ccσ(x, y), z)
この結合律は、4つのパラメータ τ, ρ, μ, σ が次の連立方程式を満たすときだけ成立します。
- μ = τσ
- τ(1 - ρ) = (1 - μ)σ
連立方程式により定義される図形 {(τ, ρ, μ, σ)∈[0, 1]4 | μ = τσ かつ τ(1 - ρ) = (1 - μ)σ} が、ccの結合律を支配していると言ってもいいでしょう。
凸空間の公理的定義
凸集合の定義では、ベクトル空間Vがまずあり、その部分集合として凸集合が定義されました。凸結合も、ベクトル空間の足し算とスカラー倍から組み立てられた演算です。前節の凸結合の性質も、定理として示すべきものです。
ここで発想を変えて、ベクトル空間を想定せずに、とある集合Aとその上の演算のパラメータ族〈family of binary operations〉ccの組として「凸な構造」を定義しましょう。(A, cc) が満たすべき公理(定理ではない)は、前節の凸結合の性質です。凸結合の公理を満たす (A, cc) を凸空間〈convex space〉と呼びます。
ccτ(x, y) を、中置二項演算子 +τ として書くことにします。読みやすさはけっこう改善します。中置二項演算子を使って、凸結合の公理をもう一度書いてみます。
- x +0 y = x ---(始点条件)
- x +τ x = x ---(退化線分条件)
- x +1-τ y = y +τ x ---(反転対称性)
- x +τ (y +ρ z) = (x +σ y) +μ z ただし、μ = τρ, τ(1 - ρ) = (1 - μ)σ ---(パラメータ付き結合律)
こう書いてみると、凸結合は“パラメータ付きの和”に見えるので、凸結合を凸和〈convex sum〉と呼ぶこともあります。凸結合を二項演算だと見ると、それぞれの公理も若干違った見え方になるかも知れません。
- x +0 y = x は、τ = 0 のときの凸和が左自明演算になることです。左自明演算とは、x・y = x という演算です。同様に、τ = 1 のときの凸和は右自明演算です。
- x +τ x = x は、+τ がベキ等〈idempotent〉な演算であることを意味します。
- x +1-τ y = y +τ x は一種の交換律です。
- x +τ (y +ρ z) = (x +σ y) +μ z はもちろん、パラメータ条件に縛られた結合律です。
ここから先は、プラス記号'+'を凸和の意味でもオーバーロード(多義的使用)して、A = (A, +) のような記号の乱用もします。
(A, +) と (B, +) が2つの凸空間だとして、写像 f:A→B がアフィン凸写像〈affine convex map〉だとは、凸和を保存することです。つまり、次を満たすことですね。
- f(x +τ y) = f(x) +τ f(y)
アフィン凸写像は、凸アフィン写像、アフィン写像、凸写像などとも呼ばれます。
凸空間を対象として、アフィン凸写像を射とする圏が構成できます。しかし、今回は圏論的考察はしません。
二元集合を台集合とする凸空間はあるのか?
いよいよ本題に入ります。二元集合(2つだけの要素を持つ集合)を凸空間にすることが出来るか? が問題です。
二元集合として、真偽値の集合 B = {F, T} をとります。BはBooleanから、F, T は False, True の略です。Bに対して凸和 +:[0, 1]×B×B→B をうまいこと定義して、(B, +) を凸空間にしたいのです。
僕は即座に「無理」と判断しました。皆さんはどうでしょう? なぜ僕は「無理」と判断してしまったのでしょう? 後から考えてみました。
先入観・思い込みがあったのです。その先入観・思い込みは、凸空間にいだいた幾何的・物理的イメージによります。今まで使用していた用語「線分」には明らかに図形のイメージが伴います。その線分は等速直線運動の軌跡とみなしているので、物理的イメージもあります。凸空間の定義に使われる閉区間 [0, 1] は図形だろうし、凸空間の典型例である多角形・多面体、円板・球体なども図形です。
つまり、凸空間には、図形の(幾何的)イメージが非常に強く付着しています。このため、無意識に幾何的判断をしてしまうのです。
Bの二点、例えばFとTに対して F +τ T = ccτ(F, T) は、閉区間[0, 1]からBへの写像となります。Bは離散空間で2つの連結成分({F}と{T})を持ちます。ですから、連結で連続した[0, 1]からの写像は存在するはずがありません。B内の線分や等速直線運動なんて無理なんです。
これが僕の判断でした。しかし、公理的・抽象的に定義された凸空間の定義に、位相や連続性は一切入っていません。凸空間は代数的構造であって、代数的法則の成立が要請されているだけです*4。
「無理だ」という判断は、凸空間の定義に照らし合わせて、まったく何の根拠もなかったのです。実際スターツは、凸空間 (B, +) を 構成しています。
二元集合上の凸構造の構成
B = {F, T} 上の凸和を次のように定義します。
- F +τ F := F
- F +τ T := if (τ = 1) then T else F
- T +τ F := F +1-τ T = if (τ = 0) then T else F
- T +τ T := T
このように定義された凸和が、凸空間の4つの公理(始点条件、退化線分条件、反転対称性、パラメータ付き結合律)を満たせば、(B, +) は凸空間になります。順番に確認していきましょう。
始点条件
始点条件を、∀(「任意の」を意味する記号)を使って書けば、∀x, y∈B.(x +0 y = x) となります。∀x, y∈B の部分は、4つの組み合わせに展開できるので:
- F +0 F = F
- F +0 T = F
- T +0 F = T
- T +0 T = T
これらは定義から明らかです。
退化線分条件
同じく∀を使って書けば、∀x∈B.∀τ∈[0, 1].(x +τ x = x)、展開すれば:
- ∀τ∈[0, 1].(F +τ F = F)
- ∀τ∈[0, 1].(T +τ T = T)
これらも定義から言えます。
反転対称性
∀x, y∈B.∀τ∈[0, 1].(x +1-τ y = y +τ x) が示すべきことです。∀x, y∈B を展開すれば4つの命題になります。
- ∀τ∈[0, 1].(F +1-τ F = F +τ F)
- ∀τ∈[0, 1].(F +1-τ T = T +τ F)
- ∀τ∈[0, 1].(T +1-τ F = F +τ T)
- ∀τ∈[0, 1].(T +1-τ T = T +τ T)
これも定義からすぐに言えますね。
パラメータ付き結合律
パラメータ付き結合律は、ちょっと複雑な論理式になって:
- ∀x, y, z∈B.∀τ, ρ, μ, σ∈[0, 1].(μ = τρ かつ τ(1 - ρ) = (1 - μ)σ ⇒ x +τ (y +ρ z) = (x +σ y) +μ z)
∀x, y, z∈B を8つの場合に展開するのではなくて、パラメータτ, ρに関して場合分けすることにします。
(τ, ρ) = (1, 1) の場合とそれ以外です。それ以外をさらに2つに分けて:
- 場合1 : τ = 1 かつ ρ = 1
- 場合2 : τ ≠ 1 (ρは任意)
- 場合3 : ρ ≠ 1 (τは任意)
漏れない場合分けなので、「場合1または場合2または場合3」で、すべての(τ, ρ)をカバーしています。
場合2と場合3では、結合律の左辺のパラメータ(τ, ρ)で与えられたとき、右辺のパラメータ(μ, σ)を次のように計算できることに注意してください。
- μ = τρ
- σ = τ(1 - ρ)/(1 - μ) = τ(1 - ρ)/(1 - τρ)
場合1では、分母がゼロになるので二番目の式が使えません。
場合1 : τ = 1 かつ ρ = 1
この条件で、「μ = τρ かつ τ(1 - ρ) = (1 - μ)σ」を満たす μ, σ は、
- μ = 1
- σは任意
となります。目的の命題=結合律は、
- x +1 (y +1 z) = (x +σ y) +1 z
です。σが何であっても、これは成立します。
場合2 : τ ≠ 1 (ρは任意)
この条件のもとでは、
- μ ≠ 1 (τ ≠ 1, μ = τρ なので)
σ = τ(1 - ρ)/(1 - τρ) を、σ = 1 として解くと τ = 1 。つまり、σ = 1 ⇒ τ = 1 。対偶をとれば τ ≠ 1 ⇒ σ ≠ 1 ですが、τ ≠ 1 は今の仮定に入っているので、
- σ ≠ 1
τ ≠ 1 から x +τ (y +ρ z) = x 。μ ≠ 1 から (x +σ y) +μ z = (x +σ y)、σ ≠ 1 から (x +σ y) = x 。
以上より、x +τ (y +ρ z) = x 、(x +σ y) +μ z = x だから、
- x +τ (y +ρ z) = (x +σ y) +μ z
場合3 : ρ ≠ 1 (τは任意)
この条件のもとでも場合2と同じく次は成立します。
- μ ≠ 1
- σ = 1 ⇒ τ = 1
さらに、
- τ = 1 ⇒ σ = 1
も、σ = τ(1 - ρ)/(1 - τρ) の計算から明らか。よって、
- τ = 1 ⇔ σ = 1
- τ ≠ 1 ⇔ σ ≠ 1
ρ ≠ 1, τ = 1 のときは、σ = 1 でもあって、
- x +τ (y +ρ z) = y +ρ z = y
- (x +σ y) +μ z = y +μ z = y (μ ≠ 1 だったから)
結合律は成立します。
ρ ≠ 1, τ ≠ 1 のときは、σ ≠ 1 でもあって、
- x +τ (y +ρ z) = x
- (x +σ y) +μ z = (x +σ y) = x
結合律は成立します。
おわりに
公理的・抽象的に定義された凸空間は、我々の幾何的・物理的イメージを裏切るような存在物(その例が (B, +))も包摂しているようです。お馴染みの例である有限次元ベクトル空間の凸部分集合は、必然的に幾何的(位相的)構造も持ってしまうのですが、凸部分集合の幾何的イメージに頼るのは危険です。
定義や前提に含まれない仮定を勝手に付けてしまう過ちは、けっこうやってしまいます。今回の例でも僕はやらかしました。余計なことを考えない境地に至るのは、だいぶ修行が必要そうです。
*1:既によく知られていたことを、スターツが採用しただけかも知れませんが、スターツ論文が自分にとっての初見だったので、「スターツの」とします。
*2:凸集合を定義する場所としては、ベクトル空間よりもアフィン空間のほうがふさわしいのですが、話を簡単にするためにベクトル空間を使います。
*3:アフィン半空間の定義も、アフィン空間をベースに行うべきですが、ベクトル空間でいいことにします。
*4:幾何的イメージを避けてかどうかは分かりませんが、凸空間の代わりに凸代数〈convex algebra〉、重心代数〈barycentric algebra〉という呼び名もあるようです。重心代数は微妙に違った定義かも知れません。