improve wdba minimization
Currently we do the construction as explained in the Dax et al. paper:
- from the input A, we build a powerset P.
- for each SCC C of P we compute a word that we replay on A, and use that to decide if C should be accepting or rejecting
With this, we get a new P' with SCC tagged as accepting or rejecting. It may accept more words if we flagged a whole SCC as accepting when it was only partially accepting in A. It may reject additional words if we flagged a whole SCC as rejecting when it is partially accepting in A. So we need this double inclusion check to be sure that P' is equivalent to A.
We could probably improve this by building the product PA and surveying the SCCs of that product. For each accepting SCC of PA, we declare that the projection on P is accepting. This way, P' necessarily recognizes a superset of the language of A, and only one inclusion check is needed.