coq

    3

    1答えて

    私は次のコードスニペットを持っています。 Set Implicit Arguments. Inductive Simple (A: Type) := simple : Simple A. Inductive Wrap (A: Type) := | wrap : A -> Wrap A | funWrap : forall X, Simple X -> (X -> Wrap A) -> W

    2

    1答えて

    私はすべてのグループに逆関数があることを証明しようとしています。 次のように私はグループを定義しています Record Group:Type := { G:Set; mult:G->G->G; e:G; assoc:forall x y z:G, mult x (mult y z)=mult (mult x y) z; neut:forall x:G, mult e x=x /\ mul

    4

    3答えて

    explicit universesを使用して、固定ユニバース階層をCoqに作成する可能性を検討しています。定数を使用しようとする(2、3、4)の構築では、失敗しました:終了時に、全ての組み合わせがまだです。TypeCheck(すなわち、すべての宣言されたユニバースは、として階層的に任意扱われる): Universe k l m x y z. Let x := 2. Definition k

    1

    2答えて

    における逆方向状態モナド、バインドの次の定義が受け入れられます。 type RState s a = s -> (a, s) bind :: RState s a -> (a -> RState s b) -> RState s b bind sf f = \s -> let (a, s'') = sf s' (b, s') = f a s in (b, s'

    7

    2答えて

    Agdaとは異なり、Coqは証明と機能を分離する傾向があります。 Coqが提供する戦術は、校正を書くのに最適ですが、Agdaモードの機能を再現する方法があるかどうかは疑問です。 具体的には、私がしたい: Agdaの?やHaskellの_の一部と同等に、私はそれを書いている間、機能の一部を省略し、(たぶん)コックは私伝える持つことができる場所タイプ私はあなたが機能して?ブロックを埋めるAgdaモード

    1

    1答えて

    WindowsとMacの両方でhttps://coq.inria.fr/のダウンロードリンクを使用してCoqをインストールしています。しかし、端末またはコマンドプロンプトでcoqcまたはcoqtopを試すと、コマンドが見つからないというエラーメッセージが表示されます。 Coq IDEでCoqをほぼ完璧に動かすことができますが、バッファをコンパイルすると、特にSoftware Foundations

    0

    1答えて

    Coqのtypeclass関数の計算(またはその不足)の動作を理解できません。 Class class1 : Set := { class_func1 : nat -> nat }. Class class2 : Set := { class_func2 : nat -> nat ; class_prop2 : forall x : nat, x = x

    3

    1答えて

    Coquelicotをmathcomp/SSreflectの上にインストールしました。 私はまだ標準Coqを習得していなくても、非常に基本的な実際の分析を実行したいと思います。 これが私の最初の補題です: Definition fsquare (x : R) : R := x^2. Lemma deriv_x2 : forall y, is_derive (fsquare) y (2 * y).

    3

    1答えて

    私はcoqにはかなり新しく、これまで手で証明できるものだけを証明することができました。ですからセレクションモナドを見て、それをインテルで実装しようと思ったとき、それは良いエクササイズになると思ったが、私は立ち往生した。誰かが、選択モナドが応用的でモナドであるという証拠の例をcoqで提供することができますか?ここにfunkのhaskell実装があります。 newtype Sel r a = Sel