我试图:
从非 ssreflect Coq 的角度理解 Coq/ssreflect 证明中(冒号)的确切含义。
我读到它与将事物移向目标有关(例如泛化??),并且与=>
将事物移向假设相反。但是,我经常觉得它令人困惑,因为无论有没有:
. 以下是教程中的示例:
Lemma tmirror_leaf2 t : tmirror (tmirror t) = Leaf -> t = Leaf.
Proof.
move=> e.
by apply: (tmirror_leaf (tmirror_leaf e)).
Qed.
在哪里,
tmirror_leaf
: forall t, tmirror t = Leaf -> t = Leaf
是一个引理,如果一棵树的镜子是一片叶子,那么这棵树就是一片叶子。
我不明白为什么我们需要:
here 而不仅仅是做 Coq apply
。事实上,如果我删除:
,它工作得很好。为什么会有所作为?