Notation "a '-' b" := (sa_mul a b) (at level 50, left associativity) : sa_scope.Notation "a '-' b |-> c" := (sa_mul a b c) (at level 52, no associativity) : sa_scope.Notation "^" := sa_unit : sa_scope.Notation "a # b" := (compat a b) (at level 70, no associativity) : sa_scope.Notation "a <= b" := (subheap a b) (at level 70, no associativity) : sa_scope.Instance subheap_preo A `{sa : SepAlg A} : PreOrder (@subheap A SAOps).Instance compat_symm A `{sa : SepAlg A} : Symmetric (compat (A := A)).

(* Specifications: *)
Lemma join_sub_units_eq A `{SepAlg A} (a b ea eb a': A): sa_mul a a' b -> sa_mul a ea a -> sa_unit ea -> sa_mul b eb b -> sa_unit eb -> rel ea eb.
Lemma subheapT (a b c : A) (Hab: a <= b) (Hbc: b <= c) : a <= c.