Emacs 无法设置具有依赖类型的认证编程
我正在使用《依赖类型认证编程》一书,但每次我都会发现不同的错误。在我看来,这个错误来自于从Proof General到本书源代码的makefile的编译过程之间的不匹配Emacs 无法设置具有依赖类型的认证编程,emacs,coq,proof-general,Emacs,Coq,Proof General,我正在使用《依赖类型认证编程》一书,但每次我都会发现不同的错误。在我看来,这个错误来自于从Proof General到本书源代码的makefile的编译过程之间的不匹配 如果我使用make编译源代码,并尝试运行实例Subset.v,那么通常我会得到: 错误:文件/home/usuario/Desktop/Coq/cpdt/src/cpdttractics.vo已被删除 坏魔术数字81100(预计8600)。它已损坏或已损坏 使用Coq的另一个版本编译 如果我使用makeclean清理makefi
如何解决这个问题?附带问题:您使用的是哪个操作系统?您是否依赖于
opam
关于您遇到的第一个错误,它肯定来自以下事实:
- 在proofgeneral之外,
二进制对应Coq 8.11,而在proofgeneral中,coqc
二进制对应Coq 8.6。可能是因为coqtop
变量在两种上下文中不相同PATH
- 要确定找到了哪个二进制文件,可以在终端
中以及在Emacs中,使用M-!哪一个coqtop RET,你应该得到不同的路径的哪个coqtop
- 有时,直接从终端打开
(emacs
)可以帮助解决此类问题emacs&
- 但是,如果要更改ProofGeneral中使用的
二进制文件,可以使用以下步骤之一设置coqtop
选项:coq prog name
- 以交互方式键入C-u C-C C-x(杀死Coq)、M-:(setq Coq prog name“../coqtop”)和C-C C-n
- 或者在项目根目录中创建一个
文件(Emacs的标准配置文件),其中包含:.dir locals.el
然后关闭/重新打开处于危险中的((coq-mode . ((coq-prog-name . "…/coqtop"))))
文件(或者在已打开的…v
缓冲区中执行M-x正常模式RET或C-x C-v RET)…v
Require Extraction
触发了这个错误,因为这个库确实存在于Coq 8.6和8.11中
乍一看,我建议用Coq 8.11重新测试自动编译,从Coq断言需要提取。
(而不仅仅是需要提取。
)
但PG的自动编译->在require
之前编译功能中可能存在缺陷;无论如何,如果需要,请随时在PG tracker中打开相关问题,非常欢迎bug报告和功能请求: