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))