Proof with auto.
pose proof I. (* hack: shift up auto-named hyps *)
split; intro.
intros a'' ?.
destruct H1 as [a' ?].
specialize (H0 a').
apply H0. eauto. apply join_comm...
intros a' ?.
destruct H1 as [a'' ?].
rewrite <- (H0 a'') in *; eauto; clear a'' H0.
eapply unit_identity; eauto.
Qed.
(** The elements of a multi-unit separation algebra can be partitioned into equivalance classes, where two elements are in the class iff they have the same unit. *)
Definition comparable {A} `{Sep_alg A}  (a b:A)
:= core a = core b.

Lemma comparable_refl {A} `{Sep_alg A} : forall a, comparable a a.