Coqでアサートを許可する方法はありますか? は、私はこのような定理があるとします。 Theorem test : forall m n : nat,
m * n = n * m.
Proof.
intros n m.
assert (H1: m + m * n = m * S n). { Admitted. }
Abort.
上記のassertが私のために動
私はcoqにはかなり新しく、これまで手で証明できるものだけを証明することができました。ですからセレクションモナドを見て、それをインテルで実装しようと思ったとき、それは良いエクササイズになると思ったが、私は立ち往生した。誰かが、選択モナドが応用的でモナドであるという証拠の例をcoqで提供することができますか?ここにfunkのhaskell実装があります。 newtype Sel r a = Sel
私は2つのほとんど同じ言語(fooとbar)に定義: theory SimpTr
imports Main
begin
type_synonym vname = "string"
type_synonym 'a env = "vname ⇒ 'a option"
datatype foo_exp =
FooBConst bool |
FooIConst i
私は推論したいプログラミングランゲージのASTのデータ型を持っていますが、ASTのコンストラクタは約10種類あります。 data Term : Set where
UnitTerm : Term
VarTerm : Var -> Term
...
SeqTerm : Term -> Term -> Term
私は、この言語の構文木のために決定的な平等性を