The author presents a theory of concurrent processes where three different semantic description methods that are usually studied in isolation are brought together. Petri nets describe processes as concurrent and interacting machines; algebraic process terms describe processes as abstract concurrent processes; and logical formulas specify the intended communication behaviour of processes. At the heart of this theory are two sets of transformation rules for the top-down design of concurrent processes. The first set can be used to transform stepwise logical formulas into process terms, whilst process terms can be transformed into Petri nets by the second set. These rules are based on novel techniques for the operational and denotational semantics of concurrent processes. Various results and relationships between nets, terms and formulas starting with formulas and illustrated by examples. The use of transformations is demonstrated in a series of case studies, and the author also identifies directions for research.