指標 ≠ コンピュータッド
今まで、指標はコンピュータッドの同義語としてきたが、どうも違う。その違いは指標は名前(ラベル)があること。単なるグラフとラベル付きグラフの違い。
2つの指標をとると、まったく無関係とは限らない。ラベリングによって、必然的にスパン構造=貼り合わせデータが付随する。名前構造によって定義されるベースコンピュータッドがあって、指標はベースコンピュータッドへのラベリングを一緒に考えたものだ。
指標の和(マージ)が、絶対的な直和ではなくて、余ファイバー和になってしまうのは、最初からラベリングから定義される貼り合わせデータを伴うからだ。ただし、相対コンピュータッドの圏=特定の名前構造のオーバー圏においては、余ファイバー和が直和になる。
多引数のトランスフォーマーを考えるとき、複数の引数が独立な直和としてマージされうのではなくて、余ファイバー和で合成される。これも、指標が常に貼り合わせ構造を伴うからだ。
指標のマージと貼り合わせ構造を明示するために、次のような表現を使えば良いかもしれない。
signature S := {type X} signature T := {value e:X, function f:X->X} // S と T をマージすると signature { type S.X; tyep T.X; value T.e: T.X; function T.f: T.X -> T.X; synonym S.X = T.X }
とりあえず、指標名で修飾(接頭辞付け)して直和を作る。synonym宣言が貼り合わせデータを与える。結果的に、
signature { tyep T.X; value T.e: T.X; function T.f: T.X -> T.X; }
となる。修飾子(接頭辞)Tは無意味なので取ってもよい。