(* 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.
(* (cA m k) is surjective on (exd m): *)

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