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(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_ltl.add_predicate name pred_info;
  globals_queue:=GAnnot(
    Dfun_or_pred(pred_info),
    (*Dpredicate_def (pred_info,
      [] (*moment*),
      pred_info.p_profile,
      unamed pred
      ),*)

    Cilutil.locUnknown
  )::(!globals_queue)