(* Definition of "Planarly formed" hypermap: *)

Fixpoint plf(m:fmap):Prop:=
  match m with 
     V => True
   | I m0 x _ _ => plf m0
   | L m0 zero x y => plf m0 /\ 
        (~eqc m0 x y \/ expf m0 (cA_1 m0 one x) y)
   | L m0 one x y => plf m0 /\ 
        (~eqc m0 x y \/ expf m0 x (cA m0 zero y))
  end.

Theorem Euler_Poincare_criterion: forall m:fmap, inv_hmap m -> (plf m <-> ec m / 2 = nc m).