/// For each `given` declaration in `problem_model`, this looks for a corresponding value `letting`
/// in `param_model`, checks it is a constant and within the given domain, and replaces the `given`
pub fn instantiate_model(problem_model: Model, param_model: Model) -> anyhow::Result<Model> {