Fixpoint wf_btree_over t :=
match t with BNode keys children =>
(length keys = 2 * d + 1)%nat /\
(children = [] \/ length children = S (length keys) /\ Forall wf_btree_aux children)
end.

Lemma alt_Forall : forall P (lt : list bnode),
(fix f lt := match lt with [] => True | t :: rest => P t /\ f rest end) lt <->
Forall P lt.