(* Closure designed for qhmaps, but written on fmaps,
as usual: *)

Fixpoint clos(m:fmap):fmap:=
  match m with
    V => V
  | I m0 x0 =>
      i (clos m0) x0
  | L m0 k x0 y0 =>
      let mr:= clos m0 in
        if eq_dart_dec y0 (A mr k x0)
	then mr
        else l mr k x0 y0
  end.

Theorem inv_hmap_clos : forall (m:fmap), inv_qhmap m -> inv_hmap (clos m).