let check_precondition kf state =
let spec = (Kernel_function.get_spec kf).spec_requires in
match spec with
| [] -> state
| _ ->
let vc = Logic_const.pands
(List.map Logic_const.pred_of_id_pred spec)
in
let result = eval_predicate (State_set.singleton state) vc in
Value_parameters.result ~current:true ~once:true "Precondition of %a got status %s."
Kernel_function.pretty_name kf (string_of_status result) ;
reduce_by_predicate state true vc