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 …