let add_hyp env h wp =
    on_context env "add_hyp" wp Keep_opened Keep_assigns
      (fun env _assigns p ->
         if F.is_true p then p else
           let hid, hp = h in
           let pid = WpPropId.property_of_id hid in
           match predicate env hp with
             | Result h ->
                 Datalib.Collector.add_depend pid ; F.p_implies h p
             | Warning(source,reason) ->
                 Datalib.Collector.add_warning ~source ~reason
                   "Ignored hypothesis %a" Description.pp_property pid ; p)