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