双方括号

时间:2016-10-03 23:37:52

标签: format coq notation

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

但是,可以定义一个符号,例如:

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

目前尚不清楚两者是否可以相互作用。尝试:

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

例如,考虑到Coq,因为它期望方括号后跟vhv之一。

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

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

1 个答案:

答案 0 :(得分:2)

您的朋友在metasyntax:parse_format https://github.com/coq/coq/blob/trunk/toplevel/metasyntax.ml#L102

正如您在代码中看到的那样,您的具体方案无法运行。我不知道是否会有某些特定的黑客,现在你不得不停止使用双括号。

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

希望8.7会在这里带来一些改进,CEP#9试图建议将未解析替换/演变为真正的基于盒子的模型。