このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

[参照用 記事]

2023-02-01から1ヶ月間の記事一覧

集合圏における依存カリー同型

ラムダ計算の意味論においては、カリー同型が中心的な概念です。となると、依存ラムダ計算の意味論には依存カリー同型が必要になります。とりあえずは一番具体的なデカルト閉圏である集合圏において依存カリー同型を考えてみます。$`\newcommand{\id}{\mathr…

状態モナド変換子

状態モナド変換子〈state monad transformer〉は、「状態モナド・変換子」ではなくて「状態・モナド変換子」です。モナド変換子の目的はモナドの変換ですが、定義上はモナドじゃなくても関手を変換できるので、「状態をひっ付ける変換子〈state attachment t…

アロー関数から依存関数空間型〈パイ型〉へ

TypeScriptで、アロー(二重矢印「=>」〉で関数や型を書けるのはとても便利です。Lean 4では、アロー(一重矢印「→」)により依存関数空間型〈パイ型〉も記述できます。さらに便利です。内容: TypeScriptのアロー関数 Lean 4の場合 パイ型〈依存関数空間型…

帰納的型とリカーサー

プログラミング言語や証明支援系において、既存の型を組み合わせるのではなくて、まったく新しい型(値の集合)を定義する場合は、帰納的型〈inductive type〉として定義することになります。帰納的型の上の関数は、帰納的に定義できます。このことを帰納原…

依存カリー同型に向けて

「外部バージョンの依存カリー同型」にて: 外部バージョンの依存カリー同型は、極限の定義をなぞっているだけなので、内部化しないと面白くはありません。面白くすることは、今考え中です。 集合圏とは限らない圏 $`\mathcal{C}`$ に対して依存カリー同型を…

外部バージョンの依存カリー同型

「カリー/ハワード/ランベック対応の辞書: 推論規則再論」で次のように書いています。 $`A, B, X, Y`$ などは圏 $`\mathcal{C}`$ の対象を表します。$`I, J`$ なども $`\mathcal{C}`$ の対象ですが、これらを“集合とみなす方法”〈dereification〉があると…

カリー/ハワード/ランベック対応: チートシート

「カリー/ハワード/ランベック対応の辞書」を皮切りにカリー/ハワード/ランベック対応に関して幾つかの記事を書きました。 カリー/ハワード/ランベック対応の辞書(最初の記事) 続・カリー/ハワード/ランベック対応の辞書 論理と圏論: 導入規則と…

はてなブログ内に数式を埋め込んだSVG図形を表示する

こんな感じです。 円: $`\text{for }x, y\in {\bf R}\\ x^2 + y^2 = r^2`$ 内容: ステップ 1: SVG要素を置くだけ ステップ 2: 数式が表示されることを確認 ステップ 3: SVG foreignObject内にXHTMLフラグメントを書く ステップ 4: さらにラップして段…

TypeScriptでのタイプタグによる分岐

JSON形式で表現されるデータがあったとして、データの型付け〈typing〉をTypeScriptで記述するとしましょう。インターフェイスやクラスを使わずに、次のように型定義するとお手軽です。 type A = { "type" : "a", // A specific } type B = { "type" : "b", …

カリー/ハワード/ランベック対応の辞書: 推論規則再論

続・カリー/ハワード/ランベック対応の辞書 矢印の混乱に対処する: デカルト閉圏のための記法 上記2つの記事で述べた内容を組み合わせて、記述を追加します。論理でいう「推論規則」は種類が違うものをゴッチャにしています。導入規則〈introduction rule…

矢印のオーバーロードがひどい件: 所感

「矢印の混乱に対処する: デカルト閉圏のための記法」より: 一番ポピュラーな矢印記号である「$`\to`$」は、圏の射のプロファイル(域と余域の仕様)の区切り記号に独占的に使わせていただきます。 これはもちろん、僕の私的提案、つうか願望であって、矢…

矢印の混乱に対処する: デカルト閉圏のための記法

2023-02-09の僕のツイート: 矢印「→」が異なる意味でオーバーロードされているのは相当に深刻な問題だなー。 これで混乱したり挫折する人がいるから、弊害とても大きい。 十数年前からカリー/ハワード対応のセミナーとかやっているわけです。複数の分野に…

タプル・コタプルとVΣ計算

関数のファミリー〈族〉からタプル関数を作る操作とコタプル関数を作る操作は双対〈dual〉で、圏論の極限と余極限の双対性に対応します。しかし、型理論やプログラミング言語のなかでは、この双対性が見えにくくなっています。タプル構成は、λΠ計算〈ラムダ…

具体例(なんの?)

将来書かれるかも知れない(書かれないかも知れない)記事から参照される具体例を先に書いておきます。内容としては、関数達のタプル構成とコタプル構成です。タプル構成とコタプル構成がひとつの設定内で出てくる例題になっています。タプル構成とは、キー…

まだある、カリー/ハワード/ランベック対応の辞書

カリー/ハワード/ランベック対応の辞書 続・カリー/ハワード/ランベック対応の辞書 まだあるの? まだあります!カリー/ハワード/ランベック対応〈Curry-Howard-Lambek correspondence〉は、「型理論(ラムダ計算を含む)」「論理」「圏論」の三分野の…

論理と圏論: 導入規則と除去規則のあいだの等式的法則

「続・カリー/ハワード/ランベック対応の辞書」にて: 圏論では、射のあいだの等式的関係、例えば $`\langle f , g \rangle; \pi_1 = f`$ などが重要ですが、論理ではあまり言及しません。分野ごとに、興味のあり方や価値観が違うからでしょう。 論理にお…

フォワード・リーズニングとバックワード・リーズニング

現状の証明支援系〈proof assistant〉について、僕はしょっちゅう愚痴と文句を言っています(twitterでぼやいたりしてる)。大きな不満点は、フォワード・リーズニングの対話的サポートがまったくない点です。不便だし面白くない。内容: 証明ソフトウェアの…

続・カリー/ハワード/ランベック対応の辞書

「カリー/ハワード/ランベック対応の辞書」の続きです。カリー/ハワード/ランベック対応〈Curry-Howard-Lambek correspondence〉は、細部まで対応が行き届いているので、論理の推論規則の対応物を見てみます。論理では、「導入規則と除去規則が“きれいに…

カリー/ハワード/ランベック対応の辞書

カリー/ハワード/ランベック対応〈Curry-Howard-Lambek correspondence〉は、「型理論(ラムダ計算を含む)」「論理」「圏論」の三分野の概念のあいだの精密・詳細な対応を与えてくれます。しかし、言葉はうまく対応してくれません。異なる分野の言語・文…