0
從手動FMapInterface.In
定義爲:如何從FMapInterface.MapsTo獲取FMapInterface.In,反之亦然?
Definition In (k:key)(m: t elt) : Prop := exists e:elt, MapsTo k e m.
所以,我期待的是展開一個術語In k m
會產生exists e, MapsTo k e m
。
然而,在Coq的8.4pl4,鑑於這樣的:
______________________________________(1/1)
In (elt:=t) k m
通過發出執行unfold
產量
______________________________________(1/1)
Raw.In0 t (this m)
一個Print M
(其中M
是所討論的模塊)我得到
Module M
: Sig
.
.
.
End
:= (FMapAVL.Make ID)
我的解決方案是使用引理find_mapsto_iff
和in_find_iff
(來自FMapFacts
),但看起來過於複雜。爲什麼不展開定義的工作?
您確定初始In是FMapInterface.In?你可以設置打印全部或東西? – Ptival 2014-12-04 00:36:51
事實上,它不是最初的FMapInterface.In。它是FMapAVL.Make的一個實例(注意'Print M'的輸出)。 – 2014-12-04 10:01:05