let flush where c0 p =
    Wp_parameters.debug ~level:3 "FLUSH %d %S@." (pred (List.length !context)) where ;
    match !context with
      | [] -> Wp_parameters.fatal "No context for constrained term"
      | c::stack ->
          if not (c0 == c)
          then Wp_parameters.fatal "Context mismatch for constrained term" ;
          context := stack ;
          apply_bindings (some_alpha c.pool) c.bindings p