(** The black depth of [treeify l] is actually a log2, but we don't need to mention that. *)
#[global]
Instance treeify_rb l : Rbt (treeify l).
(** ** Filtering *)
#[global]
Instance filter_rb f s : Rbt (filter f s).
#[global]
Instance partition_rb1 f s : Rbt (fst (partition f s)).
#[global]
Instance partition_rb2 f s : Rbt (snd (partition f s)).
(** ** Union, intersection, difference *)
#[global]
Instance fold_add_rb s1 s2 : Rbt s2 -> Rbt (fold add s1 s2).
#[global]
Instance fold_remove_rb s1 s2 : Rbt s2 -> Rbt (fold remove s1 s2).

(* Specifications: *)
Lemma union_rb s1 s2 : Rbt s1 -> Rbt s2 -> Rbt (union s1 s2).
Lemma inter_rb s1 s2 : Rbt s1 -> Rbt s2 -> Rbt (inter s1 s2).
Lemma diff_rb s1 s2 : Rbt s1 -> Rbt s2 -> Rbt (diff s1 s2).
End BalanceProps.