Nowadays, systems (e.g., trains, robots, buildings, …) are often designed based on mathematical models: Before building the system itself, a mathematical model describing the system is created, and then the mathematical model is analyzed. We study the foundations for the automatization of this process, with a special focus on the underlying algorithmic tools of optimization and constraint solving.