let add_array_reference_arg x n = 
  oracle "[ArgARef] try + %a" pp_var_type x;
  if AnyVar.mem x then 
    (oracle "[ArgARef] %a AnyVar"pp_var_type x;())
  else
    begin
      try 
        if not (fst (ArgAReference.find x) = n) then
          (oracle "[ArgARef] remove %a : ko arity ->+AnyVar"
             pp_var_type x;
           ArgAReference.remove x; AnyVar.replace x ())
        else
          (oracle "[ArgARef] %a already" pp_var_type x;())
      with Not_found ->
        (if ArgPReference.mem x then 
           (oracle "[ArgARef] %a ArgPRef : remove -> + AnyVar" 
              pp_var_type x;
            ArgPReference.remove x; AnyVar.add x ())
         else 
           (oracle "[ArgARef] + %a"pp_var_type x;
            ArgAReference.add x (n,[])))
    end