We consider the problem of counting the number of spanning trees in planar graphs. We prove tight bounds on the complexity of the problem, both in general and especially in the modular setting. We exhibit the problem to be complete for Logspace when the modulus is 2^k, for constant k. On the other hand, we show that for any other modulus and in the non-modular case, our problem is as hard in the planar case as for the case of arbitrary graphs. This completely settles the question regarding the complexity of modular computation of the number of spanning trees in planar graphs. The techniques used are algebraic topological that may be useful in many other problems involving planar or higher genus graphs -- such as higher genus graph recognition in Logspace. Prior work in this area was reported by H. Shank and others who considered the problems, only in the simplest planar setting. Our results vastly extend theirs, while our methods rely heavily on algebraic-topology.
In the spirit of counting problems modulo 2^k, we also exhibit a highly parallel ParityL algorithm for finding the value of a Permanent modulo 2^k. Previously, the best known result in this direction was Valiant's result that this problem lies in P. We also show that we can count the number of perfect matchings in an arbitrary graph in P. This extends Valiant's result for the Permanent, since the Permanent may be modeled as counting the number of perfect matchings in bipartite graphs.