2
具有嵌套组件的归纳类型的递归定义
考虑归纳类型,它在嵌套但严格为正的位置中具有一些递归出现。例如,具有节点的有限分支的树使用通用列表数据结构来存储子级。 Inductive LTree : Set := Node : list LTree -> LTree. 通过对树和树列表进行递归来定义这些树的递归函数的幼稚方法不起作用。这是带有size计算节点数的函数的示例。 Fixpoint size (t : LTree) : nat := match t with Node l => 1 + (size_l l) end with size_l (l : list LTree) : nat := match l with | nil => 0 | cons …