Definition union' (s1 s2: tree) : tree :=
match compare_height s1 s1 s2 s2 with
| Lt => fold' _ insert s1 s2
| Gt => fold' _ insert s2 s1
| Eq => linear_union s1 s2
end.

Lemma min_elt'_spec2:
forall s (x : key) (y : key),
choose' s = Some x ->
interp s y ->
forall (lo hi : option key)
(ST: searchtree lo hi s), ~ E.lt y x.