你好!
我正在探索 clojure.spec.alpha 的一个 实现,并发现了一系列相对“小”的 测试 :)
Clojure spec 定义了一组可以相互组合的基本类型。
换句话说,Clojure spec 定义了一种描述结构及其预测性属性的语言。
假设 spec 语义在 动机 和 指南 中非正式描述,您是如何推理声明语义与 spec 实现之间的一致性的呢?
我 expected 一个庞大的测试集合,涵盖了基本场景及其有限数量的组合 -- 类似于归纳基础。如果归纳基础是正确的,那么其他组合也是最有效的。
您是如何推理 clojure.spec.alpha 验证实现正确性的呢?
更新:根据 Alex Miller 的第一个回答,将问题背景缩小到 验证
方面。