Graph transformation has many application areas in computer science, such as software engineering or the design of concurrent and distributed systems. Being a visual modeling technique, graph transformation has the potential to play a decisive role in the development of increasingly larger and complex systems. However, the use of visual modeling techniques alone does not guarantee the correctness of a design. In context of rising standards for trustworthy systems, there is a growing need for the verification of graph transformation systems and programs. The research of appropriate methods for this purpose is the topic of this thesis.The primary goal is to obtain the capability to decide graphical program specifications. These specifications consists of a graphical precondition, a graph program, and a graphical postcondition. As usual, such a specification is said to be correct, if all those system states satisfy the postcondition that are reachable by applying the program on a start state satisfying the precondition. In the considered programs, the selection, deletion, addition and deselection of a graph's nodes and edges are the elementary constructs that can be composed to more complex programs by non-deterministic choice, sequential composition and iteration. The resulting programming language is computationally complete and is able to model transactions that deal with an unbounded number of nodes and edges. As language for the specification of state properties, graph conditions are investigated and used. We show that graph conditions provide an intuitive formalism for first-order structural properties and are suited to infer knowledge about the behavior of graph transformation systems and programs.According to Dijkstra, the correctness of program specifications can be shown by constructing a weakest precondition of the program relative to the postcondition and checking whether the specified precondition implies the weakest precondition. Hence the correctness problem of program specifications is reduced to an implication problem of conditions. In this thesis, it is shown how to construct weakest preconditions for graph programs and graph conditions. Following a dual approach, a sound and complete satisfiability iv Development of Correct Graph Transformation Systems algorithm for graph conditions is investigated and a fragment of conditions is identified, for which the algorithm decides. On the other hand, a resolutionbased calculus for graph conditions is presented and its soundness is proven. Implementations of the aforementioned deciders for conditions are compared with existing theorem provers and satisfiability solvers for first-order logic by verifying three case studies: a railroad control, an access control for computer systems, and, as an external example, a car platoon maneuver protocol.The research is done within the framework of the so-called weak adhesive high-level replacement categories. Therefore, the results will be applicable to different kinds of graph replacement systems and Petri n...