This patch fixes the situation when our knowledge of disequalities
can help us figuring out that some assumption is infeasible, but
the solver still produces a state with inconsistent constraints.
Additionally, this patch adds a couple of assertions to catch this
type of problems easier.
inline is unnecessary. All member functions are inline by default.
I would take the parameter by const ref in the lambda.
Why did you mark it LLVM_ATTRIBUTE_UNUSED ? LLVM_NODISCARD would be probably a better choice.