JMiniSat::solvable field should not be updated when solving with assumptions: https://github.com/Lipen/kotlin-satlib/blob/master/jni/src/main/kotlin/com/github/lipen/satlib/jni/solver/JMiniSat.kt#L187-L190
For example, when the problem is UNSAT under assumptions, it still might be "solvable" without those assumptions, but currently it gets flagged as solvable=false. It is not possible (afaik) to distinct between "UNSAT because of assumptions" and "UNSAT because of all added clauses", so maybe solve(assumptions) should not touch the solvable field at all.
The same goes for JGlucose.