diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index 2d9a6ce177b2444d77f578b6d09607cfc66524be..244ed12a21825d306c71e74a16cef546c195343d 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -1206,14 +1206,26 @@ let call_prover prover_config ~timeout ~steplimit drv prover task = Why3.Call_provers.limit_time = Why3.Opt.get_def def.limit_time timeout; Why3.Call_provers.limit_steps = Why3.Opt.get_def def.limit_time steps; } in - let command = Why3.Whyconf.get_complete_command prover_config - ~with_steps:(steps<>None) in + let with_steps = match steps, prover_config.Why3.Whyconf.command_steps with + | None, _ -> false + | Some _, Some _ -> true + | Some _, None -> + Wp_parameters.warning ~once:true ~current:false + "%a does not support steps limit (ignored option)" + Why3.Whyconf.print_prover prover ; + false + in + let command = Why3.Whyconf.get_complete_command prover_config ~with_steps in let call = Why3.Driver.prove_task_prepared ~command ~limit drv task in - Wp_parameters.debug ~dkey "Why3 run prover %a with %i timeout %i steps@." + let pp_steps fmt s = + if with_steps then Format.fprintf fmt "%i steps" (Why3.Opt.get_def (-1) s) + else Format.fprintf fmt "" + in + Wp_parameters.debug ~dkey "Why3 run prover %a with %i timeout %a@." Why3.Whyconf.print_prover prover (Why3.Opt.get_def (-1) timeout) - (Why3.Opt.get_def (-1) steps); + pp_steps steps ; let timeout = match timeout with None -> 0 | Some tlimit -> tlimit in let pcall = { call ; prover ;