3
我正在使用Coq中的數學類庫。這個庫巧妙地使用了類型來重載符號,就像這樣。在Coq中展開嵌套定義
(* From math-classes *)
Class Equiv A := equiv : relation A.
Infix "=" := equiv : type_scope.
(* My code *)
Definition MyDataType : Type := ...
Definition MyEquality (x y : MyDataType) : Prop := ...
Instance MyEq_equiv : Equiv MyDataType := MyEquality.
我可以定義這種情況下許多不同的數據類型和x = y
將 被理解爲我已經註冊了x
和y
感謝到實例解析機制類型的平等。
然而,與這些等式中證明是處理有點惱人,因爲我有很多unfold
連續定義:
Lemma MyEquality_refl : forall x : MyDataType, x = x.
Proof.
intro.
unfold equiv, MyEq_equiv, MyEquality.
...
Qed.
有沒有更有效的方法來做到這一點unfold
?
您的第二個解決方案效果很好,謝謝! – pintoch
很高興幫助:) –