let dependencies = function
| TYPE _ -> Iset.empty
| RECORD fs -> List.fold_left add_depend_field Iset.empty fs
| FUNCTION (xs,t,None) ->
List.fold_left add_depend_var (add_depend_tau Iset.empty t) xs
| FUNCTION (xs,t,Some e) ->
let core = add_depend_term Iset.empty e in
List.fold_left add_depend_var (add_depend_tau core t) xs
| PREDICATE(xs,None) ->
List.fold_left add_depend_var Iset.empty xs
| PREDICATE(xs,Some p) ->
List.fold_left add_depend_var (add_depend_pred Iset.empty p) xs
| AXIOM p -> add_depend_pred Iset.empty p