coq

    7

    1答えて

    私は、明示的にインデックスをスレッド化することなく、インデックス付きの型を書くためのライブラリを持っています。これは、無関係の配管を隠すことによって、よりクリーンなトップレベルタイプにつながります。 Fail Definition id {A : nat -> Type} : [ A :-> A ] := fun a => a. Definition id {A : nat -> Type} :

    3

    1答えて

    誰かに簡単な例を教えてもらえますかStreicher_K_公理Coq.Logic.EqdepFactsから? はたぶん単純な事実を示すために:私もある、Streicher_K_でそれを証明する方法を見つけ試行錯誤によって Variable A:Type. Variable x:A. Axiom SK:Streicher_K_on_ A x (fun p:x=x => (eq_refl x) =

    1

    1答えて

    に式を解決し、私は単一の式が複数のインスタンスに解決したい: Inductive SR: Prop := Sen | Inf. Parameter CA S: Prop. Parameter X: SR -> CA -> Prop -> Prop. Parameter X': SR -> CA -> Prop -> Set. Parameter XP: SR -> CA -> Prop -

    1

    1答えて

    BNF文法を定義するにあたっては、文法が「転送」となるように、定義する前に事柄を使用するのが一般的です。 これをcoqでどうやって行うことができますが、それでもバッファを通過することができますか?

    0

    1答えて

    は私が Definition f (s:Unit) : tt=tt := match s with tt => idpath end. Definition g (p:tt=tt) : Unit := match p with idpath => tt end. を持っていると私はforall (p:tt=tt), (f o g) p = pを証明したいと思います。 私は、HoTTの本の1.

    2

    1答えて

    私はcoqで何かを証明しようとしています。 誘導の再帰(nilでない)ステップ内でFixpointの定義を展開したいと思います。期待通りに作品を展開、ここでは例です: リストリバース(REV)の定義を展開する前に: n : nat l' : natlist IHl' : rev (rev l') = l' ============================

    1

    1答えて

    私はCoqにはかなり新しく、not_iff_compat theoremをプルーフに使用しようとするとエラーが発生します。たとえば、以下のMWEを与えられた: Require Import Coq.Init.Logic. Lemma dummy: forall A B, (A <-> B) -> (~A <-> ~B). Proof. apply not_iff_compat. Q

    2

    1答えて

    私はMapとPartialMapと呼ばれる一対のタイプメスを定義しました。特に、それらは、Vまたはoption Vを超えているかどうかでのみ異なります。 PartialMapは、本質的にはMapという特殊なケースです。しかし、私はそれをどのようにエンコードするのか分かりません。 Class Map M K V: Type := { get: M K V -> K -> V; s

    1

    1答えて

    私は自分のタイプMytypeを持っています。これはある種の式を定義しています。この式をCoq命題Propに翻訳したいと思います。これを行うには、私はforall <variable 15>, <variable 15> /\ <variable (15+1)>と書くことができる何らかのメタプログラミングが必要なような気がします。ここで は私が翻訳したいMWEです: Inductive Myprop

    1

    1答えて

    私はCoq開発でMSetライブラリを使用しようとしていますが、ライブラリにはないmap関数が必要ですが、通常のようにfoldを使用して実装できます。 gistの中で、私は、公理がいっぱいで、作業しているものを単純化しました。 Definition map (f : Exp -> Exp) s := MSet.fold (fun a ac => MSet.add (f a) ac) MSe