let mk_backward_composition current_st pre post =
let new_st,new_tr = mk_empty_pre_or_post_bycase () in
Array.iteri
(fun index assocs ->
let s,t = compose_assocs_pre assocs pre post in
new_st.(index)<-s;
new_tr.(index)<-t
)
current_st;
(new_st,new_tr)