let subst_result frame v p = match frame.result with | None -> p | Some xres -> match v with | Some v -> D.subst xres (logic_of_value v) p | None -> D.forall [xres] p