coq

    1

    1答えて

    f_equal誘導コンストラクタを含む等価プルーフには、戦術が無条件に役立ちます。 a :: s = a' :: sはこのような目標になり、a = a'になります。 任意の機能で使用することは、別の話です。 4 mod 2 = 2 mod 2は4 = 2に減少しますが、これは明らかに不合理です。 自動的f_equal(または類似)を適用する方法があります場合、私は、例えば、それは情報を失わない場合

    1

    1答えて

    私は共導入があまりよくないと認めなければなりません。私は共自然数で二重共鳴の原理を示すことを試みていますが、私は(対称の)対の場合についています。 CoInductive conat := | cozero : conat | cosucc : conat -> conat. CoInductive conat_eq : conat -> conat -> Prop :=

    0

    1答えて

    私はCoq用語言語で書かれた "列挙型"関数を持っています。この関数は、enumerate関数が使用されているときはいつも、明示的に指定する必要があるので、使用するのは面倒です(リスト内の要素の型はAです)。パラメータとしてAを明示的に渡す必要を避ける方法はありますか? (* [a, b] -> [(0,a), (1,b)] *) Fixpoint enumerate (A : Type) (l

    1

    1答えて

    に排除することなく、コックに証明するとき、私はソートされたリストの末尾ではなく戦術のパターンマッチングを使用して、コックにソートされていることを証明しようとしている: Require Import Coq.Sorting.Sorted. Definition tail_also_sorted {A : Prop} {R : relation A} {h : A} {t : list A}

    1

    1答えて

    私はブール値の2つのリストが同等であることを証明しようとしています(明らかにリストを構造的に歩く平等の定義を使用していれば)、それらの長さは同じです。そうすることの過程で は、しかし、私は無人島/偽であるという仮説と状況に終わるが、文字通りFalse(ひいてはcontradiction戦術の標的とすることはできません)ではありません。 これまで私がこれまで持っていたことは次のとおりです。この後 R

    6

    2答えて

    Ltacで複雑な戦術を実装すると、失敗すると予想されるLtacコマンドや戦術呼び出しがあります(例えば、repeatを終了する、またはバックトラックを引き起こすなど)。これらの障害は通常、障害レベル0で発生します。 高レベルで発生した障害は、周囲のtryまたはrepeatブロックを「エスケープ」し、予期しない障害を通知するのに役立ちます。 私が紛失しているのは、戦術を実行し、レベル0であっても、失

    4

    2答えて

    を失うことなく、次の展開を考えてみましょう: Require Import Relation RelationClasses. Set Implicit Arguments. CoInductive stream (A : Type) : Type := | scons : A -> stream A -> stream A. CoInductive stream_le (A : T

    0

    1答えて

    古いバージョンを保持し、書き換えの結果を新しい名前で保存して仮説を書き直したいと思います。私はどうしたらいいですか?

    1

    1答えて

    で部分的な機能です:のためにそうすること、を証明するのは簡単ですが Lemma constructor_functional : forall i1 i2, mkA i1 <> mkA i2 -> i1 <> i2. : Inductive A := mkA : nat -> A. 実証コンストラクタは、部分的な機能をとしてエンコードすることができていますすべての定義されたタイプは奇妙

    3

    1答えて

    私は以下の時間の定義に証明用語の一致部分にコックの型システムの動作について困惑している: Set Implicit Arguments. Definition h := fun (a b : nat) (e : a = b) => (fun (x y : nat)(HC : b = y)(H : x = y) => (match H in (_ = y0) return (b = y0 ->