let call_add_pre_and_do_args args formals pre p =
    let p = Fol.pands pre p in
    try
      let one_formal  p vi e =
        if vi.vname <> "" then
          assign (Var vi, NoOffset) e p
        else p (* it the parameter has no name, we don't need it ! *)
      in List.fold_left2 one_formal p formals args
    with Invalid_argument("List.fold_left2"->
      raise CallArgsVsParamNb