Definition equal (s s' : t) : bool :=
if equal s s' then true else false.

(* Specifications: *)
Lemma equal_1 : forall s s' : t, Equal s s' -> equal s s' = true.
Lemma equal_2 : forall s s' : t, equal s s' = true -> Equal s s'.
Definition subset (s s' : t) : bool :=
if subset s s' then true else false.
Lemma subset_1 : forall s s' : t, Subset s s' -> subset s s' = true.
Lemma subset_2 : forall s s' : t, subset s s' = true -> Subset s s'.
Definition choose (s : t) : option elt :=
match choose s with
| inleft (exist _ x _) => Some x
| inright _ => None
end.
Lemma choose_1 : forall (s : t) (x : elt), choose s = Some x -> In x s.
Lemma choose_2 : forall s : t, choose s = None -> Empty s.
Lemma choose_3 : forall s s' x x',
choose s = Some x -> choose s' = Some x' -> Equal s s' -> E.eq x x'.