タグ付けされた質問 「inductive-datatypes」

1
関数のメモリ使用量などのプロパティは、依存型付き言語で表現できますか?
全体性や関数の純粋さなどを超えてコードのプロパティについて推論したいとしましょう。メモリの消費や関数のアルゴリズムの複雑さについても気にします。これは、依存するタイピングおよびエフェクトシステムを介して実行できますか?

1
代数的データによる制約ベースの型推論
私はML系図の表現ベースの言語に取り組んでいるので、当然、型推論が必要です> :) 現在、EOPL(Friedman and Wand)の単純な実装に基づいて、制約ベースのソリューションを型推論の問題に拡張しようとしていますが、それらはエレガントに代数的データ型を回避しています。 これまでのところ、スムーズに機能しています。式がある場合eでa + b、e : Int、a : Intとb : Int。e一致する場合、 match n with | 0 -> 1 | n' -> n' * fac(n - 1)`, 私は当然と推論することができt(e) = t(the whole match expression)、t(n) = t(0) = t(n')、t(match) = t(1) = t(n' * fac(n - 1)のように... しかし、代数的データ型に関しては、私は非常に確信が持てません。filterのような関数を想定します。 let filter …

1
誘導誘導とは何ですか?
誘導誘導とは何ですか? 私が見つけたリソースは次のとおりです。 5.7章の最後にあるHoTT本。 nLabの記事 帰納的帰納的定義と呼ばれる論文 このブログの投稿では、帰納的誘導型についても触れています 最初の2つの参照は私には短すぎますが、後の2つは専門的すぎます。誰でも簡単に説明できますか?Agdaコードがあればもっと良いでしょう。

2
厳格な陽性
この参照から:厳密な陽性 厳密な陽性条件は、次のような宣言を除外します data Bad : Set where bad : (Bad → Bad) → Bad A B C -- A is in a negative position, B and C are OK なぜAは負ですか?また、なぜBが許可されるのですか?Cが許可される理由を理解しています。

1
自己型は帰納的構造の計算を時代遅れにしますか?
自己型は、言語がスコットエンコーディングでエンコードされた代数的データ型を表現できるようにする、構造の計算[1]の拡張です。Scott Encodingは、でパターンマッチングする機能を提供しますO(1)。これは、CCに帰納的定義を含める主な動機の1つです。しかし、自己型ははるかに単純でエレガントな基本理論を実現し、一見すると強力なようです。 セルフタイプは、理論的な観点から、CICを時代遅れにしますか、それとも、CICがSelf Tyesに関して有利であるいくつかの側面がありますか? [1] http://staff.computing.dundee.ac.uk/pengfu/document/talks/mvd-2012.pdf

3
ポリモーフィズムと帰納的データ型
私は興味がある。私はOCamlでこのデータ型に取り組んできました: type 'a exptree = | Epsilon | Delta of 'a exptree * 'a exptree | Omicron of 'a | Iota of 'a exptree exptree これは、明示的に型指定された再帰関数(ごく最近追加された機能)を使用して操作できます。例: let rec map : 'a 'b. ('a -> 'b) -> 'a exptree -> 'b exptree = fun f -> begin function | Epsilon -> …

2
依存して型付けされたエリミネーターを導出する方法は?
依存型プログラミングでは、データを分解して再帰を実行する主な方法が2つあります。 依存パターンマッチング:関数定義は複数の句として指定されます。統一により、すべての省略されたケースが不可能であることが保証され、外部ソルバーが再帰の根拠を確実にします。 エリミネーター:各帰納的データ型は、帰納原理として、および型値を分解する再帰関数として機能する、関連する定数があります。これらはより冗長ですが、合計であり(すべてのケースはカバーされ)、構造によって終了するという利点があります。DDDEDEDE_DDDDEDEDE_D エリミネーターが基本的に数学的帰納であるなどの一般的なデータ型のエリミネーターや、エリミネーターが基本的にフォールドであるを見てきました。NatNatNatListListList 私は依存パターンマッチングに関するいくつかの論文を読んでおり、その多くはデータ型を定義できる型理論に言及しており、エリミネーターは理論によって提供されます。たとえば、依存パターンマッチングの除去では、UTTがエリミネーターに基づいている方法と、公理存在下でパターンマッチングを除去に変換する方法について説明しています。私の理解では、データ型が定義されると、理論はエリミネーターを提供します。KKK 私が見つけていない(または、少なくとも見た場合に認識されていない)ことは、エリミネーター(タイプとセマンティクスの両方)をどのようにして導き出すことができるかについての良い説明です。 誰かが、データ型の定義からエリミネーターを取得する方法を説明する参照を私に指摘できますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.