private Map<String, Integer> getTopLevelUIFnamesAndArities(TemplateFormula f) {
   Set<TemplateUIF> topLevelUIFs = f.getAllTopLevelUIFs();
   HashMap<String, Integer> map = new HashMap<>();
   String name;
   Integer arity;
   for (TemplateUIF u : topLevelUIFs) {
     name = u.getName();
     arity = Integer.valueOf(u.getArity());
     map.put(name, arity);
   }
   return map;
 }