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 filter'_spec : forall s x f, compatb f -> valid s -> (interp (filter' f s) x <-> interp s x /\ f x = true).