(* degree OF A CELL: OK! *)
Function degree_aux(m:fmap)(z:dart)(n:nat)
{measure (fun i:nat => ndN m - i) n}:nat:=
if le_lt_dec n (ndN m)
then if eq_dart_dec z (Iter (f m) n z) then n
else if eq_nat_dec n (ndN m) then (ndN m) + 1
else degree_aux m z (n+1)
else (ndN m) + 1.

(* Specifications: *)
Theorem degree_pos:forall(m:fmap)(z:dart),
exd m z -> 0 < degree m z.