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(unamed pred); (*        definition.        *)
(*
  pred_info.l_type <- None;        (*        return type.        *)
  pred_info.l_tparams <- []
*)

  Data_for_aorai.add_predicate name pred_info;
  globals_queue:=
    GAnnot(Dfun_or_pred(pred_info, Location.unknown), Location.unknown)
  :: !globals_queue