3

いくつかの概念を理解しようとすると、「隣接」という用語に出くわすことがよくあります。私は分野論や圏論の専門家ではないので、これらのことは抽象的すぎて理解できません。

私が見つけた最も単純なケースはMonoid Maybe aNothing.

ウィキペディアから、要素を半群に「隣接」させることで、別のMonoidインスタンスを取得できることがわかります。私は文を理解していませんが、与えられた方程式は、それがまさに私が必要としているものであることを示唆しています(何らかの理由でデフォルトではありません):

任意の半群 S は、S にない要素 e を隣接させ、すべての s ∈ S に対して e • s = s = s • e を定義するだけでモノイドに変換できます。

  • 少なくともこの場合、「隣接」は「追加」と同じ意味ですか?
  • この概念の他の簡単な例はありますか?
  • 「左随伴」であるものの最も単純な例は何でしょうか?
4

1 に答える 1

10

あなたが引用した半群関連の文のように、「隣接する」とは「何か新しいものを追加する」ことを意味する場合があります。たとえば、 usingはtype にMaybe a新しい要素を追加/隣接することを意味すると誰かが言うかもしれません。個人的には、これには「追加」のみを使用します。Nothinga

これは、トリッキーな概念である、カテゴリの意味での随伴とは何の関係もありません。

大まかに言えば、フォームの関数型があると仮定します

F a -> b

ここでF、型から型へのマッピング (より正確には、ファンクター) があります。場合によっては、次の形式を持つ上記の型と同型の型を表現できます。

a -> G b

「魔法のように」F左側の関数が右側に移動し、 に変わりましたG

標準的な例はカリー化です: Let eg

F T = (T, Int)
G T = Int -> T

次に、

   (F a) -> b 
-- definition of F
=  (a, Int) -> b
-- currying
=~ a -> (Int -> b)
-- definition of G
=  a -> G b

その場合は「」を「」につけたままF -| G読み、「」と書きます。FG

矢印の反対側の入力型の操作を「適切に移動」して、出力型の別の操作に変更できるたびに、随伴があります。(技術的には、「きれいに」とは、自然な同形性があることを意味します)

于 2016-09-23T15:12:57.543 に答える