let iof_and_size_cstrs_of_synchronizability_and_precedence_cstrs
    choice
    synchronizability_cstrs
    precedence_cstrs =
  let synchronizability =
    simplify_synchronizability_cstrs synchronizability_cstrs
  in
  let precedence =
    simplify_precedence_cstrs choice precedence_cstrs
  in
  let periodicity =
    build_periodicity_cstrs precedence choice
  in
  let sufficient_size =
    build_sufficient_size_cstrs choice
  in
  let sufficient_indexes =
    build_sufficient_index_cstrs precedence periodicity sufficient_size
  in
  let increase_indexes =
    build_increasing_index_cstrs precedence periodicity sufficient_size
  in
  { choice = choice;
    synchronizability = synchronizability;
    precedence = precedence;
    periodicity = periodicity;
    sufficient_size = sufficient_size;
    sufficient_indexes = sufficient_indexes;
    increase_indexes = increase_indexes; }