我正在尝试理解和编译Coq中的线性逻辑形式化:http://www.cs.nuim.ie/~jpower/Research/LinearLogic/ http://www.cs.nuim.ie/~jpower/Research/LinearLogic/ILL.v
以下是此代码:
Inductive LinCons : (list ILinProp) -> ILinProp -> Prop :=
(* Structural Rules *)
Identity :
(A:ILinProp)
(`A |- A)
| Exchange :
(A,B,C : ILinProp)(D1,D2 : (list ILinProp))
((D1 ^ `A ^ `B ^ D2 |- C) -> (D1 ^ `B ^ `A ^ D2 |- C))
...
但是这段代码没有编译,它为代码段A提供了错误消息Syntax Error: Lexer: Undefined token
。
在随附的文章中说,`simbol表示由一个元素组成的单例列表,如果是列表的串联则表示^符号。
那么 - 为什么最近的(CoqIDE 8.6.1)Coq无法识别这些符号,我应该在ILL.v文件的开头导入任何附加理论吗?
答案 0 :(得分:2)
文件使用的语法在作为开发一部分的moreLists文件中定义。然而,该论文写于1999年,那里使用的Coq版本与当前版本几乎没有关系。可悲的是,您现在需要大量工作才能将该开发移植到现在。例如,当时Coq有一套不同的基本策略,一个不同的标准库和一个不同的语法扩展机制。