Serialize the unknown predicate as JSON on DecidePredicateUnknown
#3694
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR changes the JSON RPC handler for
DecidePredicateUnknown
.Before we pretty-printed (ugly-printed, let's be honest) the predicate and returned that as the "data" field of the JSON RPC error. Now we conjunct the predicates and side conditions, serialize the conjunction as JSON and return that as "data".
This will solve two sources of paper cuts when using Kontrol:
stderr
with incomprehensible Kore output when encountering difficult predicatespyk
/kontrol
can handle server errors with"code": 5, "message":"Smt solver error
better, for example by pretty-printing the JSON predicate into surface K or tool-specific representation.