カーディナリティ引数なしで不等式を入力します

アイザック・ヴァン・ベーケル

Coqに構文型の不等式を証明させるにはどうすればよいですか?

一価を否定する

私はこの質問への答えを読みました。これは、一価性を仮定する場合、型の不等式を証明する唯一の方法はカーディナリティの引数を使用することであることを示唆しています。

私の理解では、Coqの論理が一価性と一致している場合、それは一価性の否定とも一致しているはずです。私はunivalenceの否定が本当にいることになることを得る一方で、いくつかの同型タイプは非同一である、私はいることを表現することが可能なはずであると信じていない(同一ではありません)同型タイプを同じです。

型コンストラクターの不等式

事実上、私はCoqに型と型コンストラクターを帰納的定義として扱いinversion、私の2つの非常に明確に異なる型は等しくないと言う典型的なスタイルの議論をしたいと思います。

それはできますか?これは次のようにする必要があります。

  1. 具体的な型、つまり型変数がない場合に使用できます。
  2. 必ずしも決定可能ではない

それは一貫性を保つのに十分弱いと私は思います。

環境

私はポリモーフィックな判断(事実上、パラメーターを持つ帰納型forall X : Type, x -> Prop)を持っており、その選択Xは判断のコンストラクターによって決定されます。

X(たとえばX = nat特定の選択に対するすべての判断について、いくつかのプロパティが保持されることを証明したいのですが、を使用しようとするとinversion、一部のコンストラクターはnat = string(たとえば)のような仮説を立てます。これらの型の同等性の仮説は、同じカーディナリティを持つタイプに対しても表示されるため、矛盾を生成するためにカーディナリティの引数を作成することはできません(そしてしたく​​ありません)。

考えられない...

Inductive気になるタイプのクローズドワールドエンコーディングを作成し、それを上記の判断のポリモーフィック変数にする必要がありますか?

アーサー・アゼベド・デ・アモリム

型の不等式を使用したい場合、あなたができる最善のことは、関心のある型のすべてのペアに対して公理を仮定することだと思います。

Axiom nat_not_string : nat <> string.
Axiom nat_not_pair : forall A B, nat <> A * B.
(* ... *)

Coqでは、帰納的に定義された型の名前について話す一流の方法がないので、単一の仮定でこの公理のファミリーを述べる方法があるべきではありません。当然、OCamlでCoqプラグインを記述して、帰納型が定義されるたびにこれらの公理を自動的に生成できる場合があります。しかし、必要な公理の数はタイプの数で二次関数的に増加するので、すぐに手に負えなくなると思います。

この場合、実際には、「考えられない」アプローチがおそらく最も便利です。

(Nit:「Coqの論理が一価性と一致している場合、それは一価性の否定とも一致している必要があります」。はい。ただし、Coqが一価性を証明できないためです。)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プリミティブのようなラッパーの不等式をテストできるのはなぜですか?作成したクラスにそれを行うことはできますか?

分類Dev

データテーブルのローリング結合条件を弱い不等式から厳密な不等式にどのように変更しますか?

分類Dev

CQLでパーティションキーを使用した不等式演算子が許可されるのはなぜですか?

分類Dev

Pythonで複数の変数を使用して等式と不等式を解決します

分類Dev

cvxpyで複雑な制約を指定すると、厳密な不等式エラーが発生します

分類Dev

junitのfloatの不等式をアサートします

分類Dev

テンプレートパラメータの不等式に応じて異なる関数を実行します

分類Dev

ローカル変数を入力としてディレクティブに渡します

分類Dev

ディレクティブの入力ファイル変更リスナーがスコープ変数を更新しない[プランカーが添付されています]

分類Dev

厳密な不等式と欠測データに基づいてパンダのデータフレームをフィルタリングする

分類Dev

関数に渡されたときのリスト要素の予期しない不等式(ローカルではない)

分類Dev

正確なカーディナリティを持つプロパティは機能しますか?

分類Dev

constrOptim:適応バリアアルゴリズムを使用して線形不等式制約の対象となる関数を最小化します

分類Dev

Reactjsマテリアル-uiTextFieldは、カラーラベルを変更し、アクティビティフィールド入力に下線を引きます

分類Dev

Firestore:不等式/不等式でクエリを実行する方法

分類Dev

予期しないカーディナリティ違反(サブクエリが複数の行を返す)

分類Dev

Isabelleで不等式のデータ型を作成する

分類Dev

レベルの数が等しくない要素の不等式をテストするにはどうすればよいですか?

分類Dev

ベクトルと「:」を使用したR forループに不等式があるのはなぜですか?

分類Dev

ユーザー入力文字列からの不等式を使用する

分類Dev

多くのC ++標準ライブラリコードで不等式が(!(a == b))としてテストされるのはなぜですか?

分類Dev

Angular Materialの「md-chips」ディレクティブは、selectの入力フィールドを制御する方法がチップコンテナではなくフォーカスされていましたか?

分類Dev

制約の不平等。ジュリアで次の数式を書こうとしていますが、不等式の扱い方がわかりません

分類Dev

Reactjsはスクロール可能なコンテナで入力フィールドを追加/削除します

分類Dev

Mysqlphpmyadminは空のカーディナリティを表示します

分類Dev

別のコンテナに入力フィールドを追加した後、もう一度クリックしない限り、テキスト入力を入力し続けることができません。それは焦点を失います

分類Dev

基本的なナビゲーションドロワーアクティビティの引数を更新します

分類Dev

文字列プロパティの不等式で検索

分類Dev

Meteor.jsで完了したフォーム入力の数をリアクティブにカウントします

Related 関連記事

  1. 1

    プリミティブのようなラッパーの不等式をテストできるのはなぜですか?作成したクラスにそれを行うことはできますか?

  2. 2

    データテーブルのローリング結合条件を弱い不等式から厳密な不等式にどのように変更しますか?

  3. 3

    CQLでパーティションキーを使用した不等式演算子が許可されるのはなぜですか?

  4. 4

    Pythonで複数の変数を使用して等式と不等式を解決します

  5. 5

    cvxpyで複雑な制約を指定すると、厳密な不等式エラーが発生します

  6. 6

    junitのfloatの不等式をアサートします

  7. 7

    テンプレートパラメータの不等式に応じて異なる関数を実行します

  8. 8

    ローカル変数を入力としてディレクティブに渡します

  9. 9

    ディレクティブの入力ファイル変更リスナーがスコープ変数を更新しない[プランカーが添付されています]

  10. 10

    厳密な不等式と欠測データに基づいてパンダのデータフレームをフィルタリングする

  11. 11

    関数に渡されたときのリスト要素の予期しない不等式(ローカルではない)

  12. 12

    正確なカーディナリティを持つプロパティは機能しますか?

  13. 13

    constrOptim:適応バリアアルゴリズムを使用して線形不等式制約の対象となる関数を最小化します

  14. 14

    Reactjsマテリアル-uiTextFieldは、カラーラベルを変更し、アクティビティフィールド入力に下線を引きます

  15. 15

    Firestore:不等式/不等式でクエリを実行する方法

  16. 16

    予期しないカーディナリティ違反(サブクエリが複数の行を返す)

  17. 17

    Isabelleで不等式のデータ型を作成する

  18. 18

    レベルの数が等しくない要素の不等式をテストするにはどうすればよいですか?

  19. 19

    ベクトルと「:」を使用したR forループに不等式があるのはなぜですか?

  20. 20

    ユーザー入力文字列からの不等式を使用する

  21. 21

    多くのC ++標準ライブラリコードで不等式が(!(a == b))としてテストされるのはなぜですか?

  22. 22

    Angular Materialの「md-chips」ディレクティブは、selectの入力フィールドを制御する方法がチップコンテナではなくフォーカスされていましたか?

  23. 23

    制約の不平等。ジュリアで次の数式を書こうとしていますが、不等式の扱い方がわかりません

  24. 24

    Reactjsはスクロール可能なコンテナで入力フィールドを追加/削除します

  25. 25

    Mysqlphpmyadminは空のカーディナリティを表示します

  26. 26

    別のコンテナに入力フィールドを追加した後、もう一度クリックしない限り、テキスト入力を入力し続けることができません。それは焦点を失います

  27. 27

    基本的なナビゲーションドロワーアクティビティの引数を更新します

  28. 28

    文字列プロパティの不等式で検索

  29. 29

    Meteor.jsで完了したフォーム入力の数をリアクティブにカウントします

ホットタグ

アーカイブ