在函数编程中,根据递归数据类型的初始代数语义,数据类型按菜单提供了一种方便的模块化表示。不幸的是,在基于类型理论的证明助手(如Coq)中实现这一技术非常具有挑战性。原因是它涉及类型定义,例如类型级固定点运算符的类型定义,这些定义不是严格意义上的正。非指示性编码的已知工作区存在问题,因为它阻碍了传统的归纳推理。弱归纳原理可以代替,但它们使证明相当复杂。 本文基于门德尔式归纳法,提出了一种新的、更简单的方法来归纳非指示性编码。这项技术涉及免除依赖归纳法,确保数据类型可以提升为谓词,并依赖关系公式。通过对结构操作语义的主题约简证明的案例研究表明,该方法支持模块化证明,并且这些证明与传统证明基本相似。 |