为了学习Coq,我从here下载了Benjamin Pierce的电子书软件基础,并提取了内容。我现在开始在Basics.v
中完成练习,直接在Vim中编辑文件。
我想自动评分我的答案(例如跟踪我的得分与时间的关系)。
为此做准备,我按照coqc
中给出的顺序对每个.v
文件运行Makefile
。因此,我now able to invoke,例如coqtop -batch -l BasicsTest.v
。
但是,虽然这会报告该章的可用分数,但它不会报告我的分数。 (我在本章中途,我相信到目前为止我的答案是正确的,因为coqtop -batch -l Basics.v
执行没有错误。)
我怀疑我忽略了Make或Coq的调用,这将导致我的答案到目前为止得分。如果是这样,它是什么?
答案 0 :(得分:12)
自动编程器目前尚未完成。我们希望在接下来的几个月内完成它,并在我们这样做时将其提供。但正如Rob所说,在当前测试版中运行BasicsTest.v时,它并没有告诉你更多。
更新2018年12月:自动编程完成。我们还没有打包它(除了像BasicsTest.v这样的实际测试文件)以供公开发布,但是我们很乐意为想要使用它的教师提供Git repo的访问权。
答案 1 :(得分:3)
BasicsTest.v
未在当前版本的 Software Foundations 中生成成绩。您可以单步执行它并查看它的作用:它只需完成练习,执行一些基本检查并报告其结果。但是,不会根据这些检查的结果生成分数。
如果您的定义和证明是完整的(例如,不是Admitted
)并且Coq的类型检查员接受了它们,您可以合理地确信答案是正确的,除非您的开发中的某些内容违反了Coq的逻辑(在这个早期阶段非常不可能)或者你偶然发现了一个错误(也极不可能)。