let extract_nfa nfa s f =
  let newnfa = copy_nfa nfa in
  let newfinal = new_state newnfa in
    add_trans newnfa f Epsilon newfinal;
    newnfa.f <- newfinal;
    newnfa.s <- s;
    elim_dead_states newnfa; 
    newnfa