Here's a survey paper describing the algorithms used under the hood: https://www.cs.utexas.edu/~swarat/pubs/PGL-049-Plain.pdf