で空の範囲にわたる証拠は、私は形でゴールを証明する必要があります。 forall x: ordinal_finType m, P x
私は私が私のスタックでHm: m = 0を持っている場合には、現在午前に、これは、本質的にオーバーforallです空集合。この場合、どうすればいいですか? case => x.
を使用すると、 forall i : (x < m)%N, P i
で私を残
私は包括的な数量化された関数を含む関数をカリングするための戦術を書こうとしています。 Require Import Coq.Program.Tactics.
Definition curry1 := forall A B C, (A /\ B -> C) -> (A -> B -> C).
Definition curry2 := forall A B, (forall C, A /\ B
Ltac checkForall H :=
let T := type of H in
match T with
| forall x, ?P x =>
idtac
| _ =>
fail 1 "not a forall"
end.
Example test : (forall x, x) -> True.
Proof.
私は以下の質問をしています。 (* Suppose we have type A *)
Variable A: Type.
(* Also we have a function that returns the type (option A) *)
Definition f_opt x: option A := ...
(* Then, I can pr
更新:Arthur Azevedo De Amorimの助けを借りて、私はついにそれを管理します。コードは質問の最後に添付されています。 私は本 "タイプとプログラミング言語」を読んでいます、と私はのCoQを使用して、この本の中で、各定理(補題)を証明しようとしています。定理3.5.4になったとき、私はそれを試して管理できませんでした。ここに問題の説明があります。 ASTと小さな言語: t = :
次のようなタイプチェック(coq-8.5pl3)がないのはなぜですか?パターンマッチングは、uとvが同じタイプであることを忘れているようです。 Inductive X : Type -> Type :=
| XId : forall a, X a -> X a
| XUnit : X unit.
Fixpoint f {a : Type} (x : X a) (y : X a) : a :
私はposetsよりも文字列の辞書順を定義しようとしていますが、PartialOrder typeclassの使い方は完全にはわかりません。 Require Import List RelationClasses.
Fail Inductive lex_leq {A : Type} `{po : PartialOrder A} : list A -> list A -> Prop :=