let ih_inter ih1 ih2 = let ih' = IH.copy ih1 in IH.iter (fun id _vi -> if not(IH.mem ih2 id) then IH.remove ih' id else ()) ih1; ih'