Solution (source code)

= Solution

For a fixed plane embedding, place one dual <vertex> in each <face of a plane graph> and draw a dual <edge> across each original <edge>, joining its incident faces. These dual <edges> can be drawn without mutual crossings, so this constructs a plane <dual graph>. Each original <vertex> corresponds to a dual <face of a plane graph>, while each <edge> gives exactly one dual <edge>. Hence
$$
\boxed{n^*=f,\qquad m^*=m,\qquad f^*=n.}
$$
Bridges give dual loops and parallel dual <edges> are allowed. On the sphere the dual of the resulting embedding is the original embedding, so planarity is preserved in both directions for this dual pair. The geometric <dual graph> is defined using an embedding; the converse is understood in that setting, rather than as a definition for an arbitrary nonplanar drawing.