let instantiate_transitions all_procs procs trans =
let aux acc {tr_info = tr} =
let tr_others,others = missing_args procs tr.tr_args in
let d = Variable.all_permutations tr.tr_args procs in
(* do it even if no arguments *)
let d = if d = [] then [[]] else d in
List.fold_left (fun acc sigma ->
instance_of_transition tr all_procs tr_others sigma :: acc
) acc d
in
List.fold_left aux [] trans