Definition all_possible_sub_activation_same_rank (f: function) (lv: list term) : list term :=
let psa := all_possible_subarguments lv in
flat_map (fun g => map (fun sa => fapply g sa) psa) (functions_of_prog prog).

Lemma all_possible_sub_activation_same_rank_bound (f: function) (lv: list term) :
length (all_possible_sub_activation_same_rank f lv)
<= length (functions_of_prog prog) * prodl (map (@term_size _ _ _) lv).