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 insert_at_wf : forall v p t t' (Hinsert : insert_at v t p = Some t')
(Hwf : wf_btree_aux t) (Hp : leaf_path t (removelast p)),
wf_btree_aux t' \/ wf_btree_over t'.