“是什么意思?”|-&引用;在coq中,我如何找到其他似乎未记录的符号的定义?

“是什么意思?”|-&引用;在coq中,我如何找到其他似乎未记录的符号的定义?,coq,Coq,coq中的“|-”是什么意思?它似乎用于可能引用术语或模式的地方,例如: simpl in |- *. 或者,从Coq.Init.Tauto Local Ltac not_dep_intros := repeat match goal with | |- (forall (_: ?X1), ?X2) => intro | |- (Coq.Init.Logic.not _) => unfold Coq.Init.Logic.not at 1; intro end.

coq中的“|-”是什么意思?它似乎用于可能引用术语或模式的地方,例如:

 simpl in |- *.
或者,从Coq.Init.Tauto

Local Ltac not_dep_intros :=
  repeat match goal with
  | |- (forall (_: ?X1), ?X2) => intro
  | |- (Coq.Init.Logic.not _) => unfold Coq.Init.Logic.not at 1; intro
  end.
但是coq参考手册只说它是在前奏曲中加载的,可能写得太多了。而标准的图书馆文档却什么也没说。除此之外,诸如搜索、定位、检查、打印、展开等命令似乎也无法提供任何相关信息


“[=”和“**”更为神秘,因为我只知道存在,因为手册上说它们是在序曲中加载的。

记录了
-
标记。其含义通常是将假设与目标分开,因为
-
的ASCII格式⊢siml in*.-
表示“
siml
在假设中”,而
siml in*.-*
表示“
siml
在目标中”,而
siml in H*.-*
表示“
siml
H
中以及目标”。不幸的是,没有为
siml
记录语法(我报告这是一个bug),但为
重写
记录了语法

match goal
中的
|-
的语法是有文档记录的,用于区分假设模式和目标模式

一般来说,找到策略的最佳位置是在,但我认为这些不是你所说的适当策略。我认为你正在考虑的是
简介**
简介[=H]
,这两种都是简介模式。请参阅。特别是:

  • [=intropattern*,]
    -如果产品超过相等类型,则应用
    注入
    判别
    。如果注入适用,则
    导入模式
    用于
    注入
    生成的假设。如果模式数量小于生成的假设数量,则模式
    ?用于完成列表。示例
  • **
    -从结果中引入一个或多个量化变量或假设,直到没有更多量化变量或含义(
    ->
    )。
    简介**
    等同于
    简介
    。示例