(* Import the AST of this C program *)
(* The next line is "boilerplate", always required after importing an AST. *)
Instance CompSpecs : compspecs.Definition Vprog : varspecs.Inductive bnode :=
| BNode (keys : list Z) (children : list bnode).Inductive bnode :=
| BNode (keys : list Z) (children : list bnode).Fixpoint btree_rect t :=
    match t as t0 return (P t0) with
(*    | BLeaf v => Hleaf v*)
    | BNode keys children => Hint keys children (list_rect Q Hnil
                            (fun u r => Hcons u r (btree_rect u)) children)
    end.

Lemma btree_ind (P : bnode -> Prop) (*(Hleaf : forall v, P (BLeaf v))*) (Hint : forall keys children, Forall P children -> P (BNode keys children)) t : P t.