let rec do_instantiate hs p = function
| [] -> hs , p
| h::others ->
match h#instantiate with
| Some hyp ->
(*TODO: add pid to collector *)
do_instantiate hs (F.p_implies hyp p) others
| None ->
do_instantiate
(if h#alive then h::hs else hs)
p others