あみだくじを分解する

  • Haskellの手習いをしている
  • 圏をわかるために、数学っぽくない例を挙げているサイトを参考にしている
  • あみだくじの圏で「結合」というのは、本数が等しいあみだくじを連結すること
  • 連結がうまくいくっていうのが、圏としてワークしていること、と言い換えてもよいのだろう
  • あみだくじは、より小さいあみだくじの連結、ということなので、できるだけ小さくすると
    • あみだの横棒1本が「交換を伴う」最小単位であることがわかる
    • それは、n本のあみだの1:nについて、隣り合う2本の入れ替えに相当する
    • そのような交換はnxn単位行列の2列を入れ替えたもの
    • あみだ全体は、その処理をけつごうしたものなので、行列の積になる
  • Haskellでこれが書ければよいのだけれど、まだうまくできないので
n<-3

M12<-matrix(c(0,1,0,1,0,0,0,0,1),byrow=TRUE,n,n)
M23<-matrix(c(1,0,0,0,0,1,0,1,0),byrow=TRUE,n,n)
M31<-matrix(c(0,0,0,0,0,1,0,1,0),byrow=TRUE,n,n)


M<-M12%*%M23%*%M23%*%M12%*%M23%*%M12%*%M23

M%*%c(1,2,3)
  • これを見ると、あみだくじでは、「入れ替えが隣り合う線同士でのみ許す」という制約があって、最小単位の行列に限定があることもわかる
    • 逆に言うと、「立体的あみだくじ」とかもできる(実際、そういう横棒を引くこともある)
  • また、引用した「行列の圏」の例では、行列の行数と列数が対象だったのに対して、今回の「あみだくじが行列」の圏では、行列を掛けられる長さnのベクトルが対象になっている。そして、(1,2,...,n)というベクトルとそのパーミュテーションが対象を構成している