  We prove the dynamic programming principle (DPP) in a class of problems where
an agent controls a $d$-dimensional diffusive dynamics via both classical and
singular controls and, moreover, is able to terminate the optimisation at a
time of her choosing, prior to a given maturity. The time-horizon of the
problem is random and it is the smallest between a fixed terminal time and the
first exit time of the state dynamics from a Borel set. We consider both the
cases in which the total available fuel for the singular control is either
bounded or unbounded. We build upon existing proofs of DPP and extend results
available in the traditional literature on singular control (e.g., Haussmann
and Suo, SIAM J. Control Optim., 33, 1995) by relaxing some key assumptions and
including the discretionary stopping feature. We also connect with more general
versions of the DPP (e.g., Bouchard and Touzi, SIAM J. Control Optim., 49,
2011) by showing in detail how our class of problems meets the abstract
requirements therein.
