In SAT solving by conflict-driven clause learning, each time a solver detects that a candidate set of variable assignments leads to a conflict, it must look at the causes of the conflict, derive a clause from this (i.e. a lemma in terms of the overall problem) and add it to the set of known clauses. This entails choosing a cut in the implication graph, from which to derive the lemma.
A common way to do this is to pick the first unique implication point.
Per https://users.aalto.fi/~tjunttil/2020-DP-AUT/notes-sat/cdcl.html
A vertex l in the implication graph is a unique implication point (UIP) if all the paths from the latest decision literal vertex to the conflict vertex go through l.
The first UIP by the standard terminology is the first one encountered when backtracking from the conflict.
In alternative terminology, a UIP is a dominator on the implication graph, relative to the latest decision point and the conflict. As such, it could be found by building the implication graph and using a standard algorithm for finding dominators.
But finding dominators can take a nontrivial amount of CPU time, and I get the impression practical CDCL solvers use a faster algorithm specific to this context. However, I have not been able to find anything more specific than 'take the first UIP'.
What is the best known algorithm for finding the first UIP?