Coq文档的异步处理技术解析
1. 引言
将Coq集成到PIDE中间件后,我们得到了一个基于jEdit编辑器的现代用户界面,它遵循了像Eclipse或Visual Studio等工具所推广的“拼写检查范式”。用户可以自由编辑文档,证明器会不断用报告对文档进行注释,例如用红色下划线标记有问题的句子。
2. 无序处理形式文档
- 系统处理策略 :与PIDE推广的异步交互模型中的REPL不同,证明器会了解整个文档,并优先处理用户正在查看的文本部分。为此,系统需要识别文档中与用户无关的部分,并推迟处理。
- 不透明证明的特性 :在Coq中,不透明证明具有特殊性质。不透明证明是文档中用户通过编写一系列策略来构建证明证据(在Coq术语中称为证明项),并以Qed关键字结束的部分。生成的证明项是不透明的,系统内核会验证它并存储在磁盘上,但不会使用该证明项,仅使用其对应的陈述(类型)。
- 不透明证明的重要性 :不透明证明的概念早在Coq 5.10.5版本(1994年5月发布)就已引入,这对我们至关重要。由于不使用证明项,我们可以尽可能推迟构建它的文档部分的处理。证明通常很长,处理它们所花费的时间通常占检查整个文档所需总时间的大部分。例如,在奇数阶定理的证明中,证明部分占非空白内容的60%(3.175 KB / 5.262 KB),Coq 90%的时间都花在处理它们上。因此,通过合理安排不透明证明的处理,系统的响应速度可以提高十倍。而且,每个证明之间的独立性使得可以并行处理多个证明,这为利用现代并行硬件提供了很好的机会。
超级会员免费看
订阅专栏 解锁全文
3943

被折叠的 条评论
为什么被折叠?



