New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Assertion `!InsideSubstitutionMap(e0) && "e0 MUST NOT be in the SolverMap"' failed. #188
Comments
BTW, I should caution I have no idea if I'm using the API properly/optimally. I picked up the vc_query(vc, falseExpr) trick from KLEE, which I understand to mean that as long as it returns INVALID (i.e., it's not possible to "prove" false), then the set of asserted expressions/formulas are satisfiable (and satisfying values for A and B can be retrieved using vc_getCounterExample + getBVUnsigned). If there's a better way to write the above, please let me know. |
Before you think I haven't done anything with this... I spent an hour or two on this one during the weekend but gave up. I need to dig deeper and I was a bit distracted. Anyway, I did actually spend time on it. I'll try to get to the bottom of it. I think the pop/push is the issue here. I the meanwhile, the python API has that fixed and you may be able to use that to your advantage. It's easier and it handles the delicate C api in a very robust manner. |
If I comment out the On the other hand, it seems if I wrap each call to |
Yeah, I got that far too, but I don't get it why that's needed. May be a bug, maybe it's by design. Hard to say, the code is a bit difficult to follow. |
I have the same problem: REMOVED/stp/include/stp/Simplifier/SubstitutionMap.h:159: bool stp::SubstitutionMap::UpdateSubstitutionMapFewChecks(const stp::ASTNode&, const stp::ASTNode&): Assertion `!InsideSubstitutionMap(e0) && "e0 MUST NOT be in the SolverMap"' failed. My Stack trace: #0 0x00007ffff5cb49c8 in GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55 I am using: Intervace is directly called in the program. The workaround: vc_push(x); is working for me too. |
This is fixed in 68ea62c |
I'm seeing this assert failure + stack trace trying to use STP in Chromium:
Here's a minimized test case:
I'm using 05e2e26 and stp/minisat@3db5894.
Also, I'm building stp and minisat as part of the Chromium build rather than using the standard stp Makefile. Here's a representative compile invocation so you can know what custom flags we're setting that might be relevant:
The only local modification I've made is that in stp/lib/Sat/MinisatCore.cpp and stp/lib/Sat/SimplifyingMinisat.cpp I had to comment out the "#define __STDC_FORMAT_MACROS" lines because they caused "macro redefined" errors as Chromium builds with -D__STDC_FORMAT_MACROS already.
The text was updated successfully, but these errors were encountered: