A bottom-up minimization DFA algorithm and applications