In this paper, we develop a formal methodology for verifying situated agents. The methodology consists of two elements, a specification language for specifying the agent capabilities to execute its actions in dynamic environments and a repertoire of proof methods by which the correctness of an agent, relative to its capabilities, can be formally verified.