  This paper presents a novel method for the automated synthesis of
probabilistic programs. The starting point is a program sketch representing a
finite family of finite-state Markov chains with related but distinct
topologies, and a PCTL specification. The method builds on a novel inductive
oracle that greedily generates counter-examples (CEs) for violating programs
and uses them to prune the family. These CEs leverage the semantics of the
family in the form of bounds on its best- and worst-case behaviour provided by
a deductive oracle using an MDP abstraction. The method further monitors the
performance of the synthesis and adaptively switches between the inductive and
deductive reasoning. Our experiments demonstrate that the novel CE construction
provides a significantly faster and more effective pruning strategy leading to
acceleration of the synthesis process on a wide range of benchmarks. For
challenging problems, such as the synthesis of decentralized
partially-observable controllers, we reduce the run-time from a day to minutes.
