let check_adaptability_sol adaptability_sol adaptability_cstrs =
  let rec subst e sol =
    match e with
    | Var c ->
        begin try Pbw (Word_var_map.find c sol)
        with Not_found -> assert false
        end
    | Pbw p -> Pbw p
    | On (e1, e2) -> On (subst e1 sol, subst e2 sol)
  in
  let adaptability_cstrs =
    List.map
      (fun (Adaptability (e1, e2)) ->
        Adaptability (subst e1 adaptability_sol, subst e2 adaptability_sol))
      adaptability_cstrs
  in
  let simplified_adaptability_cstrs =
    simplified_adaptability_cstrs_of_adaptability_cstrs adaptability_cstrs
  in
  simplified_adaptability_cstrs = []