Fixpoint elements' (x: tree) (base: list key) : list key :=
  match x with
  | EE => base
  | T _ t1 k t2 => elements' t1 (cons k (elements' t2 base))
 end.

Lemma delete_min_valid: forall s, valid s -> match delete'_min s with | Some (_, s0) => valid s0 | None => True end.