(* 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 planarity_criterion_0: forall (m:fmap)(x y:dart), inv_hmap m -> prec_L m zero x y -> planar m -> (planar (L m zero x y) <-> (~ eqc m x y \/ expf m (cA_1 m one x) y)).