The set of integer number lists with finite length, and the set of binary trees with integer labels are both countably infinite. Many inductively defined types also have countably many elements. In this paper, we formalize the syntax of first order inductive definitions in Coq and prove them countable, under some side conditions. Instead of writing a proof generator in a meta language, we develop an axiom-free proof in the Coq object logic. In other words, our proof is a dependently typed Coq function from the syntax of the inductive definition to the countability of the type. Based on this proof, we provide a Coq tactic to automatically prove the countability of concrete inductive types. We also developed Coq libraries for countability and for the syntax of inductive definitions, which have value on their own.
翻译:一组有一定长度的整数列表, 以及一组带有整数标签的二进制树都是无限的。 许多有细数定义的种类也有许多可以计算的要素。 在本文中, 我们正式确定Coq 中第一顺序导引定义的语法, 并在某些侧面条件下证明这些词的可计算性。 我们没有用元语言写出一个校对生成器, 而是在 Coq 对象逻辑中开发一个无xiom 的证明 。 换句话说, 我们的证据是从感应定义的语法到该类型的可计算性, 是一个依附于感应的 Coq 函数。 基于此证据, 我们提供了一种 Coq 策略, 以自动证明混导引导型的可计算性 。 我们还开发了 Coq 库, 用于可计算性和感应定义的语法, 而这些定义本身具有价值 。