let quantify_at_label env label p =
      debug1 "[quantify_at_vars] at %a" Clabels.pretty label;
      let do_data _ acc d = match d with
        | F.D1var (Some (_vi, l), v_at_label) when l = label ->
            (* add the variable to the list of variable to quantify
             * if it is not already in. *)

            add_unique F.eq_var v_at_label acc
        | _ -> create_data_name d; acc
      in
      let vars = F.visit_data_in_pred ~all:true do_data [] p in
      let p = D.forall vars p in
      let p =
        try (* TODO: check why this is needed...
               All the vars should be in the data, shouldn't they ? *)

          let mem_lab = List.assoc label env.states in
          let dov _ v l = v::l in
          let l = Varinfo.Hashtbl.fold dov mem_lab.variables [] in
          D.forall l p
        with Not_found -> p
      in
      debug2 "[quantify_at_label] -> %a@." F.pp_pred p;
      p