(** One needs to define a predicate for which MA is uniquely defined. *)
Definition inv O E E' A MA :=
  (A <> O /\ Prod O E E' MA A E) \/ (A = O /\ MA = O).

(* Specifications: *)
Lemma inv_exists_with_notation : forall A, Col O E A -> exists B, inv O E E' A B.
Lemma inv_col : forall A B, inv O E E' A B -> Col O E B.
Lemma inv_uniqueness : forall A B1 B2, inv O E E' A B1 -> inv O E E' A B2 -> B1 = B2.
Lemma inv_f : forall A, Col O E A -> {B | inv O E E' A B}.