let extract_valid_behaviors state behavior =
  List.filter
    (fun b ->
       let assumes = Logic_const.pands
         (List.map Logic_const.pred_of_id_pred b.b_assumes) in
       match eval_predicate ~result:None ~old:None state assumes with
       | True | Unknown -> true
       | False -> false)
    behavior.spec_behavior