2-Sat incorrectly assigns values to variables in some cases where answer is YES, here is a small test case: TwoSat TS(6); TS.impl(0, 4); TS.impl(2, 5); The constructed solution assigns True to 2 but False to 5 - [Link to test case](https://ideone.com/H5J8Vr)