  We introduce a novel learning-based approach to synthesize safe and robust
controllers for autonomous Cyber-Physical Systems and, at the same time, to
generate challenging tests. This procedure combines formal methods for model
verification with Generative Adversarial Networks. The method learns two Neural
Networks: the first one aims at generating troubling scenarios for the
controller, while the second one aims at enforcing the safety constraints. We
test the proposed method on a variety of case studies.
