【问题标题】:Coq notation format for double square braces用于双方括号的 Coq 表示法格式
【发布时间】:2016-10-03 23:37:51
【问题描述】:

根据文档,可以定义打印符号的格式: https://coq.inria.fr/refman/Reference-Manual014.html#sec530

但是,可以定义如下符号:

Notation " '[[' a ']]' b " := (* something *).

两者能否互动,目前还很不清楚。尝试:

format " '[hv' '[[' a ']]' ']' b "

例如,Coq 跳闸,因为它期望方括号后面跟着 vhv 之一。

到目前为止,我尝试过的任何其他类型的转义都会使 Coq 拒绝该格式,因为它与符号不匹配。

我不确定这是否可以做到......

【问题讨论】:

    标签: format coq notation


    【解决方案1】:

    你的朋友是metasyntax:parse_formathttps://github.com/coq/coq/blob/trunk/toplevel/metasyntax.ml#L102

    正如您在代码中看到的那样,您的具体方案不起作用。我不知道是否有一些特定的技巧,现在你必须停止使用双括号。

    不过,我确信 Coq 上游会考虑在 parse_quoted 中添加 [[ 案例的补丁。

    希望 8.7 会带来一些改进,CEP#9 尝试提议将反解析替换/演变为真正的基于框的模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      相关资源
      最近更新 更多