let pre_flattening (pre_st,pre_tr) =
  let new_st,new_tr = mk_empty_pre_or_post () in
  let new_st,new_tr = ref new_st, ref new_tr in
  Array.iteri
    (fun index assocs ->
       new_st:=bool_array_or assocs !new_st ;
       new_tr:=bool_array_or pre_tr.(index) !new_tr
    )
    pre_st;
  (!new_st,!new_tr)