let mk_global_predicate name moment params_l pred =
(*let log_var_params = List.map (fun p -> Cil.make_logic_var p Linteger) params_l in *)
let pred_info= Cil_const.make_logic_info name in
(* name of the predicate. *)
pred_info.l_profile <- params_l; (*log_var_params;*)
(* arguments of the predicate. *)
pred_info.l_labels <- List.map (fun x -> LogicLabel(None, x)) moment;
(* label arguments. *)
pred_info.l_body <- LBpred pred; (* definition. *)
(*
pred_info.l_type <- None; (* return type. *)
pred_info.l_tparams <- []
*)
Data_for_aorai.add_predicate name pred_info;
let annot = Dfun_or_pred(pred_info, Location.unknown) in
Globals.Annotations.add_user annot;
mk_global (GAnnot(annot, Location.unknown))