Probabilistic programs are key to deal with uncertainty in e.g. controller
synthesis. They are typically small but intricate. Their development is complex
and error prone requiring quantitative reasoning over a myriad of alternative
designs. To mitigate this complexity, we adopt counterexample-guided inductive
synthesis (CEGIS) to automatically synthesise finite-state probabilistic
programs. Our approach leverages efficient model checking, modern SMT solving,
and counterexample generation at program level. Experiments on practically
relevant case studies show that design spaces with millions of candidate
designs can be fully explored using a few thousand verification queries.Comment: Extended versio