在Coq中找到像++这样的定义和符号

时间:2014-09-25 02:34:28

标签: coq

我们如何获得"+""++" List等符号的定义/类型?

我尝试过:Search ++Search "++"Search (++),  SearchAbout ...Check ++Check "++"Check(++)

但是它们都不起作用......

SearchAbout "++"确实显示了一些信息,但没有显示"++"的定义。

2 个答案:

答案 0 :(得分:17)

执行:

Locate "++".

查找符号。

然后,您可以Print / Check表示实际字词。

答案 1 :(得分:7)

除了之前的回答,您可以使用Unfold "++"展开其定义,而无需先找到它。

示例:

Coq < Goal forall A (l : list A), l ++ [] = [].
1 subgoal

  ============================
   forall (A : Type) (l : list A), l ++ [] = []

Unnamed_thm < unfold "++".
1 subgoal

  ============================
   forall (A : Type) (l : list A),
   (fix app (l0 m : list A) {struct l0} : list A :=
      match l0 with
      | [] => m
      | a :: l1 => a :: app l1 m
      end) l [] = []