Find the definition and notations like ++ in Coq

前端 未结 2 1621
死守一世寂寞
死守一世寂寞 2021-02-12 13:08

How can we get the definition/type for those notations like \"+\", or \"++\" of List?

I have tried : Search ++,

2条回答
  •  花落未央
    2021-02-12 14:05

    In addition to previous answer, you can use Unfold "++" to unfold it's definition without locating it first.

    Example:

    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 [] = []
    

提交回复
热议问题