diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index ce30da1079969dc169a5de6d8ecca157065f1a2a..5922eabe1d13c8eb674aae398551c5ebeb346f83 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -1116,7 +1116,7 @@ let task_hash wpo drv prover task = ~prover:(VCS.Why3 prover) in let _ = Command.print_file file begin fun fmt -> - Format.fprintf fmt "(* WP Task for Prover %s *)" + Format.fprintf fmt "(* WP Task for Prover %s *)@\n" (Why3Provers.print prover) ; Why3.Driver.print_task_prepared drv fmt task ; end @@ -1186,6 +1186,10 @@ let set_cache_result ~mode hash prover result = Wp_parameters.failure ~once:true "can not update cache (%s)" (Printexc.to_string err) +let is_trivial (t : Why3.Task.task) = + let goal = Why3.Task.task_goal_fmla t in + Why3.Term.t_equal goal Why3.Term.t_true + (* -------------------------------------------------------------------------- *) (* --- Prove WPO --- *) (* -------------------------------------------------------------------------- *) @@ -1204,6 +1208,9 @@ let prove ?timeout ?steplimit ~prover wpo = then (* Why3 typed checked the task during its build *) Task.return VCS.checked + else + if is_trivial task then + Task.return VCS.valid else let mode = get_mode () in match mode with