Abstract-Developing powerful paradigms for programming sensor networks is critical to realize the full potential of sensor networks as collaborative data processing engines. In this article, we motivate and develop a deductive framework for programming sensor networks, extending the prior vision of viewing sensor network as a distributed database. The deductive programming approach is declarative, very expressive, and amenable to automatic optimizations. Such a framework allows users to program sensor network applications at a high-level without worrying about the low-level tedious details. Our system translates a given deductive program to efficient distributed code that runs on individual nodes. To facilitate the above translation, we develop techniques for distributed and asynchronous evaluation of deductive programs in sensor networks. Our techniques generalize to recursive programs without negations, arbitrary nonrecursive programs with negations, and in general to arbitrary "locally non-recursive" programs with function symbols. We present performance results on TOSSIM, a network simulator, and a small network testbed.