let is_possible (po : t_po) b_row atms x =
  let majors = get_majors po x in
  let i = ref 0 in
  let possible = ref true in
  while !i < (Array.length atms) && !possible do
    (* if this atom is used and the atom is bigger then x, i.e. the
     * atom is in the list of the majors of x, then return false *)

    if b_row.(!i) = 1 && List.mem atms.(!i) majors then
      possible := false
    else
      i := !i+1
  done;
  !possible