Differential privacy is a promising formal approach to data privacy, which provides a quantitative bound on the privacy cost of an algorithm that operates on sensitive information. Several tools have been developed for the formal verification of differentially private algorithms, including program logics and type systems. However, these tools do not capture fundamental techniques that have emerged in recent years, and cannot be used for reasoning about cutting-edge differentially private algorithms. Existing techniques fail to handle three broad classes of algorithms: 1) algorithms where privacy depends on accuracy guarantees, 2) algorithms that are analyzed with the advanced composition theorem, which shows slower growth in the privacy cost, 3) algorithms that interactively accept adaptive inputs.We address these limitations with a new formalism extending apRHL [6], a relational program logic that has been used for proving differential privacy of non-interactive algorithms, and incorporating aHL [11], a (non-relational) program logic for accuracy properties. We illustrate our approach through a single running example, which exemplifies the three classes of algorithms and explores new variants of the Sparse Vector technique, a well-studied algorithm from the privacy literature. We implement our logic in EasyCrypt, and formally verify privacy. We also introduce a novel coupling technique called optimal subset coupling that may be of independent interest. 1 There exist multiple versions of Sparse Vector. The earliest reference seems to be Dwork et al. [20]; several refinements were proposed by Hardt and Rothblum [30], Roth and Roughgarden [44]. Applications often use their own variants, e.g. Shokri and Shmatikov [46]. The most canonical version of the algorithm is the version by Dwork and Roth [17].