(* Definition of the notion of surjection on a domain: *)

Definition surj_dart(Df:dart->Prop)(f:dart->dart):Prop :=
   forall y:dart, Df y ->
     exists x : dart, Df x /\ f x = y.

Lemma surj_cA : forall (m:fmap)(k:dim), inv_hmap m -> surj_dart (exd m) (cA m k).