Abstract. A methodology for safety verification using barrier certificates has been proposed recently. Conditions that must be satisfied by a barrier certificate can be formulated as a convex program, and the feasibility of the program implies system safety, in the sense that there is no trajectory starting from a given set of initial states that reaches a given unsafe region. The dual of this problem, i.e., the reachability problem, concerns proving the existence of a trajectory starting from the initial set that reaches another given set. Using insights from convex duality and the concept of density functions, in this paper we show that reachability can also be verified through convex programming. Several convex programs for verifying safety, reachability, and other properties such as eventuality are formulated. Some examples are provided to illustrate their applications.