私は、第11章のCoq 8.5p1のリファレンスマニュアルの数学的/宣言的証明言語についての例を(不完全な)例に従っていました。反復等式(~=
と=~
)については、以下の例では、私は2+2
へ4
を書き換えるための警告Insufficient Justification
を得て、最終的に言ってエラーを得た:Coq証明言語に「それ以上の副目標はありませんが、インスタンス化されていない実在変数がありますか?
これ以上のサブゴールを、しかし非インスタンス化実存 変数があります:
目標:[X:RH:x = 2の_eq0:= X * X 4 | - 2 + 2 = 4]?
あなたはグラブ実存変数を使用することができます。
例:
Goal forall x, x = 2 -> x + x = x * x.
Proof.
proof. Show.
let x:R.
assume H: (x = 2). Show.
have (4 = 4). Show.
~= (2*2). Show.
~= (x*x) by H. Show.
=~ (2+2). Show. (*Problem Here: Insufficient Justification*)
=~ H':(x + x) by H.
thus thesis by H'.
end proof.
Fail Qed.
私はCoqの中に数学的な証明の言語に精通していないよ、これがなぜ起こるか理解できませんでした。誰かがエラーを修正する方法を説明するのを助けることができますか?
--EDIT-- @Vinz
私は例の前にこれらのランダム輸入していた:
Require Import Reals.
Require Import Fourier.
このような構文を使用するために使用する 'Require'またはライブラリを追加できますか? – Vinz
申し訳ありませんが、スクリプトatmをテストするCoq 8.5はありません。通常、これは目標を証明することができますが、一部のメタバリアブル(サブゴールを解決することで通常入力するタイプの穴を考える)はインスタンス化されずに残されています。 – Vinz