0
Coqのtypeclass関数の計算(またはその不足)の動作を理解できません。TypeclassにPropがある場合、Coqはtypeclass関数を計算しません。
Class class1 : Set := { class_func1 : nat -> nat }.
Class class2 : Set := { class_func2 : nat -> nat
; class_prop2 : forall x : nat, x = x
}.
Instance class1_instance : class1 := { class_func1 := S }.
Instance class2_instance : class2 := { class_func2 := S }.
Proof.
auto.
Qed.
Compute class_func1 5.
Compute class_func2 5.
私はCompute class_func1 5.
を呼び出し、コックを出力6 : nat
期待通り:ここでは、最小限の作業例です。しかし、私はCompute class_func2 5.
を呼び出すときに、私は
= (let (class_func2, _) := class2_instance in class_func2) 5
: nat
を取得し、私は結果なしで、証明編集モードにおける関連条項にunfold
とcompute
を使用してみました。また、Prop
のインスタンスをType
に置き換えようとしましたが、結果はありません。
TypeclassにProp
がある場合、Coqが関数を計算しない理由を誰かが明確にすることはできますか?
これをクリアしていただきありがとうございます! 「Qed」と「Defined」にはそのような意味がありませんでした。申し訳ありませんすべての基本的な質問:P – Langston
これはQ&Aサイトです:)あなたは大歓迎です! –